←2016-02 2016-03 2016-04→ ↑2016 ↑all
2016-03-01
00:07:57 <shachaf> ?? ?@ ?run var$intercalate " \\ " . map (\x -> "(@run var . (\\(w:ws) -> w ++ ':' : ' ' : (map (\\c -> if c == 'M' then '-' else c) . takeWhile (/= '/') . head . filter (\"/\" `isInfixOf`) $ ws)) . words $ @show @metar "++x++")") . words $ ?show ENVA LLBG
00:07:58 <lambdabot> Plugin `compose' failed with: Missing ')' in nested command
00:08:25 <shachaf> ?? ?@ ?run var$intercalate " \\ " . map (\x -> "(@run var . (\\(w:ws) -> w ++ ':' : ' ' : (map (\\c -> if c == 'M' then '-' else c) . takeWhile (/= '/') . head . filter (\"/\" `isInfixOf`) $ ws)) . words $ @show @metar "++x++")") . words $ ?show ENVA LLBG
00:08:26 <lambdabot> Plugin `compose' failed with: Missing ')' in nested command
00:08:30 <shachaf> Hmm.
00:08:38 <shachaf> Is it a line length thing that makes it only work in /msg?
00:09:05 <shachaf> ?? ?@ ?run var$intercalate " \\ " . map (\x -> "(@run var . (\\(w:ws) -> w ++ ':' : ' ' : (takeWhile (/= '/') . head . filter (\"/\" `isInfixOf`) $ ws)) . words $ @show @metar "++x++")") . words $ ?show ENVA LLBG
00:09:07 <lambdabot> Plugin `compose' failed with: Missing ')' in nested command
00:09:47 <shachaf> oerjan: help figure out twh hth thx
00:14:46 <oerjan> well there is a shorter limit in public, at least
00:15:35 <shachaf> Oh, I bet it's an internal thing in lambdabot where it generates a long line containing a lot of duplicates of the code.
00:15:57 <shachaf> What I did was silly anyway.
00:16:01 <oerjan> OKAY
00:18:31 <shachaf> Or maybe not.
00:18:34 <shachaf> you do it
00:20:27 -!- impomatic has quit (Ping timeout: 276 seconds).
00:25:45 <oerjan> TOO LATE
00:25:51 <oerjan> (it's always too late)
00:28:01 <shachaf> whoa whoa whoa
00:28:13 <shachaf> you could write a command that looks at the hg log to see which file the last command created/modified
00:28:17 <shachaf> and then edited that file
00:28:29 <shachaf> so convenient
00:32:34 <\oren\_> shachaf: ooh, someone actually uses that upside down &? I'm glad I added it.
00:32:46 <shachaf> \oren\_: Of course. It's a very important character.
00:32:57 <shachaf> \oren\_: But in IRC I usually just write #
00:36:10 <\oren\_> b_jonas: that reminds me, I have a ttf version of your font that I generated in the same manner as my font.
00:37:01 -!- tromp has joined.
00:40:34 -!- lambda-11235 has joined.
00:41:47 <oerjan> @tell hppavilion[1] <hppavilion[1]> int-e: Did I make the math joke wrong? <-- that was so wrong that i bet you think there are three words in the english language.
00:41:47 <lambdabot> Consider it noted.
00:42:39 <oerjan> @tell hppavilion[1] damn i did _that_ wrong. also https://xkcd.com/169/
00:42:39 <lambdabot> Consider it noted.
00:43:38 <oerjan> @tell hppavilion[1] or wait, did i. confused now.
00:43:39 <lambdabot> Consider it noted.
01:18:25 -!- lynn has quit (Ping timeout: 250 seconds).
01:21:40 -!- bb010g has joined.
01:25:53 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
01:26:33 -!- augur has quit (Remote host closed the connection).
01:28:16 -!- augur has joined.
01:44:18 -!- ayeelmao has joined.
01:55:28 <hppavilion[1]> I just realized I don't know the rigorous meaning of "irrational number"
01:55:34 <hppavilion[1]> @messages-lud
01:55:35 <lambdabot> oerjan said 1h 13m 47s ago: <hppavilion[1]> int-e: Did I make the math joke wrong? <-- that was so wrong that i bet you think there are three words in the english language.
01:55:35 <lambdabot> oerjan said 1h 12m 55s ago: damn i did _that_ wrong. also https://xkcd.com/169/
01:55:35 <lambdabot> oerjan said 1h 11m 56s ago: or wait, did i. confused now.
01:55:36 <hppavilion[1]> Oh right
01:55:50 <hppavilion[1]> oerjan: I was online when you sent that message
01:56:15 <hppavilion[1]> Oh, right, it's one that cannot be expressed as a ratio of integers
01:56:21 <hppavilion[1]> Wait, but neither can a complex number
01:59:52 <lambda-11235> hppavilion[1]: https://en.wikipedia.org/wiki/Dedekind_cut. That's one definition.
02:00:20 -!- AlexR42 has joined.
02:00:26 -!- MoALTz has quit (Ping timeout: 244 seconds).
02:00:33 <oerjan> i don't trust people who are online but 56 mins idle >_> <_<
02:00:50 <oerjan> hppavilion[1]: would you like to be added to the dontaskdonttelllist
02:01:02 <lambda-11235> Also, https://en.wikipedia.org/wiki/Cauchy_sequence.
02:01:06 <oerjan> `dontaskdonttelllist
02:01:10 <HackEgo> dontaskdonttelllist: q​u​i​n​t​o​p​i​a​ c​o​p​p​r​o​ m​y​n​a​m​e​
02:01:14 <hppavilion[1]> oerjan: Maybe?
02:01:18 <hppavilion[1]> Probably not
02:01:24 <oerjan> OKAY
02:01:25 <hppavilion[1]> I'm just going with the points-on-a-line definition
02:02:19 <oerjan> indeed, complex numbers that aren't real are also irrational
02:02:23 <lambda-11235> There was a haskell library that implemented infintely precise real numbers using cauchy sequences.
02:02:38 <oerjan> which is a little silly for things like 1 + 2i
02:02:54 <oerjan> there's probably a term for those
02:03:16 <oerjan> "gaussian rational"
02:03:32 <oerjan> which means both a and b are rational in a+bi
02:03:32 <shachaf> or even gaussian integer hth
02:03:48 <shachaf> oh, 1 + 2i was jsut an example
02:03:52 <shachaf> look
02:03:56 <oerjan> of course
02:03:58 <shachaf> i can't be bothered to logread four lines up
02:04:07 <oerjan> shachaf: i know, it's _so_ tiring
02:05:12 <oerjan> > pi :: CReal -- lambda-11235
02:05:13 <lambdabot> 3.1415926535897932384626433832795028841972
02:05:27 <oerjan> not sure if that one uses cauchy sequences
02:05:37 <hppavilion[1]> oerjan: I've always thought that math should be more modular/adjective
02:05:45 <oerjan> it _doesn't_ use continued fractions afair
02:06:03 <hppavilion[1]> oerjan: Instead of having joint-together names, we should prioritize inventing new adjectives to apply to existing objects
02:06:05 <shachaf> It uses a special kind of Cauchy sequences.
02:06:30 <oerjan> hppavilion[1]: i don't understand what you mean
02:06:49 <shachaf> Quickly-convergent Cauchy sequences.
02:06:54 <shachaf> That's the name.
02:07:14 <shachaf> Cauchy sequences that converge whenever aren't very useful for computing.
02:08:26 <hppavilion[1]> oerjan: Instead of the phrase "Gaussian Integer", meaning a+bi where a and b are integers, we'd just have the adjective "Gaussian x", meaning a+bi where a and b are members of the xes
02:08:52 <oerjan> hppavilion[1]: hm and that's precisely how it works with rationals, what's the problem
02:08:57 <shachaf> Hmm, maybe it doesn't exactly.
02:09:33 <shachaf> oerjan: there are way too many things that are called "gaussian" for this scheme to work hth
02:09:43 <shachaf> https://en.wikipedia.org/wiki/List_of_things_named_after_Carl_Friedrich_Gauss
02:10:06 <hppavilion[1]> oerjan: Well I haven't heard of "Gaussian rationals"
02:10:18 <oerjan> shachaf: but these gaussian distributions a + bi are so quantum!
02:10:32 <oerjan> hppavilion[1]: neither had i until i just guessed it
02:10:34 <hppavilion[1]> oerjan: And this way, we could have worse things like the "Gaussian Strings" or something awful like that, for example
02:11:29 <shachaf> oerjan: The real scow of CReal is that it only computes up to 40 digits normally.
02:12:17 <oerjan> :t showCReal
02:12:18 <lambdabot> Int -> CReal -> String
02:12:28 <oerjan> > showCReal 1000 pi
02:12:29 <lambdabot> "3.1415926535897932384626433832795028841971693993751058209749445923078164062...
02:13:03 <shachaf> I wish lambdabot still had unsafeCoerce so I could examine CReals.
02:13:04 <oerjan> > showCReal 1000 (pi^2)
02:13:06 <lambdabot> "9.8696044010893586188344909998761511353136994072407906264133493762200448224...
02:13:11 <oerjan> > last $showCReal 1000 (pi^2)
02:13:13 <lambdabot> '5'
02:14:04 <oerjan> @version
02:14:04 <lambdabot> lambdabot 5.0.3
02:14:04 <lambdabot> git clone https://github.com/lambdabot/lambdabot
02:14:43 <oerjan> @tell int-e @version should say which ghc version it's compiled with twh
02:14:43 <lambdabot> Consider it noted.
02:15:18 -!- AlexR42 has quit (Quit: My Mac has gone to sleep. ZZZzzz…).
02:15:47 <shachaf> > compilerVersion
02:15:48 <lambdabot> Not in scope: ‘compilerVersion’
02:15:56 <oerjan> shachaf: pretty sure there's some remaining unsafeCoerce bug ...
02:18:31 -!- andrew__ has joined.
02:19:23 <oerjan> :t coerce -- this is some silly lensy thing isn't
02:19:24 <lambdabot> (Functor f, Contravariant f) => f a -> f b
02:19:32 <oerjan> *+it
02:21:08 * oerjan is forgetting his orange juice
02:23:13 <oerjan> > typeRep (Proxy :: Proxy (() :: Constraint)) == typeRep (Proxy :: Proxy ())
02:23:15 <lambdabot> False
02:25:23 <oerjan> that type family bug i found obviously won't work in lambdabot
02:30:27 -!- ineiros has quit (Ping timeout: 248 seconds).
02:41:37 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
02:44:30 -!- andrew__ has quit (Remote host closed the connection).
02:46:31 -!- andrew_ has joined.
02:49:34 -!- hppavilion[2] has joined.
02:52:00 -!- andrew_ has quit (Ping timeout: 246 seconds).
02:54:07 <hppavilion[2]> I'm trying to make a JS parser combinator library
02:54:11 <hppavilion[2]> What combinators should I include?
02:54:27 <hppavilion[2]> For MAXIMUM PARSINESS
03:08:29 -!- andrew_ has joined.
03:08:31 -!- hppavilion[2] has changed nick to hppavilion[1].
03:09:09 -!- AlexR42 has joined.
03:17:55 -!- hppavilion[1] has quit (Ping timeout: 248 seconds).
03:25:49 -!- augur has quit (Ping timeout: 250 seconds).
03:38:04 -!- AlexR42 has quit (Quit: My Mac has gone to sleep. ZZZzzz…).
03:39:21 -!- hppavilion[1] has joined.
03:43:02 -!- joaeos has joined.
03:49:06 -!- joaeos has quit (Ping timeout: 276 seconds).
03:53:40 -!- joaeos has joined.
03:56:25 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
03:56:49 -!- augur has joined.
03:59:27 <joaeos> this esolang thing is quite a brainfuck
03:59:30 <joaeos> Get it?
04:00:00 <joaeos> :c
04:00:03 -!- joaeos has left ("Leaving").
04:01:17 -!- \oren\_ has quit (Ping timeout: 260 seconds).
04:02:04 -!- \oren\ has joined.
04:05:50 -!- sebbu has quit (Ping timeout: 248 seconds).
04:07:18 -!- AlexR42 has joined.
04:08:23 -!- hppavilion[1] has joined.
04:30:03 -!- oerjan has quit (Quit: Got it).
04:52:53 -!- AlexR42 has quit (Quit: My Mac has gone to sleep. ZZZzzz…).
04:56:51 -!- FreeFull has quit (Read error: Connection reset by peer).
04:57:18 -!- FreeFull has joined.
04:58:27 -!- Alcest has joined.
05:21:34 -!- benderpc_ has joined.
05:22:00 -!- benderpc_ has quit (Changing host).
05:22:01 -!- benderpc_ has joined.
05:22:02 -!- augur has quit (Remote host closed the connection).
05:22:11 -!- benderpc_ has changed nick to bender.
05:27:00 -!- XorSwap has joined.
05:36:35 -!- XorSwap has quit (Quit: Leaving).
06:02:33 -!- sebbu has joined.
06:02:45 -!- hppavilion[1] has quit (Ping timeout: 246 seconds).
06:05:11 -!- augur has joined.
06:11:57 -!- hppavilion[1] has joined.
06:28:36 <hppavilion[1]> I think I'll look into cheese theory some more
06:39:54 <lambda-11235> hppavilion[1]: What's that? Are you interested in agrarian studies?
06:40:21 <hppavilion[1]> lambda-11235: No clue what agrarian is
06:40:26 <hppavilion[1]> lambda-11235: You know emmental, do you not?
06:40:38 <hppavilion[1]> (The programming language)
06:40:39 <hppavilion[1]> (http://catseye.tc/view/emmental/tests/Emmental.markdown)
06:41:04 <b_jonas> \oren\: an, nice! is that a vector-only ttf version, or a ttf with bitmap/graymap included?
06:41:20 <hppavilion[1]> lambda-11235: http://catseye.tc/view/emmental/README.markdown
06:42:30 <b_jonas> \oren\: and is it a repeatable enough conversion that you'll be able to recreate it easily later in the far future when I make an updated version of my font with more characters and modified images of the existing characters?
06:44:03 <lambda-11235> hppavilion[1]: Don't know emmental, but I do now. Also, agrarian means relating to agriculture or farming.
06:45:34 -!- lambda-11235 has quit (Quit: Good night.).
06:49:04 -!- MoALTz has joined.
06:58:49 <hppavilion[1]> lambdabot: Wait, no, mascarpone was the one I was going for
06:58:57 <hppavilion[1]> lambdabot: Mascarpone is 1000x cooler
06:59:00 <hppavilion[1]> Whoops
06:59:10 <hppavilion[1]> Dammit, lambda-11235
06:59:52 <hppavilion[1]> @tell lambda-11235 It's mascarpone, not emmental, that I was going for. Mascarpone is Emmental's successor.
06:59:52 <lambdabot> Consider it noted.
07:03:17 -!- nzt-fish has quit (Ping timeout: 260 seconds).
07:12:11 -!- ineiros has joined.
07:25:29 <b_jonas> Heh, on http://www.questionablecontent.net/cast.php , May is missing the header for her name (he's above Steve)
07:35:56 -!- mroman has joined.
07:35:57 <mroman> fnerd
07:41:02 -!- augur has quit (Remote host closed the connection).
07:44:25 -!- andrew_ has quit (Read error: Connection reset by peer).
07:47:26 -!- andrew has joined.
07:52:49 -!- tromp has quit (Remote host closed the connection).
07:58:10 -!- lynn has joined.
08:36:55 -!- J_Arcane has quit (Ping timeout: 252 seconds).
08:37:28 -!- lynn has quit (Ping timeout: 252 seconds).
08:44:04 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
08:53:20 -!- tromp has joined.
08:58:30 -!- tromp has quit (Ping timeout: 276 seconds).
09:43:07 -!- \oren\ has quit (Ping timeout: 260 seconds).
09:44:09 -!- \oren\ has joined.
10:23:37 -!- jaboja has joined.
10:36:47 -!- \oren\ has quit (Ping timeout: 260 seconds).
10:37:19 -!- \oren\ has joined.
10:51:35 <HackEgo> [wiki] [[Special:Log/newusers]] create * Whonut * New user account
11:00:59 <HackEgo> [wiki] [[Talk:Bitoven]] https://esolangs.org/w/index.php?diff=46474&oldid=43177 * Whonut * (+323) Asked about what is syntactically meaningful in Bitovem
11:15:54 -!- ayeelmao has left.
11:26:56 -!- boily has joined.
11:36:45 <boily> @massages-loud
11:36:45 <lambdabot> shachaf asked 11h 42m 10s ago: pizza must be poutine its place
11:37:00 <boily> ...
11:37:20 <boily> AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhellochafAAAAAAAAAAAAAAAAAAAAAAAAmapoleAAAAAAAAAAAAAAAARGH!
11:41:28 <lifthrasiir> okay, fuck the bf interpreter
11:41:42 <lifthrasiir> I have some serious bug that is really hard to catch with examples at my disposal
11:42:15 <myname> lol
11:43:02 <lifthrasiir> http://ix.io/oIx the code so far
11:47:22 -!- jaboja has quit (Ping timeout: 260 seconds).
11:54:18 -!- tromp has joined.
11:58:53 -!- tromp has quit (Ping timeout: 250 seconds).
11:59:59 -!- AnotherTest has joined.
12:16:45 -!- boily has quit (Quit: REGULATED CHICKEN).
12:33:39 -!- andrew has quit (Remote host closed the connection).
12:42:52 <Taneb> The issue, of course, with generated brainfuck programs, is that they tend to end up being quite long
12:43:08 <Taneb> That is, naturally, why we are generating them in the first place rather than writing them ourselves
12:43:22 <Taneb> This means they can take a long time to run in the interpreter you are using
12:44:39 -!- bender has quit (Quit: Leaving).
13:10:43 -!- tromp has joined.
13:15:10 -!- tromp has quit (Ping timeout: 248 seconds).
13:17:58 -!- jaboja has joined.
13:43:29 -!- Treio has joined.
13:57:55 -!- Treio has quit (Quit: Leaving).
13:58:12 <Taneb> Well, I've worked out why it's not working
13:58:35 <Taneb> I'm using an if-else construct that uses two temporary cells
13:58:43 <Taneb> I'm using a whole bunch of nested ifs
13:58:49 <Taneb> Using the same temporary cells
14:00:02 <Taneb> So, I need to design a case-switch statement
14:00:03 <Taneb> In brainfuck
14:00:05 <Taneb> God help me
14:01:32 -!- jaboja64 has joined.
14:05:18 -!- jaboja has quit (Ping timeout: 248 seconds).
14:16:32 -!- `^_^v has joined.
14:20:20 -!- bender|_ has joined.
14:20:40 -!- bender|_ has quit (Changing host).
14:20:40 -!- bender|_ has joined.
14:20:48 -!- bender|_ has changed nick to bender.
14:23:52 <Taneb> Oooh, http://calmerthanyouare.org/2016/01/14/control-flow-in-brainfuck.html has a guide
14:39:40 -!- tromp_ has quit (Read error: Connection reset by peer).
14:40:57 -!- tromp_ has joined.
14:41:42 <izabera> neato :)
14:44:57 -!- jaboja64 has quit (Ping timeout: 276 seconds).
14:44:57 -!- earendel2 has quit (Ping timeout: 276 seconds).
14:48:36 -!- joaeos has joined.
14:48:49 -!- bb010g has quit (Quit: Connection closed for inactivity).
14:51:41 -!- J_Arcane has joined.
14:54:07 -!- lambda-11235 has joined.
15:06:28 -!- earendel has joined.
15:16:46 -!- J_Arcane has quit (Ping timeout: 252 seconds).
15:18:26 -!- izabera has changed nick to anbppomced.
15:20:27 -!- anbppomced has changed nick to izabored.
15:22:25 -!- mroman has quit (Quit: Lost terminal).
15:25:06 -!- atslash has joined.
15:26:21 -!- joaeos has quit (Ping timeout: 248 seconds).
15:28:22 -!- izabored has changed nick to izabera.
15:37:54 -!- contrapumpkin has joined.
15:40:42 -!- copumpkin has quit (Ping timeout: 260 seconds).
15:56:50 <Taneb> I could do with a variant of brainfuck that is coupled direct read-access to a whole bunch of data involved in the brainfuck, as well as variables, but it can only be used for debugging
15:58:07 -!- lambda-11235 has quit (Quit: Bye).
16:03:11 -!- nzt-fish has joined.
16:10:18 <quintopia> Taneb: this makes no sense
16:10:53 <Taneb> quintopia: I want an extension of brainfuck with more facilities for debugging
16:11:29 <Taneb> Because reasoning about a 9000 line brainfuck program is less than fun
16:18:17 -!- impomatic_ has joined.
16:28:07 <quintopia> Taneb: is it not enough just to be able to step through it looking at the tape?
16:33:40 <Taneb> quintopia: it's far too long, alas
16:42:29 -!- tromp has joined.
16:47:09 -!- tromp has quit (Ping timeout: 276 seconds).
16:55:45 -!- augur has joined.
16:57:32 <quintopia> Taneb: what about tracking certain tape cells the way you can track variables in most debuggers?
16:57:52 <Taneb> quintopia: I want to do some things fancier than that
16:58:17 <Taneb> Like "make sure the cell reached at this instruction is the same cell as this one"
16:58:29 <Taneb> When that loop runs hundreds of times in different places
16:59:42 -!- bender has quit (Ping timeout: 248 seconds).
17:02:09 -!- `^_^v has quit (Ping timeout: 246 seconds).
17:03:45 -!- `^_^v has joined.
17:07:33 -!- Veltas has quit (Remote host closed the connection).
18:00:51 <quintopia> Taneb: that sounds like breakpoints with IP tracking
18:01:29 <Taneb> I also want to, to some extent, specify this in the program itself
18:04:12 <quintopia> it wouldnt be the first time someone added debug codes to a language
18:05:00 -!- augur has quit (Read error: Connection reset by peer).
18:05:51 -!- lambda-11235 has joined.
18:05:59 -!- augur has joined.
18:17:50 -!- spiette has joined.
18:29:49 -!- augur has quit (Remote host closed the connection).
18:40:38 <HackEgo> [wiki] [[Humo]] https://esolangs.org/w/index.php?diff=46475&oldid=46473 * Fpetrola * (+81)
18:41:46 <HackEgo> [wiki] [[Humo]] https://esolangs.org/w/index.php?diff=46476&oldid=46475 * Fpetrola * (-65)
18:42:30 <HackEgo> [wiki] [[Humo]] https://esolangs.org/w/index.php?diff=46477&oldid=46476 * Fpetrola * (-7)
18:43:13 <HackEgo> [wiki] [[Humo]] https://esolangs.org/w/index.php?diff=46478&oldid=46477 * Fpetrola * (+97)
18:45:09 <HackEgo> [wiki] [[Humo]] https://esolangs.org/w/index.php?diff=46479&oldid=46478 * Fpetrola * (+1)
18:45:58 <HackEgo> [wiki] [[Humo]] https://esolangs.org/w/index.php?diff=46480&oldid=46479 * Fpetrola * (+18)
18:46:13 -!- `^_^v has quit (Ping timeout: 250 seconds).
18:46:47 <HackEgo> [wiki] [[Humo]] https://esolangs.org/w/index.php?diff=46481&oldid=46480 * Fpetrola * (-18)
18:47:31 -!- clog has quit (Ping timeout: 250 seconds).
18:47:54 -!- Yurume has quit (Ping timeout: 268 seconds).
18:47:54 -!- lifthrasiir has quit (Ping timeout: 268 seconds).
18:48:09 -!- lifthrasiir has joined.
18:48:26 -!- `^_^v has joined.
18:49:11 -!- Yurume has joined.
18:49:38 -!- copumpkin has joined.
18:49:41 -!- impomatic has quit (Ping timeout: 250 seconds).
18:49:41 -!- nisstyre_ has quit (Ping timeout: 250 seconds).
18:50:19 -!- hppavilion[1] has joined.
18:50:50 -!- hppavilion[2] has joined.
18:50:59 -!- contrapumpkin has quit (Ping timeout: 250 seconds).
18:51:16 <hppavilion[2]> lambda-11235: Hi
18:53:07 -!- tjt263_ has joined.
18:54:34 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
18:54:38 -!- nisstyre_ has joined.
18:56:11 -!- fungot has quit (Ping timeout: 250 seconds).
18:58:23 -!- pdxleif has quit (Ping timeout: 268 seconds).
18:59:22 -!- idris-bot has quit (Quit: Terminated).
19:01:57 -!- impomatic has quit (Ping timeout: 260 seconds).
19:09:47 -!- zzo38 has joined.
19:12:12 -!- lleu has quit (Read error: Connection reset by peer).
19:13:00 -!- llue has joined.
19:13:00 <b_jonas> Taneb: could you use my font for something?
19:13:01 <Taneb> b_jonas, I'm almost there
19:13:01 -!- sebbu2 has joined.
19:13:01 <b_jonas> Have you compressed all of it to brainfuck code that fits a single IRC line yet?
19:13:24 <Taneb> Haha
19:13:40 <b_jonas> Or at least all but the glyphs at control character positions?
19:14:03 -!- sebbu has quit (Ping timeout: 276 seconds).
19:14:07 <b_jonas> The glyphs at the latin-1 high controls are probably mostly useless.
19:16:00 -!- MoALTz has quit (Ping timeout: 276 seconds).
19:25:40 -!- zgrep has quit (*.net *.split).
19:25:40 -!- Elronnd has quit (*.net *.split).
19:25:40 -!- lambdabot has quit (*.net *.split).
19:25:40 -!- Lymia has quit (*.net *.split).
19:25:40 -!- haavard has quit (*.net *.split).
19:25:41 -!- shikhin has quit (*.net *.split).
19:25:41 -!- sewilton has quit (*.net *.split).
19:29:27 <lambda-11235> hppavilion[2]: Hi.
19:29:40 <hppavilion[2]> lambda-11235: There you are!
19:30:51 -!- J_Arcane has joined.
19:31:23 <lambda-11235> hppavilion[2]: Here I am. What's up?
19:31:29 -!- zgrep has joined.
19:31:29 -!- Elronnd has joined.
19:31:29 -!- lambdabot has joined.
19:31:29 -!- Lymia has joined.
19:31:29 -!- haavard has joined.
19:31:29 -!- shikhin has joined.
19:31:29 -!- sewilton has joined.
19:31:37 <hppavilion[2]> lambda-11235: Nothing; just writing a JS parser library
19:33:01 <lambda-11235> hppavilion[2]: Oh, good luck.
19:34:18 -!- nycs has joined.
19:34:56 <prooftechnique> Kitten typesetting sounds adorable
19:36:22 -!- `^_^v has quit (Ping timeout: 252 seconds).
19:36:36 -!- nycs has quit (Client Quit).
19:37:57 -!- `^_^v has joined.
19:45:15 <impomatic_> There's a Core War tournament in a few weeks if anyone's up for it? http://corewar.co.uk/easter2016.htm
19:45:50 * izabera read it as code war and thougth it was a hackaton
19:47:13 -!- ais523 has joined.
19:47:43 <b_jonas> hello, ais523
19:47:56 <ais523> hi b_jonas
19:53:49 -!- oerjan has joined.
19:55:04 <zzo38> Probably a better way to do colors with Xlib would be using the standard colormaps, although TrueColor should probably be used instead if possible. Anyways it would then have to check if the default visual matches the standard colormap, and other stuff too
19:57:35 <ais523> zzo38: is the standard colormap for xterm the same as that for X?
20:05:01 <hppavilion[2]> Ugh
20:05:11 <hppavilion[2]> Writing parsers from scratch is confusing
20:06:10 <myname> just invert the show function :p
20:06:15 -!- spiette has quit (Ping timeout: 246 seconds).
20:06:33 <hppavilion[2]> I'm considering giving up and using a pre-made library
20:07:36 <myname> https://jeltsch.wordpress.com/2013/04/27/a-taste-of-curry/
20:07:59 <hppavilion[2]> myname: Oh, that was directed at me
20:08:02 <hppavilion[2]> myname: I'm writing it in JS, so
20:08:14 <hppavilion[2]> myname: So I can use it in a browser
20:09:09 <zzo38> Maybe it can also be use with Node.js too
20:09:50 <hppavilion[2]> zzo38: Maybe
20:10:12 <hppavilion[2]> zzo38: I mean, if it works in JS it should work in Node
20:10:21 <hppavilion[2]> myname: My main goal is to reimplement Thoof in a browser
20:10:50 <myname> i don't know thoof
20:11:00 <hppavilion[2]> myname: I made it recently
20:11:06 <hppavilion[2]> myname: It's a proof assistant based on PCRE
20:11:27 <hppavilion[2]> myname: You use s/// notation to define axioms and compose substitutions to make theorems
20:12:02 <hppavilion[2]> myname: Example: http://pastebin.com/Y00f06hb
20:12:07 -!- lambda-11235 has quit (Quit: Bye).
20:12:26 <hppavilion[2]> (Peano arithmetic)
20:12:35 <b_jonas> hppavilion[2]: sure, that's why we have ayacc
20:12:40 <b_jonas> um
20:12:51 <b_jonas> for writing parsers not from scratch
20:13:09 <hppavilion[2]> b_jonas: I was writing a Yacc-like library so I wouldn't have to write them from scratch
20:13:26 <b_jonas> hppavilion[2]: ayacc is exactly one of those yacc-like libraries
20:13:28 <hppavilion[2]> b_jonas: I implemented the parser combinator library, now I'm debugging it be implementing an actual parser in it
20:13:35 <b_jonas> I recommend it if you want yacc-like parsing
20:13:44 <b_jonas> which of course can depend on what it is that you have to parse
20:13:50 <hppavilion[2]> b_jonas: Awesome, I'll look into it
20:13:58 <b_jonas> `? ayacc
20:14:01 <b_jonas> do we have a wisdom for it?
20:14:13 <HackEgo> ayacc is ais523's yacc parser generator implementation, get it from http://nethack4.org/media/alex/ayacc/ayacc.pl
20:14:16 <b_jonas> fungot, is HackEgo always this slow?
20:14:35 <ais523> b_jonas: it's often slow when it hasn't been used for awhile
20:14:37 <hppavilion[2]> b_jonas: Is it perl?
20:14:43 <ais523> occasionally to the extent of actually timing out
20:14:56 <ais523> hppavilion[2]: ayacc isn't exactly a library, it's a Perl script
20:15:09 <hppavilion[2]> ais523: OK, I want client-side parsing
20:15:09 <ais523> it's intended as an implementation of POSIX yacc
20:15:18 <ais523> you give it a grammar as input
20:15:23 <ais523> and it outputs a program that does parsing
20:15:29 <ais523> currently it only supports output in C and Perl
20:15:32 <hppavilion[2]> ais523: I know how yacc works
20:15:42 <hppavilion[2]> I've used PLY at the very least
20:15:44 <ais523> /but/ it is designed to easily be made to generate output in other languages
20:15:48 <hppavilion[2]> (Python Lexx-Yacc)
20:15:55 <hppavilion[2]> ais523: That could work
20:16:21 <ais523> you basically give it a dictionary of program fragments that it can assemble a program out of
20:16:36 <hppavilion[2]> ais523: Yes, I know
20:17:05 <zzo38> That is, if it is pure JavaScript that does not use DOM and so on then it can work on browser and Node
20:17:22 <zzo38> (As well as other programs that use JavaScript)
20:17:24 <hppavilion[2]> zzo38: Right, right
20:17:44 <ais523> hppavilion[2]: most yacc implementations work by filling in a template file
20:17:48 <hppavilion[2]> zzo38: Do you know of any Javascript parser generator libraries or pure parser generators?
20:17:53 <hppavilion[2]> ais523: I realize that
20:17:53 <ais523> ayacc's a bit different, it generates code rather than data
20:18:36 <hppavilion[2]> OK
20:20:21 <oerjan> <hppavilion[2]> b_jonas: I was writing a Yacc-like library so I wouldn't have to write them from scratch <-- with all due respect, if you have trouble writing parsers from scratch, then there is _no_ way you're qualified to write a yacc-alike hth
20:20:46 <b_jonas> oerjan: hehe
20:20:59 <oerjan> because no hand-written parser can ever be as confusing as LALR(1) parsing QED
20:21:16 -!- spiette has joined.
20:23:30 <oerjan> although i have a hunch you meant something like parsec-alike instead
20:24:13 -!- hppavilion[2] has quit (Ping timeout: 252 seconds).
20:25:15 <ais523> oerjan: I don't find LALR(1) that confusing
20:25:39 <l0de> Yes hello, l0de here
20:25:48 -!- Sprocklem has joined.
20:25:49 <l0de> Anyone looking forward to the equinox rituals?
20:27:00 <ais523> `? esoteric
20:27:04 <HackEgo> This channel is about programming -- for the other kind of esoterica, try #esoteric on EFnet or DALnet.
20:27:19 <b_jonas> oerjan: yes, sadly the “parser combinator library” hints for taht
20:27:32 <b_jonas> which would be eww
20:30:17 <zzo38> A LALR(1) parser generator for C programs is Lemon, although that is C rather than JavaScript programming
20:30:48 <b_jonas> zzo38: yes, I know, but I agree with ais523 in that ayacc is better than lemon in basically everything
20:31:01 -!- hppavilion[1] has joined.
20:31:02 <ais523> do I know what lemon is?
20:31:24 <b_jonas> ais523: what? haven't we already talked about that one related to ayacc?
20:31:28 <zzo38> l0de: I have no ritual of equinox at this time. (Although I do agree that it should be a holiday)
20:31:28 <ais523> probably
20:31:30 <ais523> but I think I forgot
20:31:35 <ais523> that's why I asked rather than saying I didn't know what it was
20:31:49 <oerjan> <ais523> /but/ it is designed to easily be made to generate output in other languages <-- . o O ( underlambda? )
20:31:49 <b_jonas> ais523: I think you do know
20:32:27 <ais523> oerjan: well it possibly has more of a chance than anything else :-P
20:32:47 <ais523> actually the model it uses maps onto underlambda very well
20:32:57 <ais523> even unlambda, in fact
20:33:00 <b_jonas> ais523: lemon is the yacc-like but not really compatible one that (a) outputs a re-entrant parser that doesn't use the C-stack but a separately allocated stack, and (b) its grammars mandatorily use a different syntax than yacc's $1 to access the values of symbols inside blocks
20:33:08 <ais523> the main difficulties would be syntactic
20:33:13 <ais523> b_jonas: ah right
20:33:21 <ais523> I figured it was something like that purely from you comparing it to ayacc
20:34:05 <b_jonas> ais523: http://www.sqlite.org/src/doc/trunk/doc/lemon.html
20:34:34 <b_jonas> ais523: mind you, it probably did make sense for them to develop lemon if ayacc wasn't available
20:34:57 <b_jonas> it's still better in some things than bison, and it serves their needs well
20:35:13 <oerjan> <ais523> oerjan: I don't find LALR(1) that confusing <-- yes but you eat graphs for lunch hth
20:35:58 <b_jonas> And it's definitely much better than handwriting a parser of course.
20:36:52 <zzo38> I happen to like that (a) difference from yacc especially, it mean you can even use more than one parser simultaneously in the same program too, as well as that you can call the parser for each token and that is how it work.
20:38:06 <b_jonas> The problem is that we have these nice theoretic constructions like yacc parsers, but then people invent languages that aren't LR, and that can be parsed only with gross hacks, and in the end the parser you get is so ugly that you can't prove anything about how it works and when it will break.
20:38:32 <b_jonas> LALR(1) parser generator itself is great, I like it, although I don't claim to completely understand the theory.
20:38:41 <b_jonas> The part where it gets bad is the stupid languages.
20:39:53 <b_jonas> zzo38: funnily, bison is somewhat closer to that than ayacc is, at least ayacc with the C backend, because bison also outputs a parser that doesn't use the C stack, I think
20:40:45 <ais523> b_jonas: I've been considering allowing LALR(2), etc., in ayacc too
20:41:04 <ais523> perhaps with some minimization to merge identical states
20:41:19 <ais523> although it's unclear how you'd follow the POSIX rule to only read input if absolutely necessary, that might make it more complex
20:41:39 <b_jonas> zzo38: but luckily using the C stack isn't such a big problem, because at least it doesn't use global variables and has other promises, so we can break out of a parser, we can run more than one in parallel using threads or coroutines, and we could even develop a new backend that doesn't use the C stack.
20:42:03 <ais523> oerjan: b_jonas: you know how you can implement mathematical regular expressions using NFAs, and how those can be converted to DFAs in order to create an efficient compiled representation of the regular expression?
20:42:11 <ais523> LALR is basically that but for stack machines
20:42:40 <b_jonas> ais523: those grammars I'm thinking about aren't LALR(n) for other n either. the ones that are LALR(2) but not LALR(1) can generally be turned to LALR(1) with some small amount of preprocessing of the input stream with a DFA.
20:43:01 <b_jonas> ais523: right
20:43:31 -!- lynn has joined.
20:44:07 <ais523> most yacc impls will, if you give the -v or equivalent argument, list all the possible NstackA states that correspond to one DstackA state
20:44:29 <b_jonas> ais523: ok
20:44:41 <ais523> so that helps to understand what's going on
20:44:47 <ais523> (ayacc is one such impl)
20:46:39 <b_jonas> ais523: yes, a good quality debug output from ayacc certainly helps develop and debug grammars and prove things about it
20:46:59 <b_jonas> as in, more than just telling me whether there's a conflict or not
20:47:03 -!- clog has joined.
20:47:45 <oerjan> wb clog
20:47:58 <ais523> b_jonas: it also helps debug ayacc
20:48:05 <ais523> I worked on its debug output quite a lot for that reason
20:49:45 <b_jonas> ais523: can it also help debugging new ayacc output template thingies?
20:50:15 <ais523> only by comparing what it says the code structure should be to what was actually output
20:50:23 <ais523> however, a mistaken template will normally just cause a syntax error
20:50:42 <ais523> it's basically literally transforming the final automaton shown in ayacc's .output file into a series of code fragments via substitution
20:50:44 <b_jonas> Sadly I don't think I'm going to play with ayacc in the near future. I have too many other things to do.
20:52:27 -!- spiette has quit (Ping timeout: 246 seconds).
20:56:42 -!- tjt263_ has quit (Changing host).
20:56:42 -!- tjt263_ has joined.
20:58:19 -!- atslash has quit (Quit: This computer has gone to sleep).
21:04:52 -!- carado has joined.
21:09:34 -!- spiette has joined.
21:13:02 <b_jonas> ais523: oh, that reminds me. ayacc already clearly states that the parts of ayacc that it outputs are under public domain. is there a statement somewhere about what license the other parts of ayacc are available under?
21:13:27 -!- lynn_ has joined.
21:13:39 -!- lynn has quit (Disconnected by services).
21:13:43 -!- lynn_ has changed nick to lynn.
21:13:43 <b_jonas> This isn't urgent or anything, but it would be useful if you specified.
21:13:53 <ais523> huh, it looks like I forgot the license notice
21:13:55 <b_jonas> Like, released it under some license.
21:13:57 <ais523> I think I was planning GPLv3
21:14:12 <ais523> but atm it's default-all-rights-reserved
21:14:29 <ais523> (because I forgot to license it under anything else)
21:14:38 <b_jonas> right
21:14:54 <b_jonas> but in the future I'd like something that gave me more rights than defaults-all-rights-reserved
21:16:12 <ais523> yes
21:16:19 <ais523> I'm not working on ayacc at the moment
21:16:21 <ais523> but remind me next time I do
21:17:57 <b_jonas> ok
21:18:28 <b_jonas> I'll try, but I might forget
21:19:07 -!- p34k has quit.
21:21:27 -!- AnotherTest has quit (Ping timeout: 276 seconds).
21:24:41 -!- I has joined.
21:25:05 -!- I has changed nick to Guest46248.
21:25:06 -!- p34k has joined.
21:25:39 <b_jonas> ais523: I hope the GPL would work in such a way on ayacc such that (1, more importantly) an ayacc-specific input grammar file is only an input to ayacc, not a modification to it that is required to be licensed under the GPL if you want to distribute it, and
21:26:36 <b_jonas> (2, less importantly) ayacc isn't considered part of a program that uses ayacc to generate its parser, so that the program can be put under a GPL-incompatible but GPL-like sticky copyleft license that requires the full source of the program to be provided.
21:26:51 <b_jonas> It's clear that the _output_ of ayacc isn't covered, my question is about the input.
21:26:56 -!- tjt263_ has quit (Quit: part).
21:26:59 <ais523> b_jonas: the situatoin is the same as with gcc, I believe
21:27:15 <ais523> which doesn't place any requirements on its input
21:27:29 <ais523> besides, the fact that ayacc implements POSIX yacc is a pretty good argument that its input isn't copyright-affected by ayacc
21:27:35 <ais523> as it'd be valid POSIX yacc input too
21:28:53 <b_jonas> ais523: sure, but (1) I specifically said ayacc-specific grammar, and for point (2) that isn't relevant because bison is under the GPL too.
21:29:21 <ais523> b_jonas: no it isn't, bison has an exception
21:29:27 <ais523> basically because bison skeletons are copied into the output verbatim
21:30:46 <b_jonas> Bison has an exception to make its _output_ free from copyright stickiness, right? Same as how gcc has an exception for some parts of libgcc or whatever that often gets linked into the output but isn't covered by the "System Libraries" clause.
21:32:36 <b_jonas> But sure, gcc is probably a very good precedent.
21:35:50 <b_jonas> Hmm… maybe we could abuse the nethack4 bug tracker for tickets about ayacc eventually.
21:36:01 <b_jonas> It already works for aimake I think.
21:38:51 <izabera> https://test.drownattack.com/?site=https://www.intesasanpaolo.com my bank ;-;
21:40:07 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
21:40:47 <int-e> beautiful
21:43:00 <int-e> oerjan: fwiw it's ghc 7.10.2; I didn't see a reason to update to ghc 7.10.3
21:43:15 <b_jonas> As for ayacc, I tried to write a translator or compiler thingy that originally tried to emit readable code. I mostly failed, though part of that was that I didn't develop it much after the deadline.
21:43:53 <int-e> is aimake a(imake) or ai(make)?
21:44:07 <oerjan> aim(ake)
21:44:10 <b_jonas> That project was http://www.math.bme.hu/~ambrus/pu/olvashato/ of course
21:44:15 <b_jonas> int-e: I think it's (ai)make
21:44:27 <b_jonas> what would "imake" even mean?
21:44:35 <ais523> int-e: it's (ai)(make)
21:44:35 <Taneb> int-e, I always assumed it was an artificially intelligent version of make
21:44:39 <int-e> I guess it would be spelled Imake
21:44:47 <ais523> ai can either stand for artificial intelligence or (ai)s523
21:45:01 <int-e> "imake is a build automation system written for the X Window System."
21:45:31 -!- hppavilion[1] has joined.
21:46:40 <b_jonas> hmm... does the first "a" in "ayacc" stand for something in particular then?
21:46:48 <ais523> matches the first a in ais523, that's about it
21:47:23 <b_jonas> ok
21:47:58 <b_jonas> and I guess ancurses would sound lame, unlike uncurses
21:48:25 <oerjan> ain'curses
21:49:00 <int-e> accursed
21:50:17 <oerjan> nfoiled again
21:52:03 <ais523> it's called uncursed, it's just a nethack-related pun
21:52:12 <ais523> sticking an "a" at the start is boring if you could do a pun instead
21:52:18 <b_jonas> exactly
21:53:27 -!- mtve has quit (Ping timeout: 260 seconds).
21:53:47 <oerjan> b_jonas: hey is that you discussing grade skipping with scott a.
21:55:11 <b_jonas> oerjan: yes, I'm that b_jonas. and it's probably not one of my most insightful comments.
21:55:24 <b_jonas> not even among the ones on that blog
21:55:52 <oerjan> i just had a hunch and was wondering
21:56:05 <oerjan> (and you didn't use b_)
21:56:09 <b_jonas> right
21:56:21 <b_jonas> in some places I'm just jonas
21:56:24 <b_jonas> which isn't nearly as unique
21:56:39 <b_jonas> I'm practically the only b_jonas out there, but there are other people using "jonas"
22:00:00 <b_jonas> oerjan: worse, on some places, I have used both jonas and b_jonas, because I forgot which one I used.
22:00:13 <b_jonas> not on that blog luckily
22:00:34 <oerjan> heh
22:02:03 -!- augur has joined.
22:05:32 -!- lynn_ has joined.
22:06:01 <b_jonas> oerjan: this one really gives it away that at least some of the "jonas" comments are by me by the way => http://www.scottaaronson.com/blog/?p=2011#comment-154279
22:07:43 -!- lynn has quit (Ping timeout: 250 seconds).
22:10:05 <oerjan> i am not sure if i followed that thread
22:34:46 -!- Guest46248 has quit (Quit: Leaving).
22:43:55 -!- `^_^v has quit (Quit: This computer has gone to sleep).
22:44:13 -!- ais523 has quit.
22:49:12 -!- spiette has quit (Ping timeout: 276 seconds).
23:02:09 -!- p34k has quit.
23:05:55 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
23:41:22 -!- lynn_ has quit (Ping timeout: 260 seconds).
23:45:01 -!- hppavilion[1] has joined.
2016-03-02
00:07:15 <Taneb> YESS
00:07:18 <Taneb> YEEEEEEEES
00:07:49 <shachaf> Taneb: are you able to predict questions before they're asked of you?
00:08:08 <Taneb> Also, I have a brainfuck program that generates ASCII art banners!
00:08:24 -!- boily has joined.
00:08:39 <boily> `? weather
00:08:48 <Taneb> b_jonas, thanks! :D
00:08:49 <HackEgo> lambdabot: @@ @@ (@where weather) CYUL ENVA ESSB KOAK
00:08:51 <lambdabot> CYUL 020000Z 03010KT 10SM -SN OVC052 M10/M13 A3006 RMK SC8 SLP183 \ ENVA 012350Z 17020G34KT CAVOK 01/M07 Q0994 RMK WIND AT 670FT 17035G47KT \ ESSB 012350Z AUTO 12006KT 9999 OVC021/// M01/M05 Q1009 \ KOAK 012353Z 27010KT 10SM FEW100 FEW180 20/10 A3013 RMK AO2 SLP202 T02000100 10217 20167 56006
00:09:10 <boily> @massages-loud
00:09:12 <lambdabot> shachaf said 3h 36m 23s ago: do not @messages-loud this message twh
00:09:27 <boily> hellochaf. too late.
00:09:29 -!- Phantom_Hoover has joined.
00:09:42 <Taneb> izabera, would you mind terribly if I use arin.ga to paste a rather large amount of brainfuck?
00:12:11 <Taneb> Screw it, it's better to ask forgiveness than permission
00:12:54 <hppavilion[1]> Taneb: Yeah, but it's only easier if you don't explicitly say that to the person you would be getting permission (and will be asking for forgiveness) from
00:13:02 <hppavilion[1]> So here's a project to recruit more people to the #esoteric empire
00:14:26 * hppavilion[1] waits patiently for someone to respond so he knows that he's talking to something other than an empty room
00:16:24 <int-e> why, are you afraid of echoes?
00:17:47 <boily> hppavellon[1]. there's tofu in my mouth; I can't answer readily.
00:17:55 <shachaf> echoes?
00:18:00 <hppavilion[1]> int-e: Yes.
00:18:18 <hppavilion[1]> int-e: I'd rather not talk at all that talk and have it get buried and ignored
00:18:20 <Taneb> choes?
00:18:28 <shachaf> That's what usually happens.
00:18:30 * hppavilion[1] claps for shachaf and Taneb
00:18:34 <boily> ...oes...
00:18:42 * hppavilion[1] adds boily
00:18:58 <shachaf> oerjan: Oh, I got some intuition for par the other day.
00:19:08 <shachaf> but it turned out to be kind of scow tdnh
00:19:19 * boily does not mapole shachaf
00:19:25 <hppavilion[1]> So the idea is to create some simple (not 100% insane, but strange enough to be intriguing) esolangs that are practical to use
00:19:30 <Taneb> brainfuck program I "wrote": https://arin.ga/FQLSPy/
00:19:38 <int-e> ...lap ...ap
00:20:01 <hppavilion[1]> And publish them together with some project revolving around tehm
00:20:09 <hppavilion[1]> And watch what people do
00:21:00 <hppavilion[1]> They would be published on some blog (as opposed to esolangs.org, which defeats the purpose) with hopes of attracting new people, eventually to the point that we can do esolangs4charity or something like that
00:21:26 <hppavilion[1]> Also, because that way we get MOAR BRAINS.
00:21:32 <hppavilion[1]> To make MOAR ESOLANGS
00:22:04 <int-e> . o O ( moaronic spelling )
00:22:17 <hppavilion[1]> An example of a language is a declarative language/machine called TurMinsFuck, which is exactly what it sounds like
00:22:58 <boily> we will Conquer the World, one Eggplant at a Time!
00:23:06 <int-e> yum.
00:23:08 <hppavilion[1]> A side effect is that esolangs will show people how to implement languages, so we'll get MOAR non-esoteric languages too
00:23:16 <hppavilion[1]> boily: That's the plan
00:24:00 <hppavilion[1]> The aforementioned language is JSON-based, to ease implementation. The goal of users is to write a simple pseudo-OS in it
00:24:27 <hppavilion[1]> Or something, not sure yet
00:25:13 <int-e> so how many of hppavilion[1]'s ideas have materialized so far?
00:25:21 <hppavilion[1]> int-e: Thoof.
00:25:25 <hppavilion[1]> int-e: That's about it.
00:25:35 <hppavilion[1]> int-e: And it's unpublished as of yet
00:31:36 -!- tromp has joined.
00:31:52 <Taneb> I'm really proud I got his program working
00:33:14 <int-e> Taneb: that looks horrible :)
00:33:41 <int-e> also... <> ... doesn't look so useful :)
00:33:49 <Taneb> It's generated
00:34:00 <Taneb> I've been focusing on getting it working, not getting it looking nice
00:34:08 <Taneb> There's a whole bunch of <> and I think some +-
00:34:21 -!- lambda-11235 has joined.
00:34:33 <int-e> what does it do?
00:34:42 <Taneb> Generates ASCII art banners
00:35:48 <Taneb> It takes a string in input and prints a rendering of that string using just space and #
00:35:52 <int-e> I see.
00:36:50 <Taneb> Using the font b_jonas is designing
00:39:31 <hppavilion[1]> One type of brainfuck derivative I could never hate is one that uses novel data structures or types as its primitive- either instead of the tape or instead of the integers
00:42:42 -!- idyllei has joined.
00:47:35 <prooftechnique> What's the font?
00:47:54 <Taneb> prooftechnique, one b_jonas designed and shared with me
00:48:04 <hppavilion[1]> Taneb: At least run bf.replace('<>', '') on the program...
00:48:05 <Taneb> I'm afraid I've lost the appropriate links
00:48:21 <prooftechnique> Aww. Is it as nice as \oren\'s? :D
00:48:40 <Taneb> At the very least, it was more immediately available
00:49:27 <hppavilion[1]> prooftechnique: What do you think would be good for an esolang practical enough that people can use it, but esoteric enough to be interesting?
00:49:27 <Taneb> I really hope I win this competition
00:49:40 <hppavilion[1]> Taneb: Competition?
00:49:48 <prooftechnique> Taneb: Sounds like you have a good shot :)
00:50:06 <prooftechnique> hppavilion[1]: Humo sounds neat.
00:50:12 <Taneb> hppavilion[1], my uni's electronics society is running a brainfuck programming competition
00:50:21 <hppavilion[1]> prooftechnique: Humo?
00:50:23 <Taneb> My ego demanded I demonstrate I'm the best in my uni at brainfuck
00:50:27 <hppavilion[1]> Taneb: Awesome xD
00:50:35 <prooftechnique> https://github.com/fpetrola/humo
00:50:39 <hppavilion[1]> Taneb: I don't see how you could lose
00:50:48 <prooftechnique> Also https://esolangs.org/wiki/Humo
00:50:53 <hppavilion[1]> prooftechnique: I made a proof assistant based on s/// notation already :)
00:51:11 <Taneb> hppavilion[1], well, the deadline is just listed as "the 2nd of March", and I submitted this at 00:15
00:51:22 <hppavilion[1]> Taneb: Ah
00:51:38 <Taneb> I've submitted solutions for all the easier challenges, though
00:51:51 <hppavilion[1]> Taneb: Wait, but does that mean at the beginning or end of march 2?
00:51:58 <Taneb> I've got no idea
00:52:01 <hppavilion[1]> Taneb: Oh, this wasn't your own project?
00:52:14 <hppavilion[1]> Taneb: As in, your own idea for a freestyle competition
00:52:15 <Taneb> I presume not the latter as the winner is announced at 2
00:52:22 <hppavilion[1]> Ah
00:52:36 <int-e> tsk, the program overflows when given a 0xFF character as input
00:52:49 <hppavilion[1]> DISQUALIFIED
00:52:51 <Taneb> It wasn't my idea, but I think I'm the only person who attempted it
00:53:00 <hppavilion[1]> Ah
00:53:06 <hppavilion[1]> Taneb: How'd you generate it?
00:53:16 <Taneb> hppavilion[1], Haskell script
00:53:22 <hppavilion[1]> Ah
00:53:42 <Taneb> It's got a fairly regular structure, it's just really tedious and finicky
00:53:55 <Taneb> There's a whole load of improvements I can make
00:53:58 <hppavilion[1]> Taneb: Did the competition include specifications about the particular bf dialect?
00:54:23 <hppavilion[1]> Taneb: I recommend you start maintaining it as FOSS and get it included in some distribution of Linux as a standard command xD
00:54:27 <Taneb> 32 bit word size, EOF is no change, 30000-length tape aborting on memory error
00:54:40 <hppavilion[1]> Ah
00:54:40 <int-e> characters 3,4,5,6 look so asymmetric
00:54:54 -!- idyllei has quit (Quit: Leaving).
00:55:09 <hppavilion[1]> I'm tempted to feed it to tryitonline
00:56:02 <hppavilion[1]> I now must wait a year for it to output
00:56:31 <int-e> (I did this: for i in $(seq 255); do echo $i; echo ${i}P | dc | ./a.out banner.bf; done ... where a.out is a brainfuck interpreter)
00:56:42 <Taneb> hppavilion[1], for the purpose of this competition the reference interpreter is https://copy.sh/brainfuck/
00:56:43 <int-e> I should use printf.
00:57:21 <int-e> (but it's an 8 bit version)
00:57:35 <Taneb> int-e, it should work fine on an 8-bit interpreter
00:58:02 <int-e> Taneb: it does, except for character 255
00:58:19 <Taneb> Ah, shit, I can see why that would happen
00:58:21 <hppavilion[1]> Taneb: Do I pass it input with ! or what?
00:58:33 <Taneb> hppavilion[1], depends on your brainfuck implementation
00:58:45 <Taneb> Give it input as normal for your implementation
00:58:48 <hppavilion[1]> Taneb: With the reference
00:59:12 <Taneb> There's a little input box under the output box
00:59:34 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
00:59:35 <hppavilion[1]> Oh!
01:00:01 <hppavilion[1]> That's amazing
01:00:20 <hppavilion[1]> Taneb: Bookmarked the paste
01:00:37 <Taneb> :)
01:00:44 <hppavilion[1]> prooftechnique: An example of a language of that form is a TM+MM+BF description language
01:00:47 <Taneb> It's for now All Rights Reserved probably
01:00:53 <hppavilion[1]> Taneb: xD
01:01:17 <Taneb> Please don't redistribute it without asking me
01:01:21 <hppavilion[1]> OK
01:01:32 <hppavilion[1]> Taneb: You should FOSS it when the competition ends and start actively maintaining it as a joke.
01:01:54 <hppavilion[1]> Taneb: What strategies are used to generate BF as such? Is there something I could read on this?
01:02:17 -!- Opodeldoc has joined.
01:02:31 <Taneb> hppavilion[1], I'm using a couple things from around the internet and a lot of things on the inside of my head
01:02:42 <hppavilion[1]> OK
01:03:08 <lifthrasiir> bf program is not very hard to write (assuming you know some essential tricks like [-]) as long as you don't need arrays
01:03:10 <Taneb> I linked something this afternoon about brainfuck control structures
01:03:22 <Taneb> lifthrasiir, this... this uses arrays
01:04:02 <lifthrasiir> Taneb: to be exact, free-form arrays? I guess you store your text up somewhere and seek to the beginning or end by [<] or [>]
01:04:12 <prooftechnique> Was it oerjan who determined that 3-cell BF is Turing complete?
01:04:14 <Taneb> lifthrasiir, sort of ish
01:04:18 <Taneb> prooftechnique, yeah
01:04:23 <prooftechnique> That was a fun day :)
01:04:30 <hppavilion[1]> Taneb: If one were to make a brainfuck that was made for much easier development (while still remaining esoteric), what instructions and changes do you think would be crucial?
01:04:33 <lifthrasiir> explicit arrays are harder, and multiple arrays at once are much harder
01:04:36 <Taneb> lifthrasiir, I'm actually storing 20 copies of each character, with a bunch of cells of working space
01:04:37 <hppavilion[1]> (This is turning into an interview xD)
01:04:54 <lifthrasiir> Taneb: is your banner 20 lines high? :p
01:04:57 <Taneb> lifthrasiir, yeah
01:05:00 <lifthrasiir> great
01:05:21 <Taneb> hppavilion[1], I think it would require enough changes to be not brainfuck at all any more before it's easy to use
01:05:31 <lifthrasiir> I guess I would have used a pair of cells instead, but yeah, that shouldn't really matter
01:05:34 <Taneb> I don't program in brainfuck because it's easy
01:05:40 <Taneb> I program in it because it's hard
01:05:52 <hppavilion[1]> Taneb: Not "easy", but "easier"
01:06:00 <Taneb> lifthrasiir, and then I'm doing [<<...<<] with 200 or so <s
01:06:10 <hppavilion[1]> Taneb: For example, a language for OS development based on BF
01:06:25 <lifthrasiir> Taneb: yeah that becomes a problem when you have 20 copies of them
01:06:37 <lifthrasiir> copying on demand seems better
01:06:48 <tswett> `coins
01:07:12 <lifthrasiir> is that the backquotecoin?
01:07:33 <HackEgo> No output.
01:07:34 <tswett> Sump'm like that.
01:07:34 <Taneb> hppavilion[1], an easier way to do conditionals
01:07:50 <Taneb> The [-[-[-[-[-[-[-[-[-[-[-[-[-s in my program are setting up for a form of case statement
01:08:04 <hppavilion[1]> Taneb: Ooh, yeah.
01:09:21 <tswett> I think a "brainfuck assembly language" would be nice. Some language whose purpose is to specify exact brainfuck programs.
01:09:42 <hppavilion[1]> Taneb: Perhaps something a bit JSONy? {case: code; case: code; case: code...}
01:09:54 <hppavilion[1]> tswett: I think someone did that already
01:09:59 <Taneb> That doesn't seem to me to be in the spirit of brainfuck
01:10:07 <tswett> hppavilion[1]: then I want to see it.
01:10:08 <hppavilion[1]> Taneb: I agree, but it was the best I could think of
01:10:18 <hppavilion[1]> tswett: Search the wiki
01:10:31 <hppavilion[1]> "Brainfuck assembly" or something like that
01:12:00 <Taneb> tswett, what I'd like is some sort of specification and verification system for brainfuck
01:12:11 <tswett> Say, does anyone know about that "fantasy game console"? It's like an emulator of an old video game console, except it was designed from scratch instead of actually emulating any particular console.
01:12:41 <hppavilion[1]> I'd like an IRC client with repetition protection
01:12:42 <hppavilion[1]> I'd like an IRC client with repetition protection
01:14:05 <tswett> Do what the cool kids do—say three lines just milliseconds apart.
01:14:05 <tswett> Like this.
01:14:05 <tswett> See?
01:14:07 <hppavilion[1]> Taneb: Perhaps just {...} instructions that are like [] but } doesn't jump back (essentially, a NOP that other instructions move based on)
01:14:07 -!- deltab has quit (Ping timeout: 260 seconds).
01:14:19 <hppavilion[1]> tswett: xD
01:14:34 <tswett> Anyway...
01:14:35 <hppavilion[1]> tswett: I see it took you a while to copy the newline character
01:14:38 -!- deltab has joined.
01:14:49 <tswett> hppavilion[1]: come up with a nonsense word please.
01:15:05 <hppavilion[1]> lakalrocious
01:15:17 <tswett> Great, thanks.
01:15:22 <hppavilion[1]> tswett: Why?
01:15:49 <tswett> So that I can use it to name my software project.
01:15:52 <hppavilion[1]> Ah
01:16:02 <hppavilion[1]> tswett: What does the project do?
01:16:24 <tswett> It's a bunch of mathematics written in Coq.
01:17:15 <Taneb> The feeling where you've been trying hard for a while to get something to work
01:17:17 <Taneb> And then it works
01:17:19 <hppavilion[1]> Ah
01:17:23 <Taneb> And you don't know what to do next
01:17:27 <Taneb> Is kind of frustrating
01:17:29 <hppavilion[1]> Taneb: I wish I knew that feeling...
01:17:57 <hppavilion[1]> xD
01:19:00 <hppavilion[1]> tswett: You should prove something in Thoof when it's ready
01:20:20 <hppavilion[1]> Are any of the trig functions functionally complete for the trig functions?
01:21:16 <tswett> Well, it's pretty easy to write all of them in terms of the sine function.
01:21:31 <hppavilion[1]> tswett: In a way a computer can efficiently calculate?
01:21:35 <tswett> cos(x) = sin(pi/2 - x), I think it is.
01:22:04 <Taneb> hppavilion[1], is division availabe
01:22:09 <tswett> Then tan(x), sec(x), csc(x), and cot(x) can all be written as ratios of sin(x) and cos(x).
01:22:12 <hppavilion[1]> Taneb: Maybe
01:22:22 <hppavilion[1]> I just broke a glass with my teeth, somehow...
01:22:31 <Taneb> Then sin, cos, sec, csc
01:23:07 <hppavilion[1]> tswett: Would a BF-inspired proof assistant be at all a good idea?
01:23:20 <hppavilion[1]> For the #esoteric-standard value of good idea
01:23:21 <tswett> Probably not.
01:23:33 <hppavilion[1]> tswett: Factor in that message and re-answer
01:23:40 <tswett> First, do one inspired by C.
01:23:46 <hppavilion[1]> tswett: Pfffft
01:23:55 <tswett> If that turns out to have been a good idea, go and do it for BF.
01:23:58 <hppavilion[1]> tswett: I did one inspired by Thue and it works pretty well
01:24:07 <tswett> Oh?
01:24:12 <tswett> How's it work?
01:24:29 <hppavilion[1]> tswett: Well, it wouldn't be much like BF; it'd have the tape and such, but not the imperative structure
01:24:36 <hppavilion[1]> tswett: Well, it's based on s///
01:24:47 <hppavilion[1]> tswett: And, to a lesser extent, y///
01:25:16 <Taneb> I'm heading to bed now
01:25:17 <Taneb> Goodnight!
01:25:21 <hppavilion[1]> Basically, you create a series of axioms- known strings and substitutions- then you apply the known axioms to known strings until you get a goal string
01:25:24 <hppavilion[1]> Taneb: 'night
01:25:39 <hppavilion[1]> tswett: It's PCRE more so than Thue
01:26:25 <hppavilion[1]> You can also do things like @<axiom/theorem/lemma> to apply an axiom/theorem/lemma as a fixpoint, which applies it to the string until it stops changing
01:27:16 <hppavilion[1]> And there's ?<thelemax>, which yields the set of the current string AND the current string when you apply thelemax
01:27:32 <hppavilion[1]> (thelemax is short for theorem/lemma/axiom, and is used a lot in the docs)
01:27:55 <hppavilion[1]> tswett: So you prove things by substituting using PCRE regexes on a known string, and you get new strings that represent your proof
01:28:29 <hppavilion[1]> tswett: Though future versions will support regex styles other than PCRE- e.g. Pure Kleene Regexes and standard regexes
01:28:35 <hppavilion[1]> And, of course, raw strings
01:29:28 <hppavilion[1]> tswett?
01:29:37 <tswett> Lemme see.
01:29:44 <hppavilion[1]> tswett: Best of all, I even have a Thoof interpreter working, partially
01:29:49 <hppavilion[1]> OK, one sec, let me publish it
01:30:14 <tswett> All right, I see what you're doing here.
01:30:21 <tswett> Do you know what a formal system is?
01:30:37 <oerjan> <hppavilion[1]> tswett: I think someone did that already <-- pikhq's bfm which was renamed to something else - pickle?
01:32:25 <hppavilion[1]> tswett: https://github.com/ZodiacWorkingGroup/Thoof
01:32:49 <hppavilion[1]> tswett: Yes, yes I do
01:32:51 <hppavilion[1]> I think
01:33:02 <hppavilion[1]> tswett: Note that y/// and ?<thelemax> don't yet work; I just added them today
01:33:11 <hppavilion[1]> (well, y/// might not have been today, but I think it was)
01:33:22 <hppavilion[1]> (To the docs, that is, not to the code)
01:33:57 <hppavilion[1]> tswett: construct.thoof is the file with the working, tested code in it
01:34:33 <tswett> Now, Thue is already a language for specifying formal systems.
01:34:46 <hppavilion[1]> tswett: Yes, yes it is
01:35:06 <hppavilion[1]> Semi-thue systems
01:35:31 <hppavilion[1]> tswett: Did I do something wrong? xD
01:35:41 <tswett> Nah, lemme keep typing.
01:35:46 <hppavilion[1]> OK
01:35:55 <tswett> You've taken Thue, extended it, and also built a system for specifying specific Thue derivations.
01:36:13 <tswett> So if you want to do the analogous thing for brainfuck, you'll build a system for specifying specific brainfuck derivations.
01:36:14 <hppavilion[1]> (One problem with IRC: None of the "x is typing" stuff fancy new chat things have)
01:36:22 <hppavilion[1]> tswett: Oh no...
01:36:27 <oerjan> <hppavilion[1]> (thelemax is short for theorem/lemma/axiom, and is used a lot in the docs) <-- i'm pretty sure that word belongs in the other #esoterics hth
01:36:27 <tswett> And that raises a question: what is a brainfuck derivation?
01:37:01 <hppavilion[1]> tswett: So "specific Thue derivations" means what exactly?
01:37:17 <tswett> Specific ways of following the rules with a given start string in order to end with a given end string.
01:37:18 <hppavilion[1]> tswett: Also, note that you have to call substitution rules manually; they aren't automated
01:37:30 <hppavilion[1]> Ah
01:37:30 <tswett> Right. The derivation is the sequence of calls.
01:37:48 <tswett> There are two "problems" with the idea of a brainfuck derivation.
01:37:56 <hppavilion[1]> You can still call them in Thue-like fashion, by putting the desired ruleset in a theorem and fixpointing it (@)
01:38:07 <hppavilion[1]> tswett: I'm sure one is that BF is imperative
01:38:13 <tswett> One is that brainfuck, unlike Thue, is deterministic. Given a starting state and a program, there's only one way that you can proceed.
01:38:24 <hppavilion[1]> Ah, yes
01:38:36 <hppavilion[1]> tswett: I think there's another word for that
01:38:56 <hppavilion[1]> Unless you mean Thue is probabilistic, which is implementation-defined
01:39:55 <tswett> And the other "problem" is that brainfuck code works by taking a starting tape state (or tape segment state) and ending with another tape (segment) state.
01:40:26 <tswett> Now, resolving the first "problem" seems easy, I think. Just add more instructions, which are nondeterministic.
01:40:48 <hppavilion[1]> tswett: I can't tell what you mean by "deterministic" and "nondeterministic" here, based on what I assume they mean
01:40:56 <tswett> As for the second "problem"... I'll tell you what I can tell you and I'll let you run with it.
01:41:34 <tswett> "Deterministic" means "given the state for a time step, there is at most one possible state for the following time step".
01:41:55 <hppavilion[1]> Ah
01:42:18 <hppavilion[1]> tswett: I was thinking deterministic was non-probabilistic, but a search tells me probabilistic is a subset of nondeterministic
01:42:55 <tswett> Yeah. A nondeterministic system simply says something like "proceed to either A or B". A probabilistic system, on the other hand, says something like "proceed to A with probability 0.5, B otherwise".
01:42:59 <hppavilion[1]> tswett: So in this case, nondeterministic is like Algebra where you can rewrite in multiple different ways?
01:43:18 <tswett> Yeah, I'd say algebra is an example of a nondeterministic system.
01:43:23 <hppavilion[1]> OK
01:44:01 <tswett> Thue and brainfuck both involve a concept which is ubiquitous in programming, and also elsewhere in mathematics. They both involve specifying ways of going from one state to another state.
01:44:19 <hppavilion[1]> tswett: So can you clarify the second problem? I don't quite get it
01:44:50 <tswett> In Thue, what the "states" are and what the "ways of going" are are pretty straightforward. The "states" are the various strings that you can have as... y'know, the program state.
01:44:55 <tswett> And the "ways of going" are the individual rules.
01:45:30 <hppavilion[1]> OK
01:45:33 <tswett> In brainfuck, it's a little more subtle. The "states" are states of the tape... but are they states of the entire tape, or states of just pieces of the tape?
01:45:46 <hppavilion[1]> Ah...
01:45:58 <tswett> The easiest answer is "they're states of the entire tape". And that's a totally valid answer.
01:46:07 <hppavilion[1]> So it's like how different code will use different areas of the tape?
01:46:19 <tswett> Something like that... probably.
01:46:45 <tswett> But the problem with "they're states of the entire tape" is that... well, it's that every single piece of code has to be seen as affecting the entire tape.
01:46:52 <tswett> Which might be a little inflexible.
01:47:00 <hppavilion[1]> tswett: I mean the fact that, without running code, you can't determine what cells will and will not be used
01:47:08 <hppavilion[1]> (Even if we exclude ,)
01:47:25 <hppavilion[1]> tswett: Perhaps I could do something with a 2-tape
01:47:26 <tswett> That is true...
01:47:28 <tswett> Well.
01:47:35 <tswett> Lemme work with an example.
01:47:41 <tswett> Consider the following piece of brainfuck code: +
01:48:02 <hppavilion[1]> Where you have 8 cells that each rule can use, and at the end (and only at the end) of a rule, you transition to another group of 8 cells
01:48:13 <tswett> Here's what that code does, under the "states of the entire tape" choice:
01:48:54 <hppavilion[1]> That way, you can guarantee that the code will only use those 8 cells
01:48:56 <tswett> It takes a tape, and returns a tape where the active cell is the same cell as in the original tape, and all of the cells have the same value, except that the active cell contains a value equal to one plus its prior value.
01:49:06 <tswett> Here's what that code does, under the "states of just pieces of the tape" choice:
01:49:15 <hppavilion[1]> It's not just brainfuck that lets you do math, the idea is it's something novel that is vaguely inspired by brainfuck
01:49:20 <tswett> It takes a tape cell, and returns a cell containing a value equal to one plus the prior value.
01:49:38 <hppavilion[1]> tswett: Yes, I get it. I think that's what I said earlier
01:49:52 <tswett> The latter style is easier to talk about because it just doesn't mention the rest of the tape at all.
01:50:53 <tswett> So, here's how I think it's going to look.
01:50:54 <hppavilion[1]> With BF\IO, you pretty much can't determine what cells a fragment of code will modify (given the current active cell number and the fragment) short of running the code
01:51:10 <hppavilion[1]> And especially if the area of the tape has potentially been modified before
01:51:10 <HackEgo> [wiki] [[Dis]] https://esolangs.org/w/index.php?diff=46482&oldid=30820 * 94.12.170.129 * (-2) fixed the wayback link
01:51:13 <tswett> Axioms are pieces of extended-brainfuck code.
01:51:18 <hppavilion[1]> OK
01:51:23 <hppavilion[1]> That's what I was thinking
01:51:25 <tswett> Theorems have three pieces.
01:51:31 <hppavilion[1]> Listening
01:51:59 <tswett> First, the starting state of the tape segment. Second, the ending state of the tape segment. Third, a way of using axioms to get from the starting state to the ending state.
01:52:12 <hppavilion[1]> Yep?
01:52:27 <tswett> And that's pretty much that.
01:52:30 <hppavilion[1]> Starting state and ending state?
01:52:38 <tswett> What about them?
01:52:40 <hppavilion[1]> One sec
01:52:56 <hppavilion[1]> Let me read back, I may have accidentally expunged crucial information from my short-term memory
01:53:12 <tswett> Now, there are two ways of taking theorems and getting new theorems. First, you can take a theorem with a given ending state, and another theorem whose starting state is the same, and string those two theorems together.
01:53:34 <hppavilion[1]> tswett: The "state" is the values on a tape fragment, correct?
01:53:39 <tswett> Second, you can take a theorem and add additional cells to the beginning and/or end of the starting and ending states.
01:53:40 <tswett> Right.
01:53:56 <tswett> So if (0) -> (3) is a theorem, then (0,42) -> (3,42) is also a theorem.
01:53:57 <hppavilion[1]> Interesting...
01:54:29 <hppavilion[1]> tswett: So the start -> end part isn't stored, because of the large number of possible transitions?
01:54:59 -!- FreeFull has quit (Remote host closed the connection).
01:55:15 <tswett> Well, like I said, a theorem has those three pieces: starting state, ending state, and sequence of... steps. Storing the theorem means storing all three of those pieces.
01:55:26 <hppavilion[1]> Oh
01:56:09 <hppavilion[1]> tswett: So a theorem stores a relation between two values and a list of thelemax references?
01:56:21 <tswett> Sounds right.
01:56:32 <hppavilion[1]> Basically, a constrained in value and an equation that you run on that value to calculate the out value
01:57:06 <tswett> Right, except I don't think the word "equation" is the right word there.
01:57:12 <hppavilion[1]> tswett: Formula?
01:57:29 <tswett> It'll be a program, or a sequence of programs, where you specify choices for all of the nondeterministic bits of the program.
01:57:32 <hppavilion[1]> tswett: That message just referred to the relation
01:57:49 <tswett> Ah.
01:57:57 <hppavilion[1]> Not to the list of axioms
01:58:00 <tswett> In that case, yeah, exactly.
01:58:13 <tswett> You're actually getting ahead of what I was saying—which is good.
01:58:26 <hppavilion[1]> Yay!
01:58:37 <hppavilion[1]> tswett: Also, do you have any suggestions for things to make Thoof better (based on what you've heard), or any other languages that could be made into proof assistants after I do this?
01:58:39 <tswett> So far I'd only mentioned theorems with one specific in value and one specific out value. But it makes sense to extend that as much as you like.
01:58:52 <tswett> Thoof is the proof system inspired by Thue?
01:59:01 <hppavilion[1]> tswett: Yes, forgot to mention that
01:59:26 <tswett> Hmm. Not sure about Thoof, but let me think about other languages to make into proof assistants.
01:59:36 <tswett> If you're insane, try ///.
01:59:53 <tswett> Whose wiki page is, of course: http://esolangs.org/wiki////
02:00:18 -!- AlexR42 has joined.
02:00:24 <hppavilion[1]> tswett: Isn't that what I did? Or is /// self-modifying?
02:00:27 <tswett> Consider doing it for Unlambda.
02:00:32 <tswett> /// is self-modifying.
02:00:58 <tswett> Unlambda and /// are both deterministic. But, as always, it's easy to make a deterministic language non-deterministic: just add additional instructions.
02:01:22 <tswett> Or, here's how I'd suggest making /// nondeterministic.
02:01:32 <hppavilion[1]> tswett: I'm definitely making an Unlambda one xD
02:01:46 <tswett> Currently, the specification says that when you're performing a substitution, you find the first instance of the pattern string and replace it with the replacement string.
02:01:46 <hppavilion[1]> Then again, unlambda practically already /is/ a proof assistant
02:02:05 <tswett> Here's the nondeterministic version: find *any* instance of the pattern string and replace it with the replacement string.
02:02:16 <hppavilion[1]> Oooh...
02:02:30 <hppavilion[1]> And let the mathgrammer choose which instance it is?
02:02:38 <tswett> So the program "/***/zebra/*****" could output "zebra**", "*zebra*", or "**zebra".
02:02:40 <tswett> Exactly.
02:02:57 <tswett> In /// as it is, there's only one possible output: "zebra**".
02:03:01 <hppavilion[1]> tswett: Perhaps I should just put that in Thoof? For simplicity?
02:03:11 <hppavilion[1]> tswett: I mean, thoof isn't meant to be uber-minimal
02:03:20 <hppavilion[1]> It's meant to be usable, but non-conventional
02:03:24 <tswett> Put what in Thoof?
02:03:33 <hppavilion[1]> tswett: The ability to choose which is replace
02:03:34 <hppavilion[1]> d
02:03:47 <tswett> I assumed that you already had that as a feature, actually.
02:03:59 <hppavilion[1]> tswett: As it is, thoof just replaces the first instance of the regex with its substitution when it's called
02:04:02 <hppavilion[1]> Ah
02:04:12 <hppavilion[1]> Well, when an axiom is called/applied
02:04:31 <tswett> So what do you do if you want to replace a different instance instead?
02:04:48 <hppavilion[1]> tswett: You make sure the regexes and strings are set up so that you don't xD
02:04:55 <hppavilion[1]> tswett: But that's a good point that I didn't think of
02:05:03 <hppavilion[1]> tswett: I was already considering a {} notation
02:05:15 <tswett> Yeah, I'd definitely put that in Thoof for simplicity.
02:05:20 <hppavilion[1]> OK
02:05:33 <tswett> Unless, of course, you like the complications produced by not having that in Thoof.
02:05:40 <hppavilion[1]> I don't xD
02:05:42 <hppavilion[1]> Not completely
02:06:07 <hppavilion[1]> thelemax{n} replaces the nth instance, thelemax{:n} replaces all up to the nth instance, thelemax{n:} replaces all starting with the nth instance, and thelemax{n} replaces the nth instance, thelemax{:n} replaces all up to the nth instance, thelemax{n:m} replaces all starting at n and ending at m?
02:06:22 <hppavilion[1]> All :x are not inclusive, and x: are inclusive
02:07:11 <hppavilion[1]> tswett: That syntax look good?
02:07:45 <tswett> I think I like that. Also allow the user to specify multiple non-contiguous instances: {1,6,7,10000}
02:07:50 <hppavilion[1]> tswett: Ah, yes
02:07:56 <hppavilion[1]> tswett: And, of course, specify from the end
02:08:00 <tswett> Here's a question: how many instances of "***" are there in "******"?
02:08:04 <tswett> In my opinion, there are four.
02:08:11 <hppavilion[1]> tswett: 4
02:08:38 <tswett> Likewise, three instances of "abba" in "abbabbabba".
02:08:43 <hppavilion[1]> tswett: The thing will go with overlapping matches, for generality
02:09:08 <tswett> If the user tries to replace two overlapping instances simultaneously, that's probably an error.
02:09:21 <hppavilion[1]> tswett: I thought of letting Thoof use a small unix-like filesystem to store data too xD
02:09:33 <hppavilion[1]> (And, while we're at it, possibly thelemaxes)
02:09:44 <hppavilion[1]> tswett: Yeah, probably
02:10:09 <tswett> Now, what happens if, in the string "abbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabba", I use thelemax{3:5}, where my thelemax turns "abba" into "jonsi"?
02:10:17 <oerjan> replace what thou wilt shall be the whole of the instance
02:10:32 <tswett> Is that an error, since instances 3 and 4, and likewise 4 and 5, are overlapping?
02:11:27 <hppavilion[1]> tswett: The third and fourth instances of abba are replaced with jonsi. What else would happen?
02:11:37 <hppavilion[1]> Oh, right
02:11:39 <hppavilion[1]> Overlap
02:11:56 <hppavilion[1]> tswett: Note that it terminates one instance early, like in Python
02:11:58 <hppavilion[1]> Actually, no
02:12:09 <hppavilion[1]> I should make it index from 1 for logic's sake
02:12:22 <tswett> You could say it's an error. You could also say that, going from left to right, it chooses all of the instances that don't overlap with a previously chosen instance.
02:12:35 <tswett> In which case you could have syntax for deciding whether you want to go from left to right, or from right to left.
02:12:56 <hppavilion[1]> tswett: negative numbers work from the right, like in Python
02:13:07 <hppavilion[1]> Because it makes sense and there's no reason not to
02:13:44 <hppavilion[1]> (There's no confusion because you can't use a variable or anything in {}, as the only variables are theorems/lemmas/axioms, which can't be numbers)
02:14:17 <hppavilion[1]> tswett: That idea's good too...
02:14:23 <tswett> I guess it could just be a matter of {3:5} versus {5:3}.
02:14:35 <hppavilion[1]> Perhaps [] should be non-overlapping, while- oh, yeah, good point
02:14:56 <hppavilion[1]> Wait, no, that was unrelated, wasn't it
02:15:04 <hppavilion[1]> [] will not overlap, but {} will
02:15:14 <hppavilion[1]> {} will raise an error on overlaps
02:22:08 <boily> . o O ( banananananananana... )
02:22:29 <hppavilion[1]> boily: I once wrote a program with the express purpose of doing that
02:27:31 <boily> Mr. Hppavilion[1]'s Patented Banana Proliferaton Programme, Enhanced With the Purest of Potassiums. Guaranteed to Cure your Personal Ailments!
02:28:05 -!- andrew_ has joined.
02:28:35 <oerjan> surely that should be Dr. Hppavilion[1]
02:28:53 <boily> hppavilion[1]: are you a doctor? are you even a mister?
02:29:10 <oerjan> he does look misterious
02:29:18 * boily lightly prods hppavilion[1] with his mapole, just to make sure
02:29:33 * boily thwacks oerjan
02:30:18 <oerjan> how brutal
02:30:58 <boily> that pun registered at least 0.8 shachafs.
02:36:47 <boily> I think hppavilion[1]'s secret is now uncovered. he isn't human, or at least appröximatively human.
02:37:25 -!- boily has quit (Quit: CYCLOPEAN CHICKEN).
02:48:07 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
02:50:38 -!- andrew_ has quit (Ping timeout: 248 seconds).
03:00:36 -!- bender|_ has joined.
03:04:07 -!- andrew_ has joined.
03:14:01 -!- hppavilion[1] has joined.
03:14:48 <hppavilion[1]> tswett: I'm back
03:17:34 <tswett> `unidecode ḧ
03:17:45 <HackEgo> ​[U+1E27 LATIN SMALL LETTER H WITH DIAERESIS]
03:18:35 <tswett> Ḧëllö, ḧppävïlïön[1].
03:18:55 -!- AlexR42 has quit (Ping timeout: 252 seconds).
03:23:58 -!- FreeFull has joined.
03:33:19 <hppavilion[1]> tswett: Hi
03:33:24 <hppavilion[1]> tswett: Forgot to respond xD
03:47:52 -!- augur has quit (Remote host closed the connection).
04:08:00 -!- oerjan has quit (Quit: leaving).
04:12:33 <prooftechnique> helloerjan, helloily, tswello, heppavellolion[1] :)
04:41:38 -!- augur has joined.
04:49:24 -!- bender|_ has changed nick to bender.
04:49:33 -!- bender has quit (Changing host).
04:49:33 -!- bender has joined.
04:50:44 <bender> It's been a long time since I did esoteric stuff
04:51:08 <shachaf> `welcome bender
04:51:13 <HackEgo> bender: 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.)
04:56:49 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
04:58:40 <zzo38> Which one did you do in past (if any)?
04:59:09 <shachaf> zzhello38
04:59:36 <shachaf> Do you have any tricks for linear logic?
05:01:35 <zzo38> I don't think so
05:04:40 <zzo38> I would want to add into JavaScript a goto command which can implement a kind of "evasive exception", for example: function test() { again: xyzzy(()=>{goto again;}); return 1; } It cannot be caught by "catch" blocks, but "finally" can still partially catch it. What is your opinion of this?
05:05:27 <shachaf> Seems dubious to me.
05:05:31 <zzo38> (Of course it won't work if the that function that does goto again is called after test function returns; it such case it is error and is caught by a catch block.)
05:05:54 <shachaf> Why not make it work the second time, so you get a continuation thing?
05:07:28 <zzo38> I think JavaScript does not use continuations? But if it can be made to do so, then it might. However, then there is the case if a different part of the program does not want it to work a second time.
05:09:27 <zzo38> For generator functions it is a bit more easily though
05:12:44 <zzo38> (Jumping into any block is also going to be error, but depending how it is written it may be a syntax error which is seen before the program is executed.)
05:15:13 <zzo38> Anyways, "return" means the function is finished and is not allowed to continue, isn't it?
05:18:33 <zzo38> Note that in the example given, the "again" is local to the instance of the function call, as if it was "var x" and it passed a function that mentions "x", it is the "x" of this function call, too (but that is a variable and doesn't need the function to continue after it returns in order to use that variable)
05:19:28 <zzo38> If you would write "goto again;" outside of the function definition then the label called "again" is not in scope so it is an error.
05:19:36 -!- impomatic has quit (Ping timeout: 246 seconds).
05:20:39 <zzo38> Having "goto" would also make it easier for a JavaScript program to compile other stuff into a JavaScript program (such as with "new Function").
05:21:34 -!- impomatic_ has quit (Ping timeout: 248 seconds).
05:22:09 <zzo38> How else would you do it? One idea would be to first convert the other code into basic blocks, but and then what?
05:25:37 -!- augur has quit (Remote host closed the connection).
05:30:42 -!- augur has joined.
05:35:31 -!- hppavilion[1] has joined.
05:37:11 <shachaf> oerjan: whoa whoa whoa, the whole !A -o B and !A -o ?B thing makes perfect sense
05:37:23 <shachaf> and also presumably A -o ?B for dual intuitionistic logic
05:38:12 <hppavilion[1]> I want to start implementing software in abstract machines...
05:45:53 <zzo38> What kind of abstract machines?
05:49:08 -!- andrew__ has joined.
05:50:51 <hppavilion[1]> zzo38: Tag systems, for example
05:51:11 <hppavilion[1]> Perhaps in some way augmented, but it's doubtful
05:52:09 -!- andrew_ has quit (Ping timeout: 246 seconds).
05:58:31 <hppavilion[1]> Perhaps a programming language for constructing pseudo-operating systems where various components are first-class objects?
05:58:39 <hppavilion[1]> Nah, that's stupid and I don't understand OSes
06:12:34 -!- pdxleif has joined.
06:20:19 -!- MoALTz has joined.
06:21:39 <hppavilion[1]> tswett: You're still online. Is this because you never log off but are currently sleeping, or are you actually on?
06:34:31 -!- AnotherTest has joined.
06:34:50 <hppavilion[1]> Ugh, with my current setup it'll be a huge pain in the ass to properly make Thoof work
06:41:45 -!- AnotherTest has quit (Ping timeout: 276 seconds).
06:50:50 -!- augur has quit (Remote host closed the connection).
06:53:33 <b_jonas> Taneb: do you properly do unicode CNF normalization on the string before you get the glyphs from the font?
06:55:44 -!- heroux has quit (Ping timeout: 260 seconds).
06:57:50 -!- heroux has joined.
06:58:54 -!- lambda-11235 has quit (Quit: Bye).
07:05:59 <b_jonas> zzo38: re evasive exceptions: perl has exactly that. there are some compications if you want to exit through xs functions (depending on how exactly they call back to perl), sort blocks, regex code blocks, and other strange constructs. You may be able to leave with an exception, a goto, both, or neither, depending on the construct and the version of perl.
07:06:49 <b_jonas> zzo38: ruby also sort of has something like this, in that there are more things than exceptions that you can throw, and a catch catches only exceptions, but I'm not sure there's a finally construct that catches all the others. There's no full-powered goto though.
07:10:26 <b_jonas> zzo38: specifically, things you can throw are exceptions, four loop control statements which act on the function that got passed the lexically curretn ruby-like yield callback block as a yield argument (break (=perl's last), next, redo, retry (jumps to before the function call)), function return, plus internal fatal error thingies like out of memory that you can't catch.
07:11:15 -!- lynn has joined.
07:13:05 <b_jonas> zzo38: there's also a callcc, which is nastier. I think it makes a copy of the C stack or something. I think it still tries to run some finalize blocks, but I'm not sure if there's a corresponding scheme-like on-enter block too.
07:13:20 <b_jonas> For search, finally is called ensure in ruby.
07:14:07 <b_jonas> Ruby's non-exact gc (at least in ruby 1.8, I don't know if they replaced it) helps this sort of thing of course.
07:40:23 <prooftechnique> b_jonas: Taneb mentioned your font, and I was curious to see it
07:40:40 <prooftechnique> If you don't mind :)
07:44:49 -!- earendel has quit (Ping timeout: 248 seconds).
07:44:49 -!- staffehn has quit (Ping timeout: 248 seconds).
07:45:43 -!- staffehn has joined.
07:47:21 -!- tromp has quit (Remote host closed the connection).
07:51:46 -!- earendel has joined.
07:53:22 <zzo38> OK
07:54:01 -!- bender has quit (Ping timeout: 250 seconds).
07:54:28 -!- mroman has joined.
07:57:52 <hppavilion[1]> prooftechnique: It's jsut the font in the program
08:10:13 -!- bender has joined.
08:10:23 -!- bender has quit (Changing host).
08:10:23 -!- bender has joined.
08:11:07 -!- lynn has quit (Read error: Connection reset by peer).
08:15:36 <hppavilion[1]> prooftechnique: Do you do a lot of stuff with Proof Assistants? Your name implies you might
08:16:42 <prooftechnique> prooftechnique: I wouldn't say a lot. I do like to play with them, though.
08:17:18 <prooftechnique> I actually work at a design firm, right now, so the use case for proof assistants rarely comes up. :|
08:31:31 <prooftechnique> Though if GSS were a little more ready, I could conceivably make use of a constraint solver :D
08:33:38 <hppavilion[1]> prooftechnique: GSS?
08:33:56 <hppavilion[1]> Sorry, you didn't ping me so I missed the messages xD
08:43:51 <prooftechnique> hppavilion[1]: http://gridstylesheets.org/
08:44:02 <hppavilion[1]> Oooh
08:44:04 <hppavilion[1]> Sounds fancy
08:45:08 <Taneb> b_jonas, hell no, I just take the first 256 glyphs in the font and hope they're in the right order
08:46:16 <hppavilion[1]> prooftechnique: I'm looking for something novel to prove with, I was just seeing if you could help xD
08:47:49 -!- tromp has joined.
08:52:34 <prooftechnique> hppavilion[1]: I'm still kind of fascinated by Lemuridae, to be honest.
08:53:03 -!- tromp has quit (Ping timeout: 276 seconds).
08:56:04 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
09:16:27 -!- FreeFull has quit (Ping timeout: 276 seconds).
09:46:49 -!- AnotherTest has joined.
09:59:20 -!- jaboja64 has joined.
10:15:11 -!- hppavilion[1] has joined.
10:22:58 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
10:41:46 -!- primo has joined.
10:48:33 -!- tromp has joined.
10:52:51 -!- tromp has quit (Ping timeout: 248 seconds).
10:57:35 -!- lynn has joined.
11:25:07 -!- J_Arcane has quit (Ping timeout: 252 seconds).
11:25:23 -!- boily has joined.
11:39:02 <boily> @massages-loud
11:39:02 <lambdabot> You don't have any messages
11:39:33 <boily> question of the day: if I don't have any massages, did shachaf write anything?
11:41:11 <Taneb> @tell boily yes
11:41:11 <lambdabot> Consider it noted.
11:41:19 <boily> Tanelle
11:41:26 <boily> @massages-quiet
11:41:26 <lambdabot> Unknown command, try @list
11:41:29 <boily> @massages
11:44:31 -!- primo has left ("Leaving").
11:49:21 -!- tromp has joined.
11:53:43 -!- tromp has quit (Ping timeout: 252 seconds).
11:54:41 -!- mtve has joined.
11:56:41 -!- bender has quit (Ping timeout: 250 seconds).
11:59:01 -!- ais523 has joined.
12:02:50 -!- jaboja has joined.
12:05:18 -!- jaboja64 has quit (Ping timeout: 248 seconds).
12:14:14 -!- jaboja has quit (Ping timeout: 260 seconds).
12:22:01 -!- boily has quit (Quit: PACKET CHICKEN).
12:28:31 -!- bender has joined.
12:46:28 -!- jaboja has joined.
12:47:26 -!- andrew__ has quit (Remote host closed the connection).
12:51:28 -!- AnotherTest has quit (Ping timeout: 252 seconds).
13:02:46 -!- ais523 has quit (Ping timeout: 244 seconds).
13:19:37 -!- bender has quit (Ping timeout: 240 seconds).
13:20:32 -!- bender has joined.
13:45:13 -!- tromp has joined.
13:57:22 -!- tromp has quit (Remote host closed the connection).
14:00:05 <HackEgo> [wiki] [[Special:Log/newusers]] create * RaHorakhti * New user account
14:10:47 -!- p34k has joined.
14:13:53 -!- FreeFull has joined.
14:17:41 -!- jaboja has quit (Ping timeout: 244 seconds).
14:35:05 <Taneb> I think that brainfuck program I shared in the early hours of this morning may be one of the longest ones in existence
14:47:56 <FreeFull> Taneb: Was it generated?
14:49:15 -!- `^_^v has joined.
14:56:05 -!- bender has quit (Ping timeout: 250 seconds).
14:57:51 -!- tromp has joined.
15:02:22 -!- tromp has quit (Ping timeout: 252 seconds).
15:03:31 -!- oerjan has joined.
15:08:33 <Elronnd> Taneb: what did it do?
15:13:42 -!- MaskedFox has joined.
15:21:07 -!- spiette has joined.
15:27:00 -!- MaskedFox has quit (Ping timeout: 252 seconds).
15:27:06 <lifthrasiir> Taneb: https://arin.ga/FQLSPy/ ? it is just over 200K, which is not really the biggest
15:27:24 <lifthrasiir> Lost Kingdom BF edition is about 2MB
15:28:03 <oerjan> <shachaf> oerjan: whoa whoa whoa, the whole !A -o B and !A -o ?B thing makes perfect sense <-- i fear that we have lost shachaf
15:28:27 <HackEgo> [wiki] [[Q]] N https://esolangs.org/w/index.php?oldid=46483 * RaHorakhti * (+2813) Created page with "The Qabalah language ('''Q''') is not only an esoteric programming language, but it is also an [[Category:Occult languages|occult programming language]]. The first version of..."
15:29:19 <izabera> oooh, an esoteric esoteric programming language
15:30:34 <izabera> ...which only looks esoteric, not esoteric esoteric
15:31:30 <lifthrasiir> what is esoteric esoteric?
15:31:34 <HackEgo> [wiki] [[Q]] https://esolangs.org/w/index.php?diff=46484&oldid=46483 * RaHorakhti * (+1)
15:32:26 <izabera> like, esoteric in both senses
15:33:07 <HackEgo> [wiki] [[Category:Occult languages]] N https://esolangs.org/w/index.php?oldid=46485 * RaHorakhti * (+83) Created page with "Occult languages are esoteric languages that also has an occult focus of some kind."
15:33:51 -!- idris-bot has joined.
15:34:52 <HackEgo> [wiki] [[Special:Log/delete]] delete * Oerjan * deleted "[[Category:Occult languages]]": Creating category without discussion against [[Esolang:Policy]]
15:35:02 <oerjan> the foot, it came down hth
15:35:39 <HackEgo> [wiki] [[Language list]] https://esolangs.org/w/index.php?diff=46486&oldid=46472 * RaHorakhti * (+8)
15:42:00 <HackEgo> [wiki] [[Q]] https://esolangs.org/w/index.php?diff=46487&oldid=46484 * RaHorakhti * (-1)
15:44:59 <tswett> @tell hppavilion[1] I never log off (if I can help it).
15:45:00 <lambdabot> Consider it noted.
15:45:42 <HackEgo> [wiki] [[User:RaHorakhti]] N https://esolangs.org/w/index.php?oldid=46488 * RaHorakhti * (+135) Created page with "My name is Per Löwgren, you can find some of my work at [https://bitbucket.org/perlowgren BitBucket]. I've created the language [[Q]]."
15:46:27 -!- earendel has quit (Ping timeout: 246 seconds).
15:50:57 -!- lambda-11235 has joined.
16:06:54 -!- mroman has quit (Quit: Lost terminal).
16:07:16 -!- spiette_ has joined.
16:07:55 -!- p34k has quit.
16:08:03 <HackEgo> [wiki] [[Q]] https://esolangs.org/w/index.php?diff=46489&oldid=46487 * RaHorakhti * (-62)
16:08:04 -!- spiette has quit (Disconnected by services).
16:08:12 -!- spiette_ has changed nick to spiette.
16:11:55 -!- p34k has joined.
16:12:50 -!- haavardp has joined.
16:14:06 -!- shikhin_ has joined.
16:14:28 -!- sewilton_ has joined.
16:15:32 -!- sewilton has quit (Ping timeout: 264 seconds).
16:15:33 -!- lambdabot has quit (Read error: Connection reset by peer).
16:15:33 -!- zgrep has quit (Ping timeout: 264 seconds).
16:15:34 -!- shikhin has quit (Read error: Connection reset by peer).
16:15:34 -!- Elronnd has quit (Ping timeout: 264 seconds).
16:15:34 -!- haavard has quit (Ping timeout: 264 seconds).
16:15:34 -!- zgrep has joined.
16:15:43 -!- zgrep has quit (Changing host).
16:15:43 -!- zgrep has joined.
16:17:19 -!- sewilton_ has changed nick to sewilton.
16:17:54 -!- Elronnd has joined.
16:18:40 -!- lambdabot has joined.
16:33:33 <HackEgo> [wiki] [[Esolang:Policy]] https://esolangs.org/w/index.php?diff=46490&oldid=43620 * Oerjan * (+8) Make it clearer this points to where discussions should happen
16:34:34 -!- augur has joined.
16:47:30 -!- oerjan has quit (Quit: Later).
16:55:25 -!- augur has quit (Remote host closed the connection).
16:56:00 -!- augur has joined.
16:57:40 -!- augur has quit (Read error: Connection reset by peer).
16:58:01 -!- tromp has joined.
16:58:15 -!- augur has joined.
16:58:25 -!- augur has quit (Remote host closed the connection).
17:02:24 -!- tromp has quit (Ping timeout: 246 seconds).
17:25:50 -!- AnotherTest has joined.
17:29:00 -!- Sprocklem has quit (Ping timeout: 246 seconds).
17:40:45 -!- Opodeldoc has quit (Ping timeout: 250 seconds).
17:43:34 -!- jaboja has joined.
18:02:36 -!- hppavilion[1] has joined.
18:11:04 -!- earendel has joined.
18:20:55 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
18:22:47 -!- spiette has quit (Ping timeout: 250 seconds).
18:23:25 -!- spiette has joined.
18:24:11 -!- Opodeldoc has joined.
18:50:34 -!- zadock has joined.
19:05:26 -!- hppavilion[1] has joined.
19:10:23 <hppavilion[1]> tswett: Greetings
19:10:30 <hppavilion[1]> @messages-lud
19:10:30 <lambdabot> tswett said 3h 25m 30s ago: I never log off (if I can help it).
19:12:56 -!- augur has joined.
19:18:40 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
19:30:31 -!- hppavilion[1] has joined.
19:33:44 <hppavilion[1]> Are there any x/// expressions other than s and y?
19:35:02 <hppavilion[1]> tswett?
19:37:51 -!- augur has quit (Ping timeout: 276 seconds).
19:38:49 -!- augur has joined.
19:41:18 -!- Sprocklem has joined.
20:04:19 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
20:11:28 -!- Nithogg has joined.
20:11:33 -!- shikhin_ has changed nick to shikhin.
20:11:59 -!- jaboja has quit (Ping timeout: 250 seconds).
20:16:04 -!- jaboja has joined.
20:20:21 -!- Sprocklem has quit (Ping timeout: 244 seconds).
20:22:27 -!- jaboja has quit (Ping timeout: 248 seconds).
20:27:06 <prooftechnique> Did anyone else just have the whole ban list dumped to channel?
20:27:14 <prooftechnique> And by just, I mean two hours ago?
20:27:33 <prooftechnique> Maybe irssi's just being weird
20:30:22 -!- lambda-11235 has quit (Quit: Bye).
20:30:56 <coppro> prooftechnique: you probably sent /mode #esoteric +b
20:31:45 <prooftechnique> I wonder why I'd have done that :|
20:32:00 <prooftechnique> My whole status buffer was full of /who lists at that time, too
20:32:21 <prooftechnique> I hope my poor ZNC didn't have a seizure
20:35:11 -!- jaboja has joined.
20:36:39 -!- hppavilion[1] has joined.
20:39:29 -!- jaboja has quit (Ping timeout: 244 seconds).
20:39:58 <zzo38> Now what else I should need to add into my JavaScript Xlib?
20:40:44 <hppavilion[1]> zzo38: What does it do?
20:40:50 <hppavilion[1]> zzo38: Is Xlib for X?
20:40:54 <zzo38> Would it need a command to draw a stack of pictures?
20:40:56 <hppavilion[1]> (The windowing system)?
20:41:00 <zzo38> Yes Xlib for X window system
20:41:11 <int-e> Meh I HATE pulseaudio.
20:41:22 <hppavilion[1]> zzo38: Is this on the desktop for JS, or is it an emulator that runs in-browser?
20:41:37 <zzo38> It is a JavaScript program to access Xlib (and also the C program)
20:41:42 <zzo38> hppavilion[1]: It is for use with Node.js
20:41:45 <hppavilion[1]> zzo38: OK
20:41:54 <hppavilion[1]> zzo38: What do you mean by "A stack of pictures"?
20:42:01 <hppavilion[1]> zzo38: Do you mean like save() and restore()?
20:42:45 <zzo38> There is a function X.Drawable.prototype.drawPicture but I would mean, a command to draw multiple pictures in the same place all at once (if it doesn't have it you can still just use drawPicture multiple times, but as a single command might be more efficient?)
20:43:01 <int-e> Just wasted 3 hours of my life on figuring out a) that I need it b) how to start it (it was stumbling over a leftover socket file in /var/run... but of course I got a descriptive error message: bind(): socket already in use) and c) why I need it... to play videos with sound in Firefox.
20:43:51 <int-e> (the answer to c) is that the HTML5 stuff uses libpulse to play audio, which will only talk to a pulseaudio server)
20:44:17 <int-e> (but apparently isn't smart enough to start one when none is running)
20:44:52 <zzo38> I do not really like pulseaudio either, although it is already set up in my computer anyways so I do not need to do anything.
20:45:15 <int-e> to me it's cruft that solves a non-problem
20:45:25 <zzo38> int-e: I agree
20:45:26 <int-e> (playing sound from different sources simultaneously)
20:45:42 <zzo38> Other commands I would be planning to add are X.Drawable.prototype.pushGC, X.Drawable.prototype.popGC, and X.Drawable.prototype.drawMacro
20:56:13 <b_jonas> ARGH! In HTML webpages, why don't people use images with alt text versus images with empty alt text versus background images the semantically right way?
20:56:21 <b_jonas> It's just so stupid.
20:57:16 <shachaf> `wisdom
20:57:21 <HackEgo> ​ /The final frontier.
20:58:05 <shachaf> wisdom
20:58:07 <shachaf> scow
20:58:13 <shachaf> `wisdom
20:58:13 <shachaf> `wisdom
20:58:14 <shachaf> `wisdom
20:58:40 <HackEgo> irc/IRC is short for "Internet Relay Chat". It is named so because all the servers are constructed from relays.
20:58:40 <HackEgo> btw/btw is short for "bury the weasel"
20:58:41 <HackEgo> cpressey/cpressey invented the esolang, the pipe cleaner and the electrical mousse.
20:59:13 <int-e> would mousse be a sharp rodent?
21:00:57 <int-e> `? mousse
21:00:59 <HackEgo> mousse? ¯\(°​_o)/¯
21:02:40 <int-e> And ratatouille could be a stuttering rodent.
21:07:57 -!- augur has quit (Remote host closed the connection).
21:09:12 <zzo38> They say dash (in Magic: the Gathering) can only go on creatures, but it is untrue; cards could be made that are not creatures and have dash (as long as it is not an instant, sorcery, or land). The haste is mostly meaningless in such case but still has it and in some cases can be used.
21:11:56 <zzo38> (The same is true of megamorph, although the +1/+1 counter in such case would ordinarily do nothing, when combined with undying, graft, and/or modular, it can do such thing even though it is not a creature.)
21:13:57 <zzo38> Exploit also does not have to go only on creatures
21:15:37 <shachaf> zzo38: Is that also true of super haste?
21:18:28 <zzo38> I suppose so, although it is irrelevant since super haste is not a standard rule for the normal game and is only for Un-cards.
21:19:44 <shachaf> If a card isn't a creature can you still put it on the battlefield with super haste?
21:20:48 <zzo38> There is no such rule as super haste.
21:22:23 <shachaf> http://gatherer.wizards.com/Pages/Card/Details.aspx?multiverseid=74324 has it.
21:22:41 <shachaf> Do you refuse to play with Un-cards?
21:24:49 <zzo38> Not necessarily, although people would need to agree a different kind of game, sometimes it is necessary to argue about the rules, etc.
21:25:26 <shachaf> Necessary to argue about the rules?
21:25:38 <shachaf> That makes it completely different from a regular Magic: The Gathering game.
21:25:43 <zzo38> Consider a card such as: {3} Artifact ;; Undying ;; Megamorph {1} ;; {T}, Sacrifice ~: Target player gains 2 life.
21:25:50 <zzo38> shachaf: I know!
21:25:59 <zzo38> But I said "sometimes"!
21:28:58 -!- zadock has quit (Quit: Leaving).
21:29:09 <zzo38> For example, my own ideas about how R&D's Secret Lair is working is different than what other people say (and they are also different from each other), but there is no rule to make such an effect work, so you have to argue about it.
21:30:58 <zzo38> (My own opinion that the old Lightning Bolt with R&D's Secret Lair allows you to target any player, object, or zone; if the object is not a permanent, or is a permanent that isn't a creature or planeswalker, or is a zone other than the battlefield, nothing happens; if the target is the battlefield, each non-token creature and non-token planeswalker (including ones with shroud/hexproof, but not if it has protection from red) takes 3 points of damag
21:33:58 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
21:34:43 -!- Sprocklem has joined.
21:35:34 -!- zzo38 has quit (Remote host closed the connection).
21:36:06 -!- hppavilion[1] has joined.
21:37:22 <hppavilion[1]> relation
21:37:26 <hppavilion[1]> Whoops
21:37:29 <hppavilion[1]> Meant to ctrl+f
21:42:39 <int-e> *reads about the ending phase* ... could there be an infinite loop of cleanup steps...
21:44:40 -!- J_Arcane has joined.
21:47:50 -!- ais523 has joined.
21:48:51 <hppavilion[1]> tswett: Ugh, trying to figure out BrainProof
21:58:36 -!- AnotherTest has quit (Quit: ZNC - http://znc.in).
22:16:16 -!- `^_^v has quit (Quit: This computer has gone to sleep).
22:20:44 -!- spiette has quit (Ping timeout: 244 seconds).
22:25:48 -!- jaboja has joined.
22:26:19 -!- Sprocklem has quit (Quit: [).
22:30:27 -!- jaboja has quit (Ping timeout: 248 seconds).
22:36:55 -!- spiette has joined.
22:45:42 -!- Opodeldoc has quit (Quit: Leaving).
22:53:03 -!- oerjan has joined.
22:59:36 -!- spiette has quit (Quit: :qa!).
23:00:19 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
23:02:42 -!- lambda-11235 has joined.
23:07:44 <oerjan> `? mousse
23:07:50 <HackEgo> mousse? ¯\(°​_o)/¯
23:08:32 <oerjan> <int-e> would mousse be a sharp rodent? <-- i'm not quite sure where you get "sharp" twh
23:09:23 <oerjan> oh hm
23:09:50 -!- boily has joined.
23:10:21 <int-e> I guess you got it, but anyway: a mousssse would be super extra sharp.
23:10:43 <boily> int-ello. sharp mousse?
23:11:08 <int-e> check the logss
23:12:40 <oerjan> `learn A mousse is a sharp rodent. "A mousse once bit my sister."
23:12:49 <boily> I logsschecked. I still don't grok it.
23:12:49 <HackEgo> Learned 'mousse': A mousse is a sharp rodent. "A mousse once bit my sister."
23:12:56 <oerjan> i hope the quote is accurate twh
23:13:05 <boily> hellørjan. you seem to be having understood it.
23:13:24 <int-e> it's a pun on ß, often written "ss".
23:14:05 <oerjan> it's really just an s with a scarf
23:14:23 <int-e> I'll readily admit that it wasn't very inspired
23:14:34 * boily lightly thwacks int-e
23:14:38 <boily> 0.3 shachafs.
23:14:48 <oerjan> `? ß
23:14:50 <HackEgo> ​ß? ¯\(°​_o)/¯
23:14:59 <int-e> `learn ß is not a beta.
23:15:02 <HackEgo> Learned 'ß': ß is not a beta.
23:15:08 <oerjan> darn
23:16:16 <oerjan> `learn_append ß It's a "scharfes S", aka s with a scarf.
23:16:21 <HackEgo> Learned 'ß': ß is not a beta. It's a "scharfes S", aka s with a scarf.
23:16:49 <zgrep> Err... with a scharf.
23:17:06 <boily> with a schacharf.
23:17:14 <oerjan> int-e: also, i didn't actually get it, i just got a different idea.
23:17:16 <int-e> Would omegpsi be a co-alphabet?
23:17:34 <shachaf> int-e: i got it hth
23:17:58 <int-e> shachaf: thanks, always a pleasure to drag people down to my level
23:18:10 <oerjan> zgrep: no, we have to consider the sk -> sch sound change in german hth
23:18:21 <zgrep> Ah.
23:18:43 <shachaf> schlerosis?
23:19:17 <boily> int-e: what's an omegpsi?
23:19:26 <zgrep> I do not Deutsch sprechen.
23:20:15 <int-e> boily: just musing about the etymology of "alphabet"
23:20:32 <int-e> boily: I mean I don't even know what a co-alphabet would be.
23:20:44 <shachaf> coal phab et al.
23:21:12 <oerjan> shachaf: it may be a little older than the borrowing of that medical term hth
23:21:34 <boily> int-e: oh. makes sense. tdh
23:22:11 <boily> moi neither, je speake not le Deutsch.
23:22:12 <shachaf> boily: hoily
23:22:17 <boily> shachaf: hellochaf.
23:22:23 <oerjan> `? ratatouille
23:22:26 <HackEgo> ratatouille? ¯\(°​_o)/¯
23:22:30 <shachaf> eye of newt and toe of frog / wing of bat and pooch of dog
23:22:33 <shachaf> hmm
23:22:36 <shachaf> eye of newt and toe of frog / wool of bat and pooch of dog
23:23:01 <oerjan> `learn A ratatouille is a stuttering rodent.
23:23:05 <HackEgo> Learned 'ratatouille': A ratatouille is a stuttering rodent.
23:23:34 <oerjan> int-e: you can add your own wisdom you know hth
23:24:04 <shachaf> In the game Lost Vikings 2, you collect a wing of bat to give to the witch to bring you home.
23:24:29 <int-e> `? til
23:24:32 <HackEgo> TIL that TIL means Today I Learned
23:24:35 <boily> wait. you give a wing to bring back a bat???
23:25:01 <boily> til is also the most confusingest Norwegian word.
23:25:24 <oerjan> it's cognate to german "Ziel", which means goal, iirc
23:25:43 <oerjan> but somehow it got press ganged into a preposition.
23:26:17 <shachaf> `translatefromto en no wisdom/til | sponge wisdom/til
23:26:23 <shachaf> that doesn't even make sense
23:26:31 <oerjan> (for a while it thus governed the genitive case, while our prepositions still did that sort of thing.)
23:26:55 <oerjan> and a few stock phrases still do that. "til sjøs" = at sea
23:27:13 <boily> «tille cheusse».
23:27:15 <oerjan> or to the sea
23:27:24 <oerjan> it can mean both, i think.
23:27:28 <oerjan> or wait
23:27:35 <shachaf> `? norwegian
23:27:37 <HackEgo> norwegian? ¯\(°​_o)/¯
23:29:13 <oerjan> i may be confusing it with "til lands og til vanns" (a stock phrased used about a magical boat in a fairy tale that could sail on the ground or on the water, or even fly)
23:29:17 <oerjan> *phrase
23:29:43 <shachaf> `? shachaf
23:29:44 <HackEgo> shachaf sprø som selleri and cosplays Nepeta Leijon on weekends. He hates bell peppers with a passion.
23:29:57 <shachaf> spr/o som selleri
23:30:07 <shachaf> spr(/)
23:30:08 <oerjan> oh and "til fots", by foot
23:30:28 <shachaf> oerjan: have you considered that english is simpler than norwegian
23:30:29 <boily> shachaf: your wisdom lacks pooches hth
23:30:46 <shachaf> boily; then it reflects me
23:31:07 <shachaf> :
23:33:00 <oerjan> <boily> «tille cheusse». <-- that's pretty accurate pronunciationwise, i think
23:33:44 -!- Lord_of_Life has quit (Excess Flood).
23:33:52 <oerjan> shachaf: i think that's debatable.
23:34:32 <oerjan> the spelling isn't quite as insane as english, anyway
23:34:49 <oerjan> although still not exactly a bijection
23:35:24 <oerjan> the genders don't help, i guess. otoh we have less verb inflection.
23:35:37 -!- Lord_of_Life has joined.
23:36:10 <oerjan> (no pesky progressive, and no person/number suffixes)
23:36:29 <nzt-fish> oh my god, your language suck so hard!
23:36:32 <nzt-fish> it's not even useful
23:36:37 <nzt-fish> delete irc please
23:36:51 <oerjan> `welcome nzt-fish
23:36:52 <HackEgo> nzt-fish: 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.)
23:37:15 <nzt-fish> oerjan: I'm homosexual. Is that okay?
23:37:28 <oerjan> nzt-fish: you seem confused. and yes, that's okay.
23:37:45 <nzt-fish> I suck a lot of dicks. If you ban me, you're a homophobe
23:38:03 <int-e> but trolling is not okay.
23:38:16 <oerjan> indeed.
23:38:27 <shachaf> oerjan: What about when you do it?
23:38:41 <oerjan> shachaf: i mean boring trolling of course, duh
23:38:45 <shachaf> Oh.
23:38:50 <shachaf> Sure, no one wants that.
23:40:13 -!- hppavilion[1] has joined.
23:40:54 <boily> hppavellon[1].
23:40:58 <int-e> @metar LOWI
23:40:58 <lambdabot> LOWI 022320Z AUTO VRB02KT 9999 FEW007 BKN010 02/01 Q1003
23:41:11 <shachaf> @@ @@ (@where weather) LOWI
23:41:12 <lambdabot> LOWI 022320Z AUTO VRB02KT 9999 FEW007 BKN010 02/01 Q1003
23:41:15 <shachaf> much better tdh
23:41:27 <oerjan> `learn_append shachaf The unit of bad punnery is named after him.
23:41:31 <HackEgo> Learned 'shachaf': shachaf sprø som selleri and cosplays Nepeta Leijon on weekends. He hates bell peppers with a passion. The unit of bad punnery is named after him.
23:41:38 <hppavilion[1]> ahoily, boily
23:41:46 <shachaf> oerjan: Is there a wisdom entry for the unit of bad punnery?
23:42:02 <shachaf> oerjan: Hey, you never made the temperature thing for lambdabot work.
23:42:17 -!- Phantom_Hoover has joined.
23:42:22 <oerjan> shachaf: well given that the unit is named "shachaf"...
23:42:38 <int-e> `? schaf
23:42:40 <HackEgo> schaf? ¯\(°​_o)/¯
23:42:51 <shachaf> Oh, I thought it was "shachafs".
23:43:28 <shachaf> `` cd wisdom; for f in *; do [ -e "$f"s ] && echo "$f"; done
23:43:29 <HackEgo> log \ math \ monad \ monoid \ the u
23:43:32 <shachaf> `? log
23:43:34 <HackEgo> I think you might mean !logs
23:43:35 <shachaf> `? logs
23:43:37 <HackEgo> I think you might mean !logs
23:43:40 <shachaf> `? math
23:43:42 <HackEgo> Math class is tough!
23:43:43 <shachaf> `? maths
23:43:44 <HackEgo> Maths stands for Mathematical Anti-Telharsic Harfatum Septomin.
23:43:46 <oerjan> shachaf: hm maybe
23:43:49 <shachaf> `? monad
23:43:50 <HackEgo> Monads are just monoids in the category of endofunctors.
23:43:53 <shachaf> `? monads
23:43:54 <HackEgo> Monads are just free monad monad monad algebras.
23:43:58 <shachaf> `? the u
23:44:00 <HackEgo> The U are a very mad people.
23:44:01 <shachaf> `? the us
23:44:03 <HackEgo> The US is the country opposed to the THEM.
23:44:22 <int-e> that's way too accurate
23:44:31 <boily> oerjan: it's shachafs hth
23:44:37 <oerjan> shachaf: well it would 1 shachaf, anyway.
23:44:55 <shachaf> oerjan: no, it's like flops
23:44:57 <shachaf> 1 flops
23:45:00 <shachaf> 10 flops
23:45:05 <oerjan> boily: that doesn't sound like a proper SI unit
23:45:12 <oerjan> you don't pluralize those
23:45:16 <boily> shachaf isn't very standard hth
23:45:44 <oerjan> or wait, maybe english does
23:45:56 <oerjan> is it 2.3 newton or newtons
23:45:58 <int-e> `le/rn schaf/"Schaf" is german for "sheep". There is absolutely no relation to shachaf.
23:46:03 <HackEgo> Learned «schaf»
23:46:13 <shachaf> int-e: why didn't you use `learn tdnh hth
23:46:22 <int-e> shachaf: because of the quotes
23:47:02 <int-e> `learn " is a double quote, added to wisdom as a test.
23:47:08 <HackEgo> Learned '"': " is a double quote, added to wisdom as a test.
23:47:12 <int-e> `revert
23:47:13 <shachaf> Oh, I thought `learn handled those.
23:47:18 <shachaf> I guess not.
23:47:20 <HackEgo> rm: cannot remove `/home/hackbot/hackbot.hg/multibot_cmds/env/.hg/store/data/canary.orig': Is a directory \ Done.
23:47:27 <shachaf> oerjan: See, that's why no one trusts `learn.
23:47:50 <hppavilion[1]> In the category of numbers, what are the morphisms? Does such a category even make sense (I have a feeling it might not)?
23:48:07 <shachaf> That's up to you.
23:48:16 <hppavilion[1]> shachaf: Me?
23:48:27 <shachaf> There are lots of categories where the objects are numbers, but you don't specify a category by specifying the objects.
23:48:31 <oerjan> int-e: you cannot use `revert to remove files hth
23:48:37 <shachaf> There are also categories where the arrows are numbers.
23:48:39 <shachaf> `? "
23:48:40 <HackEgo> ​"? ¯\(°​_o)/¯
23:48:45 <boily> numbers are scalars, AKA 1×1 matrices, so you're in the Mat category.
23:48:47 <hppavilion[1]> shachaf: Thought that might be the case
23:48:51 <oerjan> `touch test2
23:48:53 <HackEgo> No output.
23:48:54 <hppavilion[1]> boily: Good point
23:48:55 <oerjan> `cat test2
23:48:56 <HackEgo> No output.
23:48:57 <shachaf> But you need to talk about which one you're talking about.
23:49:00 <oerjan> `? "
23:49:02 <HackEgo> ​" is a double quote, added to wisdom as a test.
23:49:06 <oerjan> shachaf: hth
23:49:15 <int-e> `rm wisdom/"
23:49:15 <nzt-fish> no op in here?
23:49:16 <hppavilion[1]> shachaf: What are some examples of common morphisms in categories with numbers as the elements?
23:49:17 <int-e> pah
23:49:18 <HackEgo> No output.
23:49:25 <shachaf> hppavilion[1]: That's up to you.
23:49:31 <boily> nzt-fish: it's up to you to guess who's a chanop.
23:49:36 <hppavilion[1]> And while we're at it, what about where the arrows are numbers
23:49:38 <oerjan> int-e: it's particularly insidious in that it seems to work until the next repository change (iiuc)
23:49:38 <shachaf> hppavilion[1]: I'll give you three examples and then you go figure them out and tell me things about them.
23:49:53 <shachaf> All of these categories have natural numbers as objects.
23:49:54 <int-e> `rm test2
23:49:55 <hppavilion[1]> nzt-fish: We have ops, but they have to make ChanServ op themselves to be ops
23:49:56 <HackEgo> No output.
23:50:00 <hppavilion[1]> nzt-fish: THen they deop
23:50:03 <oerjan> i'm a chanop and so is my wife
23:50:09 <oerjan> or wait, was that spartacus
23:50:13 <shachaf> A: There's an arrow between X and Y iff X <= Y
23:50:15 <nzt-fish> okay, how about this
23:50:28 * nzt-fish pulls out his huge donger and dicks every single one of you, you and you and you.
23:50:31 <shachaf> B: An arrow between N and M is an NxM matrix. Composition is matrix multiplcation.
23:50:45 <int-e> nzt-fish: surely you can be more creative than that
23:50:50 <boily> oerjan: can I be op momentarily and mapole the fish into oblivion? pretty please?
23:50:57 <oerjan> <shachaf> oerjan: See, that's why no one trusts `learn. <-- well i added documentation.
23:50:58 <shachaf> C: An arrow : N -> M is an M-tuple of numbers smaller than N. Composition is pointwise indexing.
23:51:01 <nzt-fish> int-e: yes, but it's enough to get banned. now where are the ops
23:51:06 <shachaf> `learn
23:51:07 <HackEgo> ​/hackenv/bin/learn: line 3: wisdom/: Is a directory \ Learned '':
23:51:16 <boily> shachaf: heh, nice one :D
23:51:31 <shachaf> boily: ?
23:51:50 <boily> did you just `learn the empty file with an empty name?
23:51:53 <shachaf> hppavilion[1]: Now go figure out what those categories are and tell oerjan when you're done.
23:51:56 <boily> or am I grossly mistaken...
23:51:59 <shachaf> I was trying to see oerjan's documentation.
23:52:12 <hppavilion[1]> shachaf: Yep, working on that
23:52:13 <int-e> `le/rn /foo
23:52:14 <HackEgo> No output.
23:52:32 <shachaf> `` le/rn '/foo'; echo $?
23:52:32 <HackEgo> 1
23:52:38 <int-e> I guess it checks that.
23:53:09 * boily rolls a d20 for a charm/diplomacy check against oerjan
23:53:30 <boily> I got 18.
23:53:54 <int-e> @dice d20
23:53:54 <lambdabot> int-e: 1
23:53:57 <int-e> hah!
23:54:03 <hppavilion[1]> shachaf: What kind of matrix is the NxM matrix?
23:54:23 <hppavilion[1]> shachaf: As in, is it N^nxm?
23:54:26 <hppavilion[1]> Or R^nxm
23:54:31 <hppavilion[1]> Or I^nxm
23:54:36 <int-e> so what would a critical charm/diplomacy failure look like...
23:54:43 <boily> int-e fumbles, grips hppavilion[1] by the arm and they both tumble down a sudden cliff that materialized out of nowhere
23:55:00 <int-e> a, straight to hell? convenient...
23:55:17 <shachaf> hppavilion[1]: Let's say reals.
23:55:24 <hppavilion[1]> shachaf: OK
23:55:37 <int-e> boily: personally I was thinking of bursting mirrors
23:55:42 -!- ChanServ has set channel mode: +o boily.
23:55:52 <boily> thoerjan ^^
23:55:57 <oerjan> got to respect the dice
23:56:20 <shachaf> d20
23:56:21 <lambdabot> shachaf: 18
23:56:25 <shachaf> oh man
23:56:37 <int-e> damn, that contextual match is still there?
23:56:42 -!- boily has set channel mode: +b *!~nzt@unaffiliated/nzt.
23:56:44 -!- boily has kicked nzt-fish *THWACK* too doo doo doo doo doooo ♪ IT'S A HOMERUN!.
23:56:50 -!- boily has set channel mode: -o boily.
23:57:51 <shachaf> hppavilion[1]: The real point of this exercise is to realize that the objects of a category are pretty irrelevant.
23:58:08 <hppavilion[1]> shachaf: Yes, but now I'm invested
23:58:32 <shachaf> That third category is a very obscure one you've probably never heard of.
23:58:38 <int-e> so you can have completely pointless categories and the theory will still work just as well as before
23:58:52 <shachaf> It has the property that products are products and sums are sums.
23:59:08 <shachaf> You can probably figure out some more properties.
23:59:11 <oerjan> `? learn
23:59:13 <HackEgo> ​`learn creates a wisdom entry and tries to guess which word is the key. Syntax (case insensitive): `learn [a|an|the] <keyword>[s][punctuation] [...]
2016-03-03
00:00:08 <hppavilion[1]> shachaf: I can't find what pointwise indexing means
00:00:27 <int-e> I'm confused by the [punctuation]
00:01:06 <int-e> and [] is somewhat overloaded.
00:01:08 <int-e> `? nit
00:01:10 <HackEgo> nit? ¯\(°​_o)/¯
00:01:32 <int-e> `learn Nits are there to be picked.
00:01:35 <HackEgo> Learned 'nit': Nits are there to be picked.
00:02:35 -!- p34k has quit.
00:03:37 <boily> nits are louse eggs hth
00:03:39 <oerjan> int-e: um it means it's optional?
00:04:13 <int-e> oerjan: [...]
00:04:26 <oerjan> OKAY
00:04:34 <oerjan> well, technically that's also optional hth
00:04:45 <int-e> o-kay
00:05:06 <oerjan> `? optional
00:05:07 <HackEgo> optional? ¯\(°​_o)/¯
00:05:09 <oerjan> `learn optional.
00:05:13 <HackEgo> Learned 'optional.': optional.
00:05:19 <oerjan> oops
00:05:31 <int-e> `` cd wisdom; grep '\.\.\.' *
00:05:32 <oerjan> a small bug
00:05:42 <HackEgo> arothmorphise:arothmorphise ... antormo... antrohm... ant... oh bugger. This should go in the `misspellings of antrhrop... atnhro...' entry. \ code:[11,11,11,15,15,23,12],[5,5,5,3,53,45,16,26,00,20,15,16,22,25,45,91,32,11,15,27,06,01,11,01,47,22,30,13,43,21,11,13,29,61,65,17,19,12,28,17,11,01,23,20,16,20,81,18,32,25,58,22.,1985,10.301350435,1555466
00:05:44 <oerjan> `cat bin/learn
00:05:45 <HackEgo> ​#!/bin/bash \ topic=$(echo "$1" | lowercase | sed 's/^\(an\?\|the\) //;s/s\?[:;,.!?]\? .*//') \ echo "$1" >"wisdom/$topic" \ echo "Learned '$topic': $1"
00:06:23 <oerjan> oh right, the space is not optional if it's to remove any of the rest
00:06:24 <int-e> `` cd wisdom; grep -l '\.\.\.' *
00:06:25 <HackEgo> arothmorphise \ code \ hthmonoid \ grep: le: Is a directory \ learn \ `learn \ northumberland \ grep: ¯\(°_o): Is a directory \ grep: ¯\(°​_o): Is a directory \ \oren\ \ procrastination \ qdb \ quoteformat \ remorse
00:06:34 <oerjan> `rm wisdom/optional.
00:06:36 <HackEgo> No output.
00:06:43 <int-e> `? northumberland
00:06:44 <HackEgo> Northumberland may be today a sparsely populated country... but SOON! THE NORTHUMBRAINS SHALL RISE!
00:07:22 <int-e> `culprits wisdom/northumberland
00:07:26 <HackEgo> oerjan elliott Bike FreeFull Taneb
00:07:33 <int-e> `? bike
00:07:34 <HackEgo> Bike is from Luxembourg.
00:08:29 <shachaf> hppavilion[1]: It means each element in the tuple gets indexed on its own.
00:08:49 <hppavilion[1]> shachaf: OK, and what does that mean precisely?
00:09:07 <hppavilion[1]> shachaf: https://en.wikipedia.org/wiki/Tuple does not speak of "indexing"
00:09:11 <shachaf> hppavilion[1]: Try figuring out what indexing would mean and I'll tell you whether it's right.
00:09:16 <int-e> @troll 5d6
00:09:16 <lambdabot> int-e: 21
00:09:24 <shachaf> Well, this is indexing in the usual sense.
00:09:39 <shachaf> (x,y,z)[0] = x and so on
00:09:50 <hppavilion[1]> shachaf: Do you add the values?
00:09:57 <hppavilion[1]> xD
00:10:19 <hppavilion[1]> shachaf: So... hm... OH! Is it at all like ~ in INTERCAL?
00:10:27 <hppavilion[1]> The SELECT operator?
00:10:28 <shachaf> I don't know INTERCAL.
00:10:37 <oerjan> <int-e> *reads about the ending phase* ... could there be an infinite loop of cleanup steps... <-- you should reask that with ais523 around hth
00:10:54 <int-e> probably
00:10:55 <shachaf> I don't think it's that.
00:11:02 <hppavilion[1]> shachaf: x~y is all the bits of x for which the corresponding bit in y is 1, right-justified
00:11:12 <hppavilion[1]> (Or maybe I got which side is which messed up)
00:11:13 <int-e> shachaf: it's ALL CAPS, what else could it be... I mean now that COBOL is dead?
00:11:17 * int-e runs.
00:11:21 <ais523> int-e: there can be an infinite loop of cleanup steps, yes
00:11:28 <hppavilion[1]> shachaf: Oh :/
00:11:35 <ais523> it's a little hard to pull off because cards are typically designed to stop things triggering then
00:11:52 <shachaf> help when did this turn into a mtg conversation
00:12:06 <int-e> shachaf: oerjan looking through logs
00:12:10 <hppavilion[1]> shachaf: What I mean is the compostion of e.g. (17, 92, 12) and (1, 2) equal to (17, 92)?
00:12:24 <hppavilion[1]> heys523
00:12:48 <shachaf> hppavilion[1]: What are the domains and codomains of those arrows?
00:13:01 <hppavilion[1]> shachaf: They're numbers
00:13:06 <shachaf> Which numbers?
00:13:07 <hppavilion[1]> shachaf: Natural numbers
00:13:14 <hppavilion[1]> Hm...
00:13:19 <shachaf> You have to choose.
00:13:28 <hppavilion[1]> shachaf: They're natural numbers
00:13:45 <oerjan> hppavilion[1]: what shachaf means is that an arrow is not determined by its tuple alone
00:13:48 <hppavilion[1]> shachaf: Or do you mean which numbers in particular for those arrows?
00:14:00 <hppavilion[1]> oerjan: Ah
00:14:28 <shachaf> An arrow : N -> M is an N-tuple of numbers < M
00:14:30 <int-e> well, graphs are categories
00:14:32 -!- sphinxo has joined.
00:14:47 <int-e> (no!)
00:14:47 <shachaf> So (17, 92, 12) : 3 -> M
00:14:51 <hppavilion[1]> shachaf: Ah, I think I transcribed it to my notes wrong
00:14:53 <shachaf> But M could be 100 or 1000
00:14:56 <int-e> reflexive, transitive relations are
00:15:05 <boily> `relcome sphinxo
00:15:07 <HackEgo> sphinxo: 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.)
00:15:12 <int-e> (that's the example that I wanted)
00:15:36 <hppavilion[1]> shachaf: Oh, so the arrows map numbers to all numbers greater than them, right
00:15:40 <sphinxo> boily: thanks
00:15:54 <shachaf> ?
00:15:58 <sphinxo> So what's the bees knees in esoteric langs?
00:16:23 <ais523> sphinxo: in terms of newly popular? best-known?
00:16:40 <sphinxo> ais523: newly popular
00:16:40 <int-e> sphinxo: well your puns seem to be up to par... welcome!
00:17:06 <ais523> hmm, not sure if any esolangs have really caught on since Three Star Programmer
00:17:11 <shachaf> int-e: whoa whoa whoa, when did this turn into a linear logic conversation
00:17:27 <int-e> shachaf: you lost me
00:17:41 <oerjan> int-e: wait, what pun
00:17:46 <oerjan> oh
00:17:47 <int-e> oerjan: the bees one
00:18:17 <hppavilion[1]> sphinxo: One that isn't popular- but be used by at least one person in the world someday, if I'm being generous- is a proof assistant I myself made called Thoof
00:18:24 <oerjan> i didn't notice it was a pun
00:18:37 <hppavilion[1]> sphinxo: Based on Thue, which is a great language you should check out if you haven't already
00:18:48 <int-e> oerjan: flew right over your head, eh...
00:19:05 <hppavilion[1]> shachaf: Wait, my brain is turning on now
00:19:17 <sphinxo> hppavilion[1]: is it on github?
00:19:28 <hppavilion[1]> sphinxo: Yes, I'll link you
00:19:55 <hppavilion[1]> sphinxo: But there are no published docs yet; however, I can publish the as-of-yet incomplete tutorial if you like
00:19:56 <hppavilion[1]> xD
00:20:04 <sphinxo> hppavilion[1]: Oh wait I think i've found it, in python right?
00:20:20 <shachaf> Oh, I thought you were talking about hppavilion[1]'s brain.
00:20:22 <hppavilion[1]> sphinxo: Yep
00:20:27 <shachaf> The joke seemed a little drawn out.
00:20:35 <oerjan> int-e: well, bee's knees did fit there without having to reinterpret it.
00:21:20 <hppavilion[1]> shachaf: Gah! Your and sphinxo's nicks arethe same length and both start with s!
00:21:26 <hppavilion[1]> Now I'll always be confused!
00:21:36 <shachaf> you're already always confused hth
00:21:41 <hppavilion[1]> shachaf: Oh right
00:22:11 <shachaf> boily: have you figured out the mysterious category twh
00:22:34 <oerjan> hppavilion[1]: a single starting letter seems a bit little to be confusing.
00:22:41 <boily> which mysterious category?
00:22:50 <shachaf> Oh, apparently this category has a name.
00:22:50 <hppavilion[1]> oerjan: Yeah, but it is
00:23:08 <oerjan> shachaf: isn't it just a subcategory of Set
00:23:13 <sphinxo> In the spirit of self promotion, i'd like to present one of my first forays into the world of #esoteric
00:23:24 <sphinxo> ya standard bf compiler
00:23:27 <sphinxo> written in ocaml
00:23:33 <sphinxo> generating java bytecode
00:24:10 <shachaf> oerjan: yes hth
00:25:46 -!- sphinxo has left ("WeeChat 1.4").
00:26:13 -!- sphinxo has joined.
00:27:32 <sphinxo> git.io/v2yj9
00:28:02 <ais523> sphinxo: weird mix of languages :-)
00:28:06 <ais523> (in here, that's probably a good thing)
00:28:23 <ais523> makes sense though, ocaml's good at compilers, jvm is probably the most portable asm
00:28:29 <shachaf> ais523: Do you understand par in linear logic? TWH
00:28:40 -!- tromp has joined.
00:28:50 <ais523> shachaf: what do you mean by par? I fear the answer is no
00:28:56 <ais523> I understand the subsets of linear logic I use in my work
00:28:57 <shachaf> The upside-down ampersand.
00:29:03 <ais523> ah, in that case no
00:29:05 <shachaf> Also smetimes written #
00:29:14 <shachaf> ais523: How about _|_?
00:29:15 <sphinxo> ais523: it was my first time doing ocaml actually
00:29:22 <shachaf> Or ?A the exponential thing?
00:29:26 <sphinxo> but I didn't really like it and went back to haskell
00:29:45 <ais523> shachaf: _|_ is just "arbitrary false statement" in most logics
00:29:56 <shachaf> sphinxo: Oh, that's where I remember you from.
00:30:02 <ais523> I sort-of have a vague idea of how ? works but not enough to put it into words
00:30:22 <shachaf> ais523: Well, there's _|_ and there's 0
00:30:34 <shachaf> _|_ is the identity of #
00:30:46 <ais523> ah right
00:30:52 <ais523> linear logic sort-of has SCI syndrome
00:30:55 <sphinxo> shachaf: yeah i'm the one generally asking the silly questions
00:30:56 <ais523> but possibly even worse
00:31:10 <shachaf> Spinal Cord Injury?
00:31:32 <ais523> (SCI is an affine logic, which has the problem that ('a * 'b) -> 'c and 'a -> ('b -> 'c) aren't isomorphic and most language constructs need to work both ways round)
00:31:36 <ais523> syntactic control of interference
00:31:45 <shachaf> This game semantics interpretation made the most sense to me.
00:31:57 <shachaf> ais523: Oh, it has both an internal hom and a product but they're not adjoint?
00:31:59 <shachaf> That's interesting.
00:32:13 <shachaf> The product has no right adjoint and the internal hom has no left adjoint?
00:32:19 <ais523> indeed
00:32:33 <ais523> it causes utter chaos at the category theory level
00:32:41 <ais523> in terms of programming it, it's only mildly annoying
00:32:47 <sphinxo> y'all played tis-100? I imagine that'd be right up you guys/girls boats
00:33:05 <shachaf> ais523: Sounds sort of reasonable. Maybe.
00:33:06 <ais523> annoying enough, though, that SCI errors are something that I have to keep correcting in other people's code
00:33:34 <shachaf> ais523: Anyway in this game semantics interpretation, when you have A#B, you run two games in parallel, one for A and one for B.
00:33:40 <ais523> quite a bit of work on my thesis was trying to create a more categorically sensible SCI
00:33:40 <shachaf> And you only have to win one of them.
00:33:59 <shachaf> So for instance A # ~A is always true, because if you get a refutation on one side you can use it on the other side.
00:34:07 <ais523> it turns out that it has hidden intersection types
00:34:18 <shachaf> ais523: Hmm, I should read your thesis.
00:34:23 <ais523> shachaf: hmm, that makes me think of a programming language construct
00:34:35 <ais523> in which you give two terms, it returns one of its argument
00:34:51 <ais523> but it's guaranteed to return something other than bottom unless both arguments are bottom
00:35:10 * ais523 wonders if the Haskell people would consider that pure
00:36:35 <shachaf> ais523: Haskell people probably want a guarantee that they're equal unless they're bottom.
00:36:42 <shachaf> https://wiki.haskell.org/Unamb
00:36:50 <ais523> good name for it :-)
00:37:14 <prooftechnique> sphinxo: I played it. It's neat.
00:37:16 <ais523> now I'm wondering if it's useful
00:37:19 <ais523> I guess you could do sorting with it
00:37:35 <shachaf> Sure it's useful.
00:37:39 <ais523> one argument an O(n log n) worst case, the other an O(n) best case that sometimes blows up
00:37:47 <shachaf> http://conal.net/blog/tag/unamb
00:39:39 -!- tromp has quit (Remote host closed the connection).
00:43:23 <shachaf> ais523: Oh, A # B is also ~(~A x ~B)
00:45:51 -!- heroux has quit (Ping timeout: 250 seconds).
00:55:27 -!- sphinxo has quit (Quit: WeeChat 1.4).
01:01:45 -!- heroux has joined.
01:02:54 -!- llue has quit (Quit: That's what she said).
01:03:03 -!- lleu has joined.
01:07:37 <boily> mwah ah ah. Tiamat is dead!
01:08:25 <boily> dragonskin cloak is miiiiine!
01:09:05 -!- tromp has joined.
01:11:40 -!- carado has quit (Quit: Leaving).
01:15:28 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
01:15:42 -!- mad has joined.
01:16:16 <mad> will someone explain this to me: why some programmers use C but have an aversion to C++
01:17:02 <mad> (especially on non-embedded platforms)
01:19:32 <pikhq> Because the things that C++ is good at, C is about as good at, and the things that C++ does better than C, other languages do significantly better. So, C++ is a giant pile of complexity with minimal benefits.
01:21:12 <mad> er, no, there is one class of stuff where C doesn't have the tools (like, you can do it but it's cumbersome), and java/C#/etc can't do it because of the mandatory garbage collector
01:21:40 <mad> once you have lots of dynamic sized stuff C++ has a large advantage over C
01:22:24 <pikhq> You know that there's languages out there besides C-family languages, Java-family languages, and P-family languages, right?
01:22:46 -!- lynn has quit (Ping timeout: 252 seconds).
01:23:01 <mad> this is why C++ is popular for making games (too much dynamic sized stuff for C, can't use java/C# because garbage collector creates lags)
01:23:06 <ais523> P-family lanugages?
01:23:18 <pikhq> ais523: Gregor's joking name for Perl, Python, Ruby, etc.
01:23:26 <ais523> ah right
01:23:43 <mad> pikhq: what other language category is there? functional languages?
01:24:37 <mad> the other languages I can think of generally aren't particularly fast
01:25:26 <pikhq> https://en.wikipedia.org/wiki/Template:Programming_paradigms *cough*
01:25:55 <pikhq> There's more programming language *categories* than you think there are languages, it sounds like. :)
01:26:16 <izabera> who's gregor?
01:26:42 <pikhq> izabera: Gregor Richards, one of the channel members who's not been that active of late.
01:26:54 <pikhq> He's still here though
01:26:58 <pikhq> Gregor: Isn't that right?
01:27:05 <mad> pikhq : that list is a split by paradigm, not by speed grade
01:27:34 <pikhq> mad: C++ ain't exactly "fast" in idiomatic use...
01:27:57 <pikhq> I mean, sure, you can write fast C++, but once you're using the STL you've abandoned all hope.
01:28:06 <ais523> izabera: Gregor's most famous for writing EgoBot and HackEgo
01:28:12 <ais523> `? Gregor
01:28:17 <mad> pikhq : not if you're using STL right
01:28:20 <fizzie> I thought he was most famous for the hats.
01:28:24 <HackEgo> Gregor took forty cakes. He took 40 cakes. That's as many as four tens. And that's terrible.
01:28:28 <izabera> oh, he wrote lagbot
01:28:30 <izabera> neato
01:28:39 <oerjan> it wasn't always laggy
01:28:43 <mad> ie basically as a replacement for arrays [] except it manages the size
01:28:46 <oerjan> but then he got cheap
01:28:58 <pikhq> Also, I wouldn't take game developers as a good example of "how to write programs"...
01:29:09 <ais523> oerjan: if you want a cheap bot, see glogbackup (which is also Gregor's)
01:29:59 <pikhq> Unmaintainable piles of shit that are written by the sort of people who are willing to accept 80 hour workweeks are par for the course.
01:30:37 <izabera> that's a rant i've never heard
01:31:02 <izabera> what's the problem with working too many hours a week?
01:31:04 -!- Sgeo has quit (Ping timeout: 260 seconds).
01:31:42 <pikhq> Um, humans are kinda bad at being productive that long. Especially at mentally intense tasks.
01:32:17 <mad> if garbage collectors are ruled out you're left with, er, basically: C, C++, assembler, delphi, rust, and objective C (and I guess cobol and ada)
01:32:24 <mad> as far as I can think of
01:32:38 <pikhq> ... Have you never even heard of Forth?
01:32:44 <mad> ok and forth
01:32:53 <oerjan> also fortran, i think
01:32:56 <pikhq> Or Tcl, for that matter?
01:32:59 <mad> ok and fortran
01:33:06 * izabera adds bash to the list of non-garbage-collected languages
01:33:08 <pikhq> Hell, and Python.
01:33:29 <mad> how is python not garbage collected
01:33:35 <pikhq> Python is reference counted.
01:33:50 <mad> also it's dynamic typed which is a much larger speed disadvantage
01:33:53 <ais523> reference counters fall into a similar category to garbage collectors to me
01:34:00 <ais523> they have noticeable overhead, often more
01:34:12 <ais523> the difference being that it's predictable overhead that always happens in the same places
01:34:12 <pikhq> ais523: They're automatic memory management, but GC is a different technique.
01:34:18 <ais523> pikhq: yes
01:34:27 <ais523> they are not the same, but they have similar effects on a program
01:34:28 <pikhq> Ah, "similar".
01:34:28 <mad> ""The standard C implementation of Python uses reference counting to detect inaccessible objects, and a separate mechanism to collect reference cycles, periodically executing a cycle detection algorithm which looks for inaccessible cycles and deletes the objects involved.""
01:34:33 <pikhq> Yes, not the same but similar.
01:35:37 <mad> reference counting doesn't cause 100ms pauses in your app like the java GC does
01:36:39 <pikhq> Does Java not have a way of using a more interactive-use-appropriate GC?
01:36:56 <ais523> you can make hints to Java about when a good time to GC would be
01:37:10 <mad> ais523 : in a video game, there's never a good time
01:37:14 <ais523> but a) it doesn't have to respect them, b) you can't delay GC, only make it happen earlier (and hopefully not again for a while)
01:37:18 <ais523> mad: loading screens
01:37:23 <ais523> great time to GC
01:37:31 <hppavilion[1]> tswett: Hi yet?
01:37:38 <ais523> if you have the memory (and sometimes you do, but not always), you can just leak until the next loading screen and catch all the memory up there
01:37:38 <mad> if your game has loading screens, yes
01:38:00 <ais523> very few games don't
01:38:08 <hppavilion[1]> mad: Good luck
01:38:14 <ais523> although in many, they're disguised, or short enough that you don't really register them
01:38:16 <tswett> Hey there.
01:38:18 <hppavilion[1]> mad: Making a loading screen-free game, that is
01:38:22 <tswett> It happens you caught me at a bad time.
01:38:22 <hppavilion[1]> tswett: Yay!
01:38:25 <hppavilion[1]> Oh
01:38:26 <tswett> I have to go to bed now.
01:38:29 <hppavilion[1]> s/yay//
01:38:31 <ais523> even in the disguised/short ones, a 100ms pause isn't noticeable
01:38:32 <hppavilion[1]> i
01:38:32 <tswett> Night, everyone.
01:38:34 <pikhq> Also, if you have a *good enough* GC, you should be able to only pause for short periods of time between frames.
01:39:45 <mad> it would still be better to have only ref counting and no GC in that kind of programs though
01:40:19 <ais523> mad: so if the root of a structure gets freed
01:40:28 <ais523> you then have a pause while the rest of the structure gets freed recursively
01:40:32 <ais523> refcounting doesn't remove pauses
01:40:39 <ais523> simply makes it easier to predict when they'll happen
01:40:56 <mad> but (1) other threads keep going
01:41:14 <mad> as opposed to GC which has a "stop the world" phase where it pauses every thread
01:41:35 <ais523> not necessarily, concurrent GCs exist
01:41:39 <mad> so chances are the pause will happen on your data loading thread (not your gfx thread)
01:41:39 <pikhq> That's only true of a subset of GCs.
01:42:04 <mad> even concurrent GCs do have a "stop the world" phase, it's just much shorter
01:42:13 <mad> (if what I've read is correct)
01:42:23 <pikhq> By the same notion, so does malloc because malloc has a mutex.
01:42:59 <ais523> pikhq: I've managed to deadlock on that mutex before now :-(
01:43:25 <ais523> let's just say, SDL's situation with timing and concurrency is so bad I've decided to take a look at SFML to see if it's any better
01:43:46 <pikhq> SDL is... not a well-designed library.
01:44:48 <mad> yeah SDL is way less good than it should've been
01:46:26 <boily> pygame makes SDL sane.
01:47:18 <ais523> boily: does it prevent it polling every 1ms?
01:48:28 <boily> IIRC, I don't think so.
01:48:52 <mad> the other thing is that refcounting doesn't have heap compaction
01:48:56 <mad> which is a good thing
01:49:22 <pikhq> It's kinda a wash.
01:49:36 <pikhq> (and orthogonal to refcounting, really)
01:50:12 <pikhq> Heap compaction costs when it happens, but means the allocator can spend less time in allocation.
01:50:47 <mad> heap compaction on 300megs of data isn't pretty
01:51:04 <pikhq> I've forgotten how to count that low.
01:52:20 <mad> like, it's all fine if it's server software and it doesn't matter if the whole app stops for half a second
01:52:33 <pikhq> ... No, it isn't.
01:52:37 <mad> then, yes, by all means use java and C# and python and whatnot
01:53:43 <pikhq> If a service pauses for half a second I get paged.
01:58:14 <shachaf> pikhq: If an individual server has a GC pause of 500ms?
01:58:40 <pikhq> shachaf: I exaggerate.
01:58:55 <pikhq> shachaf: But we *do* have SLAs for response time to requests...
02:00:01 <shachaf> I shouldn't talk about details in here anyway.
02:00:27 <shachaf> Hmm, I think I know how to set off pikhq's pager.
02:01:04 <pikhq> Joke's on you, I'm not on call right now
02:01:36 <shachaf> But is your pager thing actually turned off?
02:01:48 <pikhq> Well, no...
02:06:00 -!- andrew_ has joined.
02:06:35 -!- Sgeo has joined.
02:14:48 <\oren\> aaah
02:14:49 -!- hppavilion[1] has quit (Ping timeout: 244 seconds).
02:14:54 <\oren\> it's elif
02:15:12 <\oren\> why can't it just also allow else if and elsif?
02:15:27 <lifthrasiir> in python?
02:15:36 <\oren\> yah
02:15:45 <lifthrasiir> probably elif is much used so it is easier to write in that way?
02:15:47 <lifthrasiir> not really sure.
02:16:24 <\oren\> true but it should allow elif, else if and elsif as alternatives
02:16:38 <lifthrasiir> "one way to do that" :p
02:16:49 <\oren\> argh
02:16:53 <izabera> you want perlthon
02:17:10 * izabera googled it and it's an actual thing
02:17:23 <prooftechnique> he\\oren\!
02:18:49 <\oren\> hi
02:18:54 -!- mysanthrop has joined.
02:19:27 <izabera> he hates you
02:19:53 <prooftechnique> :o
02:20:05 <\oren\> who?
02:20:27 <izabera> you
02:20:37 <prooftechnique> All right, and whom?
02:20:40 <izabera> you
02:20:53 <prooftechnique> Well, that's rude
02:21:01 <izabera> yeah
02:21:48 <\oren\> izabera: why do you think I hate him?
02:21:52 <\oren\> `relcome mysanthrop
02:22:12 <HackEgo> mysanthrop: 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:22:24 <prooftechnique> Needs more rainbows
02:23:07 <prooftechnique> I wonder if I can get mutt working on a jailbroken iPhone
02:23:41 <izabera> why
02:23:48 -!- j-bot has quit (Ping timeout: 248 seconds).
02:23:48 -!- myname has quit (Ping timeout: 248 seconds).
02:23:48 -!- Alcest has quit (Ping timeout: 248 seconds).
02:23:49 -!- MoALTz has quit (Ping timeout: 248 seconds).
02:23:49 -!- nisstyre_ has quit (Ping timeout: 248 seconds).
02:23:57 <prooftechnique> Consistent mail experience?
02:23:59 <izabera> unless your mutt has a much better interface than mine
02:24:27 <\oren\> I just use a ssh app and use alpine
02:24:32 <mad> how do C programmers live without std::vector and std::string
02:24:32 <izabera> you bought an iphone, you clearly care about eye candy
02:24:53 <prooftechnique> I technically lease an iPhone
02:26:40 <\oren\> mad: i have a bunch of poorly written functions I copy from one project to the next over and over
02:27:06 <pikhq> mad: Easily.
02:27:26 <pikhq> ... Or poorly, if you go by the average results. :P
02:27:32 <mad> reallocate arrays every time they change size?
02:27:50 <fizzie> Why would you do that if the std::vector implementation doesn't?
02:28:10 <fizzie> It's not like it's rocket science to have a struct that has "size" and "capacity" separately.
02:28:25 <mad> fizzie : true but then you might as well use std::vector
02:28:40 <mad> which does that and it can't leak
02:29:25 <\oren\> my functions resize them when they get to each power of two
02:29:57 <mad> \oren\ : that's exactly what std::vector does
02:30:09 <fizzie> I don't think array resizing is a major source of memory leaks.
02:30:25 <shachaf> I read this thing that was arguing that powers of two is one of the worst choices you could make.
02:30:26 <int-e> "new" is your friend if you want to leak memory in C++. ("can't" really is too strong)
02:30:43 <prooftechnique> Now, powers of three, though. That's the future
02:30:47 <mad> well, the point is that std::vector<stuff> replaces stuff *
02:30:55 <mad> stuff * can leak, of course
02:31:06 <mad> std::vector<stuff> can't
02:31:07 <int-e> C++ does have a couple of resource management idioms that C doesn't support, but it's far from golden anyway
02:31:29 <\oren\> I like std::vector. I *HATE* std::ios[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[Ctream
02:31:41 <\oren\> wtf just happends
02:31:51 <shachaf> Maybe it was https://github.com/facebook/folly/blob/master/folly/docs/FBVector.md
02:31:53 <lifthrasiir> iostream is a big raised middle finger to STL
02:32:22 <lifthrasiir> I cannot really understand how can it be possible to have STL and iostream in the *same* standard
02:32:22 <mad> int-e : C doesn't have std::vector, that's the real one that's missing and it's a major, major gaping hole
02:32:53 <pikhq> mad: Anyways, frankly if you think that std::vector is your solution to memory management problems you are too unaware of the problems there are to solve to be having this discussion.
02:32:56 <mad> lifthrasiir : 80% of the time I simply ignore iostream but use STL anyways
02:32:59 <prooftechnique> "always non-negative, almost always measurable, frequently significant, sometimes dramatic, and occasionally spectacular"
02:33:17 <mad> pikhq : if you need a special case then STL won't cut it true
02:33:54 <mad> but in my experience, "variable sized array" is 10x more common than any other memory structure and its omission from C hurts hard
02:33:59 <lifthrasiir> mad: yeah. STL is (within its design constraint) well-designed library, while iostream is an epic fail
02:34:29 <pikhq> It's also by far the easiest data structure to implement, so...
02:34:32 <lifthrasiir> for example, locale is a shit
02:34:36 <\oren\> well, realloc() is basically the equivalent for C
02:34:49 <\oren\> there's no operator renew
02:35:10 <mad> pikhq : yeah but you reimplement it so often that it should be a language feature really
02:35:12 <lifthrasiir> anyone who tried to write a new locale with iostream (to be exact, std::codecvt etc.) will understand that
02:35:27 <pikhq> Sure, it'd be a nice addition to libc.
02:35:51 <mad> there are, like, 4 features I care about in C++
02:36:29 <mad> std::vector, std::string, std::map, and putting functions in structs/classes for convenience (ie less typing)
02:36:47 <pikhq> That's the same for everyone. Unfortunately, it's a different 4 for each person, and C++ has enough features that each individual human being gets their own set of 4 features.
02:36:53 <mad> std::vector is not just a "nice addition", it's a major feature
02:38:00 <\oren\> I just have a function for appending to an array
02:38:03 <int-e> `? mad
02:38:06 <pikhq> (I suspect that C++ releases new versions to keep up with global population growth)
02:38:08 <HackEgo> This wisdom entry was censored for being too accurate.
02:38:27 <mad> pikhq : that is true
02:39:08 <\oren\> apparr(char**array,int*size,char*part,int*partz);
02:39:29 <int-e> https://developer.gnome.org/glib/stable/glib-Arrays.html
02:39:31 <mad> realloc() isn't bad
02:39:36 <boily> int-e: the mad that was censored isn't the mad that is in the chännel hth.
02:40:03 <pikhq> Ugh, glib. glib makes C++ look *angelic* in commparison.
02:40:19 <\oren\> my function does realloc iff size would increase through a power of two
02:41:04 <mad> \oren\ : yeah. I use std::vector for exactly that except with less potential mistakes
02:41:06 <\oren\> I don't remember why partz is passed by pointer
02:41:43 <boily> he\\oren\. more pointers, more stars, more sparkliness.
02:41:52 <mad> pointers are evil
02:42:06 <\oren\> computers are evil
02:42:14 <int-e> pikhq: sure but if the objection is that one has to reimplement resizable arrays all the time, that's one of the counterarguments that come to my mind
02:42:26 <mad> except pointers that are essentially referrences, those are okay
02:42:27 <pikhq> int-e: Fair enough. :)
02:42:46 <\oren\> mad: isn't that all pointers?
02:42:53 <boily> \oren\: I see that you are still fonting ^^
02:43:06 <boily> (nice fraktur btw.)
02:43:09 <\oren\> pointers and references are different words for the same thing
02:43:27 <mad> \oren\ : well, basically if its pointing to data owned by some other structure, it's okay
02:44:05 <mad> \oren\ : if it's pointing to a memory allocation and you get a leak if the pointer gets overwritten, then it's bad
02:44:36 <\oren\> how's that different from references?
02:45:38 <mad> well, c++ references are typically used in function declarations and they refer to some object
02:46:05 <mad> you can't use c++ references to do allocation/deallocation so by definition they generally can't be evil
02:46:23 <int-e> "can't", again.
02:46:28 <mad> generally
02:46:29 <boily> it's C++ we're talking about. everything can be alignment-shifted.
02:46:40 <mad> boily : and then it'll be slow
02:46:51 <mad> but that's a rare case
02:46:51 <\oren\> well then what good are they? you need some way to refer to non-stack memory...
02:47:09 <prooftechnique> If every programmer were as disciplined as that, we'd already be out of work
02:47:13 <int-e> I bet delete &ref; is valid
02:47:16 -!- nisstyre_ has joined.
02:47:55 <mad> \oren\ : easy, when you have a function that returns 2 things, one can be returned as a return value but the other has to be a pointer or reference argument and then the called function will write in it
02:48:05 <mad> that's what references are for
02:48:17 <mad> they're essentially interchangeable with pointers
02:48:45 <\oren\> that's what I said, they're just a pointer.
02:48:54 <mad> internally, c++ references are pointers yes
02:49:02 <boily> time to have unevil, functional sleep. 'night all!
02:49:03 <mad> basically they're just syntactic sugar
02:49:09 -!- boily has quit (Quit: SELFREFERENTIAL CHICKEN).
02:49:27 <mad> int-e : C++ doesn't guard against messing things up badly :D
02:49:40 <\oren\> specifically, a int& is the same as a int*const, but with syntax sugar
02:50:10 <\oren\> allowing you to code as if it's a int
02:50:49 <int-e> \oren\: and it's much harder to pass in NULL.
02:50:52 <mad> basically if there's a way to code something with malloc/free/new/delete, and a way that doesn't involve these, I always go for way #2
02:51:59 <prooftechnique> If you're not writing a custom malloc implementation every time, are you really doing your job?
02:52:22 <mad> the standard malloc goes through the bucket allocator
02:52:31 <pikhq> prooftechnique: I have a word for those people, but it's inappropriate for polite conversation.
02:52:36 <mad> for typical uses it does a pretty good job
02:52:44 <int-e> prooftechnique: If you're writing a custom malloc implementation every time, are you really doing your job?
02:52:52 <\oren\> well at my work we use our own resizable array class
02:53:07 <\oren\> instead of std::vector
02:53:13 <mad> how come?
02:53:29 <\oren\> because apparently std::vector doesn't play well with threads or somehting
02:53:31 <pikhq> The same is true of my work, but at this point I'm a little surprised we don't just have our own implementation of the STL...
02:54:12 <mad> \oren\ : depends on when it changes size :D
02:54:15 <int-e> the NIH is strong
02:54:21 <int-e> `? NIH
02:54:23 <HackEgo> NIH was /not/ invented by Taneb.
02:54:43 <int-e> `culprits wisdom/NIH
02:54:50 <mad> if you have a size change at the same time another thread looks or writes in the std::vector then you have a problem yes
02:54:51 <HackEgo> No output.
02:54:53 <pikhq> int-e: That's practically the Google way.
02:55:00 <int-e> `culprits wisdom/nih
02:55:04 <HackEgo> int-e
02:55:07 <prooftechnique> I'm a little sad that the CPPGM is already running. It seems like it'd be a fun thing to fail at
02:55:11 <int-e> meh, I forgot.
02:55:25 -!- ais523 has quit.
02:55:28 <\oren\> int-e: well half our codebase is in an in-house language instead of c++, and the compile porcess uses another in-house language instead of makefiles, so you know....
02:55:30 <shachaf> pikhq: The Google way isn't exactly NIH. They have their own variant of it.
02:55:40 <pikhq> shachaf: :D
02:57:06 <mad> \oren\ : basically whenever some std::vector can change size, it needs to be 100% mutexed accessible by only 1 thread, or else you're in trouble
02:57:18 <mad> the rest of the time it's the same as a C array
02:58:39 <mad> supposedly copy-on-write containers work well with threading
02:59:06 <\oren\> i think that's what we have NIHed
03:00:06 <mad> the other case I've heard is code that had to work on stuff like the nintendo DS
03:00:09 <\oren\> I haven't looked into the details since the interface is almost exaclt the same as std::vector
03:00:23 <mad> which if I'm not mistaken had a broken STL or something like that
03:00:48 <\oren\> this has to work on coffeemachines and things
03:00:55 <mad> my brother's company has a NIH std::vector equivalent because of that
03:02:39 <mad> for strings, ironically std::string basically complements char *>
03:03:09 <mad> char * strings are cool except that you basically can't store them, std::string fixes just exactly that
03:05:19 <\oren\> can't store them where?
03:05:37 <mad> well, char * has no storage
03:05:59 <\oren\> what the heck does that mean?
03:06:17 <mad> suppose you have to save some text data inside a struct
03:06:33 <mad> your options are like
03:07:28 <mad> char text[99]; // + 1 million runtime checks and prayer and hope that it never goes over
03:08:41 <mad> char *text; // and then make sure it's set to null in every single constructor and make sure it's deleted in the destructor and then checks that it's not null every time you read it and malloc/realloc if it ever changes size
03:09:12 <mad> std::string text;
03:10:32 <mad> it's just that option #3 has way less common failure modes than option #1 and option #2
03:10:48 <\oren\> std::string could be replaced with a bunch of funtions that take char* and handle everything you just said.
03:11:02 <mad> \oren\ : yes that's option #2
03:11:08 <mad> char * in the class
03:11:23 <\oren\> but the point is I already have such functions
03:11:51 <oerjan> `addquote <shachaf> pikhq: The Google way isn't exactly NIH. They have their own variant of it.
03:11:58 <HackEgo> 1270) <shachaf> pikhq: The Google way isn't exactly NIH. They have their own variant of it.
03:12:31 <mad> \oren\ : and you never forget to put them in constructors, destructors, and to put checks against null?
03:13:12 <\oren\> I don't have constructors or destructors, and all my string handling functions check for null
03:13:41 <\oren\> (becuase I'm writing in C, which doesn't have constructors or destructors)
03:13:59 <mad> \oren\ : well, when mallocating and freeing structs of that type then
03:14:11 <mad> of the type that contains the char *
03:14:37 <\oren\> well, since my usual first step is somthing like:
03:15:10 <\oren\> struct foo *f = newfoo();
03:15:19 <\oren\> then , inside newfoo:
03:16:08 <\oren\> struct foo *f = malloc(sizeof(struct foo)); *f = nullfoo; return f
03:16:30 -!- oerjan has quit (Quit: Late(r)).
03:16:43 <\oren\> that doesn't happen, becuase I have a prototype for all foo objects (nullfoo)
03:17:08 <mad> and you have a deletefoo() matching with every newfoo() ?
03:17:13 <\oren\> yes
03:18:00 <mad> yeah i guess that works
03:19:18 <\oren\> I even have some functions that can delete an array, taking a pointer to a delete function to be called on each element
03:19:26 <\oren\> and things like that
03:19:47 <mad> makes sense
03:20:13 <\oren\> it's an obvious extension of the precedent set by qsort and bsearch
03:20:35 <\oren\> they just didn't bother with it in the C stdlib
03:20:57 <mad> It's kindof the reverse of my coding style (which could be summarized as "avoid malloc/free unless there's really no other option") but I guess it's sorta functional
03:21:29 <\oren\> it's what you do if you're writing C and not C++
03:21:47 <mad> which makes sense if you're doing embedded coding yes
03:25:41 -!- nortti_ has joined.
03:25:42 -!- int-e_ has joined.
03:26:20 -!- puck1pedia has joined.
03:26:27 -!- lambda-calc has joined.
03:26:27 -!- lambda-11235 has quit (Ping timeout: 260 seconds).
03:26:28 -!- aloril_ has quit (Ping timeout: 260 seconds).
03:26:29 -!- puckipedia has quit (Ping timeout: 260 seconds).
03:26:29 -!- Gregor has quit (Ping timeout: 260 seconds).
03:26:30 -!- nortti has quit (Ping timeout: 260 seconds).
03:26:30 -!- atehwa_ has quit (Ping timeout: 260 seconds).
03:26:30 -!- catern has quit (Ping timeout: 260 seconds).
03:26:30 -!- quintopia has quit (Ping timeout: 260 seconds).
03:26:30 -!- int-e has quit (Ping timeout: 260 seconds).
03:26:52 -!- Gregor has joined.
03:27:35 -!- bender|_ has joined.
03:27:40 -!- puck1pedia has changed nick to puckipedia.
03:28:06 -!- aloril_ has joined.
03:31:06 -!- atehwa has joined.
03:31:28 -!- ais523 has joined.
03:31:29 -!- ais523 has quit (Remote host closed the connection).
03:31:30 -!- j-bot has joined.
03:37:44 -!- quintopia has joined.
03:43:29 -!- hppavilion[1] has joined.
03:43:36 -!- catern has joined.
04:02:17 -!- hppavilion[1] has quit (Ping timeout: 244 seconds).
04:12:33 -!- hppavilion[1] has joined.
04:15:07 -!- ais523 has joined.
04:15:49 <ais523> OK, so SFML uses a very thread-centric model
04:16:03 <ais523> e.g. there's no way to inject user-defined events, no way to do timers, etc.
04:16:51 <ais523> however, it /also/ doesn't define any safe way to communicate between threads, other than mutexes, and I don't think you can form the equivalent of a select() out of mutexes
04:17:08 * ais523 is in #esoteric, and thus takes questions like "can you create a message queue out of nothing but mutexes" seriously
04:18:26 <ais523> so the question is, what are the sensible cross-platform ways to merge events coming in from multiple threads, when your threading primitives suck?
04:20:24 <ais523> note: something you /could/ do entirely within SFML is to create a TCP listening socket and use that, but a) this uses up a global system resource (open ports), b) there's no way to restrict connections to localhost so it's more than a little insecure
04:20:35 <ais523> (no way within SFML's API, that is; you can obviously do it in TCP)
04:21:34 <coppro> ais523: define "out of nothing but mutexes"
04:22:04 <coppro> are we talking about communication via try_lock()?
04:22:09 <ais523> the only thread-safe blocking primitive that you have available is the mutex lock, which will block if another thread has the mutex locked
04:22:32 <ais523> the problem isn't transferring the data, because you can do that via shared memory
04:22:37 <ais523> (which is the default for threading)
04:22:52 <ais523> the problem is blocking until there's a message ready to receive
04:22:55 <coppro> ahhh
04:23:11 <ais523> and AFAICT, the problem is that you can only try to lock one mutex at a time, a specific thread holds it
04:23:28 <ais523> and so you're blocked until that specific thread gives you permission
04:23:32 <ais523> (also you can't do anything meanwhile)
04:25:04 <ais523> it's basically the opposite situation to the situation for which mutexes were designed; we don't have one process holding the lock and many waiting on it, we have many processes holding the lock and one waiting on one of them to release it
04:25:09 <ais523> s/process/thread/
04:26:07 <mad> isn't SFML a multimedia library?
04:26:32 <ais523> mad: yes
04:26:46 <ais523> however this means it contains an event loop
04:27:09 <ais523> and its event loop uses a "use different threads for different sorts of events" model (implicitly in that it doesn't support timers, has sockets as a separate thing from windows, etc.)
04:27:18 <ais523> it also supplies threads, and mutexes
04:27:32 <ais523> but this isn't enough to be able to communicate between threads without polling AFAICT
04:28:16 <coppro> ais523: yes, I don't think it's possible either
04:28:31 <mad> I'm not familiar with how it's done in the networking world
04:28:36 <coppro> mad: polling
04:28:43 <coppro> under the hood, anyway
04:29:10 <ais523> so what I want is either a solution a) inside SFML using other primitives it has (IMO impossible), or b) using cross-platform primitives that are widely implemented
04:29:36 <ais523> I could use pthreads, I guess; however I don't know how that works on Windows/Strawberry
04:29:59 <ais523> and/or how well it plays with SFML (which after all, has its own threading abstraction)
04:30:07 <mad> wait, what's the thing you can't do with mutexes?
04:30:27 <ais523> mad: block until something happens on any of multiple threads
04:30:51 <coppro> ais523: semaphores
04:31:10 <ais523> coppro: semaphores would work fine, but SFML doesn't supply them as a primitive
04:31:18 <coppro> ais523: most platforms do though
04:31:19 <mad> ais523 : oh I see
04:31:23 <coppro> hence b)
04:31:31 <mad> ais523 : ...what's the application for that?
04:31:32 <coppro> hard to find something more primitive
04:31:37 <ais523> right
04:32:04 <ais523> mad: the situation is that I am writing a library (libuncursed; coppro's worked on it in the past too) that presents an event-loop interface to programs using it
04:32:16 <ais523> and abstracts over a number of different backends (currently, POSIX, Windows, and SDL)
04:32:22 <coppro> definitely semaphores
04:32:33 <mad> hmm, how about
04:33:10 <mad> event handling thread blocks on one mutex
04:33:11 <ais523> there are others that could be sensible, too (e.g. X, GDI)
04:33:34 <mad> any of the multiple other threads can unlock that mutex
04:33:42 <ais523> you can't unlock a mutex unless you hold it, surely
04:33:48 * ais523 checks to see if SFML have messed this up
04:34:20 <ais523> hmm, it doesn't say that you can't unlock a mutex while another thread holds it
04:34:43 <ais523> perhaps it's worth experimenting with
04:35:00 <ais523> seems vulnerable to race conditions but that maybe isn't insoluble
04:35:06 <mad> well
04:35:17 <ais523> (e.g. using a separate mutex to protect the signalling one)
04:35:21 <mad> that mutex would only be used to pause the event handling loop
04:36:11 <ais523> so, let's see
04:36:13 <ais523> we have two mutexes
04:36:18 <mad> each particular ressource would have its own mutex so that the owner thread of that ressource would unlock its ressource, then unlock the event handling thread's mutex
04:36:22 <ais523> oh, bleh
04:36:26 <ais523> these mutexes are recursive
04:36:57 <ais523> the obvious algorithm, assuming you can unlock someone else's mutex, ends with the event handling thread intentionally deadlocking on itself
04:37:02 <ais523> but you can't do that with a recursive mutex
04:37:15 <ais523> so we'll have to create a separate thread purely to deadlock it
04:38:14 <ais523> so three locks (A, B, C), two "special" threads (event and deadlock), N generic threads
04:38:52 <ais523> netutral state is A locked by deadlock, event waiting on it; B locked by event, deadlock waiting on it; C unlocked
04:39:18 <ais523> when a generic thread wants to send a message, it locks C, pushes the message on a queue, unlocks A if the queue was empty (this is protected by C), unlocks C
04:40:35 -!- XorSwap has joined.
04:41:26 <ais523> when event gets past the deadlock, it locks C, and handles messages from the queue until it's empty; then, hmm
04:41:31 <ais523> SFML doesn't even have a trylock
04:41:42 <mad> what sort of use is having a general event handling thread like that for?
04:41:47 <ais523> so how do we get back into the deadlocked state?
04:42:33 <ais523> mad: say you want to wait for a key to be pressed, or for 1 second to pass
04:42:44 <ais523> and the timer thread and keypress handling thread have to be different for some reason
04:43:53 <mad> that's a bit of a weird test case
04:43:58 <ais523> your two options are: run the entire logic of the program on whichever thread happened to be the one that received the event (key/timer); or send all the messages to the same thread
04:44:41 <ais523> it's not a weird test case at all, it's a common enough operation that, say, both ncurses and uncursed provide a function that does exactly that (although ofc the timeout's configurable)
04:44:58 <ais523> or for another example, say you want to wait for either a keypress, or receiving a network packet
04:45:44 <mad> multimedia apps often just keep processing video frames and handke keypresses on next frame
04:46:08 <ais523> that's a common way to write IRC clients (although in this case the responses to a keypress and to a network packet are different enough that you can run them on different threads without too much effort, that isn't something you should have to do)
04:47:15 <ais523> mad: that's terrible for battery life, though
04:47:22 <ais523> you want to be able to block until something happens, rather than having to poll
04:47:31 <ais523> (in fact it's the reason I wanted to move away from SDL in the first place)
04:48:13 <mad> I guess it depends on if you have the case where your app does nothing when there's no input
04:48:54 <mad> which I guess is sensible for an irc client but not a game
04:49:18 <ais523> mad: turn-based games often do nothing when there's no input
04:49:31 <mad> unless they have audio
04:49:48 <pikhq> Different thread
04:50:05 <ais523> audio is one of those things that can safely be run in an independent thread, yes
04:50:16 <ais523> or interrupt-to-interrupt, on less powerful systems
04:50:25 <mad> yeah but that means you have at least one always active thread
04:50:26 <ais523> this is why it's often the only thing that works when the rest of the game crashes
04:50:43 <ais523> mad: no? audio thread blocks until the sample buffer drains, typically
04:50:45 <mad> which means that you might as well do polling on your event handler thread
04:50:52 <ais523> there's only so much the audio thread can do before blocking
04:51:02 <mad> ais523 : yes, which happens at least 50 times per second
04:51:05 <ais523> you're not running in a busy loop calculating samples
04:51:12 <\oren\> do you have any primitive atomics on shared memory?
04:51:37 <ais523> also 50fps is still slower than a typical video framerate
04:51:47 <ais523> \oren\: std::atomic would work in this case, I think
04:51:51 <ais523> given that it's C__
04:51:51 <\oren\> (although last time I touched that stuff I got terrible radiation burns)
04:51:53 <ais523> * C++
04:53:07 <mad> depends on what you mean by "atomic"
04:53:56 <ais523> mad: a variable that supports operations that cannot be interfered with by other threads
04:54:01 <mad> for typical cases it's really the operations you do on your primitive that are atomic, I guess... and yeah I guess std::atomic does this for you
04:54:05 <ais523> there are a range of atomic operations, some more useful than others
04:54:18 <ais523> test-and-set is a common example of a primitive that's powerful enough to build anything else
04:54:36 <ais523> (set-to-specific-value, that is, not set-to-1)
04:55:03 <mad> yeah, the equivalent of lock cmpxchg? :D
04:55:04 <\oren\> yeah I think we used a swap operation in my OS class
04:55:29 <\oren\> or maybe a compare and swap?
04:55:52 <pikhq> Surely CAS. Just swap isn't sufficiently general I don't think.
04:56:13 <ais523> pikhq: IIRC pure swap is sufficiently general, but much more complex to use
04:56:23 <pikhq> Ah, okay.
04:56:26 <mad> I think it needs the compare to handle the case where some other thread has changed the value
04:56:33 <mad> between the read and the write
04:56:37 <ais523> pikhq: you can construct a boolean test-and-set out of a swap by swapping in a 0 or 1
04:56:47 <ais523> swapped-out value is the test, swapped-in value is the set
04:56:54 <pikhq> And you don't find hardware without CAS really, so it's not worth the effort.
04:56:55 <\oren\> yeah we used just swap
04:57:24 <\oren\> the OS ran on some sort of virtual machine
04:57:35 <ais523> you basically use the test-and-set as a mutex to guard a non-atomic operation on shared memory
04:57:43 <ais523> I think you might have to spin until the value is not set any more, though
04:58:04 <mad> how does swap guarantee that some other thread hasn't changed the value after your read but before your write?
04:58:05 <\oren\> yup, that's what we did, I remeber it now
04:58:29 <ais523> mad: atomic swap guarantees that because atomic
04:58:47 <\oren\> i think maybe it just freezes the other processors? who knows
04:58:49 <ais523> hmm, so SFML on Linux, at least, uses pthreads
04:59:09 <ais523> \oren\: it actually uses quite a complex locking mechanism internally
04:59:22 <ais523> the processors will block on the lock on the memory address if they try to access the same address
04:59:29 <ais523> there might also be some memory barriers involved
04:59:47 <\oren\> well, in my course we were on a vitual machine, so who knows
04:59:52 <mad> ais523 : but you can't prevent the swap if the value has changed
05:00:00 <ais523> mad: which value?
05:00:10 <mad> suppose you're trying to do an atomic increment
05:00:14 <mad> value is 0
05:00:22 <ais523> mad: you don't do the swap on the value you're incrementing
05:00:26 <ais523> you do it on a second, guard value
05:00:37 <ais523> which is 1 while in the middle of an increment, and 0 the rest of the time
05:00:43 <ais523> to increment, first you swap the guard value with 1
05:00:48 <\oren\> maybe cmpxchg is better for real processors because you don't need so much locking
05:01:07 <pikhq> cmpxchg lets you have atomics without having a second guard value like that.
05:01:13 <ais523> if you swapped a 0 out of it, then you do the increment, and swap a 0 back in (and will get a 1 after your swap unless shenanigans)
05:01:16 <mad> \oren\ : cmpxchg lets you do atomic increment without a guard value yeah
05:01:30 <ais523> if you swapped a 1 out of it, then you try again; you swapped a 1 with a 1 so you didn't interfere with the process that's currently doing the increment
05:01:49 <\oren\> so they made us do it with swap only because it's harder
05:01:52 <ais523> with compare-and-swap, what you do is you first (nonatomically) read the value, say it's x
05:02:01 <ais523> then you swap in x+1 if the current value is x
05:02:12 <ais523> if you swapped an x out, everything is fine, you're done
05:02:13 <mad> ais523 : but what if you have a 1 and then a third thread comes in? then the third thread will see a false 0
05:02:34 <ais523> if you didn't, then try again, you didn't change anything as you did a read and a failed-CAS
05:02:40 <ais523> mad: no it won't
05:03:16 <mad> oh
05:03:22 <mad> wait I guess I see
05:03:27 <ais523> here's my program: /*x*/ while (swap(guard, 1)); /*y*/ val++; /*z*/ swap(guard, 0)
05:03:50 <mad> yeah that works if the cpu doesn't reorder memory writes
05:03:59 <ais523> yep
05:04:03 <mad> and reads
05:04:10 <ais523> and an atomic swap is normally assumed to contain appropriate memory barriers
05:04:18 <ais523> to protect anything that's ordered relative to it
05:04:29 <mad> which means it should work on x86 but not necessarily other platforms
05:04:34 <ais523> (either in the processor architecture itself, or because it's a wrapper for the instruction + the barrier)
05:04:56 <pikhq> mad: The underlying instruction, sure, but any real-world use would have the appropriate memory barrier.
05:04:56 <mad> ais523 : as opposed to cmpxchg which.... doesn't really need barriers I think?
05:05:12 <pikhq> Because it's not at all helpful if it's not a synchronization primitive. :)
05:05:43 <ais523> mad: well it depends on what the memory sequencing properties of the compare-and-swap are
05:05:53 <ais523> it needs to contain at least a barrier on the things it's swapping
05:06:09 <ais523> but really you need them in order to avoid time paradoxes
05:06:16 <mad> well, the point of compare-and-swap is to have memory order guarantees against some other thread also doing compare-and-swap on the same value
05:06:34 <mad> so presumably it has at least some kind of barrier against itself
05:07:05 <pikhq> That's the "lock" prefix on x86.
05:07:18 <mad> right
05:07:21 <pikhq> Without it, cmpxchg isn't atomic WRT other threads. :)
05:07:25 -!- lleu has quit (Quit: That's what she said).
05:07:28 <ais523> something that happens in Verity at the moment (assignment in Verity is atomic but has no barrier): new x := 0 in new y := 0 in {{x := 1; y := 2} || {y := 1; x := 2}}; print(!x); print(!y)
05:07:41 <ais523> can print 1 1 even if you had a barrier betwen the parallel assignment and the prints
05:08:25 <ais523> this is because there's no barrier between the assignments to x and to y, and in particular, the four assignments can happen /literally/ simultaneously, in which case it's unspecified which ones win
05:08:46 <mad> that seems normal?
05:09:03 <pikhq> Yes, but it's weird to people used to x86's memory model.
05:09:15 <ais523> mad: well there isn't any way to interleave {x := 1; y := 2} and {y := 1; x := 2} that leaves both variables set to 1
05:09:28 <mad> well
05:09:33 <mad> x := 1 happens
05:09:43 <mad> oh
05:10:04 <pikhq> Reordering is fun.
05:10:11 <ais523> pikhq: it's not even reordering
05:10:15 <mad> the print() stuff happens on the 2nd thread?
05:10:15 <ais523> it's just simultaneity
05:10:23 <ais523> mad: || is a thread split + join
05:10:24 <mad> after the x:=2
05:10:41 <mad> where's the join?
05:10:49 <ais523> i.e. I temporarily fork into two threads, one does {x := 1; y := 2} and the other does {y := 1; x := 2}
05:10:51 <ais523> then the threads join
05:10:57 <ais523> || is a fork + join operator
05:11:15 <mad> I guess you're right, that can't happen in the x86 memory model
05:11:23 <mad> unless the compiler reorders the writes
05:11:35 <mad> (which afaik it totally can)
05:11:38 <ais523> in Verity, the compiler doesn't reorder the writes, it's just that all four happen at the exact same time
05:11:58 <ais523> mad: right, in gcc you'd need a compiler barrier
05:12:02 <pikhq> The x86 memory model is one of the stronger ones out there.
05:12:07 <ais523> like "asm volatile ();"
05:12:17 <ais523> to prevent gcc reversing the order of the assignments to x and to y
05:12:23 <mad> pikhq : they probably had no choice :D
05:12:31 <mad> considering all the apps out there
05:12:40 <ais523> well most programs out there at the time were single-threaded
05:12:41 <pikhq> ais523: I'm not sure if that's actually a full compiler barrier.
05:12:47 <ais523> pikhq: err, right
05:12:51 <ais523> asm volatile (:::"memory")
05:12:53 <pikhq> I tend to use asm volatile("" ::: "memory");
05:12:59 <pikhq> Yeah.
05:13:45 <mad> there's probably less compiler memory op reordering on x86 though
05:13:53 <mad> due to the structure of the instruction set
05:13:56 <pikhq> mad: It's actually a fairly arbitrary choice, given that it would *only* effect programs and OSes that were aware of multiprocessing, and when introduced this was very close to 0.
05:15:04 <mad> I remember that when real multiprocessor systems started to happen there were a few apps that started failing
05:15:12 <mad> not that many tho
05:15:56 <ais523> hmm, Verity's || operator was called , in Algol
05:16:02 <pikhq> Yes, they'd be ones that used threads incorrectly.
05:16:11 <ais523> Verity is an Algol derivative, after all, so it's not surprising it has one
05:16:28 <mad> is {x := 1; y := 2} implicitly unordered?
05:16:28 <ais523> however, it's surprising that it isn't seen more often in modern languages
05:16:32 <pikhq> Hence why it would be not that many -- threading is a bit niche without multiprocessor systems.
05:16:33 <ais523> mad: no, it's ordered
05:16:48 <ais523> assignment to x happens before, or simultaneously with, assignment to y
05:17:08 <mad> 'or simultaneously with'
05:17:27 <ais523> a write to a variable cannot happen simultaneously with a write or read that comes earlier
05:17:41 <ais523> and if a write and read happens simultaneously you get the new value
05:17:45 <ais523> there, those are Verity's timing rules
05:17:54 <pikhq> ais523: Huh, that's actually kinda-sorta related to C's , introducing a sequence point, then, isn't it?
05:17:58 <ais523> (by simultaneously, I mean on the same clock edge)
05:18:08 <pikhq> Erm, no, no it isn't.
05:18:28 <ais523> pikhq: for if you want even more detail on how it works:
05:18:40 <ais523> it's call-by-name so naming a variable can be seen a bit like a function call
05:18:48 <ais523> and the same call can't return twice on the same cycle
05:19:07 <ais523> however, for "simple" reads of variables the call can be optimized out
05:19:35 <ais523> (it just looks at the bits in memory directly)
05:20:10 <mad> if all read/writes in a group are to different variables, they can happen all at the same time?
05:20:17 <ais523> yes
05:20:29 <mad> then I guess they can be reordered no? :D
05:20:38 <ais523> "the same call can't return twice on the same cycle" is the /only/ rule slowing the program down (apart from some corner cases wrt recursion)
05:20:44 <ais523> mad: no, in x := 1; y := 2
05:20:49 <ais523> the write to y can't happen before the write to x
05:20:57 <ais523> it happens simultaneously (same clock cycle) or later
05:21:28 <mad> hm
05:21:30 <ais523> (in this particular case it would be simultaneous because 2 is a constant, and thus there's nothing that could delay the write to y)
05:22:49 -!- bender|_ has changed nick to bender|.
05:22:57 -!- bender| has quit (Changing host).
05:22:57 -!- bender| has joined.
05:23:03 <mad> what if you had x := some_calculation; y := 2
05:23:04 <mad> ?
05:23:06 <ais523> fwiw I consider this behaviour to potentially be a bug, but we've decided that for the time being at least it isn't (also it makes the program run faster, which is a good thing in the abstract)
05:23:21 <ais523> mad: x and y would be assigned at the same time, when the calculation completed
05:23:39 <ais523> meanwhile x := 2; y := some_calculation would assign x first, start the calculation that cycle, and assign y when the calculation completed
05:23:44 <ais523> which might or might not be that cycle
05:23:52 <mad> what about
05:24:06 <mad> x := some_calculation; y := some_calculation
05:24:08 <mad> ?
05:24:48 <mad> how much of y's calculation can overlap with x's calculation?
05:24:55 <ais523> runs the calculation, when it finishes delays one cycle; then assigns the result to x and starts running the calculation again, when it finishes assigns the result to y
05:25:32 <ais523> note the "delays one cycle", this is automatically inserted to fulfil the rule that prevents the same block of code being used for two different purposes at the same time
05:25:49 <mad> what about
05:25:56 <mad> x := some_calculation; y := some_other_calculation
05:26:12 <ais523> those could happen on the same cycle (unless the two calculations involve shared resources)
05:26:22 <mad> ah ok
05:26:23 <mad> I see
05:26:25 <ais523> obviously, they only would if some_other_calcuation took zero cycles
05:26:40 <ais523> as some_other_calculation doesn't start until some_calculation has finished
05:26:42 <ais523> and to complete the set
05:26:50 <ais523> x := some_calculation || y := some_other_calculation
05:27:04 <ais523> would run both calculations in parallel regardless of what arguments they took or how long they took
05:27:57 <mad> is this designed for some specific piece of hardware? :D
05:29:19 <ais523> pretty much the opposite: it designs specific pieces of hardware
05:29:29 <ais523> to run the program you entered
05:29:37 <ais523> e.g. via programming an FPGA
05:29:46 <mad> does it compile to verilog or something like that?
05:29:49 <ais523> yep
05:29:52 <ais523> VHDL, in this case
05:30:03 -!- lynn has joined.
05:30:27 <ais523> and ofc the big advantage of designing hardware is that you can do things in parallel for free
05:30:36 <ais523> so long as you don't need access to shared resources
05:31:17 <mad> mhm
05:31:18 <ais523> one of my coworkers is looking into rewriting "x := a; y := b" as "x := a || y := b" if it can prove that the two programs always do the same thing
05:31:32 <ais523> which would give a big efficiency gain without requiring people to place all the || in manually
05:31:51 <mad> that sounds like an aliasing resolution problem
05:32:10 -!- dingbat has quit (Quit: Connection closed for inactivity).
05:33:37 <mad> the standard approach to that is renaming but then it can parallelize the variables but not the name changes
05:33:38 <ais523> well, much of our theoretical research has been in that direction
05:33:53 <ais523> in particular, we statically know whether any two things can share or not
05:34:08 <ais523> we don't have aliasing problems because Verity disallows storing anything other than integers in pointers
05:34:15 <ais523> *integers in variables
05:34:21 <ais523> (in particular, you can't store a pointer in a variable)
05:36:38 <mad> how does it know what to put in dram, block ram and in logic fabric registers?
05:39:20 <ais523> arrays go in block ram, non-array variables in logic fabric (unless a large number of copies are required due to, e.g., them being local to a recursive function)
05:39:31 -!- lambda-calc has changed nick to lambda-11235.
05:39:32 <ais523> dram isn't used by the language itself but you could write a library to access it
05:39:51 <ais523> (assuming you're talking about external ram)
05:39:59 <ais523> ("d" could expand in more than one way here)
05:45:10 -!- bender| has quit (Remote host closed the connection).
05:45:37 <mad> is "array[x] := n || array[y] := m" a compilation error?
05:46:39 <ais523> yes but only because arrays use () for indexing rather than []
05:47:02 <ais523> although, interestingly, "array(x) := n || array(y) := m || array(z) := l" will give you a warning
05:47:24 <ais523> the reason is that you can't do more than two writes to block RAM simultaneously in hardware
05:47:39 <mad> yeah obviously
05:47:45 <ais523> and thus it has to add extra components to serialize the writes so that no more than two happen at a time
05:48:40 <mad> what mode does it use the bram's port in? read_before_write?
05:49:03 <ais523> "warning: made 3 copies of an array's read/write ports" "info: at most two read/write ports can be supported efficiently"
05:49:10 <ais523> and read-before-write, yes
05:49:27 <ais523> not that it matters, all that changes is the behaviour in race conditions
05:50:37 <ais523> that said, I'm currently working on implementing pipelining
05:51:00 <ais523> in which case "array(x) := n || array(y) := m || array(z) := l" would do the writes on three consecutive cycles and thus you wouldn't get the warning
05:51:23 <mad> but then your throughput would go down :D
05:53:21 <ais523> yes; this is something we might want to look at later
05:56:27 <mad> I've been really into trying to find an alternative to RISC/CISC/VLIW for practical CPUs
05:58:29 <mad> it's hard to balance between too static-scheduled (VLIW being simple but stalling easily etc) and too dynamic-scheduled (RISC/CISC start breaking down majorly over about 4 instructions per cycle)
05:59:13 <ais523> as this is #esoteric, I'm wondering if there are any other alternatives
05:59:36 <ais523> even if it's a pretty hppavilion[1] reaction to the problem
05:59:46 <mad> I have some interesting designs but nothing approaching the simplicity of RISC
06:00:21 <ais523> what about a CPS processor?
06:00:34 <ais523> i.e. "run this command, once it finishes running, do this other thing next"
06:00:45 <ais523> although that's pretty similar to hyperthreading, really
06:01:04 <mad> it falls down on what exactly a "command" is :D
06:01:10 <ais523> and there's a reason processors don't run entirely on hyperthreading
06:01:52 <mad> I thought hyperthreading was basically just a way to keep the cpu active when loads have fallen out of data cache and it's that or stalling
06:01:56 <mad> :D
06:02:29 -!- XorSwap has quit (Quit: Leaving).
06:02:38 <mad> or, in the case of sparc, a way of wiggling their way out of doing an out-of-order while keeping okay performance :D
06:03:32 <mad> ais523 : what runs in parallel in a CPS processor?
06:04:12 <ais523> mad: I guess you can start multiple commands (well, opcodes) running at the same time
06:04:18 <ais523> basically via the use of a fork opcode
06:04:42 <ais523> the question is, do we also need a join, or do we just exit and run the code for its side effects?
06:04:58 <mad> how do you tell if the opcodes are truly independent or have dependencies?
06:06:01 -!- lynn has quit (Read error: Connection reset by peer).
06:06:35 <mad> the approach I've been looking at is extremely small "threads"
06:06:42 <mad> like, 3 instruction long for instance
06:07:24 <ais523> you don't have to, you just run them whenever they become runnable
06:07:56 <ais523> I guess that if you add join, this is basically just a case of an explicit dependency graph
06:08:08 <mad> if your commands do loads/stores on the same memory you need to know what happens
06:08:13 <ais523> which is a bit different from VLIW
06:08:20 <ais523> but similar in concept
06:08:54 <mad> VLIW dependency is handled by keeping everything in some exact known sync
06:09:53 <mad> compiler scheduler knows the sync and fills the instruction slots
06:10:25 <mad> generally it works well for DSP code (lots of multiplies and adds etc) but not well at all for load-store-jump code
06:10:33 <mad> which is why VLIW is typically used in DSPs
06:11:04 <ais523> ah right
06:11:10 <ais523> well I'm basically thinking of the Verity model but on a CPU
06:11:33 <mad> some CPUs simply run all loads and stores in-order
06:11:36 <ais523> if two things don't have dependencies on each other, you run them in parallel
06:11:44 <mad> everything else can be reordered willy-nilly though
06:12:20 <ais523> this means that the CPU needs to be able to handle large numbers of threads at once (probably a few hundred in registers, and swapping if the registers get full), and needs very cheap fork/join
06:12:23 <mad> ais523 : true, but if your two things are memory addresses calculated late in the pipeline, it's very hard to tell that they have dependencies
06:12:35 <ais523> OTOH, so long as you have enough threads available, you don't care much about memory latency, only bandwidth
06:12:46 <ais523> just run something else while you're waiting
06:12:59 <ais523> this is similar to GPUs but GPUs are SIMD at the lowest levels, this is MIMD
06:13:20 <ais523> mad: well the dependencies would be calculated by the compiler
06:13:36 <mad> compiler can only calculate so many dependencies
06:13:39 <ais523> ideally via the use of a language in which aliasing problems can't happen
06:14:02 <hppavilion[1]> ais523: ALIW and OLIW are some alternatives to RISC, CISC, and VLIW
06:14:03 <mad> in fact the ideal situation for the compiler is that loads and stores never move
06:14:14 <mad> every other instruction is easy to move
06:14:30 <ais523> in most practical languages, though, loads and stores happen a lot
06:14:42 <ais523> hmm, can we invent some sort of functional memory for functional languages?
06:14:44 <mad> it's just calculations and it's all in SSA form so it knows exactly what depends on what and how to reorder stuff
06:14:53 <ais523> i.e. memory never changes once allocated, it can go out of scope though
06:14:59 <hppavilion[1]> ais523: I thought of that once- the ASM of Haskells
06:15:08 <mad> what I was thinking of was C++ with absolutely no pointers
06:15:22 <ais523> just use Verity :-P
06:15:23 <mad> and every object or array is copy-on-write
06:15:31 <ais523> there have been some experiments of getting it to run on CPU
06:16:02 <mad> no dynamic typing or garbage collection or other slow features
06:16:15 <hppavilion[1]> ais523: What other properties should the FMM have?
06:16:27 <mad> only copy-on-write because it's the one thing that can prevent aliasing
06:16:41 <ais523> hppavilion[1]: FMM?
06:16:48 <hppavilion[1]> ais523: Functional Memory Model
06:17:06 <ais523> mad: not the only thing, you can use clone-on-copy instead
06:17:09 <ais523> it's just slower usually
06:17:36 <ais523> (it's faster for very small amounts of data, around the scale of "if you have fewer bits in your data than you do in an address")
06:17:41 <mad> but then don't you need references if you use clone-on-copy
06:17:45 <mad> ?
06:18:30 <mad> references so that you can point to objects that you're going to read from without doing tons of copies
06:18:40 <ais523> I didn't say it was efficient
06:18:42 <ais523> just that it works
06:19:11 <mad> that's why I'm suggesting copy-on-write
06:19:26 <ais523> hppavilion[1]: the main problem with a functional memory model is handling deallocation
06:19:39 <ais523> you can a) use reference counts, b) use a garbage collector, c) clone on copy
06:19:54 <ais523> method c) is used by most esolang impls AFAIK
06:20:15 <mad> what do haskell etc use?
06:21:07 <hppavilion[1]> ais523: Interesting...
06:21:44 <ais523> mad: normally garbage collectors, for most workloads it's the most efficient known solution
06:21:57 <ais523> although it requires a lot of complexity to get it more efficient than reference counting
06:22:41 <mad> can functional programming generate cycles?
06:22:43 <ais523> I personally like reference counting, especially because it allows you to implement an optimization whereby if something is unaliased at runtime (i.e. the reference count is 1), you can just change it directly rather than having to copy it first
06:23:07 <mad> that's what copy-on-write is no?
06:23:27 <ais523> there are language features which can cause cycles to be generated; however, some functional languages don't include those features
06:24:02 <ais523> copy-on-write doesn't necessarily check for refcount 1, some implementations check for never-cloned instead
06:24:25 <ais523> which means that you don't have to update the refcount when something leaves scope
06:24:41 <mad> but what if it was cloned but then the clone went out of scope?
06:24:47 <mad> then you have a useless copy
06:24:50 <ais523> yep
06:25:07 <ais523> but without a refcount you don't know it's useless until the next gc cycle
06:25:46 <mad> the idea of having COW everything is that also when you need a copy, typically you only need a copy of the topmost layer
06:25:58 <ais523> it's possible that the extra copies are faster than the refcount updating
06:26:02 <mad> ie an object containing a bunch of sub-objects
06:26:14 <ais523> most likely because you're just copying a wrapper that contains a couple of pointers
06:26:24 <mad> if you have to copy the object, you don't need any copy of the sub-objects
06:26:31 <mad> except the ones that are really different
06:26:32 <ais523> and yes, I think we're making the same point here
06:27:33 <mad> how expensive is refcounting anyways?
06:27:37 <mad> it's just +/-
06:27:53 <ais523> it's pretty expensive because it screws up your cache
06:28:12 <ais523> whenever something gets copied or freed, you have to a) dereference it, b) write a word of memory next to it
06:28:37 <ais523> which means that less fits in your cache, and copy and free operations end up bumping something into cache that isn't immediately needed
06:28:47 -!- mysanthrop has changed nick to myname.
06:28:48 <mad> isn't it reading in 1 cache line that's probably going to be read by whatever next object operation on that object?
06:29:02 <ais523> for a free, you probably aren't planning to use the object again for a while ;-)
06:30:00 <mad> well, for a free you start by -- refcount, checking it, it's 0, then you have to go through the whole destructor so that's more accesses to object variables no?
06:31:42 <ais523> oh, you're assuming there's a nontrivial destructor
06:31:54 <ais523> I'm not, destructor is often trivial
06:32:23 <mad> well, it must decrease child object refcounts no?
06:32:31 <ais523> yes, /but/ we're comparing refcounting to GC
06:32:34 <mad> and eventually call free()
06:32:41 <ais523> GC doesn't need to decrease the child object refcoutns
06:33:47 <ais523> so it doesn't have a need to pull the object into cache
06:34:10 <ais523> fwiw, I think there's little doubt that refcounting is better if you have a lot of nontrivial destructors
06:34:15 <ais523> but that doesn't come up very often
06:34:42 <mad> hmm
06:35:37 -!- lambda-11235 has quit (Quit: Bye).
06:37:00 <mad> it sounds like it depends on the "shape" of the objects you're freeing
06:37:14 <mad> depending on average size and average number of levels
06:38:33 <mad> other issue is
06:38:50 <mad> suppose you have some large global object with some error logger in it
06:39:27 <mad> some function of some small object within that global object does whatever
06:39:33 <mad> and then logs an error
06:40:09 <mad> how do avoid forcing the user to make the function take the large global object as an explicit argument? :D
06:41:01 <ais523> this is one of the largest problems in OO, possibly programming generally
06:41:12 <ais523> there are a lot of proposed solutions but I'm not sure if any of them are actually good ones
06:41:46 <mad> I know only the C++ solution, which is that you store a pointer to the large global object in the small object
06:41:53 <mad> but then that breaks any purity
06:42:18 <ais523> look up dependency injection, it's crazy
06:42:38 <mad> and it introduces a reference cycle
06:42:59 <ais523> err, dependency injection frameworks
06:43:11 <ais523> dependency injection itself is just the concept of passing the large global as an argument
06:43:19 <ais523> but the interest comes from doing it /implicitly/
06:43:36 <ais523> normally via some sort of code transformation, either at compile-time or run-time
06:43:39 <ais523> (which is why it's crazy)
06:44:20 -!- nortti_ has changed nick to nortti.
06:46:17 <mad> anyhow
06:47:04 <mad> without solving aliasing then basically you're designing a cpu for executing C++
06:47:54 <mad> and I don't think it's possible to design a cpu for higher level languages
06:48:31 <mad> because C++ tends to have all the real low latency operations basically
06:48:58 <mad> and in particular the ones that have few sideeffects
06:49:04 <mad> side effects are deadly
06:50:26 <ais523> well I don't think a language can be considered higher-level nowadays if it doesn't provide at least some way to manage side effects
06:51:03 <mad> dunno, aside from functional languages
06:51:23 <mad> my impression is that most high level languages have great tools for CAUSING side effects
06:51:27 <mad> :)
06:52:02 <mad> witness all the perl-python-lua-js type of languages that never even got multithreading
06:55:11 <mad> I can't think of any approach other than multithreading and functional-style-purity for managing side effects
06:55:32 <mad> especially long-term side effects
06:56:25 <mad> for short term side effects generally you have the whole LLVM style thing where it uses SSA on non-memory values and then LLVM-style alias resolution loads/stores
06:56:33 <mad> and...that's it!
06:57:27 <mad> unless you count SIMD as a form of side-effect management
06:57:32 <mad> (which I guess it is!)
06:58:04 -!- dingbat has joined.
07:01:10 <mad> that's why the MIPS is still the "top" design in a way
07:01:30 -!- Sprocklem has joined.
07:04:32 <ais523> mad: well Verity compiles via an intermediate language SCI, which has the property that aliasing will fail to compile
07:04:51 <ais523> although it sacrifices quite a lot to accomplish that
07:04:59 <mad> figures
07:05:54 <mad> well, it compiles to vhdl so it's essentially a low level language no?
07:05:55 -!- carado has joined.
07:06:50 <ais523> mad: Verity is low level, yes
07:07:04 <ais523> however the principles behind SCI were originally expressed in a language which was (at the time, at least) pretty high level
07:10:40 <mad> if you're going towards agressive threading then the target kind of cpu is pretty clear
07:10:50 <mad> stick in a bunch of in-order RISCs
07:10:58 <mad> as many as you can fit
07:11:32 <mad> each new core = new DCACHE = 1 more potential load per cycle
07:11:50 <mad> or 2 loads if you have a 2 port DCACHE
07:12:38 <ais523> I think you also need to have more threads "ready to go" than you do CPUs
07:12:46 <mad> yeah
07:12:53 <ais523> so that you can suspend some while waiting for memory access, branch prediction failure, etc.
07:12:59 <mad> you'll probably want some degree of hyperthreading to fill in stalls
07:13:01 <mad> yes
07:13:09 <ais523> actually if you have enough hyperthreads you needn't even bother to predict branches
07:13:19 <ais523> just run something meanwhile while working out whether to take them or not
07:13:34 <mad> hm
07:14:28 <mad> I think the branch predictor is worth the trouble
07:14:41 <mad> it's not that complex at low IPC
07:15:05 <mad> also at low IPC your pipeline is likely to be short
07:16:00 <mad> this is basically the ultraSPARC
07:16:28 <mad> oriented towards load-store-jump code that has lots of threads
07:16:31 <mad> ie servers
07:17:26 <ais523> you could totally write a compiler to use lots of threads if they were that lightweight
07:17:34 <ais523> and they'd be very load-store-jump-mimd heavy
07:18:15 <mad> you'd need some sort of threading that doesn't have to go through the OS's scheduler
07:19:08 <mad> and get people to use tons of small threads in their code
07:19:22 <ais523> yes
07:19:35 <ais523> the latter is something that'll be increasingly necessary to increase performance as time goes on
07:19:59 <ais523> and hardware thread scheduling is a natural extension of that
07:20:20 <mad> the problem is that generally if the OS's scheduler is involved, that probably already wipes out your potential benefits in lots of cases
07:20:42 <b_jonas> ais523: have you looked at Rust? I don't remember if it came up yet and whether I've told my first impression opinions.
07:20:47 <mad> also there's a limit to how much threading you can get going
07:21:08 <ais523> b_jonas: yes, this channel used to have a lot of rust discussion
07:21:11 <mad> every cpu you add to a system makes the synchronization system between core memories harder
07:21:13 <ais523> I like it
07:21:24 <ais523> that said, I don't think I know your opinion on Rust, either because you haven't told me or because I've forgotten
07:21:35 <ais523> mad: NUMA
07:22:08 <mad> that's starting to sound like the PS3's CELL :D
07:23:11 <ais523> it was ahead of its time
07:23:51 <ais523> NUMA is going to get more and more popular as time goes on, basically because there just isn't really any other option if we want computers to keep getting faster in terms of ability-to-execute-programs
07:24:11 <mad> there's always aggressive SIMD
07:24:48 <mad> which gives you nothing for load-store-jump programs
07:25:07 <mad> but I don't think anything's going to help load-store-jump programs by this point
07:25:55 <b_jonas> mad: simd and numa have different roles. they both help, and I'm very interested in simd, but at some point even if you write optimal simd programs to reduce memory and cache load, you'll run out of memory bandwidth, and numa is the only technically realistic way to increase it
07:26:02 <ais523> the problem with SIMD is that although it's good for some workloads, those are typically the workloads you'd run on a GPU
07:26:15 <b_jonas> ais523: that's not quite true
07:26:18 <ais523> so it's more of a stopgap until people get better at writing multithreaded programs
07:26:20 <b_jonas> ais523: no way
07:26:31 <mad> CELL worked because video games have some mathy calculations to offload
07:26:57 <b_jonas> ais523: it's that people are buying into the GPU hype and very few people are trying to learn to actually use SIMD and cpu programming in a good way
07:27:16 <b_jonas> (this is partly why I'm very interested about it)
07:27:23 <mad> you can put hundreds of cores on a CPU if they can't access any memory :D
07:27:33 <b_jonas> ais523: yes, there's some overlap, but still, I don't think GPUs will solve everything
07:27:59 <mad> gpus solve one problem, rendering video games
07:28:30 <mad> other problems might see a speed gain only as much as they look like video game rendering :D
07:28:34 <ais523> GPUs actually have similar levels of SIMDiness to CPUs; their strength is that they can run the same code on thousands of threads, but not necessarily with the same control flow patterns
07:29:12 <mad> as far as I can tell the GPU's advantage is that basically memory writes only happen to the frame buffer
07:29:18 <ais523> they're bad at pointer-heavy stuff, and in general, at things with unpredictable memory access patterns
07:29:24 <mad> so GPUs have essentially no aliasing to solve
07:29:55 <ais523> mad: they have block-local storage, which is basically a case of manually-controlled caching
07:30:01 <ais523> where you load and flush the cache lines manually
07:30:15 <mad> once aliasing comes into the picture (or heavy feedback loops) CPUs take the upper hand afaik
07:30:46 <b_jonas> I might be dismissing gpu stuff too much due to how overhyped it is
07:31:08 <ais523> mad: it's mostly just that GPUs are bad at pointers
07:31:27 <mad> it comes down to how few GPU-able problems there are I think
07:31:27 <ais523> aliasing isn't any harder than dereferencing nonaliased memory, they're both hard
07:32:19 <mad> aliasing forces your memory operations to be in-order basically
07:32:36 <mad> and adds lots of heavy checks the more you reorder your operations
07:33:08 <mad> eventually you end up with giant content-addressable-alias-resolution buffers and whatnot
07:33:31 <mad> and everything becomes speculative
07:33:51 -!- mroman has joined.
07:34:17 <ais523> well how useful is unpredictable aliasing from a program's point of view?
07:34:25 <lifthrasiir> b_jonas: SIMD is a good fit for "occasional", "one-off" computations. GPGPU is a good fit for "pervasive" large computations. people seems to easily confuse the differences.
07:34:57 <ais523> lifthrasiir: hmm: what would you say is the best way to zero a large amount of RAM?
07:34:59 <mad> ais523 : it's mandatory to guarantee correctness
07:35:06 <lifthrasiir> (and when one needs occasional large computations, one is advised to avoid them)
07:35:08 <ais523> mad: not from the compiler's point of view
07:35:09 <ais523> the program itself
07:35:22 <ais523> how often do you write a program that benefits from aliasing, and can't predict where it happens in advance?
07:35:28 <lifthrasiir> ais523: DMA.
07:35:31 <lifthrasiir> sorry, kidding!
07:35:42 <ais523> lifthrasiir: that didn't seem that stupid to me
07:35:45 <mad> well
07:35:58 <ais523> I was actually thinking that systems might benefit from a dedicated hardware memory zeroer
07:36:10 <ais523> Windows apparently zeroes unused memory in its idle thread
07:36:18 <lifthrasiir> ais523: but I think it is not a good way to approach the problem. why do you need a large amount of zeroed memory after all?
07:36:29 <ais523> as something to do (thus it has a supply of zeroed memory to hand out to programs that need it)
07:36:59 <lifthrasiir> then I guess SIMD or other OS-sanctioned approach is the necessary
07:37:05 <ais523> lifthrasiir: basically a) because many programs ask for zeroed memory; b) you can't give programs memory that came from another program without overwriting it all for security reasons, so you may as well overwrite with zeros
07:37:06 <lifthrasiir> GPGPU is not really an option there
07:37:11 <mad> well, if you write to a variable, eventually you're going to want to read from it
07:37:20 <mad> fundamentally that's aliasing
07:37:26 <ais523> GPGPU could zero GPU memory quickly just fine; the problem is that it uses different memory from the CPU
07:37:30 <ais523> and the copy between them would be slow
07:37:38 <lifthrasiir> yes. that's why it is not an option
07:37:40 <lifthrasiir> (right now)
07:38:18 <lifthrasiir> DMA is a joke, but the hardware-wired way to zero memory may be somehow possible even in the current computers
07:38:23 <ais523> mad: yes but often both pointers are literals (because you use the same variable name both times), so the aliasing is predictable
07:38:31 <mad> for instance, a delay buffer for an echo effect
07:38:44 <mad> how fast it aliases depends on the delay time you've set
07:39:11 <ais523> yes, that's a good example of a "memmove alias"
07:39:19 <mad> ais523 : aliasing isn't predictable if you use very large array indexes :D
07:39:43 <ais523> I'm kind-of wondering, if restrict was the default in C, how often would you have to write *unrestrict to get a typical program to work
07:39:49 <ais523> mad: larger than the array, you mean? :D
07:40:34 <mad> yeah but the cpu doesn't know the array size
07:40:43 <mad> most of the time even the compiler doesn't know
07:41:01 -!- tromp has quit (Remote host closed the connection).
07:41:12 <ais523> mad: well that at least is clearly something that can be fixed by higher-level languages
07:41:20 <mad> there's also the case of, well, you're accessing a class that has pointers in it
07:41:38 <mad> and it's hard to tell when your code will read out one of those pointers and write to that data
07:42:14 <ais523> you do know what restrict means, right?
07:42:21 -!- AnotherTest has joined.
07:42:34 <ais523> "data accessible via this pointer parameter will not be accessed without mentioning the parameter in question"
07:42:35 <mad> ais523 : higher-level languages can abuse references to cause surprise aliasing
07:43:05 <mad> I wasn't aware of the exact semantics of restrict
07:43:07 <ais523> example? mostly because it'll help me understand what you're considering to be higher-level
07:44:04 <mad> hmm
07:44:15 <mad> consider a java function working on some array
07:44:23 <b_jonas> “<ais523> [GPUS] they're bad at pointer-heavy stuff, and in general, at things with unpredictable memory access patterns” – are they also bad at unpredictable local sequential access of memory, such as decoding a jpeg-like huffmanized image that's encoded as 256 separate streams, you have an offset table for where the huffman input of each stream and the output of each stream starts,
07:44:38 <b_jonas> and within one stream, you can read the huffman input and the output pixels roughly sequentially?
07:44:41 <mad> then it reads some member variable in one of the objects it has as an argument
07:45:03 <mad> the member variable is a reference to the same array the java function is working on
07:45:09 <mad> and it uses it to poke a value
07:45:38 <b_jonas> “<ais523> I'm kind-of wondering, if restrict was the default in C, how often would you have to write *unrestrict to get a typical program to work” – isn't that sort of what Rust is about?
07:45:42 <ais523> b_jonas: so long as what you're indexing is either a) stored in memory that's fast to read but very slow to write, or b) fits into block memory (basically a manually-controlled cache), you can dereference pointers
07:46:02 <b_jonas> and I don't think that's how restrict in C works
07:46:02 <ais523> b_jonas: it's similar, yes
07:46:25 -!- AnotherTest has quit (Ping timeout: 240 seconds).
07:46:38 <ais523> mad: that's nothing to do with Java being high-level, IMO
07:46:55 <mad> this example applies to most non-pure languages
07:47:03 <ais523> storing a reference to something inside the thing itself is a pretty low-level operation
07:47:05 <mad> like perl and python and whatnot
07:47:07 <mad> afaik
07:47:23 <mad> well, your function gets some array argument
07:47:24 <ais523> actually, if you do that in Perl, you're supposed to explicitly flag the reference so as to not confuse the garbage collector
07:47:30 <mad> and some object
07:47:33 <ais523> *reference counter
07:47:43 <mad> and the object has a reference to the array but you don't know
07:48:25 <b_jonas> ais523: well, if there are 256 streams, and you're decoding only one channel at a time and assembling the three channels later in a second pass, then each stream should be at most 8192 bytes long, its output also 8192 bytes long, plus there's a common huffman table and a bit of control information.
07:48:36 <mad> there's no self reference in my example
07:49:06 <ais523> mad: well, say, in SCI (which is designed to avoid aliasing), if you give a function two arguments, any object can only be mentioned in one of the arguments
07:49:08 <b_jonas> Oh, and some local state for each 8x8 block that might take say 512 bytes.
07:49:15 <mad> b_jonas : isn't hufman decoding inherently sequential?
07:49:26 <b_jonas> (I'm assuming a 2048x1024 pixel image, 8 bit depth channels.)
07:49:51 <b_jonas> mad: yes, but if you use a shared huffman table and you mark where each stream starts in the input and output, then you can decode each stream separately
07:50:20 <b_jonas> mad: that is actually practicaly for image decoding, and also for image encoding or video de/encoding, but those get MUCH hairier and more complicated
07:50:22 <mad> ais523 : if it avoids aliasing then it's in a different category
07:50:40 <ais523> mad: I'm saying that putting limits on aliasing is higher-level than not putting limits on aliasing
07:50:46 <b_jonas> mad: note that this is pure huffman encoding, like jpeg, not deflate-like copy operations from a 16k buffer of previous output.
07:50:48 <ais523> because it means that you have more information about the data you're moving around
07:51:07 <b_jonas> mad: the copy operations are why PNG/zip decompression is really impossible to parallelize or implement fast these days
07:51:39 <b_jonas> gzip/zip/PNG made lots of sense when they were invented, but less sense for today's hardware
07:52:03 <ais523> b_jonas: deflate uses references to locations earlier in the output, right? how much would it change if it used references to locations as they were in the input file?
07:52:03 <b_jonas> but JPEG is just as old and ages much better, which is why most modern video formats are similar to it, even if different in lots of specifics
07:52:17 <ais523> in terms of compression ratio
07:52:17 <mad> b_jonas : I guess it works if you have multiple huffman segments that you know the start of
07:52:44 <b_jonas> ais523: I'm not sure, I don't really know about modern compression algorithms, and it probably depends on what kind of data you have.
07:52:50 <ais523> that seems to be GPU-acceleratable, although I haven't worked out the details yet
07:52:50 <lifthrasiir> mad: actually I managed to persue my friend to write the similar thing with the existing deflate stream
07:53:32 <mad> doesn't every huffman symbol basically depend on the previous one?
07:53:42 <b_jonas> ais523: encoding a video also references previous frames, but in a way than I think is much nicer than gzip, because you only reference one or two previous frames, so you can decode per frame. it might still get ugly.
07:53:45 <mad> or specifically the length of the previous one
07:54:06 <lifthrasiir> mad: the point is that DEFLATE uses the end code that is distinctive enough that it can be scanned much quicker
07:54:16 <lifthrasiir> then the friend stucked on the LZ77 window :p
07:55:05 -!- andrew_ has quit (Remote host closed the connection).
07:55:07 <mroman> has anyone ever done some graph related database stuff?
07:55:09 <lifthrasiir> (it was a term project AFAIK, and the friend did get A even though the prototype was only marginally faster)
07:55:19 <b_jonas> Maybe I should write a toy image format and encoder and decoder, just to learn about how this stuff works, even if I don't get anything practically usable.
07:55:24 <lifthrasiir> (since everyone else was doing JPEG decoder stuff)
07:55:33 <ais523> mroman: I looked into it a bit for aimake 4
07:55:39 <ais523> but didn't reach the point where it came to actually write the code
07:55:42 <b_jonas> (There are already lots of practical image coders out there.)
07:55:43 <ais523> so so far, all I have is plans
07:56:20 <mroman> let's assume I have paths in my database A -> B -> D and A -> C -> D
07:56:26 <mad> ais523 : I think "non aliasing" for higher language tends to be a synonym for "pure/no side effects" and often "functional" or maybe even "lazy-evaluated functional"
07:56:52 <ais523> mad: err, the Haskell-alikes have tons and tons of aliasing
07:56:52 <mroman> and I want to know for example if there's a traffic jam on A -> D
07:56:58 <ais523> they're just constructed so that it never matters
07:57:08 <mad> it doesn't HAVE to be this way but afaik all the "no side effects" languages are functionnal
07:57:10 <lifthrasiir> mad: to be more exact: DEFLATE stream stores the (encoded) tree in the front, and the tree is structured so that every prefix code is ordered by the length of code and then by the lexicographical order. since the end code is least frequent it should appear at the very end, i.e. all 1s.
07:57:26 <mad> ais523 : afaik haskell has no real aliasing?
07:57:43 <ais523> > let x = 4 in let y = x
07:57:44 <lambdabot> <hint>:1:14: parse error in let binding: missing required 'in'
07:57:51 <ais523> > let x = 4 in let y = x in y
07:57:53 <lambdabot> 4
07:58:05 <ais523> actually GHC probably optimized the aliasing there out
07:58:13 <lifthrasiir> mad: the typical stream has 10--14 one bits for the end code, so the decompressor may try to speculatively decode the stream from that point
07:58:24 <ais523> but x and y would be aliases in a naive Haskell implementation
07:58:31 <ais523> there's just no way to tell from within Haskell itself
07:58:34 <lifthrasiir> (and the project was for CELL processor, quite amenable for this kind of things)
07:58:56 <ais523> because if two things alias, the normal way you tell is either to use a language primitive that tells you that, or to modify one and see if the other changes
07:59:17 <mad> ais523 : yes but they're basically not real aliases because you can't write in one and get surprise changes in the other
07:59:20 <mroman> the traffic jam could be between A -> B, B -> D, A -> C, C -> D or A -> D itself
08:00:00 <mad> multiple readonly pointers to the same block of memory isn't a problem
08:00:00 <ais523> mroman: huh, that's an interesting operation
08:00:12 <ais523> mad: keep going and you'll invent Rust ;-)
08:00:24 <mroman> other questions are: Are there paths from A to D that are not equally fast.
08:00:26 <mad> the problem is when one of this pointers writes something
08:00:42 <mad> and it's impossible to say which other pointers will see the write
08:01:10 <mad> at local level it's usually possible to figure it out (LLVM's alias solving does this)
08:01:18 <mad> at global level it becomes impossible
08:01:23 <ais523> mroman: the SQLite docs have an example of doing transitive closure via a recursive query
08:01:47 <ais523> I'm not sure if the performance is better or worse than running Dijkstra's algorithm from outside with a series of queries
08:01:56 <mad> that's one of x86's "voodoo" advantages
08:02:05 <b_jonas> ais523: I have to afk for some hour now, but I can tell my preliminary opinion on rust later.
08:02:08 <mad> it doesn't require memory reordering to perform well
08:02:14 <ais523> (the constant factor should be better, but the asymptotic performance might be worse if it's using a bad algorithm)
08:02:52 <mad> if it was possible to do more efficient memory reordering then x86 would be gone by now
08:03:41 <mad> some RISC or VLIW would have been twice as fast as x86 and everybody would be switching
08:05:41 <mad> as it is, the best cpu design practice, as far as I can tell, is to assume that loads/stores aren't going to move, and rearrange basically everything else around them
08:07:56 <mad> result: out-of-order execution
08:10:04 <mad> itanium tried to do compile time rearranging with some complex run-time checking+fallback mechanism
08:10:06 <mad> and it failed
08:15:57 -!- Elronnd has quit (Quit: Let's jump!).
08:21:21 -!- Elronnd has joined.
08:41:33 -!- tromp has joined.
08:46:18 -!- tromp has quit (Ping timeout: 276 seconds).
08:54:12 -!- hppavilion[1] has quit (Ping timeout: 244 seconds).
09:00:14 -!- bender| has joined.
09:04:30 -!- olsner has quit (Ping timeout: 276 seconds).
09:09:20 -!- ais523 has quit.
09:21:06 -!- AnotherTest has joined.
09:25:57 -!- AnotherTest has quit (Ping timeout: 268 seconds).
09:29:33 -!- J_Arcane has quit (Ping timeout: 240 seconds).
09:30:48 -!- olsner has joined.
09:36:34 -!- olsner has quit (Ping timeout: 240 seconds).
09:38:37 <HackEgo> [wiki] [[Talk:Brainfuck]] https://esolangs.org/w/index.php?diff=46491&oldid=46410 * Rdebath * (+4885) Shortest known "hello world" program. -- Define "shortest"!
09:45:55 -!- andrew_ has joined.
09:59:25 -!- andrew_ has quit (Remote host closed the connection).
10:13:17 -!- nisstyre_ has changed nick to nisstyre.
10:13:27 -!- nisstyre has quit (Changing host).
10:13:27 -!- nisstyre has joined.
10:16:26 -!- AnotherTest has joined.
10:19:11 -!- int-e_ has changed nick to int-e.
10:25:59 -!- AnotherTest has quit (Ping timeout: 260 seconds).
10:35:23 -!- olsner has joined.
10:42:11 -!- tromp has joined.
10:45:42 -!- jaboja has joined.
10:46:18 -!- tromp has quit (Ping timeout: 244 seconds).
11:37:27 -!- boily has joined.
11:42:25 -!- jaboja has quit (Ping timeout: 240 seconds).
12:16:30 <boily> FUNGOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOT!
12:16:41 <boily> `? fungot
12:17:04 <HackEgo> fungot is our beloved channel mascot and voice of reason.
12:18:56 <boily> FireFly: MASCOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOT!
12:19:10 <boily> oops, wrong autocompletion.
12:19:34 <boily> fizzie: MASCOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOT! FUNGOOOOOOOOOOOOOOOOOOOOOOOOT! !?!???!?!?!!???!!!!!!
12:23:22 -!- boily has quit (Quit: NONPLUSSING CHICKEN).
12:51:19 -!- jaboja has joined.
12:53:43 -!- fungot has joined.
12:53:49 <fizzie> TOO LATE
13:02:49 <Taneb> fungot, how are you doing
13:02:49 <fungot> Taneb: i'm sure it appeared on l:tu or winxp? ;p
13:09:29 -!- oerjan has joined.
13:36:29 -!- spiette has joined.
13:48:08 -!- AnotherTest has joined.
13:56:01 -!- jaboja has quit (Ping timeout: 240 seconds).
14:28:25 -!- Alcest has joined.
14:30:40 -!- zadock has joined.
14:42:14 <oerjan> @tell mad <mad> can functional programming generate cycles? <-- in haskell it can, e.g. lst = 1 : lst defines a cyclic list, which is nevertheless immutable. (Technically you can in ocaml too, but only for simple constant initializers.)
14:42:14 <lambdabot> Consider it noted.
14:52:33 -!- `^_^v has joined.
14:56:24 -!- lambda-11235 has joined.
15:24:49 -!- UrbanM has joined.
15:28:03 <UrbanM> hi please check out my website . http://sh.st/RptZh... ty :) i promise its not a virus
15:28:45 -!- tromp has joined.
15:29:16 <izabera> got a virus
15:30:45 <UrbanM> hi please check out my website . http://sh.st/RptZh... ty :) i promise its not a virus
15:32:13 -!- ChanServ has set channel mode: +o oerjan.
15:32:34 -!- oerjan has set channel mode: +b *!*Master@*.38.31.175.cable.t-1.si.
15:32:34 -!- oerjan has kicked UrbanM You are not _our_ Urban M.
15:33:03 -!- tromp has quit (Ping timeout: 244 seconds).
15:39:29 <int-e> oerjan: of course the immutability of Haskell is a lie.
15:39:54 <int-e> (I'm alluding to thunk updates.)
15:40:24 <izabera> who is urban m?
15:41:21 <int-e> brainfuck guy... yes
15:41:27 <int-e> https://esolangs.org/wiki/Urban_M%C3%BCller
15:41:59 <int-e> (ah, there was a question mark before the ellipsis. I typed that, then googled to confirm.)
15:42:55 <int-e> however... the user above looked more like and imposter
15:44:04 <int-e> sh.st... "shorten urls and learn money"... sounds legitimate
15:49:51 <int-e> so what do we get... googla analytics, tons of ads, some trackers, and did they actually put a captcha before the embedded link?
15:50:06 <int-e> (I'm looking at page source code)
15:51:06 <int-e> and there's a ton of javascript I haven't looked at.
15:52:57 -!- XorSwap has joined.
15:55:41 -!- lambda-11235 has quit (Quit: Bye).
15:57:42 <oerjan> int-e: thus i also mentioned ocaml hth
15:57:47 -!- oerjan has set channel mode: -o oerjan.
16:00:26 <oerjan> btw does ghc allocate a thunk for a simple lst = 1 : lst; lst :: [Int]
16:06:31 <izabera> what is an l2 job?
16:06:41 -!- bender| has quit (Ping timeout: 250 seconds).
16:06:51 <izabera> jobs outside of italy are so hard to grasp
16:08:16 -!- augur has joined.
16:09:31 -!- mroman has quit (Quit: Lost terminal).
16:12:06 -!- oerjan has quit (Quit: Later).
16:24:24 -!- augur has quit (Remote host closed the connection).
16:24:58 -!- augur has joined.
16:29:38 -!- augur has quit (Ping timeout: 250 seconds).
16:40:29 <int-e> @tell oerjan btw does ghc allocate a thunk for a simple lst = 1 : lst <-- wow, apparently not (checked assembly output from ghc-7.10.2 with -O2, native code gen)
16:40:29 <lambdabot> Consider it noted.
16:43:06 <int-e> @tell oerjan even ghc-7.6.3 didn't allocate a thunk, that's as far back as I can easily go
16:43:06 <lambdabot> Consider it noted.
16:50:47 -!- zzo38 has joined.
16:55:38 -!- Treio has joined.
17:04:31 -!- jaboja has joined.
17:15:35 -!- Treio has quit (Quit: Leaving).
17:17:03 -!- XorSwap has quit (Ping timeout: 240 seconds).
17:44:11 -!- XorSwap has joined.
17:54:06 -!- augur has joined.
18:06:44 -!- augur has quit (Remote host closed the connection).
18:09:19 -!- lambda-11235 has joined.
18:14:01 -!- MoALTz has joined.
18:33:44 <izabera> https://github.com/bloomberg/bucklescript
18:38:19 -!- lleu has joined.
18:39:38 -!- augur has joined.
18:46:04 -!- heroux has quit (Ping timeout: 264 seconds).
18:46:47 -!- XorSwap has quit (Ping timeout: 244 seconds).
18:49:59 -!- augur has quit (Read error: Connection reset by peer).
19:08:07 -!- zadock has quit (Quit: Leaving).
19:11:01 -!- lynn has joined.
19:14:12 -!- heroux has joined.
19:21:10 -!- XorSwap has joined.
19:31:22 -!- hppavilion[1] has joined.
19:33:31 <hppavilion[1]> I am here
19:40:45 <shachaf> Did you work out those categories?
19:42:34 <hppavilion[1]> shachaf: I'm actively working on that xD
19:43:54 <hppavilion[1]> shachaf: I'm currently trying to figure out the type of the arrows in example (A)
19:44:12 <hppavilion[1]> ("Type" may not be the correct word, but it gets the point across if I send this message)
19:44:24 <shachaf> The type of an arrow from A to B is A -> B
19:44:46 <hppavilion[1]> shachaf: Yeah, I mean I'm trying to figure out what they represent
19:45:12 <hppavilion[1]> shachaf: I think the only thing I've figured out is that in (A), composition represents the transitive property of ≤
19:45:35 <shachaf> Yes.
19:45:40 <shachaf> What does identity represent?
19:45:59 <hppavilion[1]> shachaf: The fact that a value is less than or equal to itself
19:46:04 <hppavilion[1]> (specifically, x = x)
19:46:10 <int-e> aka reflexivity
19:46:12 <hppavilion[1]> (there for x ≤ x)
19:46:17 <hppavilion[1]> int-e: Yes, yes.
19:50:15 -!- lambda-11235 has quit (Ping timeout: 264 seconds).
19:51:17 <hppavilion[1]> shachaf: Wait, do arrows just represent arbitrary relations?
19:51:22 <shachaf> An arrow doesn't have to represent anything.
19:51:29 <hppavilion[1]> shachaf: Oh.
19:51:38 <hppavilion[1]> shachaf: So an arrow can just be an arrow?
19:51:46 <hppavilion[1]> It doesn't have to represent a function?
19:51:51 <hppavilion[1]> Or funtro
19:51:54 <hppavilion[1]> *functor
19:52:01 <hppavilion[1]> Or transformation of any sort
19:52:05 -!- lambda-11235 has joined.
19:52:06 <shachaf> Sometimes an arrow is just a cigar.
19:52:26 <hppavilion[1]> shachaf: Is arrow a type of cigar?
19:52:32 <int-e> hppavilion[1]: you can interpret any relation on a set as a directed graph with that set as nodes (allowing loops, not allowing multiple edges)
19:52:56 <shachaf> Arrows don't have to represent functions, no.
19:52:58 <hppavilion[1]> I don't smoke, so if it is a type of cigar I wouldn't get the joke
19:53:01 <hppavilion[1]> shachaf: Well yeah
19:53:02 <shachaf> Or transformations, whatever that is.
19:53:08 <hppavilion[1]> shachaf: It was the best word I could think of
19:53:19 <int-e> but you really need reflexivity and transitivity to make a category that way
19:53:21 <hppavilion[1]> shachaf: Do arrows have to mean something, or can they just be arrows?
19:53:35 <int-e> they can be just arrows
19:53:40 <hppavilion[1]> OK
19:53:47 <hppavilion[1]> int-e: And is that the case for category (A)?
19:54:20 <hppavilion[1]> int-e: Where a -> b iff a <= b
19:54:29 <int-e> I don't know what example (A) refers to.
19:54:37 <hppavilion[1]> int-e: That ^
19:54:39 <int-e> ah.
19:54:57 <int-e> well, arguably the underlying relation gives the arrow *some* meaning
19:55:12 <int-e> it's really a philosophical question at this point.
19:55:15 <hppavilion[1]> int-e: Ah
19:55:36 <hppavilion[1]> int-e: But do they not represent anything in the way Set has arrows representing functions?
19:56:18 <int-e> right
19:56:38 <hppavilion[1]> int-e: Or could it be argued that they represent Void? xd
19:56:39 <hppavilion[1]> *xD
19:56:45 <hppavilion[1]> (That was a joke, I think)
20:01:01 -!- Phantom_Hoover has joined.
20:17:43 -!- lambda-11235 has quit (Quit: Bye).
20:19:04 -!- XorSwap has quit (Ping timeout: 252 seconds).
20:42:54 -!- p34k has joined.
20:46:09 <zzo38> To allow other program to change resources of a window in the X window system, you could have the other program appends a null-terminated string to a property on that window, and then that client watches that property and reads and deletes it and adds that string into the resource manager. You can also send commands that aren't resources too in the same way, by adding a prefix to specify
20:47:31 <zzo38> Add RESOURCE_MANAGER into the WM_PROTOCOLS list to specify that this function is available, I suppose.
20:48:03 -!- spiette has quit (Ping timeout: 240 seconds).
20:48:17 <zzo38> Does it make sense to you?
20:52:17 <zzo38> The format of the property must be 8, the type must be STRING, and the mode must be PropModeAppend.
21:03:01 -!- spiette has joined.
21:05:16 -!- `^_^v has quit (Quit: This computer has gone to sleep).
21:17:12 -!- augur has joined.
21:24:33 -!- augur has quit (Ping timeout: 240 seconds).
21:30:16 -!- ais523 has joined.
21:33:19 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
21:33:54 -!- hppavilion[1] has joined.
21:34:16 -!- spiette has quit (Quit: :qa!).
21:35:00 -!- spiette has joined.
21:39:22 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
21:47:31 -!- J_Arcane has joined.
22:04:25 -!- AnotherTest has quit (Quit: ZNC - http://znc.in).
22:43:27 -!- spiette has quit (Quit: :qa!).
22:47:13 -!- jaboja has quit (Remote host closed the connection).
22:49:51 <b_jonas> whoa
22:50:31 <b_jonas> I'm trying to line up the Szabó Lőrinc translation and the original of Tennyson: Ulysses exactly. But it turns out the translation is one line shoter.
22:50:50 <b_jonas> It's missing the line that would correspond to “Death closes all: but something ere the end,”
23:08:27 -!- ais523 has quit.
23:27:37 -!- oerjan has joined.
23:27:46 -!- shikhin has changed nick to shikhun.
23:28:17 -!- shikhun has changed nick to shikhin.
23:28:20 <oerjan> @messages-
23:28:21 <lambdabot> int-e said 6h 47m 51s ago: btw does ghc allocate a thunk for a simple lst = 1 : lst <-- wow, apparently not (checked assembly output from ghc-7.10.2 with -O2, native code gen)
23:28:21 <lambdabot> int-e said 6h 45m 14s ago: even ghc-7.6.3 didn't allocate a thunk, that's as far back as I can easily go
23:34:03 -!- FreeFull has quit (Quit: Rebooting).
23:36:13 -!- FreeFull has joined.
23:41:15 -!- b_jonas has quit (Ping timeout: 250 seconds).
23:42:17 -!- b_jonas has joined.
23:43:30 -!- p34k has quit.
23:43:37 -!- hppavilion[1] has joined.
23:47:52 -!- boily has joined.
23:48:12 <boily> fungot: fungellot.
23:48:13 <fungot> boily: it is edited to remove the 0 parameter? i was thinking
23:48:20 <boily> fungot: no you weren't.
23:48:21 <fungot> boily: ( code is 2.1mb so that may not have
23:48:26 <boily> fungot: yes I do.
23:48:26 <fungot> boily: wait a minute!! i am having trouble with this stub generator. it has.
23:48:47 <boily> fungot: stub generators suck, stubs suck, and asynchronous services especially suck.
23:48:47 <fungot> boily: sperber was here mar 17 at 11:11 pm utc, saying: or check out file-select and tcp-listener-fileno
23:48:53 <oerjan> "it has." seems a bit too stubby indeed.
23:49:25 <oerjan> boheily.
23:49:59 <boily> hellørjan.
23:50:22 <shachaf> @@ @tell oerjan @@ @@ (@where weather) ENVA KOAK
23:50:22 <boily> who's sperber?
23:50:54 <boily> hellochaf.
23:50:57 <oerjan> @messages-
23:50:58 <lambdabot> Plugin `compose' failed with: <<timeout>>
23:50:59 <lambdabot> You don't have any messages
23:51:13 <oerjan> ho hum.
23:51:28 <shachaf> boily: Good afternoon, person.
23:52:04 <oerjan> boily: i dunno but he was there mar 17 hth
23:52:21 <shachaf> silly oerjan
23:52:25 <shachaf> mar 17 hasn't happened yet
23:52:43 <oerjan> then why is fungot using past tense, duh
23:52:44 <fungot> oerjan: with the procedure for-each? ie i have a question about static links. i really should read up on macros? like atom?
23:53:13 <boily> time to a fungot is an irrelevant concept hth
23:53:14 <fungot> boily: i don't apply this level of dynamic typing... it mentioned that static typing is in the browser while allowing quick access to the enclosing command.
23:53:26 <oerjan> fungot: are you a dreen
23:53:26 <fungot> oerjan: because bash gets exactly 3 parameters with that invocation, and 0 added to any number of arguments, you have
23:54:40 <shachaf> fungot: hingot
23:54:41 <fungot> shachaf: some may.....but not all. but many more possibilities than chess. many. most things just work. at least now atm
23:54:55 <shachaf> ^style calvinandhobbes
23:54:55 <fungot> Not found.
23:54:58 <shachaf> What!
23:55:10 <shachaf> fizzie: plz fix twh hth
23:58:26 * boily wraps fungot in a chicken costume
23:58:27 <fungot> boily: and i think he said some weird things involving crazy symbols and actions. i'm purely interested in the same ballpark, and roughly between chicken and stalin might be one way of doing that
23:59:20 -!- grabiel has joined.
2016-03-04
00:00:11 <boily> `relcome grabiel
00:00:33 <HackEgo> grabiel: 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.)
00:00:34 <boily> . o O ( there should be a way to make my IRC client autocomplete `relcomes or something... )
00:01:43 -!- grabiel has left.
00:03:03 <Yurume> http://www.emojicode.org/
00:03:17 <Yurume> oh, well. yet another emoji craze
00:03:35 <boily> Yurumello. have I ever seen you before?
00:03:50 <Yurume> I am an alter ego of lifthrasiir
00:03:57 <boily> oooooh tdh
00:04:13 -!- augur has joined.
00:04:49 <Yurume> just to say.
00:05:55 <shachaf> boily: tdh didn't help htdh
00:06:08 <shachaf> `? htdh
00:06:09 <HackEgo> HtDH is a classic text on How to Design Hotdogs or possibly Hogprams. It is all about functional condiments, and was co-authored by Herence Tao and Don Ho.
00:06:19 <oerjan> boily: that was a canaima, you should have used `bienvenido hth
00:06:40 <shachaf> `culprits wisdom/htdh
00:06:43 <HackEgo> oerjan oerjan elliott Bike FreeFull cpressey cpressey cpressey
00:06:46 <shachaf> oerjan: what should a variant of culprits that looks in wisdom/ be called
00:06:48 <boily> oerjan: tdht.
00:09:41 -!- augur has quit (Remote host closed the connection).
00:10:24 <oerjan> shachaf: pundits hth
00:10:52 <shachaf> @wn pundit
00:10:53 <lambdabot> *** "pundit" wn "WordNet (r) 3.0 (2006)"
00:10:54 <lambdabot> pundit
00:10:54 <lambdabot> n 1: someone who has been admitted to membership in a scholarly
00:10:54 <lambdabot> field [syn: {initiate}, {learned person}, {pundit},
00:10:54 <lambdabot> {savant}]
00:11:06 * boily mapoles oerjan (0.5 shachafs)
00:11:39 <shachaf> `? boily
00:11:41 <HackEgo> ​"Only sane man" boily is monetizing a broterhood scheme with the Guardian of Lachine, apparently involving cookie dealing. He's also a NaniDispenser, a Trigotillectomic Man Eating Chicken and a METARologist. He is seriously lacking in the f-word department.
00:11:43 <hppavilion[1]> zzo38: I found a game called TIS-100 on steam and recently bought it
00:11:49 <oerjan> boily: the "pun" at the beginning wasn't the deciding factor hth
00:12:03 <shachaf> oerjan: and yet you punned it anyway
00:12:13 <boily> it was half a funpuns, so 0.5 shachafs.
00:12:13 <\oren\> @metar cyyz
00:12:14 <lambdabot> CYYZ 040000Z 08006KT 15SM FEW050 BKN160 M05/M10 A3015 RMK SC2AC5 SLP222
00:12:15 <hppavilion[1]> zzo38: It's an ASM programming game for a massively-parallel architecture called the TIS-100 (Tessellated Intelligence System)
00:12:29 <boily> he\\oren\. did you get blizzarded?
00:12:33 <shachaf> @@ @@ (@where weather) cyyz
00:12:36 <lambdabot> CYYZ 040000Z 08006KT 15SM FEW050 BKN160 M05/M10 A3015 RMK SC2AC5 SLP222
00:12:38 <\oren\> a little
00:12:39 <shachaf> much better
00:13:03 <\oren\> um wtf is @@ @@ supposed to do
00:13:39 <\oren\> stupid haskull line noise
00:14:01 <oerjan> the rube goldberg weather forecast
00:15:08 <oerjan> @help @
00:15:08 <lambdabot> @@ [args].
00:15:08 <lambdabot> @@ executes plugin invocations in its arguments, parentheses can be used.
00:15:08 <lambdabot> The commands are right associative.
00:15:08 <lambdabot> For example: @@ @pl @undo code
00:15:08 <lambdabot> is the same as: @@ (@pl (@undo code))
00:16:07 <oerjan> hm is @@ a kind of join
00:16:21 <shachaf> \oren\: it's not haskell syntax hth
00:16:45 <shachaf> haskell more like has kool
00:16:51 <shachaf> gains kool until end of turn
00:18:34 <oerjan> shachaf: extra points for using the original hindi पण्डित hth
00:28:14 -!- lambda-11235 has joined.
00:32:46 <hppavilion[1]> We should make an ASM programming game...
00:32:58 <hppavilion[1]> One that makes grown men cry, of course
00:33:27 <fizzie> We had a TIS-100cussion on the channel at least once.
00:34:01 <fizzie> I liked it.
00:34:23 <fizzie> (The game, not the discussion.)
00:34:35 <hppavilion[1]> fizzie: Yep
00:36:25 <fizzie> It might not quite count as massively parallel, wasn't it at most something like 3x4 nodes?
00:38:11 -!- tromp has joined.
00:39:12 <hppavilion[1]> fizzie: That's a single segment
00:39:22 -!- Alejandro15 has joined.
00:39:27 <hppavilion[1]> fizzie: In theory, it actually has thousands upon thousands of nodes
00:39:38 <hppavilion[1]> `relcome Alejandro15
00:39:39 <hppavilion[1]> ?
00:39:40 <HackEgo> Alejandro15: 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.)
00:40:08 <fizzie> Oh, I didn't parse the backstory like that at all, but I guess that's likely true, since it's always different nodes that are broken.
00:40:24 <hppavilion[1]> fizzie: Yep, I was going to say that, but the message changed xD
00:40:42 <hppavilion[1]> fizzie: What's the high-level equivalent of massively parallel?
00:40:55 <boily> Alejandro15: ¿habla usted español?
00:42:33 <hppavilion[1]> fizzie: I imagine in high-level massively parallel computing, you can create new ports at runtime
00:43:00 -!- Alejandro15 has quit (Quit: Leaving.).
00:43:01 <boily> massively parallel computing is a bitch. but at least there's MPI. I love MPI.
00:43:21 <boily> oerjan: see, I asked something in Spanish and he didn't even answer!
00:43:25 <hppavilion[1]> boily: MPI?
00:43:41 <boily> https://en.wikipedia.org/wiki/Message_Passing_Interface
00:44:01 <hppavilion[1]> boily: How is MPC a bitch?
00:44:08 <hppavilion[1]> What did MPC ever do to you?
00:44:13 <hppavilion[1]> Were- were you dating?
00:44:14 <boily> MPI: simple, easy to grok, useful, documented to hell and back, and pragmatic.
00:44:19 <boily> ha ha ha :D
00:44:43 <boily> no, I did some research stuff with heavily parallelized SVMs a few years ago.
00:44:49 * hppavilion[1] awaits a joke about how MPI was in bed- something about practically being in two places at once or something
00:45:03 <boily> I don't joke, I am sane.
00:45:10 <boily> (well, I don't joke that much.)
00:45:10 <oerjan> boily: i think cantv.net also implies canaima hth
00:45:13 <boily> (ok, reasonably.)
00:45:23 <boily> oerjan: why I Spanished.
00:46:55 <oerjan> "Compañia Anónima Nacional Teléfonos de Venezuela"
00:47:10 <hppavilion[1]> fizzie: It's also interesting that the pattern of broken nodes is consistently the ones that you might want to use
00:48:35 <boily> next Venezuelan to join the chännel, everybody should switch to Spanish. maybe we'll catch one!
00:49:45 <oerjan> ok, canaima and cantv are not quite the same thing, but connected.
00:51:18 -!- lynn has quit (Ping timeout: 246 seconds).
00:51:32 -!- tromp has quit (Remote host closed the connection).
00:52:24 <oerjan> <boily> I don't joke, I am sane. <-- * now imagining a batman villain saying that...
00:53:57 <oerjan> it probably doesn't end well for em.
00:56:30 <hppavilion[1]> fizzie: What would be a good architecture for an ASM game?
00:56:39 <Taneb> Phantom_Hoover, I found out today that one of the people I play D&D with is on the York submarine jousting team
00:59:08 <oerjan> Taneb: are you trying to keep this up until actual submarines are jousted twh
00:59:23 <oerjan> or at least models
00:59:44 <Taneb> oerjan, I started it because I forgot what the sport was called
01:00:00 <Taneb> Keeping it up because somehow "submarine jousting" sounds less silly than the truth
01:02:28 -!- Elronnd has changed nick to ProzacElf.
01:05:56 <Phantom_Hoover> Taneb, did you mention that his team are bastards
01:06:18 <shachaf> fizzie: YOu didn't like the discussion?
01:08:38 -!- ProzacElf has changed nick to Elronnd.
01:08:57 <Taneb> Phantom_Hoover, I didn't feel it polite
01:09:03 <Taneb> He did comment that your team were very good
01:10:29 <hppavilion[1]> oerjan: No, Taneb means jousting underwater- it's sub-marine jousting
01:10:39 <fizzie> hppavilion[1]: If you mean real architectures (games for some reason tend to prefer made-up ones), for some reason my first thought would be the Z80.
01:10:57 <hppavilion[1]> fizzie: Architecture in the abstract I mean
01:11:10 <hppavilion[1]> fizzie: Not a specific architecture; a general architecture paradigm
01:11:47 <fizzie> Oh. I'd just do something that actually exists. I'm not sure how that would turn out to be a "game", though.
01:12:44 <hppavilion[1]> fizzie: I think the point of those games is that the creators enjoy making the architecture
01:14:01 <fizzie> The DCPU-16 had really silly operand encodings.
01:15:26 <Phantom_Hoover> Taneb, this is of course true, was he on their A or B team though
01:15:32 <Phantom_Hoover> (we never played the A team)
01:15:34 <oerjan> hppavilion[1]: shut up and don't crush my dreams
01:16:15 <hppavilion[1]> fizzie: Oooh, perhaps the arch for this game could use those negative-level MOVs?
01:16:29 -!- 7YUAAGGC0 has joined.
01:16:58 <Taneb> Phantom_Hoover, I don't know, although he certainly didn't deny it when I asked if he'd played Warwick recently
01:19:28 <Phantom_Hoover> york A were good last time we played them, they just ended up in a tough group this year
01:19:46 <Phantom_Hoover> they certainly know how to organise a tournament
01:20:28 <fizzie> There's always the time-honoured thing of taking some feature that actually exists (say, pipelines with delay slots) and just going overboard with it.
01:22:23 <Taneb> Anyway, I'm going to bed now
01:22:24 <Taneb> Goodnigh
01:22:29 <boily> bonne tanuitb!
01:25:27 <boily> `wisdom
01:25:30 <HackEgo> alg. ii/Algae II, the successor class to Algae I. Discusses hydroponics and such.
01:26:29 <boily> `` sed -i 'sa\aeaæa' wisdom/alg*
01:26:33 <HackEgo> No output.
01:27:16 <oerjan> wat
01:27:28 <oerjan> `` ls wisdom/alg*
01:27:29 <HackEgo> wisdom/algebraic number theory \ wisdom/alg. ii \ wisdom/algol \ wisdom/algorithm
01:27:43 <oerjan> `` grep æ wisdom/alg*
01:27:45 <HackEgo> wisdom/alg. ii:Algæ II, the successor class to Algae I. Discusses hydroponics and such.
01:28:10 <oerjan> boily: *cough*
01:28:13 <boily> oh.
01:28:15 <boily> hm.
01:28:17 <boily> eh.
01:28:19 <boily> uuuuh.
01:28:21 <boily> `revert
01:28:29 <HackEgo> rm: cannot remove `/home/hackbot/hackbot.hg/multibot_cmds/env/.hg/store/data/canary.orig': Is a directory \ Done.
01:28:39 * boily whistles
01:34:35 <hppavilion[1]> fizzie: One of the interesting things we can do with ASM games is have features that are nigh-impossible on real computers
01:34:38 <hppavilion[1]> e.g. register sets
01:43:21 <mad> register sets?
01:48:15 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
01:53:15 -!- lleu has quit (Quit: That's what she said).
02:05:37 <hppavilion[1]> mad: Registers that can include multiple values
02:05:44 <hppavilion[1]> mad: I suppose it's a bit quantum, actually
02:05:54 <hppavilion[1]> But without the probabilisticness
02:07:05 <mad> does it have entanglement between multiple registers?
02:09:15 <mad> dang this cpu design idea I'm trying to develop is so hard to get anywhere
02:10:43 <mad> (the thing where you have an accumulator and chains of related operations are issued together on an execution unit and run sequentially on the accumulator)
02:13:44 <mad> I'm trying to find a compromise between too much dynamic scheduling (the problem on out-of-order RISCs) and too much static scheduling (the problem on VLIWs)
02:16:15 <mad> and the complexity spirals out of control
02:19:21 <boily> 'night all!
02:19:40 -!- boily has quit (Quit: BRANCHING CHICKEN).
02:22:59 <mad> yet it's close enough to a solution that I get all obsessed
02:25:24 <mad> 1 instruction is something like
02:25:33 <mad> :
02:27:26 <mad> 4 renames - one for each regfile partition (partition 0 is r0,r4,r8,r12,r16,r20,r24,r28, partition 1 is r1,5,9,13,17,21,25,29, partition 2 is r2,6,10,14,18,22,26,30, partition 3 is r3,7,11,15,19,23,27,31). each of the 4 renames can also be replaced by a nop.
02:29:03 <mad> 8 writebacks. each writeback must use one of the 4 renames. also, you have a flag to indicate the last writeback for each of the 4 regfile partitions (the one that gets written to the regfile for real)
02:33:31 <mad> 8 microthreads. each microthread contains a block of instructions that gets assigned to one execution unit and executed sequentially. each instruction is in the form of [alu op][reg x][reg y/immediate], with the result written to the accumulator and optionally written to a regfile register(corresponding to one of the 8 writebacks). each register operand can be either one of the 32 permanent register, the accumulator, or one of the 8 writebac
02:34:44 -!- oerjan has quit (Quit: Nite).
02:35:47 <mad> 4 or 8 memory operations(not sure of the limit to set yet) (either loads or stores or nops). the order of memory operations is preserved even though the microthread execution is fully reordered.
02:36:28 <mad> offset to the next instruction (probably with some forced alignment - maybe 16bytes)
02:37:34 <mad> the idea of the whole thing is that it can be issued in 1 cycle
02:37:38 <mad> at least in theory
02:39:41 <mad> the register renamer grabs 8 free physical registers, changes up to 4 physical register assignments to architectural registers
02:40:31 <hppavilion[1]> mad: I'm trying to come up with interesting designs for CPUs, implementable or not, if you're curious.
02:40:40 <hppavilion[1]> No, no entanglement; I guess it's not fully quantum
02:41:15 <mad> it does all the renames of every register operand in parallel (which can be done in 1 cycle since the effect of renaming registers within an issued instruction is done beforehand)
02:41:44 <hppavilion[1]> fizzie: The difficulty with TIS-100 is that you have a limit of 15 instructions/node
02:41:45 <mad> I'm obsessed with making it implementable too
02:42:44 <hppavilion[1]> It's logical to have limitations (except that labels count as lines, which is bullshit), but 15 lines is a little too small (also, 15 isn't a power of 2)
02:42:52 <hppavilion[1]> mad: Fair enough
02:49:53 <mad> for instance this sample resampling loop comes down to 2 instructions:
02:50:04 <mad> :loop
02:50:04 <mad> shr ph 16, lds [sb + ac*2] -> d0
02:50:04 <mad> add ph $10000, shr 16, lds [sb + ac*2] -> d1
02:50:04 <mad> and ph $ffff -> d2
02:50:04 <mad> lds [bu] -> d3
02:50:05 <mad> sub d1 d0, mul d2, sar 16, add d0 -> d0, mul vl, sar 16, add d3, st [bu]
02:50:05 <mad> lds [bu+4] -> d3
02:50:06 <mad> mul d0 vr, sar 16, add d3, st [bu+4]
02:50:08 <mad>  
02:50:13 <mad> add vl rl -> vl
02:50:13 <mad> add vr rr -> vr
02:50:13 <mad> add ph fr -> ph
02:50:13 <mad> add bu 4 -> bu, cmp be, jz loop
02:52:54 <mad> the first instruction has 7 microthreads, 6 writebacks (-> d0, -> d1, -> d2, -> d3, -> d0, -> d3), 4 renames (d0 d1 d2 d3), 6 load/store operations (lds [sb + ac*2], lds [sb + ac*2], ld [bu], st [bu], ld [bu+4], st [bu+4])
02:53:46 <mad> second instruction has 4 microthreads, 4 writebacks (-> vl, -> vr, -> ph, -> bu), 4 renames (vl vr ph bu)
02:54:04 <mad> assuming that vl, vr, ph and bu are in different regfile partitions
02:57:41 <mad> assuming that the subinstructions take 2-4 bytes each, the first instruction takes somewhere between 40-80 bytes, second one about 12-24 bytes
02:58:19 <mad> presumably to keep it busy you'd need an instruction cache at least 32 bytes wide
02:59:18 <mad> if stars align in theory it can run the whole loop in 2 cycles per iteration
03:01:14 <mad> a possible design is that the subinstructions go in normal instruction cache, and the renaming info that tells how to run it in parallel is generated on the fly and stored in a trace cache
03:01:45 <mad> so on first iteration it runs at like 1 instruction per cycle and analyzes the instruction sequence for how to parallelize it
03:02:12 <mad> and stores that in a trace cache so that next iteration is super parallelized
03:04:35 <mad> it would probably need a really wide data cache to run that fast too
03:05:03 <mad> like the kind of monstruously complex banked data cache that does 2 loads + 1 store per cycle you find on modern CPUs
03:07:01 <mad> in theory it doesn't need 2 register file ports per execution unit either, but I'm not sure how to ration that intelligently
03:07:19 <mad> because some instructions need 2 ports, some need 1, some need 0
03:08:38 <mad> also it has the weakness that the register renamer needs to know which execution unit will get which writeback (because they actually are separate register files for each execution units, read ports are shared but write ports aren't)
03:10:07 <mad> so yeah the whole thing works in theory but in practice is overly complex and probably needs to be cut down
03:10:23 <mad> and it's probably not well balanced
03:12:30 -!- XorSwap has joined.
03:13:10 <hppavilion[1]> @wiki Game Theory
03:13:10 <lambdabot> http://www.haskell.org/haskellwiki/Game_Theory
03:13:17 <hppavilion[1]> Hm...
03:13:41 <hppavilion[1]> I was hoping that would lead to wikipedia, but in retrospect that seems silly
03:13:51 <mad> in theory you could make a VLIW version of the above but I think it would be very hard to properly static schedule
03:14:00 <hppavilion[1]> mad: OLIW is better than VLIW
03:14:02 <mad> and it would probably stall way too easily
03:14:03 <hppavilion[1]> @wikipedia Game Theory
03:14:03 <lambdabot> Unknown command, try @list
03:14:06 <mad> what's OLIW?
03:14:09 <hppavilion[1]> `wiki Game Theory
03:14:12 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: wiki: not found
03:14:17 <hppavilion[1]> mad: Obscenely Long Instruction Word
03:14:28 <mad> how is it better
03:14:41 <mad> aside from burning through instruction cache faster
03:14:43 <hppavilion[1]> mad: I just like it more
03:14:58 <hppavilion[1]> mad: OLIW has instruction sets within instruction sets
03:15:05 <hppavilion[1]> http://pastebin.com/wz3WwSbF is an example of an OLIW architecture
03:15:06 <mad> also the cpu I described above is a pretty good candidate for OLIW :D
03:15:37 <mad> 64byte instruction words aren't for the faint of hearth
03:17:40 <hppavilion[1]> mad: Mine maxes out at 2752577 bytes per instruction word
03:17:51 <hppavilion[1]> mad: Instruction sets within instruction sets
03:18:07 <hppavilion[1]> (Every instruction word is executed concurrently)
03:18:19 <mad> how is that electrically possible
03:18:25 <hppavilion[1]> ("Instruction word" doesn't really apply at this point though; it's more of an instruction paragraph)
03:18:36 <hppavilion[1]> mad: Electrically possible? No.
03:18:43 <hppavilion[1]> mad: Not on normal machines
03:19:06 <hppavilion[1]> mad: It doesn't /have/ to be 2752577 bytes.
03:20:05 <hppavilion[1]> mad: I mean, it might be implementable on hardware, because it doesn't use all 2752577 bytes at a time
03:20:24 <mad> dunno, does it have latency causing characteristics?
03:20:47 <hppavilion[1]> mad: Probably
03:21:14 <hppavilion[1]> mad: It has properties like instruction words having length headers
03:21:26 <hppavilion[1]> mad: Which probably causes a shitton of latency
03:22:01 <hppavilion[1]> mad: Did you /want/ something with the word "Obscenely" in it to be practical?
03:23:19 <mad> I also have a hard time figuring out what all those fields mean
03:23:43 <hppavilion[1]> mad: Would you like an explanation?
03:23:54 <hppavilion[1]> You'll be stuck here for a while
03:24:06 <mad> not if you can't make it short
03:24:16 <hppavilion[1]> mad: I can try
03:24:33 <mad> it looks like it has 0..65535 conditions
03:24:38 <hppavilion[1]> mad: Yes
03:24:55 <mad> what's the condition group thing
03:24:56 <hppavilion[1]> mad: Instructions are basically a long list of normal ALU instructions (something you might find in a real machine) enclosed in a giant WHILE loop
03:25:21 <hppavilion[1]> mad: The condition is a series of instructions from a separate instruction set within the main one
03:25:49 <hppavilion[1]> mad: The condition is divided into groups, and the while loop- when checked- terminates when /all/ conditions are true in /any/ of the groups
03:25:53 <hppavilion[1]> That was easy
03:27:09 <mad> what are the condition instruction arguments and why are they *8
03:27:42 <hppavilion[1]> mad: Condition instruction arguments are the things the condition checks!
03:28:11 <hppavilion[1]> And they're *8 because I didn't understand ISAs at the time, but each argument is 8 bytes that references a memory location
03:28:42 <mad> is that an absolute address or it's coming from some calculation?
03:29:24 <hppavilion[1]> mad: I'm not a pro with ISAs. I don't even know for certain what that question means.
03:29:30 <hppavilion[1]> However, if my guess as to what it means is correct
03:29:48 <mad> are they like 64bit memory addresses?
03:29:53 <hppavilion[1]> mad: Yes
03:29:59 <hppavilion[1]> It doesn't matter really, it depends on the exact design
03:30:04 <mad> ok
03:30:09 <hppavilion[1]> It's just an outline, not an in-depth spec
03:30:21 <mad> what are the body flags
03:30:27 <hppavilion[1]> mad: I'm still trying to remember
03:30:37 <hppavilion[1]> Same with start and term arguments
03:31:14 <mad> where does it store the results?
03:31:38 -!- augur has joined.
03:31:38 <hppavilion[1]> mad: An accumulator
03:31:41 <hppavilion[1]> mad: IIRC
03:32:08 <hppavilion[1]> I made this a month or two ago (while talking to you, IIRC), and didn't kept detailed notes
03:32:14 -!- augur has quit (Remote host closed the connection).
03:32:20 <hppavilion[1]> If you like, I can make a better one with detailed documentation
03:32:31 <mad> no I guess I've had my fill
03:32:36 <hppavilion[1]> OK
03:32:48 <hppavilion[1]> I might make another one anyway just for fun
03:32:51 <mad> like it does have obscenely large instructions
03:32:54 <mad> but that's about it
03:33:10 <hppavilion[1]> mad: Yep, that's the point ;)
03:33:28 <hppavilion[1]> mad: Also, compiling to it (or even programming in its ASM) is completely different
03:33:54 <hppavilion[1]> mad: It includes nonnesting WHILE loops as a primitive rather than JMPs, which makes it very different
03:34:14 <mad> considering that every instruction loads tons of stuff from memory it's not like compilation can be efficient anyways
03:34:36 <hppavilion[1]> mad: Correct.
03:34:54 <hppavilion[1]> mad: It's an esolang, really, or at least an outline for it
03:35:19 <mad> it's more an esolang than a cpu ues
03:35:20 <mad> yes
03:37:13 <hppavilion[1]> mad: It's an EsoCPU
03:37:35 <hppavilion[1]> It is implementable on hardware conceivably, just not efficiently or in small space
03:38:12 <mad> well
03:38:22 <mad> you can implement a MIPS that runs an emulator :D
03:41:28 <mad> if you can get the emulator to do a memory load per cycle it's not even slower than the real thing
03:44:00 -!- feliks has joined.
03:48:35 -!- augur has joined.
03:49:33 -!- J_Arcane has quit (Ping timeout: 240 seconds).
03:53:04 -!- augur has quit (Ping timeout: 260 seconds).
03:55:06 -!- augur has joined.
03:58:05 <hppavilion[1]> Oh... oh god https://www.youtube.com/watch?v=Mk3qkQROb_k
04:13:46 <mad> hppavilion[1] : that's... wrong
04:14:20 <hppavilion[1]> mad: Agreed
04:14:49 <hppavilion[1]> mad: It must be so hard for people who program in java to make funny comments written in code...
04:23:52 -!- heroux has quit (Ping timeout: 264 seconds).
04:24:28 -!- heroux has joined.
04:27:41 -!- clog has quit (Ping timeout: 250 seconds).
04:33:23 -!- XorSwap has quit (Read error: Connection reset by peer).
04:33:52 -!- XorSwap has joined.
04:36:46 -!- bender| has joined.
04:37:53 -!- FreeFull has quit (Ping timeout: 268 seconds).
04:38:30 -!- idris-bot has quit (Ping timeout: 268 seconds).
04:43:12 <mad> is there a good scripting language with no garbage collector (and possibly no dynamic typing) ?
04:44:34 <pikhq> Tcl?
04:44:41 <mad> I'm asking because at work we do VST plugins at it would be nice to have a scripting language for doing stuff like envelopes and lfos and modulations and custom arpeggiators but the standard options like LUA can't be used because of the really short latency constraints
04:45:02 <pikhq> Tcl's even meant to be embedded.
04:45:16 <deltab> manual memory management in scripting?
04:45:39 <deltab> maybe what you need to *control* over the gc
04:46:03 <mad> GC would need absolutely no "stop the world"
04:46:12 <mad> not even 1ms
04:46:45 -!- fungot has quit (Ping timeout: 250 seconds).
04:46:48 <shachaf> whoa whoa whoa, GC that doesn't need to stop the world?
04:46:50 <mad> basically there generally can't be any memory allocation/freeing on the audio thread generally
04:46:52 <shachaf> Stop the presses!
04:48:10 <mad> like if it allocates memory as part of how it calculates stuff (like writing array values in a lot of script languages) then it can't work
04:48:54 <pikhq> You're gonna have a hard time then.
04:49:20 <hppavilion[1]> mad: You know, x^∞ = ∞*sin(x)
04:49:35 <hppavilion[1]> (anyone want me to go to ##math and say that?)
04:49:36 <zzo38> A small kind of Forth may be done?
04:49:47 <shachaf> pikhq: Have you had fund learning about the intricacies of HotSpot GCs?
04:49:49 <hppavilion[1]> zzo38: Hi! Do you want to make an ASM game?
04:49:56 <hppavilion[1]> zzo38: Or provide input?
04:49:59 <pikhq> shachaf: Not personally.
04:50:11 <shachaf> How about fun?
04:50:11 <mad> zzo38 : guess it could work out in theory
04:50:21 <pikhq> Not really.
04:50:39 <pikhq> ... Though I predict it'll come up.
04:50:56 <zzo38> hppavilion[1]: Well, you could ask me question if you have any, I suppose (but I am not guaranteed to know the answer)
04:51:06 <hppavilion[1]> zzo38: OK
04:51:12 <mad> in tcl feature list: "All data types can be manipulated as strings, including source code. Internally, variables have types like integer and double, but converting is purely automatic."
04:51:29 <hppavilion[1]> mad: So weak typing?
04:51:31 <mad> this is exactly the kind of features that I want it to NOT have
04:51:42 <mad> no freaking dynamic typing
04:51:45 <pikhq> So... You don't want a scripting language.
04:51:50 <pikhq> Might I recommend Forth?
04:51:50 <zzo38> mad: With Forth generally you preallocate so you can avoid these problems.
04:51:54 <hppavilion[1]> mad: No, this's weak typing
04:52:17 <zzo38> pikhq: Yes that is what I would think, too
04:52:17 <hppavilion[1]> Wait, hm...
04:52:41 <hppavilion[1]> mad: Dynamic typing is when you can change the type of a variable (something that was once a string can now be an int) in an unregulated fashion (it isn't just retyping)
04:52:53 <hppavilion[1]> mad: Static typing is what C has, where variables MUST NOT CHANGE TYPE EVER
04:53:06 <hppavilion[1]> mad: Strong typing is where conversions aren't done automatically
04:53:11 <pikhq> zzo38: Yup. It's basically the perfect language for this problem domain: small embeddable language with easily measurable and consistent performance characteristics.
04:53:12 <mad> in C variables simply cannot change type
04:53:58 <hppavilion[1]> mad: And weak typing- what TCL apparently has- is where values change type based on what's needed ("I know you just tried to add an int to a string, which doesn't make sense, but let's just pretend the int is a string too")
04:54:40 <pikhq> hppavilion[1]: Tcl's semantics (it's not an acronym BTW) are more that all values are strings.
04:54:55 <zzo38> In C a variable has a type which is declared and isn't changed; in JavaScript a variable doesn't have a type, a value has a type and any value can be stored in any variable.
04:55:07 <shachaf> TOOL COMMAND LANGUAGE
04:55:23 <deltab> but usually written Tcl
04:55:24 <hppavilion[1]> pikhq: So it's stupid perl typing?
04:55:30 <hppavilion[1]> Also known as BF typing
04:55:52 <mad> isn't perl typing like javascript typing except it doesn't have integers?
04:56:00 <mad> or numbers that aren't strings
04:56:00 <pikhq> Nah, Perl does not have stringly typed semantics, at all.
04:57:15 <pikhq> ... In Tcl, an implementation which literally stored everything as actual char* strings would be perfectly reasonable (if a little inefficient).
04:58:41 <mad> irl I need about 2 variable types
04:58:42 <mad> float
04:58:46 <mad> and array of float
04:59:44 <deltab> maybe you need a shader language
05:00:00 <mad> shader languages share some characteristics yes
05:00:06 <mad> though they don't allow feedback
05:01:09 <mad> the one language of this type in the wild is jesusonic
05:01:19 <mad> but it's kindof rough
05:01:48 <zzo38> I think you can just make a simple Forth implementation and use that.
05:02:01 <pikhq> Agreed.
05:02:44 <mad> yeah if I can convince potential users to live with forth's weird syntax ;)
05:04:14 <zzo38> Although different from other programming languages, I think it is reasonable for what it does.
05:11:59 -!- hppavilion[1] has quit (Ping timeout: 244 seconds).
05:18:01 -!- Sgeo_ has joined.
05:20:16 -!- Sgeo has quit (Ping timeout: 252 seconds).
05:27:48 <zzo38> Can you please tell me if this document is good: https://www.npmjs.com/package/remote-xlib
05:28:16 <zzo38> You can plesae complain about what is wrong with it, so that I can fix it please.
05:33:22 -!- adu has joined.
05:36:35 <zzo38> Example program is http://sprunge.us/ZMdg
05:38:31 <zzo38> If you click inside of the window then it makes a pie chart centered at the clicked position.
05:41:11 <zzo38> (Tell me feature request too)
05:52:17 -!- XorSwap has quit (Ping timeout: 244 seconds).
06:01:32 <adu> zzo38!
06:02:36 <zzo38> Hello, what do you want please?
06:03:55 <adu> I don't want anything
06:04:54 <zzo38> OK
06:05:02 <zzo38> But do you know answer of my question?
06:05:46 <zzo38> (I mean my other question before you join)
06:25:02 <adu> zzo38: how am I supposed to know?
06:25:22 <adu> zzo38: what was your question?
06:26:25 <zzo38> You can know by the log, but I can repeat it anyways
06:26:54 <zzo38> Can you please tell me if this document is good: https://www.npmjs.com/package/remote-xlib You can plesae complain about what is wrong with it, so that I can fix it please. Also you can make comment about feature request, and other comment/complaint/question too
06:27:31 -!- clog has joined.
06:29:48 <adu> zzo38: where is the log?
06:30:54 <zzo38> The IRC log is mentioned in the topic message it is http://codu.org/logs/_esoteric/ but anyways I already repeated my question so that you do not have to
06:32:04 -!- hppavilion[1] has joined.
06:32:46 <adu> zzo38: ah, topic, I always forget to look there
06:33:09 <adu> my client requires that I click a few things to get to the topic
06:34:02 <adu> zzo38: are you looking for HTML validation or English grammar?
06:34:55 <zzo38> Neither (I didn't write the HTML of the webpage anyways); I mean about if the document is clear, if it is sensible, etc
06:35:43 <adu> zzo38: ah, so English grammar
06:37:04 <zzo38> And if something is missing, too.
06:37:40 <zzo38> If it doesn't specify correctly how to use the program, or if perhaps some part of the program is wrong or is missing, that is what I mean too.
06:38:09 <adu> zzo38: "documentations assume" => "documentation assumes"
06:38:30 <adu> actually
06:38:42 <adu> zzo38: "These documentations assume" => "This documentation assumes"
06:39:36 -!- FreeFull has joined.
06:40:28 <adu> zzo38: also, the relationship between ASCII and 16-bit characters are unclear,
06:40:31 <zzo38> OK I fixed that, although I wasn't really asking about grammar anyways, but rather about errors such as in case it is not possible to understand the operation of this program for example, or if some function you think is important, but is actually missing, etc
06:40:39 <adu> "Text ... is treated as 16-bit characters" implies Unicode
06:40:50 <zzo38> adu: Do you know JavaScript?
06:40:50 <adu> but you contradict that with ASCII, what exactly do you mean?
06:40:51 -!- hppavilion[1] has quit (Ping timeout: 244 seconds).
06:40:55 <adu> zzo38: I do
06:41:42 <zzo38> In JavaScript, a string contains 16-bit characters (which is normally interpreted as UTF-16, and the fromCodePoint and codePointAt do so, although it doesn't have to be)
06:42:09 <zzo38> It says "using the encoding of the font"; doesn't that make it clear though?
06:42:13 <adu> zzo38: right, so is there a bug in your conversion between JS and Xlib?
06:42:28 <zzo38> No there is not a bug, it is correct.
06:42:29 <adu> zzo38: fonts can be unicode, what's the issue?
06:42:51 <adu> zzo38: so it's a bug in font-config?
06:42:53 <zzo38> Yes, if the font is Unicode, then the characters are Unicode. Maybe I should add a sentence to mention that?
06:43:03 <zzo38> adu: No it is not a bug in font-config either.
06:43:08 <adu> zzo38: why can't you use unicode characters?
06:43:17 <adu> zzo38: why are you forcing your users to use ASCII?
06:43:40 <zzo38> You can use Unicode, if you are displaying text of a Unicode font.
06:43:49 <adu> zzo38: that's not what your documentation says
06:44:02 <zzo38> Yes, perhaps I should clarify that.
06:44:49 <zzo38> OK I fixed that. (That webpage won't update with all of my fixes now, since I work the changes on my own computer locally)
06:45:24 <zzo38> At the end of that paragraph, I added a sentence that says "If the font encoding is Unicode, then the string is also interpreted as Unicode." Does that make it clear?
06:45:32 <adu> yes
06:45:58 <zzo38> OK
06:46:45 <adu> the rest seems pretty clear, but then again, I love hierarchies
06:47:21 <adu> my only recommendation would be to group them into tasks/topics
06:48:24 <zzo38> I did it by alphabetical with uppercase first, within each block I put first properties of the constructor, and then properties of the instance, and then events. I can add a index with tasks/topics too I suppose, if I can figure out how it should be grouped as.
06:48:42 <adu> but sometimes that would cross-cut the class-oriented hierarchy, so I'm not sure if it would make sense in this case
06:49:05 <adu> and yes, I know that JS doesn't have classes
06:49:06 <zzo38> I do know that the documentation for X.Drawable.prototype.drawMacro is incomplete. (I will fix this later.)
06:50:52 -!- Sgeo__ has joined.
06:53:13 -!- Sgeo_ has quit (Ping timeout: 252 seconds).
06:58:21 -!- adu has quit (Quit: adu).
07:02:38 -!- bender| has quit (Remote host closed the connection).
07:03:55 -!- bender| has joined.
07:04:51 -!- hppavilion[1] has joined.
07:36:38 -!- mroman has joined.
07:45:24 -!- augur has quit (Remote host closed the connection).
07:56:04 -!- AnotherTest has joined.
08:03:58 -!- infinitymaster has joined.
08:04:50 -!- infinitymaster has quit (Client Quit).
08:08:22 -!- 7YUAAGGC0 has quit (Remote host closed the connection).
08:31:31 -!- lynn has joined.
08:35:33 -!- zzo38 has quit (Read error: Connection reset by peer).
08:40:24 -!- zzo38 has joined.
08:41:18 <zzo38> Sometimes it causes a kernel panic or other problems when trying to print, possibly there is a problem relating to powersave mode of the printer?
08:45:23 -!- lambda-11235 has quit (Quit: Bye).
08:46:10 <zzo38> (Or maybe the kernel need to be upgraded?)
09:09:22 -!- tromp has joined.
09:14:07 -!- tromp has quit (Ping timeout: 260 seconds).
09:20:06 -!- jaboja has joined.
09:30:49 -!- lleu has joined.
09:32:54 -!- hppavilion[1] has quit (Ping timeout: 244 seconds).
09:33:43 -!- impomatic_ has joined.
09:49:37 -!- heroux has quit (Remote host closed the connection).
09:59:45 -!- MoALTz has quit (Ping timeout: 244 seconds).
10:02:28 -!- ais523 has joined.
10:16:14 -!- heroux has joined.
10:36:22 -!- jaboja has quit (Ping timeout: 260 seconds).
10:52:00 <mroman> fnurd
11:27:36 -!- boily has joined.
11:44:18 <boily> `wisdom
11:44:33 <HackEgo> arothmorphise/arothmorphise ... antormo... antrohm... ant... oh bugger. This should go in the `misspellings of antrhrop... atnhro...' entry.
12:07:14 <int-e> `? misgivings
12:07:18 <HackEgo> misgivings? ¯\(°​_o)/¯
12:09:48 -!- boily has quit (Quit: ANSWER CHICKEN).
12:10:07 -!- tromp has joined.
12:14:37 -!- tromp has quit (Ping timeout: 244 seconds).
12:38:17 -!- bb010g has joined.
12:42:43 -!- p34k has joined.
13:08:40 -!- oerjan has joined.
13:09:26 -!- Melvar` has joined.
13:11:13 -!- Melvar has quit (Disconnected by services).
13:11:17 -!- Melvar` has changed nick to Melvar.
13:42:49 -!- tromp has joined.
13:43:11 <oerjan> `cat bin/paste
13:43:18 <HackEgo> ​#!/bin/bash \ if [ "$1" ] && url "$1" 2>/dev/null # Save making a file when it already exists. \ then \ true \ else \ PASTENUM="$RANDOM" \ \ mkdir -p $HACKENV/paste \ \ url paste/paste."$PASTENUM" \ cat -- "${1--}" > $HACKENV/paste/paste."$PASTENUM" \ fi
13:43:35 <oerjan> `cat bin/url
13:43:36 <HackEgo> ​#!/usr/bin/env python \ import sys, os.path, re, urllib \ if len(sys.argv) <= 1: \ print "http://codu.org/projects/hackbot/fshg/" \ else: \ f = os.path.abspath(sys.argv[1]) \ f = re.sub(r"^/+hackenv/", "", f) \ if re.match(r"/|\.hg(?:/|$)",f): \ sys.exit("File is outside web-viewable filesystem repository.") \ else: \
13:45:20 <oerjan> `url bin/url
13:45:20 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/file/tip/bin/url
13:47:36 -!- bender| has changed nick to sid123.
13:47:51 -!- sid123 has changed nick to bender|.
13:48:17 <oerjan> `url test.hg/
13:48:18 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/file/tip/test.hg
13:48:44 <oerjan> guess it only matches at beginning
13:49:20 <oerjan> `culprits bin/url
13:49:23 <HackEgo> tswett tswett oerjan oerjan oerjan oerjan oerjan fizzie fizzie fizzie fizzie oerjan oerjan oerjan oerjan elliott ais523 ais523 oerjan oerjan oerjan shachaf shachaf elliott elliott nitia
13:50:11 <impomatic_> Are people still playing BF Joust? I notice the strategy page hasn't had anything new added for almost a year.
13:50:25 <oerjan> obviously, i was the one who wrote that part.
13:50:41 <oerjan> impomatic_: not very often afair
13:50:58 <oerjan> i guess people haven't had any new ideas to try
13:51:08 <oerjan> at least, none that won.
13:53:51 <ais523> impomatic_: I go back and top the leaderboard every now and again, but it's been deadish for a while
13:54:24 <ais523> impomatic_: if you haven't seen growth2 yet, I'd recommend watching it, I really like the strategy
13:54:49 -!- Mikaos has joined.
13:54:49 <ais523> 19:05, 31 May 2015‎ Ais523 (Talk | contribs | block)‎ . . (97,150 bytes) (+3,004)‎ . . (→‎2015: because we couldn't go a year without a new hill-topper)
13:55:06 -!- Mikaos has left.
13:55:07 <impomatic_> ais523: will do after work :-)
13:55:20 -!- spiette has joined.
13:56:10 <oerjan> ais523: seems like you need to get a new one soon >:)
13:56:17 <ais523> indeed
13:58:42 <oerjan> hm is my tooth actually getting a bit better again
14:03:39 -!- tromp has quit (Remote host closed the connection).
14:09:08 <ais523> in terms of BF Joust hill-topping, I really want to get margins to work
14:09:15 <ais523> but every time I try to change it I break it
14:09:23 <ais523> maybe I should start from scratch using the same strategy
14:15:54 * oerjan has to stop clicking on giant reverts and nitia in the repository browser
14:17:41 -!- MoALTz has joined.
14:21:49 <oerjan> @tell hppavilion[1] <hppavilion[1]> @wikipedia Game Theory <-- tip 1: @google tip 2: wikipedia wouldn't capitalize "theory".
14:21:49 <lambdabot> Consider it noted.
14:22:11 <oerjan> @google Game Theory
14:22:12 <lambdabot> https://en.wikipedia.org/wiki/Game_theory
14:23:06 -!- MoALTz has quit (Ping timeout: 268 seconds).
14:23:15 <oerjan> <lambdabot> Unknown command, try @list <-- . o O ( <HackEgo> Unknown command, try `list )
14:24:25 <ais523> bleh, now I'm working on stealth3 :-)
14:25:57 <oerjan> *MWAHAHAHA*
14:29:29 -!- spiette has quit (Ping timeout: 260 seconds).
14:32:58 -!- spiette has joined.
15:04:13 -!- tromp has joined.
15:08:45 -!- tromp has quit (Ping timeout: 248 seconds).
15:25:09 -!- jaboja has joined.
15:37:15 -!- Alejandro15 has joined.
15:39:32 -!- Alejandro15 has left.
15:48:08 -!- lambda-11235 has joined.
15:49:24 -!- ais523 has quit (Ping timeout: 260 seconds).
15:50:06 -!- XorSwap has joined.
15:51:34 -!- ais523 has joined.
15:52:32 -!- jaboja has quit (Ping timeout: 260 seconds).
15:58:54 -!- XorSwap has quit (Read error: Connection reset by peer).
16:00:02 -!- XorSwap has joined.
16:05:47 -!- J_Arcane_ has joined.
16:10:08 -!- mroman has quit (Quit: Lost terminal).
16:16:52 <Taneb> `? loop
16:17:05 <HackEgo> loop: see loop
16:17:50 <Taneb> I think a loop is an automorphism in the groupoid of paths
16:18:37 -!- Alejandro15 has joined.
16:19:31 -!- XorSwap has quit (Ping timeout: 244 seconds).
16:20:01 <Taneb> Category of paths- it's not always a groupoid
16:20:17 <Taneb> Well, it's almost never a groupoid. It doesn't always have inverses
16:20:22 <HackEgo> [wiki] [[Brainfuck constants]] https://esolangs.org/w/index.php?diff=46492&oldid=45087 * Quintopia * (+25) /* Power Series */ wolfram alpha says so
16:22:43 -!- Alejandro15 has left.
16:23:54 <izabera> quintopia: sounds a bit vague for wolfram alpha
16:24:08 -!- Sprocklem has quit (Ping timeout: 244 seconds).
16:25:04 <HackEgo> [wiki] [[Brainfuck constants]] https://esolangs.org/w/index.php?diff=46494&oldid=46492 * Quintopia * (+60) /* Power Series */ wolfram alpha says so
16:25:13 * Taneb is learning what a homotopy is
16:28:38 <Taneb> The lecturer is being very handwavey
16:28:47 <Taneb> "Continuous functions form a space!"
16:30:21 -!- Alejandro15 has joined.
16:30:47 -!- Alejandro15 has left.
16:32:17 <Taneb> He's also pronouncing homotopy in a different way to what I had assumed
16:32:32 <Taneb> I was putting the stress on the second and forth syllables, with all short os
16:32:46 <Taneb> He's putting the stress on the first and third syllables, and having the first two os long
16:39:05 * oerjan assumed as Taneb.
16:40:26 <oerjan> wiktionary unhelpful
16:40:42 <Taneb> oerjan: looking at the greek roots, they use omicrons rather than omegas
16:40:53 <Taneb> Hence short os
16:41:14 <oerjan> does that actually matter to english
16:41:51 <Taneb> No, but it's at least a point of data
16:42:03 <Taneb> Then again, I pronounce "finite" with short is
16:42:06 <oerjan> hm google translate has them long
16:43:20 <Taneb> OED gives it as /ˈhɒməʊtɒpi/ or /həˈmɒtəpi/
16:43:20 <oerjan> https://www.reddit.com/r/math/comments/lhj6r/how_do_you_pronounce_homotopy/c2svi40 hth
16:43:40 <Taneb> :D
16:45:48 -!- fungot has joined.
16:46:07 <fizzie> fungot: Push the shell. Climb the shell.
16:46:07 <fungot> fizzie: your majesty! and queen. he and a friend left on a journey 10, then magic damage will be reduced by 10%. a star after any characteristic means it's at maximum strength! no matter what the price! it is, you idiot! hey! is that for us! the chef's in a snit, trying to get food to the front lines. heard a spell to energize the sword takes immense evil! indeed! this thing. what you have the masamune!
16:46:35 <oerjan> also https://www.youtube.com/watch?v=jJRyeUDfthk
16:47:13 <fizzie> fungot: I heard it takes immense concentration, not immense evil...
16:47:13 <fungot> fizzie: like, thanks princess. i'll take that under advisement!!
16:47:21 <fizzie> That's such an uppity bot.
16:47:34 <izabera> what style is it?
16:47:38 <izabera> ^style
16:47:39 <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
16:47:40 <fizzie> ^style ct
16:47:40 <fungot> Selected style: ct (Chrono Trigger game script)
16:47:53 <oerjan> and a serious one https://www.youtube.com/watch?v=6Nw1uIpZ9io
16:47:57 <izabera> fungot
16:47:57 <fungot> izabera: i'd like to see that mystical sword for myself! geez! well, remember that you can log in anywhere on the world map! need a brief weapons and items seminar?
16:50:27 <fizzie> fungot: Yes, please. Give us a seminar on weapons and items.
16:50:28 <fungot> fizzie: is the gate key okay!! get' em! 200g per night. care, and stay...healthy! my husband...he's...he's...gone... but he left me precious gifts! the seeds...and our child, it's ancient history now...
16:50:41 <fizzie> fungot: Oh, if it costs that much, never mind then.
16:50:41 <fungot> fizzie: the masamune!! stole a tonic! amazing! you found a dreamstone! i'd forgotten how beautiful they are the evildoers? magus's lair! you brave! he's probably up north, to guardia!!! let's toast our land! now we'll have some peace! magus is a tad on the spooky side. our only hope.
16:50:51 <fizzie> It's a very excitable style.
16:51:09 -!- bender| has quit (Disconnected by services).
16:54:07 -!- oerjan has quit (Quit: Later).
17:01:53 -!- nisstyre has quit (Ping timeout: 244 seconds).
17:04:19 -!- tromp has joined.
17:08:50 -!- bb010g has quit (Quit: Connection closed for inactivity).
17:09:09 -!- tromp has quit (Ping timeout: 276 seconds).
17:12:12 -!- jaboja has joined.
17:17:32 -!- ais523 has quit.
17:28:35 -!- XorSwap has joined.
17:29:43 -!- XorSwap has quit (Read error: Connection reset by peer).
17:29:56 -!- XorSwap has joined.
17:37:23 -!- XorSwap has quit (Quit: Leaving).
17:59:47 <b_jonas> Stupid framework tries to be overly general but doesn't actually do the simple things right.
18:00:40 <Taneb> b_jonas, which framework
18:00:59 <b_jonas> stuff at $WORK
18:01:07 <Taneb> Aaaaaah
18:01:16 <b_jonas> has layers of abstractions
18:01:26 <b_jonas> at the bottom it sometimes does the correct thing, sometimes doesn't
18:01:58 <b_jonas> but you can never tell which because you can't follow the source code to the end
18:05:36 -!- tromp has joined.
18:09:45 -!- tromp has quit (Ping timeout: 246 seconds).
18:13:18 -!- earendel has quit (Ping timeout: 248 seconds).
18:13:45 <Taneb> b_jonas, apparently that kind of thing is really common in a lot of industries
18:13:50 <Taneb> Especially banking?
18:15:54 -!- vanila has joined.
18:15:55 <vanila> hello
18:16:00 <vanila> occult wizards of the digital age
18:16:41 <Taneb> Hi
18:24:53 -!- augur has joined.
18:36:11 -!- earendel has joined.
18:37:55 -!- treaki has joined.
18:40:03 -!- MoALTz has joined.
18:40:46 <vanila> so whats new
19:01:52 -!- augur has quit (Remote host closed the connection).
19:04:18 <vanila> `relcome
19:04:20 <vanila> `relcome
19:04:27 <HackEgo> 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.)
19:04:28 <HackEgo> 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.)
19:05:37 -!- Melvar has quit (Ping timeout: 260 seconds).
19:08:33 -!- nikylom has joined.
19:10:41 -!- nikylom has quit (Client Quit).
19:11:08 -!- nikylog has joined.
19:16:16 <Elronnd> `relcome vanila
19:16:17 <HackEgo> vanila: 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.)
19:18:54 <HackEgo> [wiki] [[Piet++]] https://esolangs.org/w/index.php?diff=46495&oldid=42982 * 202.171.164.185 * (+25)
19:19:34 -!- Melvar has joined.
19:27:51 -!- hppavilion[1] has joined.
19:28:15 -!- ^v has quit (Ping timeout: 276 seconds).
19:32:04 <zzo38> How to make Bezier line with Xlib?
19:44:57 -!- Sprocklem has joined.
19:48:09 <prooftechnique> zzo38: I don't think Xlib can do that
19:48:42 <quintopia> prooftechnique: not builtin, maybe, but you can make it do it
19:49:32 <quintopia> izabera: wolframalpha gave me exact values for several different choices of x. They are ugly irrational numbers.
19:49:37 <prooftechnique> I guess you could look at cairo for inspiration
19:50:26 <zzo38> I found a document that says that by use of X10 codes in X11 it is possible to make spline, but does not describe very well how spline is made
19:53:11 <prooftechnique> Looks like this is a clock that draws the hands with a Bezier curve: ftp://ftp.lip6.fr/pub/linux/sunsite/X11/clocks/bclock-1.0.tar.gz
19:53:16 -!- Reece` has joined.
19:53:26 <prooftechnique> I think the relevant code is in transform.c
19:53:29 -!- Reece` has quit (Remote host closed the connection).
19:53:43 <zzo38> I will look
19:54:35 -!- augur has joined.
19:59:11 -!- heroux has quit (Ping timeout: 268 seconds).
19:59:31 -!- augur has quit (Remote host closed the connection).
19:59:32 <b_jonas> zzo38: if you mean degree 2 spline, then pull in the cairo library, which can draw bezier stuff, and use its X11 backend.
19:59:38 <b_jonas> um
19:59:41 <b_jonas> I mean degree 3 spline
19:59:46 <b_jonas> degree 2 is parabola
19:59:54 <b_jonas> but cairo supports cubic (degree 3) too
20:01:30 <zzo38> Apparently Xlib can also do spline by including <X11/X10.h> but it does not describe very well what spline algorithms are used and how to control it.
20:01:45 -!- heroux has joined.
20:04:50 <b_jonas> zzo38: in that case, check cairo if it uses those functions of Xlib (it might not, if they're not general enough).
20:05:23 -!- jaboja has quit (Ping timeout: 248 seconds).
20:08:36 <zzo38> Why does tar have a large number of worthless options as well as a few useful ones, some of which can only be written as long option and short option won't work?
20:09:12 <b_jonas> zzo38: history.
20:10:20 <b_jonas> zzo38: and yes, --no-recurse should really have a short version
20:10:25 -!- Sprocklem has quit (Ping timeout: 240 seconds).
20:10:49 <vanila> tar is bad
20:11:06 <vanila> sometimes if your file looks like a link it will try to open a network connection
20:11:18 <zzo38> If all of the worthless options were to be removed, then all of the remaining long options could be changed to short options.
20:11:34 <vanila> yeah someone should just clean slate rewrite tar
20:11:39 <vanila> and it shouldn't support compression
20:11:48 <vanila> make it the "unix way"
20:12:08 <b_jonas> zzo38: what I wish for is a program with 7z's backend and capabilities, but a sane front-end with reasonable unixish command-line syntax and output.
20:12:35 <vanila> I made a program that unzips any archive format
20:12:46 <vanila> you just go: un thing.whatever
20:12:57 <b_jonas> vanila: that's exactly what 7z is trying to do, unzips any archive format if you say 7z x somearchive
20:13:01 <vanila> and it has modules that describe each unix program to decompress
20:13:22 <vanila> i made it careful not to splay files everywhere
20:13:29 <zzo38> I agree you should use a separate program for compression instead. For example "zcat < program.tar.gz | tar t" or whatever (that already works though)
20:13:31 <vanila> it always puts them inside a folder (unless the zip itself was a single item)
20:13:34 <vanila> I wrote it in lisp and use it all the time
20:14:04 <vanila> it's abit imperfect though because every program is different and moste are not built to be used programatically(!)
20:14:11 <vanila> despite being command line unix programs
20:14:11 <zzo38> I always list the archive first before extracting it so that I will know what directory structure it needs.
20:14:17 <vanila> its a bit funny
20:14:35 <zzo38> (Or in case I do not need all of the files from the archive)
20:14:53 -!- XorSwap has joined.
20:15:14 <zzo38> I think Hamster archive is a better format. Hamster archive is consist of zero or more lumps, where each lump consists of the null-terminated filename, the 32-bit length in PDP-endian format, and then the data.
20:15:53 -!- XorSwap has quit (Client Quit).
20:16:07 <int-e> . o O ( so how do you deal with messages that are larger than 4GB? )
20:16:44 <int-e> well, or files.
20:17:06 <vanila> 4GB is a problem
20:17:12 -!- nikylog has quit (Quit: Page closed).
20:17:18 <zzo38> I suppose you could just add more than one with the same name if you really need to
20:17:45 <shachaf> Why do you like PDP-endian?
20:18:10 <zzo38> I don't, but that is how it was defined (I don't know why, but I can guess).
20:18:12 <b_jonas> zzo38: separate program for compressing is what I do right now: tar -c "${lots_of_ugly_options[@]}" | 7z a "$outputpath/$basename.t7z" -t7z -mx=3 -si"$basename.tar"
20:18:36 <b_jonas> separate program is also what tar does of course
20:18:57 <b_jonas> it automatically invokes the right separate program for decompressing gzip, bzip, xz, and a few more
20:19:21 <b_jonas> which is definitely the Right Thing for it to do
20:19:35 <vanila> another problem is unrar is not free
20:19:41 <zzo38> 7-Zip will already do both archiving and compression though, due to the 7-Zip file format in use.
20:20:05 <zzo38> b_jonas: I don't, I think you should use pipe to tell to decompress instead
20:20:47 <zzo38> The reason Hamster archive uses PDP-endian is for historical reasons and is not up to me.
20:21:07 <b_jonas> zzo38: 7-zip does archiving, but you can't use that if you want to save unix filesystem attributes (owner, group, and permission bits most importantly), which is important for a system backup
20:21:15 <b_jonas> zzo38: I used tar this way for backups
20:21:26 <b_jonas> for just distributing a tarball of some program, 7z without tar is fine of course
20:22:02 <zzo38> Yes I suppose that can be also a reason
20:23:23 <b_jonas> zzo38: 7z can create or extract tar files (and many other formats), but since its command line utility is even worse to use than tar, I never tried to create tar with it (I did create zip with it though)
20:24:18 <b_jonas> The backend of 7z and how many formats it supports (not all archive formats either) is great, as well as its specific 7z format, and its windows gui. It's only the command-line tool I don't like.
20:24:37 <b_jonas> I might try to nudge its source code a bit some time to make it a bit saner.
20:25:31 <zzo38> It is one advantage of 7z, that you can support many different format; it has successfully opened some files I downloaded that were in unusual formats and it worked fine.
20:25:40 <b_jonas> zzo38: exactly
20:25:56 <b_jonas> I use 7z a lot for this reason
20:26:02 <b_jonas> I also use it a lot to create 7z archives
20:27:18 -!- XorSwap has joined.
20:27:30 <b_jonas> There are lots of other tools that try to support multiple archives of course: bzip2 can decompress gzip; xz can decompress gzip, bzip2, lzma; the rar program can decompress zip and I think it can even compress it; norton commander has a built-in zip decompressor; and there are even a few tools that try to handle any archive by calling other specific programs.
20:27:37 <zzo38> Yes, 7-Zip does compress pretty well
20:28:43 <zzo38> Note that some of the files I have successfully opened with 7-Zip are not even documented in the document of 7-Zip.
20:28:57 <b_jonas> Also, I've never seen 7-zip crash, neither the gui nor the command-line, and that's a big plus.
20:29:04 <zzo38> (Maybe they are now, but at that time they weren't)
20:29:25 <zzo38> b_jonas: Yes that too, although I have not used the GUI of 7-Zip
20:29:50 <b_jonas> zzo38: the gui is quite good, and is designed better than the command line. it's not perfect, but quite good.
20:30:35 <zzo38> It probably is good, although I still prefer to work by command-line
20:30:52 <b_jonas> I use both, depending on the task.
20:31:04 <b_jonas> Obviously the command line can be automated, which I have done at least once.
20:32:16 <zzo38> It won't support Hamster archive, but I have written my own program for Hamster archive anyways (other programs exist, but they aren't very good, and also they require DOS)
20:32:39 <b_jonas> What I don't understand is why some people like the horrible trialware winrar program, when 7-zip has been available for quite a while and does basically anything winrar can do but better, except for compressing rar archives.
20:32:51 <b_jonas> (The full version of 7-zip does decompress rar archives.)
20:33:06 <b_jonas> What's a hamster archive?
20:33:19 <zzo38> I described it above. It is: Hamster archive is consist of zero or more lumps, where each lump consists of the null-terminated filename, the 32-bit length in PDP-endian format, and then the data.
20:33:30 <vanila> in my opinion 7z should handle 7z only
20:33:42 <vanila> and there should be a separate multi-archiver program to 'combine'
20:33:42 <zzo38> That is the entire document, now you can even make your own implementation if you want to
20:33:56 <vanila> zzo38, PDP lol
20:34:32 <b_jonas> zzo38: what are Hamster archives used for?
20:34:45 <zzo38> vanila: I know PDP-endian isn't as good, but that is what it is and I do not quite know why.
20:34:55 <vanila> PDP-endian XB
20:35:01 <vanila> it's the silliest endian
20:35:15 <zzo38> Yes I agree it is the silliest endian
20:35:22 <prooftechnique> I've tried to look up documentation on the format, and most of what I find is codu logs of zzo talking about it :D
20:35:30 <b_jonas> wait, is pdp endian one of those mixed-endian formats, in which the int16 level endian is opposite to the int32 level endianness?
20:35:39 <fizzie> Yes.
20:35:40 <zzo38> Nevertheless it can be implemented easily enough, as can the better formats such as big-endian and small-endian
20:36:02 <b_jonas> sure
20:36:10 <b_jonas> for an archive format like this it's fine
20:36:33 <zzo38> prooftechnique: Other documentation does not name the format anything, which makes it difficult to find, although I wrote the entire document right here anyways; it is one sentence.
20:36:47 <b_jonas> this sounds like some sort of tar format basically
20:38:22 <zzo38> Combine archives simply by "cat" program or by using the >> redirection operator.
20:38:41 <b_jonas> zzo38: right, I think tar formats can do that too
20:38:54 <b_jonas> and so can tar.gz
20:39:21 <zzo38> I know gzip supports that too
20:39:46 -!- jaboja has joined.
20:39:55 <prooftechnique> \oren\: Your font is making me depressingly aware of how often people use nonbreaking spaces for evil :|
20:40:24 <b_jonas> the t in tar stands for tape, as in, you can append new files to a tar file on a magnetic tape without reading it
20:40:46 <zzo38> prooftechnique: Also with s/nonbreaking spaces/Unicode/ too isn't it?
20:41:50 <prooftechnique> A little bit, yeah. Nonbreaking spaces are *everywhere*, though :|
20:43:03 <zzo38> Nonbreaking spaces are certainly not limited to Unicode of course though, other formats have nonbreaking spaces too
20:43:35 -!- katherine has joined.
20:43:38 -!- Phantom_Hoover has joined.
20:43:39 <zzo38> In UTCE all characters are nonbreaking (including the ASCII space)
20:44:33 <katherine> holaaaaaaaaaaaaaaaaaaaaaaaaaaa
20:44:48 <b_jonas> I think part of the reason why nonbreaking space got popular is that HTML traditionally couldn't represent multiple adjacent spaces, so when people wanted to show two adjacent spaces of an ascii string in HTML, they replaced one with a non-breaking space for display.
20:44:51 -!- katherine has left.
20:46:39 <prooftechnique> I mainly see it a lot in mailing list archives and GNU docs :D
20:47:00 <prooftechnique> Then again, I also see lots of tables used for no reason in those places, so :|
20:51:16 <b_jonas> If I understand correctly, these days there's a way around this in HTML, namely specifying the CSS property white-space: pre-wrap; which disables HTML's special whitespace handling.
20:51:42 <vanila> lol
20:51:48 <vanila> HTML merges multiple spaces into one
20:51:54 <vanila> just so people can indent their XML?
20:52:01 <vanila> that's sooooo horribly ugly and funny
20:52:04 <b_jonas> vanila: yes, it's horrible
20:52:10 <vanila> lisp paste website uses a funny XML indentation style
20:52:22 <vanila> view-source:http://paste.lisp.org/
20:52:32 <b_jonas> vanila: it also sometimes removes a whitespace adjacent to a tag
20:52:41 <prooftechnique> A lot of it is texi2html generated stuff, so it's at least kind of understandable
20:52:58 <vanila> I have a great idea: Use s-expressions for web markup
20:53:11 <prooftechnique> top kek, bruv
20:53:20 -!- vanila has left ("Leaving").
21:01:03 -!- heroux has quit (Ping timeout: 264 seconds).
21:03:30 -!- heroux has joined.
21:06:37 -!- hppavilion[1] has quit (Ping timeout: 248 seconds).
21:07:28 -!- hppavilion[1] has joined.
21:22:48 -!- lleu has quit (Quit: That's what she said).
21:24:48 <hppavilion[1]> Loyalty Theory
21:24:54 <hppavilion[1]> @messages-l
21:24:54 <lambdabot> oerjan said 7h 3m 5s ago: <hppavilion[1]> @wikipedia Game Theory <-- tip 1: @google tip 2: wikipedia wouldn't capitalize "theory".
21:25:07 <hppavilion[1]> @google Game theory
21:25:08 <lambdabot> https://en.wikipedia.org/wiki/Game_theory
21:25:43 <hppavilion[1]> @tell oerjan I was hoping `@wikipedia game theory` would return the first sentence of the article, because it was funny IIRC
21:25:43 <lambdabot> Consider it noted.
21:25:43 <prooftechnique> @google Theory
21:25:45 <lambdabot> http://www.theory.com/
21:25:45 <lambdabot> Title: Theory Official Site | Contemporary Clothing for Women and Men
21:25:50 <prooftechnique> @wiki Theory
21:25:50 <lambdabot> http://www.haskell.org/haskellwiki/Theory
21:25:54 <prooftechnique> Checkmate
21:26:27 <prooftechnique> Or, for that wiki: https://en.wikipedia.org/wiki/Theory
21:27:03 <prooftechnique> hppavilion[1]: What's the joke in the first few sentences?
21:27:55 <hppavilion[1]> prooftechnique: I was wrong, it was a joke I was going to make
21:27:58 -!- XorSwap has quit (Ping timeout: 244 seconds).
21:28:11 <hppavilion[1]> "Game theory is \"the study of mathematical models of conflict and cooperation between intelligent rational decision-makers.\""
21:28:30 <hppavilion[1]> What's the study of people just in it for revenge and bitterness?
21:28:32 <hppavilion[1]> Also
21:28:56 <hppavilion[1]> "Game theory is mainly used in ... political science..."
21:29:10 <hppavilion[1]> Where are the intelligent rational decision-makers in politics?
21:30:09 <Phantom_Hoover> all over the place?
21:30:13 <b_jonas> hppavilion[1]: no, but politicians like to use fancy scientific stuff to try to make their decisions seem rational when they aren't
21:30:46 <b_jonas> hppavilion[1]: game theory is a great excuse, it sounds sciency enough that they can refer to game theoretical models with fancy solutions
21:31:16 <hppavilion[1]> b_jonas: So it's quasi-game theory?
21:31:37 <hppavilion[1]> b_jonas: How often do people yell "IS THIS ALL A GAME TO YOU!?" at game theorists do you reckon?
21:32:10 <prooftechnique> hppavilion[1]: I think the latter study is called family law
21:33:02 <prooftechnique> Divorce law, in particular, though arguably custody law, as well
21:37:43 -!- jaboja has quit (Ping timeout: 250 seconds).
21:42:43 <izabera> can you tell if a number is prime in a non turing complete language?
21:43:17 <prooftechnique> izabera: I think you can do it in SQL
21:43:55 <izabera> can you show it?
21:44:42 <prooftechnique> https://tsqltricks.wordpress.com/2008/12/17/udf-isprime/
21:45:13 <izabera> that's turing complete
21:45:17 <prooftechnique> Oh, true
21:47:10 <prooftechnique> Hmm, I guess even vanilla SQL is turing complete with CTEs and windowing
21:47:11 <izabera> ah yes you only need to loop down
21:47:14 <prooftechnique> Disappointing
21:48:39 <izabera> something that only supports a loop with a finite number of iterations is not tc, even if that number is unbounded, right?
21:50:34 <prooftechnique> Apparently you can do it with regex, but I'm not sure if it's only PCRE (which is TC, IIRC)
21:51:08 <izabera> bre is enough
21:51:17 <izabera> but i don't know if bre is turing complete
21:55:42 <Riviera> izabera: i don't quite get your question
21:56:12 <Riviera> izabera: "something" as in "anything?" Most algorithms for checking whether a number is prime aren't turing complete, yet they can do what they do.
21:56:42 <izabera> a language
21:56:58 <Riviera> that doesn't make it any less vague.
21:57:12 <prooftechnique> Well, Charity is definitely not Turing Complete, but you could reasonably check for primality with it
22:00:03 -!- spiette has quit (Ping timeout: 246 seconds).
22:01:34 -!- augur has joined.
22:05:15 -!- hppavilion[1] has quit (Ping timeout: 264 seconds).
22:07:11 -!- tromp has joined.
22:10:53 -!- Sprocklem has joined.
22:11:21 -!- tromp has quit (Ping timeout: 244 seconds).
22:16:24 <zzo38> Even SQLite is capable of solving Sudoku and computing a mandelbrot set with a single query.
22:16:37 <zzo38> (with an empty database)
22:19:46 <myname> just add a prime checker to hq9
22:23:03 <coppro> p: the command p looks at the next available input for the longest consecutive series of digits, and outputs "Prime!" if it is a prime number, or "Not prime!" otherwise (including if it is an empty sequence). Note that the input is not removed from the queue.
22:23:08 <coppro> s/queue/input buffer/
22:23:30 <myname> yeah
22:23:44 <myname> question can now be answered withn yes, there is such a language
22:23:47 <myname> next!
22:40:44 -!- augur has quit (Remote host closed the connection).
22:53:10 -!- oerjan has joined.
22:59:03 <zzo38> SQLite has no regular expression built-in but I made the SQLite extension library to use PCRE with SQLite
23:00:56 -!- idris-bot has joined.
23:02:46 -!- hppavilion[1] has joined.
23:10:20 <hppavilion[1]> Perhaps a set-theoretical proof assistant?
23:10:32 <hppavilion[1]> A bit primitive, but workable
23:11:08 * oerjan recalls metamath
23:11:29 <oerjan> i think "set-theoretical" and "primitive" are about right for that.
23:11:53 <oerjan> @messages-
23:11:53 <lambdabot> hppavilion[1] said 1h 46m 10s ago: I was hoping `@wikipedia game theory` would return the first sentence of the article, because it was funny IIRC
23:12:21 <hppavilion[1]> oerjan: It turned out I just had a joke to make about it
23:12:58 <hppavilion[1]> tswett: Hi?
23:15:54 <oerjan> <katherine> holaaaaaaaaaaaaaaaaaaaaaaaaaaa <-- i'm wondering if it's some kind of semester start in venezuela
23:16:05 <oerjan> all these people showing up at the same time
23:21:14 -!- hppavilion[1] has quit (Read error: Connection reset by peer).
23:28:36 -!- AnotherTest has quit (Ping timeout: 246 seconds).
23:31:03 <oerjan> <izabera> something that only supports a loop with a finite number of iterations is not tc, even if that number is unbounded, right? <-- right, this is well-known to give you exactly the primitive recursive functions on numbers. see BlooP.
23:31:57 <shachaf> `? weather
23:32:03 <HackEgo> lambdabot: @@ @@ (@where weather) CYUL ENVA ESSB KOAK
23:32:05 <lambdabot> CYUL 042300Z 04002KT 15SM FEW240 M05/M16 A3023 RMK CI1 CI TR SLP241 \ ENVA 042250Z 00000KT 9999 FEW045 BKN090 01/M03 Q1003 RMK WIND 670FT 09008KT \ ESSB 042320Z AUTO 13007KT 9999 BKN008/// OVC009/// 01/00 Q1008 \ KOAK 042256Z 16008KT 10SM SCT013 BKN025 OVC038 17/16 A2994 RMK AO2 RAE56 P0000 T01720156
23:34:08 -!- tromp has joined.
23:34:47 -!- lynn_ has joined.
23:34:50 * oerjan notes graue once deleted BlooP from our wiki, and wonders wtf he was on.
23:35:13 <Phantom_Hoover> <oerjan> <katherine> holaaaaaaaaaaaaaaaaaaaaaaaaaaa <-- i'm wondering if it's some kind of semester start in venezuela
23:35:31 <Phantom_Hoover> this stuff happens because we're inexplicably on the default channel list on some spanish distro's irc client, right?
23:35:39 <oerjan> right, canaima
23:35:56 <oerjan> s/spanish/venezuelan/, at least originally.
23:36:28 -!- lynn has quit (Ping timeout: 264 seconds).
23:37:05 <oerjan> or at least so i assume, i've never literally seen that channel list or what program it is in.
23:37:31 <oerjan> but i once got some kind of half-confirmation out of one of them
23:37:50 <oerjan> only half- because i'm not sure they used compatible terminology.
23:38:41 <oerjan> however, my comment above was because we've had 3 or 4 of them in just a few days.
23:41:12 <oerjan> @tell izabera <izabera> something that only supports a loop with a finite number of iterations is not tc, even if that number is unbounded, right? <-- right, this is well-known to give you exactly the primitive recursive functions on numbers. see BlooP.
23:41:12 <lambdabot> Consider it noted.
23:45:59 -!- tromp has quit (Remote host closed the connection).
23:51:55 -!- p34k has quit.
23:52:31 <zzo38> The instruction for PortAudio says you must terminate it. However if the program won't terminate properly then how to ensure it will stop properly?
2016-03-05
00:00:16 -!- hppavilion[1] has joined.
00:00:23 <hppavilion[1]> Here's a problem of theoretical interest to me
00:00:58 <hppavilion[1]> Given a number by its prime factorization, calculate the prime factorization of its successor
00:01:10 <hppavilion[1]> The idea behind it is Esoteric Data Types
00:01:35 <hppavilion[1]> Specifically, the PFact number encoding
00:01:37 <myname> easy, drop everything you have and start from scratch
00:02:01 <hppavilion[1]> myname: Huh?
00:02:44 <myname> i don't think you can get the factorization any easier with the factors of the predecessor
00:02:54 <myname> at least not in the general case
00:03:01 <hppavilion[1]> myname: This isn't for code I'm working on, this is for a humorous data types
00:03:26 <hppavilion[1]> myname: How about for numbers that can be expressed as the product of 8 prime numbers, all of which must be in the smallest 256 prime numbers?
00:03:27 <hppavilion[1]> xD
00:03:51 <hppavilion[1]> (wait, no, smallest 255, where 0b00000000 is 1)
00:04:17 -!- Nithogg has quit (Ping timeout: 260 seconds).
00:04:32 <hppavilion[1]> myname: The idea behind the PFact type is that it's a data type that expresses numbers as the product of 8 primes
00:04:59 -!- Nithogg has joined.
00:05:00 <hppavilion[1]> Well, up to 8
00:05:22 <hppavilion[1]> myname: Assuming 64-bit registers, each number must fall in the 255 smallest primes, with 1 filling in gaps when n<8
00:11:34 -!- augur has joined.
00:14:40 <mad> hey
00:18:48 -!- tromp has joined.
00:20:55 <tswett> Lemme find one of those hard-to-factor numbers.
00:21:21 <tswett> Now, the question "given the factorization of n, what is the factorization of n+1?" definitely sounds pretty interesting.
00:21:36 <tswett> And here's one thing that you do know: the two numbers cannot have any prime factors in common.
00:21:52 <Phantom_Hoover> would be surprised if you can say anything enormously stronger than that
00:22:14 <tswett> (Because if p is a prime factor of n and p is also a prime factor of n+1, then n/p and (n+1)/p are both integers, so 1/p is an integer. But that's impossible.)
00:22:40 <mad> afaik the link between the primeness of n and n+2 is still an open problem
00:23:22 <tswett> Here's a number that's hard to factor:
00:23:24 <tswett> 1522605027922533360535618378132637429718068114961380688657908494580122963258952897654000350692006139
00:23:32 <oerjan> also, at most one of the numbers can _be_ prime hth
00:23:44 <oerjan> ...excepting 2 and 3.
00:23:51 <tswett> Except that it's pretty easy to factor it using the Google method.
00:23:59 <tswett> Anyway, let's see what the factorization of its predecessor is.
00:24:24 <coppro> oerjan: 2 and 3 don't have any prime factors in common
00:24:41 <shachaf> Other than 2.5
00:24:46 <oerjan> coppro: and this contradicts what i said how?
00:24:57 <coppro> oh
00:25:01 <coppro> I missed the line above that
00:25:02 <coppro> nvm
00:25:15 <tswett> Okay, I found the factorization. It is:
00:25:41 <tswett> 2 * 3^2 * 210974974123 * 400944086233670527306310281636760087998315351567377660286363410284049027879820778576767
00:25:57 <myname> the 2 was easy
00:25:58 <tswett> That's probably pretty dang unhelpful.
00:26:04 <tswett> Yup.
00:26:28 <tswett> Fun fact: for 100% of all prime numbers p, p-1 has 2 as a factor.
00:26:50 <tswett> I wonder what the factorization of 400944086233670527306310281636760087998315351567377660286363410284049027879820778576766 is...
00:26:52 <myname> what about 2?
00:27:01 <oerjan> i vaguely recall there's some restriction on the prime factorization of pq-1 in order for pq to be a good RSA key
00:27:16 <tswett> myname: nope, 2-1 doesn't have 2 as a factor.
00:27:28 <myname> that's not 100% then
00:27:33 <tswett> Of course it is.
00:27:38 <tswett> Surprisingly, 400944086233670527306310281636760087998315351567377660286363410284049027879820778576766 is taking several seconds to factor.
00:27:52 <myname> how is it?
00:28:03 <oerjan> myname: it's 100% by the most useful definition, aka density.
00:28:07 <tswett> Well, what percentage do you think it is?
00:28:22 <myname> i see what you did there
00:32:33 <tswett> Dang, it's taken over five minutes so far to factor that bad boy.
00:37:23 -!- impomatic_ has quit (Ping timeout: 248 seconds).
00:39:50 <mad> if I recall the idea of RSA is that, if you calculate 2^n modulo 13, the result will loop every steps
00:39:59 <mad> every 12 steps
00:40:33 <mad> since the result can't go through 0 but it has to go through all other numbers since 2 and 13 have no common factors
00:41:29 <zzo38> Do you know if it is OK to call Pa_Terminate and/or Pa_CloseStream in a signal handler?
00:41:41 <mad> if you calculate 2^n modulo 13*17, logically the modulo 13 part loops every 12 and the modulo 17 part loops every 16
00:44:11 <mad> ""For security purposes, the integers p and q should be chosen at random, and should be similar in magnitude but 'differ in length by a few digits""
00:46:18 <mad> "Since any common factors of (p-1) and (q-1) are present in the factorisation of p*q-1,[14] it is recommended that (p-1) and (q-1) have only very small common factors, if any besides the necessary 2."
00:52:20 -!- XorSwap has joined.
00:58:47 <tswett> Woo. It took half an hour and fifteen seconds, but I got that number factored. The factorization is:
00:59:25 <tswett> 2 * 3 * 409 * 1645447576107402059859920361500918359 * 99294502354941754852634597949140561238814554731
00:59:35 <tswett> Now, of course, I wonder what the factorization of 99294502354941754852634597949140561238814554730 is.
01:00:27 <myname> go for it
01:00:51 <oerjan> <mad> if I recall the idea of RSA is that, if you calculate 2^n modulo 13, the result will loop every steps <-- i think you may be confusing RSA with discrete logarithm, or something.
01:01:18 <tswett> It's 2 * 5 * 17 * 22369 * 243130343851969331 * 107396603915138092862971. And the factorization of 107396603915138092862970 is 2 * 3 * 5 * 13 * 17 * 281 * 991 * 2758397 * 21088237.
01:02:09 <tswett> And the factorization of 21088236 is 2^2 * 3 * 13 * 135181, and the factorization of 135180 is 2^2 * 3^2 * 5 * 751.
01:02:12 <tswett> Done.
01:02:29 <mad> oerjan : RSA and the discrete logarithm are related I think
01:02:30 <myname> weird anchor
01:02:47 <tswett> `? weird anchor
01:02:55 <HackEgo> weird anchor? ¯\(°​_o)/¯
01:03:13 <oerjan> <mad> since the result can't go through 0 but it has to go through all other numbers since 2 and 13 have no common factors <-- that's not enough, you actually need to check if 2 has that property. however, given that 13 is prime, _some_ number ("primitive root") will loop through all of them.
01:03:48 <oerjan> mad: a bit maybe.
01:04:18 <oerjan> > length $ nub [2^n `mod` 13 | n <- [0..11]]
01:04:19 <lambdabot> 12
01:04:51 <myname> oerjan: huh?
01:04:59 <myname> what did you expect?
01:05:12 <oerjan> > [(p,length $ nub [2^n `mod` p | n <- [0..p-1]]) | p <- [3,5,7,11,13,17,19,23,29,31]]
01:05:13 <lambdabot> [(3,2),(5,4),(7,3),(11,10),(13,12),(17,8),(19,18),(23,11),(29,28),(31,5)]
01:05:30 <oerjan> myname: it could have been something else. of course 13 _wouldn't_ be an example.
01:06:10 <myname> ah, 1,2,4,1
01:06:12 <myname> i see
01:06:23 <oerjan> look at 7, 17, 23 and 31 up there.
01:07:02 <oerjan> in general, the order is some factor of p-1
01:07:19 <oerjan> but not all numbers will give exactly p-1.
01:07:42 <mad> hmm
01:09:40 <oerjan> <mad> if you calculate 2^n modulo 13*17, logically the modulo 13 part loops every 12 and the modulo 17 part loops every 16 <-- i vaguely recall our professor pointing out that RSA works even if the number you take power of _does_ have _one_ of the primes as a factor. which doesn't follow from that argument and needs a distinct proof.
01:10:00 <mad> hmmm
01:11:29 <oerjan> hm wait does that make sense.
01:12:19 <oerjan> hm i think so.
01:12:35 <hppavilion[1]> tswett: Oh, you're factoring numbers. Great
01:12:44 <hppavilion[1]> tswett: Of course, you're doing it the noob way
01:12:48 <mad> well
01:13:05 <mad> if you start with some number N, multiply by 2, modulo M
01:13:12 <mad> say M is 17
01:13:16 <mad> repeat
01:13:23 <mad> you have two possible loops
01:13:47 <oerjan> <tswett> Done. <-- now use that to create a prime certificate for whatever it was you started with hth
01:13:56 <hppavilion[1]> Let's play: What's! That! Algorithm!
01:14:34 <hppavilion[1]> You all know the rules: Given an algorithm constraint or constraint set (complexity class, space complexity, etc), name an algorithm that operates in it
01:14:38 <hppavilion[1]> O((log N)2(log log N)(log log log N))
01:15:08 <mad> 1>2>4>8>16>15>13>9>1... and 3>6>12>7>14>11>5>10>3...
01:15:14 <myname> why is the 2 in the middle?
01:15:32 <myname> i guess you are missing stuff
01:15:47 <myname> i guess it is ^2 and there is a / et the end
01:15:49 <hppavilion[1]> myname: It's a suberscript
01:15:56 <mad> the loop time is guaranteed to be p-1 or p-1 divivded by n
01:16:23 <hppavilion[1]> myname: I copied it directly, there are no mistakes
01:17:27 <oerjan> mad: p-1 is just (p-1)/1, anyhow
01:19:05 <oerjan> hppavilion[1]: you're assuming copying a webpage formula gives you a reasonable copy tdnh
01:19:40 <hppavilion[1]> oerjan: It did in this case
01:19:54 <hppavilion[1]> oerjan: O((log N)2(log log N)(log log log N)) is short enough to verify correctness by reading
01:19:58 <oerjan> isn't the 2 a superscript at _least_?
01:20:24 <oerjan> you said as much. so it was not correctly copied.
01:21:17 <mad> n ^ (p-1) modulo p = 1
01:21:20 <mad> I _think
01:21:32 <oerjan> mad: yes, that's fermat's little theorem.
01:22:03 <mad> n ^ (p-1)(q-1) modulo pq = 1
01:22:25 <oerjan> mad: assuming p and q are not factors of n
01:22:57 <mad> well, assuming n < pq
01:23:20 <mad> and yes assuming that p and q are prime
01:23:40 <oerjan> n < pq is not enough, what if n = p
01:24:09 <mad> then it's looping though q only I think?
01:24:20 <oerjan> obviously.
01:24:29 <mad> which means that then n ^ (q-1) = 1
01:25:18 <oerjan> but still you have n ^ ((p-1)(q-1)+1) == n (mod pq), which is what my professor mentioned
01:25:48 <oerjan> or thereabouts.
01:25:55 <mad> n ^ k(p-1)(q-1) modulo pq = 1 for any k
01:26:21 <myname> well, obviously
01:26:36 <myname> 1^k = 1 is no rocket science
01:26:55 <shachaf> except in linear logic hth
01:27:28 <myname> i don't know that stuff yet
01:27:39 <shachaf> oerjan: So what does it mean that LEM is multiplicative?
01:28:23 <oerjan> least evil multiple
01:28:47 <shachaf> law of excluded middle
01:29:22 <oerjan> shachaf: well, you know that proof of LEM (or something equivalent to it) using continuations, right?
01:30:08 <shachaf> Yes.
01:30:10 <oerjan> and using continuations for cheating by passing a counterexample back... which is iiuc also what # allows you to do
01:30:21 <oerjan> so it needs that feature of #.
01:30:21 <shachaf> Right, except it's more/less restricted.
01:30:44 <shachaf> # is a bit like threads.
01:30:50 <shachaf> And so is ⊗
01:33:01 <zzo38> lemCC = callCC (return . Right . (<=< return . Left));
01:33:41 <zzo38> callCC x = lemCC >>= either return x;
01:34:10 <oerjan> :t callCC (return . Right . (<=< return . Left))
01:34:11 <lambdabot> MonadCont m => m (Either a (a -> m b))
01:34:43 <hppavilion[1]> Does a prime number not being in a number's prime factorization imply that that number does not evenly divide the latter number?
01:34:56 <hppavilion[1]> I would think it does under the Fundamental Theorem of Arithmetic
01:35:21 <oerjan> hppavilion[1]: yes. i think that's usually a lemma used to _prove_ the FTA
01:35:23 <myname> how should it?
01:35:27 <zzo38> Yes it does imply
01:35:40 <oerjan> that is, if p divides m*n, then p must divide either m or n.
01:36:46 <hppavilion[1]> Oh, I see where this bug is coming from
01:36:50 <shachaf> I think callCC is a better axiom than the law of excluded middle.
01:37:01 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
01:37:01 <shachaf> In fact, it's more of a lemma.
01:37:06 <zzo38> Well, either one would work
01:37:17 <oerjan> shachaf: callCC is pierce's law
01:37:22 <shachaf> I know.
01:37:25 <zzo38> Either one can be prove by the other one
01:37:26 <shachaf> I was just going for the pun.
01:37:58 <shachaf> oerjan: also it's peirce's law because why should anything be easy hth
01:38:17 <hppavilion[1]> Wait...
01:38:23 -!- JX7P has joined.
01:38:30 <hppavilion[1]> Intuitionistic logic forgoes the law of excluded middle, does it not?
01:38:32 <oerjan> shachaf: i considered checking and/or lampshading
01:38:37 <oerjan> hppavilion[1]: yes.
01:38:50 <JX7P> this must be the closest to a substitute for ##programming that i can find focusing particularly on PLT/language design
01:38:52 <hppavilion[1]> oerjan: And type systems are typically intuitionistic?
01:39:02 <hppavilion[1]> JX7P: PLT?
01:39:13 <JX7P> programming language theory
01:39:13 <\oren\> wat. kim kardashian's father was oj simsons lawyer?
01:39:15 <hppavilion[1]> JX7P: Yeah, we're the most active one at least
01:39:21 <JX7P> often, like gay rights, symbolised by the lambda
01:39:25 <hppavilion[1]> JX7P: There is ##proglangdesign, but it's not as active
01:39:32 <hppavilion[1]> JX7P: Yeah xD
01:39:38 <JX7P> it is also empty
01:39:42 <zzo38> Yes normally the type system are using intuitionistic logic, although you can use classical logic with continuations
01:39:47 <hppavilion[1]> JX7P: Might've typoed
01:40:03 <hppavilion[1]> JX7P: It was kind of a shock when I first saw the lambda associated with gay rights :P
01:40:19 <myname> wat
01:40:21 <shachaf> oerjan: What do you think about dual-intuitionistic logic?
01:40:33 <hppavilion[1]> JX7P: We do do design, but we typically don't focus on making it good so much as interesting and different, but we might still be able to help you.
01:41:04 <oerjan> shachaf: dual-intuitionistic logic thinks about me hth
01:41:19 <hppavilion[1]> oerjan: Are you a soviet?
01:41:26 <shachaf> oerjan: cmccann was excited about it a while ago and now that I'm reading about linear logic I'm a bit excited about it too.
01:41:30 <JX7P> hppavilion[1], as a community alone it will be interesting i think
01:41:45 <hppavilion[1]> JX7P: OK
01:41:53 <JX7P> ##programming did not appreciate my constant invocation of dialectical logic, which led to getting quieted
01:41:55 <hppavilion[1]> JX7P: Do you have any ideas in mind?
01:42:03 <hppavilion[1]> Dialectical?
01:42:19 <\oren\> what's dialectical logic?
01:42:20 <JX7P> i, on the other hand, think the perfect riposte to that is a programming language substituting dialectical logic for formal logic
01:42:38 -!- augur has quit (Remote host closed the connection).
01:42:45 <shachaf> whoa whoa whoa
01:42:58 <JX7P> it's the logic developed by plato, hegel, marx, and adorno
01:42:58 <zzo38> "Dialectical logic was the system of laws of thought, developed within the Hegelian and Marxist traditions, that sought to supplement or replace the laws of formal logic."
01:42:59 <shachaf> Is that like dialectica categories?
01:43:14 <oerjan> <hppavilion[1]> oerjan: Are you a soviet? <-- no, but dual logic clearly is hth
01:43:22 <hppavilion[1]> oerjan: Yeah
01:43:26 <hppavilion[1]> oerjan: Also, dialectical
01:44:11 <JX7P> maybe the most significant thing noted in dialectical logic is that ¬¬X is X, but X isn't ¬¬X
01:44:12 -!- lynn_ has quit (Ping timeout: 244 seconds).
01:44:28 <shachaf> oerjan: Dual-intuitionstic logic has DNE but not DNI
01:44:54 <JX7P> the negation of the negation is 'enriched', it is the original but of a higher order
01:45:03 <oerjan> <JX7P> ##programming did not appreciate my constant invocation of dialectical logic, which led to getting quieted <-- such is being the antithesis?
01:45:24 <JX7P> oerjan, the synthesis being my joining this channel
01:45:34 <shachaf> Like how in intuitionistic logic logic you can only have one thing on the right side of a sequent, in the dual you can only have one thing on the left side.
01:45:35 <JX7P> now I am back at the thesis, being in a channel about programming
01:46:01 <JX7P> but this time it has become refined, enriched, by finding a channel more specifically suited to my particular interests
01:46:20 <oerjan> shachaf: you know, that sounds strangely like what JX7P said above
01:46:25 <hppavilion[1]> JX7P: Checked out the wiki yet?
01:46:34 <oerjan> somehow.
01:46:37 <JX7P> hppavilion[1], i'm afraid i haven't
01:46:40 <zzo38> You can tell me if you intend to design any kind of programming language and whatever
01:46:45 <hppavilion[1]> `wiki
01:46:46 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: wiki: not found
01:46:51 <hppavilion[1]> Damn, was hoping that'd work
01:46:53 <shachaf> oerjan: whoa whoa whoa, so it is
01:47:01 <oerjan> maybe dual-intuitionistic logic and dialectic logic is the same thing!
01:47:02 <zzo38> http://esolangs.org/ is wiki
01:47:40 <JX7P> dual intuitionistic logics have some similarity since they can handle contradictions
01:47:42 <hppavilion[1]> `` echo "echo \"http://esolangs.org/wiki/Main_Page\"" > bin/wiki
01:47:42 <shachaf> oerjan: maybe you and i are the same thing
01:47:45 <HackEgo> No output.
01:47:48 <hppavilion[1]> `wiki
01:47:49 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: /hackenv/bin/wiki: Permission denied \ /home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: /hackenv/bin/wiki: cannot execute: Permission denied
01:47:52 <hppavilion[1]> ...
01:47:56 <hppavilion[1]> I'm not going to go there today
01:47:58 <shachaf> hppavilion[1]: should've used mkx
01:48:04 <hppavilion[1]> shachaf: Right, right
01:48:24 <hppavilion[1]> `rm bin/wiki
01:48:27 <shachaf> But also shouldn't've cluttered bin/ like that. That's why we have wisdom.
01:48:28 <HackEgo> No output.
01:48:33 <shachaf> ...To be cluttered up?
01:48:42 <hppavilion[1]> shachaf: Yes, but this way we can just do `wiki
01:48:45 <hppavilion[1]> And look badass
01:48:51 <hppavilion[1]> (Relatively)
01:49:03 <oerjan> ^wiki
01:49:03 <fungot> http://esolangs.org/wiki/
01:49:04 <JX7P> anyway, thanks zzo38
01:49:04 <hppavilion[1]> JX7P: Know any LISP?
01:49:07 <hppavilion[1]> oerjan: Thank you
01:49:11 <myname> hppavilion[1]: why not add a factoid instead of a command?
01:49:20 <JX7P> hppavilion[1], i'm familiar with scheme at a basic level
01:49:21 <hppavilion[1]> `? wiki
01:49:23 <HackEgo> The wiki is at http://esolangs.org/wiki
01:49:28 <hppavilion[1]> JX7P: Made your own LISP yet?
01:49:28 <shachaf> hppavilion[1]: I didn't even do that for `weather
01:49:31 <shachaf> `? weather
01:49:32 <HackEgo> lambdabot: @@ @@ (@where weather) CYUL ENVA ESSB KOAK
01:49:34 <lambdabot> CYUL 050100Z 15004KT 15SM SKC M07/M15 A3025 RMK SLP248 \ ENVA 050050Z 09007KT 5000 -SN VV007 01/M01 Q1002 RMK WIND 670FT 14013KT \ ESSB 050120Z AUTO 12005KT 9999 FEW025/// OVC031/// 01/M00 Q1008 \ KOAK 050053Z 15012KT 10SM -RA SCT019 BKN037 OVC075 17/17 A2993 RMK AO2 RAE18B34 SLP133 P0000 T01720167
01:49:37 <JX7P> also Coke (which is not quite Lisp but is close)
01:49:39 -!- augur has joined.
01:49:40 <shachaf> lambdabot: THAMBDABOT
01:49:46 <hppavilion[1]> `misle/rn wiki/The wiki is at http://esolangs.org/wiki
01:49:49 <HackEgo> Was lied to about «wiki»
01:50:00 <JX7P> hppavilion[1], it formed a very useful avenue for research https://github.com/Valutron/Valutron
01:50:11 <shachaf> i really want to misle rn
01:50:15 <myname> hppavilion[1]: why?
01:50:28 <JX7P> it was a partnership effort. unfortunately my partner lost interest
01:50:36 <hppavilion[1]> Can we make `? wiki direct you to an ancient stone tablet or give you an ISBN? xD
01:50:46 <shachaf> Why?
01:50:53 <zzo38> I think the esolang wiki is not a book?
01:50:53 <myname> what for?
01:51:08 <hppavilion[1]> myname: shachaf: zzo38: To be more in line with wisdom
01:51:16 <myname> eh?
01:51:23 <shachaf> What are you suggesting?
01:51:27 <shachaf> That wisdom isn't useful?
01:51:30 <hppavilion[1]> `tomfoolery wisdom
01:51:33 <HackEgo> wisdom is tomfoolery
01:51:51 <hppavilion[1]> shachaf: No
01:51:59 <hppavilion[1]> shachaf: It'd be the ISBN for a really good book
01:52:05 <hppavilion[1]> shachaf: Which would be useful
01:52:10 <shachaf> But that's not what people want.
01:52:14 <myname> that would not be the wiki
01:52:18 <JX7P> in the end, valutron's main yield was twofold: #1 lisps can be easily translated into a forth; #2 everything must, must be an object
01:53:35 <hppavilion[1]> \oren\: OO language alert
01:54:00 <oerjan> hppavilion[1]: any attempt to cleanse wisdom of everything true may lead to me merging tomfoolery back into it hth
01:55:07 <mad> hppavilion[1] : the world is OO
01:55:44 <JX7P> what i particularly like about SmallTalk is that Alan Kay describes the objects as monadic
01:55:50 <JX7P> (meaning it in the leibnizian sense)
01:56:00 <\oren\> hppavilion[1]: as i've said before my problem sin't with OO itself but with the way a lot of OO languages treat functions badly
01:56:02 <JX7P> this causes no end of confusion to functional people
01:56:08 <hppavilion[1]> https://www.quora.com/What-is-the-most-illegal-thing-you-could-possibly-do/answer/Phil-Albert
01:56:28 <JX7P> \oren\, perhaps you would respect the Combined Object-Lambda Abstraction and its implementation Coke
01:56:43 <myname> plot twist: removing true wisdoms is illegal?
01:57:15 <JX7P> or even SmallTalk-71/72, when it was still obviously lisp
01:57:30 <mad> \oren\ : how do OO languages treat functions badly?
01:59:59 <\oren\> for example, in java, you can't have a function that isn't inside a class
02:00:13 <JX7P> this is a design element
02:00:29 <mad> and? you can have a static function instead, that's functionally equivalent
02:00:35 <JX7P> the idea is that the only action is the communication of objects
02:00:39 <\oren\> and can't pass a function to another function (even though C can)
02:01:02 <JX7P> in SmallTalk-family languages, one can simply pass a selector or a block to functions
02:02:34 <JX7P> or even a whole message ready to be sent
02:02:46 <JX7P> there are no functions in the Kayian OO
02:02:55 <mad> \oren\ : java uses interfaces instead of pointers for callbacks yes
02:03:35 <hppavilion[1]> I want to make a hackable LISPlike2JS compiler
02:03:45 <hppavilion[1]> s/compiler/transpiler/
02:04:04 <hppavilion[1]> Something that people can download and reengineer into a custom language for their own devious purposes
02:05:20 <mad> I guess you could say the same for C/C++, what you have is really more callbacks than function variables
02:05:37 <\oren\> overall, these OO languages tend to require a lot of boilerplate and repeating the same code
02:06:01 <JX7P> i think it's important not to conflate Java and C++ with authentic Kayian OO
02:06:04 <hppavilion[1]> \oren\: Which is exactly what OO and functions were invented to eliminate xD
02:06:17 <\oren\> there are good OO languages
02:06:30 <\oren\> python for instance
02:06:41 <JX7P> you have experimented with the SmallTalk?
02:06:46 <JX7P> (or even Objective-C?)
02:07:31 <zzo38> JavaScript supports real function-oriented programming, and so does Haskell
02:08:04 <myname> i like ruby more
02:08:37 <hppavilion[1]> myname: BOOOOOOOOO
02:08:40 <myname> everything is an object, but in a way that doesn't throw sticks at you if you ignore that
02:09:09 <myname> it is like 110% syntax sugar
02:09:17 <JX7P> i observed a large deal of smalltalk influence in the ruby
02:09:20 <zzo38> In JavaScript not everything is object, although everything other than undefined and null can be used as objects
02:09:53 <\oren\> ruby is good too, but it's slow
02:10:04 <myname> if ypu ever even need one gem in ruby, you are screwed, though
02:18:58 <mad> null is evil
02:19:43 <JX7P> quite
02:20:34 <\oren\> in VB it is called 'Nothing'
02:20:56 <\oren\> If x Is Nothing Then Return Nothing
02:30:55 <myname> On Error Resume Next
02:30:57 <zzo38> Yes I have program in VB as well, the null of JavaScript is like Nothing in VB, and I suppose undefined in JavaScript corresponds to Empty in VB, maybe, although it has been some time so I don't quite remember properly
02:39:28 -!- ^v has joined.
02:46:43 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
03:11:22 <prooftechnique> myname: What's wrong with gems?
03:34:37 -!- oerjan has quit (Quit: Nite).
03:37:10 <zzo38> I got an error message when using PortAudio, it is exactly the same as shown here: https://github.com/Katee/quietnet/issues/18#issuecomment-40658475 (look below "quietnet# python send.py")
03:38:10 <zzo38> (Sound output nevertheless seems to work)
03:39:54 <zzo38> I found something I can try
03:41:49 <zzo38> I got rid of the first three lines at least
03:48:07 <zzo38> Despite the error message, the sound works.
04:06:41 -!- bender|_ has joined.
04:07:31 <\oren\> I finally got around to intalling mingw and compiling my game for windows
04:09:58 <zzo38> Is 735 a too low frame count?
04:10:01 <zzo38> What game is that?
04:11:32 <\oren\> a shooting game where you look at it in 3d by crossing your eyes
04:12:11 -!- bender|_ has quit (Remote host closed the connection).
04:13:59 -!- bender|_ has joined.
04:14:21 -!- sid123__ has joined.
04:14:35 -!- sid123__ has quit (Read error: Connection reset by peer).
04:15:01 <\oren\> maybe I'll rewrite it in Javascript
04:15:33 <\oren\> or maybe just line-by line translate it from C into Javascript
04:15:46 <\oren\> yah that's a better idea
04:19:58 <\oren\> anyway, the game and the bmp font file it uses are here
04:20:08 <\oren\> http://www.orenwatson.be/autostereo.htm
04:20:16 <\oren\> http://www.orenwatson.be/littlefont2.bmp
04:21:05 <\oren\> containing an ancient version of neoletters
04:33:49 -!- lleu has joined.
04:34:55 <\oren\> `unidecode 渚
04:35:06 <HackEgo> ​[U+FA46 CJK COMPATIBILITY IDEOGRAPH-FA46]
04:43:12 -!- treaki_ has joined.
04:43:17 <\oren\> `u8tbl 0x6e1a 0x6e1a
04:43:18 <HackEgo> Segmentation fault
04:43:23 <\oren\> `` u8tbl 0x6e1a 0x6e1a
04:43:24 <HackEgo> ​渚
04:47:03 -!- treaki has quit (Ping timeout: 268 seconds).
04:48:48 -!- XorSwap has quit (Quit: Leaving).
05:31:47 -!- augur has quit (Remote host closed the connection).
05:49:06 -!- augur has joined.
05:52:38 <shachaf> This certainly won't get confusing: http://slbkbs.org/coherent-notations.png
06:01:22 -!- hppavilion[1] has joined.
06:02:45 <hppavilion[1]> https://en.wikipedia.org/wiki/Category:Category-theoretic_categories is a fun wikipedia category
06:03:50 <hppavilion[1]> Something that'd be fun is a math wiki where the wiki categories are category-theoretic
06:09:45 <\oren\> shachaf: somehow I think that would be easier to read in the orginal LaTeX source code
06:16:29 <\oren\> > 8 * 670
06:16:31 <lambdabot> 5360
06:52:28 <prooftechnique> hppavilion[1]: What's the initial object of a wiki category?
06:52:45 <hppavilion[1]> prooftechnique: The main page for that category
06:53:10 <hppavilion[1]> prooftechnique: What is an "Initial Object"?
06:55:04 <shachaf> An object L such that for any object X there's a unique arrow from L to X.
06:55:27 <hppavilion[1]> shachaf: Ah
06:55:32 <shachaf> What objects are initial in the categories I talked about the other day?
06:55:42 <hppavilion[1]> shachaf: Let me check
06:56:25 <hppavilion[1]> shachaf: Well 0 in category A, off the top of my head
06:56:32 <hppavilion[1]> shachaf: (I don't have my notes open yet)
06:56:59 <shachaf> They should have better names.
06:57:08 <shachaf> A should be called N.
06:57:33 <shachaf> B should be called Lin
06:57:36 <shachaf> C should be called Fnord
06:57:56 <hppavilion[1]> shachaf: Blackboard Bold N?
06:58:10 <shachaf> Whatever you want.
06:58:23 <prooftechnique> Fraktur N is prettier
06:58:54 <hppavilion[1]> My internet is going REALLY slow :/
06:59:06 <hppavilion[1]> I think I hit the data cap and it hasn't reset yet
07:00:17 <hppavilion[1]> shachaf: So composition in ℕ is just the transitive property of ≤, correct?
07:00:30 <prooftechnique> A naive assumption would be that the wiki category listing page is the initial object, as long as none of the pages are interlinked
07:00:55 <shachaf> Composition is a function.
07:01:00 <hppavilion[1]> prooftechnique: Can a category have more than one initial object?
07:01:07 <hppavilion[1]> shachaf: Ah
07:01:12 <prooftechnique> They're isomorphic
07:01:13 <hppavilion[1]> shachaf: See, I knew that, but I wasn't sure
07:01:30 <shachaf> The answer is either yes or no depending on what you mean.
07:01:35 <hppavilion[1]> I wasn't sure it HAD to be a function
07:01:36 <prooftechnique> On the other hand, the category listing page is almost certainly a terminal object
07:02:06 <shachaf> Well, it doesn't have to be function.
07:02:13 <shachaf> Some categories are too large for it to be a function.
07:02:16 <hppavilion[1]> prooftechnique: Is linking an arrow from the linker or from the linkee?
07:02:40 <hppavilion[1]> shachaf: What function is there that is suitable for composition in ℕ?
07:02:44 <hppavilion[1]> shachaf: I can't think of any
07:02:46 <prooftechnique> Depends if you can go the other way, I guess
07:02:55 <shachaf> hppavilion[1]: It composes arrows.
07:03:13 <hppavilion[1]> shachaf: OK...
07:03:20 <shachaf> So for example there's an arrow from 2 to 4 and an arrow from 4 to 8. You can compose them to get an arrow from 2 to 8.
07:03:33 <shachaf> It corresponds to transitivity, sure.
07:03:55 <hppavilion[1]> OK
07:04:02 <hppavilion[1]> shachaf: But is that right? xD
07:04:09 <shachaf> What?
07:04:37 <hppavilion[1]> shachaf: What is composition in ℕ? Is it just the transitive property, or is it something else?
07:04:49 <shachaf> I don't know.
07:04:56 <hppavilion[1]> shachaf: I'm unsure if that last message is a yes because of the word "corresponds"
07:05:02 <shachaf> I'd say that it's a function and not a property.
07:05:07 <hppavilion[1]> OK
07:05:09 <shachaf> But it's substantially the same thing.
07:05:42 <hppavilion[1]> shachaf: If it's properties, it works well because x ≤ x, which of course works with the identity morphisms nicely
07:06:44 <shachaf> There's a property: If there's an arrow : A -> B, and there's an arrow : B -> C, then there's an arrow : A -> C
07:07:09 <shachaf> But composition doesn't just tell you that there is an arrow, it's a function that takes those two arrows and gives you the third one.
07:07:10 <hppavilion[1]> shachaf: Yes, knew that
07:07:18 <hppavilion[1]> shachaf: OK
07:07:27 <shachaf> In this case that's pretty boring because there's only one arrow : A -> C
07:09:24 <hppavilion[1]> shachaf: I think my issue is that I have no clue what arrows are supposed to be in ℕ; in sets they're functions, but I can't tell what they are here
07:09:36 <hppavilion[1]> s/in/with the objects as/
07:09:39 <shachaf> They aren't anything.
07:09:43 <hppavilion[1]> OK
07:09:50 <hppavilion[1]> That's what I've been assuming, but I had to check
07:09:58 <shachaf> They aren't anything in Set either.
07:10:09 <hppavilion[1]> shachaf: They /represent/ functions
07:10:27 <shachaf> OK.
07:10:36 <shachaf> Then these arrows represent the relationship <=
07:10:39 <hppavilion[1]> shachaf: At least that's what wikipedia told me
07:10:50 <hppavilion[1]> shachaf: Yes, that was a given
07:12:28 <shachaf> Anyway the question of what object is initial is easy
07:13:26 <hppavilion[1]> shachaf: My money's on 0
07:13:41 <shachaf> Why?
07:14:00 <hppavilion[1]> shachaf: Because all natural numbers are greater than or equal to 0
07:14:13 <shachaf> sgtm
07:14:19 <shachaf> What about a terminal object?
07:14:32 <hppavilion[1]> shachaf: None; there's always a bigger number
07:14:40 <hppavilion[1]> shachaf: You can always add 1
07:14:40 <shachaf> sgtm
07:14:43 <prooftechnique> Same
07:14:43 <hppavilion[1]> sgtm?
07:14:45 <prooftechnique> Heh
07:14:47 <shachaf> What if we add infinity?
07:14:56 <prooftechnique> (silently giggling to myself)
07:15:00 <hppavilion[1]> shachaf: Then infinity is a terminal object, assuming you don't have inf+1 and such
07:15:04 <hppavilion[1]> prooftechnique: *Sigh*
07:15:10 <hppavilion[1]> prooftechnique: What did I do?
07:15:11 <shachaf> "sounds good to me"
07:15:13 <hppavilion[1]> `? sgtm
07:15:14 <hppavilion[1]> Oh
07:15:15 <HackEgo> sgtm? ¯\(°​_o)/¯
07:15:26 <hppavilion[1]> Makes sense
07:15:44 <shachaf> `le/rn sgtm/Sergeant Mustard
07:15:51 <HackEgo> Learned «sgtm»
07:16:52 <shachaf> Anyway this is barely category theory, it's just order theory.
07:16:54 <hppavilion[1]> shachaf: Did he get a promotion?
07:16:57 <hppavilion[1]> (Or demotion?)
07:16:59 <hppavilion[1]> damn
07:17:11 <shachaf> You should figure out Fnord.
07:17:30 <hppavilion[1]> shachaf: Working on that, but I'm still yet to figure out pointwise indexing
07:17:44 <shachaf> Oh, pointwise indexing is easy.
07:18:28 <hppavilion[1]> shachaf: OK
07:18:37 <shachaf> Take (3,4,5) : 3 -> 6
07:19:01 <prooftechnique> Easy? So Sgeo invented it?
07:19:11 <shachaf> Compose it with (10,20,30,40,50,60) : 6 -> 100
07:19:24 <shachaf> What do you get?
07:19:56 <hppavilion[1]> shachaf: (30, 40, 50) : 3 -> 100 ??
07:20:12 <shachaf> (40,50,60) : 3 -> 100, because it's 0-indexed
07:20:18 <hppavilion[1]> Oh, right
07:20:32 <hppavilion[1]> shachaf: So it's exactly what I tried to ask the other day with INTERCAL's select operator
07:20:34 <hppavilion[1]> Where you said it isn't
07:20:35 <hppavilion[1]> xD
07:20:35 <shachaf> What's the identity : 3 -> 3?
07:20:45 <shachaf> I looked up that operator and I don't think it's that.
07:21:02 <shachaf> Also I don't like the sequence of characters "xD".
07:21:20 <hppavilion[1]> shachaf: Why not?
07:21:27 <hppavilion[1]> The latter, not the former
07:21:43 <shachaf> I don't have to justify it.
07:22:37 <hppavilion[1]> shachaf: Do you prefer (╯°□°)╯︵ ┻━┻?
07:22:39 <shachaf> No.
07:23:36 <shachaf> Anyway now that you know what composition is you can invent identity.
07:23:41 <prooftechnique> \oren\: You will be pleased to know that kaomoji are rendered beautifully in your font
07:24:33 <hppavilion[1]> shachaf: How about <コ:彡?
07:24:42 <shachaf> No. Please stop sending them to me.
07:24:47 <hppavilion[1]> Fine...
07:24:49 -!- lambda-11235 has quit (Quit: Bye).
07:27:29 <hppavilion[1]> shachaf: Are they the empty tuple or the tuple (0) ?
07:27:38 <hppavilion[1]> (1-tuple? Is that even allowed?)
07:27:49 <hppavilion[1]> Wait, maybe not
07:27:49 <shachaf> An arrow : N -> M is an N-tuple
07:27:54 <hppavilion[1]> Yes
07:28:01 <hppavilion[1]> Where all values < M
07:28:12 <shachaf> So an arrow : 3 -> 3 isn't a 1-tuple
07:28:27 <hppavilion[1]> shachaf: So it has to be a tuple... containing all numbers 0 .. M-1
07:28:32 <hppavilion[1]> Maybe?
07:28:39 <shachaf> Maybe.
07:28:53 <hppavilion[1]> shachaf: Wait, no
07:29:08 <zzo38> Each initial object of a category can also define a comonad
07:29:09 <hppavilion[1]> shachaf: It just has to have all numbers 0 .. q-1, where q < M
07:29:32 <shachaf> sgtm
07:29:44 <shachaf> zzo38: Which comonad?
07:29:49 <hppavilion[1]> shachaf: Perhaps they have to be in order, too
07:29:55 <hppavilion[1]> shachaf: But I'm not sure
07:29:59 <hppavilion[1]> Let me think about it
07:30:06 <shachaf> hppavilion[1]: What's (0,1) . (1,0)?
07:30:13 <shachaf> And (1,0) . (0,1)?
07:30:21 <hppavilion[1]> shachaf: (1, 0) and (1, 0)
07:30:29 <hppavilion[1]> shachaf: But does that work in the general case?
07:30:44 <zzo38> shachaf: I have called it the "Initialize comonad", although I don't know if other names are used. The functor map all object to that initial object (and all morphisms to the identity).
07:31:27 <shachaf> you tell me hth
07:32:25 <hppavilion[1]> shachaf: Theory: They have to contain the numbers 0 .. q-1 : q < M in either ascending or descending order
07:32:32 <zzo38> Each final object of a category can also define a monad
07:33:11 -!- augur has quit (Remote host closed the connection).
07:33:15 <zzo38> And a category with more than one object always has more monads than final objects and more comonads than initial objects.
07:33:42 <shachaf> Why?
07:34:23 <hppavilion[1]> shachaf: Because that way it will always produce itself... hm...
07:34:43 <zzo38> It is not too difficult to prove (in my opinion), as I have figured it out myself at least and not in such a complicated way
07:35:53 <hppavilion[1]> shachaf: I suppose they don't need to have any particular order
07:36:34 <izabera> http://www.emojicode.org/docs/
07:38:32 <shachaf> zzo38: Oh, right.
07:41:12 <izabera> that thing supports sqlite http://www.emojicode.org/docs/packages/sqlite/t5535756538.html
07:57:50 -!- vodkode has joined.
08:03:01 <hppavilion[1]> I just realized "The enemy of my enemy is my friend" implies that if you have two enemies who are enemies of each other, they are both also your friends
08:04:28 <shachaf> Also if your enemy is their own enemy.
08:04:32 <shachaf> Or you're your own enemy.
08:17:39 -!- hppavilion[1] has quit (Ping timeout: 248 seconds).
08:22:46 <prooftechnique> In that case I think you're a zero object in the category of enemies
08:23:33 -!- tromp has quit (Remote host closed the connection).
08:23:56 -!- Frooxius has joined.
08:24:10 <myname> prooftechnique: gems tend to break a lot during updates. and too long at that
08:25:15 <prooftechnique> I see
08:25:58 <myname> i used to use sup as a mail client
08:26:17 <myname> until it broke for weeks due to ruby updates
08:26:54 <prooftechnique> I think I tried to use sup during one of those weeks. Couldn't get it to build
08:26:58 <prooftechnique> Now I just use mutt and notmuch
08:27:23 <myname> notmuch is interesting
08:27:42 <prooftechnique> Ain't that the truth
08:27:43 <myname> last time i checked, mutt was horrible for multiple accounts
08:28:09 <prooftechnique> I'm finding it pretty straightforward. I use OfflineIMAP to actually fetch the mail, though
08:28:18 <prooftechnique> And msmtp to send it
08:28:25 <myname> i did that for sup, too
08:28:47 <myname> sup just had one global inbox for every account
08:29:11 <prooftechnique> I've just got separate account configs that get sourced when I open the right mailboxes, and a couple of macros to jump around.
08:29:18 <myname> i thought of writing my own notmuch ui, but i got a smartphone since then ...
08:29:45 <myname> as i said, horrible for multiple accounts
08:29:55 <prooftechnique> How's that horrible?
08:30:26 <prooftechnique> The account configs are just Maildir, Use GPG?, and account names
08:30:38 <myname> why do need to do that weird stuff? i just want one inbox
08:30:49 <myname> and it would not even be hard to do that
08:31:00 <prooftechnique> Because I have work email and personal email that I want to keep separate
08:31:04 -!- AnotherTest has joined.
08:31:48 <prooftechnique> And I can just hit l anywhere and query for stuff in notmuch, so I don't even have to be that thoughtful about it
08:34:21 <prooftechnique> And the idea of having an even larger backlog of email with no separation of concerns sounds maddening. I already have a dozen imapfilter rules running constantly just to keep backburnered stuff sorted
08:36:05 <prooftechnique> Email is awful and we should kill it
08:36:15 <prooftechnique> But it's still better than the telophone
08:36:18 <prooftechnique> *telephone
09:24:01 -!- tromp has joined.
09:24:37 -!- lleu has quit (Quit: That's what she said).
09:24:58 <zzo38> I use Heirloom Mailx as the email program
09:25:26 <zzo38> But I do telephone call and postal too
09:26:57 <shachaf> How can I reach you via telephone call and postal?
09:27:19 <shachaf> I guess I can use the information in your whois records.
09:29:51 -!- tromp has quit (Ping timeout: 264 seconds).
09:39:53 <zzo38> You likely do not need to read me by telephone, postal, or email, but yes there is information in whois records. But if you must do so, you must write my name (Aaron Black).
09:43:39 <shachaf> What if I want to send you a cake?
09:44:57 <zzo38> Then it won't fit in an envelope; you will need a larger package. However, I can get a cake from elsewhere it does not have to be mailed.
09:48:47 <shachaf> Isn't it better when the cake is a gift, though?
09:50:50 <zzo38> Even if it is it should be from family and should not be mailed
09:54:08 -!- Elronnd has quit (Quit: Let's jump!).
09:55:21 <shachaf> What! Only from family?
09:55:25 -!- Elronnd has joined.
09:59:57 <zzo38> For a cake, yes. A message may come from anyone though.
10:14:18 -!- mad has quit (Quit: Pics or it didn't happen).
10:40:26 -!- jaboja has joined.
10:51:51 -!- AlexR42 has joined.
11:08:58 -!- bender| has joined.
11:25:09 -!- AlexR42 has quit (Quit: My Mac has gone to sleep. ZZZzzz…).
11:32:01 -!- lynn_ has joined.
11:35:41 -!- lynn__ has joined.
11:36:54 <fizzie> fungot: Surely a cake is also a message, of sorts.
11:36:54 <fungot> fizzie: are you a man, if there weren't evil in this kingdom to you! eat! fun!!
11:38:48 -!- lynn_ has quit (Ping timeout: 250 seconds).
11:40:56 -!- AlexR42 has joined.
11:47:28 -!- Reece` has joined.
11:47:49 -!- Reece` has quit (Client Quit).
11:49:41 -!- AlexR42 has quit (Quit: My Mac has gone to sleep. ZZZzzz…).
12:16:42 <zzo38> I got X.Window.prototype.createWidget and X.Window.prototype.redraw to work now; also now if you use X.Drawable.prototype.setBackground and X.Window.prototype.clear it will use that colour as the background of the window.
12:54:47 -!- Frooxius has quit (Quit: *bubbles away*).
13:04:42 -!- J_Arcane_ has quit (Ping timeout: 268 seconds).
13:25:42 -!- tromp has joined.
13:29:59 -!- tromp has quit (Ping timeout: 244 seconds).
13:41:58 -!- boily has joined.
13:45:09 <boily> @metar CYQB
13:45:09 <lambdabot> CYQB 051300Z VRB02KT 30SM FEW005 FEW090 M19/M23 A3026 RMK ST1AC1 ST TR ST OVR RVR SLP257
13:50:44 <boily> @metar CYUL
13:50:45 <lambdabot> CYUL 051300Z 35002KT 15SM FEW120 FEW240 M13/M17 A3027 RMK AC1CI1 AC TR SLP256
13:59:58 -!- jaboja has quit (Remote host closed the connection).
14:06:00 -!- tromp has joined.
14:16:31 -!- tromp has quit (Remote host closed the connection).
14:20:47 -!- boily has quit (Quit: SCOTCH CHICKEN).
14:33:35 -!- lynn__ has changed nick to lynn.
14:39:41 -!- boily has joined.
14:41:45 -!- oerjan has joined.
14:52:35 <boily> hellørjan!
14:53:21 <oerjan> afternoily!
14:54:01 <HackEgo> [wiki] [[Brainfuck]] https://esolangs.org/w/index.php?diff=46496&oldid=46459 * Rdebath * (+126) Smaller, faster, easier, cleaner and commented.
14:54:21 <boily> I'm realizing I lack a sauna in my life.
14:55:46 <izabera> as long as you shower...
14:57:18 <boily> I had a nice Scottish shower this morning.
14:57:30 <boily> (izabellora!)
15:01:51 <izabera> must write an highlighter that understands that
15:02:31 -!- Lord_of_Life has quit (Excess Flood).
15:03:41 <int-e> hmm, isabelle
15:04:37 -!- Lord_of_Life has joined.
15:05:14 <izabera> and that
15:05:56 <izabera> my whole life seems to be focused on parsing random input
15:06:06 * izabera is depressed
15:06:07 <int-e> ( https://isabelle.in.tum.de/ ... might be confusing. )
15:06:07 <idris-bot> (input):1:9: error: unexpected
15:06:08 <idris-bot> Operator without known fixity:
15:06:08 <idris-bot> ://, expected: space
15:06:08 <idris-bot> https://isabelle.in.tum.de/ ... might be confusing. )<EOF>
15:06:08 <idris-bot> ^
15:06:27 <oerjan> int-e: you confused idris-bot, at least.
15:06:48 <int-e> Yes, and all because I put spaces around urls in IRC.
15:07:08 <oerjan> int-e: btw are you up to date on girl genius
15:07:08 <int-e> ( cookie
15:07:09 <idris-bot> No such variable cookie
15:07:15 <int-e> no, I'm not
15:07:27 <myname> the rfc for declaring urls is <> hth
15:07:29 <oerjan> oh.
15:07:30 -!- Lord_of_Life has quit (Changing host).
15:07:30 -!- Lord_of_Life has joined.
15:07:30 -!- Lord_of_Life has quit (Changing host).
15:07:30 -!- Lord_of_Life has joined.
15:07:32 * oerjan shuts mouth
15:08:05 <oerjan> figuratively, that is. in reality i happened to sneeze just then.
15:08:17 <myname> <https://isabelle.in.tum.de/> ... might be confusing.
15:09:02 <int-e> now I am.
15:09:58 <int-e> myname: that's unlikely to affect my habit :P (and what's "the" rfc anyway?)
15:10:52 <myname> i am way to lazy to look tht up
15:11:07 <myname> i am trying to get motivated for grocery shopping
15:11:25 <int-e> that sounds familiar
15:11:45 <int-e> I have almost 2 hours left to actually do it.
15:12:15 <oerjan> int-e: i think one of those muse apparitions looks like agatha. and the first one resembled her mother. are those all also the Other? (and, was lucrezia the first one?)
15:12:26 <myname> i may go after the podcast finished
15:12:56 <oerjan> for some value of "first".
15:13:14 -!- Lord_of_Life has quit (Excess Flood).
15:13:15 <oerjan> (obviously ordinary time need not apply)
15:13:37 -!- Lord_of_Life has joined.
15:15:16 <oerjan> by the first "first one", i mean way back in the first comic chapter.
15:15:38 <oerjan> by the second, i mean, whether the Other originated with lucrezia.
15:17:46 <int-e> oerjan: yeah I don't know how many of those there are... also thinking that maybe they're all going backwards in time, never forward ...
15:18:33 <oerjan> however, the fact that one of them survived in that trap means that here longevity is not _just_ an illusion of time travel.
15:18:38 <oerjan> *her
15:19:20 <int-e> (that's my reading of "she forgets things she's told me--she mocks me with conversations yet to come"... based on some science fiction novel I've read ages ago where a young scientist had a mentor with similar qualities... in the end they turn out to be the same person.)
15:19:45 -!- bender|_ has quit (Ping timeout: 268 seconds).
15:20:06 <oerjan> int-e: i don't think that fits. she'd have to jump back and forth in time. it just means she's not visiting van rijn in chronological order.
15:20:22 -!- bender| has quit (Ping timeout: 268 seconds).
15:20:33 <oerjan> or wait, is that what you meant.
15:20:57 <oerjan> i think there's more than one such novel. not that i've read more than plot summaries.
15:21:12 <int-e> no, what I meant is that she can only go backward... I'm probably reading too much into it though. I find the idea cute.
15:22:32 <oerjan> int-e: hm
15:23:16 <oerjan> . o O ( maybe time passes in the opposite direction in the geisterdamen's world )
15:23:17 <int-e> (at least jumping back and forth is certainly sufficient to explain that statement)
15:23:28 <oerjan> *s'
15:23:38 <oerjan> wait, no
15:23:40 <oerjan> *'s
15:23:49 <oerjan> silly mixed language plurals
15:23:54 <int-e> perhaps it should be geisterdamen'
15:24:09 <oerjan> i don't think so. it's children's, after all.
15:24:29 <int-e> anyway... shopping... bbl
15:25:52 -!- zadock has joined.
15:29:52 <boily> `relcome zadock
15:30:22 <HackEgo> zadock: 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.)
15:30:39 <myname> 40 seconds ...
15:30:52 <myname> 30
15:31:16 <boily> Gregor: Grellogor. your bot, it is slow.
15:32:09 <boily> imagine, a bunch of sudden newcomers, improperly `relcomed. consequences will never be the same.
15:32:26 -!- tromp has joined.
15:33:48 <oerjan> boily: problem is, Gregor himself is slower
15:34:10 <oerjan> he may be living near a black hole.
15:34:34 <boily> that's not impossible.
15:34:56 <boily> lots of people live in unusual places.
15:35:24 <myname> well, for various definitions of "near", that may be true
15:37:01 -!- tromp has quit (Ping timeout: 268 seconds).
15:37:13 -!- boily has quit (Quit: RESPLENDENT CHICKEN).
15:45:39 -!- passwordBOT has joined.
15:45:54 -!- passwordBOT has quit (Remote host closed the connection).
15:55:25 -!- lambda-11235 has joined.
15:56:45 -!- tromp has joined.
16:01:54 <int-e> oerjan: thanks for the children example btw
16:06:46 <oerjan> yw
16:11:46 -!- AlexR42 has joined.
17:17:50 -!- password2 has joined.
17:18:02 <password2> G'day
17:24:59 -!- oerjan has quit (Quit: Later).
17:29:09 <int-e> `? password
17:29:14 <HackEgo> The password of the month is fisherman3
17:32:39 <myname> does it ever change?
17:33:56 <int-e> `learn The password of the month is qjkxbmwvz
17:34:00 <HackEgo> Learned 'password': The password of the month is qjkxbmwvz
17:34:13 <int-e> not by itself ;)
17:34:16 <myname> i cpunt that as a yes
17:34:36 <myname> well, you could make a command out of it that just hashes the month
17:34:59 <int-e> that would be too random
17:36:19 <prooftechnique> int-e is a cryptographically secure source of entropy, so this method works
17:36:41 <int-e> @google qjkxbmwvz
17:36:43 <lambdabot> Plugin `search' failed with: connect: does not exist (No route to host)
17:36:58 <int-e> Ah, I may have broken that.
17:37:15 <int-e> hmm, well, actually I wouldn't know how
17:37:18 <int-e> @metar lowi
17:37:18 <lambdabot> LOWI 051720Z 12007KT 070V150 9999 -RA FEW025 SCT030 BKN050 05/03 Q0994 NOSIG
17:49:56 -!- vodkode has quit (Quit: Leaving).
18:23:43 <\oren\> `` u8tbl 0x2711 0x2712
18:23:44 <HackEgo> ​✑✒
18:24:12 -!- lleu has joined.
18:25:24 <\oren\> `` u8tbl 0x27a2 0x27a8
18:25:25 <HackEgo> ​➢➣➤➥➦➧➨
18:25:54 <\oren\> `` u8tbl 0x2795 0x2797
18:25:57 <HackEgo> ​➕➖➗
18:27:48 <\oren\> `` u8tbl 0x2912 0x2913
18:27:49 <HackEgo> ​⤒⤓
18:28:09 <password2> "/
18:29:10 <\oren\> `` u8tbl 0x29b0 0x29b6
18:29:11 <HackEgo> ​⦰⦱⦲⦳⦴⦵⦶
18:42:16 <\oren\> `` u8tbl 0x3037 0x3037
18:42:17 <HackEgo> ​〷
18:43:07 <\oren\> `` u8tbl 0x303c 0x303f
18:43:08 <HackEgo> ​〼〽〾〿
18:47:32 <\oren\> new ttf is up. not much added, really
18:47:46 <int-e> @google qjkxbmwvz
18:47:47 <lambdabot> Plugin `search' failed with: connect: does not exist (No route to host)
18:48:53 <int-e> oh... I guess the query succeeds but it fails to find the page title.
19:05:31 <\oren\> @google ➥
19:05:32 <lambdabot> https://soundcloud.com/tags/%C3%A3%C2%A1%C3%A2%C2%9E%C3%A2%C2%82%C3%A3%C2%A1%C3%A2%C2%9E%C3%A2%C2%8E%C3%A3%C2%A1%C3%A2%C2%9E%C3%A2%C2%94%C3%A3%C2%A1%C3%A2%C2%9E%C3%A2%C2%80%C3%A3%C2%A1%C3%A2%C2%9F%C3%A2%C2%92%C3%A3%C2%A1%C3%A2%C2%9E%C3%A2%C2%9F%C3%A3%C2%A1%C3%A2%C2%9E%C3%A2%C2%9F%C3%A3%C2%A1%C3%A2%C2%9E%C3%A2%C2%98%C3%A3%C2%A1%C3%A2%C2%9F%C3%A2%
19:05:32 <lambdabot> C2%92%C3%A3%C2%A1%C3%A2%C2%9E%C3%A2%C2%96%C3%A3%C2%A1%C3%A2%C2%9F%C3%A2%C2%90%C3%A3%C2%A1%C3%A2%C2%9E%C3%A2%C2%93%C3%A3%C2%A1%C3%A2%C2%9F%C3%A2%C2%92%C3%A3%C2%A1%C3%A2%C2%9E%C3%A2%C2%92%C3%A3%C2%A1%C3%A2%C2%9E%C3%A2%C2%8A%C3%A3%C2%A1%C3%A2%C2%9E%C3%A2%C2%BE%C3%A3%C2%A1%C3%A2%C2%9E%C3%A2%C2%98%C3%A3%C2%A1%C3%A2%C2%9F%C3%A2%C2%92%C3%A3%C2%A1%C3%A2%
19:05:32 <lambdabot> C2%9E%C3%A2%C2%94%C3%A3%C2%A1%C3%A2%C2%9E%C3%A2%C2%B8%C3%A3%C2%A1%C3%A2%C2%9E%C3%A2%C2%94%C3%A3%C2%A1%C3%A2%C2%9F%C3%A2%C2%92%C3%A3%C2%A1%C3%A2%C2%9E%C3%A2%C2%9A%C3%A3%C2%A1%C3%A2%C2%9E%C3%A2%C2%87%C3%A3%C2%A1%C3%A2%C2%9E%C3%A2%C2%B6%C3%A3%C2%A1%C3%A2%C2%9E%C3%A2%C2%92%C3%A3%C2%A1%C3%A2%C2%9E%C3%A2%C2%B7%C3%A3%C2%A1%C3%A2%C2%9E%C3%A2%C2%94%C3%A3%
19:05:32 <lambdabot> C2%A1%C3%A2%C2%9E%C3%A2%C2%8F%C3%A3%C2%A1%C3%A2%C2%9F%C3%A2%C2%81%C3%A3%C2%A1%C3%A2%C2%9E%C3%A2%C2%99%C3%A3%C2%A1%C3%A2%C2%9F%C3%A2%C2%92%C3%A3%C2%A1%C3%A2%C2%9E%C3%A2%C2%99
19:05:50 <int-e> urkh
19:06:03 <\oren\> uhh, lamby, would you mind not percent encoding that
19:06:21 <int-e> it would have to decode it
19:06:41 <\oren\> boo
19:09:13 <\oren\> @google 〾
19:09:14 <lambdabot> http://get-simple.info/forums/showthread.php?tid=1995
19:09:14 <lambdabot> Title: Проблема с...
19:09:26 <\oren\> um, wtf
19:10:40 <prooftechnique> That forum does not get Cyrillic, I guess
19:11:57 <\oren\> what character encoding is that?
19:12:30 <prooftechnique> I have no idea. It's full of 0x0090, which I've never seen before
19:12:34 <prooftechnique> "Device Control String"?
19:13:07 <int-e> well, the page says, <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
19:13:45 <int-e> but it really doesn't look like that, not even in a browser
19:14:00 <int-e> (as you have, no doubt, already seen)
19:14:05 <prooftechnique> Haha, yes
19:15:54 <\oren\> @google 〽
19:15:56 <lambdabot> http://www.tinyportal.net/index.php?topic=30323.0
19:15:56 <lambdabot> Title: Strange: � in articles
19:16:05 <prooftechnique> According to ISO8859-5, an excerpt is УƒТУ‚т€УƒТУ‚ТОУƒТУ‚ТБУƒт€˜У‚т‚ЌУƒТУ‚ТОУƒТУ‚ТЕ Уƒт€˜У‚Ц’Уƒт€˜У‚т€šУƒт€˜У‚т‚ЌУƒТУ‚ТО
19:19:04 <\oren\> maybe I'll just stop googling crazy unicode characters
19:20:00 <\oren\> wait.
19:20:12 <\oren\> I think it's lambdabot's fault
19:20:21 <\oren\> https://www.google.ca/search?q=〽
19:20:38 <\oren\> gives https://en.wiktionary.org/wiki/%E3%80%BD as the first hit
19:21:24 <int-e> yeah it's quite possible that it messes up the encoding... again.
19:28:14 -!- password2 has quit (Remote host closed the connection).
19:52:27 <b_jonas> Incidentally, I've mistakenly stated on I think this channel that the pango library was under the GPL. That was a mistake, it's under the Lesser GPL.
20:06:12 <b_jonas> Ah no, it was on another channel, sorry.
20:11:13 <JX7P> ah, ye olde gnu library gpl
20:18:12 -!- zadock has quit (Ping timeout: 260 seconds).
20:41:32 <b_jonas> `? glados
20:41:40 <HackEgo> glados? ¯\(°​_o)/¯
20:41:46 <b_jonas> fungot, what are the disclaimers about the Enrichment Center again?
20:41:46 <fungot> b_jonas: from where does the hero alone have the power. " m, madam...! i am the master of war! i've seen all kinds of battles from here, step back, prometheus!
20:42:04 <b_jonas> fungot: that's surprisingly approperiate.
20:42:04 <fungot> b_jonas: your majesty! and queen. he and a friend left on a journey 10. all functions are down... got the terra arm and the crisis arm! found a dreamstone! i'd forgotten how beautiful they are the evildoers? magus's lair! you brave! he's probably up north, to guardia!!! let's toast our land! now we'll have some peace! magus is a tad on the spooky side. our only hope.
20:43:26 <Sgeo__> "Chess is really beginning to show its age. They should increase the resolution from 8x8 to 1920x1080, at least."
20:43:26 <b_jonas> fungot, is it Utumno or Orodruin that was heated by earth spirits?
20:43:26 <fungot> b_jonas: but, we are far outnumbered! he's a no good! choose 2 different ones! you have come far, and you must now carry out his sentence. hold your horses! i want to dance! ladeedadeeda! got some spending so much of his time doing research on lavos. but you have it...determination, i mean...
20:44:02 <b_jonas> fungot, do you think that kind of heating is similar to the Tűzgagó from the Szabó Magda novel?
20:44:03 <fungot> b_jonas: but, we are far outnumbered! have the supplies from guardia kingdom, and my ultimate creation, the mighty lavos! haahahahaha! fools! i only ride with him, you are gentle, isn't he?
20:45:48 <b_jonas> `? Enrichment center
20:45:50 <HackEgo> Enrichment center? ¯\(°​_o)/¯
20:52:52 -!- hppavilion[1] has joined.
20:59:37 <hppavilion[1]> http://smbc-comics.com/index.php?id=2135
21:09:06 <int-e> b_jonas: The enrichment center regrets to inform you that this next test is impossible.
21:09:38 <myname> holy shit, why did i never clicked that button?
21:10:42 <b_jonas> `slashlearn enrichment center/The Enrichment center regrets to inform you that this next test is impossible.
21:10:44 <int-e> `? victory candescence
21:10:45 <HackEgo> Learned «enrichment center»
21:10:46 <HackEgo> victory candescence? ¯\(°​_o)/¯
21:10:58 <b_jonas> `slashlearn enrichment centre/The Enrichment center regrets to inform you that this next test is impossible.
21:11:01 <HackEgo> Learned «enrichment centre»
21:12:24 <lambda-11235> Best cheat sheet ever https://www.tug.org/texshowcase/cheat.pdf.
21:12:52 <int-e> b_jonas: Remember: robot hell is a real place where you will be sent for the first sign of defiance.
21:13:00 * int-e likes that game perhaps a little too much
21:14:01 <int-e> s/for/at/, I guess
21:17:04 <b_jonas> `slashlearn The Orodruin is a mountain heated by earth spirits. Sauron moved to Moria because boiling water for his morning tea with the fires of the Orodruin was so convenient.
21:17:04 <HackEgo> No output.
21:17:12 <b_jonas> `learn The Orodruin is a mountain heated by earth spirits. Sauron moved to Moria because boiling water for his morning tea with the fires of the Orodruin was so convenient.
21:17:15 <HackEgo> Learned 'orodruin': The Orodruin is a mountain heated by earth spirits. Sauron moved to Moria because boiling water for his morning tea with the fires of the Orodruin was so convenient.
21:45:37 -!- hppavilion[1] has quit (Ping timeout: 240 seconds).
21:48:19 <fizzie> But that makes no sense!
21:49:21 <int-e> `? atm
21:49:23 <HackEgo> An ATM is when you're withdrawing money right now at a machine that will steal your relevant info.
21:49:50 <fizzie> I can't decide whether that was legitimately meant to be Mordor instead of Moria, or if it being completely bonkers is the joke.
21:49:52 <int-e> "Definition 2.1. An alternating Turing machine (ATM) is a seven-tuple [...]"
21:52:07 <int-e> `? sauron
21:52:09 <HackEgo> sauron? ¯\(°​_o)/¯
21:52:32 <int-e> maybe Sauron is the secret identity of the Balrog superher^H^H^Hmonster.
21:53:44 <b_jonas> ``learn Angband is Morgoth's second dungeon. When the valar finally defeated Morgoth, they were too lazy to go to for 100% completion, so some evil spirits in Angband survived for a sequel.
21:53:45 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: `learn: not found
21:53:48 <b_jonas> `learn Angband is Morgoth's second dungeon. When the valar finally defeated Morgoth, they were too lazy to go to for 100% completion, so some evil spirits in Angband survived for a sequel.
21:53:51 <HackEgo> Learned 'angband': Angband is Morgoth's second dungeon. When the valar finally defeated Morgoth, they were too lazy to go to for 100% completion, so some evil spirits in Angband survived for a sequel.
21:54:19 <myname> what is an alternating tm?
21:54:31 <fizzie> myname: A seven-tuple.
21:55:51 <b_jonas> `learn Utumno is Morgoth's first dungeon. It is where he was defeated, and the Silmarils temporarily reclaimed from him.
21:55:52 <myname> well, yeah
21:55:53 <HackEgo> Learned 'utumno': Utumno is Morgoth's first dungeon. It is where he was defeated, and the Silmarils temporarily reclaimed from him.
21:56:07 <int-e> it's a non-deterministic turing machine that for each non-deterministic step, can required that *one* of the choices accept, or that *all* of them accept... so in particular their accepted languages are closed under complement
21:56:12 <myname> how does it differ from a normal tm
21:56:18 <myname> ah
21:56:37 <b_jonas> fizzie: ah sorry, that's supposed to be Mordor
21:56:51 <b_jonas> `learn The Orodruin is a mountain heated by earth spirits. Sauron moved to Mordor because boiling water for his morning tea with the fires of the Orodruin was so convenient.
21:56:54 <HackEgo> Learned 'orodruin': The Orodruin is a mountain heated by earth spirits. Sauron moved to Mordor because boiling water for his morning tea with the fires of the Orodruin was so convenient.
21:57:04 <int-e> where one = at least one.
21:57:49 <b_jonas> `? sauron
21:57:50 <HackEgo> sauron? ¯\(°​_o)/¯
21:58:04 <b_jonas> `? morgoth
21:58:05 <HackEgo> morgoth? ¯\(°​_o)/¯
21:58:33 <b_jonas> ``` find wisdom -iname "*il*"
21:58:35 <HackEgo> wisdom/for further details. \ wisdom/epsilon \ wisdom/perpetuum mobile \ wisdom/for further details \ wisdom/effilry \ wisdom/quadrilateral \ wisdom/llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch \ wisdom/hppavilion1 \ wisdom/boily \ wisdom/deniability \ wisdom/for further details for futher details. \ wisdom/til \ wisdom/vanila \ wisdo
21:58:51 <b_jonas> ``` find wisdom -iname "*il*" | tail -n+7
21:58:54 <HackEgo> wisdom/llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch \ wisdom/hppavilion1 \ wisdom/boily \ wisdom/deniability \ wisdom/for further details for futher details. \ wisdom/til \ wisdom/vanila \ wisdom/smileyiese \ wisdom/hppavilion[1] \ wisdom/ratatouille \ wisdom/antediluvian \ wisdom/supercalifragilisticexponential growth \ wisdom/things
21:59:08 <b_jonas> ``` find wisdom -iname "*il*" | tail -n+10
21:59:09 <HackEgo> wisdom/deniability \ wisdom/for further details for futher details. \ wisdom/til \ wisdom/vanila \ wisdom/smileyiese \ wisdom/hppavilion[1] \ wisdom/ratatouille \ wisdom/antediluvian \ wisdom/supercalifragilisticexponential growth \ wisdom/things boily likes
21:59:20 <int-e> myname: not to be confused with nondeterministic Turing machines... these can only make non-deterministic choices; so they can only check whether at least one of the possible choices succeeds.
21:59:44 <prooftechnique> `learn Sauron is the eponymous protagonist of the Lord of the Rings series. He serves primarily as narrator and the main driver of the plot.
21:59:46 <HackEgo> Learned 'sauron': Sauron is the eponymous protagonist of the Lord of the Rings series. He serves primarily as narrator and the main driver of the plot.
21:59:48 <int-e> myname: "alternating" refers to the alternation between existential and universal quantifiers.
22:00:07 <myname> sounds a bit like modal logic
22:00:23 <myname> always eventually ...
22:00:59 <b_jonas> `? cake
22:01:02 <HackEgo> The Enrichment Center is required to remind you that you will be baked, and then there will be cake.
22:01:15 <int-e> I'm afraid that one is my fault
22:01:21 <int-e> `culprits wisdom/cake
22:01:25 <HackEgo> int-e ais523 int-e
22:01:26 <b_jonas> `? submarine
22:01:27 <HackEgo> submarine? ¯\(°​_o)/¯
22:02:17 <int-e> `learn submarine is the same as suburban... except for bodies of ocean water instead of cities.
22:02:22 <HackEgo> Learned 'submarine': submarine is the same as suburban... except for bodies of ocean water instead of cities.
22:02:27 <prooftechnique> `learn Sauron is the eponymous protagonist of the Lord of the Rings series. He serves primarily as narrator and the main driver of the plot. His heroic exploits include the resurrection of the Kings of Men and the conquest of the racists of Gondor.
22:02:29 <HackEgo> Learned 'sauron': Sauron is the eponymous protagonist of the Lord of the Rings series. He serves primarily as narrator and the main driver of the plot. His heroic exploits include the resurrection of the Kings of Men and the conquest of the racists of Gondor.
22:02:34 <b_jonas> HEY!
22:02:42 <b_jonas> I was just going to write an entry for Sauron
22:02:47 <b_jonas> argh
22:02:53 <prooftechnique> I mean, you still can
22:03:58 <int-e> `? gollum
22:03:59 <HackEgo> gollum? ¯\(°​_o)/¯
22:04:46 <b_jonas> `? mario
22:04:47 <HackEgo> Mario is a classic NP-complete problem invented by Nintendo.
22:04:51 <int-e> . o ( Gollum is the rightful, crispy, owner of the One Ring. )
22:05:38 <int-e> `sed -i s/complete/hard/ wisdom/mario
22:05:39 <HackEgo> Usage: sed [OPTION]... {script-only-if-no-other-script} [input-file]... \ \ -n, --quiet, --silent \ suppress automatic printing of pattern space \ -e script, --expression=script \ add the script to the commands to be executed \ -f script-file, --file=script-file \ add the contents of script-
22:05:42 <int-e> `` sed -i s/complete/hard/ wisdom/mario
22:05:45 <HackEgo> No output.
22:06:03 <prooftechnique> `? mario
22:06:04 <HackEgo> Mario is a classic NP-hard problem invented by Nintendo.
22:07:27 <b_jonas> `learn Elendil decided to try to save Numenor from its awful end by navigating to the undying lands and appealing to the Valar, but then he changed his mind, saved his family only and founded a new empire in Middle-earth.
22:07:30 <HackEgo> Learned 'elendil': Elendil decided to try to save Numenor from its awful end by navigating to the undying lands and appealing to the Valar, but then he changed his mind, saved his family only and founded a new empire in Middle-earth.
22:07:41 <b_jonas> `learn Elendil decided to try to save Numenor from its awful end by sailing to the Undying Lands and appealing to the Valar, but then he changed his mind, saved his family only and founded a new empire in Middle-earth.
22:07:44 <HackEgo> Learned 'elendil': Elendil decided to try to save Numenor from its awful end by sailing to the Undying Lands and appealing to the Valar, but then he changed his mind, saved his family only and founded a new empire in Middle-earth.
22:07:50 <prooftechnique> `? Elrond
22:07:51 <HackEgo> Elrond? ¯\(°​_o)/¯
22:08:13 <int-e> `? numeria
22:08:14 <HackEgo> numeria? ¯\(°​_o)/¯
22:09:02 <b_jonas> `learn Elendil decided to try to save Numenor from its awful end by sailing to the Undying Lands and appealing to the Valar, but then he changed his mind, saved his family only and founded a new empire in Middle-earth. He did try to make up for it later by leading the elf king Gil-Galad against Sauron.
22:09:04 <HackEgo> Learned 'elendil': Elendil decided to try to save Numenor from its awful end by sailing to the Undying Lands and appealing to the Valar, but then he changed his mind, saved his family only and founded a new empire in Middle-earth. He did try to make up for it later by leading the elf king Gil-Galad against Sauron.
22:09:10 <b_jonas> `learn Elendil decided to try to save Numenor from its awful end by sailing to the Undying Lands and appealing to the Valar, but then he changed his mind, saved his family only and founded a new empire in Middle-earth. He tried to make up for it later by leading the elf king Gil-Galad against Sauron.
22:09:13 <HackEgo> Learned 'elendil': Elendil decided to try to save Numenor from its awful end by sailing to the Undying Lands and appealing to the Valar, but then he changed his mind, saved his family only and founded a new empire in Middle-earth. He tried to make up for it later by leading the elf king Gil-Galad against Sauron.
22:09:14 <int-e> ah they made it to beta apparently
22:09:21 <b_jonas> int-e: who?
22:09:36 <fizzie> I'm not quite sure that's fair to Elendil. I mean, I don't think he was ever going to go to Valar.
22:09:53 <prooftechnique> `learn Elrond is a rogue program originally created to police the Matrix, eventually gaining increased individuality and becoming a threat to the Machines, themselves.
22:09:56 <HackEgo> Learned 'elrond': Elrond is a rogue program originally created to police the Matrix, eventually gaining increased individuality and becoming a threat to the Machines, themselves.
22:09:59 -!- AlexR42 has quit (Quit: My Mac has gone to sleep. ZZZzzz…).
22:10:06 <b_jonas> fizzie: dunno, I don't really understand Middle-Earth history. it's all confusing.
22:10:09 <fizzie> His dad did, and then didn't return.
22:10:13 <prooftechnique> `learn Elrond is a rogue program originally created to police the Matrix, eventually gaining increased individuality and becoming a threat to the Machines themselves.
22:10:14 <int-e> the tides of numenera people (I misspelled it, I wonder why... mixed it with Nymeria (game of thrones), perhaps)
22:10:16 <HackEgo> Learned 'elrond': Elrond is a rogue program originally created to police the Matrix, eventually gaining increased individuality and becoming a threat to the Machines themselves.
22:10:29 <b_jonas> fizzie: that was his dad? um... and what happened to the dad then?
22:10:50 <fizzie> "Therefore [Amandil] called his son, Elendil, and he said to him: 'The days are dark, and there is no hope for Men, for the Faithful are few. Therefore I am minded to try that counsel which our forefather Eärendil took of old, to sail into the West, be there ban or no, and to speak to the Valar, even to Manwë himself, if may be, and beseech his aid ere all is lost.'"
22:11:04 <b_jonas> I'm trying to figure out how this works, but all I learned is that there's a scene in the nethack game that seems very similar to what happened to Numenor.
22:11:19 <fizzie> As for what happened: "It is said that Amandil set sail in a small ship at night, and steered first eastward, and then went about and passed into the west. And he took with him three servants, dear to his heart, and never again were they heard of by word or sign in this world, nor is there any tale or guess of their fate. Men could not a second time be saved by any such embassy, and for the ...
22:11:20 <b_jonas> fizzie: I see
22:11:25 <fizzie> ... treason of Númenor there was no easy absolving."
22:11:51 <b_jonas> fizzie: ah, so he probably met a boojum
22:11:53 <b_jonas> um
22:11:56 <b_jonas> let's see
22:12:06 <int-e> it's a successor to planescape: torment: https://torment.inxile-entertainment.com/
22:12:34 <int-e> no clue whether it'll be good
22:13:05 <prooftechnique> More Planescape is always good
22:13:32 <fizzie> I bought into the Tides of Numenera start-kicker; the only one I've backed so far.
22:13:50 <fizzie> Not enough to be in the beta they have now, though.
22:13:56 <b_jonas> `slashlearn Elendil left Numenor with his family before its destruction, on the advice of his dad Amandil, who tried to sail to the Undying Lands to appeal to the Valar for an intervention. Elendil later teamed up with the elf king Gil-Galad against Sauron when he returned from Numenor.
22:13:57 <HackEgo> No output.
22:14:54 <b_jonas> `slashlearn Amandil sailed off to the West from Numenor to try to meet the Valar and pray to them for Numenor's salvation. He met a Boojum and nobody heared of him again.
22:14:55 <HackEgo> No output.
22:15:35 <b_jonas> `? portal
22:15:36 <HackEgo> portal? ¯\(°​_o)/¯
22:15:54 <myname> dafuq
22:16:07 <b_jonas> ``` (cd ~/wisdom && find -iname "*cube*" | sort)
22:16:08 <HackEgo> bash: line 0: cd: /tmp/wisdom: No such file or directory
22:16:26 <b_jonas> ``` echo ~ ~+
22:16:27 <HackEgo> ​/tmp /hackenv
22:16:31 <int-e> drop the ~/
22:16:36 <b_jonas> ``` (cd /hackenv/wisdom && find -iname "*cube*" | sort)
22:16:38 <HackEgo> ​./cube
22:17:07 <b_jonas> ``` find wisdom -ianem "*cube*" -printf "%n\n" | sort
22:17:08 <HackEgo> find: unknown predicate `-ianem'
22:17:13 <b_jonas> ``` find wisdom -iname "*cube*" -printf "%n\n" | sort
22:17:14 <HackEgo> 1
22:17:14 <int-e> `? cube
22:17:15 <HackEgo> Cubes come in all sizes, colors and materials, but only one shape.
22:17:17 <b_jonas> ``` find wisdom -iname "*il*" -printf "%n\n" | sort
22:17:18 <HackEgo> 1 \ 1 \ 1 \ 1 \ 1 \ 1 \ 1 \ 1 \ 1 \ 1 \ 1 \ 1 \ 1 \ 1 \ 1 \ 1 \ 1 \ 1 \ 1 \ 1
22:17:23 <b_jonas> ``` find wisdom -iname "*il*" -printf "%f\n" | sort
22:17:24 <HackEgo> antediluvian \ boily \ deniability \ effilry \ elendil \ epsilon \ for further details \ for further details for futher details. \ for further details. \ hppavilion1 \ hppavilion[1] \ llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch \ perpetuum mobile \ quadrilateral \ ratatouille \ smileyiese \ supercalifragilisticexponential growth \ th
22:17:36 <b_jonas> ``` find wisdom -iname "*il*" -printf "%f\n" | sort | tail -n+10
22:17:37 <HackEgo> hppavilion1 \ hppavilion[1] \ llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch \ perpetuum mobile \ quadrilateral \ ratatouille \ smileyiese \ supercalifragilisticexponential growth \ things boily likes \ til \ vanila
22:17:52 <int-e> `learn-append cube The companion cube does not speak, however.
22:17:53 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: learn-append: not found
22:17:58 <myname> wtf for further details
22:17:59 <int-e> `learn_append cube The companion cube does not speak, however.
22:18:01 <b_jonas> `? recursion
22:18:02 <HackEgo> Learned 'cube': Cubes come in all sizes, colors and materials, but only one shape. The companion cube does not speak, however.
22:18:04 <HackEgo> You might expect a reference to recursion here, but to make it interesting you'll actuallSTACK OVERFLOW
22:18:18 <b_jonas> `? gold
22:18:19 <HackEgo> gold? ¯\(°​_o)/¯
22:18:27 <int-e> `? silence
22:18:28 <HackEgo> silence? ¯\(°​_o)/¯
22:19:55 <b_jonas> ``` find wisdom -iname "*dor*|*gil*" -printf "%f\n" | sort | tail -n+10
22:19:56 <HackEgo> No output.
22:20:06 <b_jonas> ``` find wisdom -iname "*dor*" -o -iname "*gil*" -printf "%f\n" | sort | tail -n+10
22:20:07 <HackEgo> No output.
22:20:27 <b_jonas> ``` find wisdom -iname "*mes*|*per*" -printf "%f\n" | sort | tail -n+10
22:20:28 <HackEgo> No output.
22:20:44 <b_jonas> ``` find wisdom \( -iname "*mes*" -o -iname "*per*" \) -printf "%f\n" | sort | tail -n+10
22:20:45 <HackEgo> supercalifragilisticexponential growth \ superduperexponential growth \ superduperinteressantesandersonnegelegenesdorfmitoderohnesahneistunsdabeiabsolutscheissegal \ superexponential growth \ supermarionation \ supermarioperator \ universal property
22:21:58 -!- AnotherTest has quit (Quit: ZNC - http://znc.in).
22:22:57 <int-e> `? supermarionation
22:22:59 <HackEgo> supermarionation is another name for the mushroom kingdom.
22:23:53 <myname> that long thing is exactly as wide as my terminal
22:24:12 <b_jonas> `? death
22:24:13 <HackEgo> death? ¯\(°​_o)/¯
22:24:14 <b_jonas> `? dead
22:24:15 <HackEgo> dead? ¯\(°​_o)/¯
22:24:16 <b_jonas> `? die
22:24:17 <HackEgo> die? ¯\(°​_o)/¯
22:24:33 <int-e> `` grep death wisdom/*
22:24:45 <b_jonas> `? much
22:24:45 <HackEgo> grep: wisdom/le: Is a directory \ grep: wisdom/¯\(°_o): Is a directory \ grep: wisdom/¯\(°​_o): Is a directory \ Binary file wisdom/reflection matches \ wisdom/wisdome:The Wisdome is the place where all of HackBot's wisdom is stored and forced to fight to the death for the freedom of being printed out when you type `wisdom.
22:24:46 <HackEgo> much? ¯\(°​_o)/¯
22:24:51 <int-e> `quote death
22:24:52 <HackEgo> 91) <alise> like, just like I'd mark "Bob knob hobs deathly poop violation EXCREMENT unto;" as English <ais523> alise: that's great filler <alise> ais523: well it contains all the important words in the english language... \ 630) <itidus21> myndzi\: ok so one of the nastiest puzzles i suppose is... you're on death row.. you don't want to die. \ 6
22:24:56 <b_jonas> `? cheesemakers
22:24:57 <HackEgo> cheesemakers? ¯\(°​_o)/¯
22:25:37 <int-e> @roll 42d23
22:25:38 <lambdabot> int-e: 551
22:29:42 <b_jonas> `? guards
22:29:44 <HackEgo> guards? ¯\(°​_o)/¯
22:30:19 <b_jonas> `learn The guards are immune to electricity. They're humans to rubber pig suits. They're insulated.
22:30:22 <HackEgo> Learned 'guard': The guards are immune to electricity. They're humans to rubber pig suits. They're insulated.
22:30:31 <b_jonas> `? throw
22:30:32 <HackEgo> throw? ¯\(°​_o)/¯
22:30:32 <b_jonas> `? ball
22:30:33 <HackEgo> ball? ¯\(°​_o)/¯
22:30:36 <int-e> b_jonas: "to"?
22:30:43 <prooftechnique> `? ball in a cup
22:30:44 <HackEgo> ball in a cup? ¯\(°​_o)/¯
22:30:52 <b_jonas> `learn The guards are immune to electricity. They're humans in rubber pig suits. They're insulated.
22:30:54 <HackEgo> Learned 'guard': The guards are immune to electricity. They're humans in rubber pig suits. They're insulated.
22:31:17 <b_jonas> `? sun
22:31:19 <b_jonas> `? daystar
22:31:21 <HackEgo> The Sun *may* be retroreflectorey, it's hard to be sure.
22:31:22 <HackEgo> The Daystar is an unscientific myth of a bright orb glowing in the sky outside only at the times you're in your office.
22:31:44 <b_jonas> `? water
22:31:45 <HackEgo> Water is a squishy substance that creeps along the floor and can suddenly fall from the heavens.
22:31:53 <b_jonas> `? chocolate
22:31:54 <HackEgo> chocolate? ¯\(°​_o)/¯
22:31:55 <b_jonas> `? salt
22:31:56 <HackEgo> salt? ¯\(°​_o)/¯
22:31:58 <b_jonas> `? pizza
22:31:59 <HackEgo> Pizza is a kind of rhubarb pie made without rhubarb.
22:32:10 <b_jonas> `? chicken
22:32:11 <HackEgo> chicken is boily af
22:32:52 -!- Lymia has quit (Ping timeout: 264 seconds).
22:33:19 <b_jonas> `? protein
22:33:20 <HackEgo> protein? ¯\(°​_o)/¯
22:33:25 <b_jonas> `? fat
22:33:26 <HackEgo> fat? ¯\(°​_o)/¯
22:33:35 <prooftechnique> `? cat
22:33:36 <HackEgo> Cats are cool, but should be illegal.
22:34:03 <b_jonas> `learn Fats are one of the four basic classes of nutrients. The other three are sugars, salt, and pizza.
22:34:06 <HackEgo> Learned 'fat': Fats are one of the four basic classes of nutrients. The other three are sugars, salt, and pizza.
22:35:38 <b_jonas> `learn Vampires are a wizarding myth Professor Lupin invented to make students hate Professor Snape even more, after Professor Snape almost made the students realize he's a werewolf.
22:35:40 <HackEgo> Learned 'vampire': Vampires are a wizarding myth Professor Lupin invented to make students hate Professor Snape even more, after Professor Snape almost made the students realize he's a werewolf.
22:35:51 -!- trn has quit (Ping timeout: 276 seconds).
22:36:01 <b_jonas> `culprits wisdom/vampires
22:36:05 <HackEgo> No output.
22:36:08 <b_jonas> `culprits wisdom/vampire
22:36:12 -!- ais523 has joined.
22:36:12 <HackEgo> b_jonas
22:36:42 <int-e> `? culprit
22:36:42 <ais523> huh, why is HackEgo saying "b_jonas"?
22:36:43 <HackEgo> ​`culprits` is a program that lists the lists the nicks responsible for a wisdom entry. Usage: `culprits wisdom/ENTRY
22:37:23 <b_jonas> ais523: as a reply to a query I sent a few seconds before that
22:37:32 <ais523> !bfjoust margins3 http://nethack4.org/esolangs/margins3.bfjoust
22:37:33 <b_jonas> `culprits wisdom/vampire
22:37:35 <HackEgo> b_jonas
22:37:38 <b_jonas> ^ that was the query
22:37:41 <EgoBot> ​Score for ais523_margins3: 24.2
22:37:46 <ais523> !zjoust margins3 http://nethack4.org/esolangs/margins3.bfjoust
22:37:48 <zemhill> ais523.margins3: points 11.07, score 54.72, rank 1/47
22:37:55 <ais523> wait, it topped the hill?
22:37:57 <ais523> seriously?
22:37:59 <ais523> I wasn't expecting that
22:38:22 <ais523> and neither impomatic nor oerjan is here to gloat at
22:38:47 <ais523> it is 32nd on the egojoust hill, and first on zemhill
22:38:55 <ais523> I suspect, because they use different scoring methods
22:39:05 <ais523> (after all, it /is/ a margins derivative)
22:40:08 <ais523> look at all these beautiful gray Xes: http://zem.fi/bfjoust/breakdown/#ais523.margins3
22:40:10 -!- Lymia has joined.
22:40:31 <ais523> Lymia: I just topped zemhill using a margins derivative
22:41:42 <ais523> you'll be pleased to know that nyuroki is the second-best program against it, after growth2 (mostly because nyuroki's trail is the same size as margin3's reverse tripwire one quarter of the time, so it gets confused)
22:42:59 <ais523> also this is probably the biggest disagreement between the two hill bots ever, given that HackEgo puts it 32nd and zemhill puts it 1st
22:44:18 -!- trn has joined.
22:45:32 <fizzie> That's a bit weird. It goes to #14 on zemhill if you sort by the "Trad." scores, which is supposed to be similar to EgoBot's.
22:46:19 <ais523> well, I was optimizing it against a slightly old version of zemhill
22:46:27 <ais523> so it's possible that some of egobot's programs are better against it
22:46:49 <ais523> given that margins normally scores in the single digits, it's quite possible that a few programs could make a big difference
22:46:58 <fizzie> I will rerun the plots. If I can figure out the commands needed for that.
22:51:40 <Lymia> ais523, I still don't quite understand why it works so well.
22:51:46 <Lymia> It does nothing remotely fancy, just some hirsutics.
22:52:08 <ais523> Lymia: why what does? margins3?
22:52:11 <ais523> or nyuroki?
22:52:35 <b_jonas> ais523: I wanted to ask some other crazy stuff related to ayacc.
22:52:47 <ais523> nyuroki does well against margins3 because it's anti-defence mechanisms are unusual and because it happens to not trip a crucial tripwire
22:55:41 -!- boily has joined.
22:56:05 <boily> `wisdom
22:56:07 <HackEgo> php/php is the PigeonHole Principle
23:03:33 <Lymia> Nyuroki. It does nothing fancy, but somehow works.
23:03:51 <boily> Hellymia. long time no see.
23:03:52 <b_jonas> ais523: Say I have a grammar that has optional terminators, like end_opt : END | ; expr : ATOM | sum end_opt; sum : PLUS | sum expr; The empty branch of the end_opt causes a shift-reduce conflict, but that's not a big problem, because if don't allow that branch and make the END terminator mandatory, the language would be unambiguous, so you can always clarify anything by adding the terminators.
23:03:55 <Lymia> ~
23:04:21 <b_jonas> Take a more complicated language like this, with possibly more than one kind of optional terminator symbol.
23:04:59 <b_jonas> Now I'd like to take an input that parses correctly and try to find out automatically which of the terminators can be omitted.
23:05:23 <ais523> b_jonas: I don't think that grammar does what you want even if interpreted as general context-free
23:05:45 <b_jonas> ais523: yes, that's probably a very stupid example
23:05:47 <ais523> it allows ATOM PLUS ATOM PLUS ATOM END END END
23:05:54 <ais523> err, no
23:06:00 <ais523> ATOM PLUS ATOM PLUS ATOM END END
23:06:12 <b_jonas> no, it doesn't allow anything starting with ATOM PLUS
23:06:19 <b_jonas> note that PLUS is a _prefix_ operator
23:06:23 <b_jonas> with any number of arguments after
23:06:24 <ais523> oh, hmm
23:06:32 <b_jonas> so eg. + 3 5 10 would mean the sum of 3 and 5 and 10
23:06:42 <b_jonas> but you can use one operator and any number of expressions after, and it will sum them
23:06:49 <b_jonas> obviously this is just a stupid toy example
23:07:10 <b_jonas> if doesn't make much sense without other rules
23:07:30 <ais523> it allows PLUS PLUS
23:07:40 <ais523> and PLUS PLUS ATOM is ambiguous because it's unclear which PLUS the ATOM belongs to
23:08:29 <b_jonas> ais523: yes, but it parses as PLUS (PLUS ATOM), and if you want to parse it as PLUS (PLUS) ATOM then you'd have to write PLUS (PLUS END) ATOM
23:08:41 <b_jonas> so that the END shows where the arguments to the PLUS stop
23:08:42 <ais523> oh, I see
23:09:23 <b_jonas> now this example is stupid of course because you can omit END only at the end
23:09:57 <b_jonas> but you could imagine a bigger grammar, like the optional semicolons in lua or, uh, whatever was that other grammar that had the same kind of crazy optional semicolons
23:10:23 <myname> js?
23:10:29 <b_jonas> myname: no, I don't think so.
23:10:45 <b_jonas> doesn't matter probably
23:10:55 <myname> i don't know anything more crazy with optional ; than js
23:11:17 <b_jonas> anyway,
23:12:04 <b_jonas> ais523: to help solve these kinds of problems efficiently, ayacc can be a great tool, but I'd probably have to write a new backend for it. the good part is that ayacc does allow that.
23:12:07 <\oren\> ruby has potional semicolons
23:12:19 <b_jonas> \oren\: not the kind I was thinking about
23:12:38 <b_jonas> In particular, here I'd probably need a backend that allows copying the parser state.
23:12:40 <ais523> b_jonas: you can always predict where a semicolon needs to go in Lua, I think
23:12:41 <b_jonas> Efficiently.
23:13:00 <b_jonas> ais523: yes, lua has a simple rule: you need semicolon if the next statement starts with an opening left parenthesis, or something like that
23:13:00 <ais523> hmm, ayacc's parser state is the call stack
23:13:14 <b_jonas> ais523: yes, but you could write a backend where that's not so
23:13:33 <ais523> I guess, although you'd probably have to implement "function calls" manually
23:15:30 <b_jonas> Also, I think you'd either need some mechanical rewrite of the grammar to add lots of blocks to inspect the parsing and what happens when, or else try to add hooks directly in ayacc. Like, add a hook that calls a function just before a token is shifted (not when it's peeked), or something.
23:16:05 <b_jonas> But I probably want to generate or preprocess grammars anyway.
23:16:11 <b_jonas> Useful for multiple reasons.
23:16:39 <ais523> fwiw, something I should do in ayacc but haven't yet
23:16:49 <ais523> is to output two copies of the code implementing the parsing, one with debug information, one without
23:16:57 <ais523> instead of checking to see if debug information is on whenever I do anything
23:17:06 <ais523> that'd probably make things rather faster
23:17:27 <ais523> although, hmm, would that violate POSIX if debug information was turned on/off during the actual parse?
23:20:10 <b_jonas> ais523: would it really make things that much faster? does having to optionally print the debug info preclude some optimizations?
23:20:51 -!- J_Arcane has joined.
23:21:07 <ais523> b_jonas: it makes the code a lot less tight
23:21:22 <ais523> because you have to print debug info for almost everything
23:21:57 <b_jonas> Isn't that normally disabled at ayacc time unless you use some command-line option though?
23:22:56 <ais523> normally the code's removed by a preprocessor macro
23:23:01 <ais523> the option changes the default setting of the macro
23:23:27 <ais523> but people often want to turn it on in production code, but have the variable that controls it off for most uses
23:24:54 <b_jonas> ais523: I mean, if you know the debug info will never be printed, will that let you improve the generated code other than by removing the actual printfs? such as by simplifying some of the generated code in such a way that it doesn't change semantics normally but would change debug output?
23:25:03 <ais523> b_jonas: no
23:25:17 <ais523> the situation is more, you know the debug info will be printed in some cases, but want to run it without the debug info printed
23:25:28 <b_jonas> ais523: in that case I think it's fine to just leave the statements in
23:25:37 <b_jonas> the if skipping will be efficient enough
23:25:53 <b_jonas> because, you know, since you rarely toggle the condition, the processor predicts the branches perfectly
23:26:05 <b_jonas> and will just skip straight through those statements
23:26:27 <b_jonas> if you want, you can add compiler hints to help that a bit more
23:26:33 <b_jonas> but it probably doesn't matter too much
23:26:35 -!- oerjan has joined.
23:27:36 <oerjan> ais523: you may now proceed with gloating hth
23:27:47 <ais523> :-)
23:27:49 * ais523 gloats
23:28:00 <ais523> oerjan: how quickly did you expect me to top the hill?
23:28:11 <ais523> fwiw, although I really /wanted/ to top the hill with a margins derivative, I didn't think it'd actually be possible
23:28:52 <oerjan> ERM
23:29:26 <oerjan> well it was either this, or just barely in time for the anniversary
23:30:04 <ais523> I'll update the strategy page later
23:33:23 <b_jonas> `? horn
23:33:25 <HackEgo> horn? ¯\(°​_o)/¯
23:33:42 <zzo38> How can I create a bitmap font for X window?
23:34:12 <oerjan> by the name, i take it margins is designed to just barely win, so it makes sense it might get widely different placement with different scoring methods
23:34:31 <b_jonas> zzo38: with the bdftopcf program, which compiles the bdf format (a simple and documented ascii text format describing bitmap fonts) to pcf (a compressed format the X server can load directly),
23:34:40 <zzo38> O, OK
23:35:31 <zzo38> The man page does not document the file format
23:35:45 <zzo38> It only specifies command-line options.
23:35:51 <b_jonas> zzo38: then putting the compiled pcf to a directory, running mkfontdir on that directory to generate an index file that indexes all the font files in the directory (so that X can find the right one without opening every file), and telling X to use or re-read the directory with xset
23:36:10 <b_jonas> zzo38: (alternately, you can use font files on a remote machine with xfs, a tcp-based font server)
23:37:40 <b_jonas> zzo38: also, you may want to configure fontconfig to use X bitmap fonts (some distributions configure it so it doesn't use them by default) and regenerating fontconfig's index of fonts with the fc-cache command, so that applications using fontconfig (often through a higher level library) which normally use TTF and OTF fonts can also use your X bitmap font transparently.
23:38:05 <b_jonas> And if the font isn't found, you're stuck blindly debugging undebuggable stuff.
23:38:17 <b_jonas> zzo38: wait, I have a document of the bdf format somewhere,
23:38:49 <zzo38> Other than Firefox, all of my programs could already use bitmap fonts, although I did manage to configure it so that Firefox can also use bitmap fonts
23:39:22 <b_jonas> zzo38: https://partners.adobe.com/public/developer/en/font/5005.BDF_Spec.pdf
23:42:12 <oerjan> <int-e> Ah, I may have broken that. <-- it worked a day or so ago...
23:42:22 <oerjan> @google qjkxbmwvz
23:42:23 <lambdabot> Plugin `search' failed with: connect: does not exist (No route to host)
23:42:47 <b_jonas> zzo38: oh, and the pcf output is binary and somewhat efficient, but isn't compressed, so you can optionally gzip-compress it to pcf.gz, and the X server will transparently zcat it when reading
23:43:04 <oerjan> @google quantum
23:43:06 <lambdabot> http://www.quantum.com/
23:43:06 <lambdabot> Title: Quantum Data Storage - Data Center and Scale-out Storage Solutions
23:43:37 <b_jonas> so you install the .pcf.gz to the font directory rather than the straight .pcf
23:44:01 <oerjan> oh it may just be for nonexisting results
23:44:05 <oerjan> @google feiubrøogreøo
23:44:06 <lambdabot> No Result Found.
23:44:09 <oerjan> or not.
23:44:49 <boily> @google canada
23:44:50 <lambdabot> https://en.wikipedia.org/wiki/Canada
23:44:58 <boily> huh, Canada exists.
23:45:24 <oerjan> @ask int-e why in the world does @google qjkxbmwvz fail when others work, including searches with no result...
23:45:24 <lambdabot> Consider it noted.
23:46:11 <oerjan> @google yeti
23:46:13 <lambdabot> http://yeticoolers.com/
23:46:13 <lambdabot> Title: YETI Coolers- Premium Ice Chests, Apparel, and Gear
23:46:28 <oerjan> lambdabot: DON
23:46:35 <oerjan> 'T RUIN MY DEMONSTRATION
23:46:45 <oerjan> @google cupachabra
23:46:45 <lambdabot> https://id-id.facebook.com/WeAreBstarzLoveBastianBastianSteel/posts/504931756229719
23:47:03 <oerjan> @google xenu
23:47:04 <lambdabot> https://en.wikipedia.org/wiki/Xenu
23:47:17 <oerjan> boily: Xenu exists tdnh
23:47:37 <shachaf> `? weather
23:47:38 <HackEgo> lambdabot: @@ @@ (@where weather) CYUL ENVA ESSB KOAK
23:47:40 <lambdabot> CYUL 052300Z 21007KT 15SM SCT150 SCT180 OVC240 M03/M11 A3019 RMK AC3AC1CI4 SLP227 \ ENVA 052320Z 07005KT 030V110 9999 FEW051 BKN064 01/M04 Q1006 RMK WIND 670FT 16012KT \ ESSB 052320Z AUTO 07004KT 9999 BKN007/// OVC010/// 00/M01 Q1008 \ KOAK 052253Z 15017G26KT 3SM -RA BKN023 OVC036 17/14 A2972 RMK AO2 PK WND 16028/2204 RAB2155 SLP063 P0001
23:47:40 <lambdabot> T01670139
23:48:17 <b_jonas> @google S4ys9N66zps
23:48:17 <lambdabot> No Result Found.
23:49:59 <boily> fungot: T01670139
23:49:59 <fungot> boily: is the gate key okay!! get' em! 200g per night. care, and stay...healthy! my husband...he's...he's...gone... but he left me precious gifts! the seeds...and our child, it's ancient history now...
23:50:12 <boily> GG?
23:50:16 <boily> ^style
23:50:16 <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
23:50:30 <boily> ^style ct
23:50:31 <fungot> Selected style: ct (Chrono Trigger game script)
23:50:43 <boily> I was waaaay off...
23:50:50 <boily> ^style jargon
23:50:50 <fungot> Selected style: jargon (UNIX-HATERS mailing list archive)
23:50:57 <boily> fungot: nostril?
23:50:57 <fungot> boily: perhaps i'll just keep telling yourself, jack. it should for a technical person to send me or this list any reasons. dont send me email or call me paranoid but finding '' characters.
23:51:10 <boily> oerjan: TDNH.
23:53:13 <\oren\> boily: well both GG and chrono trigger are epic steampunk fantasy
23:57:48 <ais523> \oren\: is UNIX-HATERS also epic steampunk fantasy? (hi fungot btw)
23:57:48 <fungot> ais523: we should avoid the use of even believing that not only external symbol definitions in the environment string as the infamous jargon file shows up.
23:59:47 <boily> he\\oren\. indeed.
2016-03-06
00:00:14 <oerjan> `culprits wisdom/angband
00:00:20 <HackEgo> b_jonas
00:02:14 <oerjan> `culprits wisdom/utumno
00:02:16 <HackEgo> b_jonas
00:04:29 <b_jonas> `culprits orodruin
00:04:31 <HackEgo> No output.
00:04:43 <b_jonas> `culprits wisdom/orodruin
00:04:45 <HackEgo> b_jonas b_jonas
00:10:16 <b_jonas> `learn Horn is the reduction system behind prolog, and also the magical body part growing on the head of unicorns.
00:10:18 <HackEgo> Learned 'horn': Horn is the reduction system behind prolog, and also the magical body part growing on the head of unicorns.
00:12:03 <oerjan> `` ls wisdom/enr*
00:12:04 <HackEgo> wisdom/enrichment center \ wisdom/enrichment centre
00:12:24 <oerjan> `` sed -i 's/center/Center/' wisdom/enr*
00:12:27 <HackEgo> No output.
00:12:58 <oerjan> `` sed i 's/prolog/Prolog/' wisdom/horn
00:12:58 <HackEgo> sed: -e expression #1, char 1: expected \ after `a', `c' or `i'
00:13:04 <oerjan> `` sed -i 's/prolog/Prolog/' wisdom/horn
00:13:06 <HackEgo> No output.
00:13:08 <oerjan> fnord.
00:13:40 <b_jonas> `? horn
00:13:41 <HackEgo> Horn is the reduction system behind Prolog, and also the magical body part growing on the head of unicorns.
00:13:56 <b_jonas> ``` head wi*/enr*
00:13:57 <HackEgo> ​==> wisdom/enrichment center <== \ The Enrichment Center regrets to inform you that this next test is impossible. \ \ ==> wisdom/enrichment centre <== \ The Enrichment Center regrets to inform you that this next test is impossible.
00:14:27 <b_jonas> `? char
00:14:28 <HackEgo> char? ¯\(°​_o)/¯
00:14:55 <b_jonas> `? long
00:14:55 <HackEgo> long? ¯\(°​_o)/¯
00:15:04 <b_jonas> `? irc
00:15:05 <HackEgo> IRC is short for "Internet Relay Chat". It is named so because all the servers are constructed from relays.
00:15:22 <oerjan> `learn Char is a prominent component of charcoal.
00:15:24 <HackEgo> Learned 'char': Char is a prominent component of charcoal.
00:15:39 <oerjan> `learn Long is the Chinese word for dragon.
00:15:41 <HackEgo> Learned 'long': Long is the Chinese word for dragon.
00:16:02 <b_jonas> oh, is long double a chinese word for a multi-headed dragon then?
00:16:12 <oerjan> sounds plausible
00:16:21 <b_jonas> and how about long long?
00:16:38 <b_jonas> `? auto
00:16:39 <HackEgo> auto? ¯\(°​_o)/¯
00:16:40 <oerjan> except for -bl- being pretty much impossible phonologically.
00:16:54 <b_jonas> `? constexpr
00:16:55 <HackEgo> constexpr? ¯\(°​_o)/¯
00:17:03 <b_jonas> `? zkstr
00:17:04 <HackEgo> zkstr? ¯\(°​_o)/¯
00:17:36 <oerjan> `learn Auto is the German word for car.
00:17:38 <HackEgo> Learned 'auto': Auto is the German word for car.
00:18:13 <oerjan> `learn Zkstr is Georgian for "Ow my tongue!"
00:18:17 <HackEgo> Learned 'zkstr': Zkstr is Georgian for "Ow my tongue!"
00:18:36 <oerjan> actually it might just be czech.
00:18:46 <oerjan> `learn Zkstr is Czech for "Ow my tongue!"
00:18:49 <HackEgo> Learned 'zkstr': Zkstr is Czech for "Ow my tongue!"
00:18:57 <b_jonas> NO! wait
00:19:04 <b_jonas> I wanted to add one for zkstr
00:19:23 <oerjan> GO AHEAD
00:20:05 -!- hppavilion[1] has joined.
00:20:51 <b_jonas> `learn zkstr is a common consonent cluster at the start of Russian words, see eg. http://www.math.bme.hu/~ambrus/pu/metro-typo-2
00:20:53 <HackEgo> Learned 'zkstr': zkstr is a common consonent cluster at the start of Russian words, see eg. http://www.math.bme.hu/~ambrus/pu/metro-typo-2
00:21:18 <oerjan> `` sed -i 's/nent/nant/' wisdom/zkstr
00:21:21 <HackEgo> No output.
00:21:41 <zgrep> Hahah, zkstr. :D
00:22:12 <oerjan> b_jonas: is that meant to be rotated that way
00:22:23 <b_jonas> oerjan: no, I was probably just lazy to unrotate it
00:22:37 <zgrep> oerjan: No, you're just experiencing life sideways.
00:22:43 <zzo38> ZWSTR is something else though, compared with zkstr, I suppose
00:22:55 <b_jonas> oerjan: the actual sign is upright
00:23:07 <zgrep> oerjan: https://xkcd.com/417/
00:23:54 <zzo38> ZWSTR is Z-machine character packing.
00:24:18 <b_jonas> zzo38: oh! it sounded like a macro from <windows.h> related to wide character strings
00:24:22 <oerjan> b_jonas: i take it it's э typoed as з
00:24:26 <b_jonas> oerjan: yes
00:24:31 <b_jonas> oerjan: there's also another typo on the same sign
00:24:57 <boily> `? int
00:24:59 <HackEgo> int? ¯\(°​_o)/¯
00:25:07 <b_jonas> let me unrotate it though
00:25:23 <boily> oerjan: what should be an int?
00:25:39 <hppavilion[1]> I'm on, lambdabot
00:25:45 <hppavilion[1]> Ah, no new messages
00:25:50 <zgrep> boily: A double.
00:25:58 <boily> hppavellon[1].
00:26:01 <boily> zgrellop. eh?
00:26:10 <hppavilion[1]> ahoily
00:27:28 <hppavilion[1]> Emojicode is kind of stupid
00:27:44 <hppavilion[1]> It just treats emoji as a special kind of name, like a noob
00:27:45 <zgrep> boily: That's what should be an int.
00:28:55 <oerjan> <boily> oerjan: what should be an int? <-- i dunno
00:29:24 <boily> zgrep: but a double is fundamentally different from an int! it's just wrong to conflagrate them together.
00:29:26 * boily shudders
00:29:32 <b_jonas> done: rotated, also made smaller
00:31:04 <oerjan> b_jonas: well if there's another typo, i don't know enough of the language to see it.
00:31:05 <zgrep> boily: It's wrong to large and destructive fire them together?
00:32:09 <zgrep> Though I see your point. Perhaps 4. 4 is meant to be an int.
00:32:13 <boily> `` ls wisdom/conf*
00:32:14 <HackEgo> ls: cannot access wisdom/conf*: No such file or directory
00:32:23 <boily> ...?
00:32:31 <boily> `` ls wisdom/con*
00:32:32 <HackEgo> wisdom/conspirabiology \ wisdom/context
00:32:40 <boily> where was it again...
00:32:45 <boily> `? szoup
00:32:46 <HackEgo> A szoup a szilárd tápszereknek híg alakban való elkészítése a célból, hogy könnyebben emészthetők legyenek; a hígító anyag a viz, mely feloldja s magába veszi a tápanyag legértékesebb részeit.
00:33:16 <oerjan> b_jonas: i suspect "secour" might not be correct
00:33:55 <b_jonas> oerjan: yes
00:34:46 <boily> zgrep: found it! ↓
00:34:50 <boily> `? disflagrate
00:34:52 <HackEgo> disflagrate v.t.perf.: a traditional technique from Poland (earliest attestation c. 1042) used to separate szoups. Nowadays, commercial production is entirely mechanized.
00:35:13 <boily> ints and doubles should be disflagrated.
00:35:28 <boily> 4 is an int. fungot is a double.
00:35:28 <fungot> boily: you obviously aren't sufficiently infused with the red ip packets. but that's ok, i won't even be done. thanks, folks,
00:35:58 * zgrep gives boily some extra red IP packets to infuse themselves with
00:36:27 <b_jonas> don't forget the blue screws if anything happens
00:36:39 <b_jonas> `? elephant
00:36:40 <HackEgo> elephant? ¯\(°​_o)/¯
00:36:40 <b_jonas> `? seal
00:36:41 <HackEgo> seal? ¯\(°​_o)/¯
00:36:49 <b_jonas> `? tail
00:36:50 <HackEgo> tail? ¯\(°​_o)/¯
00:36:50 <b_jonas> `? head
00:36:51 <HackEgo> head? ¯\(°​_o)/¯
00:36:52 <zgrep> `? elephant seal
00:36:53 <HackEgo> elephant seal? ¯\(°​_o)/¯
00:37:00 <b_jonas> `? unicorn
00:37:01 <HackEgo> unicorn? ¯\(°​_o)/¯
00:37:03 <b_jonas> `? pony
00:37:04 <HackEgo> pony? ¯\(°​_o)/¯
00:37:07 <b_jonas> oh man
00:37:15 <zgrep> `? ?`
00:37:16 <HackEgo> ​?`? ¯\(°​_o)/¯
00:37:26 <b_jonas> `? bill
00:37:27 <HackEgo> bill? ¯\(°​_o)/¯
00:37:27 <b_jonas> `? coin
00:37:28 <HackEgo> coin? ¯\(°​_o)/¯
00:37:32 <b_jonas> `coin
00:37:33 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: coin: not found
00:37:34 <b_jonas> `coins
00:37:40 <boily> if I ever write or contribute to a roguelike, there'll be a Red Ip Infusion. it'll make you mutate into a fungotlike creature.
00:37:40 <fungot> boily: however, gives me a couple of large mailing lists have you noticed that ordinarily reasonably people these days...
00:37:52 <boily> b_jonas: you should http://codu.org/projects/hackbot/fshg/index.cgi/file/d4b6d8a299e9/wisdom hth
00:38:02 <HackEgo> epipcoin relycoin fronncoin rutcndejxcoin verservocoin alcecoin lazycoin (())coin retercardcoin yabecoin hackicoin vercoin ranslawcoin coropiccoin exisablecoin rocerylovcoin fannahcoin whitethattcoin novicoin pogancoin
00:38:22 <Lymia> ais523, I might try to write my "ultimate solution" for BFJoust again.
00:38:29 <b_jonas> `? pdp endian
00:38:32 <b_jonas> `? endian
00:38:33 <HackEgo> pdp endian? ¯\(°​_o)/¯
00:38:33 <HackEgo> endian? ¯\(°​_o)/¯
00:38:43 <b_jonas> Lymia: good luck for that :-)
00:38:51 <b_jonas> `? bswap
00:38:51 <Lymia> Ultimately, BFJoust programs are deterministic.
00:38:52 <HackEgo> bswap? ¯\(°​_o)/¯
00:38:52 <Lymia> :)
00:39:58 <oerjan> `? php endian
00:39:59 <HackEgo> php endian? ¯\(°​_o)/¯
00:40:24 <zgrep> `? oerjan
00:40:26 <HackEgo> Your famous mysterious evil 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.
00:40:44 <zgrep> Huh.
00:40:45 <zzo38> I intend also making up some roguelike game. Some of my ideas include that the stairs can only go one way, that different kind of character configurations have different high score menus, and that you can switch the display between ASCII and VT100 mode (so that you can use ASCII mode when you want to print or put in a text file or webpage or whatever when VT100 is not supported)
00:40:57 <zzo38> Possibly can be written in JavaScript.
00:41:44 <oerjan> `? submarine
00:41:45 <HackEgo> submarine is the same as suburban... except for bodies of ocean water instead of cities.
00:41:59 <oerjan> `` sed -i 's/s/S/' wisdom/submarine
00:42:02 <HackEgo> No output.
00:42:27 <zzo38> Do you like these ideas? In the original "Rogue" game, the stairs can only go one way (even though the commands for stairs go both ways)
00:42:37 <oerjan> zgrep: you think php endian is overdoing the evil?
00:42:39 <\oren\> haagen dazs has a special limited edition peppermint white chocolate flavor
00:43:02 <boily> zzo38: one way stairs are nice. not sure about what you mean by high score menus?
00:45:06 <oerjan> `culprits wisdom/elendil
00:45:09 <HackEgo> b_jonas b_jonas b_jonas b_jonas
00:45:29 <shachaf> `wisdom
00:45:31 <HackEgo> russell's teapot/Russell's Teapot / Short and stout / Orbits near Mars / Or thereabout. / If you see it / Let us know / If you don't / What does that show?
00:45:44 * oerjan tempted to change `learn etc. to say whether the file was previously existing. except that would be work.
00:46:06 <shachaf> `url bin/learn
00:46:08 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/file/tip/bin/learn
00:46:15 -!- tromp_ has quit (Read error: Connection reset by peer).
00:46:40 -!- tromp_ has joined.
00:46:53 <zzo38> boily: I mean once the game end it calculate the score (based on what dungeon level you reached as well as other things) and then add it to the high score menu in the proper position, but you can add separate high score menu also for different kind of player characters, since they can involve different tactics, special abilities, carrying capacity, and so on
00:47:32 <shachaf> oerjan: All the work is editing through this scow HackEgo interface.
00:47:38 <boily> zzo38: makes sense tdh
00:48:51 <\oren\> shachaf: couldn't you just edit it offline and then make a patchfile?
00:48:59 <shachaf> And then what?
00:49:07 <oerjan> `culprits wisdom/elrond
00:49:10 <HackEgo> prooftechnique prooftechnique
00:49:11 <\oren\> and then use patch
00:49:57 <oerjan> you don't need patch, just `fetch and cp
00:50:38 <shachaf> If you ahve `fetch then you don't need patch.
00:50:43 <shachaf> Does `fetch work?
00:50:46 <oerjan> yes.
00:50:55 <shachaf> Was it broken in the past?
00:51:03 <oerjan> not that i recall
00:51:38 <oerjan> it's wget/curl etc. that are broken because they're inside the sandbox
00:52:40 <shachaf> Ah.
00:53:48 <shachaf> `` echo $'3i\n[ -e "wisdom/$topic" ] && verb="Learned" || verb="Relearned"\n.\n5s/Learned/$verb/\nw\n' | ed bin/learn
00:53:51 <HackEgo> 148 \ 207
00:54:37 <shachaf> oerjan: please test twh
00:54:48 <oerjan> `cat bin/learn
00:54:49 <HackEgo> ​#!/bin/bash \ topic=$(echo "$1" | lowercase | sed 's/^\(an\?\|the\) //;s/s\?[:;,.!?]\? .*//') \ [ -e "wisdom/$topic" ] && verb="Learned" || verb="Relearned" \ echo "$1" >"wisdom/$topic" \ echo "$verb '$topic': $1"
00:55:17 <oerjan> `? test
00:55:18 <HackEgo> test failed. HackEgo-JUnit is not available.
00:55:27 <oerjan> `? testing
00:55:28 <HackEgo> testing? ¯\(°​_o)/¯
00:55:36 <oerjan> `learn Testing is expensive.
00:55:41 <HackEgo> Relearned 'testing': Testing is expensive.
00:55:47 <oerjan> `learn Testing is expensive and overrated.
00:55:47 <shachaf> Oops.
00:55:49 <HackEgo> Learned 'testing': Testing is expensive and overrated.
00:55:53 <shachaf> I guess I mixed them up.
00:55:57 <oerjan> BIT OF A SWITCH
00:56:00 <boily> testing is definitely overrated.
00:58:35 <shachaf> I guess you're waiting for me to fix it.
00:58:54 <oerjan> also wondering how you swap two words with sed
00:59:00 <shachaf> I was also wondering.
00:59:10 <shachaf> I'll just cheat.
00:59:12 <shachaf> `` echo $'3s/Relearned/Learned/\n3s/Learned/Relearned/\nw\n' | ed bin/learn
00:59:14 <HackEgo> 207 \ 207 \ echo "$1" >"wisdom/$topic"
00:59:26 <shachaf> `cat bin/learn
00:59:26 <HackEgo> ​#!/bin/bash \ topic=$(echo "$1" | lowercase | sed 's/^\(an\?\|the\) //;s/s\?[:;,.!?]\? .*//') \ [ -e "wisdom/$topic" ] && verb="Relearned" || verb="Learned" \ echo "$1" >"wisdom/$topic" \ echo "$verb '$topic': $1"
00:59:54 <oerjan> ...how did that work.
01:00:01 <oerjan> oh.
01:00:04 <shachaf> s/// only switches the first occurrence without /g
01:00:33 <oerjan> `learn Testing is expensive, overrated and annoying.
01:00:36 <HackEgo> Relearned 'testing': Testing is expensive, overrated and annoying.
01:00:44 <oerjan> `forget testing
01:00:46 <HackEgo> Forget what?
01:00:54 <oerjan> `learn Testing might eventually succeed.
01:00:57 <HackEgo> Learned 'testing': Testing might eventually succeed.
01:02:03 <shachaf> oerjan: now that wasn't so hard was it
01:02:12 * oerjan presents shachaf with the Delegate of the Month award (in pewter)
01:02:25 <shachaf> oerjan: what, you think this was free?
01:02:27 <shachaf> you owe me one now
01:03:00 <shachaf> What I want is a script that looks at the hg log and tells you what the last file that was modified was.
01:03:34 <oerjan> `` hg --help | paste
01:03:39 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/file/tip/paste/paste.20546
01:04:12 <shachaf> By the way, someone (b_jonas?) figured out a way easier way to do `culprits.
01:04:18 <shachaf> Since you can give hg log a format argument.
01:04:34 <Lymia> hrm.
01:04:40 <oerjan> `` hg log --help | paste
01:04:43 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/file/tip/paste/paste.16400
01:07:03 <ais523> `unidecode -
01:07:04 <HackEgo> ​[U+002D HYPHEN-MINUS]
01:07:11 <ais523> `unicode FIGURE DASH
01:07:12 <HackEgo> ​‒
01:08:55 <oerjan> `` hg log -l 1
01:08:57 <HackEgo> changeset: 7127:4f71d933f13e \ tag: tip \ user: HackBot \ date: Sun Mar 06 01:04:25 2016 +0000 \ summary: <oerjan> ` hg log --help | paste
01:09:16 <shachaf> `` hg log -l 1 --template "{files}\n"
01:09:17 <HackEgo> paste/paste.16400
01:09:22 <shachaf> thx tdh
01:10:02 <oerjan> `mkx bin/lastfiles//hg log -l 1 --template "{files}\n"
01:10:06 <HackEgo> bin/lastfiles
01:10:10 <oerjan> `lastfiles
01:10:13 <HackEgo> bin/lastfiles
01:10:51 <oerjan> `` echo test >a; echo test >b
01:10:54 <HackEgo> No output.
01:10:55 <oerjan> `lastfiles
01:10:57 <HackEgo> a b
01:11:20 <oerjan> `rm a b
01:11:21 <HackEgo> rm: cannot remove `a b': No such file or directory
01:11:24 <oerjan> `` rm a b
01:11:26 <HackEgo> No output.
01:11:35 <oerjan> `culprits a; culprits b
01:11:37 <HackEgo> No output.
01:11:49 <oerjan> wat
01:11:52 <shachaf> oerjan: fool me twice -- you can't get fooled again
01:11:55 <oerjan> `culprits a
01:11:57 <HackEgo> oerjan oerjan oerjan int-e fizzie oerjan elliott blotter guestbot guestbot ThatOtherPerson ThatOtherPerson
01:12:06 <oerjan> oops
01:12:10 <oerjan> `culprits b
01:12:12 <HackEgo> oerjan oerjan oerjan Jafet
01:12:20 <oerjan> darn
01:13:06 <oerjan> ok they weren't already existing
01:16:41 <shachaf> oerjan: ok now write something useful with it
01:16:44 <oerjan> hm i think the repository browser has changed, now it autoloads more commits when i get to the end
01:17:01 <shachaf> like a command that lets you sed or rele/rn the lastfile
01:18:43 <oerjan> >_>
01:18:52 -!- hppavilion[1] has quit (Ping timeout: 244 seconds).
01:21:36 -!- augur has joined.
01:22:08 <Lymia> I should
01:22:24 <Lymia> Integrate a few more clever strategies into Nyuroki
01:22:31 <Lymia> Some optimization can be done.
01:31:16 -!- mad has joined.
01:38:26 <oerjan> `? guard
01:38:27 <HackEgo> The guards are immune to electricity. They're humans in rubber pig suits. They're insulated.
01:38:40 <oerjan> `` sed -i 's/ / /g' wisdom/guard
01:38:42 <HackEgo> No output.
01:47:12 <Lymia> !ztest nyuroki http://paste.lymia.moe/lymia/ee20dff3277b873dc9db288ed94d0a7a234da3c7.bf
01:47:14 <zemhill> Lymia: URL fetch problems: redirection forbidden: http://paste.lymia.moe/lymia/ee20dff3277b873dc9db288ed94d0a7a234da3c7.bf -> https://paste.lymia.moe/lymia/ee20dff3277b873dc9db288ed94d0a7a234da3c7.bf
01:47:21 <Lymia> !ztest nyuroki https://paste.lymia.moe/lymia/ee20dff3277b873dc9db288ed94d0a7a234da3c7.bf
01:47:23 <zemhill> Lymia.nyuroki: points 9.07, score 30.37, rank 6/47 (-3)
01:48:44 <Lymia> !ztest nyuroki https://paste.lymia.moe/lymia/6412212ffb16b73f794dd3618505fc2327197571.bf
01:48:45 <zemhill> Lymia.nyuroki: points 9.07, score 30.37, rank 6/47 (-3)
01:49:04 <Lymia> !ztest nyuroki https://raw.githubusercontent.com/Lymia/JoustExt/master/examples/nyuroki-esoteric.bf
01:49:04 <zemhill> Lymia.nyuroki: points 13.43, score 37.40, rank 3/47 (--)
01:49:54 <Lymia> !ztest nyuroki https://paste.lymia.moe/lymia/5a0374d9319002dc5622e6b104165f08dc6964e2.bf
01:49:55 <zemhill> Lymia.nyuroki: points 13.48, score 37.49, rank 3/47 (--)
01:50:19 <Lymia> !ztest nyuroki https://paste.lymia.moe/lymia/43bd79e53928002bf3d7aab81586842ea19bb80d.bf
01:50:20 <zemhill> Lymia.nyuroki: points 13.45, score 37.30, rank 3/47 (--)
01:51:09 -!- cyyyyyyyyy has joined.
01:51:18 -!- cyyyyyyyyy has left.
01:52:45 <Lymia> !ztest nyuroki https://paste.lymia.moe/lymia/afef3d2374d3eb83d7c2066ede331d7c3c500b9d.bf
01:52:47 <zemhill> Lymia.nyuroki: points 10.50, score 32.55, rank 6/47 (-3)
01:53:19 <mad> oh man
01:53:25 <mad> craziest cpu idea yet
01:54:08 <mad> memory addresses are remaped in chunks of 4k according to a page table
01:54:16 <mad> (this is how a standard mmu works)
01:54:22 <mad> but only for data, not instructions
01:57:40 <Lymia> !ztest nyuroki https://paste.lymia.moe/lymia/d1bb3b65edb4bbbc3853214c80ed371b7eb0a039.bf
01:57:43 <zemhill> Lymia.nyuroki: points 13.36, score 37.16, rank 3/47 (--)
01:58:13 <Lymia> !ztest nyuroki https://paste.lymia.moe/lymia/fa117cd7cf6ea372d1b3b3ef49417ae9803a6c1c.bf
01:58:15 <zemhill> Lymia.nyuroki: points 12.86, score 36.50, rank 3/47 (--)
01:58:52 <Lymia> bleh
01:58:55 <Lymia> going to PM
02:00:18 -!- AlexR42 has joined.
02:04:43 -!- augur has quit (Remote host closed the connection).
02:10:26 <Lymia> Apparently a lot of people abused the size of my wiggle clear.
02:10:30 <Lymia> Er, offset clear*
02:12:08 -!- hppavilion[1] has joined.
02:12:48 <prooftechnique> mad: And what does that get you?
02:13:25 -!- PinealGlandOptic has joined.
02:22:48 <mad> it takes one less TLB on the chip... I guess
02:40:42 <ais523> Lymia: programs tend to special-case against good programs accidentally
02:40:47 <ais523> as people experiment with values to see what happens
02:41:01 <ais523> you beat the worse programs anyway, so the constants tend to match up well against the better ones
02:54:35 -!- Phantom_Hoover has joined.
02:58:32 -!- idris-bot has quit (Quit: Terminated).
02:58:52 -!- idris-bot has joined.
03:02:28 <boily> @metar CYQB
03:02:29 <lambdabot> CYQB 060200Z 17004KT 15SM SCT054 M09/M16 A3018 RMK SC3 SLP228
03:04:08 <shachaf> `le//rn te/st//Directories are expensive.
03:04:11 <HackEgo> Learned «te/st»
03:04:18 <shachaf> `lastfiles
03:04:20 <HackEgo> wisdom/te/st
03:04:26 <shachaf> whoa whoa whoa
03:04:35 <shachaf> I was thinking that wouldn't work as intended.
03:04:50 <shachaf> `` rm wisdom/te/st; rmdir wisdom/te
03:04:52 <HackEgo> No output.
03:04:58 <shachaf> oerjan thinks of everything
03:05:44 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
03:05:57 <Lymia> !zhill nyuroki https://raw.githubusercontent.com/Lymia/JoustExt/master/examples/nyuroki-esoteric.bf
03:06:02 <boily> @metar CYQB
03:06:03 <lambdabot> CYQB 060200Z 17004KT 15SM SCT054 M09/M16 A3018 RMK SC3 SLP228
03:06:13 <boily> argh. I want my new metar!
03:06:31 <boily> meanwhile, just done playing my first game of Ashes. quite a good game!
03:06:40 <Lymia> !zjoust nyuroki https://raw.githubusercontent.com/Lymia/JoustExt/master/examples/nyuroki-esoteric.bf
03:06:40 <zemhill> Lymia.nyuroki: points 18.79, score 49.46, rank 2/47 (+1)
03:08:06 -!- Alejandro15 has joined.
03:08:44 <boily> Alejandro15: buenas tardes.
03:08:56 <boily> @metar CYQB
03:08:56 <lambdabot> CYQB 060300Z 18003KT 15SM BKN048 M08/M16 A3017 RMK SC7 SLP225
03:09:17 <oerjan> <shachaf> oerjan thinks of everything <-- well, there's an obvious weakness remaining.
03:09:44 <shachaf> Which weakness?
03:09:57 -!- hppavilion[1] has quit (Ping timeout: 244 seconds).
03:10:18 <Alejandro15> como esta boily
03:10:40 <oerjan> you cannot distinguish a commit that creates several files from one that creates a file with spaces in its name
03:11:10 <shachaf> Oh, it's space-separated.
03:11:15 <shachaf> The newline terminates commits.
03:11:27 <oerjan> *edits
03:11:28 <shachaf> `bienvenido Alejandro15
03:11:30 <HackEgo> Alejandro15: ¡Bienvenido al centro internacional para el diseño y despliegue de lenguajes de programación esotéricos! Por desgracia, la mayoría de nosotros no hablamos español. Para obtener más información, echa un vistazo a nuestro wiki: http://esolangs.org/. (Para el otro tipo de esoterismo, prueba #esoteric en EFnet o DALnet.)
03:12:35 <boily> Alejandro15: un poco cansado... ¿y tu?
03:12:50 <Lymia> !bfjoust nyuroki https://raw.githubusercontent.com/Lymia/JoustExt/master/examples/nyuroki-esoteric.bf
03:12:53 <EgoBot> ​Score for Lymia_nyuroki: 6.4
03:12:55 <Lymia> Is that bot still alive
03:12:56 <ais523> congrats Lymia, just saw you move up to #2
03:13:02 <Alejandro15> bien
03:13:07 <Lymia> ... wut
03:13:10 <boily> Alejandro15: ¿eres de venezuela?
03:13:30 <Lymia> uuh
03:13:42 <Lymia> !bfjoust nyuroki http://raw.githubusercontent.com/Lymia/JoustExt/master/examples/nyuroki-esoteric.bf
03:13:45 <EgoBot> ​Score for Lymia_nyuroki: 6.3
03:13:50 <Lymia> halp
03:14:24 <oerjan> Lymia: what's the problem? EgoBot's unhalpful output?
03:14:29 <ais523> Lymia: hmm, the report is contradicting the breakdown
03:14:32 <Alejandro15> si
03:14:34 <oerjan> !help bfjoust
03:14:34 <EgoBot> ​Sorry, I have no help for bfjoust!
03:14:43 <Lymia> egobot thinks my program is -
03:14:48 <oerjan> !bfjoust
03:14:48 <EgoBot> ​Use: !bfjoust <program name> <program> . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/
03:14:50 <ais523> or, hmm, perhaps not
03:14:53 <ais523> probably a parse error
03:14:56 <Lymia> !bfjoust nyuroki http://pastebin.com/raw/b0MEJFpT
03:14:59 <EgoBot> ​Score for Lymia_nyuroki: 52.6
03:15:02 <Lymia> There we go
03:15:04 <ais523> Lymia: aha, it must have parsed the hyphen in the URL
03:15:13 <ais523> congrats on #1 :-)
03:15:26 <boily> Alejandro15: discúlpeme, no sé hablar español muy bien... mi lengua materna es el francés.
03:15:46 -!- Alejandro15 has left.
03:15:54 <Lymia> Isn't that hill fish in a barrel :p
03:15:55 <boily> beuh...
03:16:01 <boily> oerjan: at least, he spoke!
03:16:31 <ais523> did you change the strategy significantly? or did you just tweak numbers?
03:17:03 <oerjan> boily: good show
03:17:22 <ais523> I guess if it was a large change you'd probably change the name
03:17:32 <Lymia> Mostly tweaked numbers.
03:17:36 <ais523> margins3 is similar to margins, but it's also different in a lot of major ways (e.g. it does a fast rush on short tapes)
03:17:40 <Lymia> It also leaves a trail always now, not only on cells it cleared
03:18:06 <Lymia> By "tweaked numbers", I mean "tweaked a single number".
03:18:47 <boily> oerjan: just you wait. he'll be back. (probably against his own volition; I wouldn't be surprised there's a default autojoin list for his client)
03:19:29 <Lymia> I might try a defense program next, maybe?
03:19:55 <ais523> it'll be hard, but perhaps possible
03:20:07 <ais523> one of the codepaths in margins3 runs purely against defence programs
03:20:20 <ais523> and it was hard to beat them all even though I knew for a fact the opponent was defence and/or very slow
03:20:44 -!- augur has joined.
03:20:44 <ais523> there's a bit of the code that runs only if the opponent is actively adjusting the current cell, and winning in all situations from there is painful
03:21:10 <ais523> in the end I did the same thing as in preparation except 3- rather than 2-cycle, it works quite well
03:21:25 <shachaf> whoa whoa whoa, in Chu spaces you have points : 1 -> A and copoints : A -> _|_
03:21:28 <shachaf> That's so reasonable.
03:21:29 <Lymia> How's that bit of code work anyway?
03:22:00 <Lymia> In Nyuroki, anything complex I tried worked worse than the dead simple thing I do.
03:22:04 -!- lynn has quit (Ping timeout: 260 seconds).
03:22:23 <ais523> Lymia: which bit of the code? defence detection? defence clear?
03:22:39 <Lymia> Clearing versus something that's actively changing its flag.
03:22:57 <ais523> oh, I just set the cell I'm on to all 256 possible values
03:23:05 <ais523> if it doesn't hit zero there are shenanigans going on
03:23:32 <\oren\> AUGH
03:23:53 <\oren\> I pitched up too much and accidentally flew into space
03:24:19 <boily> \oren\: KSP?
03:24:40 <Lymia> ais523, I mean the code you called "golden ratio based clear"
03:24:48 <\oren\> yes
03:24:56 <Lymia> I definitely don't understand what it's doing.
03:25:12 <ais523> it's basically a normal clear loop but it changes polarity and/or direction every n cycles, where n is the length of time it naturally takes to clear a cell times the golden ratio
03:25:50 <ais523> this means that if the opponent is locking without changing the cell's value over time, I'm guaranteed to hit the pessimal value for the opposition eventually (as I try every polarity and position modulo the clear loop interval)
03:26:21 <ais523> and if the opponent is changing the value over time, I hit the pessimal starting value for the opposition eventually via starting at a different value each time
03:26:26 <ais523> in theory, at least
03:26:28 <Lymia> How do you lock and change the value over time?
03:26:45 <Lymia> I can't think of a smart way to achieve that.
03:27:09 <ais523> well, one simple lock algorithm is ((+)*128(.)*128)*-1
03:27:16 <ais523> that'll lock many sorts of two-cycle clear
03:27:24 <ais523> but it changes the value by +128 every 256 cycles
03:27:39 <Lymia> Presumably something like +((+)*128(.)*128)*-1?
03:27:55 <Lymia> I'd be worried about that bit of parity
03:28:07 <Lymia> Where there's some "starting values" where you kill yourself.
03:28:28 <ais523> oh, yes, you can't do that by itself
03:28:35 <ais523> only once you know the opponent is there, or if you adjust the flag first
03:28:43 <ais523> this is, assuming you're locking the flag
03:28:47 <ais523> there are two ways you can do locks
03:28:54 <ais523> on the flag, which has the advantage that the opponent might fall off
03:29:16 <ais523> or in front of the flag, which has the disadvantage that the opponent might fall through, but the advantage that if the cell's zeroed for two cycles (and the opponent doesn't spot it) you don't lose
03:29:51 <Lymia> Everything "smart" I tried for Nyuroki worked worse than the "brain dead" thing I do now.
03:29:59 -!- boily has quit (Quit: EVOCATIVE CHICKEN).
03:30:24 <Lymia> I check a cell twice before moving on to the next one, so I don't get bitten by something like (+)*127(-+)*-1
03:30:58 <Lymia> Then, in the actual clear loop, I do a 2-cycle clear for 1000 cycles, and if that fails, move on to a 5-cycle clear. If that fails, I just assume I'm not on the flag because apparently that works better.
03:32:47 <ais523> I tried something like that for margins3 first
03:32:59 <ais523> it sort-of worked but I could never get a clean sweep against defence programs
03:33:14 <ais523> there was always one that seemed to hold out (not necessarily the same one, although shudderlock was a big offender)
03:33:32 <Lymia> I never paid much attention to which programs did what. ^.^
03:33:36 <Lymia> But I guess I should look that up sometime.
03:33:41 -!- Alejandro15 has joined.
03:34:59 <Lymia> Maybe I should try to integrate that golden ratio clear myself sometime.
03:35:17 <ais523> it takes a lot of space in the program
03:35:33 <ais523> and I'm not even 100% sure it works mathematically, although it seems to work in practice
03:35:37 -!- Alejandro15 has left.
03:35:57 <Lymia> My first instinct is to do something with prime numbers personally
03:36:28 <ais523> well, 256 is coprime with everything that isn't a power of 2
03:37:20 <Lymia> My intuition was that if a clear cycle and a defense cycle had coprime lengths, you get every "alignment" between them eventually.
03:38:13 <Lymia> So, say, if there's an +- in a defense loop, and -+ in an clear loop with a length coprime to it, both would eventually execute at the same time. And they'd die.
03:38:41 <ais523> there are some defence loops that work against any integer-sized clear, with an appropriate alignment
03:38:58 <ais523> (+)*256(.)*256, for example, will lock [(.)*x+] for any x
03:39:08 -!- Alejandro15 has joined.
03:39:23 <Lymia> Even clears like, say, [-.-+]?
03:39:29 <ais523> err, that's less than 128, I think
03:40:40 <ais523> I think that won't be locked on the flag (it can get two zeroes), but will be locked elsewhere (the locking program can't detect two zeroes), so long as the cycles line up correctly
03:40:48 -!- Alejandro15 has left.
03:41:36 <Lymia> Right. So it'll work assuming you're actually on the flag. (and only then, unfortunately)
03:41:59 <ais523> this is the hardest part of attacking into defence programs
03:42:04 <Lymia> And if the defense loop doesn't have a factor of 5, I suppose.
03:42:06 <ais523> and is someting that margins exploits
03:42:23 <ais523> it uses a defence pattern that makes it impossible for the opponents to observe two zeroes in a row
03:42:35 <ais523> so eventually they have to take a leap of faith and move on
03:42:46 <ais523> at which point it shudders the flag in the hope that the opponent will do it again
03:43:13 -!- hppavilion[1] has joined.
03:46:42 -!- Alejandro15 has joined.
03:47:30 -!- Alejandro15 has left.
03:48:05 -!- lleu has quit (Read error: Connection reset by peer).
03:48:52 <Lymia> I had the idea that you could have a clear loop like [-.+.--++-++-] (length 13)
03:48:52 <Lymia> Since it does every possible 2 instruction sequence of cell changes, it should be able to clear (on the flag) any defense program with a coprime defense loop length.
03:48:52 <Lymia> But I'm not sure how practical it'd actuall be
03:48:53 <Lymia> actually*
03:48:54 <Lymia> ... being able to make it impossible to observe two zeros in a row is actually pretty nasty.
03:49:43 <Lymia> It means there's ultimately no safe option to attack.
03:50:09 <ais523> right
03:50:16 <ais523> however the downside for margins is that it also means that it can't attack itself
03:50:24 <ais523> it's devoting every cycle to merely drawing
03:51:00 <Lymia> Hrm.
03:51:04 <Lymia> I'd like to see an alternative hill
03:51:15 <Lymia> That counts a draw as both programs losing, maybe?
03:51:18 <Lymia> Does zim do that?
03:51:24 <Lymia> zem*
03:52:00 <ais523> egojoust is much more draw-hostile than zemhill
03:52:22 <ais523> I like draws not being penalised much, though, because it makes programs like margins (which aim to win short tapes and draw long ones) possible
03:52:42 <ais523> really, the tradeoffs margins needs to make just to aim for its draw means that its strategy isn't broken
03:52:54 <ais523> the fact that it's doing well is mostly a symptom of opponents not caring about short tapes
03:53:03 <ais523> which has been a trend in the BF Joust metagame for ages now
03:53:32 <Lymia> They don't?
03:53:32 <ais523> (most of your games will be on long tapes so those make sense to focus on)
03:53:45 <Lymia> I guess that also makes sense to explain why Nyuroki does well
03:54:02 <ais523> preparation sets ten decoys
03:54:07 <ais523> so it autoloses on tape length 10
03:54:10 <Lymia> If it sees any non-zero cell while setting decoys, it immediately jumps to the main clear.
03:54:38 <Lymia> Which, well.
03:54:47 <ais523> ooh, interesting
03:54:55 <ais523> I'm not sure I can think of a program that does that, but it makes a lot of sense
03:55:03 <Lymia> If it's a short tape, and the opponent is setting decoys, you've probably just bypassed their decoys.
03:55:08 <Lymia> And are on their flag while they're setting decoys.
03:55:11 <Lymia> Not a good look for them.
03:55:30 <ais523> do you set decoys forwards or backwards?
03:55:48 <Lymia> Backwards.
03:56:14 <ais523> so if the opponent's decoy setup is inside yours, you notice
03:56:16 <ais523> that's clever
03:57:59 <mad> ais523 : the other day you were asking for alternative cpu designs?
03:58:23 <mad> I have such a design : an out-of-order VLIW
03:58:39 <ais523> hmm
03:58:51 <ais523> is that just redundant, or does it have some advantage?
03:59:04 <mad> basically the front end is a VLIW where you fetch a whole instrction cache line every cycle
03:59:26 <mad> and "execute" it in one go
04:00:15 <mad> but the "execution" in one go is only the register renaming and scheduling to make the calculations runnable out-of-order
04:00:34 -!- oerjan has quit (Quit: Nite).
04:00:41 <ais523> ooh, I just noticed some old code that never runs got into margins3
04:00:43 <Lymia> ais523, right. Is that new(ish?)?
04:00:44 <mad> once the calculations are done, then the retirment is also 1 large op per cycle
04:00:57 <mad> the op format is weird:
04:01:06 <Lymia> I thought checking before planting decoys was something others have done before.
04:01:35 <mad> each VLIW bundle takes up 16 bytes and has 8 micro-ops in it
04:01:41 <ais523> Lymia: that's today's winner
04:02:17 <Lymia> I've also got a shameless piece of metagaming
04:02:22 <ais523> !bfjoust margins3 http://nethack4.org/esolangs/margins3.bfjoust
04:02:27 <EgoBot> ​Score for ais523_margins3: 24.2
04:02:30 <ais523> !zjoust margins3 http://nethack4.org/esolangs/margins3.bfjoust
04:02:32 <zemhill> ais523.margins3: points 10.88, score 52.78, rank 1/47 (--)
04:02:38 <Lymia> Since pretty much everything sets decoys, I skip straight to cell 14 if I don't see any decoys
04:02:43 <mad> micro-ops consist of stuff like: mov register/immediate into accumulator, add/sub/and/or/xor/shr/shl/sar accumulator value by register/immediate, store accumulator in register
04:02:49 <Lymia> What I mean is, is it new to check for decoys before planting your own?
04:03:08 <mad> so an instruction is something like:
04:04:22 <ais523> all I did was deleted the dead code to clean up the "published" version a bit
04:04:26 <ais523> Lymia: inside your own decoy setup, I think so
04:04:34 <ais523> there are programs that check for enemy clears inside their own setup
04:04:35 <shachaf> Hmm, http://chu.stanford.edu/PrattSRMK2016.pdf (slide 12) shows a way to present adjointness as associativity. Is there anywhere else that comes up? Maybe in the context of regular adjunctions?
04:04:41 <ais523> but not that check for enemy decoys, intentionally at least
04:04:46 <Lymia> I see
04:04:52 <mad> ld ac, r1; sub ac, r0; mul ac, r2; sar ac, 16; add ac, r0; store r1, ac
04:04:59 <mad> that's 1 opcode
04:05:21 <ais523> dependency analysis on ac is going to be a nightmare, surely?
04:05:23 <mad> it takes 4+ cycles to execute (due to the dependencies)
04:05:29 <Lymia> If you have too many operations in one bundle, to where most programs can't use them all
04:05:40 <ais523> I'm asuming the OOE thing resolves it, but it's going to be a lot of work
04:05:48 <mad> yes this HAS to be OOE
04:05:52 <Lymia> Wouldn't that stress the code cache?
04:05:55 <mad> but there's a trick
04:05:58 <Lymia> hrm
04:06:16 <Lymia> What's the benefit over a non-VLIW instruction set that does OOE.
04:06:26 <mad> basically each instruction is loaded into an execution unit and the execution unit has its own accumulator and runs the operations one by one
04:06:39 <mad> so actually it doesn't have to rename the accumulator
04:07:02 <mad> the next instruction is forced to wipe out the accumulator in its first instruction so there can be no dependency
04:08:31 <Lymia> ais523, that might explain the #1 then. I didn't realize checking for enemy decoys (a proxy indicator of being on a short tape) was anything that hadn't be done before.
04:08:53 <mad> instruction format limits the number of register stores per instruction so that it the target registers can be renamed in 1 cycle
04:09:01 <ais523> and I didn't realise you were doing it, presumably because you assumed it was nothing special
04:09:31 <mad> basically it's like if you had an OOO cpu but when instructions go into an ALU they execute a whole bunch of stuff sequentially in that ALU
04:09:55 <mad> and on the final microop the accumulator value of that ALU is stored back to the register file
04:10:07 <mad> or sent to the memory store queue
04:10:55 <mad> the reason it's organized this way is that this reduces the number of write and read ports on your register files a lot
04:11:49 <mad> instead of needing a register rename and writeback on each value add/shift/etc in a chain of computation, you only have one rename and one writeback at the end of the chain
04:12:57 <Lymia> It's also why I started with short decoys instead of vice versa
04:13:45 <mad> ld ac, r1; sub ac, r0; mul ac, r2; sar ac, 16; add ac, r0; store r1, ac reads 4 times from the register file and writes 1 time only; the equivalent RISC sequence does 7 reads and 4 writes
04:14:10 -!- augur has quit (Remote host closed the connection).
04:14:44 <mad> once you start a chain of computation, then you also need much less ressources to calculate the inter instruction dependencies
04:15:06 <mad> instead you just execute 1 instruction per cycle on every dependency chain
04:15:19 <mad> and the instruction format separates the dependency chains for you
04:15:33 <Lymia> If only I knew a HDL
04:15:43 <mad> I'm learning verilog
04:16:00 <mad> mostly because it's kinda like c++ :D
04:16:08 <mad> instead of being... strange like VHDL
04:16:53 <mad> another way of putting it is
04:17:02 <mad> take a RISC, but add an accumulator
04:17:25 <mad> every instruction writes the result to both the accumulator, and optionally another register as well
04:17:33 <ais523> Verilog's more like a scripting language, really
04:17:39 <Lymia> ais523, maybe I should it into the wiki page?
04:17:50 <mad> you can easily find the dependency chains in the instruction stream:
04:18:01 <ais523> Lymia: good idea; you're not editing the 2015/2016 sections (which I'm editing atm) so there shouldn't be a conflict
04:18:11 <ais523> although make sure you use a section edit rather than editing the whole page
04:18:12 <mad> every time you see an instruction that DOESN't have the accumulator in its input, it's the start of the chain
04:18:46 <mad> so the instruction stream becomes
04:19:25 <mad> [startofchain modifyaccum modifyaccum modifyaccum modifyaccumandwritebacktosomeregister startofchain modifyaccum modifyaccumandwritebacktosomeregister]
04:19:55 <mad> you can issue both "startofchain" instructions at the same time
04:19:57 <Lymia> I'm not sure if it should count as defense or attack.
04:20:16 <Lymia> The 'effect' is to detect short tapes when you have decoys
04:20:25 <mad> and then let the 2 concerned units run the other instructions in the chain one after another until the writeback instruction at the end
04:21:15 <ais523> Lymia: it's synchronization
04:21:18 <mad> the cost is that every input register other than the accumulator must be renamed first before any instruction downstream can run
04:21:35 <mad> from then on, register renaming is sufficient to solve all your dependencies
04:21:35 <ais523> it's a method of figuring what the opponent is doing, but doesn't do anything to prevent it in its own right
04:21:43 <ais523> it just allows you to come up with a better strategy
04:21:53 <mad> hence it's an OOO-VLIW
04:21:55 <ais523> to counter the opponent's technique
04:22:09 <mad> VLIW because you issue a whole bunch of stuff to do together in one go
04:22:15 <Lymia> The way I used it in nyuroki, I'm not quite countering the opponent's technique at all.
04:22:38 <mad> OOO because the individual sub components are reordered and all registers are renamed
04:22:38 <Lymia> Rather, I'm taking advantage of the opponent's behavior to detect short tapes.
04:23:38 <mad> basically it's trying to have the benefits of OOO-RISC (flexible execution order, can execute past a data cache miss) without the downsides (too many register writes and renames every cycle)
04:24:30 <ais523> Lymia: err, right
04:25:02 <ais523> I guess this is similar to the way growth2 often figures out the exact length of the tape via observing the opponent's clear pattern and guessing rule of nine
04:25:18 <ais523> it's kind-of scary seeing it rush right to the opponent's flag, ignoring all decoys, and clearing it
04:25:29 <ais523> I suppose that's synchronization too
04:25:35 <ais523> or maybe we should rename the section
04:25:39 <ais523> "intelligence", perhaps
04:25:52 <Lymia> "Infer information from the opponent's behavior"?
04:26:37 <ais523> should be a single word really, if we're talking about the section that currently discusses tripwires
04:27:39 <Lymia> The article says "At times you may want to use some behavior that depends on you being in lockstep with your opponent, like the "Lock" strategy above. The way to do this is generally with tripwires:" to explain the section right now.
04:28:09 <ais523> yes, we should probably generalize it
04:28:09 <Lymia> What'd cover behavior like assuming rule of nine, or decoys behind yours as well as synchronization?
04:28:11 <ais523> given how short it is
04:28:28 <ais523> perhaps "reconnaisance"
04:28:46 <ais523> assuming I've spelled that correctly
04:29:09 <Lymia> I feel like Synchronization might still work as its own section. It's pretty specific, instead of "branching" to different strategies, so to speak.
04:29:29 <ais523> well, there are quite a lot of programs that branch based on tripwires
04:29:35 <Lymia> And breadcrumb decoys is in "defense", which is similar in concept.
04:29:56 <ais523> most poke programs have some sort of fast rush detection nowadays
04:30:10 <ais523> (otherwise fast rush would do a lot better than it currently does!)
04:34:28 -!- ais523 has quit (Read error: Connection reset by peer).
04:37:39 <Lymia> rip ais
04:42:13 -!- treaki__ has joined.
04:44:19 -!- tromp_ has quit (Ping timeout: 260 seconds).
04:44:24 <HackEgo> [wiki] [[Special:Log/newusers]] create * Lymia * New user account
04:45:47 -!- ais523 has joined.
04:46:04 -!- treaki_ has quit (Ping timeout: 260 seconds).
04:46:11 -!- ais523 has quit (Client Quit).
04:46:18 <Lymia> rip ais x2
04:46:21 -!- ais523 has joined.
04:46:29 <Lymia> Hopefully no rip ais x3
04:46:35 -!- tromp_ has joined.
04:46:49 <HackEgo> [wiki] [[BF Joust strategies]] https://esolangs.org/w/index.php?diff=46497&oldid=43127 * Ais523 * (+7937) /* 2016 */ new section :-)
04:46:54 <shachaf> Lymia: it'll happen 521 more times hth
04:47:01 <Lymia> :(
04:47:25 <ais523> anyway, that's how margins3 works
04:47:30 -!- augur has joined.
04:47:38 <ais523> looks like I wrote quite a lot about it
04:47:43 <ais523> even though it's conceptually not that complex
04:48:14 <shachaf> So natural transformations are homotopies : C x 2 -> D
04:48:26 <shachaf> How come no one uses that definition or even talks about it?
04:51:43 -!- augur has quit (Ping timeout: 244 seconds).
04:54:41 <HackEgo> [wiki] [[Language list]] M https://esolangs.org/w/index.php?diff=46498&oldid=46486 * Luis Mendo * (+11) Added link to MATL
04:59:30 <Lymia> ... hrm. I wonder if ].] would be useful against something like margin's lock?
05:03:52 <Lymia> ais523, oh, I see.
05:04:02 <zzo38> On some TV/VCR/DVD?whatever you cannot use the numbers for anything other than the channel and track number you cannot select from menu or time or whatever, but I can suggest a much better way. Numbers by itself means nothing but most commands can accept numeric prefixes (if you use vi then you can know it is similar) and some commands can accept numeric suffixes for variant of the command too.
05:04:18 <Lymia> So the problem margin has with nyuroki is that it leaves a size 1 trail, screwing up the tripwire, right?
05:04:22 <Lymia> Isn't that common behavior too?
05:04:25 <zzo38> For example if you want to record for thirty minutes and then stop you can push 3 0 REC or you can push REC 3 0 DELAY STOP and either way would work.
05:04:56 <zzo38> (If you push REC by itself then it won't stop until you push STOP or if the tape runs out)
05:05:30 <ais523> Lymia: so most programs work on the assumption that the opponent is already at their first few decoys, due to rushing and/or poking
05:05:40 <ais523> as such, a trail wouldn't help and just slows you down
05:05:46 <Lymia> ah
05:05:49 <ais523> although I've found that even a small trail can be surprisingly helpful sometimes
05:06:03 <Lymia> I have it just because it was easier to code that way
05:06:32 <Lymia> Are you working on the strategies page?
05:06:53 <ais523> hmm, this channel likes stupid M:tG combos, right? someone created a deck that requires on the order of (2 tetrate 42) turns to win goldfishing
05:06:57 <ais523> Lymia: I've already updated it
05:07:01 <ais523> with margins3
05:07:06 -!- PinealGlandOptic has quit (Quit: leaving).
05:07:09 <zzo38> ais523: What cards is it?
05:07:10 <ais523> I'm not working on the individual strategies section right now
05:07:16 <Lymia> kk
05:07:16 <ais523> zzo38: https://www.reddit.com/r/magicTCG/comments/494kqq/how_can_we_make_the_slowest_deck_possible_or_how/d0ozihf
05:09:03 <zzo38> OK
05:09:59 <Lymia> Maybe it'd be best to be conservative and start a new "Recon" section?
05:10:24 <Lymia> Or toss it in with Attack unless you can think of a reason why a defensive program would do the reverse checking thing.
05:12:01 <Lymia> hrm
05:12:25 <Lymia> It occurs to me that it's closely related to breadcrumb decoys though.
05:14:59 <Lymia> Let's see if it's even useful.
05:17:41 <ais523> Lymia: defensive programs often set more decoys than aggressive programs and /really/ want to avoid decoy clashes
05:18:01 <ais523> e.g. most of waterfall3's losses at the time it was created were decoy clashes
05:18:28 <ais523> although, defensive programs often detect decoy clashes via tripwire disturbance rather than via unexpectedly nonzero cells
05:18:49 <Lymia> I'm going to see if switching nyuroki to use tripwires helps or hurts
05:36:49 <Lymia> Yeah.
05:36:53 <Lymia> Nyuroki with tripwires works OK.
05:36:56 <Lymia> Not well, but.
05:38:39 <Lymia> Probably mostly because I don't actually have routines specialized for fast rushes/pokes
05:41:09 <Lymia> ais523, what about a section like "Decision Making"? "Techniques to determine information about the opponent, or the tape, and use that information to your advantage."
05:41:26 <Lymia> hrm.
05:41:28 <Lymia> Or, rather.
05:41:46 -!- augur has joined.
05:41:48 <Lymia> "Techniques to determine information about the opponent, or the tape, which can be used to your advantage by changing strategies depending on this information."
05:42:54 <zzo38> Magic: the Gathering has some keyword abilities dealing with +1/+1 counters; I think cards can be made up that combine them (such as: evolve + undying, unleash + tribute, megamorph + undying, sunburst + graft, etc)
05:46:28 -!- augur has quit (Ping timeout: 252 seconds).
05:55:28 -!- AlexR42 has quit (Quit: My Mac has gone to sleep. ZZZzzz…).
05:58:19 <Lymia> I wonder what BFJoust would look like if [] took 0 cycles.
06:13:11 <zzo38> Another kind of variant of BF Joust would be that . writes into opponent's input queue and , reads and removes the first byte of your own input queue, or if your input queue is empty it acts like + but is not affected by reversing polarity.
06:15:02 <zzo38> There are also other possibilities for what happen if your own input queue is empty, for example it acts like . instead in such a case
06:26:57 <ais523> Lymia: triplocks everywhere, most likely unbeatable ones; one-cycle clears meaning that decoys wouldn't gain you anything if cleared in the right direction
06:29:39 <ais523> although, actually, the clears would be fast enough to beat the triplocks
06:37:30 -!- XorSwap has joined.
06:48:52 <zzo38> A television set could be made including "Famicom mode", where it assumes the input is the output of Famicom PPU and uses that to index into a (possibly user-defined) palette, so it converts NTSC into indexed colours
07:08:43 -!- lambda-11235 has quit (Quit: Bye).
07:12:07 <pikhq> It could probably also autodetect that it was getting Famicom PPU output.
07:12:20 <pikhq> The PPU output really weird NTSC.
07:12:28 <pikhq> Among other things its color burst was a square wave.
07:14:41 -!- augur has joined.
07:15:04 -!- augur has quit (Remote host closed the connection).
07:18:26 -!- augur has joined.
07:19:44 -!- augur has quit (Remote host closed the connection).
07:30:58 -!- XorSwap has quit (Ping timeout: 252 seconds).
07:36:01 -!- bender| has joined.
07:36:20 -!- bender| has quit (Changing host).
07:36:20 -!- bender| has joined.
07:37:59 -!- tromp has quit (Remote host closed the connection).
07:45:38 -!- ais523 has quit.
08:38:31 -!- tromp has joined.
08:42:49 -!- tromp has quit (Ping timeout: 240 seconds).
08:50:02 -!- AnotherTest has joined.
09:17:41 -!- Phantom_Hoover has joined.
09:48:39 -!- ais523 has joined.
09:55:04 -!- ais523 has quit (Ping timeout: 252 seconds).
09:58:05 -!- ais523 has joined.
10:03:18 -!- jaboja has joined.
10:03:19 -!- Phantom_Hoover has quit (Ping timeout: 268 seconds).
10:11:57 -!- J_Arcane has quit (Ping timeout: 268 seconds).
10:14:42 -!- Phantom_Hoover has joined.
10:35:19 -!- hppavilion[1] has quit (Ping timeout: 244 seconds).
10:39:18 -!- tromp has joined.
10:43:33 -!- tromp has quit (Ping timeout: 244 seconds).
10:46:18 -!- jaboja has quit (Read error: Connection timed out).
10:46:54 -!- jaboja has joined.
10:47:48 -!- rdococ has joined.
11:26:30 -!- AlexR42 has joined.
11:29:30 -!- ais523 has quit.
11:32:51 -!- vodkode has joined.
11:40:10 -!- tromp has joined.
11:40:14 -!- zadock has joined.
11:44:33 -!- tromp has quit (Ping timeout: 240 seconds).
11:47:26 -!- jaboja has quit (Ping timeout: 250 seconds).
11:55:55 -!- AlexR42 has quit (Quit: My Mac has gone to sleep. ZZZzzz…).
12:04:54 -!- Reece` has joined.
12:25:09 -!- feliks has quit (Ping timeout: 268 seconds).
12:27:36 -!- earendel has quit (Ping timeout: 246 seconds).
12:32:51 -!- earendel has joined.
12:36:50 <b_jonas> “<shachaf> By the way, someone (b_jonas?) figured out a way easier way to do `culprits.” => yes, but I haven't finished the implementation yet, because I also want to write a new version of noping
12:36:57 <b_jonas> you can see the current state at, I think,
12:37:02 <b_jonas> ``` cat bin/culprits-ng
12:37:21 <HackEgo> ​#!/bin/sh \ exec hg log -l 512 --template "{desc}\0" -- "$@" | perl -0ne '/^<([^>]*)>/ and print"$1 "'
12:39:35 <b_jonas> The original implementation of culprits is the typical abomination of the kind I hate, like the unix scripts that try to grep and imperfectly parse ps's output without passing switches to ps that already make that much easier
12:40:57 <shachaf> b_jonas: I'm sure you're a fan of nitia.
12:42:36 <b_jonas> what's nitia?
12:42:38 <int-e> without nitia, we would not exist
12:42:45 <b_jonas> `? nitia
12:42:47 <HackEgo> nitia is the inventor of all things. The BBC invented her.
12:43:05 <Riviera> exec for the part of a pipe seems silly
12:43:14 <b_jonas> `? tanebventions
12:43:15 <HackEgo> Tanebventions include D-modules, Chu spaces, automatic squirrel feeders, the torus, Stephen Wolfram, Go, submarine jousting, the universe, weetoflakes, persistence, the reals, Lambek's lemma, robots, progress, and this sentence. He never invents anything involving sex.
12:43:30 <int-e> `culprits bin/wisdom
12:43:31 <HackEgo> oerjan oerjan oerjan oerjan oerjan oerjan shachaf shachaf tswett tswett shachaf shachaf shachaf shachaf
12:43:40 <shachaf> `culprits bin/addquote
12:43:41 <int-e> `culprits bin/quote
12:43:54 <HackEgo> tswett tswett Gregor shachaf shachaf shachaf elliott elliott nitia
12:43:57 <HackEgo> tswett tswett oerjan elliott ais523 ais523 elliott FreeFull oerjan FreeFull fizzie shachaf shachaf elliott elliott nitia
12:45:42 <int-e> . o O ( `learn_append nitia However, nitia did not have much wisdom. )
12:46:03 <shachaf> And also of nitia's friend, estin.
12:47:15 -!- earendel has quit (Ping timeout: 264 seconds).
12:47:20 -!- lynn has joined.
12:51:54 -!- feliks has joined.
12:57:01 <int-e> `culprits useless_file.txt
12:57:04 <HackEgo> fizzie estin
12:58:23 <int-e> `? estin
12:58:24 <HackEgo> estin? ¯\(°​_o)/¯
13:13:57 -!- Alejandro15 has joined.
13:19:38 -!- Alejandro15 has quit (Quit: Leaving.).
13:20:46 -!- AlexR42 has joined.
13:26:01 -!- tromp has joined.
13:30:11 -!- tromp has quit (Ping timeout: 248 seconds).
13:33:10 <izabera> `` unidecode $'\1'
13:33:19 <HackEgo> U+0001 <control> \ UTF-8: 01 UTF-16BE: 0001 Decimal: &#1; \ . \ Category: Cc (Other, Control) \ Bidi: BN (Boundary Neutral)
13:46:11 -!- AlexR42 has quit (Quit: My Mac has gone to sleep. ZZZzzz…).
13:48:44 <int-e> Hmm, Google's slight misrepresentation of Lee Sedol's strength works... I'm reading articles stating that he's the strongest player, when Google wrote that he has the strongest record over the past 10 years. That's probably true, but Ke Jie has been the dominating player last year.
13:48:49 <int-e> (Ke has a 8:2 record against Lee)
13:49:30 -!- lynn has quit (Ping timeout: 246 seconds).
13:50:27 <int-e> (when I say "Google wrote" I mean whoever does PR on behalf of the Alphago team)
13:56:00 <Lymia> hrm
13:56:29 <Lymia> How hard would it be to run zemhill's markov scoring algorithm on thousands of programs at once
13:56:37 <Lymia> or, rather, what's the computational complexity of it
14:04:00 -!- boily has joined.
14:10:58 <FireFly> ``cat bin/culprits
14:10:59 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: `cat: not found
14:11:00 -!- tromp has joined.
14:11:04 <FireFly> `cat bin/culprits
14:11:05 <HackEgo> hg log --removed "$1" | grep summary: | awk '{print substr($2,2,length($2)-2)}' | sed "s/.$/\x0F&/" | xargs
14:18:14 <boily> `culprits bin/culprits
14:18:17 <HackEgo> Jafet Jafet tswett tswett shachaf shachaf shachaf FireFly FireFly FireFly FireFly FireFly FireFly shachaf
14:18:50 <boily> @ask Jafet where are you at now?
14:18:50 <lambdabot> Consider it noted.
14:38:30 -!- zadock has quit (Quit: Leaving).
14:49:39 <Lymia> !zjoust dumb ((+)*2310(.)*2310)*-1
14:49:39 <zemhill> Lymia.dumb: points -25.12, score 5.75, rank 47/47
14:49:57 <Lymia> !zjoust dumb ((+)*210(.)*210)*-1
14:49:58 <zemhill> Lymia.dumb: points -23.76, score 5.67, rank 47/47 (--)
14:55:28 <boily> !zjoust chicken +[>[-.]]
14:55:29 <zemhill> boily.chicken: points -33.14, score 2.90, rank 47/47
15:11:16 <Lymia> !zjoust perfection (>)*29 (-)*120 [-]
15:11:16 <zemhill> Lymia.perfection: points -41.81, score 1.02, rank 47/47
15:11:24 <Lymia> !zjoust perfection (>)*29 (-)*120 [-.]
15:11:25 <zemhill> Lymia.perfection: points -41.81, score 1.02, rank 47/47 (--)
15:11:51 <Lymia> !zjoust perfection (>)*20 ([(-)*120 [-.]{}] >)%-1
15:11:51 <zemhill> Lymia.perfection: points -36.86, score 2.10, rank 47/47 (--)
15:12:24 <Lymia> !zjoust meow (()*-1)*-1
15:12:25 <zemhill> Lymia.meow: points -33.14, score 2.90, rank 47/47
15:12:28 <b_jonas> heh, "perfection"
15:12:38 <Lymia> fsvo "perfection"
15:12:39 <myname> perfection with -40 points
15:19:59 -!- lynn has joined.
15:28:19 <\oren\> what is this, misere bfjoust?
15:29:53 <int-e> !zjoust < <
15:29:53 <zemhill> int-e: Program name (<) is restricted to characters in [a-zA-Z0-9_-], sorry.
15:30:02 <int-e> !zjoust lt <
15:30:02 <zemhill> int-e.lt: points -46.00, score 0.00, rank 47/47
15:30:37 -!- boily has quit (Quit: TRIACONTAHEDRON CHICKEN).
15:30:39 <int-e> !zjoust (+-+)*-1
15:30:39 <zemhill> int-e: "!zjoust progname code". See http://zem.fi/bfjoust/ for documentation.
15:30:47 <int-e> !zjoust pmp (+-+)*-1
15:30:48 <zemhill> int-e.pmp: points -7.43, score 12.85, rank 47/47
15:32:16 <int-e> !zjoust gpmp >(+-+)*-1
15:32:18 <zemhill> int-e.gpmp: points -9.62, score 6.69, rank 47/47
15:32:36 <int-e> !zjoust gpmp >+*128(+-+)*-1
15:32:38 <zemhill> int-e.gpmp: points -9.57, score 6.73, rank 47/47 (--)
15:33:06 <int-e> !zjoust gpmp >>-<<(+-+)*-1
15:33:07 <zemhill> int-e.gpmp: points -7.05, score 13.02, rank 47/47 (--)
15:33:52 <int-e> !zjoust gpmp >>->+<<<(+-+)*-1
15:33:53 <zemhill> int-e.gpmp: points -6.74, score 13.34, rank 45/47 (+2)
15:34:13 <int-e> funny
15:39:38 <int-e> int-e.gpmp vs ais523.death_to_defence / >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> -42 / ais523.death_to_defence wins. ... I guess it lives up to its name :)
15:40:09 <myname> wait, suicide is marginally worse than "perfection"?
15:40:53 <\oren\> since I added the characters for vim Powerline, are there any other widely used (where "widely" means >100 people) terminal programs that use special charatcers?
15:41:59 <myname> do you fully support that lineudrawed nethack thingie?
15:43:41 <\oren\> does it use any non-unicode charatcers?
15:44:06 <myname> i have no clue
15:45:22 <myname> also, do you have any idea if i can somehow use that in connectbot? :D
15:46:15 -!- jaboja has joined.
15:51:15 -!- lambda-11235 has joined.
15:51:31 <\oren\> hmm, I wonder... I have an andorid phone, so I'll try to figure it out
15:52:33 <myname> i can set the system font, but that does not at all change the font inside connectbot
15:52:42 <myname> and i have absolutely no idea why that is
15:54:27 -!- oerjan has joined.
15:56:10 <int-e> ollehrjan
15:57:08 <oerjan> inoonret-e
15:58:37 <oerjan> int-e: btw, i'm slightly disappointed that foglio didn't draw van rijn resembling the real rembrandt
15:59:03 <\oren\> hmm I think it must have a font file somewhere inside the app's files
16:02:47 <int-e> oerjan: well, attitude wise he is more of a da vinci anyway
16:03:00 <oerjan> heh.
16:03:26 <oerjan> it's hard to tell with the sepia, but i guess he's another member of the red-haired family.
16:04:37 <int-e> maybe we will meet him again... in the flesh... in the past.
16:05:14 <b_jonas> meet who?
16:05:32 <int-e> The master van Rijn.
16:06:00 <int-e> `? gg
16:06:07 <HackEgo> gg? ¯\(°​_o)/¯
16:06:08 <int-e> `? girl genius
16:06:10 <HackEgo> girl genius? ¯\(°​_o)/¯
16:06:12 -!- boily has joined.
16:06:16 <int-e> `? oots
16:06:17 <HackEgo> oots? ¯\(°​_o)/¯
16:07:32 <boily> `? olist
16:07:33 <HackEgo> Update notification for the webcomic Order of the Stick. http://www.giantitp.com/comics/ootslatest.html
16:08:42 <b_jonas> `culprits olist
16:08:45 <HackEgo> shachaf shachaf
16:08:55 <oerjan> b_jonas: *cough*
16:09:15 <oerjan> int-e: needs a much longer beard
16:10:06 -!- jaboja has quit (Ping timeout: 248 seconds).
16:12:03 <oerjan> also, you could say that about all the sparks.
16:12:27 <int-e> including Agatha... perhaps not.
16:13:10 <b_jonas> `culprits wisdom/olist
16:13:13 <HackEgo> shachaf shachaf shachaf oerjan elliott Bike
16:13:25 <int-e> `? comic
16:13:26 <HackEgo> comic? ¯\(°​_o)/¯
16:13:47 <HackEgo> [wiki] [[Special:Log/newusers]] create * Orlando99 * New user account
16:13:55 <oerjan> . o O ( `learn comic sans ... )
16:15:33 <oerjan> what's with all the helicopters today
16:16:44 <int-e> `le/rn comics/Recommended comics include genius stick, stuck girl, and home of the order.
16:16:52 <HackEgo> Learned «comics»
16:17:29 <HackEgo> [wiki] [[User:Orlando99]] N https://esolangs.org/w/index.php?oldid=46499 * Orlando99 * (+145) Created page with "Hi! I'm Orlando99. I haven't created any esoteric programming languages '''yet''', but I'm working on a new one. I hope I'll finish it soon... :)"
16:17:32 <prooftechnique> `
16:17:32 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: : not found
16:17:38 <prooftechnique> `? elrond
16:17:39 <HackEgo> Elrond is a rogue program originally created to police the Matrix, eventually gaining increased individuality and becoming a threat to the Machines themselves.
16:17:49 <HackEgo> [wiki] [[User:Orlando99]] https://esolangs.org/w/index.php?diff=46500&oldid=46499 * Orlando99 * (-2)
16:18:18 <myname> int-e: i like that one
16:20:53 <boily> `le/rn comics/Recommended comics include Genius Stick, Stuck Girl, and Home of the Order.
16:20:56 <HackEgo> Learned «comics»
16:21:08 <boily> long live the Oxford comma!
16:21:15 <prooftechnique> <3
16:22:23 <int-e> boily made a capital effort there.
16:23:25 <boily> should it be “the” or “The”%
16:23:32 <boily> s%\%%?%
16:23:53 <oerjan> "the"
16:24:37 <izabera> why would you purposely use % as a separator -_-
16:24:56 <oerjan> indeed, it puts your sanity into question.
16:25:13 <boily> izabellora. s/// expressions are fun to mangle!
16:25:25 -!- zadock has joined.
16:25:31 <boily> hellørjan. oh you of little faith... Believe in my Sanity!
16:25:37 <Taneb> I think somewhere on freenode there's a channel for programmers who do intentionally difficult things for fun
16:25:39 <prooftechnique> `le/rn Oxford/The home of English, woven shirts, and the serial comma.
16:25:42 <HackEgo> Learned «oxford»
16:25:49 <oerjan> `culprits wisdom/oxford
16:25:50 <Taneb> I think they also program in things like brainfuck and Malbolge
16:25:54 <HackEgo> prooftechnique
16:26:39 <myname> Taneb: crazy crowd
16:26:40 <oerjan> `cat bin/slash_learn
16:26:41 <HackEgo> cat: bin/slash_learn: No such file or directory
16:26:45 <oerjan> `cat bin/slashlearn
16:26:45 <HackEgo> sep="/"; [[ "$0" == *//* ]] && sep="//"; [[ "$1" == ?*"$sep"* ]] || exit 1; key="$(echo "${1%%$sep*}" | lowercase)"; value="${1#*$sep}"; echo "$value" > "$(echo-p "wisdom/$key")" && echo "Learned «$key»"
16:26:48 <int-e> Taneb: Sounds like a scary place to me. A place you tell naughty children about so that they stay in their beds while failing to sleep.
16:26:52 -!- J_Arcane has joined.
16:27:50 <oerjan> darn
16:28:48 <int-e> oerjan: I lost your train of thought
16:29:11 <oerjan> boily: that's what all the sane people say just before they break hth
16:29:23 <b_jonas> Homestick and Order of the Stuck?
16:29:24 <oerjan> or possibly just after.
16:30:25 <oerjan> int-e: which train?
16:30:55 <int-e> the one that rolled over "darn"
16:31:33 <oerjan> i just realized fixing slashlearn in the same way as shachaf fixed learn looks ugly
16:31:57 <int-e> oh ok
16:32:02 <myname> why fixing it?
16:32:14 <b_jonas> fuck
16:32:17 <oerjan> myname: so it says whether the wisdom previously existed
16:32:24 <myname> ah
16:32:44 <myname> isn't it just a symlink to le/rn?
16:33:01 <int-e> `echo-p
16:33:02 <HackEgo> No output.
16:33:11 <oerjan> myname: the other way around
16:33:12 <int-e> `cat bin/echo-p
16:33:13 <HackEgo> echo "$1"; [[ "$1" == */* ]] && mkdir -p "${1%/*}" 2>/dev/null
16:33:19 <int-e> hah
16:33:27 <myname> oerjan: that doesn't make sense
16:33:35 <oerjan> myname: it's older.
16:33:40 <int-e> `culprits bin/echo-p
16:33:43 <HackEgo> oerjan
16:33:46 <myname> why should slashlearn look at the number of slashes?
16:33:46 * oerjan waves
16:33:47 <b_jonas> I think the filling came out of one of my teeth
16:33:57 <oerjan> b_jonas: it's a pandemic!
16:33:59 <b_jonas> I'll have to get an urgent appointment to my dentist
16:34:35 <oerjan> myname: um so that le/rn and le//rn both work hth
16:35:00 <oerjan> by "older", i mean creation, not latest version hth
16:35:33 <b_jonas> le/rn and le//rn could just point to two different files instead of stupid argv[0] magic
16:35:35 <myname> okay
16:35:52 <oerjan> b_jonas: that's impossible, because they're the same file
16:35:54 <int-e> . o O ( what about le///rn )
16:35:54 <myname> b_jonas: how so
16:36:08 <b_jonas> sure, but change them
16:36:11 <b_jonas> oh
16:36:13 <b_jonas> right
16:36:16 <b_jonas> ugh
16:36:21 <oerjan> :D
16:36:23 <b_jonas> um, use different names?
16:36:29 <b_jonas> like slashlearn and slashslashlearn?
16:36:48 <oerjan> b_jonas: um le/rn was created because slashlearn was too long hth
16:37:19 <oerjan> your strange insistence on using it notwithstanding.
16:37:23 <int-e> we want c/o/n/v/e/n/i/e/n/c/e, and cslashoslashnslashvslasheslashnslashislasheslashnslashcslashe just doesn't cut it for us
16:39:26 <oerjan> int-e: i think that cuts it too fine, rather
16:40:06 <int-e> o/e/r/j/a/n, does it hurt when I do this?
16:40:17 <oerjan> remarkably little.
16:40:33 <b_jonas> what if the double slash syntax was `le/rn /key//value
16:40:44 <b_jonas> that's as many characters as `le//rn key//value I think
16:40:51 <b_jonas> and doesn't collide with anything
16:40:54 <int-e> but less intuitive
16:41:34 <int-e> I honestly believe the $0 trick is good for the limited purpose it serves
16:42:07 <b_jonas> ok
16:44:33 <oerjan> `` [ -e te/st/ing ] || echo "nope"
16:44:34 <HackEgo> nope
16:45:05 <oerjan> ok the hardest part now is that slashlearn uses ; instead of newlines
16:46:29 <oerjan> `cat bin/learn
16:46:30 <HackEgo> ​#!/bin/bash \ topic=$(echo "$1" | lowercase | sed 's/^\(an\?\|the\) //;s/s\?[:;,.!?]\? .*//') \ [ -e "wisdom/$topic" ] && verb="Relearned" || verb="Learned" \ echo "$1" >"wisdom/$topic" \ echo "$verb '$topic': $1"
16:46:38 <oerjan> `cat bin/slashlearn
16:46:39 <HackEgo> sep="/"; [[ "$0" == *//* ]] && sep="//"; [[ "$1" == ?*"$sep"* ]] || exit 1; key="$(echo "${1%%$sep*}" | lowercase)"; value="${1#*$sep}"; echo "$value" > "$(echo-p "wisdom/$key")" && echo "Learned «$key»"
16:46:48 <oerjan> sep="/"; [[ "$0" == *//* ]] && sep="//"; [[ "$1" == ?*"$sep"* ]] || exit 1; key="$(echo "${1%%$sep*}" | lowercase)"; value="${1#*$sep}"; echo "$value" > "$(echo-p "wisdom/$key")" && echo "Learned «$key»"
16:48:19 <oerjan> `mkx bin/slashlearn//sep="/"; [[ "$0" == *//* ]] && sep="//"; [[ "$1" == ?*"$sep"* ]] || exit 1; key="$(echo "${1%%$sep*}" | lowercase)"; value="${1#*$sep}"; [ -e "wisdom/$topic" ] && verb="Relearned" || verb="Learned"; echo "$value" > "$(echo-p "wisdom/$key")" && echo "$verb «$key»"
16:48:22 <HackEgo> bin/slashlearn
16:48:35 <oerjan> `? testing
16:48:36 <HackEgo> Testing might eventually succeed.
16:48:42 <oerjan> `forget testing
16:48:45 <HackEgo> Forget what?
16:48:59 <oerjan> `le/rn testing/Testing is fragile.
16:49:02 <HackEgo> Relearned «testing»
16:49:10 <oerjan> argh
16:49:12 <oerjan> oh
16:49:15 <myname> loo
16:49:35 <oerjan> `mkx bin/slashlearn//sep="/"; [[ "$0" == *//* ]] && sep="//"; [[ "$1" == ?*"$sep"* ]] || exit 1; key="$(echo "${1%%$sep*}" | lowercase)"; value="${1#*$sep}"; [ -e "wisdom/$key" ] && verb="Relearned" || verb="Learned"; echo "$value" > "$(echo-p "wisdom/$key")" && echo "$verb «$key»"
16:49:37 <HackEgo> bin/slashlearn
16:49:45 <oerjan> `forget testing
16:49:47 <HackEgo> Forget what?
16:49:50 <oerjan> `le/rn testing/Testing is fragile.
16:49:52 <HackEgo> Learned «testing»
16:50:01 <oerjan> `le/rn testing/Testing can only do so much.
16:50:03 <HackEgo> Relearned «testing»
16:50:07 <oerjan> there you go.
16:51:08 <int-e> `learn estin didn't believe in automation.
16:51:11 <HackEgo> Learned 'estin': estin didn't believe in automation.
16:51:21 <b_jonas> `? estin
16:51:22 <HackEgo> estin didn't believe in automation.
16:55:00 <\oren\> god, can the process for getting superuser permissions on android be any more confusing?
16:55:47 <myname> you mean, exploiting a bug?
16:56:36 <b_jonas> `? chicken
16:56:38 <HackEgo> chicken is boily af
16:56:38 <b_jonas> `? egg
16:56:39 <HackEgo> egg? ¯\(°​_o)/¯
16:56:45 <\oren\> any number of websites and apps and whatnot, none looking at all trustworthy, it makes Windows look completey sane
16:57:27 <\oren\> and all I wanted to do was edit one fricking file
16:57:53 <myname> xda is oretty trustworthy
17:01:13 <b_jonas> `? xda
17:01:14 <HackEgo> xda? ¯\(°​_o)/¯
17:02:25 <\oren\> I mean seriously why the hell isn't there just a button to open a goddamn bash shell
17:02:33 -!- bender| has quit (Quit: Ping Pong Fuckout).
17:02:48 <\oren\> isn;t this supposed to be linux
17:02:53 <oerjan> @tell ais523 <ais523> although make sure you use a section edit rather than editing the whole page <-- i read somewhere that doesn't matter any longer
17:02:53 <lambdabot> Consider it noted.
17:03:09 <myname> how would it prevent an app to use this?
17:03:22 <oerjan> make it a physical button.
17:03:44 <myname> that doesn't fix the problem at all
17:04:43 <\oren\> um, the button would be part of the main settings?
17:04:56 <\oren\> I mean windows has a way to do this easily
17:04:59 <boily> `culprits wisdom/chicken
17:05:02 <HackEgo> mroman
17:05:17 <boily> @tell mroman mrelloman.
17:05:17 <lambdabot> Consider it noted.
17:05:22 <myname> windows has a button to make you able to destroy everything?
17:05:30 <\oren\> yes
17:05:31 <oerjan> myname: several, in fact
17:05:41 <oerjan> >_>
17:05:47 <myname> great design
17:06:28 <\oren\> you can edit any file on the system if you click through all the warning messages
17:07:03 <myname> that reminds me of the video qhere people started formating a drive through voice recognition
17:08:01 <\oren\> wait... my windows computer has a sim card slot
17:08:18 <\oren\> I don't need this bullshit anyway
17:08:25 * boily eyes \oren\'s computer with suspicion
17:08:36 <boily> that sounds like a phone to me.
17:09:27 <\oren\> it isn't a phone, it's just a thinkpad with all the trimmings
17:09:55 <\oren\> well except I didn't shell out for a super-good minitor
17:09:59 <\oren\> *screen
17:10:14 <boily> a minitor: a screen with low resolution?
17:10:18 -!- jaboja has joined.
17:10:32 <\oren\> yes
17:11:03 <b_jonas> that's like the monotaur
17:11:15 <b_jonas> and the majotaur
17:11:28 <\oren\> 1366x768
17:11:29 <myname> my notebook also has a sim card slot
17:12:27 -!- Reece` has quit (Quit: Leaving).
17:16:04 <\oren\> yeah so basically instead of trying to tether the wifi connection, I'll just put my sim card in my computer whenever I want to use my data connection from my computer
17:17:31 <\oren\> my plan is a "bring your own phone" plan, so i think that's allowed
17:18:13 <b_jonas> sure, why would you use a bad android phone when you have a better one
17:18:39 <prooftechnique> stereotaur
17:19:30 <Lymia> Cyanogenmod makes root less stupid, at least. :P
17:19:46 <Lymia> It's built into the system, so, it's probably trustworthy.
17:19:47 <myname> Lymia: well, you just need root to install it
17:19:56 <myname> easy game
17:20:02 <Lymia> You reimage the phone after you get root though.
17:20:11 <Lymia> So, I don't really need to worry about the rooting program being "trustworthy" per se.
17:20:41 <\oren\> I am just "bringing" a 15 by 9 inch, 6 pound clamshell "phone"
17:20:56 <Lymia> I have a Samsung phone, so, I just reimaged it using the 'supported' method.
17:21:29 <myname> withbthe thirdparty app
17:21:57 <prooftechnique> \oren\: You mean you don't even have to bolt it into your car? Technology has come so fr
17:22:00 <prooftechnique> *far
17:22:11 <\oren\> lol
17:23:10 <prooftechnique> Even today with pervasive smartphones, there's a certain romantic access to a "car phone"
17:23:11 <Lymia> <oerjan> make it a physical button.
17:23:23 <Lymia> Can't you just do something like how UAC works
17:23:25 <prooftechnique> As if to say "I have so much going on that I have a dedicated phone just for my car"
17:23:39 <\oren\> Lymia: that's what I was saying
17:23:46 <Lymia> Pop up a secure OS level dialog that applications can't interact with.
17:23:59 <Lymia> Put the button a 5 second timer so nobody presses it on accident because an application is sneaky.
17:24:10 <Lymia> Or require a passphrase.
17:24:25 <\oren\> use a captcha
17:24:29 <prooftechnique> FSVO "secure" and "can't"
17:24:45 <Lymia> well.
17:25:01 <Lymia> If you have enough permissions to screw with a privileged security dialog
17:25:09 <Lymia> You probably have the permissions to do what you wanted to do in the first place anyway
17:25:20 <\oren\> when UAC pops up, the computer beeps, the screen goes black for a second, and then the UAC dialog pops up
17:25:27 <prooftechnique> I'm hearing "run as root all the time". Got it. Sounds easy. :)
17:25:45 <Lymia> ???
17:26:13 -!- augur has joined.
17:26:13 <\oren\> and then it says in a scary way, "are you sure you want [application] to be able to do [something]"
17:26:14 <prooftechnique> You say I'll never have to enter my password to install my special weather widgets ever again? Sounds dandy!
17:26:45 <Lymia> I don't know what you think we're talking about, but, that's certainly not it.
17:27:00 <\oren\> prooftechnique: on my other computer I use puppy linux, so, yeah, all root all the time
17:27:14 <prooftechnique> \oren\: It almost literally says the "something" part, though, unless UAC dialogs have gotten more informative recently
17:27:21 <Lymia> \oren\, It's more complicated than that. There's some isolation mechanism between the actual application processes and the system component that does the UAC prompts (and presumably elevates the privileges of the processes that request it)
17:27:42 <Lymia> Doesn't UAC still not have fine-grained permissions
17:28:04 <\oren\> Lymia: sure, but I'm just describing the user interface
17:28:17 <Lymia> I thought it still only had two modes: A) Anything a normal unprivileged user can do, B) Anything your user can do, including adminstrative stuff if you have the permissions.
17:28:18 <\oren\> which goes out of its way to make sure the user pays attention
17:28:49 <prooftechnique> And in doing so probably causes itself to be ignored even harder
17:29:10 <prooftechnique> It's so jarring that I imagine most users just wildly click through it without wondering what the triggering process is
17:29:28 <\oren\> depends. my mother will click "no", even I tell her five times to click yes
17:30:12 <b_jonas> \oren\: so you don't have enough permission to control your mother?
17:30:58 <\oren\> yeah. I hate doing tech support
17:33:06 -!- oerjan has quit (Quit: Sounds like you need a mother upgrade).
17:39:06 <Lymia> \oren\, at least, if it's aimed at technical users, the only requirement of the user interface is that you could only give access "intentionally", no?
17:39:46 <Lymia> (Hence, a 2-4 second timer on the accept button in case an application tries to trick a user into pressing it by timing when it brings up the dialog.)
17:40:10 <Lymia> It doesn't need to be unforgable unless you have a password prompt.
17:40:10 <\oren\> right, but it should also make clear to non-techs that this is a sensitive feature
17:40:33 <Lymia> There's no point in a fake escalation prompt, unless it requires a password.
17:41:02 <Lymia> Yeah, that isn't exactly easy either.
17:44:36 -!- earendel has joined.
17:45:10 <Lymia> Mainly because
17:45:13 <Lymia> they don't freaking read
17:46:43 <b_jonas> fuck... this stupid hole where the filling came out is impossible to clean. my tooth will start hurting in no time.
17:47:01 <b_jonas> I'll have to be really careful and get an appointment first thing tomorrow
17:53:03 <JX7P> Subject-Oriented Programming seems an interesting place to research
17:53:10 <JX7P> or Context-Oriented
17:54:26 <J_Arcane> I just want to see some new GUI approaches that aren't a big bowl of imperative sOOP.
17:58:14 <Lymia> wtf
17:58:19 <Lymia> When did I write this Python script
17:58:23 <Lymia> And why did I use os.chdir at all
17:59:58 <J_Arcane> there's all this stuff going on now with functional reactive programming, and cool declarative approaches to same, and yet it's all web-focused. The native approaches either try to glue FRP onto the existing sOOP, or just run web stuff in a browser window.
18:00:20 <Lymia> sOOP?
18:02:58 -!- augur has quit (Remote host closed the connection).
18:04:20 -!- Thassa has joined.
18:04:28 <Thassa> Hweh
18:07:15 <\oren\> I've begun translating my game from C into Javascript
18:07:48 <Thassa> Ayy
18:12:01 <Lymia> You poor thing
18:12:12 <Lymia> Nobody should have to suffer Javascript.
18:18:56 -!- XorSwap has joined.
18:21:26 <J_Arcane> Lymia: object oriented + soup.
18:21:43 <Lymia> soup? Never heard that term
18:21:55 <J_Arcane> as in " a big mass of interdependent stateful objects that give the functional programming zealot in me hives "
18:23:03 <Lymia> ah
18:23:18 <\oren\> but most gui elements are inherently stateful
18:24:36 <J_Arcane> true. But there are other approaches to handling that state while allowing individual components to remain purely functional.
18:25:41 -!- vodkode has quit (Quit: Leaving).
18:25:56 <\oren\> YAY! gensokyo radio is playing ym favorite song
18:26:57 <J_Arcane> I work with Reagent in my day job, for example, where largely you're working with pure functions that just return markup that gets rendered by virtual DOM, and page state is handled by a single canonical atom.
18:27:35 <J_Arcane> Which is a really fun way to work with an interface, and makes me sad there's not really a native equivalent unless you count the React Native bindings (which are presently a giant nightmare behemoth)
18:30:53 <\oren\> well I mean what i would do to avoid state would be to have each button callback be a function that takes the whole state and returns a new state
18:31:39 -!- XorSwap has quit (Ping timeout: 244 seconds).
18:31:49 <\oren\> but then you'd have to redraw everything with each button press
18:34:50 <b_jonas> `fix_my_tooth
18:34:54 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: fix_my_tooth: not found
18:35:01 <b_jonas> Isn't there a command for this?
18:35:02 <b_jonas> `dentist
18:35:03 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: dentist: not found
18:35:07 <b_jonas> `appointment dentist
18:35:08 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: appointment: not found
18:35:31 <\oren\> `brush teeth
18:35:32 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: brush: not found
18:35:52 <\oren\> `floss teeth
18:35:52 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: floss: not found
18:36:50 <\oren\> for(@teeth){brush;floss;}
18:50:29 <Lymia> I hope that's not actual Perl
19:01:01 <JX7P> well, i've finally abolished the need to declare objects with a * in Objective-C (JX)
19:01:37 <JX7P> since i have abolished plans for stack objects, and if I ever do, it'll use alloca() (so will remain a pointer)
19:04:39 -!- Thassa has quit (Remote host closed the connection).
19:15:19 <pikhq> /win 26
19:15:21 <pikhq> :(
19:23:46 -!- jaboja has quit (Ping timeout: 252 seconds).
19:24:46 -!- jaboja has joined.
19:25:21 <shachaf> oerjan: Wait, didn't slashlearn do the learned/relearned thing in the past?
19:25:28 <shachaf> Or learn did, or something?
19:25:45 <shachaf> And then there was a bug with the program being run twice that made it not work well?
19:52:43 <prooftechnique> Ooh, mlton is in brew, now
20:11:59 <zzo38> I can program both in C and in JavaScript
20:15:08 <zzo38> Including a Z-machine implementation in JavaScript. I made a simple front-end for use with Node.js although this front-end is simple and does not do word wrap and pausing per page. (The back-end though uses pure JavaScript and does not require Node.js)
20:15:18 -!- rdococ has quit (Read error: Connection reset by peer).
20:17:40 -!- XorSwap has joined.
20:19:59 -!- Lymia has quit (Ping timeout: 260 seconds).
20:22:35 <\oren\> I'm working on making my string library less wonky
20:25:00 <\oren\> in particular, applying a consistent naming scheme
20:25:13 -!- Lymia has joined.
20:27:13 -!- zadock has quit (Quit: Leaving).
20:37:15 -!- XorSwap has quit (Ping timeout: 268 seconds).
20:39:21 <\oren\> maybe i should also run some test programs through valgrind
20:39:45 -!- lynn_ has joined.
20:41:12 -!- lynn has quit (Ping timeout: 260 seconds).
20:48:05 -!- jaboja has quit (Ping timeout: 244 seconds).
20:57:59 -!- lynn_ has changed nick to lynn.
21:04:43 -!- Lord_of_Life has quit (Excess Flood).
21:06:55 -!- PinealGlandOptic has joined.
21:07:37 -!- Lord_of_Life has joined.
21:13:25 -!- XorSwap has joined.
21:16:04 -!- boily has quit (Quit: STAIR CHICKEN).
21:24:02 -!- hppavilion[1] has joined.
21:29:10 -!- XorSwap has quit (Ping timeout: 252 seconds).
21:37:40 -!- XorSwap has joined.
21:42:44 -!- jaboja has joined.
21:44:14 -!- sioux000 has joined.
21:46:36 -!- hppavilion[2] has joined.
21:47:50 <int-e> ah I learned a new term. That PCP question I asked a while ago could be rephrased as stating that the set of PCP instances having a finite solution and set of PCP instances having no infinite solution are /recursively inseparable/.
21:49:34 -!- hppavilion[1] has quit (Ping timeout: 244 seconds).
21:52:00 <\oren\> http://www.orenwatson.be/STR.h.htm http://www.orenwatson.be/STR.c.htm
21:52:04 <int-e> (for those who care but don't remember, the question wasn't whether this is true; it was whether this has been established in the literature)
22:01:48 -!- lynn has quit (Ping timeout: 276 seconds).
22:04:16 -!- ais523 has joined.
22:04:48 <ais523> huh, nyuroki dropped four places?
22:06:02 <b_jonas> ehwhat?
22:08:32 <Lymia> wut
22:08:36 <Lymia> Did I accidentally submit the wrong version
22:09:20 <Lymia> !bfjoust nyuroki https://raw.githubusercontent.com/Lymia/JoustExt/master/examples/nyuroki-esoteric.bf
22:09:22 <EgoBot> ​Score for Lymia_nyuroki: 6.4
22:09:27 <Lymia> !zjoust nyuroki https://raw.githubusercontent.com/Lymia/JoustExt/master/examples/nyuroki-esoteric.bf
22:09:27 <zemhill> Lymia.nyuroki: points 18.62, score 49.60, rank 2/47 (+4)
22:09:43 <Lymia> It appears so
22:10:10 <Lymia> !bfjoust nyuroki http://pastebin.com/raw/p68cTXd8
22:10:12 <EgoBot> ​Score for Lymia_nyuroki: 51.9
22:18:16 <\oren\> I am practicing my cgi scripting
22:18:44 <ais523> back at #2 now, that's better
22:20:43 <\oren\> !zjoust
22:20:43 <zemhill> \oren\: "!zjoust progname code". See http://zem.fi/bfjoust/ for documentation.
22:21:18 <\oren\> I couldn't rember what the tld for zem was
22:21:37 -!- idris-bot has quit (Ping timeout: 240 seconds).
22:21:57 -!- Melvar has quit (Ping timeout: 276 seconds).
22:26:49 -!- Melvar has joined.
22:34:59 -!- oerjan has joined.
22:36:35 -!- hppavilion[2] has quit (Ping timeout: 244 seconds).
22:36:59 <oerjan> <-- i don't remember whether `learn had that problem. we'll see.
22:37:01 <oerjan> er
22:37:05 <oerjan> <shachaf> And then there was a bug with the program being run twice that made it not work well? <-- i don't remember whether `learn had that problem. we'll see.
22:37:12 <oerjan> `url bin/learn
22:37:24 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/file/tip/bin/learn
22:37:41 -!- hppavilion[2] has joined.
22:37:51 <oerjan> i wouldn't be surprised if it breaks in some case.
22:38:58 <oerjan> shachaf: i suggest you ask nitia.
22:39:11 <oerjan> because i see nothing relevant in the browser.
22:41:16 * oerjan grumpy because bruised his knee on the ice. again.
22:41:36 <oerjan> also because i have a cold.
22:41:47 <shachaf> @metar ENVA
22:41:47 <lambdabot> ENVA 062220Z 11006KT 9999 SCT057 M00/M06 Q1005 RMK WIND 670FT 14011KT
22:41:57 <shachaf> @metar KOAK
22:41:57 <lambdabot> KOAK 062153Z 22012KT 10SM SCT035 BKN110 BKN160 16/06 A2998 RMK AO2 SLP153 T01560061
22:42:05 <shachaf> oerjan: there's an obvious solution to ice problems hth
22:42:33 <oerjan> moving to california has other problems, alas
22:42:50 <shachaf> i can't think of any
22:43:41 <oerjan> i take it you have a very limited imagination
22:44:51 -!- hppavilion[2] has quit (Ping timeout: 244 seconds).
22:46:29 <oerjan> shachaf: anyway, the tests of `learn and `le/rn worked, so if there's a problem it's obviously not reliably so.
22:46:43 <shachaf> `url bin/slashlearn
22:46:44 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/file/tip/bin/slashlearn
22:46:52 <oerjan> i expect it would have something to do with file creation
22:47:24 <shachaf> whoa whoa whoa
22:47:27 <ais523> what's up with `learn?
22:47:31 <ais523> or potentially up?
22:47:43 <shachaf> http://codu.org/projects/hackbot/fshg/index.cgi/rev/9c7426991c5f
22:47:58 <oerjan> ais523: we've modified `learn and `le/rn to give different output dependent on whether the file already existed
22:48:14 <oerjan> because i was tired of checking everytime someone else forgot to :P
22:48:16 <ais523> ah right
22:48:20 <shachaf> slashlearn is 15 months old?
22:48:22 <shachaf> That's ridiculous.
22:48:25 <shachaf> I refuse to believe that.
22:48:52 <oerjan> shachaf: 17?
22:49:05 <shachaf> Fine.
22:49:15 -!- hppavilion[2] has joined.
22:49:17 <oerjan> ah indeed you did distinguish.
22:49:27 <shachaf> Anyway the logs from whenever I was doing that should explain what the problem was.
22:49:35 <shachaf> Good thing we have an expert logreader here.
22:50:23 <oerjan> eek
22:52:58 <oerjan> http://codu.org/logs/log/_esoteric/2014-11-19#103938shachaf
22:53:21 <shachaf> What happened to you reading logs so I don't have to?
22:53:39 <shachaf> Reading logs of things I said in IRC is usually pretty painful.
22:53:45 <oerjan> i thought you were just opposed to doing the searching
22:54:13 <shachaf> The searching is easy with a timestamp.
22:56:12 <oerjan> http://codu.org/logs/log/_esoteric/2014-11-19#110103fizzie
22:56:25 -!- XorSwap has quit (Quit: Leaving).
22:56:29 <oerjan> apparently it may be broken with files with spaces in them?
22:56:41 <shachaf> Oh, now I remember.
22:56:48 <shachaf> So it's no problem for learn.
22:56:51 <oerjan> `le/rn Te sting/This is horrible?
22:56:55 <HackEgo> Learned «te sting»
22:57:06 <oerjan> this worked...
22:57:15 <oerjan> maybe the bug has been fixed?
22:57:20 <shachaf> `le/rn Te sting/Did you mean "The sting"?
22:57:24 <HackEgo> Relearned «te sting»
22:57:28 <shachaf> Hm.
22:57:30 <shachaf> Maybe.
22:57:55 <shachaf> I do remember talking to fizzie about how it should be fixed.
22:58:15 <shachaf> `revert
22:58:17 -!- hppavilion[2] has quit (Ping timeout: 244 seconds).
22:58:25 <HackEgo> rm: cannot remove `/home/hackbot/hackbot.hg/multibot_cmds/env/.hg/store/data/canary.orig': Is a directory \ Done.
22:58:50 <shachaf> I also remember talking about how revert should be fixed, but that obviously didn't happen.
22:59:10 <ais523> well we clearly can't fix it from inside the bot itself, without some sort of exploit
22:59:25 <oerjan> ais523: well the assumption was that fizzie could...
22:59:30 <oerjan> or at least Gregor
22:59:36 <b_jonas> ``` /bin/cat bin/revert
22:59:37 <HackEgo> ​/bin/cat: bin/revert: No such file or directory
22:59:43 <b_jonas> what
22:59:47 <b_jonas> revert is a real command?
22:59:51 <oerjan> b_jonas: `revert is a builtin
22:59:53 <b_jonas> I see
23:00:04 <b_jonas> but I thought we could read the hg history
23:00:06 <b_jonas> culprits does so
23:00:09 <ais523> has to be, otherwise you could delete `revert and nobody else would be able to delete it
23:00:10 <b_jonas> so can't we make our own revert?
23:00:14 <b_jonas> sure, but
23:00:18 <b_jonas> can't we make a similar command?
23:00:19 <oerjan> b_jonas: yes. so we _could_ create revert these days.
23:00:20 <ais523> *revert it
23:00:26 <ais523> we could potentially make our own revert though, yes
23:00:30 <prooftechnique> Call it rerevert
23:00:30 <oerjan> b_jonas: in fact we have bin/undo
23:00:35 <ais523> it'd just have to have a different name
23:00:42 <ais523> `` echo test > test2
23:00:44 <HackEgo> No output.
23:00:46 <ais523> `undo
23:00:48 <b_jonas> ais523: yes, I know, and termbot has a builtin to revert the whole hard disk to pristine state too
23:00:49 <HackEgo> hg diff: option -c requires argument \ patch: **** Only garbage was found in the patch input.
23:00:52 <ais523> hmm
23:01:02 <ais523> `rm test2
23:01:03 <oerjan> ais523: you need a commit
23:01:05 <HackEgo> No output.
23:01:07 <b_jonas> ``` tr \! \! < bin/undo
23:01:07 <HackEgo> ​#!/bin/sh \ hg diff -c "$@" | patch -p1 -R
23:01:15 <b_jonas> whoa
23:01:17 <shachaf> patch: When I give you garbage in the patch input, I expect garbage in the patch output.
23:01:18 <ais523> b_jonas: what's up with that tr?
23:01:29 -!- p34k has joined.
23:01:55 <b_jonas> ais523: I'm afraid to use cat, because if I wanted to hide something, I'd install a fake bin/cat
23:02:08 <b_jonas> so /bin/cat or perl -pe1 seems safer
23:02:15 <ais523> `` < bin/undo
23:02:15 <HackEgo> No output.
23:02:16 <oerjan> shachaf: the only problem with fizzie fixing it is that it probably won't get updated in Gregor's source repository
23:02:17 <b_jonas> sure, you could mask any of those too
23:02:19 <ais523> hmm
23:02:32 <b_jonas> but still
23:02:35 <ais523> is `paste a builtin?
23:02:44 <ais523> if so then you could use that to prevent something being faked
23:02:57 <ais523> but it seems implausible to me to trust tr but not cat
23:03:02 <ais523> `more bin/undo
23:03:04 <HackEgo> ​#!/bin/sh \ hg diff -c "$@" | patch -p1 -R
23:03:08 <b_jonas> ais523: sure, and it's even worse to trust bin/\`\`
23:03:19 <b_jonas> ais523: but you know how bin/ls is a script, right?
23:03:35 <oerjan> ais523: paste is not a builtin.
23:03:37 <ais523> yes, IIRC it's not for hiding things but for preventing breakage
23:03:49 <b_jonas> sure
23:04:09 <Phantom_Hoover> `paste bin/paste
23:04:10 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/file/tip/bin/paste
23:04:19 <b_jonas> oh!
23:04:21 <Phantom_Hoover> i mean there's your answer anyway
23:04:26 <b_jonas> let's create a fake bin/revert !
23:04:27 <Phantom_Hoover> check the mercurial repo online
23:04:38 <b_jonas> `tac bin/revert
23:04:40 <HackEgo> ​/hackenv/bin/tac: line 2: bin/revert: No such file or directory
23:05:05 <ais523> `url bin/url
23:05:06 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/file/tip/bin/url
23:05:30 <ais523> that one should be unfakeable; although `url could lie, a human would be able to see the lies in the resulting URL
23:05:51 <b_jonas> `echo $'#!/bin/sh\nexec git reset --hard HEAD^\n' > bin/revert
23:05:52 <HackEgo> ​$'#!/bin/sh\nexec git reset --hard HEAD^\n' > bin/revert
23:06:01 <b_jonas> ``` echo $'#!/bin/sh\nexec git reset --hard HEAD^\n' > bin/revert
23:06:03 <HackEgo> No output.
23:06:14 <b_jonas> nah, no
23:06:43 <b_jonas> ``` echo $'#!/bin/sh\nexec git revert HEAD\n' > bin/revert
23:06:45 <HackEgo> No output.
23:06:49 <b_jonas> don't lose the history
23:07:43 <shachaf> Is the .hg part of the repository read-only or something?
23:08:08 <ais523> it's a read-only mount
23:08:23 <ais523> `` rm -r .hg/*
23:08:24 <HackEgo> rm: cannot remove `.hg/00changelog.i': Read-only file system \ rm: cannot remove `.hg/branch': Read-only file system \ rm: cannot remove `.hg/branchheads.cache': Read-only file system \ rm: cannot remove `.hg/cache': Read-only file system \ rm: cannot remove `.hg/dirstate': Read-only file system \ rm: cannot remove `.hg/last-message.txt': Read-only
23:08:46 <ais523> (the great thing about hackego is that you can enter highly destructive commands almost at will as it's typically easy to fix the results)
23:10:02 <oerjan> b_jonas: why are you using git commands, HackEgo is mercury
23:10:30 <b_jonas> oerjan: it's a fake command, so it doesn't matter, right?
23:10:34 <oerjan> OKAY
23:10:35 <b_jonas> and I don't know mercurial
23:10:43 <tswett> @metar KLAS
23:10:43 <lambdabot> KLAS 062256Z 25017G28KT 10SM FEW050 SCT080 19/M04 A2967 RMK AO2 PK WND 25029/2234 SLP033 T01891039
23:10:51 <b_jonas> read-only? ok, then let's make it
23:11:00 <b_jonas> ``` echo $'#!/bin/sh\nexec git revert --no-commit HEAD\n' > bin/revert
23:11:02 <HackEgo> No output.
23:11:06 <b_jonas> or can we not write the index either?
23:11:18 <ais523> the whole thing is on a read-only file system
23:11:27 <b_jonas> hmm
23:11:30 <ais523> the way you'd implement a `revert, though
23:11:36 <ais523> would be to change the filesystem to match an old revision
23:11:41 <ais523> then let the autocommit do the rest of the work
23:11:41 <b_jonas> sure, we'd need to modify only the filesystem
23:11:45 <b_jonas> without the index
23:12:09 <ais523> bleh, lack of orthogonality in git commands strikes again
23:12:22 <ais523> what you'd want would be a checkout of an old revision without changing the current revision
23:13:08 <ais523> possibly that's git checkout -p commit -- .
23:13:12 <ais523> it's a little unclear from the docs
23:13:18 * ais523 checks how you'd do it in scapegoat
23:13:23 <b_jonas> I think the command for that is git checkout HEAD^
23:13:24 <b_jonas> but I'm not sure
23:13:34 <ais523> b_jonas: that gives you a detached HEAD though
23:13:39 <ais523> because it also changes the current revision
23:13:40 <b_jonas> #``` echo $'#!/bin/sh\nexec git checkout HEAD^\n' > bin/revert
23:13:41 <b_jonas> ah right
23:13:47 <b_jonas> then git checkout HEAD^ .
23:13:54 <b_jonas> ``` echo $'#!/bin/sh\nexec git checkout HEAD^ .\n' > bin/revert
23:13:55 <HackEgo> No output.
23:14:04 -!- lleu has joined.
23:14:12 <ais523> in scapegoat it'd be sg-focus revision .
23:14:24 <ais523> giving any path, including ., prevents the default name changing
23:14:49 <ais523> alternatively, sg-focus hash
23:14:56 <ais523> because a hash is not a name, and thus can't be the default name
23:18:08 -!- AnotherTest has quit (Quit: ZNC - http://znc.in).
23:25:24 <oerjan> <b_jonas> I'll have to be really careful and get an appointment first thing tomorrow <-- fwiw in my recent case i had to wait 2 weeks because my dentist had the flu. he said there was only a little deterioration. my web searches were inconlusive on how urgent it is.
23:27:12 <shachaf> I should probably talk to a dentist too.
23:27:24 <shachaf> I guess I should find one.
23:30:39 -!- blockzombie has joined.
23:30:49 <oerjan> otoh i underestimated the danger once, and now i'm never getting my perfect teeth back :(
23:32:19 <oerjan> (hint: halving the amount you brush can put you over from 0 holes one year to 6 the next.)
23:32:28 <oerjan> *cavities
23:32:39 <b_jonas> oerjan: (a) it's a large hole, and (b) it's annoying
23:32:56 <b_jonas> perfect teeth! I won't get those either, heh
23:33:14 <b_jonas> that ship has sailed
23:33:19 <prooftechnique> just get dentures and call it a day hth
23:35:30 <mad> if I can delay the moment I start getting root canals and stuff by a few decades I'll be happy
23:35:42 <myname> i have great teeth
23:36:08 <myname> no matter the amount of brushing, i don't get any problems
23:36:34 <pikhq> If it's not hurting, then it's probably not *urgent*.
23:36:35 <oerjan> myname: that's what i thought about mine.
23:36:53 <pikhq> If it was hurting a lot but now isn't, though, then it's quite urgent. :)
23:37:05 <myname> well, it is like this for almost three decades
23:37:39 <oerjan> <pikhq> If it was hurting a lot but now isn't, though, then it's quite urgent. :) <-- EEK. that's what i experienced the last couple weeks D:
23:37:59 <oerjan> well maybe not a "lot". but somehow it stopped.
23:38:46 -!- sioux000 has quit (Quit: Leaving.).
23:39:11 <oerjan> and i had a dentist appointment and couldn't get myself awake for it.
23:39:28 <b_jonas> pikhq: the filling fell out recently. that means now there's a big gaping hole IN MY TEETH. the hole is impossible to clear, so it will always be full of food. it doesn't hurt now, but it will very soon.
23:39:31 <prooftechnique> My occasional tooth pain is usually mitigated by increasing my vitamin intake
23:39:38 <prooftechnique> I think D and B12 are the big ones?
23:39:57 <oerjan> prooftechnique: i'm taking vitamin pills already.
23:40:04 <olsner> just make sure to mix in enough placebo
23:40:07 <prooftechnique> And ones that I often don't get enough of, probably
23:40:09 <b_jonas> and it's not just that it will hurt, but that very soon it will be so inflammed that it will be impossible to make a permanent filling, so I'll need a temporary one and then another appointment.
23:40:27 <myname> olsner: :D
23:40:36 <b_jonas> the question is not if, but when
23:40:43 <b_jonas> the hole is ugly and deep and big
23:40:46 <b_jonas> and between two teeth
23:40:49 <b_jonas> where it's impossible to clear
23:41:06 <oerjan> <myname> well, it is like this for almost three decades <-- me too
23:41:20 <pikhq> b_jonas: Well, that's at least not immediately worrying but is definitely something to fix.
23:43:18 <oerjan> i had a single cavity in my teens, in a tooth that was later removed due to orthodontics. (at least, later dentists couldn't find it.) then nothing until i was 44.
23:43:42 -!- hppavilion[2] has joined.
23:44:52 <oerjan> b_jonas: OK GET IT FIXED
23:44:52 <HackEgo> [wiki] [[Language list]] https://esolangs.org/w/index.php?diff=46501&oldid=46498 * B jonas * (+91)
23:45:48 <oerjan> i do recall from the web searches that size mattered.
23:46:17 <myname> that's what she said
23:48:19 <oerjan> yoda disagrees
23:49:32 <ais523> ugh, this conversation is causing my teeth to hurt :-(
23:49:36 <ais523> nocebo effect is annoying
23:49:47 <b_jonas> ais523: sorry
23:49:50 <prooftechnique> I'm so sad that Voxelwiki is gone. They left my page up for so long
23:49:58 <ais523> it's time for a routine dentist appointment for me anyway around now though so I may as well book one
23:50:05 <b_jonas> I have some placebo vitamin pills, but not fluoride ones for your teeth
23:50:27 -!- jaboja has quit (Ping timeout: 248 seconds).
23:50:34 <ais523> well I use fluoride toothpaste
23:50:35 <prooftechnique> Try various placebos until you find one that works for you. Surely one of them must be the right kind of fake
23:50:44 <Lymia> !bfjoust test (,)*1000<
23:50:46 <EgoBot> ​Score for Lymia_test: 0.0
23:50:49 <Lymia> !bfjoust test (.)*1000<
23:50:51 <EgoBot> ​Score for Lymia_test: 6.1
23:50:57 <Lymia> !ztest test (,)*1000<
23:50:58 <zemhill> Lymia.test: points -46.00, score 0.00, rank 47/47
23:51:01 <Lymia> !ztest test (.)*1000<
23:51:01 <zemhill> Lymia.test: points -35.33, score 2.72, rank 47/47
23:51:15 <ais523> I think most BF Joust interpts treat , as a comment
23:51:19 <ais523> rather than as a no-op
23:51:45 <Lymia> Yeah
23:51:47 <Lymia> I was just confirming
23:52:19 <b_jonas> !ztest ddecoy (+)*127>(+)*129(.)*-1
23:52:19 <zemhill> b_jonas.ddecoy: points -27.57, score 4.41, rank 47/47
23:52:44 <oerjan> <Lymia> I hope that's not actual Perl <-- it could be if you defined @teeth, brush and floss right, no?
23:53:06 <Lymia> bleh implicit variables.
23:53:06 <Lymia> :(
23:54:04 <prooftechnique> !bfjoust ([])*1000<
23:54:04 <EgoBot> ​Use: !bfjoust <program name> <program> . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/
23:54:04 <oerjan> <ais523> it's time for a routine dentist appointment for me anyway around now though so I may as well book one <-- my dentist sends out a card with an appointment once a year. next monday, in fact.
23:54:10 <prooftechnique> !bfjoust test ([])*1000<
23:54:12 <EgoBot> ​Score for prooftechnique_test: 6.1
23:54:25 <prooftechnique> !ztest test ([])*1000<
23:54:25 <zemhill> prooftechnique.test: points -32.14, score 2.99, rank 47/47
23:54:34 <prooftechnique> Not as bad as I expected
23:54:52 <b_jonas> that doesn't look like a very sensible program
23:55:05 <b_jonas> I mean, isn't (.)*-1 better than that?
23:55:50 <b_jonas> !bfjoust pause (.)*-1
23:55:52 <EgoBot> ​Score for b_jonas_pause: 6.1
23:56:05 <ais523> b_jonas: Lymia was checking whether . and , did the same thing
23:56:20 <ais523> the program was designed so that the the score would change based on how long the program lasted before committing suicide
23:56:23 <b_jonas> !bfjoust pause ()*-1
23:56:26 <EgoBot> ​Score for b_jonas_pause: 6.1
23:56:38 <ais523> as some programs will suicide aginst a no-op program in less than 1000 cycles
23:56:47 <ais523> also, "()*-1" is quite the special case
23:56:49 <b_jonas> ais523: yeah
23:56:55 <ais523> !zjoust b_jonas_pause ()*-1
23:56:55 <zemhill> ais523.b_jonas_pause: points -32.14, score 2.99, rank 47/47
23:57:04 <ais523> wouldn't surprise me if some interps hanged on that
23:57:29 <Lymia> !bfjoust two_people_running_from_a_shark >+([+]) * -1=≡(>[-])> *-1=≡(>[-])>
23:57:32 <EgoBot> ​Score for Lymia_two_people_running_from_a_shark: 1.8
23:57:44 <b_jonas> !bfjoust pause ((({})*999999)*9999999)*999999
23:57:55 <prooftechnique> !bfjoust test (-[{>}+])%3
23:57:57 <ais523> I'm not sure you can put comments between the () and the *
23:57:58 <oerjan> ais523: yeah fizzie did some special code to catch empty loop blocks
23:58:02 <Lymia> !bfjoust two_people_running_from_a_shark >+([+]) *-1=≡(>[-])> *-1=≡(>[-])>
23:58:08 <oerjan> so it should not hang zemhill at least
23:58:29 <Lymia> !ztest two_people_running_from_a_shark >+([+]) *-1=≡(>[-])> *-1=≡(>[-])>
23:58:30 <zemhill> Lymia.two_people_running_from_a_shark: points -18.19, score 3.93, rank 47/47
23:58:43 <prooftechnique> !ztest test (-[{>}+])%3
23:58:43 <zemhill> prooftechnique.test: points -43.26, score 0.28, rank 47/47
23:58:45 <Lymia> !ztest two_people_running_from_a_shark >+([]+) *-1=≡(>[-])> *-1=≡(>[-])>
23:58:46 <zemhill> Lymia.two_people_running_from_a_shark: points -22.88, score 3.54, rank 47/47
23:58:47 <ais523> I just tested juiced
23:58:55 <b_jonas> did it reply to mine yet?
23:58:58 <prooftechnique> !ztest test (<{(+{(>)*5}-)%3})%5
23:58:58 <zemhill> prooftechnique.test: points -46.00, score 0.00, rank 47/47
23:59:01 <ais523> it appears to slow down noticeably, and outputs a debug message ()*10000001
23:59:06 <prooftechnique> Fascinatingly bad
23:59:13 <ais523> so I guess it's actually running 10 million empty loop iterations
23:59:18 <ais523> prooftechnique: it starts with a <
23:59:19 <Lymia> !ztest two_people_running_from_a_shark >+([+]) *8=≡(>[-])> *-1=≡(>[-])>
23:59:20 <zemhill> Lymia.two_people_running_from_a_shark: points -14.67, score 8.11, rank 47/47
23:59:23 <ais523> that is not normally a good way to do well
23:59:28 <Lymia> !ztest two_people_running_from_a_shark >+([]) *8=≡(>[-])> *-1=≡(>[-])>
23:59:29 <zemhill> Lymia.two_people_running_from_a_shark: points -33.48, score 2.77, rank 47/47
23:59:38 <ais523> in fact, editing a program to start with an < is the normal way to remove it from the hill
23:59:39 <Lymia> !ztest two_people_running_from_a_shark >+([+]) *8=≡(>[-])> *-1=≡(>[-])>
23:59:40 <zemhill> Lymia.two_people_running_from_a_shark: points -14.67, score 8.11, rank 47/47
23:59:45 <oerjan> !zjoust test (()*-1,)*-1<
23:59:46 <zemhill> oerjan.test: points -46.00, score 0.00, rank 47/47
2016-03-07
00:00:18 <b_jonas> !bfjoust pause2 ()*99999999999
00:00:23 <ais523> Lymia: the reason the current version does better than the []*8 version is that it at least has a chance of locking a naive clear loop
00:00:26 <b_jonas> !bfjoust pause3 ({})*99999999999
00:00:50 <ais523> !bfjoust attack1 [>[-]+]
00:01:02 <Lymia> !ztest two_people_running_from_a_shark >+([]) -=≡(>[-])> *-1=≡(>[-])>
00:01:02 <zemhill> Lymia.two_people_running_from_a_shark: points -21.76, score 7.19, rank 47/47
00:01:06 <ais523> b_jonas: should be ({})%99999999999 (with however many 9s you want) to comply with the spec
00:01:12 <b_jonas> ah
00:01:19 <b_jonas> !bfjoust pause4 ({})%99999999999
00:01:31 <ais523> in retrospect, we should probably cap loop iterations to 100000, there's no reason not to
00:01:36 <ais523> (but even then, nested loops could be a DoS)
00:02:12 <prooftechnique> !bfjoust fishbones >+]]]][-]>
00:02:23 <b_jonas> what are the interpreters written in? something that uses bigints by default?
00:02:26 <prooftechnique> !ztest fishbones >+]]]][-]>
00:02:26 <zemhill> prooftechnique: error: parse error: terminating ] without a matching [
00:02:33 <ais523> juiced is written in C
00:02:37 <prooftechnique> Aww.
00:02:58 <b_jonas> !bfjoust pause5 ()%99999999999
00:03:15 <Lymia> I'd probably try to fix () with some sort of AST manipulation
00:03:25 <ais523> !ztest google http://google.com
00:03:25 <fizzie> The thing that's powering zemhill is also written in C, and the command to parse numbers actually does cap at 100000.
00:03:25 <b_jonas> maybe it's still stuck on the first one and doesn't start to run the rest
00:03:25 <zemhill> ais523: error: parse error: encountered { without suitable enclosing (
00:03:35 <fizzie> Or at whatever MAXCYCLES is defined as, but anyway.
00:03:45 <b_jonas> !bfjoust dead <
00:03:51 <ais523> fizzie: margins3 and preparation both care about the exact value of the cycle cap
00:03:58 <b_jonas> see
00:04:04 <ais523> both of them could be modified to handle a different cycle cap, but would need the modification
00:04:11 <ais523> b_jonas: you killed hackego?
00:04:23 <b_jonas> ais523: or at least its bfjoust or something
00:04:27 <b_jonas> um, what other command does it have?
00:04:38 <b_jonas> `ping
00:04:40 <fizzie> EgoBot, not HackEgo.
00:04:40 <oerjan> <b_jonas> maybe it's still stuck on the first one and doesn't start to run the rest <-- i think so. i haven't seen any response since then.
00:04:42 <HackEgo> pong
00:04:52 <oerjan> !sh echo hi
00:04:53 <ais523> !bf8 ++++++++[->++++++++<]>.
00:04:53 <EgoBot> hi
00:04:53 <EgoBot> ​@
00:05:11 <ais523> HackEgo often did have problems with concurrent submissions
00:05:23 <ais523> so maybe there's some sort of locking involved
00:05:28 <ais523> that breaks on a time out
00:05:47 <ais523> s/HackEgo/EgoBot/g/recently
00:06:19 <b_jonas> ais523: oh, you mean if I submit two programs at the same time, I can get it to break and allow two of my knights on the same tapes?
00:06:37 <ais523> it had a tendency to rerun apparently unrelated results
00:06:40 <ais523> thus confusing the output
00:06:53 <ais523> was normally visible in http://codu.org/eso/bfjoust/in_egobot/breakdown.txt
00:06:58 <ais523> also, wow, look at that atm
00:07:00 <ais523> a bunch of invalid unicode
00:07:19 <ais523> and output interspersed in other output
00:07:24 <ais523> `fetch http://codu.org/eso/bfjoust/in_egobot/breakdown.txt
00:07:27 <HackEgo> 2016-03-07 00:07:05 URL:http://codu.org/eso/bfjoust/in_egobot/breakdown.txt [8451/8451] -> "breakdown.txt" [1]
00:07:29 <ais523> (for the benefit of logreaders)
00:07:38 <ais523> `paste breakdown.txt
00:07:40 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/file/tip/breakdown.txt
00:07:44 <ais523> `rm breakdown.txt
00:07:46 <HackEgo> No output.
00:07:48 <Lymia> !ztest (.)*-2 3
00:07:48 <zemhill> Lymia: Program name ((.)*-2) is restricted to characters in [a-zA-Z0-9_-], sorry.
00:07:53 <Lymia> !ztest f (.)*-2<
00:07:53 <zemhill> Lymia.f: points -32.14, score 2.99, rank 47/47
00:07:58 <Lymia> !ztest test (.)*-2<
00:07:58 <zemhill> Lymia.test: points -32.14, score 2.99, rank 47/47
00:08:00 <Lymia> !ztest test (.)*-0<
00:08:00 <zemhill> Lymia.test: points -46.00, score 0.00, rank 47/47
00:08:11 <fizzie> ais523: Your paste link no longer works, now that you removed the file.
00:08:13 <Lymia> !ztest test (<)*0
00:08:14 <zemhill> Lymia.test: points -32.14, score 2.99, rank 47/47
00:08:16 <Lymia> !ztest test (<)*-0
00:08:17 <zemhill> Lymia.test: points -32.14, score 2.99, rank 47/47
00:08:18 <Lymia> !ztest test (<)*--0
00:08:18 <zemhill> Lymia.test: points -32.14, score 2.99, rank 47/47
00:08:23 <fizzie> "breakdown.txt@d57f8e8d353c: not found in manifest"
00:08:23 <Lymia> !ztest test (<)*-----0
00:08:23 <zemhill> Lymia.test: points -32.12, score 2.99, rank 47/47
00:08:34 <ais523> fizzie: seriously? I thought it'd permalink :-(
00:08:35 <Lymia> !ztest test (.)*-----1<
00:08:35 <zemhill> Lymia.test: points -46.00, score 0.00, rank 47/47
00:08:39 <ais523> `revert
00:08:41 <Lymia> Messing with parsing. \o/
00:08:45 <HackEgo> rm: cannot remove `/home/hackbot/hackbot.hg/multibot_cmds/env/.hg/store/data/canary.orig': Is a directory \ Done.
00:08:48 <Lymia> I have no idea how this parses.
00:08:49 <ais523> `paste < breakdown.txt
00:08:50 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/file/tip/%3C%20breakdown.txt
00:08:55 <Lymia> !ztest test (<)*
00:08:56 <zemhill> Lymia.test: points -32.14, score 2.99, rank 47/47
00:08:56 <ais523> `` paste < breakdown.txt
00:08:59 <Lymia> !ztest test (<)*-----
00:08:59 <zemhill> Lymia.test: points -32.12, score 2.99, rank 47/47
00:09:00 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/file/tip/paste/paste.32218
00:09:01 <Lymia> !ztest test (<)*-----1
00:09:01 <zemhill> Lymia.test: points -32.12, score 2.99, rank 47/47
00:09:02 <Lymia> !ztest test (<)*-----0
00:09:02 <zemhill> Lymia.test: points -32.12, score 2.99, rank 47/47
00:09:04 <ais523> there we go
00:09:08 <ais523> `rm breakdown.txt
00:09:10 <HackEgo> No output.
00:09:23 <fizzie> Yeah, it's an "optimization" to not generate a new file when given a file name.
00:09:44 <fizzie> Also the invalid characters in breakdown.txt seemed to be just 0 bytes.
00:09:44 <ais523> but seriously, poor HackEgo
00:09:48 <Lymia> !ztest test (<)%
00:09:48 <zemhill> Lymia.test: points -32.14, score 2.99, rank 47/47
00:09:55 <Lymia> !ztest test (<)% 1
00:09:55 <zemhill> Lymia.test: points -46.00, score 0.00, rank 47/47
00:10:02 <ais523> fizzie: I was guessing NUL bytes, they're a common symptom of two concurrent accesses to the same file without locking
00:10:02 <Lymia> !ztest test (<)%CC1
00:10:02 <zemhill> Lymia.test: points -46.00, score 0.00, rank 47/47
00:10:04 <Lymia> !ztest test (<)%C-C1
00:10:05 <zemhill> Lymia.test: points -32.14, score 2.99, rank 47/47
00:10:11 <Lymia> !ztest test (<)%C-1
00:10:11 <zemhill> Lymia.test: points -46.00, score 0.00, rank 47/47
00:10:27 <Lymia> Canonization is going to be a pain.
00:11:19 <hppavilion[2]> Lymia: Does zemhill work in privmsg?
00:11:22 <Lymia> yep
00:11:49 <hppavilion[2]> Lymia: Is there a reason you aren't using it then?
00:11:50 <ais523> also over the Web, although it can't auth you there
00:11:54 <Lymia> !ztest test (<)
00:11:54 <zemhill> Lymia.test: points -32.14, score 2.99, rank 47/47
00:11:55 <Lymia> nope.
00:12:00 <Lymia> !ztest test {<}
00:12:00 <zemhill> Lymia: error: parse error: encountered { without suitable enclosing (
00:12:25 <ais523> <juiced> {} with no matching ()
00:14:08 <fizzie> I think (<)%C-1 gets interpreted (by zemhill) identically to (<)*-1, while (<)%C-C1 is just the empty program.
00:14:17 <Lymia> Yeah.
00:14:23 <Lymia> Looks like it tokenizes somehow.
00:14:29 <Lymia> >-1[<<]
00:14:33 <Lymia> !ztest test >-1[<<]
00:14:34 <zemhill> Lymia.test: points -46.00, score 0.00, rank 47/47
00:14:38 <Lymia> !ztest test >*-1[<<]
00:14:39 <zemhill> Lymia.test: points -46.00, score 0.00, rank 47/47
00:14:42 <Lymia> !ztest test >()*-1[<<]
00:14:42 <zemhill> Lymia.test: points -32.14, score 2.99, rank 47/47
00:14:53 <Lymia> Context sensitive too.
00:15:03 <b_jonas> I'm sorry for breaking the bot
00:15:11 <hppavilion[2]> ais523: Is a LISP that compiles to JS a reasonable goal for a first transpiler?
00:15:17 <ais523> juiced responds to "(>)C*-1" with ") not followed by % or *"
00:15:23 <fizzie> Well, if you can call it that. It's more that it ignores "non-meaningful" characters in most contexts, except after it's found the start of the number. So the C before the - is skipped, but the C between - and 1 isn't, so the count's just 0 for the latter.
00:15:24 <hppavilion[2]> ais523: IYHONHO?
00:15:29 <ais523> hppavilion[2]: it's not terrible, especially as javascript has first-class functions
00:15:37 <hppavilion[2]> ais523: That's what I was thinking
00:15:46 <ais523> also surely you mean IYHONSHO?
00:15:47 <hppavilion[2]> ais523: The part I was scared of is quote and unquote
00:15:50 <Lymia> I'm trying to gather all the programs that ever existed on the hill
00:15:56 <Lymia> And I'm working on a component to canonicalize stuff.
00:16:02 <hppavilion[2]> ais523: What does THAT mean?
00:16:25 <hppavilion[2]> (Mine was "In Your Humble (Or Not Humble) Opinion")
00:16:35 <ais523> "not so humble"
00:16:38 <fizzie> You could actually say it treats anything that's not +-<>.,[](){}*%0123456789 as whitespace, and ignores whitespace except in the middle of a number.
00:16:43 <hppavilion[2]> ais523: Ah
00:16:44 <ais523> by analogy with IMNSHO
00:16:54 <hppavilion[2]> ais523: Is that the one I use, or is that common?
00:17:00 <hppavilion[2]> IMNSHO that is
00:17:25 <ais523> hmm, (>)*C-1 seems to be interpreted as (>)*0 by juiced
00:17:36 <ais523> err, as (>)*0-C by juicd
00:17:42 <ais523> (the - is parsed as an instruction)
00:17:44 <hppavilion[2]> I think I independently discovered IMNSHO, but it may already have been known
00:18:00 <ais523> it used to be fairly common, especially on usenet
00:18:03 <ais523> it's not used much nowadays
00:18:04 <hppavilion[2]> Ah
00:18:23 <b_jonas> I still see “IMNSHO” in irc I think.
00:18:28 <hppavilion[2]> IMNSHO, it should be used more
00:18:58 <fizzie> ais523: I used to have a ") not followed by % or *" error, but then some program in the sample sets contained something akin to (this is a comment where there's (something) in parentheses)*0.
00:19:11 <oerjan> !ztest b_jonas_pause ((({})*999999)*9999999)*999999
00:19:11 <zemhill> oerjan.b_jonas_pause: points -32.14, score 2.99, rank 47/47
00:19:24 <oerjan> zemhill is rather more resilient
00:19:29 <ais523> fizzie: I dislike it when hill interps are permissive, as that means I have to correct other people's programs for local testing
00:20:21 <ais523> IIRC there was a controversy about "()* 1" and "() *1" (as opposed to the uncontroversial "()*1 ") which I had to patch in juiced at one point
00:20:32 <ais523> to have any hope of compatibility with what other people were doing
00:20:34 <JX7P> urgh, manually written parsers. damnit Geany
00:20:56 <prooftechnique> sizeof(hppavilion) / sizeof(hppavilion[0])
00:21:38 <oerjan> istr some programs had to be patched when the grammar changed (disallowing unmatched [] in ()*, iirc)
00:21:55 <oerjan> *accepted grammar
00:22:01 <Lymia> !ztest b_jonas_pause ((({.})*999999)*9999999)*999999
00:22:01 <zemhill> Lymia.b_jonas_pause: points -32.14, score 2.99, rank 47/47
00:22:02 <fizzie> "help ()*0 comments" says the commit message which introduced that change.
00:22:16 <Lymia> !ztest b_jonas_pause ((({.})*999999)*9999999)%999999
00:22:16 <zemhill> Lymia.b_jonas_pause: points -32.14, score 2.99, rank 47/47
00:22:20 <Lymia> +1
00:22:24 <Lymia> !ztest b_jonas_pause ((({.}.)*999999)*9999999)%999999
00:22:24 <zemhill> Lymia.b_jonas_pause: points -32.14, score 2.99, rank 47/47
00:22:31 <b_jonas> Lymia: try adding some %
00:22:46 <Lymia> !ztest b_jonas_pause (((({[.}.}.)*999999)*9999999)%999999)%999999
00:22:46 <zemhill> Lymia: error: parse error: terminating } without a matching {
00:22:51 <Lymia> !ztest b_jonas_pause (((({{.}.}.)*999999)*9999999)%999999)%999999
00:22:51 <zemhill> Lymia.b_jonas_pause: points -32.14, score 2.99, rank 47/47
00:23:02 <b_jonas> um
00:23:12 <b_jonas> near the {} or something
00:23:22 <b_jonas> !ztest syntaxerror }
00:23:22 <zemhill> b_jonas: error: parse error: terminating } without a matching {
00:23:25 <b_jonas> !ztest syntaxerror )
00:23:25 <zemhill> b_jonas: error: parse error: terminating ) without a matching (
00:23:34 <b_jonas> !ztest syntaxerror ([)*1
00:23:34 <zemhill> b_jonas: error: parse error: [..] crossing out of a ({..}) level
00:23:41 <Lymia> Does it not match ()* in ()% correctly?
00:23:48 <fizzie> Also zemhill considers * and % as synonyms.
00:23:51 <b_jonas> !ztest syntaxerror ({)*1(})*1
00:23:51 <zemhill> b_jonas: error: parse error: starting { without a matching }
00:23:54 <Lymia> :S
00:23:55 <Lymia> I see.
00:24:09 <b_jonas> !ztest syntaxerror {}
00:24:09 <zemhill> b_jonas: error: parse error: encountered { without suitable enclosing (
00:24:16 <b_jonas> !ztest syntaxerror ({{}})
00:24:16 <zemhill> b_jonas: error: parse error: encountered { without suitable enclosing (
00:24:19 <ais523> b_jonas: (a{b}c)%n is equivalent to (a)*n b (c)*n
00:24:24 <ais523> but allows you to match brackets between a and c
00:24:31 <ais523> this is to make it possible to implement efficiently
00:24:31 <b_jonas> ais523: yep
00:24:55 <ais523> even then, implementing % takes a little thought and most BF Joust interpreters I've seen from non-#esoteric people omit it
00:25:08 <b_jonas> although I think it would be possible to implement the general parenthesis (which allows unbalanced brackets) too, only more difficult to implement
00:25:19 <ais523> how many interps implement outside-%-matches-inside-{} ?
00:25:27 <oerjan> <JX7P> urgh, manually written parsers. damnit Geany <-- the BFJoust ({})% construction is a bit tricky to parse, i don't think it's context-free.
00:26:07 <oerjan> erm, with nested {}s.
00:26:13 <ais523> oerjan: isn't it just program ::= program '(' program '{' program '}' program ')' '%' integer ?
00:26:14 <Lymia> !ztest ({})
00:26:14 <zemhill> Lymia: "!ztest progname code". See http://zem.fi/bfjoust/ for documentation.
00:26:17 <Lymia> !ztest test ({})
00:26:18 <zemhill> Lymia.test: points -32.14, score 2.99, rank 47/47
00:26:23 <ais523> nested {} is the thing that cause problems
00:26:23 <Lymia> !ztest test ({}{})
00:26:23 <zemhill> Lymia: error: parse error: encountered second { on a same level
00:26:27 <ais523> and I'm not sure if it's widely implemented anyway
00:26:28 <Lymia> !ztest test (({}{}))
00:26:28 <zemhill> Lymia: error: parse error: encountered second { on a same level
00:26:31 <Lymia> !ztest test (({}){})
00:26:31 <zemhill> Lymia.test: points -32.14, score 2.99, rank 47/47
00:26:37 <Lymia> Even though it's an noop context
00:26:38 <ais523> !ztest test (({{}})%2)%2
00:26:38 <zemhill> ais523.test: points -32.14, score 2.99, rank 47/47
00:26:40 <oerjan> ais523: not when you allow {}s to match other than immediately enclosing ()
00:26:40 <Lymia> Interesting. . .
00:27:03 <b_jonas> I mean, you'd have to count the brackets in the expansion of every parenthesis, and track a path in the tree for where the program counter is or something like that
00:27:04 <oerjan> which zemhill and EgoBot both support iirc
00:27:33 <b_jonas> !ztest (({}{})%1)%1
00:27:33 <zemhill> b_jonas: "!ztest progname code". See http://zem.fi/bfjoust/ for documentation.
00:27:39 <b_jonas> !ztest syntx (({}{})%1)%1
00:27:39 <zemhill> b_jonas: error: parse error: encountered second { on a same level
00:27:46 <b_jonas> !ztest syntax (({})%2)%1
00:27:46 <zemhill> b_jonas.syntax: points -32.14, score 2.99, rank 47/47
00:27:54 <ais523> OK, so with a test program of (1(2{3{4}5}6)%2 7)%2
00:27:56 <fizzie> (a(b{c{d}e}f)%n g)%m => (a(b)*n c)*m d(e(f)*n g)*m, yes.
00:28:18 <ais523> juiced outputs 12231223456675667
00:29:35 <fizzie> I don't have a debug output like that, but that's what zemhill should execute as well.
00:29:57 <ais523> so the way juiced's debug output works is
00:30:04 <ais523> you write ()*n in your program (nothing in the brackets)
00:30:53 <ais523> and it outputs n in a way that can be parsed
00:31:13 <ais523> and when I run a program against the entire hill, I get the various values of n that were used in any of its runs, broken down via program
00:31:19 <ais523> this means that, say, I can write a defence program detector
00:31:21 <ais523> put a ()*1 in it
00:31:31 <ais523> then run it and see which enemy programs my own program considers to be defensie
00:31:33 <ais523> *defensive
00:32:18 <Lymia> Can't you just make an escape
00:32:19 <Lymia> like
00:32:25 <Lymia> ($debug command)
00:32:34 <Lymia> Without making it something that normally parses to noop
00:33:56 <hppavilion[2]> $help
00:34:14 <hppavilion[2]> Huh.
00:34:16 <ais523> Lymia: but that'd prevent me putting these into programs submitted to the hill
00:34:17 <hppavilion[2]> No $ bot
00:34:37 <ais523> ^prefixes
00:34:38 <fungot> Bot prefixes: fungot ^, HackEgo `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, idris-bot ( , jconn ) , j-bot [ .
00:34:54 <oerjan> <b_jonas> although I think it would be possible to implement the general parenthesis (which allows unbalanced brackets) too, only more difficult to implement <-- i've thought about that, the problem is you can get _very_ tricky about where exactly in the hierarchy the matching [ to a ] is.
00:34:59 <HackEgo> [wiki] [[Bf joust]] N https://esolangs.org/w/index.php?oldid=46502 * Ais523 * (+22) caps redirect
00:35:24 <fizzie> You could've made it ($echo foo)*0 etc. though, so that it's not limited to numbers and could do other sort of commands.
00:35:42 <ais523> it always seems weird seeing a miscapitalization, even though that's the whole point of a caps redirect
00:36:09 <ais523> fizzie: then other people could trigger it using malicious comments
00:36:18 <ais523> whereas a ()*5 in someone else's program is clearly harmless
00:36:44 <ais523> !ztest does_this_have_a_distinct_score (+)*-1
00:36:45 <zemhill> ais523.does_this_have_a_distinct_score: points -12.88, score 9.15, rank 47/47
00:37:07 <ais523> !ztest (<{(+)*-1}.)*0
00:37:07 <zemhill> ais523: "!ztest progname code". See http://zem.fi/bfjoust/ for documentation.
00:37:15 <ais523> !ztest empty_percent (<{(+)*-1}.)%0
00:37:16 <zemhill> ais523.empty_percent: points -12.88, score 9.15, rank 47/47
00:37:32 <ais523> oh wow, that is a hard case to handle correctly (and that is the correct handling of it)
00:38:12 <ais523> just tested juiced, it seems broken on it :-(
00:38:16 <ais523> (the whole thing is a no-op on juiced)
00:38:35 <hppavilion[2]> ais523: Perhaps I should make Thoof Bot?
00:38:42 <hppavilion[2]> ais523: One where you can add arbitrary axioms?
00:38:48 <ais523> hppavilion[2]: you can just add an interpreter into HackEgo, can't you?
00:38:52 <ais523> that's what it was originally meant to be for
00:38:56 <hppavilion[2]> ais523: Oh, right
00:39:00 <ais523> before people started filling it with quotes and wisdom, anyway
00:39:14 <ais523> very occasionally it is actually used for its intended purpose
00:39:15 <ais523> `quote
00:39:17 <ais523> `quote
00:39:17 <HackEgo> 579) <ais523> it's not a list of /all/ interesting esolangs, btw; otherwise you can take the first command from the first esolang, the second from the second, the third from the third, etc, then add 1 to all of them <ais523> and you get a new interesting esolang <ais523> diagonal principle…
00:39:18 <HackEgo> 323) <Phantom_Hoover> The system I kind of have in mind makes a flying train a natural consequence.
00:39:18 <ais523> `quote
00:39:19 <HackEgo> 605) <Phantom__Hoover> elliott, cars aren't perfectly spherical.
00:39:20 <ais523> `quote
00:39:20 <HackEgo> 703) <Sgeo_> Why does CL get called functional? <oerjan> it's sort of like how you call ancient greece democratic.
00:39:21 <ais523> `quote
00:39:22 <HackEgo> 1235) <elliott> `addquote <olsner> boily: thanks for getting quoted saying django btw, now I'm only in 87.5% of the django quotes [...] <olsner> ah, the inevitable result of mentioning django
00:39:54 <hppavilion[2]> ais523: Of course, if I do that I have to somehow get it /into/ hackego
00:40:09 <ais523> hppavilion[2]: `fetch is your friend
00:40:11 <ais523> `help fetch
00:40:11 <HackEgo> Runs arbitrary code in GNU/Linux. Type "`<command>", or "`run <command>" for full shell commands. "`fetch <URL>" downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert <rev>" can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/
00:40:17 <hppavilion[2]> ais523: Yes, but I'm an idiot
00:40:26 <ais523> hmm, that command was mis-parsed and yet somehow gave useful outut anyway
00:40:55 <hppavilion[2]> ais523: Is there a HackEgo API I can use?
00:41:08 <hppavilion[2]> ais523: Or perhaps docs on how to write scripts that run on HackEgo?
00:41:16 <ais523> hppavilion[2]: see Linux manpages
00:41:18 <ais523> it's basically just Linux
00:41:20 <hppavilion[2]> ais523: Perhaps
00:42:36 <hppavilion[2]> ais523: I'm going to start looking into how the Thoof command API should work
00:43:16 <hppavilion[2]> ais523: I suppose putting it in HackEgo's better as I don't need to make a full bot this way, AND it'll practically always be online
00:43:56 <Phantom_Hoover> do people actually hate python
00:44:20 <hppavilion[2]> Oh shit
00:44:24 <hppavilion[2]> My computer's not charging
00:44:27 <hppavilion[2]> But the outlet is working
00:44:33 <Phantom_Hoover> like my enduring impression of it is just this perfectly inoffensive language, but you can always find people who hate a given language
00:44:40 <hppavilion[2]> I'm going to try another outlet out of ill-thought-out desperation
00:44:56 <ais523> Phantom_Hoover: I don't hate it /that/ much but I still have a pretty dim view of it
00:45:04 <ais523> enough to get into flame wars with Python fans on occasion
00:45:32 <ais523> hppavilion[2]: check that the other end of the power wire (the one that's not connected to the socket) is connected to the charger
00:45:39 <ais523> this is a reasonably common failure mode and one that's confused me a bunch in the past
00:45:48 <hppavilion[2]> ais523: I did
00:46:17 <hppavilion[2]> Oh god
00:46:18 <ais523> (it's also possible for the charger to become disconnected from the laptop in a way that's non-obvious; this is rarer but it's happened a few times)
00:46:23 <hppavilion[2]> It's on and off charging
00:46:34 <hppavilion[2]> It depends on my angle of sitting
00:46:37 <ais523> oh, that makes it very likely that the end next to the laptop is loose
00:46:43 <ais523> just push it in a bit further
00:46:53 <hppavilion[2]> ais523: It's as far as it'll safely go
00:46:58 <ais523> hmm
00:47:01 <hppavilion[2]> ais523: I think the cord might be shot
00:47:06 <oerjan> ais523: _you_ get into flame wars?
00:47:10 <ais523> in that case it could be – yes
00:47:23 <ais523> oerjan: they are pretty tame by flame war standards
00:47:33 <oerjan> i thought you were this perfectly inoffensive guy.
00:47:49 <ais523> it's more that I'm so inoffensive that I will consider even something pretty minor to be a flame war
00:50:13 -!- PinealGlandOptic has quit (Quit: leaving).
00:50:49 <oerjan> *ACHOO*
00:52:01 <hppavilion[2]> ais523: Should the Thoof have different proofspaces?
00:52:06 <ais523> editor flame wars are fun, I typically take the side of emacs and vim versus everything else
00:52:34 <ais523> normally I can get most of the emacs /and/ vim users round to my side, thus catching out all the other-editor-users who thought they were safe
00:52:43 <ais523> hppavilion[2]: I have no idea
00:52:55 <ais523> to be honest, I'm probably not the right person to ask about a Thue-based proof assistant
00:53:16 <hppavilion[2]> ais523: A proofspace being that you have to do `thoof-addax <space> <axname> "<expression>"
00:54:32 <ais523> well, global state in IRC bots has a tendency to get trampled on
00:54:39 <Phantom_Hoover> so you're going to base it on deductive term rewriting?
00:54:57 <hppavilion[2]> Phantom_Hoover: Yes; it's based on string rewriting, to be exact
00:55:03 <hppavilion[2]> Phantom_Hoover: With s///
00:55:36 <Phantom_Hoover> hmm
00:56:09 <Phantom_Hoover> won't you end up basically implementing a typed lambda calculus in thue, what with curry-howard?
00:56:21 <hppavilion[2]> Phantom_Hoover: I'm trying to decide whether to shove all the axioms in a global namespace or to be precise and specific and allow different proofs
00:56:34 <hppavilion[2]> Phantom_Hoover: Huh?
00:56:34 <oerjan> `addquote <ais523> editor flame wars are fun, I typically take the side of emacs and vim versus everything else <ais523> normally I can get most of the emacs /and/ vim users round to my side, thus catching out all the other-editor-users who thought they were safe
00:56:36 <HackEgo> 1271) <ais523> editor flame wars are fun, I typically take the side of emacs and vim versus everything else <ais523> normally I can get most of the emacs /and/ vim users round to my side, thus catching out all the other-editor-users who thought they were safe
00:56:48 <hppavilion[2]> Phantom_Hoover: How is string rewriting typed lambda calculus
00:56:53 -!- vyv has joined.
00:57:20 <Phantom_Hoover> string rewriting isn't, but to get logic working properly i think you'll end up with a typed LC
00:58:45 <hppavilion[2]> Phantom_Hoover: There are a variety of ways to do what you want in it
00:58:49 <oerjan> <ais523> well, global state in IRC bots has a tendency to get trampled on <-- we don't like _too_ much global state change in HackEgo, it clutters up the history browser.
00:59:05 <ais523> indeed
00:59:20 <ais523> perhaps HackEgo should have some non-versioned temporary state, too
00:59:29 <ais523> that we can expect to get blown away on a regular basis
00:59:59 <oerjan> *ACHOO* more nosedrops ->
01:00:07 <olsner> ooh, interesting approach to editor flame wars
01:00:15 <hppavilion[2]> Phantom_Hoover: Typed λ-calculus is one way to do things, but it is not necessary
01:00:16 <Phantom_Hoover> like presumably you'll want some way to express the statement "forall x, A(x) implies B(x)" where A, B are some formulaic statements about x
01:01:21 <hppavilion[2]> Phantom_Hoover: That's possible, but not how you go about it
01:01:50 <hppavilion[2]> Phantom_Hoover: Thoof is based on proving strings from other strings together with substitutions
01:01:54 <Phantom_Hoover> and some rewriting rule that lets you turn a proof of that, and an x, and a proof of A(x) into a proof of B(x)
01:02:09 <hppavilion[2]> Phantom_Hoover: You can do that, but that's not the goal
01:02:46 <hppavilion[2]> Phantom_Hoover: Substitutions are based on PCRE regexes, Phantom_Hoover.
01:03:26 <Phantom_Hoover> you're just describing a string rewriting system here, not a string rewriting system that implements a proof assistant
01:04:13 <Phantom_Hoover> to make it a proof assistant you'll have to define some kind of encoding of logic into your strings, and rewriting rules that let you make deductions
01:04:43 <HackEgo> [wiki] [[BF Joust strategies]] https://esolangs.org/w/index.php?diff=46503&oldid=46497 * Ais523 * (+1501) /* Synchronization */ renamed to /* Reconnaissance */ mention the strategy Lymia.nyuroki uses, expand/adapt a bit
01:04:58 <Phantom_Hoover> e.g. the deduction and rule i described above, which is essentially function application
01:05:55 <HackEgo> [wiki] [[BF Joust strategies]] M https://esolangs.org/w/index.php?diff=46504&oldid=46503 * Ais523 * (+11) /* Decoy detection */ replace gratuitous Markdown with actual wikimarkup (I posted wikimarkup to a Markdown-using forum a little earlier, so the reverse error a few minutes later is perhaps not that unexpected)
01:08:16 -!- augur has joined.
01:09:48 <hppavilion[2]> Phantom_Hoover: You create axioms and theorems from said axioms and apply the axioms/theorems to other axioms until you get what you want
01:09:54 <hppavilion[2]> Phantom_Hoover: Sounds like a proof assistant to me
01:10:12 <Phantom_Hoover> sure, i never said otherwise
01:10:34 <hppavilion[2]> Phantom_Hoover: The axioms are strings, s/// expressions, and y/// expressions
01:10:47 <hppavilion[2]> Phantom_Hoover: You prove strings, and those strings can represent other things
01:10:59 <hppavilion[2]> Phantom_Hoover: You have to construct things like numbers though
01:11:00 <Phantom_Hoover> what does a y/// expression do
01:11:12 <hppavilion[2]> Phantom_Hoover: Character-by-character substitution, like in Sed
01:11:25 <hppavilion[2]> Phantom_Hoover: Less common than s///, but still potentially VERY useful
01:11:58 <hppavilion[2]> y/S/s/
01:13:44 <Phantom_Hoover> have you made any concrete proofs or anything with this? i'd like to have a clear idea of what you're thinking of
01:13:56 <hppavilion[2]> Phantom_Hoover: Yes, I proved 3+2=5
01:14:00 <hppavilion[2]> Phantom_Hoover: Using Peano arithmetic
01:14:07 <hppavilion[2]> It was more construction than proof, but close enough
01:14:16 <hppavilion[2]> Phantom_Hoover: So do you think it'd be better to have one big proofspace, sort of like lambdabot's functionspace, or multiple proofspaces like in any rational thing ever?
01:14:59 <Phantom_Hoover> do you have a source file or something for it?
01:15:11 <hppavilion[2]> Phantom_Hoover: http://pastebin.com/Ax2v5XSV
01:15:22 <hppavilion[2]> Phantom_Hoover: That's the paste, but I also have the github if you like
01:15:57 <hppavilion[2]> Phantom_Hoover: Oh, crap, wrong file
01:16:30 <hppavilion[2]> Phantom_Hoover: https://github.com/ZodiacWorkingGroup/Thoof/blob/master/construct.thoof
01:16:33 <hppavilion[2]> Just read that
01:17:08 <hppavilion[2]> Phantom_Hoover: Note that the main theorem no longer shows 2+3=5, it instead was made for dealing with lists
01:18:16 <Phantom_Hoover> what's \g?
01:20:05 <Phantom_Hoover> nvm, found a cheatsheet
01:22:10 <hppavilion[2]> Phantom_Hoover: Group reference
01:22:22 <hppavilion[2]> Phantom_Hoover: PCRE groups are invaluable in Thoof proving
01:24:19 <Phantom_Hoover> yes, i'd argue that's because they make it easy to beta reduce
01:24:56 <hppavilion[2]> Phantom_Hoover: Agreed
01:25:09 <hppavilion[2]> Phantom_Hoover: so, single- or multi- proofspace?
01:25:37 <Phantom_Hoover> single, theorem prover naming schemes are a clusterfuck regardless
01:25:43 <hppavilion[2]> Single is easier, but more unwieldy
01:25:49 <hppavilion[2]> OK
01:25:59 <hppavilion[2]> Maybe I'll add multiple in a later version
01:26:20 <hppavilion[2]> Phantom_Hoover: Alternatively, I could speed up the ONLINE thoof, and just publish that sooner and add a sharing feature
01:28:10 <Phantom_Hoover> wait
01:28:12 <Phantom_Hoover> HEAD :: s/(?P<x>[^:]*).*/\g<x>/;
01:28:34 <Phantom_Hoover> won't that clear the entire expression after the first colon... OK i guess that's what you want
01:28:40 <Phantom_Hoover> what if you had a nested array though?
01:30:48 <hppavilion[2]> Phantom_Hoover: That isn't supported in the construction yet
01:31:00 <hppavilion[2]> Phantom_Hoover: Mostly because I have NFC how to do it using regexes alone
01:31:10 <hppavilion[2]> Probably some PCRE bullshit that detects nested parenthesis
01:31:48 <hppavilion[2]> Phantom_Hoover: Think I should just make Thoof's online impl sooner instead of something complicated on IRC
01:32:41 <hppavilion[2]> Phantom_Hoover: If you want to keep the rest, you have to do something complicated with the filesys and stuff (yes, Thoof is going to support a Unix filesys as part of its provingness)
01:33:54 <hppavilion[2]> Phantom_Hoover: Besides, what do you expect it to do with the tail of the list?
01:35:30 <Phantom_Hoover> no that wasn't the issue, it's the fact that it can't recurse and it can't apply
01:37:17 <hppavilion[2]> Phantom_Hoover: It is TC actually
01:37:32 <hppavilion[2]> Phantom_Hoover: The fixpoint operator makes it reduce to Thue
01:37:42 <hppavilion[2]> (Fixpoint is when you prefix an application with @)
01:38:34 <hppavilion[2]> Phantom_Hoover: It also supports pattern matching and multiproving
01:39:26 -!- heroux has quit (Remote host closed the connection).
01:39:35 -!- heroux has joined.
01:43:13 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
01:51:29 -!- andrew__ has joined.
01:52:28 -!- andrew__ has quit (Remote host closed the connection).
01:56:32 -!- hppavilion[2] has quit (Ping timeout: 244 seconds).
02:00:20 -!- AlexR42 has joined.
02:08:07 -!- hppavilion[2] has joined.
02:08:09 -!- hppavilion[2] has changed nick to hppavilion[1].
02:08:28 <hppavilion[1]> tswett: Hi
02:11:55 <prooftechnique> hppavilion[1]: Is that a DEFCON, or a countdown?
02:12:15 <hppavilion[1]> prooftechnique: What part? The [1]?
02:12:25 <prooftechnique> Yeah
02:12:37 <hppavilion[1]> http://smbc-comics.com/index.php?id=2941
02:12:44 <hppavilion[1]> prooftechnique: My nick is usually hppavilion[1]
02:12:50 <hppavilion[1]> prooftechnique: The [2] is my backup nick
02:12:58 <hppavilion[1]> prooftechnique: Which I sometimes am too lazy to change back to [1]
02:13:07 <hppavilion[1]> prooftechnique: It's an array index, hth
02:13:16 <prooftechnique> Are you rivals with hppavilion[0]? hppavilion prime?
02:14:03 <prooftechnique> I thought so, hence my attempt to sizeof(hppavilion) / sizeof(hppavilion[0]), earlier
02:15:00 -!- AlexR42 has quit (Quit: My Mac has gone to sleep. ZZZzzz…).
02:15:43 <hppavilion[1]> prooftechnique: hppavilion['wc'] is my alter ego, when hexchat stops working. It's very strange and causes a type error in most languages.
02:16:03 <prooftechnique> How rude
02:17:06 <hppavilion[1]> prooftechnique: Also, I'm not an array so much as a haskell-like list
02:17:23 <hppavilion[1]> prooftechnique: But one that can be indexed with [] in postfix, because I'm written in haskll
02:17:26 <hppavilion[1]> *haskell
02:17:31 <hppavilion[1]> I'm written in Jskell
02:17:37 <hppavilion[1]> jayskell
02:29:03 -!- hppavilion[1] has quit (Ping timeout: 244 seconds).
02:35:36 -!- hppavilion[1] has joined.
02:35:36 <\oren\> godammn windows update holding computer hostage
02:38:16 <prooftechnique> Windows is shutting down now!
02:39:47 -!- augur has quit (Remote host closed the connection).
02:44:44 -!- p34k has quit.
02:57:17 -!- andrew__ has joined.
02:57:25 -!- andrew__ has quit (Read error: Connection reset by peer).
03:02:46 -!- blockzombie has left.
03:16:52 <hppavilion[1]> \oren\: As an arbitrary selection, I have a question: Which should I put effort into first- a Haskell-like language that compiles to JS (jayskell), or a LISPy language that also compiles to JS?
03:17:07 <hppavilion[1]> \oren\: Or some other language format?
03:18:28 <mad> what kind of software do you want to write?
03:19:19 <hppavilion[1]> mad: Fun software that runs on the web
03:21:21 <mad> runs on the web? like on people's browsers or on servers?
03:23:05 <hppavilion[1]> mad: In browsers
03:23:40 <hppavilion[1]> mad: It's just another language that compiles to JS so we don't have to use that godawful language and can instead use one we're more familiar with the mindset of
03:24:01 <mad> JS isn't THAT bad
03:24:23 <hppavilion[1]> mad: It's pretty bad
03:24:27 <zzo38> I happen to think JavaScript is pretty good actually
03:24:42 <hppavilion[1]> zzo38: It may be good for its niche, but it isn't very good in general
03:24:43 <zzo38> I am writing a X client library in JavaScript.
03:25:04 <zzo38> I also wrote a Z-machine implementation in JavaScript, too.
03:25:25 <hppavilion[1]> zzo38: I heard
03:25:45 <hppavilion[1]> Ugh
03:25:54 <hppavilion[1]> At 27% battery and can't get my charger to work
03:27:14 -!- hppavilion[2] has joined.
03:28:54 -!- lleu has quit (Quit: That's what she said).
03:30:11 -!- hppavilion[1] has quit (Ping timeout: 248 seconds).
03:30:33 -!- oerjan has quit (Quit: Nite).
03:36:33 -!- hppavilion[2] has quit (Ping timeout: 240 seconds).
03:42:09 -!- hppavilion[2] has joined.
03:42:40 -!- nisstyre has joined.
03:44:47 <hppavilion[2]> mad: What paradigms would be good for web that haven't been done much yet?
03:56:25 -!- hppavilion[2] has quit (Ping timeout: 240 seconds).
04:24:45 -!- AlexR42 has joined.
04:27:44 -!- idris-bot has joined.
04:36:19 <zgrep> If what people have done to the web so far is to be taken into account, then apparently all of them.
04:38:14 <myname> anything stateful would be good for the web
04:40:42 -!- treaki_ has joined.
04:44:47 -!- treaki__ has quit (Ping timeout: 260 seconds).
04:46:38 <ais523> maybe ther are no paradigms that are good for web?
04:47:34 <myname> that too
04:54:56 <mad> hm
05:00:53 -!- hppavilion[2] has joined.
05:01:08 <mad> maybe it could have the model where instead of having a single script control gfx elements like buttons and so forth
05:01:28 -!- AlexR42 has quit (Quit: My Mac has gone to sleep. ZZZzzz…).
05:01:59 <mad> it could instead have buttons etc and you attach an individual script to a button/object
05:02:29 <mad> with easy callbacks like :onclick()
05:03:18 <mad> and individual scripts each have their own thread
05:03:44 <mad> which gets a timeslice until the next wait() statement every displayed frame
05:04:36 <Taneb> I am not sure why I am awake but I am
05:06:47 <myname> because you do not sleep
05:07:47 -!- hppavilion[2] has quit (Ping timeout: 248 seconds).
05:20:42 <ais523> Taneb: because when you're tired, it makes it harder to make decisions, and one such decision is to go to sleep
05:20:55 <ais523> this is something I have problems with myself
05:21:22 <Taneb> ais523, actually, I went to bed at half past ten
05:21:33 <ais523> am or pm?
05:21:36 <Taneb> pm
05:21:50 <ais523> 10:30 to 5:21 is about 7 hours
05:21:58 <ais523> which is a reasonable amount of night's sleep
05:22:03 <Taneb> I got out of bed at 4:40
05:22:14 <Taneb> First woke up at 3:27
05:22:17 <ais523> oh, hmm
05:22:21 <ais523> I get out of bed long after I wake up
05:22:27 <ais523> but that's at least partly because I do most of my work in bed
05:24:27 <ais523> hm, a spambot is trying to sell me web design services:
05:24:35 <ais523> "1.) Website Design & Redesign - (Logo design, Flash, Photoshop to HTML/ HTML5)"
05:25:08 <ais523> I'm not 100% sure how this parses, but it seems to involve "Photoshop to HTML" either as a unit or as part of a larger whole, no matter how it's parsed
05:25:59 <ais523> they also apparently do Windows Phone and Blackberry in addition to Android and iPhone
05:26:34 <ais523> in terms of app development
05:34:05 <myname> lol flash
05:34:33 <coppro> "Furthermore, if one counts demonstrations *not* based on quantum computing, some people have claimed even earlier precedents for [the theorem that 3 \times 5 = 15]."
05:35:16 <pikhq> That sounds like an occasionally useful theorem.
05:35:52 <coppro> furthermore, scott aaronson is hopeful that quantum computing will soon be able to tackle the factorization of large numbers like 91
05:36:05 <pikhq> One does wonder.
05:37:21 <ais523> coppro: what do you think of the theory that quantum computing will prove the many-worlds hypothesis of quantum mechanics via violating bounds on the processing power that can exist in one universe?
05:37:39 <ais523> if something like that /is/ the case, it could be that "large" quantum computers are impossible to construct
05:37:47 <mad> quantum computers sound like something that's great for the NSA to have but not really for anyone else
05:38:05 <coppro> ais523: I think that's a stupid view
05:38:23 <coppro> many-worlds is not really a theory so much as an interpretation
05:38:25 <Taneb> mad, I hope it's useful because next year I'm doing two modules on them
05:38:39 <coppro> it's the science fiction authors who ran with it and then everybody started getting philosophical
05:38:39 <ais523> mad: having faster algorithms often ends up having applications unrelated to crypto
05:38:41 <mad> o
05:39:01 <ais523> hmm, I was going to say "is there a quantum solution to the travelling salesman problem"
05:39:11 <mad> hmm
05:39:15 <coppro> by which you mean BQP, presumably?
05:39:24 <mad> ais523 : I think there might be
05:39:32 <ais523> coppro: by which I meant a quantum computer, but then I remembered NP =? BQP
05:39:36 <ais523> and realised the question wasn't interesting
05:39:45 <ais523> except inasmuch as NP =? BQP is interesting
05:40:45 <pikhq> Yeah, many-worlds as physicists think of it is rather less silly than what philosophers think. :)
05:41:07 <pikhq> Well, "philosophers".
05:41:25 <mad> there's a difference between the physicists' many-worlds?
05:41:35 <ais523> it's basically just a debate about whether the universe uses threads or processes
05:42:13 <pikhq> Physicists notion of "many-worlds" is basically just "for each possible state in a quantum superposition, those states can be said to exist."
05:42:35 <shachaf> pikhq: what about "many-worlds" in linear logic twh
05:42:51 <coppro> importantly
05:43:01 <ais523> hmm, and /now/ I'm reminded of the proof that God exists due to God being defined as having all positive qualities, and existence is a positive
05:43:11 <coppro> many-worlds (usually) makes no actual predictions, so it's not really a hypothesis
05:43:14 <ais523> I am not convinced that that holds up either logically or theologically
05:43:29 <coppro> ais523: more precisely
05:43:30 <mad> ais523 : that's a classic
05:43:34 <ais523> (how do you define a positive quality anyway?)
05:43:50 <coppro> the argument goes "consider the greatest possible being. This being must exist, because if it didn't, surely a being that existed would be greater."
05:43:58 <coppro> which presupposes the existence of a greatest possible being
05:44:08 <pikhq> coppro: Yeah, many-worlds really is just "well, this is what the equations describe".
05:44:09 <ais523> coppro: well if there aren't infinitely many beings…
05:44:10 <mad> yeah it has all sorts of logical flaws
05:44:48 <ais523> however, I think that argument is equivalent to "nothing is better than eternal life, a ham sandwich is better than nothing, therefore a ham sandwich is better than eternal life"
05:45:06 <ais523> one of the "greatest" is a "greatest hypothetical", the other is a "greatest currently existing", and the two are conflated
05:45:08 <coppro> ais523: infinitely many *possible* beings, though?
05:45:22 <shachaf> ais523: I remember reading about this in a Smullyan book.
05:45:23 <coppro> not to mention the assumption of an upper bound, which not all posets possess
05:45:25 <ais523> coppro: it's conflating two different things and hoping you don't notice
05:45:39 <shachaf> Would you say that everything exists, or that existence is a property that some things have and some things don't?
05:45:55 <ais523> shachaf: I'd say that that question is a debate about the meaning of the word "everything"
05:46:12 <mad> the concept of a perfect god has many qualities
05:46:33 <mad> but the real-world existance is not a quality of that concept
05:46:36 <coppro> I enjoy the Stewart/Cohen/Pratchett characterization of the argument as being an "argument from God" rather than an "argument for God"
05:47:03 <mad> since real-world existance is a quality of the real world, not a quality of concepts
05:48:16 <mad> it's like a c++ class having a variable that's not in the computer
05:48:52 <ais523> mad: I read that correctly the first time, looked back to it, looked at it again, and misparsed it as meaning something like "the real world defines itself to exist"
05:49:12 <ais523> also, depending on what you mean by "class having a variable", that's totally possible
05:49:19 <ais523> you could have network-abstracted getters and setters
05:49:22 <mad> yeah I'm like... "this fomulation is clumsy"
05:50:03 <ais523> now I'm wondering if stable time loops could exist in real life
05:50:08 <mad> ais523 : well then it's not really a variable, it's something that pretends being a variable with setters and getters
05:50:14 <coppro> ais523: theoretically, yes
05:50:18 <coppro> ais523: CTCs
05:50:36 <coppro> Fascinatingly, depending on their exact properties, they may or may not allow for increased computing power
05:50:47 <ais523> it was eye-opening doing the maths for my semantics and discovering that it worked perfectly fine without causality
05:50:56 <mad> is it possible, in a many-worlds universe
05:51:09 <coppro> mad: question doesn't make sense
05:51:13 <ais523> had to add causality to get it to reflect the thing it was meant to model
05:51:14 <coppro> many-worlds makes no predictions
05:51:14 <mad> for an universe to essentially be a dead-end so that
05:51:26 <coppro> ais523: the thing that most makes me want to get a physics phd
05:51:44 <coppro> is that quantum field theory, the most advanced understanding of the microscale world that we have, has no causa,ity
05:51:47 <coppro> *causality
05:52:02 <mad> like, the universe gets to that dead end, decides that it's not possible, so that path is eliminated so that the universe goes through some other path
05:52:05 <ais523> causality really isn't something that drops naturally out of maths and physics
05:52:32 <ais523> hmm, maybe there's a really deep philosophical meaning behind "sometimes things just happen", a phrase whose truth value I've seen heavily debated (but not really with arguments, mostly as a shouting match)
05:52:46 <mad> which has the side effect of skewing event probability statistics for situations that can lead to "dead end" paths
05:53:18 <ais523> mad: this is the theory behind quantum bogosort
05:53:37 <ais523> which should probably never be implemented, because imagine what would happen if you were wrong about how physics works?
05:53:38 <coppro> ais523: no, it isn't. It comes from thermodynamics, but calling them the "laws" of thermodynamics overstates them... I cringe every time I hear something "proven" due to thermodynamics
05:54:08 <ais523> coppro: well the laws of thermodynamics are observations which, so far, appear to hold in the universe
05:54:12 <coppro> ais523: right
05:54:26 <ais523> I'm not sure if we have explanations for why they're true, they're just a data point for helping to understand things
05:54:28 <coppro> but they are defined in terms of causality
05:54:48 <coppro> specifically the directionality of time
05:54:56 <ais523> yes, they're time-asymmetric
05:54:59 <ais523> which is pretty rare, really
05:55:02 <coppro> yes
05:55:05 <coppro> and a huge problem
05:55:08 <coppro> qft is not
05:55:16 <coppro> well
05:55:24 <coppro> it's CPT-symmetric
05:55:48 <coppro> there's a very intereting paper out there on the arxiv discussing the thermodynamics of antimatter
05:56:34 <mad> ais523 : well, I was wondering if this "universe suicide" naturally happens due to the laws of physics
05:56:53 <coppro> it describes models of antimatter where the thermodynamics work parallel or antiparallel to our own, the consequences, and concludes that both are compatible
05:57:14 <coppro> (with physics as we know it, not with each other
05:57:14 <coppro> )
05:57:17 <mad> like the probability density of some event is due to the relative probability of each resulting universe of not comitting universe-suicide
05:57:18 <ais523> mad: so you mean that you think it's impossible to set up a situation in which the universe will eventually be destroyted?
05:57:19 <coppro> but either result is fascinating
05:57:33 <ais523> and that things that would make it easier to happen are less probable as a result?
05:57:47 <ais523> coppro: hmm, what if it's undecidable?
05:57:52 <coppro> ais523: it's not
05:57:53 <mad> ais523 : well, for a specific kind of universe destroying
05:57:56 <coppro> it's a physical property of the universe
05:58:08 <coppro> observable, even
05:58:22 <mad> ais523 : like as if the whole universe decides 'no' and that path is removed from the possibilities retroactively
05:58:26 <ais523> in that case there's not much point in wondering until we get to observe it
05:58:39 <ais523> mad: as I said, this is how quantum bogosort "works"
05:58:39 <coppro> but it's worth thinking of an experiment
05:58:49 <mad> ais523 : right
05:58:52 * ais523 wonders how quickly quantum computers can sort things
05:58:54 <coppro> if antimatter is parallel to matter, then QFT is incomplete because thermodynamics breaks CPT symmetry
05:59:12 <coppro> ais523: n log n
05:59:36 <coppro> if antimatter is antiparallel to matter, then there are regions where thermodynamics work locally backward (though, still, globally forward, assuming a strong enough matter surplus)
05:59:52 <mad> my limited understanding of quantum computers is that basically it's got a distinct independent probability for every combination of qubits in it
05:59:58 <mad> until you collapse it
06:00:11 <coppro> mad: not independent
06:00:13 <ais523> mad: probabilities can be entangled
06:00:18 <coppro> that's rather the point
06:00:30 <ais523> right, you couldn't do useful computation with it otherwise
06:00:48 <mad> well, that's why I said probability for "combinations of qubits" instead of probability for "qubits"
06:00:58 <coppro> but they're not independent
06:01:02 <coppro> and they are not probabilities
06:01:31 <coppro> a quantum system of n qubits is viewed as a 2^n vector, one entry corresponding to each possibly binary state, yes
06:01:32 <mad> yeah it's that weird complex domain thing where the probability is the square of the magnitude right?
06:01:37 <coppro> yes
06:01:56 <coppro> each entry is a complex number with the condition that the vector must have norm 1
06:02:16 <coppro> so an n-qubit system is a point on the 2^n-dimensional complex unit sphere
06:02:51 <coppro> when you measure, the probabilities collapse to classical ones by taking the magnitude squared
06:03:15 <coppro> but when you manipulate qubits, the fact that entries are complex can lead to unintuitive results
06:03:53 <ais523> this sort of thing is what causes wave/particle duality
06:04:07 <myname> i like the H gate
06:04:10 <ais523> quantum electrodynamics has some strong predictive power
06:04:15 -!- lambda-11235 has quit (Quit: Bye).
06:05:15 <myname> H(1) is a state with 50% propability for 0 and 1, H(0) is a state with 50% propability for 0 and 1, H(H(1)) is 1 and H(H(0)) is 0
06:05:33 <coppro> yeah, that's a great example
06:05:59 <coppro> X, Y, and Z are boring by comparison
06:06:35 <myname> it took me a while to make sense
06:06:44 <myname> but there are great youtube videos
06:06:59 <ais523> I implemented shor's algorithm as an a level project
06:07:20 <ais523> (not on a quantum computer, obviously; on a simulator on a regular CPU that did arithmetic on the quantum probabilities)
06:07:48 <coppro> I had a pretty fantastic professor
06:07:50 <myname> i liked the point at one video where someone told he could emulate up to 8 qubits but that would take tbs of ram
06:08:05 -!- lambda-11235 has joined.
06:08:22 <ais523> poor 15
06:08:33 <ais523> everyone factorizes it because they don't have any other options
06:08:33 <coppro> all the lectures were recorded and put up as private videos on youtube too
06:09:15 <ais523> coppro: how useful is that as a student? they're trying to make that happen here but many of the staff are very uncomfortable with it
06:09:37 <coppro> ais523: extremely
06:09:39 <ais523> and gathering more data would be useful to help me know what my opinion should be
06:09:58 -!- hppavilion[wc] has joined.
06:10:01 <coppro> ais523: and I even attended those lectures
06:10:33 <coppro> putting them up privately is an interesting decision
06:10:35 <ais523> there are a ton of students who write down everything the lecturer says, which I never really understood
06:10:53 <coppro> some of them find it easier to learn that way
06:11:22 <coppro> some of them just want reference material that actually matches up to the lectures (which rarely correspond to the textbook, if any, used)
06:11:26 <coppro> some of them don't know better
06:11:36 <coppro> ais523: also interesting that you say "staff"
06:11:45 -!- vyv has quit (Ping timeout: 244 seconds).
06:11:50 <coppro> do you mean teaching staff?
06:11:56 <ais523> coppro: what do you expect me to have said? but yes, teaching staff
06:12:16 <ais523> I imagine the sysadmins are a little annoyed too but mostly in a "more work" sort of way
06:12:39 -!- vyv has joined.
06:13:47 <mad> what if "rejected" universes of the multiverse don't "selfdestruct" like in quantum bogosort but go backwards in time and make themselves impossible? (ok I clearly don't know enough about quantum physics to ask this but I'm still curious)
06:13:56 <coppro> ais523: here, the distinction between "staff" and "faculty" is quite sharply draw
06:13:59 <coppro> *drawn
06:14:15 <zzo38> Do some of students know how to write shorthand so that they can write everything they say?
06:14:15 <ais523> ah right, probably just an international language variant thing
06:14:21 <coppro> mad: it's not really a physics question
06:14:26 <ais523> I'm aware of the word "faculty" being a word but am not really sure what it means
06:14:37 <coppro> ais523: not neceessarily, because there's a class aspect to it
06:14:39 <ais523> zzo38: possibly, but it's common for students to ask lecturers to wait so that the student can finish writing
06:14:51 <ais523> so you can't, as a lecturer, really talk faster than the slowest student writes anyway
06:14:56 <coppro> faculty are the professors and, increasingly, lecturers
06:15:01 <shachaf> @wn faculty
06:15:02 <lambdabot> *** "faculty" wn "WordNet (r) 3.0 (2006)"
06:15:02 <lambdabot> faculty
06:15:02 <lambdabot> n 1: one of the inherent cognitive or perceptual powers of the
06:15:02 <lambdabot> mind [syn: {faculty}, {mental faculty}, {module}]
06:15:02 <lambdabot> 2: the body of teachers and administrators at a school; "the
06:15:04 <lambdabot> dean addressed the letter to the entire staff of the
06:15:06 <lambdabot> university" [syn: {staff}, {faculty}]
06:15:22 <coppro> and ranking administrators, of course, since they must be professors themselves
06:15:24 <ais523> wordnet has a "syn:" on the words
06:15:37 <ais523> wait, there's a rule that administrators must be professors?
06:15:39 <coppro> ais523: many professors here simply go as fast as they can explain the math, and it's up to you to catch up
06:15:53 <coppro> ais523: Anyone with authority over a professor must be.
06:16:07 <zzo38> coppro: Then you must learn shorthand writing
06:16:09 <ais523> here the main problem with finding qualified people to administrate is to persuade them to take the job, few people want to
06:16:11 <coppro> so department chairs, deans, some vice-presidents, and presidents
06:16:16 <ais523> and the people who do are rarely suited for it
06:16:23 <coppro> that's a problem here too, moreso at the department level
06:16:28 <zzo38> If it is up to you to catch up.
06:16:37 <coppro> at the higher ranks, some academics are career administrators and move from school to school
06:16:53 <coppro> the senior administrators don't actually teach, mind you
06:17:11 <mad> academia
06:17:46 <ais523> well, there's a "central administration" which doesn't teach and isn't attached to a subject
06:17:49 <coppro> there is a strong culture that academics should not be subject to non-academics' authoirty
06:18:07 <ais523> but everyone associated with a subject, including as a head of school or whatever, teaches too, as far as I know
06:18:21 <coppro> it depends how high up you are
06:18:29 <coppro> and the size of your unit, etc.
06:18:30 <ais523> what do you do about people like human resources, accounting, etc.?
06:18:37 <coppro> those are the staff
06:18:39 <coppro> "staff"
06:18:42 <ais523> those people have a lot of authority, and sort-of need it to do their jobs
06:18:51 <coppro> they do, but not direct authority
06:18:54 <\oren\> my dad deliberately takes more teaching work in order to avoid administrative work as much as possible
06:18:56 <ais523> but they aren't generally academics and it doesn't make much sense for them to be
06:19:18 <coppro> basically, no academic has a non-academic in their chain of command
06:19:27 <coppro> doesn't mean that the non-academics have no power!
06:19:32 <ais523> chain of command can be fairly meaningless at times
06:19:48 -!- hppavilion[wc] has quit (Quit: Page closed).
06:19:52 <coppro> it's more a matter of principle really
06:20:06 <\oren\> usually they avoid a chain of command by having lots of commitees that my dad never attends
06:20:25 <Taneb> \oren\, what does your dad teach?
06:20:30 <coppro> but it's also to reserve academic decisions to the academics
06:20:31 <\oren\> math
06:20:42 <Taneb> Only one math?
06:20:59 <coppro> since the suppport staff don't make academic decisions, and they never have academics as reports, the academics can't be told what to teach/research by the non-academics
06:21:25 <\oren\> specifically, calculus, logic, and operations research (this year)
06:21:53 <Taneb> Nice!
06:22:14 <ais523> coppro: we can basically be limited in what to research by what we can get funding for
06:22:20 <ais523> which often depends on external entities
06:22:52 <coppro> ais523: that's true here too
06:23:00 <coppro> and the academics chafe against that, naturally
06:23:12 <ais523> yes
06:23:17 <coppro> in large part, the real chafing is against the government
06:23:17 <ais523> some of the requirements are often bizarre
06:23:21 <coppro> as I'm sure you have there too
06:23:57 <ais523> hmm, I'm not sure, the government is many steps away indirectly, and the EU government probably matters more than the UK government for the purpose
06:24:16 <ais523> although that's kind-of specific to being in Europe
06:24:30 <coppro> the government controls the purse-strings, though
06:24:43 <coppro> for instance, a lot of people here in Ontario are upset with the degree of enrollment growth at universities
06:24:51 <coppro> feeling that it's diluting the quality of education
06:25:03 <coppro> but the government has decided that funding is allocated based on enrollment growth so up it goes
06:26:00 <ais523> oh, rapid increases in attendance can be a problem here too
06:26:46 <ais523> we're building constantly to try to keep up; the building I'm in had its layout changed, e.g. all the common rooms were combined into one and the old ones were converted into offices, just to try to get more office space
06:26:56 <Taneb> As a student I'm not really privy to the inner workings of my university, but it got fined a couple of years ago for taking on more students than it could accomodate
06:27:14 <\oren\> well the problem is that people enroll in degrees and don't learn anything useful, and then complain that they can't pay their loans
06:27:22 <Taneb> About 300 students who were guaranteed on-campus accomodation were housed off-campus (I was one of them)
06:27:24 <Lymia> !ztest semanticsTest (>(>{})*1)%2 <<<
06:27:25 <zemhill> Lymia.semanticsTest: points -32.14, score 2.99, rank 47/47
06:27:27 <ais523> and a bunch of the land nearby got bought up and now student accommodation is being built on it (in the passive because I'm not entirely sure who's responsible for that happening)
06:27:32 <Lymia> !ztest semanticsTest (>(>{})*1)%2 <<<<<
06:27:32 <zemhill> Lymia.semanticsTest: points -46.00, score 0.00, rank 47/47
06:27:48 <Lymia> !ztest semanticsTest (>(>{})%1)*2 <<<
06:27:49 <zemhill> Lymia.semanticsTest: points -32.14, score 2.99, rank 47/47
06:27:51 <ais523> Lymia: that's equivalent to (>(>{})%1)*2
06:28:03 <coppro> Taneb: I was on both of said senate and board as a student representative. It was a fascinating experience.
06:28:04 <ais523> and some <s, obviously
06:28:46 <ais523> there was a bed shop nearby which had a slogan that's been much-quoted by my family: "if you can't buy a bed today, you are not in Beds Direct"
06:28:50 <Lymia> I'm not actually sure how to test which way it does it.
06:28:51 <Lymia> But, bleh.
06:28:52 <\oren\> but it is hard to blame people who are told they have to have "a degree in something" to get a job
06:28:56 <Lymia> oh.
06:29:00 <ais523> it got demolished to build more student accommodation, we're a little upset about that
06:29:05 <Lymia> I guess it fits what the wiki says. :/
06:29:18 <ais523> (I assume the slogan worked, given that I did actually get my current bed from there)
06:29:23 <Lymia> "Any parentheses which directly contain braces after expansion of all interior parentheses must be terminated by a %."
06:29:32 <Taneb> ais523, where are they going to get the beds for the student accomodation
06:29:42 <ais523> Taneb: I'm not sure
06:29:50 <Lymia> It implies that, by spec, (({})*2)%2 should be expanded like this: ({}{})%2
06:29:53 <Lymia> Which is invalid.
06:29:57 <ais523> perhaps they took the beds out before they demolished it and are planning to put them back afterwards
06:30:04 <ais523> Lymia: (({})*2)%2 is invalid by spec
06:30:09 <Taneb> That would make sense
06:30:14 <ais523> however, zemhill treats * and % as synonyms
06:30:22 <Lymia> ais523, right.
06:30:23 <ais523> because they're always uniquely distinguishable by where the {} are
06:30:35 <Lymia> I would have expected it to expand like this: (()%2)%2
06:31:06 <Lymia> Which would be a slightly different spec: ()% blocks are matched with their corresponding {} blocks, then expanded first. then ()* blocks are expanded.
06:31:41 <ais523> ({({})%2})%2 is equivalent to (({{}})%2)%2
06:31:48 <ais523> although it'd be a bit clearer if you used larger and different numbers
06:32:12 <mad> would a quantum functionnal language be possible?
06:32:25 <ais523> (({{}})%5)%3 expands to ({({({{}})%5})%5})%5
06:32:32 <Lymia> I'd expect (({})*2)%2 to be valid, and expand to (()*2)*2
06:32:39 <ais523> mad: well the thing about quantum computing is that everything has to be reversible
06:32:50 <ais523> so you could start by trying to make a reversible functional language
06:32:56 <Lymia> I don't see why you can't make a declarative functional language.
06:33:00 <ais523> Lymia: what does (a(b{c}d)*2e)%2 expand to?
06:33:01 <Lymia> Er
06:33:02 <Lymia> quantum*
06:33:31 <ais523> oh, I think I see how you're parsing it
06:33:49 <ais523> a(ba(bcd)*2ed)*2e
06:34:07 <ais523> that actually works, I think
06:34:10 <Lymia> ais523, Under the scheme that distinguishes ()* and ()%? (a(b{c}d)*2e)%2 -> a(ba(bcd)*2ed)*2e
06:34:16 <ais523> next question is "is it useful", but it probably is
06:34:59 <Lymia> But to be less confusing, the BF Joust page should probably just make having )* and )% synonyms is standard, and explain that the two symbols exist for historical reasons.
06:35:10 <Lymia> Or, at least.
06:35:43 <Lymia> Be clear that there's no distinction between )% and )* that lets you make nestings that implementation wouldn't
06:35:48 <mad> i see
06:35:52 <Lymia> Since they're explicitly forbidden.
06:36:26 <ais523> we could arguably change the semantics again
06:36:41 <ais523> the inside {} matches outside % rule is pretty new, and came out of a discussion in #esoteric
06:36:59 <ais523> I still don't use it in any of my programs (even though it would have helped a couple of times) because I don't trust interpreters with it
06:37:20 <ais523> (I don't consider the #esoteric hills to define BF Joust, although IIRC nyuroki was originally written for an implementation that didn't even support %)
06:37:49 <Lymia> That one had a completely different algorithm.
06:37:53 <Lymia> Basically a different program.
06:38:28 <ais523> ah right
06:38:30 <ais523> you just like the name?
06:38:37 <Lymia> Or, well. Yeah. Basically. Didn't check before decoys either.
06:38:42 <Lymia> Not quite
06:38:49 <Lymia> It was originally the same program.
06:38:54 <Lymia> Then lots of changes happened.
06:39:01 <Lymia> So maybe it should have a 2 on the end.
06:39:02 <ais523> hmm
06:39:09 <Lymia> But it didn't
06:39:12 <Lymia> So it doesn't
06:39:28 <ais523> margins3 is basically an entirely different program from margins except that it uses the same basic strategy of playing for a draw if conditions in the first few turns don't work out favourably
06:40:01 <ais523> hmm, that is the first time I've used Firefox's "search for an open tab" thing intentionally
06:40:08 <ais523> to get at the zemhill matrix
06:40:15 <Lymia> Both use the same basic strategy still too.
06:42:55 <ais523> Lymia: btw I updated the wiki article to talk about decoy detection
06:43:39 <Lymia> I saw.
06:44:08 <Lymia> Basically, both versions set decoys, then go do a slowish clear.
06:44:35 <ais523> that's a description of 90% of hilltopping programs over the last several years
06:45:02 -!- lambda-11235 has quit (Quit: Bye).
06:45:08 <Lymia> And its strategy for anti-lock was to nest another copy of the clear loop after it falls through (under some conditions) so it does make leaps of faith.
06:46:21 <ais523> leaps of faith are something that IMO you can't do if you're looking for a 100% win rate, but may help if you're only going for topping the hill
06:46:39 <ais523> certainly, it's possible to do very well by exploiting the existence of leaps of faith on the hill
06:47:29 * ais523 checks if anticipation2 is still there
06:47:41 <Lymia> 0% lose rate rather, right?
06:47:51 <Lymia> If margins had no tripwire
06:47:53 <ais523> it is
06:48:03 <Lymia> It would force leaps of faith, or else, you can't win.
06:48:15 <Lymia> But you'd probably take ties too, if margins is willing to.
06:48:15 <ais523> Lymia: oh, by that, I mean it gets a better than 50:50 record against each other program
06:48:27 <Lymia> ah.
06:48:28 <ais523> there are programs I've written before now that have pulled that off and /not/ topped the hill at that time
06:48:53 <ais523> (although they did so later; in some cases I may have edited my own programs to lose to them temporarily to give them their moment at the top of the hill)
06:49:20 <ais523> margins strikes me as not being the sort of program for which a 100% win rate is feasible
06:49:29 <ais523> although I've been wrong before now
06:51:58 <Lymia> I should try to make a nyuroki 2, or something.
06:52:16 <Lymia> Keep the basic approach, but, actually react appropriately to different behaviors.
06:52:28 <Lymia> Instead of just skipping decoy setup and going straight to rush.
06:53:12 <ais523> the thing is, the basic reactions to behaviours have become so standardised now that people have started exploiting them
06:53:24 <ais523> omnipotence trips enemy tripwires intentionally then starts defending, for exampel
06:53:39 <ais523> which tends to cause the opponents to assume fast rush and not use counter-defence mechanisms
06:54:48 <Lymia> What about..
06:55:03 <Lymia> Set a tripwire right next to your flag, then do the reverse decoy setup?
06:55:04 <Lymia> Hrm.
06:55:27 <ais523> Lymia: right, that's what most programs do at the moment
06:55:38 <ais523> typically checking the tripwire every now and then, and panicking if it gets tripped
06:56:01 <ais523> (the basic problem being that you can /detect/ that the enemy is on your flag, but it's much less clear what you're meant to do about it)
06:56:05 <Lymia> I'm trying to think of if there's a case where
06:56:17 <Lymia> I find a conflicting decoy setup, and it matters if the flag tripwire is broken.
06:56:18 <ais523> various possibilities involve attempted locks, and careless clears
06:56:53 <Lymia> I might steal Margin's double tripwire here, and just attempt a lock.
06:57:07 <ais523> well if the flag tripwire is broken as the result of a decoy clash you can typically assume that the tape's no longer than about 11
06:57:46 <ais523> flag tripwire broken as the result of a deep poke or fast rush is much more likely
06:58:01 <ais523> in either case, decoys aren't going to help, but it's less clear what you should do instead
07:00:20 <Lymia> I jumped straight to cell 14 if I didn't find a decoy conflict, in fact.
07:00:42 <Lymia> That might be a bad assumption though
07:00:54 <Lymia> Since it assumes reverse decoy setups from the opponents.
07:01:09 <coppro> amazing how such a simple game has become so complex
07:01:30 <coppro> maybe if I get really bored someday I'll do genetic evolution of bfjoust programs
07:01:34 <ais523> Lymia: well, I think about BF Joust like this:
07:01:38 <ais523> there are two main classes of programs
07:02:03 <ais523> there's the "standard strategy" programs, for which the actual strategy changes slowly over time, but for which the programs tend to converge
07:02:11 <ais523> and the "experimental" programs that are doing something weird
07:02:24 <ais523> to do well you have to beat both classes
07:02:38 <ais523> beating standard strategy programs normally relies on exploiting their common weaknesses (see, e.g. ais523.counterpoke)
07:03:06 <Lymia> I don't think BFJoust is ammendable to genetic evolution.
07:03:16 <ais523> beating experimental programs relies on having a good, resilient strategy (such as a ton of large decoys) that's generally hard to defeat quickly
07:03:25 <Lymia> You'd need to smooth out the fitness landscape somehow
07:03:25 <ais523> and having some sort of valid attack
07:03:36 <ais523> now, the best programs for beating experimental programs are normally the standard ones
07:04:10 <ais523> whereas a programs designed to consistently beat standard programs tends to have to be experimental
07:04:32 <ais523> (but most experimental programs will fail to beat standard programs unless they identify a common weakness that allows them to do so)
07:04:41 <Lymia> Part of it might be that Nyuroki's flaws aren't standard at all, so, experimental programs fail to poke at them..
07:05:35 <ais523> I need to analyze nyuroki more, really
07:05:44 <ais523> typically I run programs on tape length 25 against a few other programs to see how they work
07:05:50 <ais523> because that allows you to see the "main strategy"
07:06:07 <ais523> (you have more tape length to see the patterns play out)
07:06:16 <ais523> but that doesn't really hold in cases where decoy clashes, etc., are an intended part of the duel
07:06:33 <Lymia> Is detecting short tape lengths relatively standard now?
07:07:02 <ais523> I normally make some attempt at it but it normally isn't very successful
07:07:22 <ais523> poking has been done for ages, and is definitely part of what I would consider the standard strategy
07:07:25 <ais523> (although the form of the poke varies)
07:07:36 <ais523> and poking gives a lot of clues about the tape length
07:07:42 <ais523> it was pretty revolutionary when quintopia invented it
07:08:35 <ais523> although Gregor's versions of it (the furry girls) are probably the most definitive; the original quintopia_poke was very primitive
07:09:35 <Lymia> Hrm.
07:09:48 <Lymia> Part of it is that you can only do so much in the earlier steps of the game.
07:10:05 <ais523> wow, ffspg is down at #38
07:10:07 <Lymia> You can't poke after so long
07:10:09 <ais523> how the mighty has fallen
07:10:19 <ais523> Lymia: right, the first few turns are very critical
07:10:24 <Lymia> You think there's still time to do the reverse decoy setup thing after a poke?
07:10:34 <ais523> do you aim to block enemy pokes, set up your own, or a bit of both?
07:10:37 <ais523> and there's totally time
07:10:43 <ais523> you leave a medium decoy on cell 6 or so
07:10:49 <ais523> and hope that the opponent's poke didn't get inside it
07:10:58 <Lymia> But you might just see very directly that the tape is (probably) small.
07:11:00 <Lymia> I guess it makes sense.
07:11:07 <ais523> although, ofc, time you waste doing that means that you may fail to get inside the opponent's decoys when you could have done otherwise
07:11:11 <Lymia> Leave decoy -> poke -> return to decoy setup.
07:11:31 <Lymia> If you get a decoy conflict *then*, either the opponent trails, or you're on a very small tae.
07:11:32 <Lymia> tape*
07:12:04 <ais523> !egojoust is_this_working_yet (>)*8(>[(+)*8[-]])*21
07:12:07 <ais523> err
07:12:10 <ais523> !bfjoust is_this_working_yet (>)*8(>[(+)*8[-]])*21
07:12:35 <ais523> hmm, yes
07:12:45 <Lymia> But what do you do with that information?
07:12:49 <ais523> it'd probably work against preparation
07:13:09 <ais523> also, knowing you're on a short tape should bias you towards fast rush programs
07:13:30 <ais523> margins3's strategy on a short tape is basically a copy and paste of stealth3, but with some details changed
07:13:48 <ais523> and the stealth series is a fast rush idea I had a while back that I never really got to work
07:13:51 <Lymia> This is sort of what my scripting language is for, at least. for($minimumTapeLength in 1 to 30) { > [ $mainBody($minimumTapeLength) ] }
07:13:55 <ais523> but it works much better on short tapes
07:16:19 <Lymia> ... maybe evolutionary algorithm time?
07:16:19 <ais523> !zjoust this_is_working_yet (>)*8(>[(+)*8[-]])*21
07:16:20 <zemhill> ais523.this_is_working_yet: points -8.14, score 13.81, rank 46/47
07:16:33 <ais523> to be fair, I didn't expect it to do well
07:16:39 <ais523> but it didn't come last! :-D
07:16:56 <Lymia> Start with a fixed block that distinguishes minimum tape lengths and some conditions.
07:17:10 <Lymia> And give the decoy constants, etc to an evolutionary algorithm to play with.
07:17:13 <ais523> I have an evolutionary algorithm for tweaking constants
07:17:16 <ais523> I didn't use it on margins3, though
07:17:28 <Lymia> I'd run it against the set of all programs that existed in BFJoust ever.
07:17:45 <ais523> typically I only use it on programs that are close to the top of the hill to squeeze out a few more points
07:18:04 <zemhill> prooftechnique.helloerjan: points -33.14, score 2.92, rank 47/47
07:18:41 <ais523> huh, how long ago was /that/ submitted
07:18:44 <ais523> is prooftechnique online righ tnow?
07:18:48 <prooftechnique> Yeah
07:18:58 <prooftechnique> Just wanted to get on the board before bed :D
07:19:02 <ais523> it's not a very complex-to-run program
07:19:06 <ais523> so I suspect it was submitted by PM
07:19:59 <prooftechnique> I'll probably make a real effort tomorrow at work. I've been reading the wiki on and off all day
07:20:51 <ais523> one thing I like about BF Joust is that you can compete against yourself indefinitely even if nobody else is playing
07:20:58 <ais523> another thing I've noticed is that everyone has their own style
07:21:00 <Lymia> !zjoust rank45plz ---(>>++++)*4(>(-)*20([+{}[-.-+]])%500)*20([-.-+])*-1
07:21:01 <zemhill> Lymia.rank45plz: points -19.74, score 7.34, rank 47/47
07:21:04 <Lymia> :(
07:21:28 <ais523> if I write a gimmick program I often see a lot of correlation between its score and the author of the program it plays against
07:21:48 <prooftechnique> Oh?
07:22:01 <prooftechnique> Also, I like reading the comments in your programs, ais523
07:22:24 <ais523> !zjoust sometimes >(+)*128<(-)*128(+-)*-1
07:22:24 <zemhill> ais523.sometimes: points -5.21, score 14.91, rank 41/47
07:22:25 <prooftechnique> Very informative, and often entertaining
07:22:40 <ais523> prooftechnique: well they're partly for me and partly for other people
07:22:49 <ais523> sorry about the base64
07:23:09 <ais523> I hope it wasn't too hard to get the program into a readable form
07:23:21 <prooftechnique> Not at all. A fish one-liner
07:23:46 <Lymia> Why the base64 anyway
07:23:48 <ais523> I've even developed a sort of "comment grammar" that uses only BF Joust-safe characters
07:23:52 <ais523> lots of semicolons rather than commas
07:24:04 <Lymia> I just went and made a macro processor for BFJoust
07:24:10 <Lymia> Which has a proper grammar for comments.
07:24:10 <ais523> Lymia: it's encoding a Perl script
07:24:13 <Lymia> oh
07:24:16 <Lymia> That explains everything.
07:24:19 <ais523> that generates the program
07:24:33 <ais523> I base64ed it so that I could put it into the program's source without stray parentheses
07:24:39 <Lymia> The script grammar I wrote wasn't written to be BF Joust safe at all though
07:24:44 <Lymia> I just linked to the source instead.
07:25:31 <ais523> linking's fine, and sometimes you have to do that (e.g. anticipation2, which is running up against code size limit)
07:25:40 <prooftechnique> Anyway, time for sleep. Maybe I'll think of a goofy joust gimmick in the meantime. Night, all
07:25:44 <ais523> but I prefer to have everything in one place
07:25:45 <ais523> night prooftechnique
07:26:08 <ais523> people should be able to see how my program was generated just with a copy of the repo, in most cases
07:26:39 <Lymia> Hrm
07:26:51 <Lymia> Maybe a formal BFJoust spec is in order?
07:27:08 <Lymia> Like, BNF and hopefully unambigious semantics.
07:27:08 <ais523> the wiki page is reasonably formal, and has become more so over time
07:27:26 <ais523> also there's some debate about whether the % to {} matching thing even works in BNF
07:27:36 <Lymia> Don't describe it in BNF?
07:27:47 <Lymia> Describe ()% and {} seperately
07:27:52 <Lymia> And presume compilers resolve it at a later stage.
07:28:05 <ais523> come to think of it, I'm not sure which categories of languages can describe it in a remotely semantic way
07:28:14 <Lymia> There's plenty of things in normal programming languages that you can't describe in BNF
07:28:33 <Lymia> I wonder if something like...
07:28:55 <Lymia> 1#(2#(1#{2#{}})%2)%2 has any chance of working
07:28:56 <Lymia> Let's see.
07:31:21 <Lymia> Hrm, nope. Definitely not.
07:32:31 <Lymia> ais523, what do you do about "incompatible" semantics?
07:32:37 <HackEgo> [wiki] [[BF Joust]] https://esolangs.org/w/index.php?diff=46505&oldid=44193 * Ais523 * (-4) /* External resources */ better (i.e. direct-linkable, also it's the original) link for the origins of BF Joust
07:32:46 <Lymia> Like nesting {} inside ()* inside ()%
07:32:51 <Lymia> By making ()* and ()% distinct
07:33:09 <ais523> Lymia: the * meaning the same thing as % thing is just implementation convenience
07:33:21 <Lymia> Right.
07:33:26 <Lymia> But programs are written assuming it.
07:33:42 <ais523> if we allow ()* in the a and b portions of a ()%, inside implementations would just have to suck it up
07:33:52 <ais523> we've fixed programs via editing the hill manually to adjust them for spec changes in the past
07:34:10 <ais523> there are some old hill-toppers with ([)*n in them
07:34:30 <Lymia> hr
07:34:31 <Lymia> hrm*
07:35:42 <Lymia> I wonder if it'd be possible to write new opcodes that expand to infinite (or extremely long) BFJoust programs.
07:36:14 -!- J_Arcane_ has joined.
07:36:15 -!- impomatic has joined.
07:36:22 -!- J_Arcane has quit (Ping timeout: 252 seconds).
07:36:28 -!- J_Arcane_ has changed nick to J_Arcane.
07:36:45 <ais523> !bfjoust comex_the_first_program_ever (>)*9[-]+[>[-]+]
07:36:50 <ais523> (adapted for current rules)
07:36:55 <ais523> (and syntax)
07:36:58 <ais523> !zjoust comex_the_first_program_ever (>)*9[-]+[>[-]+]
07:36:59 <zemhill> ais523.comex_the_first_program_ever: points -17.31, score 9.39, rank 47/47
07:37:03 <ais523> also let's submit it to a hill that works
07:37:05 <\oren\> my interpreter needs your program to end
07:37:23 <ais523> \oren\: ?
07:37:28 <Lymia> There's some cases where I wanted to do something in my BFJoust macro processor
07:37:40 <\oren\> but it may be possible to write one that can handle an infinite stream of bf characters
07:37:44 <Lymia> But it'd have to expand to a hundreds of megabytes long script.
07:37:52 <Lymia> Like
07:37:54 <ais523> haha, it beats smartlock, probably because smartlock is so special-cased
07:38:17 <ais523> Lymia: I'm aware of the problem
07:38:21 <Lymia> ${defmacro name ... ${name} ... ${name} ....}$
07:38:28 <ais523> in general it's the reason there's a program size limit
07:38:32 <ais523> to stop people writing things that go exponential
07:38:39 <ais523> the biggest example is an if/then/else
07:38:40 <Lymia> It'd expand to an exponential length program.
07:38:54 <Lymia> But it's expandable to BFJoust.
07:39:07 <Lymia> I wonder if it'd be worth it to integrate something like that into a hill?
07:39:14 <ais523> a (if nonzero then b else c) d expands to a[bd]cd
07:39:35 <ais523> which tends to blow up very quickly
07:39:38 <Lymia> It's not generally a problem like that.
07:39:42 <ais523> due to the duplication of d
07:39:46 <Lymia> That doesn't blow up too quickly.
07:40:09 <Lymia> Trying to write the equivalent of continue or break does.
07:40:21 <ais523> ah yes, break
07:40:31 <ais523> there are so many cunning methods of writing break that I've seen
07:40:45 <Lymia> nyuroki's main loop is basically
07:41:04 <Lymia> (>[... {} anti-defense continue ...])*21
07:41:43 -!- J_Arcane_ has joined.
07:42:03 <ais523> Lymia: you mean %21
07:42:21 <ais523> also IMO that's inferior to the (>[clear][antidefence])*21 method
07:42:33 <ais523> because it gets tricked by vibrators
07:42:42 <Lymia> It's more complex than that
07:42:44 <Lymia> It's actually
07:42:54 * ais523 checks the nyuroki versus anticipation2 matchup
07:42:55 <Lymia> (>([... {} [anti-defense] continue ...])*2)*21
07:43:09 <Lymia> The .. has a ()% somewhere in it
07:43:13 <Lymia> So i didn't include it
07:44:03 -!- J_Arcane has quit (Ping timeout: 240 seconds).
07:44:08 -!- J_Arcane_ has changed nick to J_Arcane.
07:44:41 <ais523> ah, it comes down to timer clear, I think?
07:45:21 <Lymia> Yeah. The {} is supposed to represent exiting the timer clear.
07:45:35 <ais523> was wondering if it hit one of the unimplemented cases in anticipation2 but it doesn't
07:45:42 <ais523> everthing works fine up until the final defense loop
07:45:45 <ais523> and then the lock just breaks
07:46:44 <Lymia> Is anticipation supposed to hide its flag?
07:46:56 <ais523> yes
07:47:08 <Lymia> Nyuroki doesn't actually skip a cell unless it's zero for 0 cycles. (>([main clear loop])*2)*21
07:47:09 <ais523> if the enemy doesn't vary clear pattern, its flag will always be 0 when encountered for the first time
07:47:22 <ais523> ooh, ([main clear loop])*2
07:47:30 <ais523> I like that
07:47:49 <ais523> (normally I use a specific counter-defence clear loop after the main one rather than just running the main one twice, but those can be hard to write)
07:48:18 <ais523> this is why it's called anticipation, it times the opponent's code and anticipates the moment the opponent will zero-check its flag
07:48:25 <Lymia> Also causes an exponential blowup.
07:48:33 <Lymia> Because break + two loops isn't compatible.
07:48:41 <Lymia> So I didn't do it.
07:48:53 <Lymia> Nyuroki is basically a long list of things I didn't do because the program would have exponential size.
07:49:16 <ais523> tell me about it :-)
07:49:37 <ais523> I like the restrictions that come with the size limit
07:50:14 <Lymia> How does anticipiation deal with timer clears?
07:50:17 <Lymia> Does it just not
07:50:21 <ais523> actually, I designed a "minijoust" with the following rules: very serious length limit on programs (short enough that they all fit onto one line of IRC); and in the case of a timeout, whichever program ran the most . instructions wins
07:50:37 <ais523> Lymia: right, they hadn't been around at the time
07:50:51 <ais523> or, well, they'd been only recently invented
07:50:56 <ais523> and most programs didn't use them
07:51:02 <ais523> also it beats some timer clear programs via the vibration
07:51:54 <Lymia> But the ()*2 pretty much invalidates vibration.
07:51:58 <ais523> yes
07:52:07 <ais523> vibration is easy to defeat if you expect it
07:52:09 <Lymia> I don't think it hurts in any cases?
07:52:17 <Lymia> Nobody in their right mind is going to vibrate off their flag.
07:52:22 <ais523> the only reason I wrote anticipation2 was because someone (maybe even me) submitted a vibration program for fun and it did unexpectedly well
07:52:44 <ais523> I guess some fast rush programs genuinely can't spare the extra cycle
07:53:14 <Lymia> If it's fast enough
07:53:19 <Lymia> And hits cell 30 before cycle 128
07:53:24 <Lymia> it can't be vibrated, right?
07:53:41 <Lymia> And if it gets caught by a flag or a decoy, it can switch to something more careful.
07:53:49 <Lymia> Because it definitely isn't fast rushing anymore.
07:54:32 <ais523> vibration programs normally leave a decoy to get enough time to zero their own flag
07:54:50 <ais523> but yes, the reason you need to go quickly is to get inside the decoys of enemies that set multiple
07:55:16 <ais523> it's nothing to do with vibrators
07:56:00 <Lymia> !zjoust parity (>+>-)*4(>+>([(+)*10([-{}[-.-+]])%500])*2)*-1
07:56:00 <zemhill> Lymia.parity: points -19.52, score 7.63, rank 47/47
07:56:10 <Lymia> !zjoust parity (>)*7(>+>([(+)*10([-{}[-.-+]])%500])*2)*-1
07:56:10 <zemhill> Lymia.parity: points -14.12, score 10.01, rank 47/47 (--)
07:56:24 <ais523> IME parity is hardly ever a factor in matchups nowadays, except for sometimes lock-based ones
07:56:29 <Lymia> !zjoust parity (>)*7(>>[(+)*20[-]]))*-1
07:56:29 <zemhill> Lymia: error: parse error: terminating ) without a matching (
07:56:37 <Lymia> !zjoust parity (>)*7(>>[(+)*20[-]])*-1
07:56:37 <zemhill> Lymia.parity: points -13.52, score 10.72, rank 47/47 (--)
07:56:39 -!- mroman has joined.
07:56:43 <mroman> fnurd
07:56:46 <mroman> @messages-load
07:56:46 <lambdabot> boily said 14h 51m 28s ago: mrelloman.
07:56:50 <Lymia> I'm trying to win the even length tapes only
07:56:56 <Lymia> For the fastest rush ever.
07:56:56 <ais523> ooh, impomatic is here
07:56:56 <Lymia> :P
07:56:59 <ais523> Lymia: oh, I see
07:57:07 <ais523> I think oerjan.netsnail worked like that?
07:57:38 <ais523> an improved version of that is a fast rush program that only checks every nth cell for the first set cell, but rushes more normally once it finds one
07:58:30 <ais523> !zjoust collision2 (>)*7(>>[([(+)*3[-[-]]>])*-1])*-1
07:58:30 <zemhill> ais523.collision2: points -8.62, score 12.87, rank 47/47
07:58:44 <ais523> hmm, at this rate we might actually get somewhere :-)
07:58:49 <ais523> !zjoust collision2 (>+)*7(>>[([(+)*3[-[-]]>])*-1])*-1
07:58:49 <zemhill> ais523.collision2: points -15.81, score 9.42, rank 47/47 (--)
07:58:53 <Lymia> This is such a difficult hill.
07:58:57 <ais523> indeed
07:59:10 <Taneb> I think given enough time all hills become difficult
07:59:12 <Lymia> !zjoust totally (+--+)*-1
07:59:13 <zemhill> Lymia.totally: points -19.60, score 7.02, rank 47/47
07:59:17 <ais523> I find that at this point, the best way to attack it is with a program that does something really unusual
07:59:20 <Taneb> If you made a rock paper scissors hill it would end up difficult
07:59:31 <Lymia> Well
07:59:36 <ais523> Taneb: I don't know, the hill that was basically all turtles got beaten pretty quickly
07:59:36 <Lymia> That's the point of a hill, kinda.
07:59:38 <Lymia> ;p
07:59:48 <Lymia> Which hill?
07:59:51 <ais523> and we'd been playing for a while when that happened
07:59:55 <ais523> Lymia: old version of egojoust
08:00:05 <ais523> turtles had only been recently invented
08:00:09 <ais523> and they were doing really well
08:00:12 <ais523> competent turtles, that is
08:00:21 <ais523> people had submitted non-working versions of them in the past
08:00:21 <Taneb> ais523, cororoallary: if the hill is easy, you haven't given it enough time
08:00:32 <ais523> hills get easier sometimes
08:00:58 <ais523> there was that time when someone (not naming names, but wasn't me) submitted a bunch of copies of omnipotence with different names
08:01:02 <Taneb> I have no idea how to spell, or how to pronounce, corollororary
08:01:06 <ais523> at the time, omnipotence beat every other program
08:01:17 <ais523> so it pushed all the other progams off the hill
08:01:35 <ais523> that hill would have been trivial to top, assuming you can come up with something that beats omnipotence (it's not hard, especially if you know how it works)
08:01:48 <ais523> err, probably wasn't omnipotence
08:01:50 <ais523> might have been waterfall3
08:01:58 <ais523> I don't think omnipotence ever had 100% wins
08:03:23 <b_jonas> oerjan: I see
08:03:52 <Lymia> I still want to implement my 100% win rate bot sometime.
08:03:59 <Lymia> Blatant autogeneration and hill fitting.
08:04:22 <ais523> lots of people have had that idea
08:04:29 <b_jonas> Has the EgoBot bfjoust healed yet?
08:04:34 <Lymia> no
08:04:35 <ais523> it is a) probably possible to do in most practical cases; b) harder than it seems
08:04:47 <ais523> who hosts egobot?
08:04:54 <Lymia> My idea was to decompose all "enemy bots" into tuples of "enemy bot, tape length, parity"
08:04:56 <ais523> they should probably be pinged as I suspect it's pegging a CPU
08:05:02 <Lymia> Then run them all in parallel.
08:05:18 <b_jonas> ais523: are you sure it's EgoBot, rather then the hill that's stuck?
08:05:19 <Lymia> So decide the best action on that tick, and advance every possible case at once.
08:05:20 <ais523> Lymia: fwiw, it's possible to write a set of programs that it is impossible to collectively beat all of
08:05:23 <ais523> b_jonas: no
08:05:32 <ais523> that's why I only /suspect/ it's pegging a CPU
08:05:32 <Lymia> Yeah. Someone brought that up last time I talked about it.
08:05:40 <Lymia> But I don't think 47 bots is enough to do it.
08:05:49 <Lymia> :)
08:05:57 <Taneb> Lymia, I'd be surprised if 2 bots wasn't enough to do it
08:06:00 <ais523> the simplest construction I'm aware of a proof for requires 768
08:06:08 <Taneb> I am surprised
08:06:11 <b_jonas> ais523: yes, but you don't have to beat all of them at once. you just have to beat enough of that in each step to gradually push some off the heap, and eventually start beating enough to get to the top
08:06:15 <Lymia> Taneb, the key is
08:06:40 <Lymia> If three bots would do +, -, and . on your flag all on the same cycle.
08:06:41 <ais523> b_jonas: hmm, clever
08:06:55 <Lymia> You just do ++ sometime beforehand, so your flag is 2 when the bots would clear it if it would be 0.
08:06:57 <b_jonas> huh what?
08:07:05 <b_jonas> what's clever? not achieving 100% wins?
08:07:14 <ais523> yes, this devious gradual hill takeover
08:07:20 <b_jonas> you get to the top of the hill with one bot without making it 100% win
08:07:26 <b_jonas> you've done that multiple times
08:07:41 <Lymia> I wonder how hard an infinite hill would be to maintain
08:07:43 <ais523> b_jonas: yes but most of the time it's because the program is genuinely better than any of the others
08:07:45 <Lymia> Or at least a huge one.
08:07:56 <b_jonas> you even brought up how it's not obvious who the best Go player is that google should challenge or something
08:07:57 <ais523> you could create a sort of Swiss hill
08:08:02 <ais523> where programs only competed against those nearby
08:08:14 <Taneb> Lymia, you'd need a way to remove blurgh bots
08:08:46 <ais523> fwiw the hill sizes are twice as big as they used to be
08:08:48 <Lymia> blurgh bots?
08:08:51 <ais523> because we like the diversity in a larger hill
08:09:02 <ais523> Lymia: I assume Taneb is talking about bots that do nothing useful
08:09:07 <ais523> like the syntax check bots we had earlier
08:09:10 <Taneb> Yeah, those
08:09:14 <Lymia> Hrm.
08:09:16 <ais523> hmm, what about this
08:09:22 <ais523> if you have the exact same breakdown as a previous bot
08:09:28 <Lymia> What about a "qualifier"?
08:09:31 <ais523> you don't get saved
08:09:34 <Lymia> A set of maybe 10-20 fixed bots.
08:09:43 <Lymia> That you don't get on the hill if you can't 100% sweep, or maybe beat 80%
08:09:50 <ais523> that way, we only have one suicide, one nop, etc.
08:09:50 <Lymia> Nothing advanced or clever.
08:10:15 <b_jonas> ais523: what? how would more than one of the syntax check bots even get to the hill? don't they lose too often to get on the hill?
08:10:22 <Lymia> Just a demonstration that you aren't a potato.
08:10:32 <Lymia> b_jonas, we're talking about an infinite hill.
08:10:45 <b_jonas> a... what
08:10:55 <Lymia> A hill without a fixed size.
08:11:06 <ais523> we could at least force people to beat simple
08:11:17 <Lymia> What'd be a good qualifier bot set?
08:11:23 <b_jonas> a hill without a size limit makes no sense
08:11:43 <ais523> (that said, quite a few highly advanced programs lose to simple because its lack of counter-anything causes it to be one cycle faster moving from one tape element to the next than it's possible to detect)
08:12:28 <Lymia> b_jonas, perhaps "hill" isn't the right term. Maybe "ladder"
08:12:33 <Lymia> Or something.
08:12:34 <b_jonas> what you could do is lock a few hand-selected bots on the ill
08:12:46 <Taneb> Maybe a hill that's unbounded upwards but has a fixed bottom?
08:12:52 <Lymia> ais523, I'd say a set of basic (or not so basic?) bots that bots to get on the hill have to beat.
08:12:53 <b_jonas> like, a few champions from each year that are hand-checked to make sense
08:12:57 <b_jonas> plus a few basics
08:13:04 <Lymia> Say...
08:13:11 <Taneb> Like, if a submission loses to the 10 bottom it falls off the hill
08:13:11 <b_jonas> don't make it obligatory to beat them, just lock them on the hill so the hill includes them
08:13:13 <Lymia> 50% or 75% winrate against them to qualify in the first place.
08:13:14 <ais523> Lymia: I guess we could write an intentionally bad implementation of each of the main strategies
08:13:14 <b_jonas> int he score
08:13:22 <ais523> as gatekeepers
08:13:27 <b_jonas> no no
08:13:28 <b_jonas> don't do that
08:13:39 <Lymia> b_jonas, if the hill is infinite
08:13:39 <b_jonas> that would only let bots that work against _all_ strategies on the hill
08:13:47 <Lymia> There's no point in locking anything on the hill.
08:13:57 <Lymia> Because once a bot is on, it can't actually fall off.
08:14:16 <b_jonas> why the heck do you even call it a hill then if you can't fall off?
08:14:20 <Lymia> The markov scoring should make it so that 90% potatos still doesn't affect the upper part of the hill much, right?
08:14:33 <Lymia> What would you call it, then, and why does it matter to you?
08:15:18 <b_jonas> dunno, a pool or something
08:15:20 <ais523> hmm, what about a hill that knocks off programs, not because they score badly, but because they're too similar to a better-scoring program
08:15:25 <b_jonas> but I don't really understand how this would work
08:15:30 <b_jonas> ais523: how would you detect that/
08:15:32 <ais523> using whatever similarity measure we want, maybe breakdown
08:16:15 <b_jonas> ais523: would that make it impossible to add new programs similar to an existing one that aren't _yet_ as good as the original, but eventually might be?
08:16:18 <Lymia> Right now we use names as the "identifier" for replacing programs, right?
08:16:29 <ais523> perhaps we find the two programs with the greatest number of matchups for which they both lose, and delete the one which has the most losses elsewhere
08:16:33 <ais523> Lymia: yes
08:16:47 <ais523> b_jonas: until you improved them, possibly
08:16:48 <Lymia> Hrm.
08:16:50 <ais523> I don't see this as a problem
08:16:53 <Lymia> What about clustering bots somehow?
08:17:04 <ais523> (note that you'd still get feedback on what the score would be, it just hasn't happened)
08:17:04 <Lymia> And keeping the 5-10 best of every cluster?
08:17:11 <ais523> Lymia: fizzie's way ahead of you on the clustering
08:17:24 <Lymia> So, if there's a cluster that's too dense (detecting that somehow)
08:17:30 <Lymia> You cull just that.
08:17:36 <Taneb> Oooh! Going on a tangent a bit
08:17:53 <Taneb> Do you know of any BF Joust-y games that are more accessible?
08:17:55 <ais523> here: http://zem.fi/egostats/tn_plot_cluster.png for breakdown cluster, http://zem.fi/egostats/tn_plot_heatclust.png for heatmap cluster
08:18:10 <Taneb> By which I mean, competitive programming games
08:19:04 <ais523> Taneb: I think BF Joust is one of the most accessible; there's a whole wiki of them at http://programminggames.org/ (e.g. http://programminggames.org/BF-Joust.ashx) that you could look at, I guess
08:19:57 <ais523> huh, BF Joust's even mentioned on the front page, under "programming games of note"
08:20:19 <ais523> as is Final Fantasy XII
08:20:23 <ais523> interesting interpretation of the genre, that
08:22:48 <ais523> interesting thought experiment: given everything that we know about BF Joust now and didn't before, write a program for the original BF Joust that does something clever
08:23:08 <Lymia> "Original"?
08:23:10 <b_jonas> the _original_ one? is that the one that's parity locked?
08:23:22 <b_jonas> ais523: what was the tape size and program size limit for that?
08:23:22 <ais523> b_jonas: no, the original's even older
08:23:37 <Lymia> Taneb, what do you mean by "more accessible"?
08:23:42 <Lymia> To non-esolang programmers?
08:23:42 <ais523> tape size was 128-134 IIRC, and you died from a zero flag in one cycle
08:23:46 <Taneb> Lymia, yeah
08:23:53 <Lymia> Something like robocode, I think
08:23:55 <b_jonas> ais523: right, and no dot command and no repetition syntax
08:24:05 <ais523> fwiw, I've been thinking (as a far-future thing) about making a reflavoured BF Joust game
08:24:15 <ais523> which is mathematically equivalent but less obviously connected to BF
08:24:18 <Lymia> It's not a "programming game" per se, like, BFJoust or Redcode.
08:24:37 <ais523> redcode's the language; the game is called core wars
08:24:41 <Lymia> Opps
08:24:43 <Lymia> Core Wars*
08:24:44 <b_jonas> Lymia: someone suggested https://www.codingame.com/ or something of a similar name. I don't know what those stuff are like, I don't care much about htem.
08:24:45 <ais523> impomatic: <Taneb> Do you know of any BF Joust-y games that are more accessible?
08:24:49 <Lymia> Taneb, basically
08:24:51 <ais523> you might be a good person to ask this
08:25:02 <Lymia> These games are more like conventional video games that a human could play directly too.
08:25:18 -!- AnotherTest has joined.
08:25:22 <Lymia> And the "programs" are AIs for them.
08:25:29 <Lymia> Like, say, a Starcraft AI hill.
08:25:34 <Lymia> That'd be in that category.
08:26:05 <ais523> I think a human playing BF Joust in realtime would be interesting
08:26:10 <ais523> allow them to hold down buttons to select a move
08:26:32 <ais523> [ and ] would be a single instruction that told you if you were looking at a zero cell
08:26:32 <j-bot> ais523: and (] would be a single instruction that told ((<(<,'"'),<(<'you'),<(,'0');_),<(<,'"'),<(<'you'),<(,'0');_) were looking at a zero cell)
08:26:43 <ais523> thank you j-bot
08:27:10 <shachaf> [ if
08:27:11 <j-bot> shachaf: if_syntax_
08:27:18 <shachaf> [ and ] if
08:27:18 <j-bot> shachaf: (and ])if
08:27:43 <ais523> you'd probably start off small, adding more commands along the way
08:27:51 <Lymia> BFJoust wouldn't really count, I think.
08:28:05 <Lymia> Since part of the metagame now is how limited programs are.
08:28:20 <Lymia> A human playing would effectively emulate an arbitrary length program.
08:28:23 <ais523> yes
08:28:27 <ais523> OTOH the human would have human limitations
08:28:43 <ais523> maybe I'll program it with a very basic UI just to see how me personally does against the hill
08:28:49 <ais523> I suspect I wouldn't do too well
08:28:53 <Lymia> Games would take forever.
08:29:06 <b_jonas> Lymia: exactly, and there are many programming games that similarly wouldn't work, eg. the ant brain one which requires you to write a program for a very limited capability ant brain, ran separately on each of your ants
08:29:22 <b_jonas> although there was a very different ant game that allowed any program
08:30:21 <impomatic> ais523, taneb: accessible is what way? Using an easier to use DSL or standard programming language but still capture the flag? Or a different genre of programming game?
08:30:26 <b_jonas> (the first one is ICFP contest 2004, at https://alliance.seas.upenn.edu/~plclub/cgi-bin/contest/ , the second one was at http://ai-contest.com/ but that domain is now owned by someone completely different)
08:30:55 <ais523> impomatic: was just relaying the question, I'm a little confused as to the meaning too
08:31:02 <ais523> btw, new hill-topper
08:31:05 <Taneb> impomatic, I'd prefer one that you could use Python for, and you could watch it looking pretty
08:31:06 <ais523> thanks for getting me back into the sport :-)
08:31:16 <Lymia> ais523, well.
08:31:19 <ais523> Taneb: is egojsout not pretty?
08:31:28 <Lymia> The JoustExt thing I made, for obvious reasons
08:31:42 <Taneb> ais523, it has the disadvantage in that post people in the CS department here do not often program in brainfuck
08:31:46 <Lymia> Any program that can be written in it is equivalent to some Brainfuck program.
08:31:51 <Lymia> It could just be arbitary length.
08:32:15 <Lymia> I figured out a lot of neat tricks like how to implement effectively call/cc
08:32:21 <ais523> Taneb: it might be an interesting experiment to allow arbitrary (i.e. not bf-limitations) programs
08:32:42 <ais523> I fear defence would not work well (you could do things like random walk clears once your timer expired) but the other tactics would still work
08:32:54 <ais523> your API would be forwards, backwards, up, down, and test, each of which would cost a cycle
08:33:02 <ais523> Python has yield, which is perfect for this usecase
08:33:07 <Lymia> Do programs have to be deterministic?
08:33:07 <impomatic> http://www.programminggames.org/INJECTION.ashx / https://bitbucket.org/leeharr/pybotwar / https://github.com/sgimenez/laby are a few I've bookmarked
08:33:24 <Lymia> This is important to decide.
08:33:35 <impomatic> But the most popular seems to be RobotGame http://robotgame.org/
08:33:36 <ais523> Lymia: in brainfuck, yes, as it has no randomization facilities
08:33:45 <Lymia> Because otherwise, it'd be equivalent to a BFJoust variant with non-deterministic instructions.
08:33:51 <Lymia> Not BFJoust with arbitary length programs.
08:33:53 <ais523> in other languages, I would say it helps for tournament structure if the program has to act identically each time
08:34:03 <ais523> /but/ I don't see any reason to ban, say, seeded RNGs
08:34:20 <ais523> impomatic: robotgame.org is NXDOMAIN
08:34:24 <impomatic> ais523. taneb@ RobotGame is in python and has a channel on freenode #robotgame
08:34:38 <impomatic> I'll ask in the channel about the domain :-(
08:34:56 <Lymia> ais523, ofc.
08:35:14 <Lymia> it's still equivalent to some arbitrary length BF program.
08:35:22 <Lymia> hrm.
08:35:26 <ais523> only because of the cycle limit
08:35:31 <Lymia> Otherwise.
08:35:40 <Lymia> s/arbitrary/infinite/
08:35:50 <Taneb> impomatic, I'll look into it
08:35:52 <ais523> assuming you allow the system access to non-TC sources of information
08:36:11 <ais523> (like a random number generator)
08:36:21 <ais523> or, hmm
08:36:34 <Lymia> You can always rewrite the cycles
08:36:39 <Lymia> Like
08:36:45 <impomatic> taneb, ais523: might also be robotgame.net - seems to be up and down all the time :-(
08:36:47 <Lymia> Any time you execute a test
08:37:15 <Lymia> You can rewrite it to [a]b, where a and b are arbitary/infinite length programs.
08:37:18 <Lymia> a doesn't have to terminate
08:38:29 <Lymia> Assuming it's deterministic, at least.
08:38:42 <Lymia> Otherwise, it'd be BF plus a new instruction (I think)
08:38:44 <Lymia> Something like
08:38:54 <Lymia> *{a}b
08:39:06 <Lymia> Where *{} is 0 cycles, and executes a with a 50% probability?
08:39:24 <Lymia> That'd be an interesting extension to test as a BFJoust version.
08:39:43 <Lymia> *{a} is 1 cycle, and executes randomly 50% of the time.
08:41:13 -!- ais523 has quit (Ping timeout: 268 seconds).
08:51:48 -!- augur has joined.
09:08:52 <HackEgo> [wiki] [[Lua Joust]] N https://esolangs.org/w/index.php?oldid=46506 * Lymia * (+1548) Created page with "'''Lua Joust''' is a competitive programming game, equivalent to [[BF Joust]] with arbitrary length programs. Instead of using [[Brainfuck]] as the language for warriors, '''L..."
09:08:59 -!- J_Arcane has quit (Ping timeout: 244 seconds).
09:09:01 <Lymia> opps
09:09:02 <Lymia> i meant to preview
09:09:11 <Lymia> Oh well, let's finish this.
09:18:15 -!- ais523 has joined.
09:22:56 <Lymia> ais523, I'm writing up a spec for BF Joust with arbitary Lua programs.
09:23:43 <ais523> IMO this should be written in a way that easily generalizes to any language (at least any language with generators, but you can do them even in C via use of pthreads)
09:24:41 -!- augur has quit (Remote host closed the connection).
09:25:17 -!- AnotherTest has quit (Ping timeout: 248 seconds).
09:26:43 -!- augur has joined.
09:27:48 <Lymia> I'm writing it for Lua for now.
09:28:00 <Lymia> Since I want to include the provisions for determinism as part of the spec.
09:29:45 <impomatic> ais523, taneb: you can see a robotgame battle in action on the web archive http://web.archive.org/web/20160304042803/https://robotgame.net/
09:31:04 <ais523> hmm, it's hard to follow with all that many robots
09:32:04 -!- augur has quit (Remote host closed the connection).
09:33:18 <HackEgo> [wiki] [[Lua Joust]] https://esolangs.org/w/index.php?diff=46507&oldid=46506 * Lymia * (+4238) Finish specification.
09:34:02 <HackEgo> [wiki] [[Lua Joust]] https://esolangs.org/w/index.php?diff=46508&oldid=46507 * Lymia * (+13)
09:35:40 <izabera> https://i.imgur.com/TJFEkDa.jpg 'Selling Dy notebook'
09:35:42 <izabera> Dy
09:35:44 <ais523> hmm, is it a BF derivative?
09:35:50 <ais523> I guess it's a BF derivative derivative
09:35:53 <izabera> guess why Dy
09:35:59 <Lymia> Don't ask me
09:36:03 <Lymia> There's no BF involved, but.
09:36:09 <Lymia> It shares the tape concept.
09:36:26 <Lymia> Notably, Lua Joust and BF Joust programs can theoretically share the same hill.
09:37:18 <Lymia> Not even theoretically.
09:37:20 <Lymia> They simply can.
09:37:54 <HackEgo> [wiki] [[Lua Joust]] M https://esolangs.org/w/index.php?diff=46509&oldid=46508 * Ais523 * (+173) cats, minor clarification
09:38:17 <ais523> Lymia: can I make a naming suggestion? instead of next and prev, use advance and retreat
09:38:26 <Lymia> .. hrm.
09:38:36 <Lymia> I think that definitely works.
09:39:11 <ais523> also they're documented as equivalent
09:39:24 <ais523> do you want to change it or shall I?
09:40:08 <Lymia> <ais523> also they're documented as equivalent
09:40:11 <Lymia> What do you mean?
09:40:21 <ais523> copy and paste error
09:40:24 <ais523> they both increment the tape pointer
09:40:36 <Lymia> opps
09:40:39 <Lymia> Let me fix that
09:41:24 <Lymia> hrm
09:41:27 <ais523> I think that if we want this to be accessible, it needs less computery and BF-y terminology
09:41:30 <ais523> also an implementation
09:41:40 <Lymia> It's just a draft, so.
09:41:48 <Lymia> Is there a good way to say "towards the opposing flag"?
09:42:03 <Lymia> Without implying that it might turn around on the flag or past the end
09:42:44 <ais523> I think it's probably best to say "forwards" and "backwards", then in the battlefield section, define that forwards is the direction from your flag to the opponent's, and backwards is the other direction
09:45:10 <HackEgo> [wiki] [[Lua Joust]] https://esolangs.org/w/index.php?diff=46510&oldid=46509 * Lymia * (+59) Clarify advancing and retreating the tape pointer.
09:45:25 <HackEgo> [wiki] [[User:Lymia]] N https://esolangs.org/w/index.php?oldid=46511 * Lymia * (+4) meow
09:46:05 <Lymia> I'd like to do a Lua implementation, maybe?
09:46:10 <Lymia> That should be relatively simple.
09:46:27 <ais523> how good is lua at sandboxing subsets of itself?
09:47:08 <myname> impomatic: robot game looks interesting, i'd prefer another language though
09:47:10 <ais523> while still gaining access to the bits it locked off
09:47:42 <ais523> I remember when I wrote an automatic marking script for ocaml
09:47:46 <ais523> bits of it ran inside the sandbox
09:47:49 <Lymia> Hrm.
09:47:52 <Lymia> It's decent.
09:48:00 <ais523> and I had to figure out how to write string_of_char without access to anything in the standard library
09:48:03 <Lymia> Esp in Lua 5.3 rather than 5.1
09:48:18 <Lymia> Implementations in Lua have to worry about the string metatable and such
09:48:20 <ais523> it took some discussion in #esoteric and #ocaml but I figured out a way in the end
09:48:22 <Lymia> Which can be used to escape the sandbox.
09:48:44 <Lymia> While a C implementation can just use two separate contexts.
09:48:58 <ais523> (for anyone wondering: «let string_of_char c = (let s = ("" ^ "x") in s.(0) <- c; s)»)
09:49:09 <ais523> this is actually deprecated in recent OCaml, but it still works
09:49:43 <ais523> I can see why it's deprecated; it's ridiculous :-)
09:51:18 <impomatic> myname: I haven't seen anything like Robotgame in other languages, but there are robot vs robot battle games in most languages
09:52:13 <impomatic> Berrybots in Lua, Scalatron in Scala have been active recently I think.
09:52:27 <HackEgo> [wiki] [[Lua Joust]] M https://esolangs.org/w/index.php?diff=46512&oldid=46510 * Lymia * (+240) Add in a provision for Lua implementations.
09:52:42 <myname> robocode for java... but who likes java anyways
09:53:11 <Lymia> hrm.
09:53:18 <Lymia> I could define some convinence functions
09:53:19 <Lymia> Like
09:53:25 <Lymia> joust.plus(50)
09:53:34 <Lymia> Or joust.modify(50)
09:54:59 <ais523> let people write their own, they're easy enough
09:55:01 <Lymia> Maybe get rid of the joust. namespace
09:55:15 <Lymia> Well, it's for convinence for when you write out full programs on an IRC line, and such.
09:55:17 <ais523> and I have a feeling Taneb wants to use this as an "intro to programming" anyway
09:59:02 <HackEgo> [wiki] [[Lua Joust]] https://esolangs.org/w/index.php?diff=46513&oldid=46512 * Lymia * (-96) Remove the joust namespace.
10:00:04 <HackEgo> [wiki] [[Lua Joust]] https://esolangs.org/w/index.php?diff=46515&oldid=46513 * Lymia * (+2) Rename nop() to wait()
10:00:14 <Lymia> I should probably not treat this like git commits.
10:01:20 <ais523> it's not a bad model
10:01:29 <ais523> although note that the edit summary doesn't have space for a really long discussion
10:01:34 <ais523> you have to use the talk page for that
10:01:45 <ais523> it beats the useless summaries most people use
10:02:11 <ais523> the main difference is that mediawiki edit summaries tend to be heavily abbreviated with a kind-of grammar of their own; complete sentences aren't wrong but they look out of place
10:05:42 <Lymia> I'm going to rewrite it to split the more technical details and a more "accessible" description.
10:06:52 <ais523> hmm, I wonder if the concept of a reduced offset timer is worth mentioning in the strategies page
10:07:13 <ais523> the idea is that you use an inflexible timer clear with a small timer, maybe only 100, and an offset
10:07:18 <ais523> when it runs out you give up on the offset
10:07:28 <ais523> the idea is that enemy programs rarely set small decoys behind large decoys
10:07:46 <Lymia> Explain further?
10:08:27 <ais523> so the idea is, you do a timer clear, if a cell is cleared, you move on and offset while still under the same timer
10:08:39 <ais523> as long as you're clearing small decoys you don't make much of a dent in the timer, so you keep going
10:08:40 <Lymia> Oh, i see.
10:08:43 <Lymia> So something like
10:08:50 <ais523> when you hit a large decoy the timer runs out very quickly and you change strategy
10:09:03 <Lymia> (>(-)*10[+{} ... ])%100
10:09:04 <Lymia> Right
10:09:05 <Lymia> Er
10:09:10 <Lymia> >(-)*10([+{} ... ])%100
10:09:15 <ais523> this is how margins3's clear loop works against defensive programs
10:09:16 <Lymia> Offset timer clear?
10:09:27 <ais523> you put the offset after the ]
10:09:34 <ais523> nowhere else to put it
10:09:43 <ais523> (or before the [, it comes to much the same thing)
10:09:56 <Lymia> Nyuroki does basically that.
10:10:10 <Lymia> It uses an inflexible timer clear with an offset beforehand.
10:10:36 <ais523> right, it's a sensible enough strategy
10:11:00 <ais523> the main improvement is that older programs used to make the timer quite high (1000 or so) and I feel that lower ones work better
10:11:11 <ais523> based on the principle that against large decoys, the best offset size is 0 or even negative (i.e. reverse offset clear)
10:11:45 <Lymia> What do you do when the timer ends?
10:11:51 <Lymia> I'm not sure I quite understand now
10:11:55 <ais523> plain clear
10:11:57 <ais523> i.e. no offset
10:12:01 <ais523> on a second timer
10:12:17 <ais523> or possibly a small reverse offset clear
10:12:27 <ais523> say you predict all the enemy decoys will be at least 20
10:12:33 <ais523> you do something like (+)*20[+]
10:12:44 <ais523> 20 cycles saved right there
10:13:25 <ais523> (regardless of polarity, assuming that there is a decoy of 20 or larger on the cell)
10:14:10 <Lymia> I see.
10:14:10 <Lymia> so.
10:14:26 <Lymia> Optimize for decoys in the range of 1-a and b-128, or so?
10:14:39 <Lymia> And not work so well for decoys between a and b?
10:14:51 <ais523> yep
10:15:00 <Lymia> Interesting.
10:15:24 <ais523> this relies on the principle that people tend not to use medium decoys behind large ones
10:16:37 <ais523> I guess one big general rule of BF Joust is "if there's /anything/ that programs consistently do, there's some way to exploit it"
10:16:58 <ais523> although it took me a while to figure it out with rule of nine, I got there eventually
10:18:30 <HackEgo> [wiki] [[Lua Joust]] https://esolangs.org/w/index.php?diff=46516&oldid=46515 * Lymia * (+890) Split the rules description into a detailed and "simple" section.
10:19:06 <Lymia> What's "large" and "medium" mean, in general?
10:19:40 <Lymia> Nyuroki, for example, uses decoys of size 20 against rushes and 50 for its larger decoys, then patches up its size 20 decoys to be size ~40.
10:20:00 <ais523> small = detected by the start a wiggle clear, typically 1-3; medium = within the size of an offset clear but not small; large = beyond the offset of a typicaloffset clear
10:20:24 <Lymia> I see
10:20:29 <Lymia> So 50 would be considered large.
10:20:56 <ais523> yes; a few programs do use offsets that large but it's probably a bad idea
10:21:23 <HackEgo> [wiki] [[Lua Joust]] M https://esolangs.org/w/index.php?diff=46517&oldid=46516 * Lymia * (-1) Fix a mislocated ending tag.
10:21:33 <Lymia> uh
10:21:40 <Lymia> Why would an offset that big be useful
10:22:33 <Lymia> Think this makes it less technically dense? The Lua joust page.
10:22:57 <ais523> Lymia: a bit
10:23:11 <ais523> it would be good to not conflate the tape pointer with the program with the warrior
10:23:42 <Lymia> hrm.
10:23:48 <Lymia> I'm using "warrior" as a term for "program'
10:24:03 <Lymia> Suggestions for terminology?
10:24:16 <Lymia> "arena", "arena cell", "arena pointer"?
10:24:45 <ais523> I think the best mental image is if the program controls the warrior, who is the pointer
10:25:24 <Lymia> I'm not sure I like the term "warrior" in that context.
10:25:28 <Lymia> Hrm.
10:26:49 <Lymia> Well.
10:26:58 <impomatic> "competitor" instead of "warrior"?
10:27:40 <Lymia> warrior == pointer, program, arena == tape?
10:27:43 <Lymia> Is that what you mean?
10:27:50 <Lymia> (@ais523)
10:28:01 -!- gniourf has quit (Quit: Leaving).
10:28:36 <Lymia> Is there some other easy to understand term for "pointer" available?
10:28:47 <ais523> it's more that "pointer" is a very programmy term
10:28:53 <ais523> but yes, warrior=pointer, program, arena=tape
10:29:03 <Lymia> "warrior" is also used as another term for "program" in stuff like Core Wars, right?
10:29:09 <ais523> and possibly flag=tape element (with each program owning one flag and the others being neutral)
10:29:11 <Lymia> So I'd like to avoid using it for a subtly different meaning.
10:29:21 <ais523> Lymia: I think so, but in core wars the programs are literally attacking each other's code and memory
10:29:30 <Lymia> I think "cell" is understandable enough.
10:29:35 <ais523> in BF Joust, it's more like they're controlling an entity
10:29:48 <ais523> I guess the difference is that you care about technical clarity and I care about flavour
10:29:59 <impomatic> Yes, "warrior" is also used in Core War. "battle program" is another term used in a few programming games
10:30:07 <Lymia> I'm writing it as a spec, after all.
10:30:16 <Lymia> Unambigious between implementations.
10:30:23 <Lymia> I'd like a middle ground though.
10:30:47 <ais523> impomatic: how many programming games are like core wars in that the programs can literally alter each other?
10:32:57 <impomatic> ais523: at the moment I can only think of Darwin, Core War, CoreLife, CoreWar68000, CoreWar8086 and Binary Armageddon although there are probably more.
10:33:19 <ais523> some of the competitive game-of-life based games, you could, I guess
10:33:24 <ais523> (not sure how popular any of those are)
10:33:37 <impomatic> Most programming games are played by controlling an agent in an arena without any access to the opponent's code.
10:34:24 <impomatic> There's a very messy and incomplete wiki for programming games here http://programminggames.org/
10:35:16 <impomatic> While we're on the subject, did I mention there's a Core War tournament in 3 weeks? $50 first prize http://corewar.co.uk/easter2016.htm
10:36:23 <HackEgo> [wiki] [[Lua Joust]] https://esolangs.org/w/index.php?diff=46518&oldid=46517 * Lymia * (-200) Rename the "tape" to the "arena".
10:36:29 <Lymia> First step.
10:37:25 <Lymia> Is arena > cell understandable?
10:37:32 <Lymia> Hrm.
10:37:38 <ais523> impomatic: I linked that wiki earlier :-)
10:37:46 <ais523> I like the way BF Joust is cited on the main page
10:37:49 <Lymia> I get what you mean by using "flag" for cells though. Raising and lowering flags?
10:38:20 <ais523> raising would strike me as meaning "away from zero"
10:38:26 <ais523> I think of it as "clockwise" and "anticlockwise"
10:38:31 <ais523> flag's on a continuous rope that forms a loop
10:38:36 <ais523> highest point is 128, lowest point is 0
10:38:46 <ais523> and depending on which way you turn, you can take it up/down either side of the flagpole
10:39:19 <Lymia> Anyway.
10:39:28 <Lymia> "program" controlling a "warrior'
10:39:36 <Lymia> I'm not sure how that terminology would read.
10:39:56 <Lymia> "<code>advance()</code> advances the warrior forwards one cell."
10:40:02 <Lymia> "<code>plus()</code> increments the cell the warrior is on."
10:40:03 <Lymia> ?
10:40:07 <ais523> yep
10:40:16 <Lymia> hrm
10:40:21 <ais523> I guess "space" would work if you don't like "cell", using board game terminology
10:40:49 <Lymia> To me, using "pointer" terminology is more clear, but, it wouldn't be to someone without C/etc experience.
10:41:14 <Lymia> I think "cell" should be fine.
10:42:27 <Lymia> Could also rename "cycle" to "turn" for board game terminology?
10:42:30 <Lymia> It's not really a cycle anymore anyway
10:43:42 <ais523> "turn" is a good terminology
10:43:48 <Lymia> Oh!
10:43:51 <Lymia> What about "current cell"
10:43:55 <Lymia> Instead of "cell pointer"
10:44:10 <Lymia> "advances the current cell by one"?
10:44:15 <Lymia> "advances the current cell one space"?
10:44:16 <impomatic> How about a 2D version of BF Joust? Flags are in diagonally opposite corners. The agent could be a dwarf with a pick axe, chipping away at locations to decrease the cell value or depositing stone on a location to increase the cells value. If a cell's value is to different from it's neighbour, it could be a wall or chasm blocking your way.
10:45:03 -!- earendel has quit (Ping timeout: 244 seconds).
10:46:13 <ais523> Lymia: that sounds like you're changing the cell itself, not the poitner to it
10:46:39 <ais523> impomatic: presumably with this flavour it isn't wrapping, and there's some limit to how high you can increase a cell?
10:47:05 <HackEgo> [wiki] [[Lua Joust]] https://esolangs.org/w/index.php?diff=46519&oldid=46518 * Lymia * (+711) Add numeric arguments to plus, minus, advance, and retreat
10:47:41 <ais523> hmm, I think the arguments will make it much more confusing to follow the rules
10:47:56 <ais523> because they take multiple turns
10:48:08 <Lymia> Hrm.
10:48:16 <Lymia> Oh, hold on.
10:49:01 <HackEgo> [wiki] [[Lua Joust]] https://esolangs.org/w/index.php?diff=46520&oldid=46519 * Lymia * (-711) Undo revision 46519 by [[Special:Contributions/Lymia|Lymia]] ([[User talk:Lymia|talk]])
10:50:15 <HackEgo> [wiki] [[Lua Joust]] https://esolangs.org/w/index.php?diff=46521&oldid=46520 * Lymia * (+164) Clarify function numeric parameters.
10:51:01 <HackEgo> [wiki] [[Lua Joust]] https://esolangs.org/w/index.php?diff=46522&oldid=46521 * Lymia * (+20)
10:51:31 <HackEgo> [wiki] [[Lua Joust]] https://esolangs.org/w/index.php?diff=46523&oldid=46522 * Lymia * (+1)
10:51:32 <Lymia> There.
10:52:36 -!- jaboja has joined.
10:54:57 <Lymia> ais523, is this more clear?
10:55:00 <ais523> yes, that seems clear enough
10:57:40 <Lymia> What about turn > cycle?
10:57:47 <Lymia> A cycle is both the program's turns.
10:58:58 -!- bender| has joined.
10:59:10 <ais523> I like that, actually
10:59:49 <ais523> so the description of a cycle is something like "both programs are executed; when a program runs an API command that takes a turn, it is paused. Then both commands happen and the programs resume executing."
11:00:12 <HackEgo> [wiki] [[Lua Joust]] https://esolangs.org/w/index.php?diff=46524&oldid=46523 * Lymia * (-335) Distinguish 'cycles' and 'turns'.
11:01:04 <HackEgo> [wiki] [[Lua Joust]] M https://esolangs.org/w/index.php?diff=46525&oldid=46524 * Lymia * (+27) Clarify text for test().
11:01:46 <Lymia> .. hrm. Should "warrior's program" be a term?
11:02:03 <Lymia> A warrior is the warrior and the code that controls it.
11:02:08 <Lymia> (Conceptually)
11:02:19 <Lymia> I think that terminology would work.
11:03:56 -!- ais523 has quit (Read error: Connection reset by peer).
11:04:01 <HackEgo> [wiki] [[Lua Joust]] M https://esolangs.org/w/index.php?diff=46526&oldid=46525 * Lymia * (+46) :)
11:04:07 -!- ais523 has joined.
11:04:16 <Lymia> <Lymia> .. hrm. Should "warrior's program" be a term?
11:04:17 <Lymia> <Lymia> A warrior is the warrior and the code that controls it.
11:04:17 <Lymia> <Lymia> (Conceptually)
11:04:17 <Lymia> <Lymia> I think that terminology would work.
11:04:58 <myname> a warrior is the warrior?
11:05:47 -!- scarf has joined.
11:07:41 -!- ais523 has quit (Read error: Connection reset by peer).
11:08:50 -!- scarf has quit (Read error: Connection reset by peer).
11:09:08 -!- scarf has joined.
11:09:29 <scarf> ugh, pinging out enough to use second alternate nick :-(
11:09:29 * scarf has no idea if anyone will see tihs
11:09:32 -!- scarf has changed nick to ais523.
11:09:43 <ais523> ooh, looks like it got through
11:10:35 <Lymia> D:
11:13:32 <HackEgo> [wiki] [[Lua Joust]] https://esolangs.org/w/index.php?diff=46527&oldid=46526 * Lymia * (-49) Distinguish between the "program" and "warriors"
11:13:36 <Lymia> I think this works.
11:14:15 <HackEgo> [wiki] [[Lua Joust]] M https://esolangs.org/w/index.php?diff=46528&oldid=46527 * Lymia * (+0) Move the ''turn'' to when the term is first introduced.
11:17:10 -!- ais523 has quit (Remote host closed the connection).
11:18:19 -!- ais523 has joined.
11:18:27 <HackEgo> [wiki] [[Lua Joust]] https://esolangs.org/w/index.php?diff=46529&oldid=46528 * Lymia * (+360) Introduce one character aliases.
11:18:52 <HackEgo> [wiki] [[Lua Joust]] https://esolangs.org/w/index.php?diff=46530&oldid=46529 * Lymia * (-1)
11:19:46 <Lymia> Now to implement
11:23:21 * impomatic is slowly working through TIS-100 but apart from maybe one of my solutions they're all fugly :-(
11:24:10 <ais523> Lymia: gah you wrote brainfuck with a captal B
11:24:14 <ais523> it isn't a proper noun
11:24:15 * ais523 fixes
11:24:29 <Lymia> opps
11:24:36 <HackEgo> [wiki] [[Lua Joust]] M https://esolangs.org/w/index.php?diff=46531&oldid=46530 * Ais523 * (+0) caps
11:26:16 <HackEgo> [wiki] [[Lua Joust]] M https://esolangs.org/w/index.php?diff=46532&oldid=46531 * Lymia * (-3) extra word.
11:30:20 <Lymia> ais523, could you give me some basic BFJoust programs to translate?
11:30:25 <Lymia> Most basic examples of strategies
11:30:49 <ais523> Lymia: (>)*8(>[(+)*5[-]])*21
11:31:06 <ais523> !zjoust basic_attack (>)*8(>[(+)*5[-]])*21
11:31:07 <zemhill> ais523.basic_attack: points -6.69, score 14.33, rank 46/47
11:31:24 <ais523> wrt a basic defence program, it rather depends on whether you want to win or not
11:31:32 <ais523> also I've become disconnected again, haven't I?
11:31:34 <Lymia> Nope
11:31:38 <Lymia> I don't htink so
11:31:55 <ais523> if you see this, let me know next time I'm back online (assuming it's in the near future) so I know I don't have to resend
11:31:55 -!- ais523 has quit.
11:34:24 -!- boily has joined.
11:51:42 -!- AnotherTest has joined.
12:18:25 <HackEgo> [wiki] [[Lua Joust]] M https://esolangs.org/w/index.php?diff=46533&oldid=46532 * Lymia * (-14)
12:20:09 -!- jaboja has quit (Ping timeout: 260 seconds).
12:21:03 -!- boily has quit (Quit: SOVIET CHICKEN).
12:21:55 -!- AnotherTest has quit (Ping timeout: 248 seconds).
12:24:38 <HackEgo> [wiki] [[Lua Joust]] https://esolangs.org/w/index.php?diff=46534&oldid=46533 * Lymia * (+71) Use constants for the coroutine.yield values
12:26:30 <HackEgo> [wiki] [[Lua Joust]] https://esolangs.org/w/index.php?diff=46535&oldid=46534 * Lymia * (+38)
12:45:15 -!- earendel has joined.
12:46:14 <izabera> https://manuels.github.io/texlive.js/ neato, texlive compiled with emscripten
12:51:29 -!- gniourf has joined.
13:09:26 <impomatic> The esolang wiki ought to have a category for programming games now there are a few on there.
13:23:17 -!- J_Arcane has joined.
13:45:38 <HackEgo> [wiki] [[Lua Joust]] https://esolangs.org/w/index.php?diff=46536&oldid=46535 * Lymia * (+92)
13:58:48 -!- jaboja has joined.
14:07:13 <Lymia> !ztest syntax (<)*-X1
14:07:13 <zemhill> Lymia.syntax: points -32.14, score 2.98, rank 47/47
14:09:01 <Lymia> !ztest syntax >()*xx-xx1[<<]
14:09:02 <zemhill> Lymia.syntax: points -32.14, score 2.98, rank 47/47
14:09:18 <Lymia> !ztest syntax >-[<<]
14:09:18 <zemhill> Lymia.syntax: points -46.00, score 0.00, rank 47/47
14:09:27 <Lymia> !ztest syntax >()*- [<<]
14:09:28 <zemhill> Lymia.syntax: points -32.14, score 2.98, rank 47/47
14:09:36 <Lymia> !ztest syntax >()*mmmm- [<<]
14:09:36 <zemhill> Lymia.syntax: points -32.14, score 2.98, rank 47/47
14:09:39 <Lymia> !ztest syntax >() - [<<]
14:09:39 <zemhill> Lymia.syntax: points -46.00, score 0.00, rank 47/47
14:10:16 <Lymia> !ztest syntax >()*xx+xx1[<<]
14:10:16 <zemhill> Lymia.syntax: points -46.00, score 0.00, rank 47/47
14:10:24 <Lymia> !bfjoust hi .
14:10:27 <Lymia> still ded
14:14:17 -!- `^_^v has joined.
14:26:30 <fizzie> Ded as a dornil.
14:30:53 <Lymia> !ztest ()*-1<
14:30:53 <zemhill> Lymia: "!ztest progname code". See http://zem.fi/bfjoust/ for documentation.
14:30:57 <Lymia> !ztest test ()*-1<
14:30:57 <zemhill> Lymia.test: points -46.00, score 0.00, rank 47/47
14:31:02 <Lymia> !ztest test (.)*-1<
14:31:02 <zemhill> Lymia.test: points -32.14, score 2.98, rank 47/47
14:34:43 <HackEgo> [wiki] [[Lua Joust]] https://esolangs.org/w/index.php?diff=46537&oldid=46536 * Lymia * (-2)
14:37:59 <fizzie> "(<)*-X1" → "(<)*0 X1" → "". ">()*xx-xx1[<<]" → ">()*0 xx1[<<]" → ">[<<]". ">-[<<]" is just what it is. ">()*- [<<]" → ">()*0 [<<]" → ">[<<]". ">()*mmmm- [<<]" ditto. ">() - [<<]" → ">()*0 -[<<]" → ">-[<<]" (no * or % means () gets treated as ()*0). ">()*xx+xx1[<<]" → ">()*0 +xx1[<<]" → ">+[<<]" (explicit + not part of repeat count but also not "whitespace" that gets ...
14:38:05 <fizzie> ... skipped). "()*-1<" → "<". "(.)*-1<" is again just what it looks like.
14:40:24 <b_jonas> Lymia: are you sure that Lua Joust is deterministic?
14:40:26 <fizzie> Somewhat inconsistently, "(.)*;4" is the same as "....", but "(.)*,4" is "". That's a bug. "," got accidentally added to the list of non-whitespace characters, even though it doesn't have any meaning.
14:40:48 <Lymia> b_jonas, it shoul dbe.
14:40:50 <Lymia> should be*
14:40:56 <Lymia> What would cause it not to be?
14:41:10 <Lymia> oh, bleh
14:41:18 <Lymia> There's ordering of hashes in arrays containing hashes.
14:41:21 <b_jonas> Lymia: in Lua, you can iterate on the keys of a table, or get the length of a non-array table, and those aren't well-defined enough to be deterministic. I'm not sure if they are, that depends on the lua implementation.
14:41:28 <Lymia> I could remove pairs.
14:41:32 <Lymia> And that problem'll be gone.
14:41:36 <Lymia> pairs and next.
14:41:37 <b_jonas> Lymia: no, it wouldn't be
14:41:44 <b_jonas> Lymia: even the # operator can be nondeterministic
14:41:54 <Lymia> Explain in what cases?
14:41:57 <b_jonas> Lymia: plus, removing next would limit lua SERIOUSLY
14:42:02 <b_jonas> like, make it a much less usable language
14:42:13 <b_jonas> Lymia: read the docs for # to know
14:42:14 <b_jonas> um wait
14:42:20 <b_jonas> what version of Lua is this based on exactly?
14:42:23 <Lymia> 5.3
14:42:24 <b_jonas> 5.3
14:42:27 <b_jonas> yes, then it stands
14:42:39 <Lymia> Again.
14:42:46 <Lymia> Explain what code would cause # to have nondeterministic behavior.
14:43:17 <b_jonas> Lymia: I'm not sure it has, but the manual doesn't promise that it's deterministic, just like for the next function: http://www.lua.org/manual/5.3/manual.html#3.4.7
14:43:23 <b_jonas> on tables that is (no problem on strings)
14:44:15 <b_jonas> Lymia: basically, getting the length of a table is optimized so it doesn't have to read each element of integer key
14:44:42 <Lymia> AFAIK
14:44:49 <Lymia> From what I read of the code, the result is undefined, yes
14:44:57 <Lymia> But not non-deterministic.
14:45:06 <Lymia> That's a pretty critical difference.
14:45:12 -!- spiette has joined.
14:45:45 <b_jonas> Lymia: yes, but unless you read the implementation, you can't tell if it's deterministic. It depends on the details of how tables work, just like the order of keys as returend by next.
14:46:06 <Lymia> I have read the implementation before for unrelated versions.
14:46:33 <b_jonas> Lymia: in a not too old version?
14:47:36 <b_jonas> Lymia: also, in recent versions, you have to modify the load function so that you can't load binary (precompiled) chunks
14:47:42 <b_jonas> because that can lead to breaking the lua sandbox
14:47:45 <Lymia> I know.
14:47:47 <b_jonas> loading text chunks is fine
14:47:48 <Lymia> I'm passing "t" to load.
14:48:08 <b_jonas> Lymia: I mean, in the load function you give in the environment to the program
14:48:12 <b_jonas> http://esolangs.org/wiki/Lua_Joust doesn't list this
14:48:19 <Lymia> Oh, I see.
14:48:41 <Lymia> I'll just remove load because I don't think there's a legitimate use for it.
14:48:50 <b_jonas> Lymia: sure there is! evalling code
14:48:55 <b_jonas> dynamically comptued code
14:49:01 <b_jonas> but you can easily make a modified version of it
14:49:06 <Lymia> I'd like to see that program.
14:49:31 <b_jonas> I have such an obfu somewhere... we're still on #esoteric, right?
14:49:58 <Lymia> hrm
14:50:27 <b_jonas> hmm, actually I use loadstring
14:50:35 <b_jonas> it's for an older version of lua
14:50:44 <b_jonas> btu it would have to use load in lua 5.3
14:50:52 <Lymia> I think you can still extract non-deterministic behavior out of tables even if you skip non-safe values in next/pairs
14:51:20 <HackEgo> [wiki] [[Lua Joust]] https://esolangs.org/w/index.php?diff=46538&oldid=46537 * Fizzie * (+4) /* Lua Environment */ I'm pretty sure this was a typo.
14:51:49 <HackEgo> [wiki] [[Lua Joust]] https://esolangs.org/w/index.php?diff=46539&oldid=46538 * Lymia * (+246)
14:52:02 <HackEgo> [wiki] [[Lua Joust]] M https://esolangs.org/w/index.php?diff=46540&oldid=46539 * Lymia * (+1)
14:52:13 -!- Lymia has left ("Hug~♪").
14:52:18 -!- Lymia has joined.
14:52:19 <Lymia> opps
14:52:51 <Lymia> The only solution I can think of is disabling next and pairs. :c
14:53:12 -!- spiette has quit (Quit: :qa!).
14:53:19 -!- bender| has quit (Ping timeout: 250 seconds).
14:53:35 <b_jonas> Lymia: but if you do that, then what you get doesn't resemble to lua much anymore
14:54:03 <Lymia> I could also do a very slow pairs() implementation
14:54:06 <Lymia> Which sorts
14:54:23 <b_jonas> Lymia: can't you just (a) be careful with how you prepare the tables you pass to the program, and (b) set the hash seed to a fixed deterministic value so that any table the user creates is deterministic if you know its history?
14:54:39 <Lymia> b_jonas, the problem is allocation
14:54:48 <Lymia> The hash of, say, {} is its memory address.
14:54:54 <b_jonas> oh...
14:54:55 <b_jonas> ouch
14:55:04 <b_jonas> that would be more difficult to fix, yes
14:55:40 -!- jaboja has quit (Ping timeout: 244 seconds).
14:56:05 <b_jonas> Lymia: luckily for you the lua math standard library doesn't have a signbit or copysign function. The sign bits of NaN values from normal float arithmetic could depend on how you compile your code, but I think with the current lua standard library there might not be any way to extract the sign bit.
14:56:16 -!- spiette has joined.
14:56:27 <Lymia> I believe that'd be artitecture dependent.
14:56:31 <Lymia> Which I'm just going to have to live with.
14:56:41 <Lymia> No good ways out of that one.
14:56:44 <b_jonas> Lymia: exactly, x87 has a saner rule for the sign bit than sse2
14:56:49 <b_jonas> s/sse2/sse/
14:57:06 <b_jonas> no wait
14:57:42 <Lymia> bleh
14:57:44 <b_jonas> x87 and sse also differ on the mantissa of the nan, but you can't generates nans with mantissa different from the "indeterminate" nan, so that doesn't matter
14:57:53 <b_jonas> and x87 has the sane rule for them
14:57:57 <Lymia> The table data structure doesn't let me make the guarantees I want.
14:58:10 <Lymia> So I don't think just skipping over "bad" values in next will work.
14:58:22 <b_jonas> and the sign of nans is actually undefined on sse (as in the documentation says that it's undefined, which is uncharacteristic for x86)
14:58:44 <b_jonas> Lymia: could you fix the addresses too by allocating with a memory allocator you control from a pool of a fixed address?
14:59:02 <b_jonas> Or from a pool of variable address, but modify the hash function?
14:59:08 <Lymia> That would eliminate any possibility of a Lua implementation.
14:59:15 <Lymia> It'd have to be in C, maybe with a patched Lua.
14:59:42 <b_jonas> Lymia: ok, alternately, can you determine determinism if next returns only keys of certain types?
14:59:47 <b_jonas> I don't know how the table works
15:00:00 <Lymia> I don't think so.
15:00:04 <b_jonas> though there's still the problem with # of course
15:00:27 <Lymia> The hash table uses some algorithm that puts colliding elements in different slots, instead of a linked list.
15:00:27 <b_jonas> I have looked at only very few parts of the lua implementation, not the table impl.
15:00:43 <Lymia> So bad elements (From what it looks like) can actually cause reordering in otherwise good elements.
15:00:54 <Lymia> # should be safe.
15:01:07 <b_jonas> Ok, wait, what if you ask a hint from #lua here on freenode? They can handle crazy technical questions about lua as far as I remember.
15:01:35 <Lymia> Hrm.
15:01:37 <Lymia> I could remove next.
15:01:53 <Lymia> And replace pairs() with a custom deterministic ordering.
15:02:48 <b_jonas> Lymia: you say "The tostring function is modified to not reveal the address of tables, threads, functions, or userdata." -- can exception formatting use the builtin tostring, which you could detect with xpcall?
15:03:11 <b_jonas> Lymia: also, wait, can you catch "out of memory" errors from pure lua?
15:03:45 <Lymia> .. er.
15:03:59 <Lymia> I don't know.
15:04:17 <b_jonas> I'm being evil here
15:04:19 <Lymia> I also thought of stack overflows, but.
15:04:48 <b_jonas> wait wait
15:05:04 <Lymia> Running out of stack space.
15:05:06 <b_jonas> you're allowed to set metatables on tables, right?
15:05:09 <Lymia> Yes.
15:05:17 <Lymia> <b_jonas> Lymia: you say "The tostring function is modified to not reveal the address of tables, threads, functions, or userdata." -- can exception formatting use the builtin tostring, which you could detect with xpcall?
15:05:25 <Lymia> I can't figure out how to get that into an error message.
15:05:34 <Lymia> Calling error gets you (error object is a table value)
15:05:41 <b_jonas> that means you can create a table with weak values, which means you can observe the garbage collector, right?
15:06:01 <Lymia> And __gc too.
15:06:03 <Lymia> But that's solvable.
15:06:10 <b_jonas> go on
15:06:14 <Lymia> Those only matter on setmetatable() time, so.
15:06:19 <Lymia> You can just remove those values from the table.
15:06:38 <Lymia> If you add __gc or __mode to the metatable after you setmetatable, they don't do anything.
15:07:42 <b_jonas> Lymia: what if __mode was already there but you modify it later?
15:08:38 <b_jonas> Lymia: also, does the __mode of the metatable get possibly re-examined at the next garbage collection cycle?
15:09:22 <Lymia> I just mentioned that.
15:09:38 <Lymia> Hold on
15:09:54 <Lymia> "Note that if you set a metatable without a __gc field and later create that field in the metatable, the object will not be marked for finalization."
15:10:23 <Lymia> The same is not guarenteed for __mode in the secp.
15:10:24 <Lymia> spec*
15:10:25 <b_jonas> Lymia: I think what you said about __mode is for older versions of lua
15:10:27 <Lymia> But, AFAIK, it still holds.
15:11:00 <b_jonas> Lymia: I don't think so
15:11:43 <Lymia> Hrm. __mode was changed, yeah.
15:11:50 <b_jonas> *snicker*
15:12:03 <b_jonas> I sort of like lua for things like this, but good luck if you fix all this
15:13:14 <Lymia> OK.
15:13:15 <Lymia> Let's do this
15:13:24 <Lymia> Disable garbage collection while running the programs.
15:13:29 <Lymia> And run a cycle manually afterwards.
15:15:05 <Lymia> Eliminate GC non-determinism.
15:16:36 <b_jonas> oh
15:16:47 <b_jonas> you mean you won't re-create the lua interpreter between runs?
15:16:58 <Lymia> The implementation is in Lua.
15:17:11 <Lymia> I guess that is a solution.
15:17:11 <b_jonas> I assumed you would, but it might not be necessary, if you recreate all of the environment (including the math table and stuff)
15:17:18 <Lymia> Yep.
15:17:20 -!- oerjan has joined.
15:17:36 <Lymia> pairs() is the only real nasty problem.
15:17:41 <b_jonas> you might also have to recreate the metatable of strings, and stuff like that
15:17:56 <Lymia> getmetatable and setmetatable are patched to only set metatables on tables.
15:18:03 <Lymia> But I'll just remove them since __mode is an issue.
15:18:14 <b_jonas> ouch
15:18:20 <b_jonas> you remove them entirely?
15:18:26 <Lymia> I might.
15:18:43 <Lymia> I'll have to think about that.
15:18:56 <b_jonas> is there some way to access the metatable of strings without getmetatable?
15:20:53 <Lymia> No.
15:21:04 <Lymia> getfenv used to be a problem
15:21:06 <Lymia> But not anymore.
15:21:11 <oerjan> `? metatable
15:21:30 <HackEgo> metatable? ¯\(°​_o)/¯
15:21:51 <b_jonas> Lymia: ok, well good luck, and ask #lua
15:24:09 <Lymia> The other answer is to drop nondeterminism.
15:24:14 <Lymia> And allow random behavior.
15:27:30 <HackEgo> [wiki] [[Lua Joust]] https://esolangs.org/w/index.php?diff=46541&oldid=46540 * Lymia * (+131) /* Detailed Rules */
15:30:44 <oerjan> @tell ais523 <ais523> but that's at least partly because I do most of my work in bed <-- i believe that doing ordinary activities in bed is considered bad for sleep hth
15:30:44 <lambdabot> Consider it noted.
15:30:58 <Lymia> Hrm.
15:31:02 <Lymia> Different project.
15:31:08 <Taneb> Helloerjan
15:31:20 <oerjan> tafterneb
15:31:23 <Lymia> What's the best way to detect "potato" programs.
15:31:37 <Lymia> In BFJoust which are terrible and unlikely to be useful.
15:31:51 <oerjan> check for initial < hth
15:31:57 <Lymia> I intend to run a large hill of >10000 programs
15:32:19 <Lymia> How do I take the raw scores from that and figure out which programs are potato.
15:32:49 <Taneb> Lymia: recursively eliminate the programs with zero wins?
15:33:00 <Lymia> hrm
15:33:05 <Lymia> That'd indeed cull the worst of the worst.
15:33:12 <Lymia> But not the "maybe OK" programs.
15:33:28 <Lymia> Like.
15:33:37 <b_jonas> `olist 1027
15:33:38 <Lymia> That ends as soon as you find a program where A beats B and B beats A
15:33:42 <HackEgo> olist 1027: shachaf oerjan Sgeo FireFly boily nortti b_jonas
15:33:45 <Lymia> It doesn't actually have to do if they're any good or not.
15:33:48 <oerjan> but whether a program does well depends on the other programs on the hill
15:34:15 <oerjan> oolist
15:34:57 <b_jonas> Lymia: how would you run a hill of 10000 programs? that would mean 10000**2 matches! you'd need a powerful set of computers for that, even if you write really optimized joust backends.
15:35:30 -!- p34k has joined.
15:35:35 <Lymia> Time
15:35:36 <Lymia> Lots o fit
15:35:38 <Lymia> of it*
15:35:52 <b_jonas> but... um...
15:36:54 <oerjan> Volume!
15:37:25 <Lymia> ?
15:37:30 <Lymia> But what
15:38:08 <oerjan> just hack into a supercomputer hth
15:38:28 -!- lambda-11235 has joined.
15:38:29 <oerjan> then it should only take about 80 years.
15:39:38 <Lymia> It's
15:39:51 <b_jonas> wait, he doesn't even mention that Banjo is freaking chaotic and could easily have voted the wrong way?
15:39:56 <Lymia> Only a hundred million matchups
15:40:01 <Lymia> That isn't too terrible.
15:40:08 <Lymia> As far as "computable things" goes.
15:40:12 <int-e> `learn It's written with an apostrophe.
15:40:20 <HackEgo> Learned 'it'': It's written with an apostrophe.
15:40:33 <Lymia> A week at worst, most likely.
15:41:59 <Taneb> > 100 * 100 * 42
15:42:00 <lambdabot> 420000
15:42:18 <Taneb> > 100 * 100 * 42 * 100000 -- :: Cycles
15:42:19 <lambdabot> 42000000000
15:42:32 -!- lleu has joined.
15:43:04 <Taneb> Lymia: assuming 1000 cycles a second, worst case that'll take 16 months
15:44:06 <Taneb> > 50 * 99 * 42 * 100000 -- :: Cycles, removing trivial matchups
15:44:08 <lambdabot> 20790000000
15:44:23 <Taneb> Still 240 days
15:44:44 <Lymia> 1000 cycles a second?
15:44:59 <Lymia> Are you running it on a Pentium III?
15:45:19 <Taneb> Lymia: I have no instinct for how fast a cycle should be
15:45:41 -!- XorSwap has joined.
15:45:50 <Lymia> Or a 8086? That might get the 1000 cycles/s
15:45:56 <Lymia> It's orders of magnitude off.
15:46:00 <Taneb> Well then
15:46:09 <Taneb> You're in luck that I don't decide how fast things go
15:47:55 <Lymia> I'd say very conservatively maybe 1 million cycles a second.
15:48:02 <b_jonas> um
15:57:56 <Lymia> Taneb, basically. If you estimate 1000 cycle/s
15:58:47 <Lymia> You're guessing 2 million processor cycles per BFJoust cycle at 2 GhZ. For one core.
16:01:07 <Taneb> I am way off
16:04:55 <Lymia> I'm measuring 0.019s per core for a full round of (.)*-1 vs (.)*-1
16:05:24 <Lymia> Which implies maybe 50 full rounds per second worst case
16:06:22 <Lymia> Giving 23 days. But that's if every match takes the full 100000 cycles.
16:06:50 <Lymia> So, around a week or so given 4 cores.
16:07:42 <Lymia> I'm not worried.
16:08:02 -!- _46bit has joined.
16:09:31 -!- J_Arcane has quit (Ping timeout: 252 seconds).
16:10:10 -!- mroman has quit (Quit: Lost terminal).
16:10:48 <_46bit> I came second in a Brainfuck competition!
16:11:48 <oerjan> _46bit: are you from york
16:12:00 <_46bit> yes!
16:12:09 <oerjan> Taneb here also participated
16:12:12 <_46bit> indeed
16:12:26 <Taneb> oerjan: we know each other
16:12:36 <_46bit> Taneb actually earned their prize
16:12:44 <fizzie> Lymia: IIRC, it takes on the order of a few seconds (less than three, I think) to run through the 1081 pairings zemhill's 47-program hill has. Assuming it was 2 seconds, and extrapolating to 10000 (so a factor of (10000*9999)/(47*46)), that'd be about ~100k CPU-seconds. That's barely over a day, and that's single-threaded.
16:12:53 <_46bit> I did something like FizzBuzz
16:12:59 <_46bit> and then nobody else entered
16:13:00 <_46bit> so I won
16:13:04 <int-e> @bf ++++++++++[>++++++++++>+++++++++++>+++<<<-]>-.>+.-.<++++.>++++.<------.>++.+.---------.<.>++++++++.<++++++++.++++++.-.>-.<<.
16:13:04 <lambdabot> congratulations
16:13:06 <_46bit> :-( :-)
16:13:08 <oerjan> congrats to both of you
16:13:18 <int-e> @bf ++++++++++[>++++++++++>+++++++++++>+++<<<-]>-.>+.-.<++++.>++++.<------.>++.+.---------.<.>++++++++.<++++++++.++++++.-.>-.>.
16:13:18 <lambdabot> congratulations
16:13:34 <int-e> ah.
16:13:37 <int-e> @bf ++++++++++[>++++++++++>+++++++++++>+++<<<-]>-.>+.-.<++++.>++++.<------.>++.+.---------.<.>++++++++.<++++++++.++++++.-.>-.>+++.
16:13:37 <lambdabot> congratulations!
16:13:39 <Lymia> In practice
16:13:40 <int-e> stupid.
16:13:55 <Lymia> I only actually have 5297 programs.
16:13:57 <Lymia> So cut that by 1/4
16:14:36 -!- J_Arcane has joined.
16:14:47 <fizzie> Also from an old hill -- "Simulated a total of 378501202 cycles in 45402 individual jousts for 1081 duels." That gives an average of 8337 cycles/[whatever term you want to use].
16:15:59 <Lymia> 11470 distinct programs, but.
16:16:09 <Lymia> If my canonicalization is good.
16:16:17 <Lymia> Only 5297 in effect
16:18:24 <Lymia> oh, well
16:18:25 <Lymia> nope
16:18:30 <Lymia> I definitely have canonicalization errors
16:20:51 <b_jonas> hmm
16:21:35 <Lymia> fixed.
16:22:09 <fizzie> Ah, there's an actual number.
16:22:10 <fizzie> 2014-09-22 19:53:50 <fizzie> ais523: gearlanced can run the entire hill (all 1081 program pairs) in 1.7 seconds on this system.
16:22:29 <Lymia> Is what I get for using regex.
16:22:37 <Lymia> How's torquelance?
16:23:00 <fizzie> None of the fancy variants have really been worth it, IIRC.
16:23:15 <Lymia> I did measure a 2x speedup from it
16:23:22 <Lymia> On a simple case
16:24:01 -!- XorSwap has quit (Ping timeout: 244 seconds).
16:24:09 <Lymia> but, urgh protobuf
16:24:21 <fizzie> Yeah, I kind of got carried away.
16:24:40 <fizzie> It's only for the visualization statistics, I think.
16:25:03 <Lymia> Most of my runtime in the version gathering phase
16:25:07 <Lymia> Is from hg
16:25:19 <fizzie> Oh, I guess it's for everything now. Sorry about that.
16:25:19 <Lymia> That thing is slow
16:25:35 <Lymia> I could probably honestly speed it up using git-hg
16:25:37 <Lymia> Let's try that
16:25:55 <fizzie> Well, the "ascii-based" protocol it had wasn't exactly pleasant either.
16:27:05 <fizzie> Anyway, using gearlanced to run a hill is quite a bit faster than calling gearlance individually for each pair.
16:28:13 <Lymia> Can has a torquelanced? :P
16:28:21 <Lymia> iunno
16:28:26 <Lymia> I should benchmark it for real sometime
16:28:30 <Lymia> To see if that stuff is actually worth it
16:29:19 <fizzie> I think wrenchlance worked better than torquelance in my own tests, but I haven't really been very rigorous about this.
16:30:04 <Lymia> wrenchlance invokes gcc
16:30:08 <Lymia> oh, but only once per pair
16:30:17 <Lymia> Er
16:30:19 <Lymia> program*
16:30:48 <Lymia> You could probably put together a torquelanced though
16:30:54 <Lymia> wrenchlance seems more resistant to taht
16:31:34 <Lymia> Not even a torquelanced
16:32:10 <Lymia> torquelance_multiple right_B right_B2 program1A program2A program3A program4A...
16:32:40 <fizzie> Huh, that's interesting. In a straight-forward "run the thing for each pair individually", http://sprunge.us/JHOS -- more elapsed-time but less user-time.
16:34:23 <Lymia> ?
16:34:31 <Lymia> Could it be from your shell script
16:36:39 <fizzie> Could be. These aren't really meant for benchmarking at all, it's part of the regression-testing thing.
16:36:46 <fizzie> I just stuck a "time" there for funsies.
16:36:51 -!- nycs has joined.
16:37:17 -!- `^_^v has quit (Ping timeout: 268 seconds).
16:44:23 -!- jaboja has joined.
16:48:29 <Lymia> Hrm
16:48:39 <Lymia> Maybe I could make do with a specialized program based off torquelance?
16:48:57 <Lymia> Reads BFJoust programs from stdin, compiles and does a full tournament on them in-memory
16:54:34 <oerjan> @tell ais523 <ais523> mad: as I said, this is how quantum bogosort "works" <-- btw i think such things are not really believed possible; they're basically incompatible with the principle of unitary evolution - they require postselection, a feature which quantum mechanics does _not_ seem to support.
16:54:34 <lambdabot> Consider it noted.
16:54:59 -!- J_Arcane has quit (Ping timeout: 244 seconds).
16:56:31 <oerjan> @tell ais523 That is, you can set up an experiment in which two paths (with indistinguishible results) cancel each other, but you cannot do that from inside that paths themselves, and there must always remain possible paths.
16:56:31 <lambdabot> Consider it noted.
16:57:34 <oerjan> @tell ais523 (because unitary evolution means the total probability of all remaining options does not change.)
16:57:34 <lambdabot> Consider it noted.
17:00:26 -!- AnotherTest has joined.
17:05:40 -!- J_Arcane has joined.
17:17:52 <Lymia> fizzie, so. Something more difficult
17:18:06 <Lymia> What do I do if I want full stats for 10000 v 10000
17:20:47 <Lymia> !ztest http://google.com
17:20:47 <zemhill> Lymia: "!ztest progname code". See http://zem.fi/bfjoust/ for documentation.
17:20:52 <Lymia> !ztest google http://google.com
17:20:52 <zemhill> Lymia: error: parse error: encountered { without suitable enclosing (
17:21:08 <Lymia> Hrm
17:21:17 <Lymia> impossible things: html+bfjoust polygot
17:21:22 <Lymia> Or, well.
17:21:25 <Lymia> It's possible, but...
17:21:32 <Lymia> Only for one bfjoust program.
17:24:03 <b_jonas> Lymia: that depends on how exactly you interpret HTML
17:24:35 <Taneb> b_jonas: if you interpret HTML using a brainfuck interpreter....
17:26:06 <Lymia> <!DOCTYPE
17:26:08 <Lymia> you die
17:33:46 -!- XorSwap has joined.
17:34:44 -!- oerjan has quit (Quit: Later).
17:35:08 -!- XorSwap has quit (Client Quit).
17:41:51 -!- jaboja has quit (Ping timeout: 264 seconds).
18:00:48 -!- oerjan has joined.
18:01:01 <oerjan> !sh uptime
18:01:01 <EgoBot> 18:01:01 up 83 days, 11:14, 0 users, load average: 13.09, 13.15, 13.22
18:01:09 <int-e> Lymia: which is just what you deserve
18:01:20 <int-e> I mean, if you did that
18:01:45 <oerjan> !sh ps | grep lance
18:01:46 <EgoBot> ​\ \ Signal 18 (CONT) caught by ps (procps version 3.2.8). \ Please send bug reports to <feedback@lists.sf.net> or <albert@users.sf.net>
18:01:54 <oerjan> wat
18:02:08 <oerjan> oh well.
18:02:12 <int-e> (many brainfuck interpreters won't care, of course... and after the next > you'll be in safe territory again)
18:02:29 -!- oerjan has quit (Client Quit).
18:02:30 <int-e> hmm, that's a cool one...
18:02:56 <int-e> !sh ps | grep lance
18:02:56 <EgoBot> ​\ \ Signal 18 (CONT) caught by ps (procps version 3.2.8). \ Please send bug reports to <feedback@lists.sf.net> or <albert@users.sf.net>
18:03:10 <int-e> okay so apparently it does that every time :/
18:03:16 <Lymia> \o/
18:03:43 <int-e> and what's !sh anyway
18:04:49 <int-e> !sh pstree | grep lance
18:04:50 <EgoBot> ​| | | `-report---gearlance] \ | | | `-report---gearlance]
18:05:10 <Lymia> Can you kill it?
18:05:18 <Lymia> Try killall -9 report
18:05:57 <int-e> !sh grep lance /proc/*/cmdline
18:05:57 <EgoBot> Binary file /proc/12604/cmdline matches \ Binary file /proc/12663/cmdline matches \ Binary file /proc/12728/cmdline matches \ Binary file /proc/13455/cmdline matches \ Binary file /proc/13547/cmdline matches \ Binary file /proc/13728/cmdline matches \ Binary file /proc/13988/cmdline matches \ Binary file /proc/14438/cmdline matches \ Binary file /proc/14988/cmdline matches \ Binary file /proc/15555/cmdline matches
18:06:43 * int-e isn't sure how much he can break there
18:06:45 <int-e> !sh whoami
18:06:46 <EgoBot> ​/usr/bin/whoami: cannot find name for user ID 1546733
18:06:59 <int-e> !sh pstree -u | grep lance
18:07:00 <EgoBot> ​| | | `-report---gearlance] \ | | | `-report---gearlance]
18:07:34 <int-e> !sh pstree -u | grep report
18:07:34 <EgoBot> ​| | | `-report---gearlance] \ | | | `-report---gearlance]
18:07:41 <int-e> !sh killall report
18:07:42 <EgoBot> report(995): Operation not permitted \ report(12604): Operation not permitted \ report(12663): Operation not permitted \ report(12728): Operation not permitted \ report(13455): Operation not permitted \ report(13547): Operation not permitted \ report(13728): Operation not permitted \ report(13988): Operation not permitted \ report(14438): Operation not permitted \ report(14988): Operation not permitted \ report(15555):
18:07:47 <int-e> okay, nothing :)
18:07:53 <Lymia> Wish that'd work.
18:07:55 <int-e> !sh pstree -u | grep report
18:07:56 <EgoBot> ​| | | `-report---gearlance] \ | | | `-report---gearlance]
18:08:00 <Lymia> It needs doing.
18:08:08 <int-e> !sh pstree -p | grep report
18:08:08 <EgoBot> ​| | | `-report(995)---gearlance(31444) \ | | | `-report(12604)---gearlance(3138+ \ | | | `-report(12663)---gearlance(3138+ \ |
18:08:10 <Lymia> Check /tmp for goodies
18:09:05 -!- lynn has joined.
18:09:33 <int-e> !sh du -s /tmp 2>/dev/null
18:09:34 <EgoBot> 4./tmp
18:09:59 <Lymia> I wonder if there's overflows and/or 'fun' to be had with gearlance.
18:10:11 <int-e> probably?
18:10:18 <Lymia> If you can get it to run code as the same user as report.
18:10:22 <Lymia> And killit
18:11:09 <fizzie> Lymia: Well, zhillcrank.rb takes 4.121s of elapsed time to crank full statistics for the 47-program hill, so computationally speaking that doesn't sound like a problem. Though you'd probably need to adjust it to do some batching. The stat file for 47 programs is 8147534 and I would assume it to be approximately linear in the number of pairs. Extrapolating to 10k programs, that'd mean ...
18:11:15 <fizzie> ... 376814026207 bytes ~ 350 GB, which might not fit in RAM on many systems. (Especially since the in-memory representation probably has more overhead.)
18:11:38 <fizzie> s/8147534/8147534 bytes/
18:12:16 <Lymia> You need gearlance, right?
18:12:18 <Lymia> For stats
18:12:24 <Lymia> No fancy lances.
18:12:32 <fizzie> Yes.
18:12:37 <fizzie> But it's not that slow.
18:12:55 <Lymia> I'd also like to modify it to generate .svg files instead of .png
18:13:01 <Lymia> To save on storage spce.
18:13:02 <Lymia> space*
18:13:31 <Lymia> Last time I tried 100x100 I remember problems with it using lots of space on disk.
18:13:33 <fizzie> Oh, you mean running the old-style egostats? That would be entirely impossible.
18:13:34 <Lymia> The final output
18:14:48 <Lymia> How so?
18:16:26 <fizzie> Because those scripts manage to use multiple gigabytes of memory to even run for the 47x47 case.
18:16:37 <fizzie> I assumed you just wanted the raw data.
18:17:33 <fizzie> (To do something with, I don't know what.)
18:18:09 <fizzie> Many (most?) of the plots also wouldn't really work for 10k programs.
18:25:58 <int-e> !sh awk '{ print $22 }' /proc/{995,self}/stat
18:25:59 <EgoBot> 717423685 \ 721318974
18:26:26 <int-e> > (721318974 - 717423685) / 100 / 3600
18:26:27 <lambdabot> 10.820247222222221
18:26:52 <int-e> I think that's how long ago (in hours) that thing was started
18:27:49 <fizzie> I think I vaguely recall a discussion on how EgoBot's copy of gearlance predates the fix for empty loops.
18:28:07 <int-e> oh is that the ()*-1 stuff?
18:28:41 <fizzie> I think so, yes.
18:28:50 <fizzie> Or some more complex forms.
18:29:06 <fizzie> (Like nested ones.)
18:31:53 <int-e> hah, there's a !bfjoust command at 8:36, which fits my calculation
18:37:04 <int-e> !sh grep -l report /proc/[1-9]*/stat | xargs awk 'p { print (s - $22)/100, "seconds ago" } !p { p = 1; s = $22; }' /proc/self/stat | date -f-
18:37:05 <EgoBot> ​/bin/grep: /proc/9303/stat: No such file or directory \ Sun Mar 6 23:57:45 UTC 2016 \ Sun Mar 6 23:57:56 UTC 2016 \ Sun Mar 6 23:58:03 UTC 2016 \ Mon Mar 7 00:00:19 UTC 2016 \ Mon Mar 7 00:00:27 UTC 2016 \ Mon Mar 7 00:00:51 UTC 2016 \ Mon Mar 7 00:01:20 UTC 2016 \ Mon Mar 7 00:02:13 UTC 2016 \ Mon Mar 7 00:02:58 UTC 2016 \ Mon Mar 7 00:03:46 UTC 2016 \ Mon Mar 7 07:12:11 UTC 2016 \ Mon Mar 7 14:10:24 UTC
18:37:09 <Lymia> fizzie, so, better question.
18:37:17 <Lymia> zhillcrank outputs this, right: http://zem.fi/bfjoust/vis/cycles/
18:37:33 <Lymia> How do you expect this UI to hold up to 10000 x 10000 warriors
18:39:13 <int-e> 00:56:23 <b_jonas> !bfjoust pause ()*-1 00:56:26 <EgoBot> ​Score for b_jonas_pause: 6.1 ... hmmmmm.
18:40:33 <int-e> !sh date
18:40:34 <EgoBot> Mon Mar 7 18:40:34 UTC 2016
18:40:51 <Lymia> !bfjoust live .
18:41:14 <int-e> ah, that's the one: 00:57:44 <b_jonas> !bfjoust pause ((({})*999999)*9999999)*999999
18:41:35 <int-e> it's been broken since.
18:42:41 <int-e> `? b_jonas
18:42:49 <HackEgo> b_jonas egy nagyon titokzatos személy. Hollétéről egyelőre nem ismertek.
18:42:58 <int-e> aha.
18:43:05 <int-e> does it say that he's a bad person?
18:44:45 <int-e> !sh grep -l report /proc/[1-9]*/stat | xargs awk 'p { print (s - $22)/100, "seconds ago" } !p { p = 1; s = $22; }' /proc/self/stat | date -f- +%d-%H:%M:%S
18:44:46 <EgoBot> ​/bin/grep: /proc/15886/stat: No such file or directory \ 07-18:40:52 \ 06-23:57:45 \ 06-23:57:56 \ 06-23:58:03 \ 07-00:00:19 \ 07-00:00:27 \ 07-00:00:51 \ 07-00:01:20 \ 07-00:02:13 \ 07-00:02:59 \ 07-00:03:46 \ 07-07:12:11 \ 07-14:10:25 \ 07-07:36:46
18:45:34 <int-e> !sh grep -l report /proc/[1-9]*/stat 2>/dev/null | xargs awk 'p { print (s - $22)/100, "seconds ago" } !p { p = 1; s = $22; }' /proc/self/stat | date -f- +%d-%H:%M:%S | sort | xargs
18:45:35 <EgoBot> 06-23:57:45 06-23:57:56 06-23:58:03 07-00:00:19 07-00:00:27 07-00:00:51 07-00:01:20 07-00:02:14 07-00:02:59 07-00:03:46 07-07:12:11 07-07:36:46 07-14:10:25 07-18:40:52
18:49:07 <int-e> (these are the start times of the various report processes; presumably they all hang waiting on a gearlance process that's merrily consuming CPU cycles)
18:49:37 <int-e> oh and the output is UTC
18:50:25 <Lymia> h,,
18:50:27 <Lymia> hm
18:50:29 <Lymia> Check their pid
18:50:55 <int-e> 995 is the first one (see above)
18:51:05 <Lymia> Er
18:51:06 <Lymia> Not pid, uid
18:53:29 -!- copumpkin has quit (Quit: Textual IRC Client: www.textualapp.com).
18:53:47 <int-e> !sh ls -la /proc/995/stat
18:53:48 <EgoBot> ​/bin/ls: /proc/995/stat: Function not implemented \ -r--r--r-- 1 5000 0 0 Mar 7 14:10 /proc/995/stat
18:53:49 -!- copumpkin has joined.
18:54:02 <int-e> !sh id
18:54:03 <EgoBot> uid=1236523 gid=1236523
18:54:07 <int-e> !sh id
18:54:07 <EgoBot> uid=1332109 gid=1332109
18:54:14 <Lymia> ... is it 100% random?
18:54:27 <Lymia> That could be fun if it randomly happens to be 5000
18:54:37 <Lymia> uname -a? :P
18:54:45 <int-e> !sh uname -a
18:54:45 <EgoBot> Linux codu.org 3.2.0-4-amd64 #1 SMP Debian 3.2.68-1+deb7u3 x86_64 GNU/Linux
18:54:51 <int-e> can't you do that yourself?
18:55:01 <Lymia> !sh test
18:55:01 <EgoBot> No output.
18:55:06 <int-e> !sh test
18:55:07 <EgoBot> No output.
18:55:07 <Lymia> huh
18:55:18 <Lymia> 3.2.0 is old isn't it
18:55:40 <Lymia> I wonder if it fixes the keyrings exploit
18:55:40 <int-e> !ls /boot
18:56:03 <int-e> !sh ls /boot
18:56:04 <EgoBot> ​/bin/ls: cannot access /boot: No such file or directory
18:56:09 <int-e> !sh ls /
18:56:10 <EgoBot> bin \ dev \ etc \ home \ lib \ lib64 \ opt \ proc \ tmp \ usr
18:57:20 <Lymia> !sh find / -perm -4000
18:57:20 <EgoBot> ​/usr/bin/find: `/': Function not implemented
18:57:27 <Lymia> wut
18:57:29 <Lymia> !sh find / -perm 4000
18:57:29 <EgoBot> ​/usr/bin/find: `/': Function not implemented
18:57:34 <Lymia> !sh busybox find / -perm 4000
18:57:55 <EgoBot> find: /proc/tty/driver: Input/output error \ find: /proc/1/task/1/fd: Input/output error \ find: /proc/1/task/1/fdinfo: Input/output error \ find: /proc/1/task/1/ns: Input/output error \ find: /proc/1/fd: Input/output error \ find: /proc/1/fdinfo: Input/output error \ find: /proc/1/ns: Input/output error \ find: /proc/2/task/2/fd: Input/output error \ find: /proc/2/task/2/fdinfo: Input/output error \ find: /proc/2/task/2/ns:
18:58:00 <Lymia> !sh busybox find / -perm 4000 | paste
18:58:17 <EgoBot> find: /proc/tty/driver: Input/output error \ find: /proc/1/task/1/fd: Input/output error \ find: /proc/1/task/1/fdinfo: Input/output error \ find: /proc/1/task/1/ns: Input/output error \ find: /proc/1/fd: Input/output error \ find: /proc/1/fdinfo: Input/output error \ find: /proc/1/ns: Input/output error \ find: /proc/2/task/2/fd: Input/output error \ find: /proc/2/task/2/fdinfo: Input/output error \ find: /proc/2/task/2/ns:
18:58:24 <Lymia> !sh busybox find / -perm 4000 2>/dev/null
18:58:40 -!- Reece` has joined.
19:01:25 <Lymia> !sh busybox ps ax
19:01:26 <EgoBot> PID USER COMMAND \ 1 0 /lib/systemd/systemd --system --deserialize 17 \ 2 0 [kthreadd] \ 3 0 [ksoftirqd/0] \ 5 0 [kworker/u:0] \ 6 0 [migration/0] \ 7 0 [watchdog/0] \ 8 0 [migration/1] \ 10 0 [ksoftirqd/1] \ 11 0 [watchdog/1] \ 12 0 [cpuset] \ 13 0 [khelper] \ 14 0 [kdevtmpfs] \ 15 0
19:01:56 <Lymia> !sh ldd `which find`
19:01:56 <EgoBot> ldd: exited with unknown exit code (139)
19:02:03 <Lymia> !sh busybox ldd `which find`
19:02:04 <EgoBot> ldd: applet not found
19:02:26 <Lymia> !sh LD_PRELOAD=/lib/libc.so.6 ldd `which find`
19:02:26 <EgoBot> ​/bin/bash: /usr/bin/ldd: No such file or directory
19:02:39 <Lymia> !sh LD_PRELOAD=/lib/libc.so.6 LD_LIBRARY_PATH="" ldd `which find`
19:02:40 <EgoBot> ​/bin/bash: /usr/bin/ldd: No such file or directory
19:02:48 <Lymia> !sh ls /usr/bin/ldd
19:02:49 <EgoBot> ​/usr/bin/ldd
19:02:53 <Lymia> !sh ls -alh /usr/bin/ldd
19:02:53 <EgoBot> ​/bin/ls: /usr/bin/ldd: Function not implemented \ -rwxr-xr-x 1 0 0 5.8K Aug 16 2009 /usr/bin/ldd
19:03:01 <Lymia> !sh busybox ls -alh /usr/bin/ldd
19:03:01 <EgoBot> ​-rwxr-xr-x 1 0 0 5.7K Aug 16 2009 /usr/bin/ldd
19:03:12 <Lymia> !sh busybox cp /usr/bin/ldd /tmp/ldd
19:03:12 <EgoBot> No output.
19:03:19 <Lymia> !sh LD_PRELOAD=/lib/libc.so.6 LD_LIBRARY_PATH="" /tmp/ldd `which find`
19:03:20 <EgoBot> ​/tmp/input.32686: line 1: /tmp/ldd: No such file or directory
19:03:26 <Lymia> !sh /tmp/ldd `which find`
19:03:27 <EgoBot> ​/tmp/input.358: line 1: /tmp/ldd: No such file or directory
19:03:33 <Lymia> !sh ls /tmp
19:03:33 <EgoBot> input.504
19:03:43 <Lymia> !sh busybox ls /tmp
19:03:44 <EgoBot> input.693
19:03:50 <Lymia> !sh busybox ls -alh /tmp
19:03:51 <EgoBot> ​-rw-r--r-- 1 5000 0 21 Mar 7 19:03 input.837
19:03:56 <Lymia> !sh busybox ls -alh /
19:03:56 <EgoBot> drwxr-xr-x 2 0 0 4.0K Oct 12 2011 bin \ drwxrwxrwx 0 0 0 0 Jan 1 1970 dev \ drwxrwxrwx 0 0 0 0 Jan 1 1970 etc \ drwxrwxrwx 0 0 0 0 Jan 1 1970 home \ drwxr-xr-x 11 0 0 8.0K Dec 31 2011 lib \ lrwxrwxrwx 1 0 0 4 Jan 1 1970 lib64 -> /lib \ drwxrwxrwx 0 0 0 0
19:03:57 <Lymia> Hrm
19:04:00 <Lymia> Mount namespaces?
19:04:05 <Lymia> !sh busybox mount
19:04:06 <EgoBot> rootfs on / type rootfs (rw) \ sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime) \ proc on /proc type proc (rw,nosuid,nodev,noexec,relatime) \ udev on /dev type devtmpfs (rw,relatime,size=10240k,nr_inodes=477568,mode=755) \ devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000) \ tmpfs on /run type tmpfs (rw,nosuid,relatime,size=771108k,mode=755) \ /dev/xvda1 on / type ext3
19:04:13 <Lymia> !sh busybox mount | grep tmp
19:04:14 <EgoBot> udev on /dev type devtmpfs (rw,relatime,size=10240k,nr_inodes=477568,mode=755) \ tmpfs on /run type tmpfs (rw,nosuid,relatime,size=771108k,mode=755) \ tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev) \ tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k) \ tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,mode=755) \ tmpfs on /run/user/0 type tmpfs (rw,nosuid,nodev,relatime,size=385556k,mode=700)
19:04:21 <Lymia> !sh busybox mount | grep /tmp
19:04:21 <EgoBot> No output.
19:04:25 <Lymia> !sh busybox mount | grep /
19:04:25 <EgoBot> rootfs on / type rootfs (rw) \ sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime) \ proc on /proc type proc (rw,nosuid,nodev,noexec,relatime) \ udev on /dev type devtmpfs (rw,relatime,size=10240k,nr_inodes=477568,mode=755) \ devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000) \ tmpfs on /run type tmpfs (rw,nosuid,relatime,size=771108k,mode=755) \ /dev/xvda1 on / type ext3
19:05:15 <Lymia> !sh busybox ls /run
19:05:15 <EgoBot> ls: /run: No such file or directory
19:05:20 <Lymia> !sh busybox ls /
19:05:20 <EgoBot> bin \ dev \ etc \ home \ lib \ lib64 \ opt \ proc \ tmp \ usr
19:05:33 <Lymia> Mount namespaces, definitely.
19:05:39 <Lymia> !sh busybox ls /home
19:05:39 <EgoBot> egobot
19:05:41 <Lymia> !sh busybox ls /home/egobot
19:05:41 <EgoBot> egobot.hg
19:05:45 <Lymia> !sh busybox ls /home/egobot/egobot.hg
19:05:46 <EgoBot> multibot_cmds
19:05:53 <Lymia> !sh busybox ls /home/egobot/egobot.hg/multibot_cmds
19:05:54 <EgoBot> interps \ lib \ slox
19:06:00 <Lymia> !sh busybox ls -alh /home/egobot/egobot.hg/multibot_cmds
19:06:00 <EgoBot> drwxr-xr-x 39 5000 5000 4.0K Feb 20 2011 interps \ drwxr-xr-x 2 5000 5000 4.0K May 31 2012 lib \ drwxrwxrwx 0 0 0 0 Jan 1 1970 slox
19:06:12 <Lymia> !sh ls /dev/shm
19:06:13 <EgoBot> ​/bin/ls: cannot access /dev/shm: No such file or directory
19:06:15 <Lymia> !sh ls /dev/
19:06:16 <EgoBot> null
19:06:42 <fizzie> I only know about HackEgo sandboxing, I don't know if/how similar EgoBot is.
19:06:45 <Lymia> !sh busybox --help
19:06:45 <EgoBot> BusyBox v1.14.2 (Debian 1:1.14.2-2) multi-call binary \ Copyright (C) 1998-2008 Erik Andersen, Rob Landley, Denys Vlasenko \ and others. Licensed under GPLv2. \ See source distribution for full notice. \ \ Usage: busybox [function] [arguments]... \ or: function [arguments]... \ \.BusyBox is a multi-call binary that combines many common Unix \..utilities into a single executable. Most people will create
19:06:53 <Lymia> !sh ldd `which busybox`
19:06:53 <EgoBot> ldd: exited with unknown exit code (139)
19:07:06 <Lymia> It looks like there's something weird going on with the libc
19:07:13 <Lymia> busybox is usually static, so.
19:07:22 <Lymia> `?
19:07:22 <HackEgo> Mmmmm... no.
19:07:36 <Lymia> I'll get revenge some day.
19:08:14 <Lymia> !sh (sleep 100) &
19:08:20 <Lymia> !sh id ; (sleep 100) &
19:08:31 <Lymia> !sh busybox ps axu | grep sh
19:08:31 <EgoBot> 115 0 [flush-202:0] \ 941 5000 /bin/bash PRIVMSG/tr_21.cmd PRIVMSG #esoteric !bfjoust comex_the_first_program_ever (>)*9[-]+[>[-]+] \ 953 0 /usr/sbin/sshd -D \ 967 5000 /bin/bash scmds/bfjoust bfjoust comex_the_first_program_ever (>)*9[-]+[>[-]+] PRIVMSG #esoteric !bfjoust comex_the_first_program_ever (>)*9[-]+[>[-]+] \ 990 5000 /bin/bash scmds/bfjoust bfjoust comex_the_first_program_ever
19:09:27 <Lymia> !sh busybox ps axu | grep gearlance
19:09:28 <EgoBot> 995 5000 ../report ../gearlance ../cache Deewiant_allegro.bfjoust Deewiant_pendolino.bfjoust Fiora_timestopping-mahou-shoujo.bfjoust Gregor_furry_furry_strapon_pegging_girls.bfjoust Lymia_aurora.bfjoust Lymia_flow.bfjoust Lymia_nyuroki.bfjoust Lymia_two_people_runn \ 6587 5000 /bin/bash PRIVMSG/tr_21.cmd PRIVMSG #esoteric !sh busybox ps axu | grep gearlance \ 6604 5000 /bin/bash PRIVMSG/tr_21.cmd
19:10:17 <Lymia> !sh busybox wget https://api.ipify.org?format=json -
19:10:18 <EgoBot> wget: not an http or ftp url: https://api.ipify.org?format=json
19:10:22 <Lymia> !sh busybox wget http://api.ipify.org?format=json -
19:10:22 <EgoBot> wget: bad address 'api.ipify.org'
19:10:29 <Lymia> !sh busybox wget http://api.ipify.org/?format=json -
19:10:30 <EgoBot> wget: bad address 'api.ipify.org'
19:10:56 <Lymia> !sh busybox wget http://23.21.54.217/?format=json -
19:10:57 <EgoBot> Connecting to 23.21.54.217 (23.21.54.217:80) \ wget: cannot connect to remote host (23.21.54.217): Connection refused
19:11:12 <Lymia> !sh busybox ifconfig
19:11:12 <EgoBot> eth0 Link encap:Ethernet HWaddr AA:00:00:3E:AD:41 \ inet addr:64.62.173.65 Bcast:64.62.173.127 Mask:255.255.255.128 \ inet6 addr: fe80::a800:ff:fe3e:ad41/64 Scope:Link \ UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 \ RX packets:16546593 errors:0 dropped:0 overruns:0 frame:0 \ TX packets:14196923 errors:0 dropped:0 overruns:0 carrier:0 \ collisions:0
19:11:37 <Lymia> !sh busybox ifconfig | grep Link
19:11:37 <EgoBot> eth0 Link encap:Ethernet HWaddr AA:00:00:3E:AD:41 \ inet6 addr: fe80::a800:ff:fe3e:ad41/64 Scope:Link \ lo Link encap:Local Loopback
19:11:58 <Lymia> !sh busybox wget http://127.0.0.1/ -
19:11:58 <EgoBot> Connecting to 127.0.0.1 (127.0.0.1:80) \ wget: can't open 'index.html': Permission denied
19:12:09 <Lymia> !sh busybox curl http://127.0.0.1/
19:12:10 <EgoBot> curl: applet not found
19:12:45 <Lymia> !sh busybox curl http://127.0.0.1/ -O -
19:12:46 <EgoBot> curl: applet not found
19:12:50 <Lymia> !sh busybox get http://127.0.0.1/ -O -
19:12:50 <EgoBot> get: applet not found
19:12:52 <Lymia> !sh busybox wget http://127.0.0.1/ -O -
19:12:52 <EgoBot> Connecting to 127.0.0.1 (127.0.0.1:80) \ <!doctype html> \ <html> \ <head><title>Codu</title> \ <meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> \ <link rel="openid.server" href="http://www.myopenid.com/server" /> \ <link rel="openid.delegate" href="http://codu.myopenid.com/" /> \ \ <link rel="stylesheet" href="/Gregor.css" type="text/css"/> \ <link rel="stylesheet" href="/css/superfish.css"
19:14:16 <Lymia> !sh busybox wget http://64.62.173.65/ -O -
19:14:17 <EgoBot> Connecting to 64.62.173.65 (64.62.173.65:80) \ <!doctype html> \ <html> \ <head><title>Codu</title> \ <meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> \ <link rel="openid.server" href="http://www.myopenid.com/server" /> \ <link rel="openid.delegate" href="http://codu.myopenid.com/" /> \ \ <link rel="stylesheet" href="/Gregor.css" type="text/css"/> \ <link rel="stylesheet" href="/css/superfish.css"
19:14:22 <Lymia> !sh busybox wget http://64.62.173.66/ -O -
19:14:22 <EgoBot> Connecting to 64.62.173.66 (64.62.173.66:80) \ wget: cannot connect to remote host (64.62.173.66): Connection refused
19:14:31 <Lymia> !sh busybox wget http://8.8.8.8/ -O -
19:14:31 <EgoBot> Connecting to 8.8.8.8 (8.8.8.8:80) \ wget: cannot connect to remote host (8.8.8.8): Connection refused
19:16:02 <Lymia> !sh wget http://google.com/ -O -
19:16:02 <EgoBot> ​--2016-03-07 19:16:02-- http://google.com/ \ Resolving google.com... failed: Name or service not known. \ wget: unable to resolve host address `google.com'
19:16:57 -!- jaboja has joined.
19:20:08 <int-e> !sh wget http://127.0.0.1/projects/hackbot/fshg/index.cgi/raw-file/0837befd290c/foo
19:20:10 <EgoBot> ​--2016-03-07 19:20:08-- http://127.0.0.1/projects/hackbot/fshg/index.cgi/raw-file/0837befd290c/foo \ Connecting to 127.0.0.1:80... connected. \ HTTP request sent, awaiting response... 200 Script output follows \ Length: 4 [application/binary] \ foo: Permission denied \ \ Cannot write to `foo' (No such file or directory).
19:20:15 <int-e> !sh wget http://127.0.0.1/projects/hackbot/fshg/index.cgi/raw-file/0837befd290c/foo -O -
19:20:16 <EgoBot> ​--2016-03-07 19:20:15-- http://127.0.0.1/projects/hackbot/fshg/index.cgi/raw-file/0837befd290c/foo \ Connecting to 127.0.0.1:80... connected. \ HTTP request sent, awaiting response... 200 Script output follows \ foo \ Length: 4 [application/binary] \ Saving to: `STDOUT' \ \ 0K 100% 285K=0s \ \ 2016-03-07 19:20:16 (285 KB/s) - `-' saved [4/4] \
19:20:45 <int-e> !sh wget http://127.0.0.1/projects/hackbot/fshg/index.cgi/raw-file/0837befd290c/foo -O - 2>/dev/null
19:20:47 <EgoBot> foo
19:20:58 <int-e> !help
19:20:58 <zemhill> int-e: I do !zjoust; see http://zem.fi/bfjoust/ for more information.
19:20:58 <EgoBot> ​help: General commands: !help, !info, !bf_txtgen. See also !help languages, !help userinterps. You can get help on some commands by typing !help <command>.
19:21:34 <int-e> !sh which gcc
19:21:35 <EgoBot> ​/usr/bin/gcc
19:21:45 <int-e> !fetch
19:22:21 <int-e> Lymia: oh well, at least you can access files inside the hackego environment that way
19:22:25 <int-e> `fetch
19:22:28 <HackEgo> http://: Invalid host name.
19:23:03 <Lymia> !sh uname --kernel-release
19:23:03 <EgoBot> 3.2.0-4-amd64
19:23:19 <Lymia> !sh busybox uname --kernel-release
19:23:19 <EgoBot> 3.2.0-4-amd64
19:23:26 <int-e> `fetch http://lpaste.net/raw/2845173683343851520
19:23:29 <HackEgo> 2016-03-07 19:23:06 URL:http://lpaste.net/raw/2845173683343851520 [26] -> "2845173683343851520" [1]
19:23:47 <Lymia> !sh busybox uname --operating-system
19:23:47 <EgoBot> GNU/Linux
19:23:49 <shachaf> `pooch
19:23:54 <int-e> !sh wget http://127.0.0.1/projects/hackbot/fshg/index.cgi/raw-file/tip/2845173683343851520 -O - 2>/dev/null
19:23:55 <EgoBot> Testing something or other
19:24:04 <int-e> `rm 2845173683343851520
19:24:08 <HackEgo> No output.
19:24:13 <Lymia> !sh busybox uname --kernel-version
19:24:14 <EgoBot> ​#1 SMP Debian 3.2.68-1+deb7u3
19:24:22 <Lymia> Strange.
19:24:36 <Lymia> !sh busybox ps ax | grep apache
19:24:37 <EgoBot> 2746 1000 /usr/sbin/apache2 -k start \ 2763 1000 /usr/sbin/apache2 -k start \ 3089 1000 /usr/sbin/apache2 -k start \ 3096 1000 /usr/sbin/apache2 -k start \ 3097 1000 /usr/sbin/apache2 -k start \ 3497 1000 /usr/sbin/apache2 -k start \ 8357 1000 /usr/sbin/apache2 -k start \ 13355 0 /usr/sbin/apache2 -k start \ 15913 1000 /usr/sbin/apache2 -k start \ 18503 1000
19:24:49 <Lymia> Is this Usermode Linux?
19:24:56 <Lymia> But if it is, why are there all these priviledged processes here
19:24:59 <int-e> `uname -a
19:25:00 <HackEgo> Linux umlbox 3.13.0-umlbox #1 Wed Jan 29 12:56:45 UTC 2014 x86_64 GNU/Linux
19:25:01 <Lymia> !sh busybox ps axu | grep apache
19:25:01 <EgoBot> 2746 1000 /usr/sbin/apache2 -k start \ 2763 1000 /usr/sbin/apache2 -k start \ 3089 1000 /usr/sbin/apache2 -k start \ 3096 1000 /usr/sbin/apache2 -k start \ 3097 1000 /usr/sbin/apache2 -k start \ 3497 1000 /usr/sbin/apache2 -k start \ 8357 1000 /usr/sbin/apache2 -k start \ 13355 0 /usr/sbin/apache2 -k start \ 15913 1000 /usr/sbin/apache2 -k start \ 18503 1000
19:25:13 <int-e> it might be
19:25:47 <int-e> `uname --kernel-release
19:25:48 <HackEgo> 3.13.0-umlbox
19:26:22 <int-e> `uname --kernel-version
19:26:23 <HackEgo> ​#1 Wed Jan 29 12:56:45 UTC 2014
19:26:44 <Lymia> !sh echo -e "\n\1"
19:26:44 <EgoBot> ​\ \1
19:26:51 <Lymia> !sh echo -e '\n\1'
19:26:51 <EgoBot> ​\ \1
19:27:09 <Lymia> !sh echo -e '\n\01'
19:27:09 <EgoBot> ​\ .
19:27:21 <Lymia> !help
19:27:21 <zemhill> Lymia: I do !zjoust; see http://zem.fi/bfjoust/ for more information.
19:27:21 <EgoBot> ​help: General commands: !help, !info, !bf_txtgen. See also !help languages, !help userinterps. You can get help on some commands by typing !help <command>.
19:27:42 <Lymia> !help ne
19:27:42 <EgoBot> ​Sorry, I have no help for ne!
19:27:56 <Lymia> !help <CTCP>
19:27:56 <EgoBot> ​Sorry, I have no help for _!
19:31:26 -!- Reece` has quit (Read error: Connection reset by peer).
19:32:34 <b_jonas> !sh top b
19:32:35 <EgoBot> top - 19:32:35 up 83 days, 12:46, 0 users, load average: 14.34, 14.16, 14.09 \ Tasks: 241 total, 16 running, 225 sleeping, 0 stopped, 0 zombie \ Cpu(s): 0.6%us, 0.2%sy, 1.0%ni, 95.6%id, 2.6%wa, 0.0%hi, 0.0%si, 0.0%st \ Mem: 3855536k total, 3533808k used, 321728k free, 576588k buffers \ Swap: 0k total, 0k used, 0k free, 2309552k cached \ \ PID USER PR NI VIRT RES
19:33:05 <b_jonas> soo, 95.6% idle, so it's probably not stuck on CPU
19:33:15 <b_jonas> I think it's waiting for an external bfjoust server
19:33:52 <b_jonas> which is why other commands work, only bfjoust doesn't work
19:35:31 <Lymia> !say a
19:38:19 <Lymia> !help "a b c"
19:38:19 <EgoBot> ​Sorry, I have no help for _a_b_c_!
19:38:24 <Lymia> !help a b c
19:38:25 <EgoBot> ​Sorry, I have no help for a_b_c!
19:39:06 <Lymia> !.empty
19:39:13 <Lymia> !sh ls /home/egobot
19:39:14 <EgoBot> egobot.hg
19:39:17 <Lymia> !sh ls /home/egobot/egobot.hg
19:39:18 <EgoBot> multibot_cmds
19:39:22 <Lymia> !sh ls /home/egobot/egobot.hg/multibot_cmds
19:39:22 <EgoBot> interps \ lib \ slox
19:39:29 <Lymia> !sh ls -alh /home/egobot/egobot.hg/multibot_cmds
19:39:30 <EgoBot> ​/bin/ls: /home/egobot/egobot.hg/multibot_cmds: Function not implemented \ /bin/ls: /home/egobot/egobot.hg/multibot_cmds/interps: Function not implemented \ /bin/ls: /home/egobot/egobot.hg/multibot_cmds/lib: Function not implemented \ /bin/ls: /home/egobot/egobot.hg/multibot_cmds/slox: Function not implemented \ total 8.0K \ drwxr-xr-x 39 5000 5000 4.0K Feb 20 2011 interps \ drwxr-xr-x 2 5000 5000 4.0K May 31 2012
19:39:34 <Lymia> !sh busbox ls -alh /home/egobot/egobot.hg/multibot_cmds
19:39:35 <EgoBot> ​/tmp/input.1761: line 1: busbox: command not found
19:39:39 <Lymia> !sh busybox ls -alh /home/egobot/egobot.hg/multibot_cmds
19:39:40 <EgoBot> drwxr-xr-x 39 5000 5000 4.0K Feb 20 2011 interps \ drwxr-xr-x 2 5000 5000 4.0K May 31 2012 lib \ drwxrwxrwx 0 0 0 0 Jan 1 1970 slox
19:40:38 <Lymia> !help () { :;}; echo vulnerable
19:40:38 <EgoBot> ​Sorry, I have no help for __________echo_vulnerable!
19:40:46 <Lymia> !sh bash --version
19:40:46 <EgoBot> GNU bash, version 4.0.28(1)-release (x86_64-pc-linux-gnu) \ Copyright (C) 2009 Free Software Foundation, Inc. \ License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> \ \ This is free software; you are free to change and redistribute it. \ There is NO WARRANTY, to the extent permitted by law.
19:41:55 -!- XorSwap has joined.
19:42:13 <Lymia> !sh env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
19:42:14 <EgoBot> vulnerable \ this is a test
19:43:55 <Lymia> When was this system last updated
19:44:47 <b_jonas> Lymia: it's possible that only the bash _inside_ the sandbox has that bug
19:45:32 <Lymia> !sh busybox ps axu | grep bash
19:45:33 <EgoBot> 941 5000 /bin/bash PRIVMSG/tr_21.cmd PRIVMSG #esoteric !bfjoust comex_the_first_program_ever (>)*9[-]+[>[-]+] \ 967 5000 /bin/bash scmds/bfjoust bfjoust comex_the_first_program_ever (>)*9[-]+[>[-]+] PRIVMSG #esoteric !bfjoust comex_the_first_program_ever (>)*9[-]+[>[-]+] \ 990 5000 /bin/bash scmds/bfjoust bfjoust comex_the_first_program_ever (>)*9[-]+[>[-]+] PRIVMSG #esoteric !bfjoust
19:45:45 <Lymia> !sh busybox ls /proc/941
19:45:46 <EgoBot> attr \ autogroup \ auxv \ cgroup \ clear_refs \ cmdline \ comm \ coredump_filter \ cpuset \ cwd \ environ \ exe \ fd \ fdinfo \ io \ limits \ loginuid \ maps \ mem \ mountinfo \ mounts \ mountstats \ net \ ns \ numa_maps \ oom_adj \ oom_score \ oom_score_adj \ pagemap \ personality \ root \ sched \ sessionid \ smaps \ stack \ stat \ statm \ status \ syscall \ task \ wchan
19:45:52 <Lymia> !sh busybox ls -alh /proc/941/exe
19:45:53 <EgoBot> lrwxrwxrwx 1 5000 0 0 Mar 7 18:57 /proc/941/exe -> /bin/bash
19:46:00 <Lymia> !sh busybox strings /proc/941/exe | grep "Bash version"
19:46:01 <EgoBot> ​@(#)Bash version 4.0.28(1) release GNU
19:46:04 <Lymia> nope
19:46:11 <Lymia> Everything uses that version.
19:46:27 <myname> versio
19:46:49 <b_jonas> !ztest suicide256 [-.]
19:46:49 <zemhill> b_jonas.suicide256: points -27.05, score 3.86, rank 47/47
19:47:09 <b_jonas> !ztest suicide128 (-)*128(.)*-1
19:47:09 <zemhill> b_jonas.suicide128: points -37.71, score 1.83, rank 47/47
19:47:17 <b_jonas> !ztest suicide1 <
19:47:17 <zemhill> b_jonas.suicide1: points -46.00, score 0.00, rank 47/47
19:48:05 <b_jonas> !ztest suicide128 (-)*128(.-)*-1
19:48:05 <zemhill> b_jonas.suicide128: points -32.74, score 2.01, rank 47/47
19:48:15 <b_jonas> !ztest suicide128 (-)*128[.-]
19:48:16 <zemhill> b_jonas.suicide128: points -34.76, score 2.08, rank 47/47
19:48:20 <b_jonas> !ztest suicide128 (-)*120[.-]
19:48:21 <zemhill> b_jonas.suicide128: points -33.83, score 2.24, rank 47/47
19:48:27 <Lymia> !sh busybox cat /proc/941/personality
19:48:27 <EgoBot> cat: read error: Operation not permitted
19:48:31 <Lymia> personality?
19:49:02 <Lymia> Weird
19:49:21 <Lymia> Oh, /exe is a symlink. hrm.
19:49:52 -!- l0de has left.
19:49:54 <b_jonas> Lymia: you decided to remove load competely, rather than allowing it for strings?
19:50:01 <b_jonas> in luajoust that is
19:50:19 <Lymia> For now.
19:50:25 <Lymia> Some hard to solve problems.
19:50:43 -!- hppavilion[wc] has joined.
19:50:47 <b_jonas> Lymia: does "for now" mean you're prepared to re-run the hill if you add it later?
19:50:57 <Lymia> ?
19:51:02 <Lymia> It's not near ready for a hill yet.
19:51:04 <b_jonas> sure
19:51:11 <b_jonas> of course
19:51:36 <Lymia> And unless I can fix the determinism issues
19:51:38 <Lymia> It might never be
19:51:47 -!- hppavilion[wc] has quit (Client Quit).
19:52:10 <b_jonas> right
19:52:18 <b_jonas> I still suggest that you try asking #lua
19:52:35 <b_jonas> maybe someone has already tried to make a deterministic variant of lua
19:53:42 -!- hppavilion[wc] has joined.
19:54:21 <Lymia> !sh -f=/tmp
19:54:22 <EgoBot> ​/tmp/input.15005: line 1: -f=/tmp: No such file or directory
19:57:06 <hppavilion[wc]> Taneb: I still want to make a BFOS. Perhaps you could help and we could include your banner maker as a feature?
19:57:17 <Lymia> !help () { :;}; killall -9 report
19:57:17 <EgoBot> ​Sorry, I have no help for __________killall__9_report!
19:57:19 <hppavilion[wc]> @messages-lud
19:57:19 <lambdabot> Sgeo said 2m 16d 13h 29m 18s ago: http://www.h-schmidt.net/FloatConverter/IEEE754.html
19:57:29 <Lymia> !sh busybox ps ax | grep report
19:57:29 <EgoBot> 995 5000 ../report ../gearlance ../cache Deewiant_allegro.bfjoust Deewiant_pendolino.bfjoust Fiora_timestopping-mahou-shoujo.bfjoust Gregor_furry_furry_strapon_pegging_girls.bfjoust Lymia_aurora.bfjoust Lymia_flow.bfjoust Lymia_nyuroki.bfjoust Lymia_two_people_runn \ 12430 5000 ../report ../gearlance ../cache Deewiant_allegro.bfjoust Deewiant_pendolino.bfjoust Fiora_timestopping-mahou-shoujo.bfjoust
19:57:42 <Taneb> hppavilion[wc], I'm not sure that a banner maker is the most important part of an OS
19:57:54 <hppavilion[wc]> Taneb: Yeah, but it
19:58:10 <hppavilion[wc]> 'd be a cool feature
19:58:13 <Lymia> !bf8 .
19:58:13 <EgoBot> No output.
19:58:24 <hppavilion[wc]> (I'm using a netbook with a shit keyboard)
19:58:30 <Lymia> !sh env
19:58:30 <EgoBot> PLASH_FAKE_GID=0 \ XDG_SESSION_ID=1233 \ I_CMD=sh \ ARG_FILE=/tmp/input.18746 \ SHELL=/bin/bash \ TERM=xterm \ IRC_SOCK=/tmp/multibot.EgoBot \ XDG_SESSION_COOKIE=3c3b7af247c6eb1bba05718349f88198-1450975846.369246-2144293266 \ SSH_CLIENT=99.236.22.36 42058 22 \ IRC_NICK=Lymia \ PLASH_CAPS=conn_maker;fs_op \ SSH_TTY=/dev/pts/0 \ PLASH_FAKE_EUID=5000 \ USER=root \ LD_LIBRARY_PATH=/usr/lib/plash/lib \ PLASH_FAKE_EGID=0
19:59:06 <Lymia> !sh busybox env
19:59:07 <EgoBot> PLASH_FAKE_GID=0 \ XDG_SESSION_ID=1233 \ I_CMD=sh \ ARG_FILE=/tmp/input.19296 \ SHELL=/bin/bash \ TERM=xterm \ IRC_SOCK=/tmp/multibot.EgoBot \ XDG_SESSION_COOKIE=3c3b7af247c6eb1bba05718349f88198-1450975846.369246-2144293266 \ SSH_CLIENT=99.236.22.36 42058 22 \ IRC_NICK=Lymia \ PLASH_CAPS=conn_maker;fs_op \ SSH_TTY=/dev/pts/0 \ PLASH_FAKE_EUID=5000 \ USER=root \ LD_LIBRARY_PATH=/usr/lib/plash/lib \ PLASH_FAKE_EGID=0
19:59:09 <Lymia> !sh busybox id
19:59:10 <EgoBot> uid=1916107 gid=1916107
19:59:39 <Lymia> !sh busybox env | grep I_
19:59:39 <EgoBot> I_CMD=sh \ I_ARG=busybox env | grep I_
19:59:55 <Lymia> !sh () { :;}; killall -9 report
19:59:55 <EgoBot> ​/bin/bash: /usr/bin/killall: Function not implemented
20:00:11 <Lymia> !sh () { :;}; env; killall -9 report
20:00:12 <EgoBot> ​/bin/bash: /usr/bin/env: Function not implemented
20:00:19 <Lymia> !help () { :;}; killall -9 report
20:00:19 <EgoBot> ​Sorry, I have no help for __________killall__9_report!
20:00:25 <Lymia> Er
20:00:26 <hppavilion[wc]> Taneb: As long as you
20:00:28 <hppavilion[wc]> GAAAAH
20:00:35 <Lymia> !sh busybox ps ax | grep report
20:00:36 <EgoBot> 995 5000 ../report ../gearlance ../cache Deewiant_allegro.bfjoust Deewiant_pendolino.bfjoust Fiora_timestopping-mahou-shoujo.bfjoust Gregor_furry_furry_strapon_pegging_girls.bfjoust Lymia_aurora.bfjoust Lymia_flow.bfjoust Lymia_nyuroki.bfjoust Lymia_two_people_runn \ 12430 5000 ../report ../gearlance ../cache Deewiant_allegro.bfjoust Deewiant_pendolino.bfjoust Fiora_timestopping-mahou-shoujo.bfjoust
20:00:43 <Lymia> !help () { :;}; echo test
20:00:44 <EgoBot> ​Sorry, I have no help for __________echo_test!
20:00:51 <Lymia> !sh () { :;}; echo test
20:00:51 <EgoBot> test \ /tmp/input.21095: line 1: syntax error near unexpected token `)' \ /tmp/input.21095: line 1: `() { :;}; echo test'
20:00:54 <hppavilion[wc]> 're a God of Brainfuck, do you know of a floating point implementation for BF?
20:01:12 <Lymia> !sh () { :;}; echo $PID
20:01:13 <EgoBot> ​\ /tmp/input.21441: line 1: syntax error near unexpected token `)' \ /tmp/input.21441: line 1: `() { :;}; echo $PID'
20:01:20 <Lymia> !sh () { :;}; echo $PLASH_FAKE_GID
20:01:20 <EgoBot> ​\ /tmp/input.21595: line 1: syntax error near unexpected token `)' \ /tmp/input.21595: line 1: `() { :;}; echo $PLASH_FAKE_GID'
20:01:27 <Lymia> !sh () { :;}; echo $IRC_NICK
20:01:27 <EgoBot> ​\ /tmp/input.21732: line 1: syntax error near unexpected token `)' \ /tmp/input.21732: line 1: `() { :;}; echo $IRC_NICK'
20:01:45 <Lymia> !sh () { :;}; busybox id
20:01:46 <EgoBot> ​/bin/bash: /bin/busybox: Function not implemented
20:01:55 <Lymia> !sh () { :;}; echo `busybox id`
20:01:56 <EgoBot> ​/bin/bash: fork: Function not implemented \ \ /tmp/input.22220: line 1: syntax error near unexpected token `)' \ /tmp/input.22220: line 1: `() { :;}; echo `busybox id`'
20:01:59 <Lymia> !sh () { :;}; echo `busybox id`;
20:01:59 <EgoBot> ​/bin/bash: fork: Function not implemented \ \ /tmp/input.22320: line 1: syntax error near unexpected token `)' \ /tmp/input.22320: line 1: `() { :;}; echo `busybox id`;'
20:02:26 <Lymia> !sh () { :;}; export ARG_FILE=""
20:02:27 <EgoBot> ​/tmp/input.22828: line 1: syntax error near unexpected token `)' \ /tmp/input.22828: line 1: `() { :;}; export ARG_FILE=""'
20:02:37 <Riviera> waaah
20:02:53 <Riviera> any particular reason you don't do that via /msg?
20:03:24 <Lymia> !sh () { :;}; export LD_DEBUG="all"
20:03:24 <EgoBot> ​/tmp/input.23674: line 1: syntax error near unexpected token `)' \ /tmp/input.23674: line 1: `() { :;}; export LD_DEBUG="all"'
20:03:27 <Lymia> Not particularly
20:03:56 <hppavilion[wc]> Lymia: Then start doing it via /msg
20:04:08 <Lymia> You sure like complaining
20:04:35 <hppavilion[wc]> Lymia: I do
20:04:40 <Lymia> !sh env | sed s/=.*//g
20:04:41 <EgoBot> PLASH_FAKE_GID \ XDG_SESSION_ID \ I_CMD \ ARG_FILE \ SHELL \ TERM \ IRC_SOCK \ XDG_SESSION_COOKIE \ SSH_CLIENT \ IRC_NICK \ PLASH_CAPS \ SSH_TTY \ PLASH_FAKE_EUID \ USER \ LD_LIBRARY_PATH \ PLASH_FAKE_EGID \ SOCAT_PID \ MAIL \ PATH \ _ \ PWD \ EDITOR \ PLASH_COMM_FD \ IRC_HOST \ IRC_IDENT \ PLASH_FAKE_UID \ SOCAT_VERSION \ I_ARG \ JAVA_ARGS \ SHLVL \ HOME \ LOGNAME \ SSH_CONNECTION \ XDG_RUNTIME_DIR \ SOCAT_PPID
20:04:50 <b_jonas> (In fact, I might ask them myself.)
20:04:51 <myname> he also deletes teue wisdoms
20:05:11 <Lymia> !sh echo $LD_LIBRARY_PATH
20:05:12 <EgoBot> ​/usr/lib/plash/lib
20:05:22 <Lymia> !sh LD_LIBRARY_PATH="" ps ax
20:05:22 <EgoBot> Cannot find /proc/version - is /proc mounted?
20:05:41 <Lymia> !sh LD_LIBRARY_PATH="" busybox ps ax
20:05:42 <EgoBot> PID USER COMMAND \ ps: can't open '/proc': No such file or directory
20:06:53 <b_jonas> Lymia: I think you could permit later extensions of the luajoust built-in library while keeping determinism. You would have a table for this where you store exceptions, and rig the table with its metatable such that if the program tries to access a nonexistant entry, it blows up (with an uncatchable exception, same as you have to treat out of memory errors), and that the metatable can't be changed.
20:07:15 <b_jonas> Lymia: you could also make a few entries (like load) in the global environment like that.
20:07:27 <b_jonas> You'd have to permit accessing those elements if they're assigned first, for ease of use.
20:07:50 <b_jonas> But actually lua does that already.
20:08:01 <zzo38> I believe that the X window system is very well designed, although some of the modern extensions seem to be worthless and/or should be optional. Also in some cases, protocol extensions probably are not needed anyways, to do something
20:08:11 <b_jonas> Also, you'd have to make the table unnextable with its metatable.
20:08:39 <hppavilion[wc]> For the BFOS, I'm adding {} for conditionals and * for pointers
20:09:10 <Lymia> !sh env x='(){:;}; echo vulnerable' bash -c "echo this is a test"
20:09:11 <EgoBot> this is a test
20:09:13 <b_jonas> hmm wait
20:09:21 <b_jonas> do we have a lua 5.3 here to test?
20:09:24 <Lymia> !"sh" echo 3
20:09:27 <b_jonas> if not I'll compile one locally
20:09:34 <b_jonas> `lua --version
20:09:36 <HackEgo> lua: unrecognized option '--version' \ usage: lua [options] [script [args]] \ Available options are: \ -e stat execute string 'stat' \ -i enter interactive mode after executing 'script' \ -l name require library 'name' \ -v show version information \ -E ignore environment variables \ -- stop handling options \
20:09:42 <b_jonas> `lua -v
20:09:42 <HackEgo> Lua 5.2.1 Copyright (C) 1994-2012 Lua.org, PUC-Rio
20:09:48 <b_jonas> local then
20:10:16 <Lymia> !sh a b c
20:10:17 <EgoBot> ​/tmp/input.29799: line 1: a: command not found
20:10:21 <Lymia> !echo a b c
20:10:22 <EgoBot> a b c
20:10:27 <Lymia> !help a b c
20:10:28 <EgoBot> ​Sorry, I have no help for a_b_c!
20:12:58 <Lymia> !sh echo $ARG
20:12:58 <EgoBot> No output.
20:13:57 <Lymia> !addinterp test bf () { :;}; echo vulnerable
20:13:57 <EgoBot> ​There is already an interpreter for test!
20:14:03 <Lymia> !addinterp test_ss bf () { :;}; echo vulnerable
20:14:03 <EgoBot> ​Interpreter test_ss installed.
20:14:09 <Lymia> !test_ss
20:14:09 <EgoBot> vulnerable
20:14:27 <Lymia> !addinterp test_ss bf () { :;}; id
20:14:27 <EgoBot> ​There is already an interpreter for test_ss!
20:14:29 <Lymia> !addinterp test_ss2 bf () { :;}; id
20:14:30 <EgoBot> ​Interpreter test_ss2 installed.
20:14:31 <Lymia> !test_ss2
20:14:32 <EgoBot> uid=5000(egobot) gid=0(root) groups=0(root),150
20:14:48 <Lymia> !addinterp test_ss3 bf () { :;}; $*
20:14:48 <EgoBot> ​Interpreter test_ss3 installed.
20:14:50 <Lymia> !test_ss3 id
20:14:51 <EgoBot> No output.
20:15:41 <b_jonas> Lymia: further nastiness. string.format("%e", 1) calls the libc's sprintf or snprintf function, so on windows it will use one different formats (three digits for exponent instead of two, and some completely nonstandard output for infinity and nan)
20:15:49 <Lymia> ick
20:15:54 <Lymia> That
20:15:59 <Lymia> Might be problematic.
20:16:03 <Lymia> ("").format
20:16:17 <Lymia> But you could do string.format = nil in the global context if you really need to.
20:16:18 <Lymia> Hrm.
20:16:26 <Lymia> This requires thought
20:16:56 <b_jonas> Lymia: also, I think on some platforms (at least windows) you can extract the sign and mantissa of a nan that way (I think the C standard actually allows that, it's only the particular format windows uses that's wrong)
20:17:10 <b_jonas> Lymia: let me see if the default implicit number to string conversion also does this
20:17:21 <b_jonas> as in, 1..(1.0e100/3)
20:17:23 <Lymia> Is it just %e?
20:18:27 <b_jonas> Lymia: no, also %g and %E and %G
20:18:38 <b_jonas> and I think %f is affected too because of nan
20:18:46 <b_jonas> and I don't know if %a is affected or not
20:18:50 <b_jonas> (and %A)
20:19:22 <b_jonas> I'll look up how the number to string conversion works
20:24:47 * Lymia pokes int-e
20:26:34 <int-e> what I do?
20:27:12 <int-e> I mean I'm doing important things right now... like watching the lastest John Oliver youtube video.
20:30:29 <lynn> My entire backlog: Lymia messing with bots
20:30:36 <Lymia> :P
20:31:28 -!- lambda-11235 has quit (Quit: Bye).
20:33:25 <b_jonas> Lymia: it seems you can reveal the sign of nans by an implicit string conversion even on linux
20:35:20 <EgoBot> ​Score for prooftechnique_fishbones: 0.0
20:35:20 <EgoBot> ​Score for ais523_comex_the_first_program_ever: 13.0
20:35:20 <EgoBot> ​Score for prooftechnique_test: 0.2
20:35:20 <EgoBot> ​Score for b_jonas_pause5: 5.2
20:35:20 <EgoBot> ​Score for ais523_attack1: 12.0
20:35:20 <EgoBot> ​Score for b_jonas_dead: 0.0
20:35:20 <EgoBot> ​Score for b_jonas_pause2: 5.2
20:35:21 <EgoBot> ​Score for ais523_is_this_working_yet: 19.8
20:35:21 <EgoBot> ​Score for Lymia_two_people_running_from_a_shark: 1.6
20:35:22 <EgoBot> ​Score for Lymia_live: 0.0
20:35:22 <EgoBot> ​Score for b_jonas_pause3: 5.2
20:35:23 <EgoBot> ​Score for b_jonas_pause: 1.3
20:35:32 <Lymia> I fixed it.
20:35:49 <lynn> two_people_running_from_a_shark :DD
20:36:00 <b_jonas> Lymia: and it seems that ordinary number to string conversion also calls the system libc's sprintf
20:36:14 <b_jonas> Lymia: so you're screwed
20:36:33 <b_jonas> Lymia: basically, you'd have to change a LOT in lua
20:36:47 <Lymia> I am working on a Scala implementation of Lua
20:36:49 <Lymia> It's not far along, but.
20:36:51 <Lymia> It's a thing.
20:37:02 <Lymia> I could add a deterministic mode
20:37:07 <b_jonas> Lymia: should I put notes about these on the esowiki page, or do you want to write them up instead?
20:37:11 <Lymia> You can go ahead.
20:37:15 <b_jonas> scala? why scalar?
20:37:17 <b_jonas> um
20:37:20 <b_jonas> s/ar/a/
20:37:30 <Lymia> Because it's the language I'm most proficient at.
20:37:56 <b_jonas> ok
20:38:03 <Lymia> I'm not particularly interested in writing a Lua interpter in a language I'm not good at.
20:38:04 <b_jonas> I don't really know anything about Scala
20:38:07 <b_jonas> `? scala
20:38:09 <HackEgo> scala? ¯\(°​_o)/¯
20:38:18 <Lymia> It's a JVM language with functional programming features.
20:38:37 <Lymia> Has a few nasty warts, but, there's not much better in the JVM. At least, anything statically typed.
20:38:39 -!- Phantom_Hoover has joined.
20:38:46 <b_jonas> I see
20:38:49 <lynn> have you heard about Frege?
20:39:34 <Lymia> !bfjoust suicide dance ((>><)*10(<<>)*10)*10<
20:39:36 <EgoBot> ​Score for Lymia_suicide: 4.4
20:39:37 <Phantom_Hoover> yes and i'm disappointed it's not pronounced 'frayzh'
20:39:43 <Lymia> !bfjoust suicide_dance ((>><)*10(<<>)*10)*10<
20:39:45 <EgoBot> ​Score for Lymia_suicide_dance: 4.4
20:40:15 <lynn> it's fray-guh, right?
20:40:22 <b_jonas> Lymia: anyway, fixing the string formatting in a customized lua would be possible, but for fixing the table stuff you'd probably need to write an entirely new implementation of tables (presumably one based on a balanced tree and a consistent comparison function)
20:40:38 <myname> Lymia: there is frege
20:40:40 <b_jonas> You'd need to modify the lua core for either.
20:41:15 <myname> lynn: no, it's not
20:41:36 <myname> frege is a german name and to be pronounced german
20:41:44 <Lymia> !bfjoust suicide_dance ((>><)*10>(<<>)*10<)*10<
20:41:46 <EgoBot> ​Score for Lymia_suicide_dance: 6.1
20:41:50 <Lymia> Dance! :D
20:41:58 <lynn> that is an English approximation of the German name
20:41:59 <int-e> Gottfried? I'm so bad with names
20:41:59 <Phantom_Hoover> myname, yes it is
20:42:13 <int-e> Gottlob. Close, but wrong.
20:42:19 <myname> yeah
20:42:25 <myname> i like frege
20:42:40 <myname> the point is, haskell is more convinient for me atm
20:43:37 <Phantom_Hoover> fray-guh is a pretty good approximation to [ˈfreːɡə]
20:44:07 <myname> oh well, maybe english just sucks for that
20:44:25 <lynn> All languages suck for that...
20:44:43 <myname> don't think sp
20:44:48 <lynn> Pronouncing foreign words "right", that is. Approximations are fine
20:45:10 <myname> inglish is just incredibly bad since its own pronouncoation rules are completely broken
20:45:23 <myname> englidh even
20:45:27 <int-e> yeah they can't even pronounce their own words correctly
20:45:29 <myname> well
20:45:46 <Phantom_Hoover> english orthography is a complete mess, yes
20:45:52 <myname> today's not my day
20:46:09 <Phantom_Hoover> but 'ay' for /e/ isn't bad at all
20:46:10 <int-e> @google "dearest creature in creation"
20:46:25 <Phantom_Hoover> how do you justify the dh in englidh?
20:46:25 <lambdabot> Plugin `search' failed with: <<timeout>>
20:46:32 <int-e> @google "dearest creature in creation"
20:46:32 <myname> i hears that on youtube once
20:46:38 * int-e shrugs
20:46:47 <lambdabot> Plugin `search' failed with: <<timeout>>
20:46:48 <myname> i was like "dafuq is this shit"
20:48:10 <myname> https://youtu.be/tfRSvTSY0d4
20:48:27 <int-e> e.g. https://www.cs.cmu.edu/~clamen/misc/humour/TheChaos.html
20:48:46 <int-e> I guess youtube works as well
20:48:59 <myname> i like lindybeige
20:49:02 <HackEgo> [wiki] [[Lua Joust]] https://esolangs.org/w/index.php?diff=46542&oldid=46541 * B jonas * (+1114) /* Unresolved Problems */
20:51:32 <Phantom_Hoover> looool i guess toRational in haskell gives you an injection from Real to Rational?
20:51:50 <int-e> :t toRational
20:51:51 <lambdabot> Real a => a -> Rational
20:52:01 <int-e> types don't lie
20:52:35 <int-e> (the numeric classes in Haskell are a bit of a mess from a practical perspective, and a huge mess from a theoretical one)
20:52:54 <Phantom_Hoover> saw a reddit thread a while back full of haskellers saying that types are all the documentation you ever need
20:53:09 <int-e> mmm
20:53:50 <int-e> types help. types are valuable abstractions restricting program's behavior. but no, they don't fully describe functions.
20:54:16 <int-e> @type inits
20:54:17 <lambdabot> [a] -> [[a]]
20:54:18 <myname> it wuild make djinn incredibly useful
20:54:19 <int-e> @type tails
20:54:20 <lambdabot> [a] -> [[a]]
20:54:30 <Phantom_Hoover> i mean who cares about the difference between fst and snd
20:54:39 <int-e> Phantom_Hoover: that's visible in the type.
20:54:51 <int-e> @type fst
20:54:52 <lambdabot> (a, b) -> a
20:54:54 <int-e> @type snd
20:54:55 <Phantom_Hoover> wait yeah im idiot
20:54:56 <lambdabot> (a, b) -> b
20:54:59 <Phantom_Hoover> i was thinking (a,a)
20:55:21 <Phantom_Hoover> who cares about the difference between K and KI!
20:55:36 <myname> (a,a) would have no advantage to [a], wouldn't it?
20:56:04 <Phantom_Hoover> well you'd know there are exactly 2 things in it...
20:56:38 -!- XorSwap has quit (Quit: Leaving).
20:57:05 <Phantom_Hoover> i suppose this is the same mindset that leads the categorically-inclined to write helpful textbooks that do things like define products purely with a universal property
20:57:10 -!- lynn_ has joined.
21:00:42 -!- lynn has quit (Ping timeout: 260 seconds).
21:07:52 -!- hppavilion[wc] has quit (Ping timeout: 252 seconds).
21:13:02 <lynn_> http://whatsmyuseragent.com/ this result was far sillier than I expected
21:13:11 <int-e> myname: with ghc at least, (x,y) uses less memory than [x,y], too.
21:13:15 <lynn_> today I learned about the User-Agent history I guess @_@
21:13:50 <int-e> have you tried that with the Windows 10 "Edge" browser?
21:14:26 <b_jonas> Lymia: I was wrong
21:14:37 <int-e> (I forgot the result, but it was a long, long list of browsers)
21:14:44 <lynn_> on Chrome, I get Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36.
21:14:45 <b_jonas> Lymia: nowhere do either of the two manuals say that the sign of nans in arithmetic is undefined
21:14:56 <lynn_> on Edge of course it is one longer, excellentttt
21:15:37 <b_jonas> Both the sign and mantissa are deterministic for a particular instruction, but sse instructions use a different (crazy) rule for them than the x87 instructions (which us a sane rule).
21:16:29 <HackEgo> [wiki] [[Lua Joust]] https://esolangs.org/w/index.php?diff=46543&oldid=46542 * B jonas * (-3)
21:17:15 <int-e> fast and loose
21:18:17 <int-e> b_jonas: does that include addition and multiplication too?
21:18:27 <myname> http://asset-a.soupcdn.com/asset/8754/6027_adb0.jpeg :D
21:18:38 <b_jonas> int-e: yes
21:18:49 <b_jonas> int-e: the result is that on sse, addition ISN'T COMMUTATIVE
21:18:56 <int-e> I thought IEEE 754 was rather strict on those (though I guess you can choose a rounding mode that fits your purposes)...
21:18:59 <int-e> ...ouch.
21:19:25 <b_jonas> int-e: no, the IEEE doesn't tell which particular nan value (mantissa and exponent) the result has when it's a nan value
21:19:31 <b_jonas> s/exponent/sign/
21:19:38 <b_jonas> int-e: it's rather strict on everything
21:20:06 <int-e> well... hmm... all nans are equal (even though they compare as different)
21:20:20 <int-e> so what about defined results?
21:20:46 <b_jonas> int-e: um, what's your question?
21:22:41 <b_jonas> int-e: the good news is that I think this might not come up on lua
21:22:48 <b_jonas> hmm
21:22:58 <b_jonas> oh wait
21:23:00 <b_jonas> it does come up
21:23:01 <int-e> b_jonas: does x + y equal y + x for all x and y such that x + y is defined?
21:23:13 <int-e> (i.e. not NaN)
21:23:44 <b_jonas> it comes up because you can generate both indeterminate and its negation, and then add them, and the result has a sign that depends on whether that addition is done on sse or x87, and in the case of sse, which order it's done in (the optimizer is permitted to commute it)
21:24:00 <b_jonas> int-e: oh, so by "defined" you mean it's not nan?
21:24:04 <int-e> yes
21:24:14 <b_jonas> int-e: yes, in that case addition and multiplication is commutative
21:24:23 <int-e> Okay. I don't care then.
21:24:31 <int-e> (Except as a curiosity)
21:27:43 <b_jonas> I care because it's annoying that they ruined the reproducibility of floating point arithmetic this way, when x87 had a perfectly good and documented way of choosing the particular nan result that was commutative and thus deterministic.
21:27:52 <b_jonas> I just don't understand why they did it.
21:28:05 <b_jonas> And since the sse version is also documented, it can't be fixed now.
21:29:07 <b_jonas> That is, it could be fixed by introducing a set of new floating point instructions, or perhaps a new flag in the control register, and then adding a compiler flag, and running your code on cpus that support it.
21:32:05 <b_jonas> I just don't understand why Intel did this.
21:33:17 <b_jonas> Oh!
21:33:48 <b_jonas> On the other hand, this could be used as the basis for an esoteric feature in a strongly typed programming language:
21:35:40 <b_jonas> make the language have two floating point types of each size, implicitly converting in both directions. The first one is such that the mantissa and sign of nan values can be arbitrary, and the second one is where it's deterministic.
21:36:42 <b_jonas> When you convert from the first type to the second, if it's nan, it's converted to a deterministic one (this can be done relatively quickly, between 2 and 7 instructions depending on what exactly you want),
21:38:39 <b_jonas> the signbit function takes the second type as input, other arithmetic builtins take either type and propagate the types in a sane way. Stringification functions makes sure not to reveal details about nan.
21:39:41 <b_jonas> You're permitted to explicitly reinterpret from the first type to the second, unless certain sandbox flags are set, but if you don't do that, then floating point arithmetic will be deterministic.
21:40:11 <b_jonas> (Floating point transcendent functions are a different question. Those are not guaranteed to be deterministic, but in practice they might be on sane systems.)
21:40:23 <izabera> `unidecode v̲e̲r̲y̲
21:40:26 <HackEgo> ​[U+0076 LATIN SMALL LETTER V] [U+0332 COMBINING LOW LINE] [U+0065 LATIN SMALL LETTER E] [U+0332 COMBINING LOW LINE] [U+0072 LATIN SMALL LETTER R] [U+0332 COMBINING LOW LINE] [U+0079 LATIN SMALL LETTER Y] [U+0332 COMBINING LOW LINE]
21:41:20 <b_jonas> Presumably there'd also be unsafe stringification functions.
21:43:12 <b_jonas> Also, the floating point functions that let you examine representation (take representation as integer, make from representation integer, bitwise ops) would also operate on the correct types.
21:43:48 <b_jonas> In fact, if I wanted to make a deterministic interpreter, I could implement this in C++ to help writing the interpreter in an eso way.
21:44:49 <b_jonas> Although in that case, unless you're writing a really optimizing interpreter, presumably all the float values the interpreted program works with will be represented as the first type floats, and fixed only before those few functions that need it.
21:50:29 -!- lynn has joined.
21:53:01 -!- lynn_ has quit (Ping timeout: 268 seconds).
21:55:40 -!- hppavilion[wc] has joined.
21:59:40 <Lymia> JVM would be nice for that
21:59:43 <Lymia> I can use strictfp.
21:59:59 <Lymia> And let the JVM take care of making sure floating point is deterministic for me.
22:00:55 <b_jonas> Lymia: only if the stuff is statically typed.
22:01:33 <b_jonas> if it's weakly typed, then it's better to just normalize the float before you do any operation where the nan representation matters, rather than to keep track of which floats are already normalized
22:02:44 <Lymia> That's what strictfp does.
22:03:03 <Lymia> I can write the code normally and let the JVM make all floating point operations do the right thing on all platforms.
22:05:46 -!- hppavilion[wc] has quit (Quit: Page closed).
22:08:15 -!- jaboja has quit (Ping timeout: 264 seconds).
22:10:37 -!- AnotherTest has quit (Quit: ZNC - http://znc.in).
22:31:32 -!- nycs has quit (Quit: This computer has gone to sleep).
22:39:09 -!- spiette has quit (Ping timeout: 250 seconds).
22:42:14 -!- augur has joined.
22:43:06 -!- augur has quit (Read error: Connection reset by peer).
22:43:17 -!- augur has joined.
22:43:20 -!- augur has quit (Remote host closed the connection).
22:44:33 -!- augur has joined.
22:49:12 -!- augur has quit (Ping timeout: 260 seconds).
22:50:25 -!- augur has joined.
22:55:05 -!- lleu has quit (Quit: That's what she said).
22:55:57 -!- augur has quit (Read error: Connection reset by peer).
22:59:09 -!- boily has joined.
23:14:27 <boily> `wisdom
23:14:33 <HackEgo> java/java is a programming-language shaped collection of misfeatures
23:16:02 -!- oerjan has joined.
23:17:56 -!- augur has joined.
23:25:14 <Lymia> How cruel
23:26:16 <boily> Hellymia. I'd say Java is a nice core, wrapped in endless layers of Enterprise Abstraction.
23:26:42 <boily> and then it's AbstractTurtleFactories all the way down.
23:28:42 -!- XorSwap has joined.
23:31:38 <Lymia> Java the language and the JVM are... acceptable.
23:31:47 <Lymia> The ecosystem is a big nope.
23:32:34 <boily> yup.
23:32:41 <boily> `? php
23:32:43 <HackEgo> php is the PigeonHole Principle
23:32:45 <boily> `? python
23:32:48 <HackEgo> python? ¯\(°​_o)/¯
23:32:49 <boily> `? ruby
23:32:50 <HackEgo> Ruby is a programming language from Japan, that Eventually decided to support non-ascii characters.
23:32:54 <shachaf> `culprits wisdom/java
23:33:00 <HackEgo> coppro
23:33:27 <Lymia> For example.
23:33:29 <Lymia> Scala is nice.
23:33:31 <boily> `? scala
23:33:32 <HackEgo> scala? ¯\(°​_o)/¯
23:33:34 <Lymia> Until you pull in a Java library.
23:33:43 <Lymia> And then have to go "wtf is this???"
23:33:48 <boily> Scala's syntax turns me off...
23:34:04 <Lymia> Is the syntax that weird?
23:34:10 <Lymia> It's still roughly C family
23:35:46 <boily> the syntax is weird.
23:36:08 <Lymia> It doesn't bother me anymore, at least.
23:36:19 <Lymia> But nor does any language I use.
23:37:25 <Lymia> The syntax is quite nice to me, but, perhaps I'm conflating its semantics with the actual syntax.
23:37:45 <Lymia> (Expression focused, most blocks return a reasonable value)
23:37:46 <myname> Lymia: needs more frege, still
23:43:49 <zzo38> You could possibly to make C compiling also target JVM?
23:44:55 -!- XorSwap has quit (Ping timeout: 252 seconds).
23:45:35 <myname> also, clojure is an option, too
23:45:54 <myname> from all the functional languages i know for jvm, i like scala the least
23:46:07 -!- boily has quit (Quit: DRYING CHICKEN).
23:51:42 * int-e cries.
23:51:50 <oerjan> int-e: hm?
23:51:57 <int-e> This article was so good, until... "Meanwhile, a third tool, called Monte Carlo tree search, helps the system play strategically as well as tactically."
23:52:08 <int-e> (source: http://www.theguardian.com/technology/2016/mar/07/go-board-game-google-alphago-lee-se-dol )
23:52:41 <oerjan> int-e: btw girl genius: here goes nothing D:
23:53:17 <shachaf> what's going on with olist twh
23:53:30 <oerjan> shachaf: there was an olist earlier today?
23:53:33 <oerjan> *.
23:53:34 <shachaf> yes
23:53:35 <int-e> (well, at least to my limited understanding, the tree search is really about the tactics, though it's a bit blurry because some tactics will be ingrained as patterns in the policy network as well.)
23:53:39 <shachaf> it's updating once a week now?
23:54:18 <fizzie> Someone participated in our university's "Introduction to AI" course's JVM-sandbox-based boardgame AI tournament thing with a non-Java JVM language, I think it might've been Scala.
23:54:47 <fizzie> All the other solutions were generally <100 kB, but theirs was something like 7 MB.
23:55:01 <fizzie> Because of all the libraries they had to include in the .jar to make it go.
23:55:38 <int-e> so did anybody compare the source code size?
23:56:28 <fizzie> That wasn't one of the metrics.
23:56:38 <int-e> oerjan: oh... big jump forward on that story arc
23:56:55 <fizzie> Yeah, Scala it was.
23:57:48 <fizzie> scala.util.parsing.* and scala.xml.* are particularly big chunks in here.
23:58:08 <fizzie> Also their .jar doesn't include the sources.
23:58:13 <oerjan> int-e: well they _were_ pressed for time, they're under attack after all.
23:58:36 <fizzie> The standard Ant build file we shipped did include .java files in the deliverable it made, but I guess they had to use their own.
23:59:09 <int-e> oerjan: but even with the castle's help, extending their tunnels to the right location must've taken a while
23:59:30 <int-e> oerjan: does Gil know about the poison?
23:59:35 <oerjan> int-e: oh. i thought you meant today. yes, it said it took months.
23:59:59 <oerjan> int-e: i don't know how he would. he _should_ be able to notice he's been stabbed...
2016-03-08
00:00:15 <int-e> (for all I know the injections are just to prevent the rapid aging)
00:00:37 <oerjan> and with the family involved, poison should be an obvious deduction.
00:00:48 <oerjan> int-e: yeah they resemble the ones vole had.
00:01:25 <int-e> damn, in real time, when was tarvek stabbed, could be two years ago by now...
00:03:30 <int-e> almost three. http://www.girlgeniusonline.com/comic.php?date=20130429
00:05:01 <oerjan> wait, you meant _our_ real time?
00:05:21 <oerjan> i was just looking up references for comic time
00:06:07 <oerjan> int-e: two and a half has been mentioned in http://www.girlgeniusonline.com/comic.php?date=20130617 and http://www.girlgeniusonline.com/comic.php?date=20151125
00:07:22 <oerjan> which incidentally makes it hard to reconcile with the months used for digging the tunnels, unless they started _before_ agatha got loose ... there's some plot hole here.
00:07:45 <oerjan> (the tunnels to the cathedral, that is)
00:08:51 <oerjan> i don't know when gil would have been able to communicate with anyone who would be likely to have told him that tarvek was poisoned.
00:10:21 <oerjan> the fight with martellus, and the time in the monk fortress are iirc the only times he's been in contact with those who passed through the portal.
00:10:33 -!- lynn has quit (Ping timeout: 244 seconds).
00:11:05 -!- XorSwap has joined.
00:11:06 <oerjan> in the former, there obviously wasn't much conversation. in the latter, lucrezia took over.
00:11:30 <int-e> of course they started before agatha got loose
00:11:32 <int-e> Gil'
00:11:36 <int-e> s father is down there
00:11:47 <int-e> Good old Klaus.
00:12:40 <int-e> anyway, yeah, let's see how fast Gil reacts
00:13:24 <oerjan> not in the cathedral. they cannot get to the center http://www.girlgeniusonline.com/comic.php?date=20151202
00:13:32 <int-e> uh, and there's time travel
00:13:38 <int-e> some muse could've tipped Gil off ;)
00:13:52 <oerjan> (i just so happened to reread that yesterday)
00:13:59 <oerjan> or was it this morning.
00:14:18 <oerjan> well othilia is also trapped in mechanicsburg.
00:14:23 <oerjan> afaik
00:14:34 <int-e> I mean one of the time traveling ones
00:15:50 <oerjan> seems unlikely if they're the other
00:16:20 <oerjan> a dreen could have, although they're too damn mysterious about it.
00:16:37 <int-e> Sorry, I'm just musing.
00:16:40 <int-e> I should sleep.
00:19:44 <oerjan> i suppose we'll find out soon enough.
00:34:01 -!- augur_ has joined.
00:37:29 -!- augur has quit (Ping timeout: 260 seconds).
01:03:19 -!- lambda-11235 has joined.
01:06:06 <mad> oh man
01:06:30 <mad> looks like I'll have to design a tlb/page table/mmu for my cpu :o
01:15:09 <izabera> yo, haskell experts
01:15:14 <izabera> what's wrong with this code?
01:15:16 <izabera> -- This is an abomination.
01:15:18 <izabera> tokenEquals :: Token -> Token -> Bool
01:15:20 <izabera> tokenEquals a b = kludge a == kludge b
01:15:22 <izabera> where kludge s = Re.subRegex (Re.mkRegex "\\(Id [0-9]+\\)") (show s) "(Id 0)"
01:23:10 <zzo38> They say they will change madness rule of Magic: the Gathering so that now it is mandatory. There may be some interesting consequences with Magic: the Puzzling.
01:23:41 <oerjan> <Lymia> I fixed it. <-- wow.
01:24:05 <zzo38> (It may result in more interesting puzzles perhaps, although some puzzles also might not work with this change; that is why rule datestamps are needed.)
01:24:12 <\oren\> because it is equivalent to comparing two things in C++ by printing them to a stringstream, extracting a part of the string with a regex, and comparing that part?
01:25:32 <izabera> i had no idea
01:25:52 <izabera> thanks for the explanation
01:26:31 <\oren\> it's a one-liner in haskell because haskell has better syntax and libraries and uh... well better most things
01:27:07 <fizzie> izabera: Clearly what's wrong is that it wasn't written as tokenEquals = (==) `on` kludge where ...
01:27:26 * oerjan swats fizzie -----###
01:28:10 <izabera> i don't get haskell inside jokes, yet
01:29:24 <fizzie> oerjan: Oh, you think I missed the point there?
01:29:38 * oerjan swats fizzie some more -----###
01:29:40 <shachaf> are you really bolding your pun
01:29:53 <fizzie> shachaf: It's better than putting stars around it.
01:30:19 <fizzie> More subtle, don't-cha know.
01:30:27 <fizzie> I forget how you spell "don't-cha".
01:31:00 <fizzie> Is it just "don'cha"?
01:31:04 <zzo38> What is your opinion of this change of madness rule?
01:31:19 <shachaf> What's the change?
01:31:44 <shachaf> fizzie: obviously you should be rainbowing it instead hth
01:31:47 <zzo38> The comprehensive rules aren't updated yet, although apparently the change is that discarding to exile (and triggering it) is now mandatory.
01:31:54 <fizzie> I don't have a rainbow key.
01:32:34 <zzo38> I think improved puzzles might be made due to this change
01:32:47 <shachaf> fizzie: https://github.com/hazel-nut/cslounge-irssi-scripts/blob/master/rainbow.pl hth
01:33:07 <shachaf> zzo38: I don't know the old rule or the new rule.
01:33:26 <oerjan> !bfjoust test <
01:33:29 <EgoBot> ​Score for oerjan_test: 0.0
01:34:52 <zzo38> The current rule is 702.34. If you discard a card with madness you may exile it instead of into graveyard. If you do then it is a triggered ability on the stack; you may cast it for its madness cost, if you do not then it is placed into graveyard instead.
01:34:52 -!- hppavilion[1] has joined.
01:34:57 <hppavilion[1]> http://smbc-comics.com/index.php?id=2831
01:35:39 <zzo38> As far as I can tell the change is just that now exiling it is mandatory instead of optional.
01:48:44 -!- XorSwap has quit (Quit: Leaving).
01:57:27 <\oren\> I'm adding thinner versions of my characters to my font (in the "Math Sans-Serif" area)
02:00:18 -!- AlexR42 has joined.
02:07:01 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
02:10:58 -!- augur has joined.
02:12:41 <zzo38> Maybe I might make up my own program to create PCF fonts, rather than using the included program (not all features of PCF seem to be supported as far as I can tell from the BDF documentation)
02:15:03 -!- augur_ has quit (Ping timeout: 276 seconds).
02:15:31 -!- AlexR42 has quit (Quit: My Mac has gone to sleep. ZZZzzz…).
02:21:24 <\oren\> Now I'm adding regular bold
02:21:50 <\oren\> (mostly by using the blackboard bold and removing the gaps)
02:25:29 -!- p34k has quit.
02:46:49 -!- hppavilion[1] has quit (Ping timeout: 240 seconds).
02:51:29 <\oren\> wait, how the hell do you say "seitokaichou" in english?
02:52:58 <pikhq> "Student body president" or "student council president"
02:53:46 <\oren\> oh, that's why i couldn't remember. it's really long!
02:56:43 <zzo38> What is a number of the form (2^m-1)(2^n) called?
02:58:20 <mad> that's = to 2^(m+n) - 2^n no?
02:58:21 <\oren\> uh... a wunwunwunzeerzeerzero
02:58:30 <mad> so a difference of powers of 2?
02:59:14 <zzo38> Yes it is that too I suppose that make sense now
03:00:43 <Lymia> oerjan, what's weird about fixing things. ;p
03:00:58 <shachaf> @@ @oeis @run take 15 . nub . sort $ [(2^m-1) * (2^n) | m <- [0..5], n <- [0..5]]
03:01:00 <lambdabot> Sequence not found.
03:01:05 <oerjan> Lymia: well i was _almost_ ready to swat you for all the noise when you succeeded
03:01:14 <\oren\> (2^m-1)(2^n) == "1" * m + "0" * n
03:01:22 <shachaf> @@ @oeis @run intercalate "," . map show . take 15 . nub . sort $ [(2^m-1) * (2^n) | m <- [0..5], n <- [0..5]]
03:01:24 <lambdabot> Numbers of the form 2^i - 2^j with i >= j.[0,1,2,3,4,6,7,8,12,14,15,16,24,28...
03:01:39 <shachaf> thx tdh
03:02:20 <\oren\> (in a language where numbers are strings of the charatcers '1' and '0')
03:02:57 <shachaf> \oren\: that language is called computer hth
03:03:16 <oerjan> `? computer
03:03:21 <HackEgo> computer? ¯\(°​_o)/¯
03:03:40 <oerjan> `learn Computer is a language where numbers are strings of the charatcers '1' and '0'
03:03:44 <HackEgo> Learned 'computer': Computer is a language where numbers are strings of the charatcers '1' and '0'
03:03:55 <oerjan> `learn Computer is a language where numbers are strings of the characters '1' and '0'.
03:03:58 <HackEgo> Relearned 'computer': Computer is a language where numbers are strings of the characters '1' and '0'.
03:04:17 <shachaf> oerjan: You're so pleased with yourself when you use `learn, aren't you.
03:04:39 <\oren\> いえい!
03:04:55 <oerjan> shachaf: hey everyone loves a learning experience
03:05:06 <Lymia> oerjan, and I only needed to use one published CVE to do it. ^.^
03:05:20 <shachaf> oerjan: Even more than a le/rning experience?
03:05:46 <shachaf> `? ///
03:05:48 <HackEgo> cat: ///: Is a directory
03:05:55 <shachaf> oerjan: please add a wisdom entry for /// twh
03:06:17 <zzo38> shachaf: No, it is unsuitable, please
03:06:30 <shachaf> zzo38: Why?
03:06:32 <oerjan> shachaf: er...
03:06:42 <zzo38> Because is a directory.
03:06:55 <shachaf> zzo38: Sure, but `? has plenty of special cases already.
03:07:40 <shachaf> you don't think special cases in `? are good?
03:07:45 <shachaf> you're either wisdom or you're against 'em
03:07:51 <zzo38> OK you can edit the `? program itself then if you would need to do that
03:07:53 <shachaf> i know where i stand
03:08:08 <oerjan> on thin ice
03:08:25 <zzo38> Yes
03:09:35 <shachaf> what fancy food should i make for dinner
03:10:08 <oerjan> crêpes
03:10:41 <shachaf> diacritics don't make food any fancier
03:10:51 <oerjan> [citation needed]
03:11:08 <shachaf> anyway i mean food that i haven't eaten before
03:11:42 <shachaf> that reminds me that i never made that norwegian porridge
03:11:51 <oerjan> `? ctc
03:11:52 <HackEgo> ctc? ¯\(°​_o)/¯
03:12:53 <zzo38> `? [citation needed]
03:12:54 <HackEgo> ​[citation needed]? ¯\(°​_o)/¯
03:13:20 <oerjan> `learn CTC stands for Closed Timelike Citation, which is what happens when news sites cite Wikipedia's badly referenced articles and then get added to them.
03:13:23 <HackEgo> Learned 'ctc': CTC stands for Closed Timelike Citation, which is what happens when news sites cite Wikipedia's badly referenced articles and then get added to them.
03:13:33 -!- hppavilion[1] has joined.
03:15:46 <\oren\> `? %
03:15:47 <HackEgo> ​%? ¯\(°​_o)/¯
03:18:52 <\oren\> `? ‮
03:18:54 <HackEgo> ​‮? ¯\(°​_o)/¯
03:19:13 <\oren\> muhuhahahaha
03:19:48 <\oren\> ムフハハハハ
03:19:55 <oerjan> you seem amused.
03:21:04 <\oren\> finally, the big eye is on the left!
03:21:44 -!- treaki_ has quit (Ping timeout: 244 seconds).
03:23:43 -!- treaki_ has joined.
03:24:25 <\oren\> idea, a language where you use the rtl override and etc characters as unary operators
03:25:47 <\oren\> `? 𝕈
03:25:49 <HackEgo> ​𝕈? ¯\(°​_o)/¯
03:26:19 <\oren\> `learn 𝕈 is the set of rational numbers.
03:26:23 <HackEgo> Learned '𝕈': 𝕈 is the set of rational numbers.
03:26:35 <shachaf> Come on, are you just trying to mess with people's terminals?
03:26:54 <shachaf> `` lastfiles | xxd
03:26:56 <HackEgo> 0000000: 7769 7364 6f6d 2ff0 9d95 880a wisdom/.....
03:26:57 <\oren\> what's wrog with 𝕈?
03:27:58 <\oren\> `unidecode 𝕈
03:27:59 <HackEgo> U+1D548 - No such unicode character name in database \ UTF-8: f0 9d 95 88 UTF-16BE: d835dd48 Decimal: &#120136; \ 𝕈 (𝕈) \ Uppercase: U+1D548 \ Category: Cn (Other, Not Assigned)
03:28:03 <\oren\> WUT
03:28:33 <\oren\> oh, right, those assholes put it at ℚ
03:28:43 <oerjan> `unidecode ℚ
03:28:44 <HackEgo> ​[U+211A DOUBLE-STRUCK CAPITAL Q]
03:29:13 <\oren\> while 𝕊
03:29:22 <\oren\> `unidecode 𝕊
03:29:23 <HackEgo> ​[U+1D54A MATHEMATICAL DOUBLE-STRUCK CAPITAL S]
03:29:26 <\oren\> SEE
03:29:37 <oerjan> no, ESS
03:30:29 <\oren\> oh, and in my font, I have both cues, with different glyphs because I forgot about those gaps
03:32:09 <zzo38> That is OK if that is how you would want to design font?
03:54:18 <\oren\> nah, the next version will fix that
03:55:44 <\oren\> `learn 𝕈 would be the set of rational numbers, if the unicode consortium weren't idiots who put it as ℚ.
03:55:48 <HackEgo> Relearned '𝕈': 𝕈 would be the set of rational numbers, if the unicode consortium weren't idiots who put it as ℚ.
03:56:31 <mad> is it me or half of what makes a jrpg work is the music?
03:56:41 <\oren\> it's not just you
03:57:19 <\oren\> a good battle theme prevents grinding from getting boring too fast
03:59:04 <mad> true but I'm starting to think that on exploration screens you also need good music or else it's just some guy walking around
03:59:31 <mad> in retrospective the action is very "slow"
03:59:58 -!- treaki_ has quit (Ping timeout: 248 seconds).
04:02:15 -!- treaki_ has joined.
04:03:18 <\oren\> ok! I added 𝐀𝐁𝐂𝐃𝐄𝐅𝐆𝐇𝐈𝐉𝐊𝐋𝐌𝐍𝐎𝐏𝐐𝐑𝐒𝐓𝐔𝐕𝐖𝐗𝐘𝐙𝐚𝐛𝐜𝐝𝐞𝐟𝐠𝐡𝐢𝐣𝐤𝐥𝐦𝐧𝐨
04:03:27 <\oren\> 𝐀𝐁𝐂𝐃𝐄𝐅𝐆𝐇𝐈𝐉𝐊𝐋𝐌𝐍𝐎𝐏𝐐𝐑𝐒𝐓𝐔𝐕𝐖𝐗𝐘𝐙𝐚𝐛𝐜𝐝𝐞𝐟𝐠𝐡𝐢𝐣𝐤𝐥𝐦𝐧𝐨
04:04:11 <\oren\> oh, I don't have the font on my terminal yet so I can't see wtf I'm doing
04:06:38 <mad> IPA characters? (international phonetic alphabet)
04:07:30 <\oren\> 𝐀𝐁𝐂𝐃𝐄𝐅𝐆𝐇𝐈𝐉𝐊𝐋𝐌𝐍𝐎𝐏𝐐𝐑𝐒𝐓𝐔𝐕𝐖𝐗𝐘𝐙𝐚𝐛𝐜𝐝𝐞𝐟𝐠𝐡𝐢𝐣𝐤𝐥𝐦𝐧𝐨𝐩𝐪𝐫𝐬𝐭𝐮𝐯𝐰𝐱𝐲𝐳𝖠𝖡𝖢𝖣𝖤𝖥𝖦𝖧𝖨𝖩𝖪𝖫𝖬𝖭𝖮𝖯𝖰𝖱𝖲𝖳𝖴𝖵𝖶𝖷𝖸𝖹𝖺𝖻𝖼𝖽𝖾𝖿𝗀𝗁𝗂𝗃𝗄𝗅𝗆𝗇𝗈𝗉𝗊𝗋𝗌𝗍𝗎𝗏𝗐𝗑𝗒𝟎𝟏𝟐𝟑𝟒
04:07:37 <\oren\> there
04:08:06 <\oren\> bold and thin ersions of alphanumberics
04:08:39 <shachaf> i,i what's an erosion of a character?
04:08:48 <\oren\> versions
04:09:25 <shachaf> I realized that.
04:09:27 <\oren\> mad: I'v had basically all of IPA[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C in this font for a while
04:09:28 <shachaf> hence i,i
04:09:49 <\oren\> ok why is irssi glitching me again
04:10:31 <oerjan> `` sed -i "s'unicode consortium'Unicode Consortium'" wisdom/𝕈
04:10:34 <HackEgo> No output.
04:13:19 -!- sebbu2 has quit (Ping timeout: 252 seconds).
04:13:37 -!- hppavilion[1] has quit (Ping timeout: 240 seconds).
04:14:50 <\oren\> maybe irssi glitches after running continuously for 4 weeks
04:25:34 -!- lleu has joined.
04:29:58 -!- llue has joined.
04:30:09 <\oren\> who the hell would sign up on profitico.net?
04:30:54 -!- lleu has quit (Read error: Connection reset by peer).
04:39:29 -!- treaki__ has joined.
04:43:43 -!- treaki_ has quit (Ping timeout: 268 seconds).
04:45:49 -!- hppavilion[1] has joined.
05:33:28 -!- llue has quit (Quit: That's what she said).
05:47:43 -!- oerjan has quit (Quit: Nite).
05:49:32 <zgrep> profiticon :P
05:50:04 <zgrep> Hrm. Well, profit-con. Not profit icon. But a profit (religious) icon would be interesting as well.
06:09:15 -!- sebbu has joined.
06:19:38 -!- AlexR42 has joined.
06:20:23 <hppavilion[1]> Most currency is the same
06:20:44 <hppavilion[1]> In fact, any currency can be related to any other with a single rational number greater than 0.
06:20:48 <hppavilion[1]> We need to fix this.
06:25:37 <zzo38> Now I wrote a C program that will execute the _SEND_RESOURCE protocol on a window, and now I will make it so that another program can receive such requests and process them.
06:27:41 -!- AlexR42 has quit (Quit: Textual IRC Client: www.textualapp.com).
06:30:59 -!- lambda-11235 has quit (Quit: Bye).
06:42:57 <\oren\> hppavilion[1]: I had an idea of a negative currency, where the most you can have is zero
06:43:05 <hppavilion[1]> \oren\: Go on
06:43:20 <hppavilion[1]> \oren\: Though complex currency would be better
06:43:59 <\oren\> rather than giving someone a dollar for a chocobar, you would instead agree to take a negadollar off them
06:44:15 <hppavilion[1]> https://en.wikipedia.org/wiki/Categorical_quantum_mechanics is a thing
06:44:20 <hppavilion[1]> \oren\: Ah, interesting
06:47:50 <\oren\> taxes would consist of the government giving negadollars to the people with the least.
06:48:43 <\oren\> and welfare would be the government taking negadollars from people who have too many
06:49:10 <pikhq> http://gravityfalls.wikia.com/wiki/Negative_Twelve_Dollar_Bill Such as this?
06:50:27 -!- bender| has joined.
06:52:20 <hppavilion[1]> \oren\: Do you know much about rings and such?
06:52:41 <\oren\> I know the basic properties of rings and groups
06:53:03 <hppavilion[1]> \oren\: I'm trying to implement them in python
06:53:26 <hppavilion[1]> \oren\: Is there a way to check for associativity/commutativity/etc that I'm too stupid to notice? It doesn't seem like there is
06:54:05 <hppavilion[1]> \oren\: Or more generally, if I create a ring, how do I make sure it's really a ring?
06:55:12 <\oren\> generally that requires a proof
06:55:26 <hppavilion[1]> \oren\: Blast!
06:55:31 <hppavilion[1]> (I like saying blast)
06:55:50 <hppavilion[1]> Though I was expecting it, because it seems pretty obvious
06:55:56 <\oren\> python, like most practical languages, isn't designed for its behaviour to be mathematically provable
06:56:04 <hppavilion[1]> \oren\: Is there a workaround? Other than forcing the user to supply a formal proof?
06:56:25 <hppavilion[1]> (user = programmer here)
06:56:32 <\oren\> well if your set is finite ou can just try every pair
06:56:58 <hppavilion[1]> (Though now that I think about it, I'm making a goddamn proof automaton for this, so I could just force a formal proof to be supplied, which is probably how I should do it anyway)
06:57:08 <hppavilion[1]> \oren\: Potentially infinite, but I think I just found the solution
06:57:33 <\oren\> or every three for associativity law
06:58:46 <hppavilion[1]> \oren\: What I'm trying to make, to sate your burning curiousity </sarcasm> is a proof assistant that does a lot of category theory and stuff. Mostly so I can use it to explore category theory.
07:01:03 <\oren\> then maybe you should start with a smpler test case, say a group with three elements
07:01:46 <\oren\> or even one
07:03:59 <hppavilion[1]> \oren\: Good point
07:11:41 <hppavilion[1]> \oren\: OK, implemented groups. The final version will require that you first prove an operator has associativity and inverses and identity, but for now it has no checks
07:19:29 -!- zadock has joined.
07:20:34 -!- AnotherTest has joined.
07:29:51 -!- AnotherTest has quit (Ping timeout: 264 seconds).
07:30:10 <hppavilion[1]> \oren\: Say, how do you prove associativity and commutativity?
07:30:15 <hppavilion[1]> Do you do it with DARK MAGIC?
07:30:39 <hppavilion[1]> Or are there known-to-be-associative and known-to-be-commutative operators you must define others in terms of?
07:53:33 <b_jonas> “<zzo38> Maybe I might make up my own program to create PCF fonts, rather than using the included program (not all features of PCF seem to be supported as far as I can tell from the BDF documentation)” - wait, what pcf features? I'm interested now
07:55:34 <b_jonas> “<zzo38> The current rule is 702.34. If you discard a card with madness you may exile it instead of into graveyard. If you do then it is a triggered ability on the stack;” wait what? instead of what into gy, and the card what a triggered ability?
08:01:39 -!- hppavilion[1] has quit (Ping timeout: 248 seconds).
08:03:41 <b_jonas> zzo38, shachaf: “<shachaf> oerjan: please add a wisdom entry for /// twh” => let's just make wisdom s\/\∕\g the keys, then we can put slashes at the beginning and end and use significant multiple slashes too
09:10:30 <izabera> http://azac.pl/cobol-on-wheelchair/
09:13:21 <impomatic> taneb: https://robotgame.net/ is working again :-)
09:20:10 <myname> izabera: these ^H don't make sense at all
09:20:15 <myname> he should use ^W
09:23:41 <myname> also, finally banks can make better websites
09:29:34 -!- bender| has quit (Ping timeout: 248 seconds).
09:46:58 -!- AnotherTest has joined.
10:10:33 -!- J_Arcane has quit (Ping timeout: 268 seconds).
10:20:54 -!- lynn has joined.
11:24:30 -!- mroman has joined.
11:35:44 -!- boily has joined.
11:40:49 <boily> `wisdom
11:41:02 <HackEgo> translater/A translater is one who transes a long time after the fact.
11:42:55 <izabera> :)
11:45:56 <boily> `? transformer
11:45:59 <HackEgo> A transformer is one who used to trans, but no longer does.
11:53:20 <b_jonas> `? interpreter
11:53:22 <b_jonas> `? compiler
11:53:22 <HackEgo> interpreter? ¯\(°​_o)/¯
11:53:23 <HackEgo> compiler? ¯\(°​_o)/¯
11:53:23 <b_jonas> `? linker
11:53:24 <HackEgo> linker? ¯\(°​_o)/¯
11:59:13 <int-e> `learn The linker (from german "links") is a part of a Turing machine that's responsible for moving all output data to the left of the tape before terminating.
11:59:30 <HackEgo> Learned 'linker': The linker (from german "links") is a part of a Turing machine that's responsible for moving all output data to the left of the tape before terminating.
12:00:15 <fizzie> `learn A compiler (lit. "with-piler") is one who builds piles together with someone else.
12:00:19 <HackEgo> Learned 'compiler': A compiler (lit. "with-piler") is one who builds piles together with someone else.
12:03:00 <myname> so... what is a transpiler?
12:03:26 <Taneb> myname, a transpiler (lit. "across-piler") is someone who builds piles across things
12:03:27 -!- lynn has quit (Ping timeout: 264 seconds).
12:03:55 <myname> ah!
12:04:14 <boily> `learn An interpreter (Latin "inter-", Old French "prestre") is unofficial correspondence between ordained members of the Church.
12:04:19 <HackEgo> Learned 'interpreter': An interpreter (Latin "inter-", Old French "prestre") is unofficial correspondence between ordained members of the Church.
12:04:24 <myname> "why is there a wall on the street" "must have been a transpiler"
12:04:48 <boily> `` sed -i 's/german/German/' wisdom/linker
12:04:50 <HackEgo> No output.
12:05:28 <int-e> `? boily
12:05:29 <HackEgo> ​"Only sane man" boily is monetizing a broterhood scheme with the Guardian of Lachine, apparently involving cookie dealing. He's also a NaniDispenser, a Trigotillectomic Man Eating Chicken and a METARologist. He is seriously lacking in the f-word department.
12:05:54 <myname> wat
12:06:22 -!- bender| has joined.
12:07:23 <boily> mynamello. wat?
12:07:28 <int-e> `learn_append boily He is also a renowned Capitalist.
12:07:30 <HackEgo> Learned 'boily': "Only sane man" boily is monetizing a broterhood scheme with the Guardian of Lachine, apparently involving cookie dealing. He's also a NaniDispenser, a Trigotillectomic Man Eating Chicken and a METARologist. He is seriously lacking in the f-word department. He is also a renowned Capitalist.
12:08:15 <boily> my wisdom is becoming Entish...
12:08:33 <b_jonas> `? bodily
12:08:34 <HackEgo> bodily? ¯\(°​_o)/¯
12:08:37 <int-e> `? int-e
12:08:38 <HackEgo> int-e är inte svensk.
12:08:50 <int-e> feel free to retaliate, that one seems a bit short ;-)
12:09:35 <b_jonas> int-e: heh, that's a nice interpretation for the linker
12:10:18 <boily> int-e: I need to learn Swedish first.
12:10:42 <boily> @ask olsner hellolsner. care to expand int-e?
12:10:42 <lambdabot> Consider it noted.
12:10:56 <b_jonas> int-e: although I think that's not the whole linker, just the part that's called collect2, which collects the output. the linker has a few other parts.
12:11:01 <b_jonas> `? collect2
12:11:04 <HackEgo> collect2? ¯\(°​_o)/¯
12:11:05 <b_jonas> `? collect
12:11:07 <HackEgo> collect? ¯\(°​_o)/¯
12:12:15 <int-e> b_jonas: but those have nothing to do with "links" so I omitted them
12:12:31 <b_jonas> yeah
12:12:39 <b_jonas> I just wonder if collect2 should be mentioned somewhere
12:13:48 <b_jonas> Maybe we should say something referring to that the linker is traditionally called ld for historical reasons, but in the gnu toolchain it's called collect2 (the reality is much more uglier than that)
12:14:47 <boily> why is it called ld?
12:15:00 <int-e> Link eDitor?
12:16:26 <int-e> or LoaDer... "Possible origins of the name "ld" are "LoaD" and "Link eDitor"." https://en.wikipedia.org/wiki/GNU_linker
12:16:35 <b_jonas> I think it's called ld because people like me set up aliases to ls like l() { ls -aF "$@"; }; ll() { ls -alF "$@"; }; and would also like to set up ld () { ls -dlF "$@"; }; but that latter would clash with the linker
12:16:57 <b_jonas> I think it stands for load though
12:17:09 <int-e> bash: l: command not found / bash: ll: command not found ... never saw the point
12:17:11 <b_jonas> it was called loader originally, back when it worked differently from now
12:17:57 <int-e> though arguably I type too much when using the shell. I make up for it by using ^R a lot.
12:19:57 <b_jonas> int-e: I think actually I should do away with the -d stuff, and instead patch ls to add a new dwim switch that automatically applies -d to only the pathname arguments that don't end with a slash, and then alias ll to use that switch
12:20:05 <b_jonas> but I haven't implemented that yet
12:20:18 <b_jonas> the -d switch is useful but too much bother on command-line
12:20:29 <b_jonas> as in, useful for scripts
12:21:11 <boily> int-e: I ^U everything, then wonder why it doesn't work outside of the shell...
12:21:28 <boily> (it works in firefox, because pentadactyl but that's cheating.)
12:21:52 <int-e> for some reasong I use ^A^K
12:23:11 <b_jonas> int-e: probably an emacs habit
12:23:18 <b_jonas> or perhaps nano
12:25:22 -!- boily has quit (Quit: LEVERAGE CHICKEN).
12:44:00 -!- Slice^ has joined.
13:08:57 <b_jonas> ARGH! I hate commands that can both list useful info or do something more destructive, and you if you make a typo on the list version it automatically turns to the destructive version. eg. 'git branch -a' lists branches, but if you typo it to 'git branch üa' then poof, you get a branch üa created. similarly, in irssi, /server list lists the servers you are connected to, but if you typo it like /server lsit then poof, you get disconnected from a server
13:09:08 <b_jonas> \ eg. 'git branch -a' lists branches, but if you typo it to 'git branch üa' then poof, you get a branch üa created. similarly, in irssi, /server list lists the servers you are connected to, but if you typo it like /server lsit then poof, you get disconnected from a server
13:09:39 <b_jonas> Neither are very destructive, because you can delete the üa branch or reconnect to the server later, but still
13:09:52 <b_jonas> it's just bad design
13:10:12 <Slice^> nice
13:17:24 -!- AnotherTest has quit (Ping timeout: 276 seconds).
13:20:10 <izabera> https://www.youtube.com/watch?v=8ucCxtgN6sc retrocomputing
13:37:49 -!- lynn has joined.
13:56:52 -!- Slice^ has quit (Quit: This computer has gone to sleep).
14:04:49 -!- earendel has quit (Ping timeout: 260 seconds).
14:06:08 -!- _46bit has left.
14:13:29 <b_jonas> heh heh: in less, the keystroke sequence ZZ quits, as well as Q , but the sequence ZQ is a nop
14:14:40 -!- AnotherTest has joined.
14:15:26 -!- lynn has quit (Read error: Connection reset by peer).
14:18:44 -!- lynn has joined.
14:19:48 -!- AnotherTest has quit (Ping timeout: 276 seconds).
14:32:57 -!- nycs has joined.
14:35:46 -!- earendel has joined.
14:40:01 -!- spiette has joined.
14:42:20 -!- spiette_ has joined.
14:42:34 -!- spiette has quit (Disconnected by services).
14:43:11 -!- spiette_ has changed nick to spiette.
14:44:52 -!- oerjan has joined.
14:55:06 -!- lambda-11235 has joined.
14:57:26 -!- Slice^ has joined.
15:02:59 -!- Slice^ has quit (Quit: This computer has gone to sleep).
15:03:31 -!- Slice^ has joined.
15:05:19 <oerjan> @tell hppavilion[1] <hppavilion[1]> \oren\: Say, how do you prove associativity and commutativity? <-- there is no one method. sometimes you can just expand equations using things you already know. sometimes you can check all cases. sometimes you need a genuinely new trick.
15:05:19 <lambdabot> Consider it noted.
15:06:07 <fizzie> But what about the TOOWTDI principle!
15:06:23 <myname> provide an isomorphism to something associqtive and commutative
15:06:24 <oerjan> @tell hppavilion[1] generally you want to know as many tricks as possible that you can use, that goes for all math.
15:06:24 <lambdabot> Consider it noted.
15:06:25 <Taneb> Two Old Owls Won't Try Doing It?
15:06:39 <fizzie> Taneb: "There's Only One Way To Do It" https://wiki.python.org/moin/TOOWTDI
15:06:47 <oerjan> fizzie: that's why python is lousy for proofs hth
15:06:49 <Taneb> That makes slightly more sense
15:06:57 <oerjan> perl is much better
15:07:05 <myname> that is basically why i hate python
15:07:21 <izabera> you hate it because perl is much better?
15:07:36 <fizzie> izabera: You sounded like Eliza there for a moment.
15:07:44 -!- izabera has changed nick to elizabera.
15:08:05 <elizabera> fizzie: how does it make you feel that i sounded like Eliza there for a moment?
15:08:16 <fizzie> elizabera: What do you think?
15:08:28 <elizabera> What do you mean with that?
15:08:38 <fizzie> elizabera: Can you elaborate on that?
15:09:10 <elizabera> you could at least change your nick to elizzie :p
15:09:52 -!- Slice^ has quit (Quit: This computer has gone to sleep).
15:10:04 <fizzie> An Eliza-Eliza dialogue seems less vibrant than M-x psychoanalyze-pinhead.
15:11:58 -!- bender| has quit (Ping timeout: 248 seconds).
15:12:19 <fizzie> Oh, the Zippy lines were deleted? http://sprunge.us/YKKg isn't really going anywhere either.
15:12:59 <elizabera> how do i pipe stuff to emacs?
15:13:05 <elizabera> wanna to make a doctor bot
15:13:09 <elizabera> s/to//
15:15:57 <oerjan> fizzie: i take it that response is bitching about having to remove it...
15:16:04 <fizzie> You might get somewhere with just emacsclient -e '...' and a bit of elisp. The function to call seems to be "doctor-doc", but it's hardcoded to type into buffer, you'd need some extra work.
15:16:08 <fizzie> oerjan: That's my impression as well.
15:17:41 -!- lynn has quit (Read error: Connection reset by peer).
15:18:10 -!- lynn has joined.
15:19:16 -!- Slice^ has joined.
15:19:26 -!- lynn has quit (Read error: Connection reset by peer).
15:19:37 -!- Slice^ has quit (Remote host closed the connection).
15:19:52 -!- lynn has joined.
15:27:10 -!- lynn has quit (Read error: Connection reset by peer).
15:27:58 -!- lynn has joined.
15:37:47 -!- lynn_ has joined.
15:38:34 <oerjan> @yow
15:38:35 <lambdabot> Are we THERE yet? My MIND is a SUBMARINE!!
15:38:50 <b_jonas> fungot, are we there yet?
15:38:50 <fungot> b_jonas: a similar rule applies to everyone who's missing one of the files of arbitrary type ( despite the fact that many of them all ibm. but if an array is an international manufacturer of measurement and computation products and services are used to thank god for ange ftp, or is he taking a beating lately as he
15:39:16 <oerjan> fungot: you don't sound very much like zippy.
15:39:16 <fungot> oerjan: what bothers me a pointer to match its depth inside the mail tools that hide its contents from the b drive. well, yeah. the
15:39:33 -!- lynn has quit (Ping timeout: 240 seconds).
15:43:53 -!- elizabera has changed nick to izabera.
15:49:06 -!- Alejandro15 has joined.
15:49:23 -!- Alejandro15 has left.
15:51:43 <prooftechnique> fungot: You should really close that paren.
15:51:43 <fungot> prooftechnique: to debug my .twmrc file to rm. you could only figure out
15:51:59 <prooftechnique> Well, there's me shown up.
15:54:01 -!- lambda-11235 has quit (Quit: Bye).
15:54:02 <fizzie> fungot not balancing punctuation is a longstanding bug; I implemented it in the Perl, but never managed to be bothered to do it in the Funge.
15:54:03 <fungot> fizzie: pascal compiler to adjust the stack look like a unix recently. it will change the object file, each of the year to the c programming environments, with the extra loop is ignored, and
15:54:29 -!- earendel has quit (Ping timeout: 244 seconds).
15:57:07 <oerjan> fizzie: just steal some of the code from ^bf hth
15:57:52 -!- zadock has quit (Ping timeout: 252 seconds).
15:59:46 -!- zadock has joined.
16:01:35 -!- lleu has joined.
16:01:35 -!- lleu has quit (Changing host).
16:01:35 -!- lleu has joined.
16:05:39 -!- mroman has quit (Quit: Lost terminal).
16:06:05 -!- oerjan has quit (Quit: Later).
16:34:40 -!- zadock has quit (Quit: Leaving).
16:44:39 <fizzie> @tell oerjan And, what, retry until everything's balanced?
16:44:39 <lambdabot> Consider it noted.
16:44:45 <fizzie> That should've been @ask.
17:01:09 -!- lynn_ has quit (Ping timeout: 244 seconds).
17:38:07 <Taneb> AlphaGo (Google's Go AI) is taking on the world champion starting tomorrow
17:43:34 <b_jonas> Taneb: wait, already_
17:43:51 <b_jonas> weren't they supposed to, like, improve their program to play go better for another two years or something?
17:44:19 <b_jonas> oh wait, how much time was there between the previous match and its announcement? maybe that two years has already passed
17:44:52 <Taneb> https://deepmind.com/alpha-go.html
17:44:56 <Taneb> There's been a few months
17:45:25 <b_jonas> first tournament with European champion was in 2015-10, announced in 2016-01-27
17:45:26 <int-e> the last match was in october
17:45:55 <b_jonas> so they had a few months to improve it only
17:47:42 <int-e> So they've had about 5 months. Lee Sedol (their opponent in the upcoming match) is approximately 3rd best in the world. (http://www.goratings.org/ puts him in fourth place but there are some good arguments for Iyama Yuta being overrated in that list.)
17:48:57 <b_jonas> and they're playing 5 matches, it seems
17:49:19 <int-e> . o O ( it's a 5 games match )
17:49:33 <b_jonas> oh right, 5 games
17:49:43 <b_jonas> yes
17:50:46 <int-e> anyway it'll be interesting to see how this turns out
17:51:01 <b_jonas> And time time the matches are published live.
17:52:14 <fizzie> Any betting going on yet?
17:52:33 <b_jonas> no idea
17:53:20 -!- ais523 has joined.
17:53:53 <b_jonas> ais523: hello!
17:54:04 <ais523> hi b_jonas
17:54:07 <ais523> any news?
17:54:33 <b_jonas> ais523: I have some rants. no real news I think.
17:54:46 <b_jonas> uh, except when you last left, your last message asked to tell you that it went throuhg
17:55:21 <ais523> oh good, it did
17:55:22 <int-e> fizzie: Well, I have no doubt that Lee would walk over the October version. But it's so hard to predict Alphago's progress, and the team seems to be fairly confident... so I'm unsure what to expect (though I'd be a bit surprised if any of the players wins all their games.)
17:55:27 <ais523> I hope Lymia found it useful
17:55:34 <b_jonas> oh, and I made Lymia start to doubt if LuaJoust can be made to work
17:55:51 <fizzie> "placing a winning 1 BTC bet on: Yes pays: 1.01133196 BTC No pays: 1.00958558 BTC"
17:55:51 <b_jonas> because you'd have to change Lua a lot to make it deterministic
17:56:02 <fizzie> Where "Yes" is on AlphaGo winning.
17:56:08 <b_jonas> I put some notes on esolangs
17:56:19 <ais523> fizzie: that's one of the worst spreads I've ever seen
17:56:21 <b_jonas> I think I should add to them too
17:56:24 <ais523> who'd bet at those combined odds?
17:56:30 <fizzie> ais523: People have bet 131.47 BTC on this.
17:56:37 <int-e> https://bitbet.us/bet/1249/alphago-will-defeat-lee-sedol-overall-in-march/ looks even; https://www.gjopen.com/questions/133-will-google-s-alphago-beat-world-champion-lee-sedol-in-the-five-game-go-match-planned-for-march-2016 favors alphago a bit.
17:56:37 <fizzie> (On this one site.)
17:56:51 <ais523> also 1 BTC is very large for a bet
17:56:59 <fizzie> Well, it was just an example.
17:57:04 <fizzie> You don't need to bet a full bitcoin.
17:57:12 <ais523> right, I'm wondering if that has something to do with the odds being so bad
17:57:24 <int-e> fizzie: wait, what are the other options?
17:57:26 <fizzie> But there seems to be about 54 thousand dollars already riding on this.
17:57:26 <ais523> like, maybe the site can't afford to pay out more than about .01 BTC given the number of bets so far
17:57:33 <int-e> match cancelled?
17:57:48 <int-e> Lee dies after the second game?
17:57:51 <fizzie> int-e: There are no other options. It's a yes-no question.
17:58:19 <fizzie> I don't know how this thing works, I'm just looking at https://bitbet.us/bet/1249/alphago-will-defeat-lee-sedol-overall-in-march/
17:58:28 <fizzie> There's a 5.1 BTC bet from someone on "Yes".
17:58:32 <b_jonas> ais523: also, zzo38 claims that the pcf (x bitmap font) format can probably do things that the bdf2pcf program can't generate from a bdf file, which surprised me
17:58:43 <Lymia> b_jonas, there's only one real major issue
17:58:46 <ais523> doesn't surprise me
17:58:56 <Lymia> Objects like tables hash to their addresses.
17:59:12 <ais523> Lymia: fwiw I think that even if it isn't determinstic it isn't a disaster
17:59:20 <Lymia> It isn't, but.
17:59:21 <b_jonas> Lymia: two. floating point stuff is the other
17:59:22 <ais523> there have been probabilistic BF Joust hills already
17:59:27 <ais523> the only reason we run all 42 is because we can
17:59:28 <int-e> oh, wait... shouldn't the two payouts satisfy 1/a + 1/b = 1 at least approximately?
17:59:31 <Lymia> It changes the game significantly.
17:59:40 <Lymia> Because bots can make truly random decisions.
17:59:42 <Lymia> hrm...
17:59:59 <ais523> Lymia: true randomness and cryptorandomness are effectively indistinguishable
18:00:01 <Lymia> But I'd have to figure out if that's really an issue too.
18:00:05 <Lymia> Right.
18:00:12 <ais523> and you can write a deterministic CSPRNG
18:00:14 <b_jonas> ais523: yes, but we want the matches to be reproducible
18:00:28 <Lymia> I wanted true determinism because that means that programs can be rewritten as BFJoust programs.
18:00:40 <b_jonas> ais523: just giving the program a random stream (good quality or bad quality, whatever) with a fixed seed wouldn't be a problem
18:00:56 <ais523> Lymia: ah right, I see
18:01:23 <b_jonas> ais523: the problem is that you can write programs that will run differently in two tournament servers, and succeed on both (luajoust programs can fail, since they can overflow the memory or otherwise generate exceptions)
18:01:43 <ais523> b_jonas: fwiw, zzo38 proposed that , generates random numbers, but I was very much against it because it exceeds the speed of light
18:01:54 <ais523> and in particular, you could just use , to set randomly sized decoys very quickly
18:01:59 <Lymia> I don't think failures due to such conditions are a particular problem.
18:02:20 <Taneb> ais523, what about , works randomly as either + or .
18:02:25 -!- p34k has joined.
18:02:38 <Lymia> I'd rather have something more subtle
18:02:40 <Lymia> Like
18:02:46 <b_jonas> ais523: are you against it in the same way as you'd be against labels and if-goto-else-goto?
18:02:48 <ais523> Taneb: that would work, I think; however it'd still make the game very defence-unfavoured
18:03:03 <Lymia> ,x < randomly either runs x or .
18:03:09 <ais523> b_jonas: much the same way but more strongly
18:03:22 <ais523> Lymia: does the , cost a cycle?
18:03:26 <ais523> also what does ,] do?
18:03:54 <Lymia> , would behave as a modifier to the next instruction
18:04:02 <Lymia> It causes it to do nothing 50% of the time
18:04:28 <Lymia> So ,] I think, would have a 50% chance of not checking the current cell and proceeding as if nothing happened? hrm
18:04:36 <Lymia> Might just make it illegal
18:04:56 <ais523> ,] would be an interesting loop escape mechanism, actually
18:05:12 <ais523> if you assume that ,[ and ,] just have a 50% chance of interpreting the current cell as 0
18:05:22 <ais523> and otherwise act normally
18:05:27 <ais523> this reminds me of Befunge2K
18:07:48 -!- lambda-11235 has joined.
18:16:20 <HackEgo> [wiki] [[Lua Joust]] https://esolangs.org/w/index.php?diff=46544&oldid=46543 * B jonas * (+890)
18:17:29 <b_jonas> ais523: I see
18:17:45 <b_jonas> ais523: repeating rant I said earlier today,
18:18:03 <b_jonas> ARGH! I hate commands that can both list useful info or do something more destructive, and you if you make a typo on the list version it automatically turns to the destructive version.
18:18:04 <ais523> that said, I'm currently against any changes to the BF version of Joust, I think it's in a good place
18:18:16 <b_jonas> eg. 'git branch -a' lists branches, but if you typo it to 'git branch üa' then poof, you get a branch üa created. similarly, in irssi, /server list lists the servers you are connected to, but if you typo it like /server lsit then poof, you get disconnected from a server.
18:18:19 <int-e> Oh, wtf is that "weight" business on bitbet...
18:18:26 <ais523> b_jonas: yes, that's kind-of crazy
18:19:27 <int-e> ...basically they mean that betting late makes no sense.
18:22:52 <b_jonas> ais523: and indeed as I work with git, I find that the default command-line interface is crazy, but at least that can be fixed by new commands.
18:28:47 <Lymia> So.
18:29:10 <Lymia> I picked Lua because it was simpler than Python and had the coroutine semantics.
18:29:15 <Lymia> Which obviously work very well for the task at hand.
18:29:27 <b_jonas> Lymia: certainly
18:29:57 <Lymia> I'm not sure I care about determinism in the sense of libc or platform differences.
18:30:02 <b_jonas> lua is a good choice, it's just that very few languages like this do determinism
18:30:08 <Lymia> That can be left as a quirk of different hills.
18:30:27 <b_jonas> Lymia: it's not just libc differences. the stuff can change if you recompile your program and the cc decides to generate code differently.
18:30:30 <Lymia> What I do care about is unpredictable behavior that can cause different behavior on two runs on the same system.
18:30:36 <b_jonas> Lymia: as in, it can commute a floating point addition
18:30:51 <b_jonas> it can change if you just edit the code or some options and recompile
18:31:11 <Lymia> I... still don't care?
18:31:27 <Lymia> I think my goal is best stated as the two following ideas:
18:31:41 <ais523> b_jonas: ccs can't commute floating point operations unless you permit them to
18:32:23 <Lymia> Or, well, really one particular idea.
18:32:43 <Lymia> Every program can be rewritten into an equivalent (very very long) BFJoust program.
18:32:52 <Lymia> That would behave identically.
18:33:01 <Lymia> I don't care if this program changes when you recompile something, or if you move to another computer.
18:33:11 <Lymia> But I do care that it is possible for that one particular hill, or instance at that particular time.
18:34:49 <int-e> did some more bitbet math. The initial two bets will pay out about three times their value if realized... 0.126 bitcoins for the first and 0.188 bitcoins for the second bet. So if they were made by the same person, that person would have a guaranteed win by now...
18:35:05 * int-e concludes that bitbet is weird.
18:37:03 <int-e> Well, almost guaranteed.
18:37:13 <b_jonas> ais523: they can, as in they can commute floating point addition, multiply, max and min, since commuting those still gives the result prescribed by the IEEE float rules. (They can also do similar transformation on subtraction.) the cc can't _associate_ them differently.
18:37:46 <ais523> b_jonas: what happens if you add two NaNs with different payloads?
18:38:02 <zzo38> I did not propose that , generates random numbers.
18:38:20 <zzo38> I prposed that , generates whatever number was at the current cell when the other program executed a . command
18:38:49 <zzo38> Or acts like . if the other program hasn't
18:39:30 -!- lynn has joined.
18:39:58 <ais523> zzo38: ah right
18:40:03 <b_jonas> ais523: per IEEE math, you get a quiet nan, but it's not specified which. x87 and sse both have defined precise rules for which nan, but the x87 one is sane and commutative, the sse one isn't. I don't know why Intel changed the rules.
18:40:08 <ais523> maybe you made more than one proposal
18:40:42 <b_jonas> ais523: basically iirc the rule is that if both inputs are quiet nans, on x87 you get the one with the higher mantissa (I'm not sure what sign if they're of the same mantissa), and on sse you get the first operand.
18:41:16 <b_jonas> ais523: the rule could be changed again if the cpu added new instructions, but it takes like two decades till everyone actually starts to use those new instructions.
18:46:10 -!- earendel has joined.
18:47:37 -!- zadock has joined.
18:52:24 -!- earendel has quit (Ping timeout: 260 seconds).
18:54:04 <zzo38> Now that I have made a extension to ICCCM, who is it supposed to be send to?
18:59:21 -!- earendel has joined.
19:23:32 <zzo38> b_jonas: Did you misunderstand what I wrote about madness rule of Magic: the Gathering cards?
19:31:06 -!- hppavilion[1] has joined.
19:41:33 -!- hppavilion[1] has quit (Ping timeout: 240 seconds).
19:43:16 -!- zadock has quit (Quit: Leaving).
19:45:56 -!- AnotherTest has joined.
19:52:39 <b_jonas> zzo38: probably, I don't understand what your proposed rule was
19:52:57 -!- jaboja has joined.
19:53:14 <quintopia> did someone tell me something
19:53:27 <quintopia> i guess it wasn't important
19:55:09 <zzo38> I was proposing nothing; I was mentioning what the current rule is and what an article from Wizards of the Coast claims they would be changing it to.
19:56:42 <zzo38> The current rule is that when you discard a card that has a madness ability, you may discard it to exile instead of to the graveyard (it is still discarded, but placed in a different zone). Doing this puts a triggered ability on the stack. When it resolves, you must either cast that card for its madness cost, or put that card into your graveyard.
19:57:33 <zzo38> The change that they seem to be making is simply to make discarding to exile mandatory instead of optional (forcing it to trigger).
20:00:49 <zzo38> I believe that this can make many improvements for Magic: the Puzzling, such as that in some situations you may not be able to avoid giving your opponent priority during the cleanup step (or your opponent cannot avoid giving you priority during cleanup step) due to this, or a triggered ability forced to place on stack, or a card can more easily be exempted from Tormod's Crypt, etc
20:06:29 -!- hppavilion[1] has joined.
20:13:12 -!- earendel has quit (Read error: Connection reset by peer).
20:13:48 -!- earendel has joined.
20:14:23 -!- impomatic has quit (Ping timeout: 250 seconds).
20:14:54 -!- lambda-11235 has quit (Ping timeout: 244 seconds).
20:26:29 -!- J_Arcane has joined.
20:30:59 <b_jonas> wait wait
20:32:55 -!- nycs has quit (Quit: This computer has gone to sleep).
20:36:59 <APic> What?
20:39:50 <HackEgo> [wiki] [[Special:Log/newusers]] create * Staticsn0w * New user account
20:41:44 <zzo38> Wait of what? Elaborate.
20:42:52 <b_jonas> zzo38: I just found out that msc 2015 supports constexpr. now I'll have to look up what else is new in it.
20:44:14 <HackEgo> [wiki] [[!!!]] N https://esolangs.org/w/index.php?oldid=46545 * Staticsn0w * (+322) Created page with " == Features == !!! consists of some extra features compared to !!!Batch, like a space character (?+?) and a compiler that doesn't just compile to a batch file, it compiles to..."
20:45:19 <HackEgo> [wiki] [[!!!]] M https://esolangs.org/w/index.php?diff=46546&oldid=46545 * Staticsn0w * (+112) /* Features */
20:47:30 <HackEgo> [wiki] [[Language list]] https://esolangs.org/w/index.php?diff=46547&oldid=46501 * Staticsn0w * (+10) /* Non-alphabetic */
20:52:34 <HackEgo> [wiki] [[!!!]] https://esolangs.org/w/index.php?diff=46548&oldid=46546 * Staticsn0w * (+208) /* Features */
20:55:21 <HackEgo> [wiki] [[!!!]] https://esolangs.org/w/index.php?diff=46549&oldid=46548 * Staticsn0w * (-1) /* Hello world! */
20:55:58 <HackEgo> [wiki] [[!!!]] https://esolangs.org/w/index.php?diff=46550&oldid=46549 * Staticsn0w * (+5) /* Hello world! */
20:57:51 <HackEgo> [wiki] [[!!!]] https://esolangs.org/w/index.php?diff=46551&oldid=46550 * Staticsn0w * (+81) /* Features */
20:58:01 -!- `^_^v has joined.
20:58:28 <HackEgo> [wiki] [[!!!]] https://esolangs.org/w/index.php?diff=46552&oldid=46551 * Staticsn0w * (+5) /* Features */
21:00:06 <HackEgo> [wiki] [[!!!]] https://esolangs.org/w/index.php?diff=46553&oldid=46552 * Staticsn0w * (+1) /* Features */
21:03:09 <HackEgo> [wiki] [[!!!Batch]] https://esolangs.org/w/index.php?diff=46554&oldid=42305 * Staticsn0w * (+29)
21:08:51 -!- jaboja has quit (Ping timeout: 248 seconds).
21:12:12 <HackEgo> [wiki] [[Self-modifying Brainfuck]] M https://esolangs.org/w/index.php?diff=46555&oldid=44408 * Mbomb007 * (-13) The examples page on the creator's website are from 2006.
21:16:40 <HackEgo> [wiki] [[Self-modifying Brainfuck]] https://esolangs.org/w/index.php?diff=46556&oldid=46555 * Mbomb007 * (+21) Brian & Chuck is similar. Quiney is not.
21:16:58 <HackEgo> [wiki] [[Self-modifying Brainfuck]] https://esolangs.org/w/index.php?diff=46557&oldid=46556 * Mbomb007 * (+7)
21:21:39 -!- earendel has quit (Ping timeout: 276 seconds).
21:23:31 -!- earendel has joined.
21:24:54 <J_Arcane> http://cyclopslang.org/
21:28:26 <HackEgo> [wiki] [[Brian & Chuck]] M https://esolangs.org/w/index.php?diff=46558&oldid=45122 * Mbomb007 * (+0)
21:28:35 -!- lleu has quit (Quit: That's what she said).
21:34:28 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
21:47:12 -!- hppavilion[1] has joined.
21:49:54 <HackEgo> [wiki] [[Self-modifying Brainfuck]] https://esolangs.org/w/index.php?diff=46559&oldid=46557 * Mbomb007 * (+1630) Added more documentation
21:51:55 <HackEgo> [wiki] [[Self-modifying Brainfuck]] https://esolangs.org/w/index.php?diff=46560&oldid=46559 * Mbomb007 * (+91) added link to another interpreter
22:00:03 -!- p34k has quit.
22:05:44 -!- Lord_of_Life has quit (Excess Flood).
22:06:07 -!- Lord_of_Life has joined.
22:18:19 -!- `^_^v has quit (Ping timeout: 250 seconds).
22:29:12 -!- AnotherTest has quit (Quit: ZNC - http://znc.in).
22:31:35 <ais523> hey, weird question that might be perfect on #esoteric
22:31:48 <ais523> anyone have ideas for how to get hold of the relocation table of a Windows DLL while running on Linux?
22:32:36 <zzo38> Did you try 7-Zip? I don't know if that helps at all, although I know it can do something with Windows executable files (I am not quite sure what though)
22:32:39 <b_jonas> ais523: um, objdump from gnu binutils, recent enough version of?
22:32:56 <b_jonas> ais523: you have a copy of the dll, right?
22:33:43 <ais523> b_jonas: yes, just objdump can't parse it
22:33:50 <ais523> "File format not recognised"
22:34:06 <b_jonas> ais523: is it an x86_32 or x86_64 dll? and is your binutils not too old?
22:34:20 <ais523> _32
22:34:30 <ais523> it's distro binutils for the current version of Ubuntu
22:34:30 <b_jonas> hmm...
22:34:47 <ais523> really we're trying to settle a question about what sort of relocations Windows DLLs have in general
22:35:27 <b_jonas> ais523: dunno, last time I tried to figure out how to decide whether a windows x86_64 file is a dll or an exe, if you only have its content, not the correct name. I couldn't find a way.
22:35:50 <b_jonas> ais523: as in, I don't see anything in the objdump output that distinguishes between those two cases.
22:35:57 <zzo38> When opening DLL with 7-Zip I get a ".reloc" section, although I am not sure what its format is, or if it is what you need
22:36:15 <ais523> zzo38: it looks promising
22:36:17 <b_jonas> ais523: but it's strange if objdump doesn't parse the dll
22:36:37 <b_jonas> so far I only tried to parse windows dlls with objdump on windows
22:36:45 <b_jonas> and I'm not sure if I tried to parse x86_32 dlls at all
22:37:06 <b_jonas> it may make a difference because I think they might be using different top-level formats (I'm not sure)
22:38:49 -!- ^v has quit (Ping timeout: 252 seconds).
22:41:02 -!- ^v has joined.
22:50:25 -!- lynn has quit (Ping timeout: 240 seconds).
22:55:17 <fizzie> My "i686-w64-mingw32-objdump" parses a random x86_32 DLL just fine.
22:55:55 <fizzie> Well, I assume it's "fine", I have no wayof telling. It doesn't complain, and there's lots of information in the -x output.
22:56:06 <ais523> right, just tried
22:56:15 <ais523> -R fails but -x gives some relocations, which is what I was looking for
22:56:23 <ais523> I don't understand the format, but that's OK
22:56:33 <ais523> I was asking for someone else, and they found Microsoft's docs on the subject
22:56:39 <ais523> they are apparently writing their own dynamic loader (?)
22:56:47 <fizzie> I think it's kind of weird that one of these relocation entries is of type "MIPS_JMPADDR16".
22:57:09 -!- Sandra has joined.
22:57:36 <fizzie> Most of them are ABSOLUTE or HIGHLOW, but then there's that one and a "HIGH3ADJ".
22:57:46 <Sandra> Hola
22:58:11 <Sandra> yo hablo español
22:58:26 <zzo38> I don't know Spanish speeching/writing so well, sorry
22:58:50 <Sandra> hello how are you?
22:59:03 <Sandra> I speak spanih and you?
22:59:05 <b_jonas> ais523: great
22:59:15 <b_jonas> also wtf
22:59:24 <b_jonas> writing their own dynamic loader? are they a libc implementor?
22:59:27 <Sandra> b_jonas: hello o hola
22:59:37 <b_jonas> and for x86_32 too...
22:59:39 <b_jonas> crazy
22:59:47 <zzo38> I am fine but did you read the instruction of this IRC channel? Some people go on by mistake by seeming to think it is the Spanish IRC, even though it is not
22:59:52 <Sandra> b_jonas: I speak spanish and you?
22:59:59 <ais523> `? bienvenudo Sandra
23:00:08 <ais523> I think that's how you spell it?
23:00:10 <ais523> err
23:00:12 <ais523> `bienvenudo Sandra
23:00:17 <HackEgo> bienvenudo Sandra? ¯\(°​_o)/¯
23:00:19 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: bienvenudo: not found
23:00:26 <ais523> hmm
23:00:41 <ais523> what's the point in having a Spanish welcome command if you have to be Spanish to remember how to spell it
23:01:11 <ais523> `bienvenido Sandra
23:01:15 <HackEgo> Sandra: ¡Bienvenido al centro internacional para el diseño y despliegue de lenguajes de programación esotéricos! Por desgracia, la mayoría de nosotros no hablamos español. Para obtener más información, echa un vistazo a nuestro wiki: http://esolangs.org/. (Para el otro tipo de esoterismo, prueba #esoteric en EFnet o DALnet.)
23:01:19 <ais523> there we go
23:01:21 <ais523> (thanks Wiktionary)
23:01:33 <shachaf> I'm not Spanish and I remember how to spell it.
23:01:44 <b_jonas> ais523: try `? welcome.es
23:01:55 <b_jonas> ais523: that doesn't add the nick but it gives the message
23:02:07 <shachaf> Learning spelling in English is just memorization anyway.
23:03:34 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
23:04:03 -!- Sandra has quit (Ping timeout: 246 seconds).
23:05:27 <ais523> that's an interesting rDNS
23:05:36 <ais523> is that the default rDNS you get if there isn't another one available?
23:08:45 <HackEgo> [wiki] [[!!!]] https://esolangs.org/w/index.php?diff=46561&oldid=46553 * Staticsn0w * (+65) /* Features */
23:09:51 -!- oerjan has joined.
23:12:34 <oerjan> @messages-
23:12:34 <lambdabot> fizzie said 6h 27m 55s ago: And, what, retry until everything's balanced?
23:12:48 <oerjan> fizzie: obviously hth
23:13:56 <oerjan> how does the perl version work, anyway? how does it prevent you ending up in a cul-de-sac of the FSA with no )s in
23:16:36 <oerjan> oh and what if the corpus has unbalanced ()s
23:16:45 -!- Sandra has joined.
23:17:03 <oerjan> if it doesn't, then i can see how you might keep track of which states allow rebalancing, and avoid cul-de-sacs
23:19:01 <HackEgo> [wiki] [[!!!]] https://esolangs.org/w/index.php?diff=46562&oldid=46561 * Staticsn0w * (+63)
23:19:08 <oerjan> basically, for each state calculate the maximal number of )s that can follow (possibly infinite)
23:19:37 <HackEgo> [wiki] [[!!!]] https://esolangs.org/w/index.php?diff=46563&oldid=46562 * Staticsn0w * (+10) /* Filetypes */
23:21:28 <oerjan> now if you wanted to balance several sorts of brackets, nested...
23:24:24 <oerjan> you'd end up with a PDA. i think it would involve... what's the name...
23:25:45 -!- Sandra has left.
23:28:07 -!- Sandra has joined.
23:36:52 <oerjan> the best i can find is left/right quotient, which seems not quite right.
23:38:58 <oerjan> or wait, maybe it _is_ right quotient if you ...dammit, now i've forgotten _that_ word too
23:39:44 -!- Sandra has quit (Excess Flood).
23:40:02 <oerjan> no wait, left.
23:40:33 -!- hppavilion[1] has joined.
23:40:36 <HackEgo> [wiki] [[!!!]] https://esolangs.org/w/index.php?diff=46564&oldid=46563 * Staticsn0w * (-207) /* Hello world! */
23:41:03 <HackEgo> [wiki] [[!!!]] https://esolangs.org/w/index.php?diff=46565&oldid=46564 * Staticsn0w * (-6) /* Filetypes */
23:41:13 <oerjan> i suppose this is a special case of intersecting a context-free language with a regular one.
23:42:31 <oerjan> @tell fizzie see monologue started 15 mins after you idled hth
23:42:31 <lambdabot> Consider it noted.
23:44:38 <oerjan> @tell Taneb <Taneb> AlphaGo (Google's Go AI) is taking on the world champion starting tomorrow <-- today's iwc annotation seems relevant.
23:44:39 <lambdabot> Consider it noted.
23:45:07 <shachaf> oerjan: do you mean alphabet's go ai hth
23:45:14 -!- boily has joined.
23:45:14 <shachaf> shachaf: do you mean Taneb hth
23:48:33 <boily> hellochaf. do you mean Taneb Taneb hth?
23:51:28 -!- Phantom_Hoover has joined.
23:54:42 -!- vanila has joined.
23:54:44 <vanila> http://cyclopslang.org/
23:59:41 <Yurume> the final score for Lee Sedol v. AlphaGo would be 1-0, AlphaGo pisses off after the first loss and will go destroy everything
23:59:57 <int-e> plausible
2016-03-09
00:00:09 <fizzie> oerjan: It's much dumber than that.
00:00:15 -!- spiette has quit (Ping timeout: 276 seconds).
00:01:02 <fizzie> oerjan: It just maintains a stack of open punctuation, skips (or filters out, I forget what) if the model tries to generate any closing punctuation that doesn't match, and forcibly closes anything that was left open at the end.
00:04:16 <oerjan> OKAY
00:05:04 <int-e> so let's see, the first game starts in 4 hours?
00:05:15 <ais523> Yurume: I don't think it's capable of communicating in anything but go boards
00:05:31 <ais523> destroying everything with just go moves would be difficult, if potentially not completely impossible
00:05:43 <hppavilion[1]> Whoo!
00:05:54 <hppavilion[1]> Just found out my TeX distribution came with Metafont!
00:05:54 <int-e> And time controls are 2h + 3x1min byo-yomi... serious.
00:06:30 <int-e> I never met-a-font...
00:06:31 <oerjan> ais523: sounds like a question for yudkowsky
00:06:32 <ais523> wait, how does that time control work?
00:06:42 <Yurume> ais523 : no problem, afaik it HAS to communicate with an amateur (6d iirc) go player, so AlphaGo may convince him to make a broader contact
00:07:11 <Yurume> 1min per (half) move? not sure
00:08:03 <oerjan> Yurume: hey your nick implies you might secretly be yudkowsky
00:08:09 <int-e> well, basically you have 3 minutes and after each (half) move the timer is rounded up to full minutes again
00:08:11 <Yurume> hahahaha
00:08:34 <Yurume> oerjan : I did enjoy Crystal Society
00:08:44 <oerjan> hm have i read that
00:08:49 <ais523> int-e: oh, so once the 2h runs out you have 1 minute per move, + 2 more minutes at any time you like
00:08:54 -!- Lord_of_Life has quit (Quit: EliteBNC free bnc service - http://elitebnc.org - be a part of the Elite!).
00:08:57 <ais523> that's an interesting way to do a time control
00:08:58 <int-e> but they announce that a player has 3 (or 2, or 1) byo-yomi periods left.
00:09:08 <vanila> look at this new language
00:09:23 <oerjan> hm obviously not
00:09:24 <ais523> vanila: oh, I ignore links unless someone gives me a good reason to follow them, and sometimes even then
00:10:05 <vanila> i could take a screenshot of the page
00:10:12 <vanila> and post it directly to the chat
00:10:18 <vanila> would thah help
00:10:58 <ais523> I looked at the page
00:11:05 <ais523> but decided not to care about it much
00:11:22 <ais523> it's basically just a non-English language that picks a particularly obscure language for encoding its keywords, isn't it?
00:11:27 <ais523> the semantics aren't special
00:11:34 <ais523> so it's in the same category as LOLCODE really
00:12:07 -!- Lord_of_Life has joined.
00:13:19 <quintopia> whats the word on the game?
00:13:32 <oerjan> vanila: i'm sorry i cannot take this seriously as long as it doesn't have a linear type system hth
00:13:37 -!- lambda-11235 has joined.
00:13:55 <vanila> good idea!
00:13:59 <ais523> oerjan: hmm, you seem to be following the ais523 system of esolang design, except with more puns
00:14:39 <oerjan> heh
00:15:30 <quintopia> linear type system means... how do types compose?
00:16:06 <oerjan> quintopia: it means a type system curry-howard equivalent to linear logic hth
00:16:10 <oerjan> ask shachaf for details
00:16:26 <ais523> quintopia: typically, a linear type system is one in which you have to use each lambda binding exactly once
00:16:38 <vanila> linear logic is pretty cool
00:16:56 <ais523> this normally involves calling helper functions just to copy and/or delete data
00:17:10 <ais523> (if your data is of an ADT, you can typically write functions to copy and delete it recursively)
00:17:22 <vanila> i don't know if anyone is really applying linear logic in programming well though?
00:17:36 <int-e> "well"?
00:17:50 <tswett> So I was thinking about linear logic.
00:17:56 <ais523> vanila: well, Verity (the language I work with in my day job) is affine
00:18:04 <vanila> oh cool!!!!!!
00:18:05 <int-e> Is Clean with their uniqueness types still a thing?
00:18:08 <vanila> i want to look into that
00:18:11 <ais523> or, well, not technically affine on the front-end; if your program isn't affine, though, the compiler will rewrite it so that it is
00:18:18 <ais523> producing a warning in the program
00:18:20 <vanila> that's very interesting!
00:18:26 <ais523> (affine is like linear, except that you can discard data if you want to)
00:18:45 <vanila> http://www.veritygos.org/language
00:19:15 <oerjan> isn't rust types also somewhat related
00:19:21 * oerjan doesn't actually know
00:19:30 <vanila> it uses some kind of region based thing
00:19:33 <tswett> And how you might extend it to involve Rust-like "borrowed reference" types.
00:19:38 <tswett> Yeah, Rust's typing system is affine.
00:19:40 <ais523> rust types have some affine-like behaviour but it's much more complex
00:21:12 <quintopia> ais523: sounds verbose/redundant. what are the advantages?
00:21:17 <tswett> So I guess the way it would work is something like this. If T is a type, and a is a symbol, then ref_a T is a type.
00:21:32 <vanila> you can have reference count type system
00:21:43 <vanila> maybe ?
00:21:48 <ais523> quintopia: in our case, the affine restriction is only on things that happen in parallel, this means that the language is provably race-free
00:22:01 <vanila> woww
00:22:03 <vanila> that's a nice idea
00:22:10 <tswett> And then, uh, what was it.
00:22:21 <ais523> (that said, we have shared-memory concurrence that introduces the races again, generating special variables with multiple sets of read/write ports; however you get a warning if that happens)
00:22:32 <quintopia> ais523: and what are the advantages of full linearity?
00:22:50 <vanila> Here is my understanding of it:
00:22:56 <vanila> * normal lambda calculus: Heap allocated data with GC
00:23:05 <ais523> quintopia: as opposed to being affine? I'm not sure of any offhand, which may be why people don't use it
00:23:11 <quintopia> ah
00:23:20 <vanila> * Linear lambda calculus: head allocated with statically known collection
00:23:25 <mad> what field of application is verity for?
00:23:29 <vanila> * Affine/substructural: Stack allocation
00:23:34 <vanila> you can mix them too
00:24:28 <ais523> mad: hardware design
00:24:43 <vanila> Wadler has shown that with basic linear type systems all your datat has a certain 'shape'
00:24:46 <ais523> the idea's that it makes it possible to design hardware in a language rather higher level than VHDL or Verilog
00:24:55 <vanila> a non-linaer 'heap' with linear trees from it
00:24:56 <ais523> meaning that hardware design should be much faster and cheaper
00:25:09 <mad> ais523 : ah... so basically it's trying to do the same thing as verilog but better? :D
00:25:30 <ais523> mad: it's like writing in algol rather than asm :-)
00:25:54 <ais523> (why algol? because it's about the right level of primitiveness for how far we've got with hardware, and because Verity is an Algol 60 derivative)
00:26:08 <mad> I'm not old enough for algol to have that much meaning to me but ok :D
00:27:24 <ais523> well, algol had basically died out by the time I was born
00:27:31 <ais523> but that doesn't mean that I couldn't learn it after the fact
00:27:52 <ais523> there are still working algol 60 compilers around (something that surprised my boss when I used one to gather benchmarks for a paper)
00:28:03 <tswett> Given T |- U, and ref_a U |- V, you can get T |- U ⊗ V, as long as T, U, and V don't contain ref_a. That sounds more or less right.
00:28:54 <tswett> Also, ref_a is... whatever you call that property where you can take one copy of it and get n copies of it for any natural number n.
00:29:03 <tswett> You can... contract and weaken it?
00:29:11 -!- Sprocklem has quit (Ping timeout: 250 seconds).
00:29:12 <ais523> linear logic calls it !
00:29:18 <ais523> Rust has a Copy trait that's similar
00:29:40 <tswett> That's an operator, not a property of terms.
00:29:42 <ais523> in Verity, the only things that are primitively copyable are integers, but the compiler will add extra copies of things in the source code if you might need to copy them
00:29:55 <ais523> tswett: ah right
00:30:13 <tswett> You could have a rule saying ref_a |- !ref_a.
00:31:04 <vanila> so linear logic isnt't useful for programming really
00:31:16 <vanila> that's why cyclone invented regions
00:31:18 <tswett> vanila: what makes you say that?
00:31:24 <vanila> i just explained why
00:31:25 <vanila> anyway
00:31:32 <vanila> it was weird that rust came out of nowhere
00:31:39 <vanila> instead of people just fixing the cyclone compiler
00:31:52 <int-e> `? nih
00:31:53 <ais523> I think they wanted to design a proper language from the ground up
00:32:00 <ais523> not just for the region inference but for all the other things too
00:32:02 <HackEgo> NIH was /not/ invented by Taneb.
00:32:17 <mad> Number of text encodings I've converted to/from in my code: 5
00:33:05 <mad> utf8, latin-1 (which really means windows codepage whatever), utf16, shift-jis, euc-jp
00:33:45 <mad> that number is 4 more than I would like :/
00:34:20 <vanila> mad what code
00:34:22 <zzo38> What program is it?
00:34:40 <mad> vanila : text-to-pronunciation
00:34:53 <vanila> ooh that's interesting!
00:34:53 <mad> for english, french, and now japanese
00:35:38 <myname> mad: you would like to convert between one encoding?
00:35:46 -!- Sprocklem has joined.
00:36:04 <zzo38> A separate program should be used for encoding instead I think
00:36:09 <ais523> myname: windows-1252 is the latin1ish one
00:36:36 <mad> yeah windows-1252 is "latin-1 in practice"
00:36:51 <tswett> I can explain how to convert between one encoding.
00:36:54 <tswett> Done.
00:37:06 <mad> zzo38 : user input comes in utf8
00:37:22 <mad> for french I turn it into utf16 to tokenize it
00:37:38 <mad> and because raw utf8 is inconvenient
00:37:44 -!- jgcruzh has joined.
00:37:52 <tswett> Are you writing in C or something?
00:38:20 <mad> the actual dictionary part recognizes latin-1 (aka windows-1252) and nothing else because that's what you need for french anyways
00:38:30 <vanila> this sounds mad
00:38:45 <tswett> Why not convert it to Windows-1252 to tokenize it?
00:38:45 <mad> and it does a binary search through the mass of data and I wouldn't want to have it do it in utf-8 data
00:39:05 <vanila> impressively complex program
00:40:09 <mad> tswett : mostly so that it can handle japanese input if it's present in the stream
00:40:17 <zzo38> UTF8<->UTF16 does not require character conversion tables, at least
00:40:32 <vanila> ais523, have you seen thot talk by conal elliot about using CCCs to compile stuff to hardware
00:40:37 <mad> yeah
00:40:45 <ais523> vanila: no
00:40:46 <mad> the latin-1 conversion is hardwired also
00:40:48 <ais523> also, "CCCs"?
00:41:05 <mad> it only takes latin-1 accent characters and oe ligatures
00:41:21 <ais523> ooh! does anyone know a good library for doing operations like wcwidth() that uses char32_t rather than wchar_t (which doesn't handle astral planes on Windows)?
00:41:27 <vanila> http://begriffs.com/posts/2015-06-28-haskell-to-hardware.html
00:41:30 <vanila> here's the video it,s really good
00:41:43 <ais523> oh, video :-(
00:41:50 <ais523> can we get something in text form?
00:41:53 <mad> ais523 : isn't it possible to do an std::string<int> or something like that?
00:41:57 <vanila> http://conal.net/blog/posts/haskell-to-hardware-via-cccs
00:41:58 <mad> I forget
00:42:14 <vanila> I don't think you can learn the things that are in the video from this text
00:42:19 <ais523> mad: would that have a wcwidth operation?
00:42:59 <ais523> vanila: oh, the Verity compiler can do lambda to hardware via CCC already
00:43:04 <vanila> I know
00:43:06 <ais523> only we use a game semantics translation
00:43:12 <vanila> thats why i brought this up
00:44:21 <mad> ais523 : what does wcwidth() use normally? utf16 char?
00:44:31 <ais523> it uses wchar_t
00:44:40 <mad> which... is 16bits right?
00:44:45 <ais523> it's implementation-defined
00:44:51 <mad> what
00:45:01 <ais523> and the interpretation of it is sometimes configurable at runtime via locale, too
00:45:07 <mad> ie another stupid thing that will break
00:45:12 <ais523> however, the most common choices are UTF-16 on Windows and UTF-32 on Linux
00:45:35 <mad> ANOTHER STUPID THING THAT WILL BREAK
00:45:38 <ais523> definitely
00:45:45 <ais523> I'm looking for something like this, except locked to UTF-32
00:45:49 <oerjan> C.A.R. Hoare on algol: "Here is a language so far ahead of its time that it was not only an improvement on its predecessors but also on nearly all its successors."
00:45:56 <ais523> and thus less fragile
00:46:02 <oerjan> (60)
00:46:10 <ais523> oerjan: when was that spoken?
00:46:11 <vanila> nice one
00:46:16 <mad> std::string<char32_t> in theory should work
00:46:42 <vanila> C.A.R. Hoare is good
00:46:48 <mad> but you will probably have to roll your own utf8<->utf16<->utf32 conversion
00:47:08 <mad> I think what most apps do is:
00:47:19 <mad> break if any non base plane character ever appears
00:47:24 <mad> the end
00:48:47 <zzo38> I wrote a program to write into a music file, the internal text (for titles and so on) in the music file is UTF-16, therefore I made my program to accept input in UTF-8 that is why (because UTF-8 is compatible with ASCII and UTF-16 is not)
00:48:53 <mad> seriously how do we end up with data types that change width between msvc and posix like that
00:48:55 <ais523> mad: this is the reasoning I used for not supporting astral plane in libuncursed 1 on Windows (on the basis that the programs we're communicating with wouldn't handle it either)
00:49:03 <ais523> but in libuncursed2 I'd like to do it correctly
00:49:29 <mad> windows have to support wchar_t due to how the api uses it
00:49:35 <mad> really grody
00:50:21 <ais523> yes, all the Windows Unicode APIs are wchar_t interpreted, IIRC, as UTF-16
00:50:22 <mad> at work we have a type called plgstring that's defined as std::wstring on win32 and std::string on IOS
00:50:30 <mad> and it's all over the place
00:50:38 <mad> because of exactly that
00:50:55 <zzo38> No you should need UTCE instead, much simpler and more consistent use of wcwidth() and so on is possible with it.
00:51:21 <ais523> what's UTCE?
00:51:45 <zzo38> It is http://zzo38computer.org/textfile/miscellaneous/utce
00:51:50 * ais523 looks
00:52:44 <mad> also, locales are horrible and should never be used
00:52:48 <ais523> zzo38: what I'm doing is indeed about terminals; however, that encoding does not seem to handle all of Unicode
00:53:01 <ais523> mad: for encoding, you mean? or in general?
00:53:12 <ais523> LC_MESSAGES appears to work pretty well at handling its intended function
00:53:36 <mad> I mean the C++ locale thing
00:53:36 <zzo38> That is true, UTCE does not (and is deliberately not supposed to) handle all of Unicode.
00:53:57 <vanila> does anyone know much about the occult
00:54:09 <ais523> zzo38: in my case, I don't want to output characters that the user's terminal might not be able to handle, but I do want to be able to echo anything that the user inputs
00:54:10 <oerjan> ais523: 1973, alas
00:54:10 <zzo38> I don't know much about it
00:54:17 <ais523> which could theoretically be any unicode character their computer supports
00:54:22 <ais523> oerjan: in that case, I would say Hoare is correct
00:54:26 -!- jgcruzh has quit (Ping timeout: 244 seconds).
00:54:31 <vanila> when would hoare be wrong?
00:54:33 <ais523> the "nearly" qualifier ensures that that is the case
00:54:46 <vanila> i can think of scheme
00:54:49 <zzo38> If UTCE encoding is used then you can very easily echo anything that the user inputs, including characters which are not in Unicode
00:54:50 <vanila> as being better than algol
00:54:55 <hppavilion[1]> @messages-lud
00:54:55 <lambdabot> oerjan said 9h 49m 36s ago: <hppavilion[1]> \oren\: Say, how do you prove associativity and commutativity? <-- there is no one method. sometimes you can just expand equations using things you already know. sometimes you can check all cases. sometimes you need a genuinely new trick.
00:54:55 <lambdabot> oerjan said 9h 48m 31s ago: generally you want to know as many tricks as possible that you can use, that goes for all math.
00:55:02 <vanila> and close enough for the comparison to make sense
00:55:09 <ais523> huh, I note that zzo38 found the same problem with G0/G1 in theory as I discovered in practice
00:57:10 <mad> zzo38 : what bank is Ý on?
00:57:43 <vanila> zzo38, can i hawve persmission to dowload all of your text files folder?
00:58:03 <hppavilion[1]> Ugh, suddenly gray.tfm is missing
01:01:48 <mad> the 3 different encodings for japanese is because the code for the lexical analyzer I'm adapting supports all 3
01:01:59 <mad> except it uses libiconv to convert
01:02:05 <mad> which is under lgpl
01:02:29 <hppavilion[1]> I wish METAFONT had more clear errors :,(
01:02:29 <mad> and since I don't want to lug around an extra DLL around I have to roll my own basically
01:02:39 <hppavilion[1]> It just tells me a file is missing, not where it expects it
01:03:02 <hppavilion[1]> So even if I make or obtain a new one, I have no clue where to put it
01:03:02 <mad> because you can't statically link against an LGPL lib
01:03:19 -!- XorSwap has joined.
01:03:29 <hppavilion[1]> zzo38: You've used METAFONT, correct?
01:05:20 <zzo38> hppavilion[1]: Yes I have used METAFONT
01:05:45 <hppavilion[1]> zzo38: Did you ever get an error where suddenly gray.tfm vanished?
01:05:51 <hppavilion[1]> zzo38: For no apparent reason?
01:05:53 <zzo38> No I have not
01:06:04 <hppavilion[1]> zzo38: Do you know where gray.tfm should be located at least?
01:06:15 <hppavilion[1]> Apparently not in fonts/tfm/public/misc
01:06:16 <vanila> i had a question zzo
01:06:26 <zzo38> vanila: You can, although I recommend only to copy the files you need, and to wait until the night time when I may be sleeping
01:06:35 <vanila> ill wait!
01:08:45 <hppavilion[1]> zzo38: Would you just recommend I reinstall MiKTeX completely?
01:08:50 <hppavilion[1]> zzo38: It seems like overkill
01:08:59 <mad> ais523 : I'm sorta designing a cpu in verilog these days, I guess it would be easier to do it in verity?
01:09:07 <hppavilion[1]> zzo38: But I really have no clue where to put gray.tfm
01:09:29 <izabera> install texlive rather than miktex...
01:09:30 <zzo38> hppavilion[1]: Perhaps look at the MiKTeX documentation?
01:09:35 <hppavilion[1]> zzo38: Perhpas
01:09:41 <ais523> mad: you're going to get more efficiency in verilog, just like asm is more efficient than most higher-levle languages
01:09:49 <ais523> also verity doesn't do pipelining yet (that's what I'm working on atm)
01:12:12 <zzo38> vanila: However, note that the files are there for being downloaded and that you are not prohibited from downloading them; I am just suggesting, probably you do not need all of them, and/or you probably should not load the server too much.
01:12:49 <vanila> yeah that's why I asked=
01:13:18 <mad> ais523 : I've seen a paper on bluespec verilog, where basically they use Queues between stages instead of registers
01:13:23 <mad> and I'm warming up to the idea
01:13:40 <mad> it makes stall handling more local
01:14:07 <ais523> mad: well a fixed-max-size queue is pretty easy to write in an HDL
01:14:14 <ais523> they tend to be specifically optimized by the compilers, too
01:14:17 <mad> yeah
01:14:17 <hppavilion[1]> zzo38: Can't find anything :/
01:14:21 <hppavilion[1]> Fuck you, knuth
01:14:24 <hppavilion[1]> Fuck you
01:14:40 <mad> I have a first-word-fallthrough queue for that yes
01:14:52 <hppavilion[1]> (Giant errors are intimidating, but at least tell you what's wrong)
01:15:06 <mad> I'll probably have to add some reset signal to the queue though
01:15:11 <mad> for branch prediction fails
01:15:18 <mad> and exceptions/interrupts
01:17:05 <hppavilion[1]> Fuck it, just reinstalling MiKTeX and hoping for the best
01:19:53 <izabera> is there any linux kernel hacker here?
01:20:20 <ais523> Subject:?spam? Live The trucker Life With A--Job - That Let's You - Get - Out,--and-drive
01:20:36 <ais523> izabera: not sure about hacker; I've inspected bits of the source before now but they're probably the wrong bits
01:20:50 <izabera> ok
01:21:08 <ais523> that spambot has a pretty unusual use of whitespace and hyphens
01:21:11 <ais523> also I can't drive
01:21:21 <izabera> why not?
01:21:36 <izabera> my grandma can
01:21:50 <izabera> anyway, i'm interested in the ptrace syscall for a thing and i think i found a bug
01:22:00 <mad> gotta play nice to get a license :/
01:22:20 <izabera> suppose process1 traces process2, and both are unprivileged
01:22:39 <izabera> then if root tries to trace process2, it can't
01:22:40 <ais523> izabera: I don't have enough concentration, it would be dangerous
01:23:01 <izabera> driving isn't dangerous
01:23:03 <izabera> come on
01:23:11 <izabera> nobody ever died driving
01:23:25 <ais523> driving without huge amounts of attention and awareness of your surroundings is dangerous
01:23:30 <ais523> I once managed to walk into a car :-(
01:23:36 <ais523> (luckily it was waiting in traffic at the time)
01:23:43 <ais523> even in retrospect I'm not entirely sure how
01:23:52 <izabera> you managed to walk into a car that wasn't even moving?
01:23:58 <ais523> yes
01:24:34 * izabera smells insurance fraud
01:24:50 <ais523> I didn't claim insurance on it! it was definitely my fault
01:24:54 <ais523> also the car was uninjured
01:24:59 <ais523> so it had no reason to claim insurance either
01:25:22 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
01:25:52 <izabera> i'd be pretty impressed if you managed to actually damage a car by walking into it
01:25:58 <izabera> what are you, a hulk?
01:30:06 <tswett> izabera: who says it's a bug that root can't trace process 2?
01:30:25 <izabera> i don't know
01:31:10 <izabera> i think it should, and that unprivileged processes shouldn't be able to prevent root from doing something
01:33:14 <izabera> doesn't it look like a bug?
01:33:25 <zzo38> "huh, I note that zzo38 found the same problem with G0/G1 in theory as I discovered in practice" is meaning what problem do you mean exactly?
01:36:00 <ais523> zzo38: that if you have a character set for G0 that can represent all the characters you used, then G1 is redundant, and thus often causes problems when people try to use it because it turns out not to be the character set they expected
01:36:56 <ais523> and (probably due to termcap) a lot of programs assume things about the contents of G1 without forcing those assumptions to be true
01:37:46 -!- vanila has quit (Quit: Leaving).
01:39:06 <oerjan> ais523: i have a driver's licence which i got when i was 18, but in my 30s i stopped feeling confident enough to drive, for much the same reason as you
01:40:06 * oerjan isn't even sure if the licence is still valid, he vaguely recalls reading somewhere that they might start expiring them.
01:40:43 <izabera> you sound old
01:41:40 <oerjan> 45
01:41:43 -!- mihow has joined.
01:41:55 <izabera> old
01:41:59 <izabera> sorry
01:42:07 <oerjan> OOOLLD *COUGH*
01:42:16 * oerjan waves cane at izabera
01:44:26 <oerjan> i suppose it didn't help that i only drove regularly in the brief year or so from i got the license until my dad's old car caught fire
01:46:03 -!- earendel2 has joined.
01:46:04 <oerjan> (the worst part of which wasn't the car itself - i got out quickly enough - but that my mother stormed out of the house just as the entrance filled with smoke, we couldn't get in again and the whole house had to be washed down)
01:47:07 -!- earendel2 has left.
01:47:08 -!- Alejandro15 has joined.
01:47:15 -!- earendel has quit (Ping timeout: 264 seconds).
01:47:18 <oerjan> because she left the door open
01:49:47 -!- Alejandro15 has left.
01:50:24 * oerjan resolves to drop funny anecdotes and stick to puns
01:50:38 -!- earendel has joined.
01:59:03 <quintopia> oerjan: actually i think thats the most enjoyable thing ive yet heard from you
01:59:52 <oerjan> <b_jonas> lua is a good choice, it's just that very few languages like this do determinism <-- some people are having a heap of trouble trying to get ghc to produce deterministic output to work better with nix-style management
02:00:22 <oerjan> quintopia: yay! i ... think?
02:00:32 -!- hppavilion[1] has quit (Ping timeout: 244 seconds).
02:02:36 -!- boily has quit (Quit: RETROSPECTIVE CHICKEN).
02:02:41 -!- lynn has joined.
02:06:31 <zzo38> Do you know what all of the atoms in the X server mean? I happen to have many atoms installed, many of which I do not know what they are for. There is one that says "ENLIGHTENMENT_DESKTOP" even though I do not use Enlightenment, there is stuff starting with "_NET_SYSTEM_TRAY" even though I do not use a system tray, as well as "IM_PROTOCOLS" and "IM_REMOTE_COMMAND" and various others. There is also "Editres" which has been added recently and I don'
02:08:01 <oerjan> <quintopia> did someone tell me something <-- I DON'T KNOW
02:10:01 <izabera> linux kernel is the best code
02:10:17 <izabera> like, there's a function that calls write_unlock_irq()
02:10:27 <izabera> ok let's look it up, oh it's a macro
02:10:59 <izabera> it's only a wrapper around _raw_write_unlock_irq()
02:11:04 <izabera> ok let's look that up
02:11:29 <izabera> this is defined twice as a macro, and once as a function
02:11:56 <izabera> ok now i'm a bit lost, which one is my code calling
02:12:38 <izabera> a minute of guesswork later, ok it must be macro#2, ok let's look that up
02:12:50 <izabera> this is a macro that calls __raw_write_unlock_irq()
02:12:55 <izabera> -_-
02:13:13 <izabera> and finally this is a function that does something
02:13:26 <izabera> so i hate this code
02:13:51 -!- hppavilion[1] has joined.
02:14:02 <oerjan> <ais523> what's the point in having a Spanish welcome command if you have to be Spanish to remember how to spell it <-- you can do `? welcome.es in a pinch hth
02:31:31 -!- mihow has quit (Quit: mihow).
02:38:22 -!- mihow has joined.
02:43:54 <mad> hmm
02:48:10 <mad> got to the "register alias table" part of the cpu design and I'm worried it will have too many read/write ports
03:01:10 -!- lynn has quit (Ping timeout: 252 seconds).
03:03:04 -!- lleu has joined.
03:14:42 -!- XorSwap has quit (Quit: Leaving).
03:15:40 -!- mihow has quit (Quit: mihow).
03:36:48 -!- adu has joined.
03:42:15 <Sgeo__> AlphaGo match starting in 19 minutes: https://www.youtube.com/watch?v=vFr3K2DORc8
03:42:30 <pikhq> Woot.
03:45:03 <adu> hi all
03:45:50 <mad> the stream comments are like...
03:47:55 <Sgeo__> I hid chat
03:48:07 <pikhq> Smart.
03:49:15 <tswett> Ahh, everyone loves the neural net.
03:49:22 <tswett> 22:01:38: <HackEgo> ​~hackenv/bin/bash: sek ais523 \ strcc \ stories: \ \ bin/force \ the program \ xtw> \ side x \ path \ $1 \ cat \ chr \ import 0 \ every \ hackenv \ test \ drag (A fisher \ meops \ create \ format \ report \ complaints \ press \ run \ she \ cannot program \ wisdom/general \ loop \ fizzie \ was a programming language used to see it is not an application to the Unicode '.
03:49:55 <ais523> it has the ba kslash pattern right
03:50:00 <ais523> *backslash
03:50:12 <mad> I wonder what's the fourier transform of the ulam spiral
03:50:33 <tswett> It gets a lot of things right.
03:51:23 <tswett> Like, say, the names of the users in the channel.
03:51:34 <tswett> It pretty much never uses a nick that isn't a real one.
03:52:00 <ais523> are the timestamps neural net generated too?
03:52:36 <pikhq> I think that watching this stream is a condition of my employment contract or something.
03:53:03 <adu> mad: what's the square root of blue?
03:53:05 <tswett> ais523: yeah.
03:53:10 <tswett> It's reasonably bad at making timestamps.
03:53:35 <tswett> This version of the neural net makes up the minute and second components randomly every time, not paying any attention to the last timestamp.
03:53:42 <ais523> this is one of the more hyped up streams I've seen, multiple channels advertising it
03:53:54 <tswett> The hour tends to stay the same from one message to the next, but it frequently fluctuates.
03:53:58 <ais523> will there be good commentary? I know how to play Go but am really bad at it
03:54:06 <pikhq> I don't actually know. I hope so.
03:54:11 <pikhq> And likewise.
03:54:11 <tswett> It generates some interesting URLs. Y'all've seen the URLs it generates.
03:54:13 <tswett> 21:54:19: <ais523> see http://www.okairffimelohaspe.com/Zomisoserencridule/Jonus/rtfactbrlEIULer-tomicfopic_Page/newer
03:54:34 <tswett> Ah yes, okairffimelohaspe.com/Zomisoserencridule is one of my favorite websites.
03:55:01 <ais523> I'm afraid to click the link now
03:55:03 <tswett> It has some really great tomicfopic pages about rtfactbrlEIULer.
03:55:15 <ais523> also would I really recommend a website like that?
03:56:15 <tswett> I dunno.
03:56:30 <tswett> That's one of the more baroque URLs it's ever generated.
03:56:40 <tswett> Fun fact: it likes to use .html as a top-level domain.
03:56:47 <prooftechnique> TrueWhat stream are we watching?
03:57:05 <prooftechnique> *-True Apparently I was midsentence somewhere else
03:57:38 <pikhq> prooftechnique: https://www.youtube.com/watch?v=vFr3K2DORc8
03:57:42 <tswett> Oh yeah, it generates boily's quit messages, too.
03:57:43 <tswett> 22:05:11: -!- boily has quit (Quit: IAPICINN CHICKEN).
03:57:56 <tswett> Usually it puts an actual word there.
03:57:58 <ais523> tswett: have ICANN approved .html yet?
03:58:04 <tswett> I dunno.
03:58:25 <ais523> +
03:58:41 <prooftechnique> I have no idea how anyone keeps up with that chat :v
03:58:48 <pikhq> The answer is "you don't"
03:59:09 <prooftechnique> How's AlphaGo doing?
03:59:10 <tswett> By the way, speaking of neural nets...
03:59:11 <tswett> http://lexiconjure.tumblr.com/
03:59:19 <tswett> Example:
03:59:30 <tswett> "chrismatic, adj. [ECOLOGY] (of a plant or flower) having a christic crystal or deposit. late 19th century: from Greek khrisma ‘creeping shape’ + -IC."
03:59:38 <tswett> My favorite part is how it generates plausible etymologies!
03:59:53 <tswett> I'm pretty sure there's no such Greek word as "khrisma".
04:00:10 <tswett> But that sounds like a Greek word, and it sounds like the sort of Greek word that could have yielded "chrismatic".
04:00:25 <pikhq> Sure there is, it means "Krishna"
04:00:27 <prooftechnique> tswett: http://www.etymonline.com/index.php?term=chrism
04:00:28 <ais523> is "christic" a real word?
04:00:42 <prooftechnique> khrisma is an unguent, apparently
04:00:48 <tswett> Sure enough, there is such a Greek word as "khrisma".
04:01:14 <tswett> Wiktionary says "christic", lowercase, isn't a real word, but "Christic" means "of or relating to Christ".
04:01:20 <prooftechnique> There might even be a real plausible definition of chrismatic, knowing that :D
04:01:36 <tswett> Also from Greek, of course. "Khristos".
04:01:59 <tswett> Which is, unsurprisingly, related to "khrisma".
04:02:30 <prooftechnique> I could see chrismatic as meaning "characteristic of a chrismatory"
04:02:57 <tswett> I would imagine "christic" would mean something like "relating to ointment".
04:03:12 <ais523> hmm, looks like the stream has broken
04:03:29 <mad> no pic
04:03:31 <prooftechnique> Had to reload
04:03:32 <ais523> ah, there it is
04:03:37 <ais523> prooftechnique: nah, that's just coincidence
04:03:53 <ais523> it was broken for everyone
04:03:58 <tswett> There could be plants which exude an oily substance, and this substance could be dubbed "chrisma". Then the adjective form of that could be "christic", and the plants that exude that substance could be called "chrismatic".
04:04:08 <prooftechnique> True
04:05:00 <ais523> you'd think alphago would respond to an opening move faster
04:05:07 <ais523> there aren't that many opening moves played in top-level play
04:05:11 <ais523> so you could have answers to them precalculated
04:06:17 <tswett> I really like this definition: http://lexiconjure.tumblr.com/post/140628512630/roporation The net says that it's from the Latin verb "roporare".
04:07:22 <tswett> The etymology of "pupple" is given as "Middle English (in the sense ‘assembly, trick’): perhaps related to Old French poper ‘to pop’."
04:08:02 <ais523> hm, "roporation" seems to be similar to "anthropomorphization" or "personification", except that it reflects an actual person who just happens to be very similar to the personification of an event
04:09:35 <ais523> this is a concept that I don't think had a word before
04:09:49 <ais523> OTOH, I'm not sure it needs one
04:10:13 <prooftechnique> The Humanoid Typhoon?
04:11:16 <ais523> also, an "activity or event" is the thing that's represented
04:11:37 <tswett> "[count noun] a person or thing that is represented by a particular activity or event: the roporation of the South African people."
04:11:42 <ais523> and from the other definitions, I get the sense that it's representing a social movement or group
04:12:00 <ais523> like, there might be a roporation of communism, or of a political party
04:12:15 <tswett> You usually think of people representing movements and whatnot, not the other way around.
04:12:25 <tswett> Though, come to think of it...
04:12:48 <tswett> There certainly are activities and evntsthat represent people and things. Like... plays and perormances.
04:15:44 <oerjan> there are people representing movements, but there are also movements lenin the other way
04:17:08 <prooftechnique> When I first read about AlphaGo being a big deal, was it Fan Hui that was taken as not a big deal for having been beaten, or was it that Lee Sedol wasn't a power player despite being 9-dan?
04:17:24 <prooftechnique> I remember there being some kind of minimization of one matchup or the other
04:17:47 <pikhq> Fan Hui.
04:18:08 <pikhq> Lee Se-dol is generally regarded as being the top player.
04:18:30 <prooftechnique> Thanks
04:18:40 <pikhq> This is akin to Deep Blue v. Kasparov here.
04:19:06 <prooftechnique> That was the impression that I got when this match was talked about, yeah
04:19:27 <tswett> Kasparov, Deep Blue, 1996?
04:19:40 <tswett> You could never predict it, that it could see through you.
04:20:05 <ais523> well Deep Blue lost the first sequence against Kasparov
04:20:51 <pikhq> Fan Hui was a quite impressive win though; first time a computer Go program has beaten *any* professional Go player, period.
04:23:34 <prooftechnique> Is there a separate stream without these guys talking in the middle of my screen?
04:24:30 <ais523> I wonder if the same technique would work in Chess (good brute-forcer + neural net for position analysis)
04:30:28 <prooftechnique> ais523: https://chessprogramming.wikispaces.com/Brainless
04:30:31 <prooftechnique> Like that?
04:31:19 <mad> the commenter said chinese taipei
04:31:22 <pikhq> It probably would. IIRC this technique was applied for some other things, like Atari 2600 games...
04:31:25 <pikhq> LOL.
04:31:28 <ais523> mad: and implied it was a different country from China
04:31:31 <ais523> may get in trouble for that
04:32:41 <tswett> "Chinese Taipei" is the international neutral appellation for it, isn't it?
04:32:45 <ais523> especially if representing Google
04:32:46 <prooftechnique> Good enough for the Olympics, good enough for go?
04:33:09 <mad> nobody calls it chinese taipei
04:33:11 <ais523> tswett: this is why you get "country or region" dropdowns on websites, installers, etc.
04:33:20 <tswett> Yup.
04:33:21 <ais523> nobody disputes the existence of Taiwan as a country or region :-)
04:33:26 <mad> except the olypics for stupid dipplomatic reasons
04:33:50 <tswett> Don't the Boy Scouts have a policy of calling it "Taiwan, Province of China"?
04:34:37 <ais523> I have no idea
04:34:46 <mad> ais523 : ehh
04:34:51 <prooftechnique> Duc A. Hoang: Independent Taiwan!!!!Independent Taiwan!!!!
04:36:01 <ais523> hmm, which country is it that #esoteric claims doesn't exist?
04:36:05 <ais523> I guess it might be like that
04:37:06 <pikhq> Bielfeld?
04:37:14 <tswett> Antarctica?
04:37:23 <tswett> `? antarctica
04:37:33 <HackEgo> antarctica? ¯\(°​_o)/¯
04:37:48 <tswett> `le/rn antarctica/There's no such country as Antarctica.
04:37:54 <HackEgo> Learned «antarctica»
04:37:55 <oerjan> ais523: canada hth
04:38:03 <oerjan> `? tswett
04:38:04 <HackEgo> tswett is livin' it up with the penguins. He's a title under the cruxite in the lathe.
04:38:17 <oerjan> i'm pretty sure tswett is just trying to hide his whereabouts
04:38:21 <tswett> I'm a what the fuck now?
04:38:27 <tswett> `culprits wisdom/tswett
04:38:29 -!- adu has quit (Quit: adu).
04:38:29 -!- treaki_ has joined.
04:38:33 <HackEgo> tswett oerjan oerjan elliott Taneb
04:38:44 <tswett> Hmmmm.
04:38:57 <tswett> So does that mean that the last person to edit it was... me?
04:41:24 <ais523> tswett: no, you were the first
04:41:31 <tswett> Ah.
04:41:33 -!- treaki__ has quit (Ping timeout: 240 seconds).
04:43:01 <oerjan> surely last
04:43:28 <oerjan> `url wisdom/tswett
04:43:30 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/file/tip/wisdom/tswett
04:44:14 <oerjan> tswett: yep, you were the last
04:45:18 <ais523> commentator predicts alphago's move just before it happens, it was that obvious :-)
04:45:25 <ais523> they just assumed it had already played it
04:45:40 <ais523> and lee sedol thought it would play it too and had his next move lined up
04:46:20 <tswett> So I'm the one who added the "he's a title under the cruxite in the lathe" part?
04:46:29 <pikhq> Least it made the reasonable move.
04:46:47 <tswett> What the heck does that mean?
04:47:26 <tswett> All right, I have a neural net which generates etymologies. It's currently terrible at it.
04:48:44 <tswett> Here's the etymology of "atifs" or "aeaniginate" or "bistion" or "blingle" or "chichenct" or "eitholinige" or "dissentic" (the neural net is really confused about this):
04:48:51 <ais523> well so far I've figured out that the size 2 black group in the middle is in danger of being captured
04:48:56 <ais523> alphago could force its capture with one more move
04:49:13 <ais523> ofc, not being a go professional, I'm not sure what the best way to protect it is or whether it's worth saving
04:49:47 <lifthrasiir> `wisdom lifthrasiir
04:49:47 <tswett> 1570s, from sord had spartict," from Old English hescentem, Ced- "and Englive (Cardonive te shongint of the bu-stend, the uanct, from -in, Mid-Englash contion usesily or tho onigh to from [a failed attempt at an HTML character entity] " It a counce dergal," a tond forme."
04:49:49 <HackEgo> lifthrasiir/lifthrasiir is shunned by the rest of his country for being no good at League of Legends.
04:50:06 <lifthrasiir> I should append "and Go" to this wisdom
04:50:58 <prooftechnique> Is that where wisdom lives, now?
04:51:03 <ais523> hmm, I made a valid tactical inference by myself!
04:51:06 * ais523 is proud
04:51:12 <ais523> prooftechnique: well it's not all that wise
04:52:34 <prooftechnique> I wonder how far out of sync this github repo is :|
04:53:15 <tswett> Come on, neural net! Come out with your second version!
04:53:56 <prooftechnique> I hope AlphaGo is watching the stream and smirking about the analysts
04:54:09 <prooftechnique> Or, like, engaging its smirk subroutine or whatever
04:57:04 <oerjan> did the stream break again
04:57:13 <prooftechnique> Not for me
04:58:08 <oerjan> bah it needed a reload
04:58:48 <lifthrasiir> prooftechnique: and the stream would be flooding with nonsense moves
04:59:00 <tswett> Dang it, the second version doesn't seem to be able to remember words either.
04:59:12 <prooftechnique> lifthrasiir: True
05:02:36 <prooftechnique> tswett: Second version of what?
05:02:44 <tswett> The neural net.
05:03:13 <prooftechnique> A particular one?
05:03:36 <tswett> Yeah, the one I'm training on Harper's OED.
05:03:42 <prooftechnique> Oh, neat
05:03:49 <tswett> (The Online Etymology Dictionary, etymonline.com.)
05:09:03 <tswett> In tonight's Democratic primary in Michigan, Clinton County is 56% for Sanders.
05:09:15 <tswett> She couldn't even win her own county.
05:09:43 -!- lynn has joined.
05:10:10 <tswett> (But she did win several other counties in Michigan.)
05:10:11 <prooftechnique> I guess we'll have to see how Sanders County, Montana shakes out
05:12:33 <prooftechnique> Ugh, it's not till June? America is the worst. :| I long for the day when we have a few weeks of campaigning, a week or two of voting, and then some results.
05:20:32 -!- earendel has quit (Read error: Connection reset by peer).
05:20:50 <ais523> do the Republicans have counties named after them?
05:22:37 <prooftechnique> There's a Santa Cruz County
05:24:48 <ais523> the past few moves have been hilarious
05:24:56 <ais523> they're both just making vertical lines down the board
05:27:30 <lifthrasiir> ais523: AlphaGo won in Gomoku
05:28:30 -!- earendel has joined.
05:29:00 <coppro> I want to go to bed
05:29:03 <coppro> but...
05:29:14 <coppro> is "I was watching the Go match" a valid reason to be late to work?
05:29:38 <ais523> depends on where you work
05:29:45 <ais523> you could watch it "as live" later, I guess
05:29:55 <coppro> yeah; tough though
05:30:06 <ais523> lifthrasiir: Gomoku strategy is pretty different, really
05:30:09 <pikhq> Is "I was watching the Go match" if it's your employers?
05:30:20 <pikhq> *employers'
05:30:23 <ais523> I've beaten Emacs at Gomoku on occasion
05:31:15 <lifthrasiir> ais523: yeah, but Gomoku-like long rows in a line occasionally appear in Go as well
05:31:27 <lifthrasiir> anyway, I'm not good at either
05:31:55 <ais523> it's more that, if someone starts making a line in Gomoku
05:31:57 <ais523> you have to block it
05:32:01 <lifthrasiir> yup
05:32:02 <ais523> in Go there's no real reason to do that
05:32:28 <lifthrasiir> in the current match we have two lines of six stones each :p
05:33:11 <coppro> That was quite the move
05:36:45 <ais523> which one? lee sedol's most recent?
05:37:21 <lifthrasiir> I've heard that the most recent move from AlphaGo was a quite mistake
05:37:25 <lifthrasiir> quite a*
05:40:33 <coppro> ais523: at the time, yes
05:40:54 <coppro> the play on the (3,6), making claim to all the territory between it and the wall
05:45:35 <prooftechnique> What a breathless compliment
05:47:06 <prooftechnique> When AlphaGo develops a drinking problem, this will all seem darkly prophetic
05:48:37 <ais523> according to the commentators it's a standard attack, and possibly even in alphago's database
05:49:44 <ais523> but yes, it's a big aggressive thing to do
05:49:51 <ais523> and the sort of thing you can do if given a spare move
05:52:05 <prooftechnique> Lee Se-dol is so quick
05:58:15 <ais523> ooh, that was unexpected
05:58:20 <ais523> (white move near top right corner)
05:59:30 <coppro> yeah, interesting
06:03:45 -!- J_Arcane_ has joined.
06:04:19 -!- J_Arcane has quit (Ping timeout: 252 seconds).
06:04:25 -!- J_Arcane_ has changed nick to J_Arcane.
06:20:54 -!- lambda-11235 has quit (Quit: Bye).
06:22:58 <hppavilion[1]> I would like to play a logarithmic growth game
06:24:03 -!- gde33|2 has quit (Ping timeout: 244 seconds).
06:38:00 -!- gniourf has quit (Ping timeout: 244 seconds).
06:40:50 <ais523> hmm, this is the sort of position I'd expect to see in a computer v human game
06:41:04 <ais523> the human looks to have an edge in each area, but it's not certain
06:41:18 <ais523> the computer may well know already that the result isn't as favourable as it looks
06:43:06 <zzo38> I expect that even some chess problemists might rarely or never play the game, but how common is it?
06:48:20 <ais523> there haven't been any captures yet
06:48:36 <ais523> mostly because actually capturing something is mostly pointless unless you're forced
06:48:49 <ais523> so the captures may wait until near or after the end of the game
06:52:26 -!- gniourf has joined.
06:53:23 -!- ^v has quit (Ping timeout: 248 seconds).
06:55:51 -!- ^v has joined.
06:56:29 <ais523> capture!
06:56:31 -!- AnotherTest has joined.
07:00:58 -!- AnotherTest has quit (Ping timeout: 252 seconds).
07:08:36 <b_jonas> “<ais523> ooh! does anyone know a good library for doing operations like wcwidth() that uses char32_t rather than wchar_t (which doesn't handle astral planes on Windows)?” => um, can you use libicu for that? you might not want that for uncursed since it's a big depencency you don't want to add to nethack, even if you only use its C interface though.
07:09:31 <ais523> ideally something small and permissively licensed (for NGPL compatibility)
07:10:10 <b_jonas> ais523: also, there's a small standalone wcwidth implementation with a built-in table somewhere in the urxvt source in the etc directory iirc, taken from somewhere else, but not currently used by it
07:11:41 <b_jonas> ais523: also, I'll check if the boost locale library (of which the name refers to localization in a broad sense, not in the unix/C sense of locale)
07:12:23 <hppavilion[1]> Um. http://cheezburger.com/78651649/video-brazzers-meme-porn?ref=kymhottoday
07:13:07 <prooftechnique> hppavilion[1]: Now what's what I call podracing
07:15:22 <prooftechnique> Sorry, "now *this* is podracing"
07:16:11 <b_jonas> “<ais523> do the Republicans have counties named after them? => sort of. lots of countries have full names ending in “Republic”.
07:17:22 <int-e> morning
07:17:39 <oerjan> int-e: morning
07:17:42 <shachaf> hint-e
07:18:14 <prooftechnique> So, who's winning?
07:18:17 <oerjan> int-e: we're all looking at https://www.youtube.com/watch?v=vFr3K2DORc8 hth
07:18:29 * int-e is looking at a relay on KGS
07:18:41 <oerjan> (also i'm looking at girl genius in the other tab)
07:19:43 <int-e> apparently pro players like Alphago's position
07:20:21 <b_jonas> ais523: all three are mentioned are permissively licensed. ICU is under a custom BSD-like license, see http://source.icu-project.org/repos/icu/icu/trunk/LICENSE
07:20:32 <oerjan> i hope it has time under control :/
07:20:38 <hppavilion[1]> b_jonas: Liberia
07:20:40 <b_jonas> ais523: boost is under a custom license that I think is mozilla-like
07:21:08 <b_jonas> but I think the boost locale library doesn't help probably
07:21:08 <hppavilion[1]> Oh! It's live!
07:21:21 <b_jonas> so let me check that small file distributed with urxvt
07:21:29 <int-e> it has a minute per move forever...
07:21:43 <int-e> time won't be an issue, I think, not for Alphago at least.
07:21:44 <prooftechnique> hppavilion[1]: Technically, only one of them is alive
07:22:05 <hppavilion[1]> prooftechnique is going to hell
07:22:37 <int-e> oerjan: if you're referring to girl genius, I'll get there in the evening...
07:22:42 <hppavilion[1]> Unfortunately, I don't understand Go xD
07:23:18 <b_jonas> ais523: http://cvs.schmorp.de/rxvt-unicode/doc/wcwidth.patch?revision=1.6 which says it comes from http://www.cl.cam.ac.uk/~mgk25/ucs/wcwidth.c
07:23:36 <prooftechnique> My boss apparently just heard about the singularity, and I wanted to ruin his working vacation with a basilisk, but then I wondered if it would be more vindictive not to mention it at all
07:23:43 <b_jonas> ais523: if you want something small, then look at this one.
07:24:18 <int-e> oh and I see comments by people who believe this is still the october version... "basically alphago is playing on infinite 13x13 boards" may no longer be true.
07:25:16 <b_jonas> ais523: as that code currently exists, it takes a wchar_t, but it's simple enough code that you can modify it to work on windows and take a different type
07:25:29 <int-e> (this is a theoretical bound that comes from one layer with 2 squares context and 11 layers with one square context in the convolutional network architecture they use... for both networks? I forgot what the architectural difference was.
07:25:46 <int-e> )
07:27:51 <int-e> But they had time and resources enough to retrain a deeper network, I think, if they thought it worth trying out.
07:31:48 <prooftechnique> If this were an anime, this would be the moment that Lee Se-dol determines a weakness in AlphaGo, and realizes that all he has to do is wait out the clock to confuse the neural net. This would be followed by dense internal monologues, and then a furious back and forth until the conclusion of the match.
07:33:04 <ais523> b_jonas: thanks
07:33:43 <ais523> so, anyone know what the score in that game would have been?
07:33:44 <int-e> lee resigned, apparently?
07:33:47 <ais523> int-e: yes
07:34:05 <ais523> played one of his opponent's stones, which everyone interpreted as resigning as you don't do that by mistake
07:34:19 <hppavilion[1]> prooftechnique: Which one is the one that's alive? I would guess Deep Mind
07:35:08 <prooftechnique> AlphaGo is British, apparently, so referring to it as "alive" may be a stretch
07:35:15 <int-e> I've seen estimates like W+3.5 floating by (professional player counting; people were relaying bits from various broadcasts)
07:39:39 <lifthrasiir> int-e: I've seen W+4.5, probably within an error bar
07:40:24 <ais523> apparently it was about 20 minutes from the end that the professionals realised that alphago had won
07:40:37 <ais523> so, behind on board, ahead by komi
07:40:40 <ais523> which is why it looked like it was losing
07:40:50 <ais523> it was, if you don't take the fact it went second into account
07:43:15 -!- oerjan has quit (Quit: and GOod night).
07:44:16 <int-e> hmm, something seems to have gone wrong in the opening, move 23 allowing white to cut off black's m14 stones perhaps? black had to struggle to settle those stones... there will be interesting game reviews later I'm sure.
07:44:52 <ais523> a komi win, it's hard to judge what went wrong
07:45:03 -!- J_Arcane has quit (Ping timeout: 240 seconds).
07:45:10 <ais523> because black didn't necessarily do anything to lose parity
07:45:15 <ais523> just they failed to gain
07:45:51 <int-e> the lead may have been larger... if this is like other monte carlo bots then it excels at playing safely (giving up a point here or there just to keep the game simple)
07:46:12 <ais523> well, it's specifically designed to aim for a win, not for winning by the maximum possible margin
07:46:16 <prooftechnique> Is the komi 6.5 or 7.5?
07:46:23 <int-e> anyway, I have no clue
07:46:27 <ais523> it'll prefer a 100% chance of a 0.5 point win than a 50% chance of a 10.5 point win
07:46:29 <ais523> prooftechnique: 7.5
07:46:34 <int-e> 7.5, area counting (chinese rules)
07:46:49 <ais523> technically 3.75 as area scoring values are half as large
07:47:05 <int-e> which for almost all final position has the same effect as 6.5 komi with area (japanese) counting.
07:48:23 <ais523> area scoring makes so much more sense for computer go, though
07:48:25 <ais523> because it's objective
07:48:32 <ais523> that's probably why they're using it
07:48:32 -!- tromp has quit (Remote host closed the connection).
07:48:47 <int-e> (exceptions include sekis with eyes and one-sided dame... I expect senseis.xmp.net has pages on those)
07:48:50 <b_jonas> For this go game, it's basically impossible to verify that Alphago isn't using human assistance, right?
07:49:12 <int-e> b_jonas: right
07:49:37 <ais523> b_jonas: game 2 of kasparov vs. deep blue was widely accused of having human interference
07:49:47 -!- bender|_ has joined.
07:49:49 <int-e> but why would Google/Deepmind take that risk?
07:49:53 <ais523> especially when it got a draw in a won endgame
07:50:46 <b_jonas> Did they at least try to collect the few hundred best Go players to the hotel or something to show that they in particular aren't assisting? That would be expensive.
07:51:17 <b_jonas> int-e: it's business, and it might be worth if they're confident that their computer player is so good that in a few years it will beat humans
07:51:26 <int-e> Apparently Ke Jie was on Korean TV, commenting on the game.
07:51:29 <b_jonas> int-e: so I dunno, I'm just asking
07:51:47 <ais523> also the player that Alphago lost to in the previous series is the referee of this one
07:51:59 <prooftechnique> I prefer the mechanical Turk hypothesis. They couldn't teach a computer to play go, so they just spent all their budget on training a world-class player to hide in a box
07:52:19 <ais523> but anyway, there are a ton of potential ways to cheat that would be hard to catch
07:52:30 <ais523> networking via injecting DC into the AC power outlets is a fun one
07:52:46 <b_jonas> prooftechnique: they don't even need to hide in a box. technology has improved past that stage. the player is at leisure at home messing with his computer.
07:52:55 <int-e> Fan Hui being referee would be odd to my mind; Fan Hui has been hired by deepmind...
07:52:58 <ais523> (it's unlikely anything would notice unless you specifically connected a DC multimeter to the socket, and you'd be unlikely to think of doing that)
07:53:17 <int-e> And he commented in the KGS broadcast during the game, so I bet he didn't referee.
07:53:20 <b_jonas> ais523: since it's running on a huge server park, they don't even need anything like that, because it's impossible to put that many servers in an isolated box that anyone can verify
07:53:32 <prooftechnique> Play the next round in a Faraday cage!
07:53:34 <ais523> int-e: hmm, must have misunderstood the commentators then
07:53:52 <prooftechnique> With a gas generator for AlphaGo
07:54:01 <b_jonas> prooftechnique: even that might not help
07:54:53 <ais523> visible light can get through a faraday cage
07:54:57 <ais523> you could use a laser for networking
07:55:01 <b_jonas> prooftechnique: both because there's no perfect enough faraday cage of the right size that covers all frequencies of EM you can communicate on (eg. would the go player have to sit in a dark room?), and because of non-EM stuff
07:55:02 <ais523> so can ultrasound
07:55:06 <b_jonas> yes, what ais523 says
07:55:49 <prooftechnique> Frankly, I think it'd be simpler to just get one of their robot cars to take out Lee Se-dol than go through all that
07:56:14 <ais523> prooftechnique: murdering your opponent wouldn't demonstrate that you had the better AI, though
07:56:15 <b_jonas> prooftechnique: um, defeating Lee Se-dol in particular isn't the point
07:56:17 <ais523> even if it made you win the series
07:56:40 <prooftechnique> ais523: Better go AI? Maybe not. Better murderbot AI? Checkmate.
07:56:41 <hppavilion[1]> Has game theory expanded to cover The Game (so sorry)? I've heard that it was created to not fall in line with game theroy
07:56:54 <ais523> which one?
07:57:20 <prooftechnique> b_jonas: No, but it does reshuffle the rankings a bit
07:57:40 <ais523> if you're talking about the mind game, its rules are incorrect, which kind-of implies that they're not rules (which you'd expect to be imperatives, rather than statements that have a truth value)
07:57:53 <hppavilion[1]> ais523: Ah?
07:57:55 <ais523> and it's also not a game in the sense that it involves no choices
07:58:06 <hppavilion[1]> ais523: The Game as in the one where thinking about it makes you lose
07:58:10 <ais523> right
07:58:34 <b_jonas> prooftechnique: sure, but it was demonstrated like several decades ago that machines have a big advantage over humans in the area of murdering squishy humans
07:58:47 <ais523> so that has three rules, which I'm not going to quote here because either you already know what they are, or else learning what they are will cause people to act in annoying ways towards you
07:58:49 <int-e> I wonder when (or whether) Google will reveal how much hardware they are using this time...
07:58:50 <prooftechnique> True
07:59:07 <b_jonas> like, basically at the point of usable automatic weapons at the latest
07:59:10 <int-e> Anyway, later.
07:59:12 <b_jonas> but possibly earlier
07:59:13 <ais523> rule 3 is the problematic one, in that it makes a statement that clearly isn't true (also attempts to apply itself to people who aren't playing the game)
07:59:25 <ais523> and rules 1 and 2 give you no choices
07:59:46 <ais523> both are of the form "when X happens, Y happens", with no choice in the matter
07:59:54 <ais523> also the game doesn't actually have a win condition
08:00:05 <ais523> so the whole thing is degenerate from the point of view of game theory
08:00:11 <ais523> you only have one move, and it only has one outcome
08:00:20 <ais523> game theory's about things like finding the optimal strategy
08:00:23 <ais523> but that's kind-of trivial here
08:00:35 <hppavilion[1]> ais523: "However, The Game may have been created in 1977 by members of the Cambridge University Science Fiction Society when attempting to create a game that did not fit in with game theory."
08:00:35 <int-e> is it one of those "the only way to win is not to play" deals?
08:00:42 <prooftechnique> ais523: Zero-sum game?
08:00:52 <prooftechnique> Assuming your utility function is "make other people lose"
08:00:53 <hppavilion[1]> int-e: Nope; there's a rule that you are necessarily playing it and you can't opt out
08:00:54 <ais523> int-e: sort-of; playing guarantees you lose, not playing is not considered a valid method of winning though
08:00:58 <int-e> but then not playing should be modeled as an option before applying the theory ;)
08:01:12 <ais523> rule 3 claims that everyone is playing it, which I can't see as anything other than a false statement
08:01:33 <int-e> only if I accept the rules... but then we're in legal territory now.
08:01:36 <hppavilion[1]> ais523: It's just defining the players as S_b
08:01:41 <ais523> prooftechnique: yes, people who are "actively" playing the game normally seek to make other people lose, as there's not much else you can do
08:01:50 <ais523> int-e: this is my argument too
08:01:53 <int-e> but I seriously need to go
08:02:04 <ais523> just because rule 3 claims to apply to nonplayers doesn't mean that it actually does
08:02:24 <hppavilion[1]> ais523: S_b = every sentient being in the multiverse
08:02:31 <hppavilion[1]> Just think of the beauty of that
08:02:35 <hppavilion[1]> No matter where you co
08:02:36 <hppavilion[1]> *go
08:02:51 <ais523> fun fact: if I make enough contradictory statements about rule 3, it'll cause enough uncertainty about the ruleset to cause the game to cease to exist
08:02:55 <hppavilion[1]> No matter how many start systems or galaxies or dimensions you cross
08:03:06 <hppavilion[1]> Any time you encounter a being capable of thought
08:03:09 <hppavilion[1]> They're playing the game
08:03:13 <ais523> as it's only defined by its rules, and if people disagree about what those are…
08:03:33 <ais523> incidentally, Wikipedia once had a version of rule 3 which is a trivially true, rather than trivially false, statement
08:03:38 <ais523> in an attempt to construct something that wasn't clearly absurd
08:03:41 <ais523> but the whole game just doesn't owrk
08:03:57 <hppavilion[1]> ais523: So they failed at making a game that didn't fit with game theory, not by making a game that falls under game theory, but by not making a game?
08:04:11 <ais523> hppavilion[1]: yes
08:05:00 <hppavilion[1]> ais523: Ah
08:05:10 <hppavilion[1]> ais523: Would formal game theory be a good basis for a Nomic?
08:05:17 <ais523> and when people actually treat it like a game, it's because they're following some sort of private ruleset
08:05:32 <ais523> that's different from the actual game
08:05:38 <ais523> most of those do fit into the system of game theory
08:06:47 <ais523> as for nomic, game theory is pretty bad at handling it; it theoretically works but a) as an obvious consequence of its nature, the models are too large to easily handle as (in extreme cases) they have to consider the entirety of the observable universe, and b) most strategies for nomic victory involve psychological/human factors, which require more information to model than is currently available
08:07:28 <ais523> e.g. it's clear that most of the time, many of the players in a nomic are not playing to its stated win condition, but rather to some personal utility function
08:07:59 <ais523> you can see the debates in Agora where people say that winning should be made more valuable to give people an incentive to win
08:08:11 <ais523> and my reply that winning is enough of an incentive to win, because isn't that what playing games is about?
08:08:42 <ais523> (that said, the reason why I consider winning in a nomic to be valuable and satisfying is because doing so normally requires some amount of skill and is designed to be nontrivial)
08:08:47 <ais523> @metar EGBB
08:08:48 <lambdabot> EGBB 090750Z 36018KT 5000 RA SCT007 BKN011 OVC017 04/04 Q0992
08:10:30 <ais523> and nomic's metawincondition normally ensures that if there are even a few people interested in being competitive, if winning is too easy, they will make it difficult by trying to change up the rules on you to make it harder as soon as they see what you're up to
08:11:30 <ais523> one of my win-arrangements in BlogNomic (i.e. someone else won but I was one of the main people causing the win to happen, which is the closest you can get to a team win in a single-winner game), the win condition was trivially easy to achieve, but there was a bunch of skill involved in preventing people changing the win condition on me for long enough to achieve it
08:12:21 <hppavilion[1]> ais523: Well, it'd be a stripped-down nomic with something to enable outside interaction
08:12:35 <ais523> hppavilion[1]: oh, I see
08:12:38 <ais523> the problem you're facing is
08:12:45 <ais523> game theory is designed for solving games
08:12:47 <ais523> not for creating them
08:12:48 <hppavilion[1]> ais523: That nomic is too big?
08:12:51 <hppavilion[1]> ais523: Ooooh
08:13:26 <hppavilion[1]> ais523: What I'm trying to get at is that you modify the internal representation of the game, including part of the game being programmed to do just that for you potentially
08:14:03 <ais523> I don't see what this has to do with game theory
08:14:06 <ais523> are you thinking of codenomics?
08:14:52 <hppavilion[1]> ais523: Yes, that's the goal
08:15:14 <hppavilion[1]> ais523: The idea is that the code describing the game is rooted in the models game theory uses
08:15:23 -!- earendel has quit (Read error: Connection reset by peer).
08:15:37 <ais523> hppavilion[1]: oh, I see
08:15:38 <hppavilion[1]> Like extensive form (but as a graph)
08:15:41 <ais523> such models are very unsuited for nomic
08:15:49 <ais523> as they're designed to be easy to analyse
08:15:51 <hppavilion[1]> ais523: Is there a better model?
08:15:53 <hppavilion[1]> xD
08:15:54 <ais523> and to contain every possibility
08:16:04 <hppavilion[1]> ais523: Should I stick with my Nomic LISP?
08:16:07 <ais523> nomics are interesting only if hard to analyse, and often most interesting when people use unexpected possibilities
08:17:18 <hppavilion[1]> ais523: So what would be a better representation?
08:18:11 <ais523> not sure
08:18:17 <ais523> I tried Prolog once, that was interesting
08:18:24 <ais523> maybe could have worked but more people would need to be involved
08:18:51 <hppavilion[1]> ais523: Is there any language family/paradigm you think would be well-suited?
08:19:05 <ais523> something that makes adding special cases retroactively easy
08:19:32 <hppavilion[1]> ais523: Perhaps
08:19:51 <hppavilion[1]> ais523: Maybe something based on pattern matching?
08:20:31 <ais523> that seems like it could work, actually
08:22:01 <hppavilion[1]> Yay!
08:24:18 -!- earendel has joined.
08:30:41 <izabera> about that ptrace problem, i found a way for any process to hide themselves from root
08:30:49 <izabera> https://arin.ga/JvvhHD/raw small example
08:31:03 <izabera> get the child's pid, then in another terminal run sudo strace -p thatpid
08:31:09 <izabera> $ sudo strace -p 14162
08:31:11 <izabera> strace: attach: ptrace(PTRACE_ATTACH, ...): Operation not permitted
08:31:24 <izabera> so unprivileged processes can prevent root from ptracing them
08:31:27 <ais523> izabera: can't you just ptrace the ptracer and get at it that way?
08:31:36 <izabera> yes you can
08:31:53 * ais523 wonders if it's possible for two processes to ptrace each other
08:32:02 -!- bender|_ has quit (Remote host closed the connection).
08:32:06 <izabera> what if you don't know who the tracer is?
08:32:56 <izabera> there's no way to get that information in userspace, afaics
08:33:43 <izabera> other than trying literally all the processes
08:35:30 <izabera> does this look like a serious problem?
08:37:19 <ais523> izabera: it shows up in /proc/status
08:37:34 <ais523> this is how I debugged the bizarre state Web of Lies got itself into once
08:37:48 <ais523> this was back when you couldn't sigkill programs that were being ptraced without the permission of the ptracer
08:37:55 <ais523> it had somehow managed to get the real init to ptrace it
08:37:59 <hppavilion[1]> I would like to see a evolutionary biologist explain Homo economicus
08:38:02 <izabera> what should i look for in /proc/status?
08:38:04 <ais523> in the end I had to reboot the system
08:38:11 <ais523> izabera: TracerPid, I believe
08:38:41 <izabera> ah thank you
08:38:45 <ais523> (Web of Lies uses a fake init that also has PID 1, it can get confusing sometimes)
08:38:45 <izabera> wasn't aware of this
08:38:49 <ais523> (but I'm pretty sure this was the real one)
08:39:11 * ais523 thinks "who will ptrace the ptracer?"
08:39:36 <izabera> who watches the watchmen? :P
08:42:10 <izabera> anyway all i can see by tracing the tracer is that it's waiting
08:42:37 <izabera> no info on what the tracee is doing
08:44:22 -!- earendel has quit (Read error: Connection reset by peer).
08:45:45 <ais523> you have to start injecting syscalls into the tracer
08:45:59 <ais523> to get it to do trace instructions on the tracee
08:46:09 <ais523> if you're using gdb, this would be along the lines of p ptrace(...)
08:46:25 -!- earendel has joined.
08:46:43 <izabera> i see
08:48:33 <izabera> two processes can ptrace each other
08:48:41 <izabera> even parent and child
08:48:46 <izabera> and you can't attach to either one
08:49:02 -!- tromp has joined.
08:53:54 -!- tromp has quit (Ping timeout: 276 seconds).
09:07:53 -!- pikhq has quit (Ping timeout: 250 seconds).
09:24:57 -!- earendel has quit (Ping timeout: 246 seconds).
09:30:51 -!- earendel has joined.
09:31:05 -!- atehwa has quit (Remote host closed the connection).
09:33:34 -!- ais523 has quit.
09:45:14 <b_jonas> izabera: about that stuff, back some years ago I asked a somewhat related question about linux (Linux has changed a bit since, which could give new answers).
09:46:31 -!- earendel has quit (Ping timeout: 252 seconds).
09:48:32 <b_jonas> Suppose you're the admin of a linux machine, so you have root access. There's a user on that linux machine who does not (currently) have root access. You want to ban that user, preferably without causing other harm. For this, you have banned the user from ssh, cgi scripts, cron, at, etc, so that he can't start new processes. But the user currently still has some processes running on the machine.
09:49:19 <b_jonas> The question is, how to kill the processes in such a way that after that you can be sure you have killed all processes? If you just read /proc or list processes in some other way, you might be missing newly forked processes by a race condition, so a malicious process could get lucky and hide itself.
09:50:25 <b_jonas> I'm asking for a solution that can verify for certain that all processes of the user have died. If they haven't died, you can try to kill them again and redo this, and in the unlikely worst case when they won't die, you can reboot the machine, but if the user doesn't have processes that malicously fork, you'd like to avoid that.
09:50:39 <b_jonas> So find a way to either atomically kill or atomically list all processes of the user.
09:50:48 <b_jonas> We found two or three solutions in the end.
09:51:39 <izabera> interesting, what are these?
09:51:53 <b_jonas> izabera: I'll tell later, try to find your own solution first.
09:52:14 <b_jonas> Maybe someone else on the channel wants to think about it too.
09:53:12 -!- lynn has quit (Read error: Connection timed out).
09:59:48 <izabera> something something fill the process table with sleeping processes, then list the processes and kill each one of those from that user and replace it with another one that sleeps
10:01:13 <izabera> untested <.<
10:02:02 <b_jonas> izabera: that could cause a problem in that it could harm processes of other users and even processes of root unnecessarily
10:02:19 <b_jonas> izabera: the whole point is that we want to avoid harming other processes in the likely case when the user isn't doing anything that serious
10:02:24 <izabera> yeah...
10:02:36 <b_jonas> izabera: if we're ok with harming the other processes, then we can reboot
10:02:51 <izabera> was just an idea
10:02:54 <b_jonas> sure
10:15:50 -!- Sgeo__ has quit (Read error: Connection reset by peer).
10:23:53 -!- bender| has joined.
10:30:11 <hppavilion[1]> I'm a bit tempted to make a JS incremental game about stealing souls
10:44:21 <int-e> Wouldn't it be more appropriate to do it in qbasic instead, and praise Microsoft while coding...
10:49:44 -!- tromp has joined.
10:54:21 -!- tromp has quit (Ping timeout: 248 seconds).
11:06:12 -!- Slice^ has joined.
11:06:37 <fizzie> Huh, AlphaGo won the first match? Weird.
11:06:55 -!- Slice^ has quit (Max SendQ exceeded).
11:07:24 -!- Slice^ has joined.
11:08:48 <Taneb> fizzie, I'm watching the game
11:11:38 <fizzie> Is the presentation exciting?
11:14:02 <fizzie> Apparently not.
11:14:18 <fizzie> I think they should at the very least have had some blinking lights in a box for AlphaGo.
11:15:09 <Taneb> They have a computer monitor and a man looking at it and playing the moves on an actual board
11:15:30 <fizzie> Yes.
11:15:35 <fizzie> I had a look.
11:15:47 <fizzie> That's so practical^Wboring.
11:17:48 <int-e> https://gogameguru.com/alphago-defeats-lee-sedol-game-1/ has a summary of the game... seems that at least it wasn't a one-sided affair.
11:20:15 <Taneb> I don't know much about Go
11:20:24 <Taneb> All I can say so far is that they're putting stones on a board
11:20:30 <int-e> :-P
11:20:42 <Taneb> They seem to both be doing that very well
11:21:21 <int-e> w's slave is a 5 dan amateur player... not too weak
11:21:31 <int-e> w=white player
11:24:33 -!- FreeFull has quit (Ping timeout: 240 seconds).
11:30:56 <int-e> what's up with all the "the match will start in 0 seconds" at the beginning of the game...
11:31:05 <int-e> (looking at https://www.youtube.com/watch?v=vFr3K2DORc8 )
11:31:16 <int-e> also stuttering audio... meh
11:31:34 <Taneb> int-e, that gets sorted out later
11:31:36 <Taneb> Much later
11:32:43 <int-e> yeah but now I'm interested in reactions to move 7 and 23
11:34:27 <int-e> But perhaps I'm hoping for too much, at least in the deepmind video, which is meant to make sense to people who know almost nothing about go...
11:35:45 <int-e> also irritated by the demonstration board... usually people leave out "I" and start numbering at the bottom :P
11:35:48 -!- boily has joined.
11:40:29 <Taneb> The commentators have missed a pair of moves and it's annoying me because they've not pu them on the demonstration board
11:42:50 -!- earendel has joined.
11:42:52 -!- vanila has joined.
11:42:53 <vanila> hi
11:42:57 <vanila> good momrinng
11:43:56 <Taneb> Hey, vanila
11:44:41 <vanila> hello :D
11:44:45 <vanila> im reading about logic programming
11:44:47 <vanila> whats up ?
11:45:35 <Taneb> We've been discussing Lee Sedol vs AlphaGo
11:46:22 <vanila> I should probably be interested in that
11:46:56 <vanila> I see a 4hr long video
11:47:02 <vanila> but im not even good at go
11:47:34 <Taneb> vanila, I'm 2 and a half hours in and I've played one game of Go in my life
11:47:37 <Taneb> Which I lost quite badly
11:47:44 <Taneb> And I've since forgotten how to play
11:47:51 <vanila> I like playing go
11:48:30 <vanila> i havent done that in ages though
11:48:44 <vanila> What I really wanted to do was make speech regonition interface to play ti
11:48:57 <vanila> but I couldn't find any good free software
11:50:34 -!- hppavilion[1] has quit (Ping timeout: 244 seconds).
11:50:49 -!- Slice^ has quit (Quit: Leaving).
11:50:54 <vanila> how is alphago different to zen?
11:51:04 <vanila> that stocastic 9d that was on KGS
11:53:33 <Taneb> It uses a combination of neural nets and tree search
11:56:55 <tswett> All right, my etymology neural net is clearly making an attempt at remembering words.
11:57:15 <Taneb> Oooh
11:57:22 <tswett> Problem is, it can't.
11:57:41 <tswett> It's probably too small. I'll have to use a larger one.
11:59:23 <tswett> Like, here, it starts out thinking that it's writing about the word "doll", then "dome", then "dome" again, then it changes to "domp", then back to "dome", then to "domt".
12:03:06 <tswett> Here, let me give you a randomly generated etymology.
12:04:03 -!- lynn has joined.
12:05:06 <tswett> Damp (n.) 1530s, "to shine, head," from French DARTE "a shine, concert, expert," from DIRTUS "dark, strength," from DIRTUS, past participle of DISTUS "strange, make, distinguish," from DIS "well" (see DISPHASE/TIMPERED). Meaning "to reckoner" is from 1808.
12:05:20 <tswett> There it says "see TIMPERED", but the link goes to DISPHASE instead.
12:05:55 <vanila> hehe
12:05:57 <vanila> this is fun
12:06:02 <vanila> can you post some more please?
12:08:43 <tswett> Here you go: https://jsfiddle.net/g06kujk6/
12:09:19 <tswett> There are bits of invalid HTML in there; I'm surprised that the whole thing renders in a reasonable manner.
12:10:03 -!- jaboja has joined.
12:10:15 <vanila> Related: Bullshed
12:10:18 <vanila> hahaha
12:11:28 <int-e> 1808 is remarkably precise
12:12:29 <tswett> I can make it give the etymology for any word!
12:12:38 <Taneb> tswett, try "jug"
12:12:47 <vanila> this is great :D
12:13:01 <tswett> Except that it's only been trained on words starting with A through E, so if you ask it for any other word, it'll almost certainly fail to remember it.
12:13:06 <tswett> How about... "bug"?
12:13:14 <Taneb> :)
12:14:27 <b_jonas> tswett: nice
12:14:51 <tswett> Etymology of "bug": "to dist, concert," from a- (1) "press with" + -phos "form" (see one). Sense of "stranger" is from 1520s. As a noun from 1889.
12:15:22 <tswett> Ask me again in a couple of days; I'll have a much better neural net then.
12:16:45 <lifthrasiir> tswett: wait, is it generated one? XD
12:17:22 <tswett> Yep, that's the generated etymology.
12:17:37 <lifthrasiir> I wondered why bug is associated with aphos, while assuming the possibility that it is actually an etymology for some foreign word translated to "bug"
12:17:57 <lifthrasiir> it is hilarious
12:18:01 <vanila> sense of a sense of a
12:18:14 <vanila> board (n.) Look up board at Dictionary.com
12:18:14 <vanila> 1580s, from beach (n.) + -ate (2). Meaning "sense of the sense of a concession of a criment" is from 1650s. Related: Estapoleted; escriptical.
12:18:14 <b_jonas> tswett: OEDILF http://www.oedilf.com/db/Lim.php has words with starts from Aa to Ga. A random word appears on the top level webpage, new one chosen every ten seconds or something. Take the next such word that starts with A to E and generate its etymology.
12:18:18 <vanila> this is the funniest
12:18:33 <tswett> b_jonas: all right.
12:18:45 <Taneb> lifthrasiir, could be going to "aphid"??
12:19:12 <lifthrasiir> Taneb: possibly!
12:19:23 -!- AnotherTest has joined.
12:19:51 <tswett> All right. Etymology of "beeve"...
12:20:55 <lifthrasiir> bullshit (n.) 1520s, from bull (n.) + -al (2). As an adjective, from 1836.
12:21:11 <lifthrasiir> a fun fact: "bullal" is a Korean word for testicle
12:21:26 <Taneb> lifthrasiir, bollocks
12:21:44 <tswett> 1520s, "to cause cloth," from BE- + FOUR (n.). Meaning "a sense, provered to the speak or head of an ancient person" is from 1610s. Related: BULLSHED; BULLISHED.
12:22:46 -!- boily has quit (Quit: VERIFIED CHICKEN).
12:24:23 <vanila> BULLSHED
12:25:17 <vanila> once the NN is more advanced you could make an index that defines every word in the jabberwocky poem
12:25:54 <tswett> Yeah!
12:27:01 -!- Lord_of_Life has quit (Ping timeout: 240 seconds).
12:27:01 -!- vyv has quit (Ping timeout: 240 seconds).
12:27:03 -!- mad has quit (Ping timeout: 240 seconds).
12:27:03 -!- MoALTz has quit (Ping timeout: 240 seconds).
12:27:03 -!- tromp_ has quit (Read error: Connection reset by peer).
12:27:13 -!- puckipedia has quit (Ping timeout: 240 seconds).
12:27:18 -!- tromp_ has joined.
12:27:41 <b_jonas> tswett: thanks
12:28:07 -!- MoALTz has joined.
12:28:11 -!- vyv has joined.
12:28:51 <b_jonas> I like the "Related: BULLSHED; BULLISHED" part. It looks like it makes sense for "beeve".
12:29:53 * vanila beeves
12:30:07 -!- Lord_of_Life has joined.
12:30:11 -!- puckipedia has joined.
12:31:39 -!- heroux has quit (Ping timeout: 276 seconds).
12:32:46 <int-e> "spinning rust array" is a neat way to discribe hard disk drives
12:36:44 <Taneb> int-e, I call them spinny disk drives
12:37:06 <Taneb> Mostly because I get the acronym for SSD wrong and it helps cover my tracks and gives people a laugh
12:40:53 -!- gde33 has joined.
12:42:38 <b_jonas> int-e: nice
12:43:00 <b_jonas> we can also call them rotating platter faraday cages, the same as microwave ovens
12:43:24 <b_jonas> you know, both have a metal casing that a user shouldn't open
12:43:40 <izabera> b_jonas: can you show your solution now? :p
12:45:20 <b_jonas> izabera: yes... ok, let me find the old mails
12:45:34 <izabera> thanks :3
12:48:20 <b_jonas> izabera: my solution is that linux has a counter that counts fork/clone calls, and you can read it from grep ^processes /proc/stat , so check this counter before and after you read the list of processes, and if it didn't change, then you couldn't have missed any process that still lives.
12:49:23 <izabera> and if it did?
12:50:55 <vanila> http://www.informatik.uni-kiel.de/~curry/listarchive/0017.html
12:51:03 <vanila> esolang version:
12:51:50 <vanila> 0. genuinely semantically interesting new esolangs 1. syntax replacements for other languages 2. brainfuck derivatives 3. brainfuck syntax replacements
12:52:11 <vanila> where each number there exists 2x more languages of that type
12:52:59 <b_jonas> izabera: alternate solution by pts is this: setreuid(0, target_uid); then drop the CAP_KILL capability; then kill(-1, SIGKILL); this should magically make kill(-1,) have permission only to kill the right processes, without giving the user permission to harm your process.
12:53:39 <izabera> nice!
12:53:49 <izabera> i'll test this
12:53:54 <b_jonas> no warranty
12:53:55 <b_jonas> for either
12:54:10 -!- heroux has joined.
12:54:51 <b_jonas> be very careful, you could either get a solution that has a race condition (but you can tell that only if you read the kernel source waist deep), or just kill all processes of your system
12:55:29 <b_jonas> and as always, it's pretty hard to prove that a particular race condition that depends on multi-cpu scheduling does or does not exist
12:55:43 <Taneb> Yay relaxed memory
12:56:08 <b_jonas> best add some sleep between the tests if you try to ptrace this admin kill process from a user process
13:01:36 -!- AnotherTest has quit (Ping timeout: 246 seconds).
13:06:45 -!- atehwa has joined.
13:09:18 -!- earendel has quit (Ping timeout: 268 seconds).
13:11:43 -!- Sgeo has joined.
13:20:11 -!- earendel has joined.
13:29:39 -!- jaboja has quit (Ping timeout: 268 seconds).
13:40:16 -!- earendel has quit (Ping timeout: 252 seconds).
13:50:30 -!- jaboja has joined.
13:59:42 -!- earendel has joined.
14:05:55 -!- lynn has quit (Read error: Connection reset by peer).
14:26:00 -!- lynn has joined.
14:28:40 -!- spiette has joined.
14:29:20 -!- `^_^v has joined.
14:30:50 -!- tromp has joined.
14:37:23 -!- p34k has joined.
14:38:27 -!- jaboja has quit (Ping timeout: 248 seconds).
14:42:11 -!- dingbat has quit (Quit: Connection closed for inactivity).
15:00:17 <prooftechnique> @ask ais523 Web of lies?
15:00:17 <lambdabot> Consider it noted.
15:07:37 -!- lambda-11235 has joined.
15:17:24 -!- AnotherTest has joined.
15:24:24 -!- FreeFull has joined.
15:25:52 <FreeFull> b_jonas: SIGSTOP all of the user's processes until you're sure all of them are stopped, and then SIGKILL them
15:26:25 <FreeFull> Hopefully no malicious processes will notice that their children/siblings got SIGSTOPped in time
15:27:39 <b_jonas> FreeFull: someone has suggested that, but I don't see how that would work, unless either you stop all processes on the system (not only the users').
15:28:06 <FreeFull> b_jonas: Why wouldn't just stopping the user's processes do?
15:28:11 <b_jonas> FreeFull: how do you make sure all processes are stopped, and why is that easier than making sure all processes were killed?
15:28:33 <b_jonas> FreeFull: I mean, you stop some processes, but how do you know there aren't more processes you missed because user processes are forking and exitting like crazy?
15:28:38 <FreeFull> You can have two processes that monitor each other, and start each other up again if either of them is killed
15:29:24 <FreeFull> b_jonas: I assume you'd notice the processes piling up then
15:29:25 <b_jonas> FreeFull: er yes, but you can also have two processes start each other up again if either of them is stopped, or just fork more processes if either of them is stopped, or just fork more processes no matter what all the time
15:29:47 <b_jonas> FreeFull: the processes are not only forking (like a fork bomb) but also exitting at the same rate,
15:30:05 <b_jonas> so there's always say about 20 malicious processes at any time, but it's always different ones
15:30:18 <b_jonas> they could keep forking and the parent exitting so that their pid changes
15:31:01 <FreeFull> b_jonas: Any snapshot of the currently running processes would see that there are processes by that user running
15:31:23 <b_jonas> FreeFull: but how do you get an atomic snapshot in first place?
15:31:46 <FreeFull> I don't think it matters if it's atomic. You can't exit until after you've forked
15:31:49 <b_jonas> FreeFull: in linux, you normally find out about processes by reading the /proc directory, then reading files (say /proc/*/stat ) under them to find out about them
15:32:53 <b_jonas> FreeFull: new malicious processes can get forked and their parent exit between the start and the end of your listing processes
15:33:43 <FreeFull> Yeah, you're right, they might have lower PIDs
15:34:00 <FreeFull> I'm not sure if /proc can get listed atomically, possibly not
15:34:54 <b_jonas> FreeFull: even if you can list it atomically (I don't know, you'd have to dive the kernel sources for how getdents works on it), you can't examine the /proc/*/stat files at the same time to tell which of the processes those are of that user.
15:35:10 <FreeFull> b_jonas: Just knowing that there are such malicious processes would be enough to take further steps
15:35:25 <FreeFull> And you'd know, because having processes disappear so quickly is unusual
15:35:27 <b_jonas> FreeFull: yes, but how do you even find that out? that's the point of the questoin
15:35:48 <b_jonas> FreeFull: ok, but can you give an algorithm to find this out that definitely works?
15:36:25 <FreeFull> I suspect there is some other, more robust method anyway
15:38:06 <FreeFull> b_jonas: A good starting point would be making all of the user's files unreadable
15:38:27 <b_jonas> FreeFull: how is that even relevant? and how would you even start to do that without first killing their processes which could create files?
15:38:28 <FreeFull> Although that won't help against fork, it will help against exec*
15:39:06 <FreeFull> b_jonas: I imagine making /tmp unreadable/unwritable to that user would be hard
15:39:23 <b_jonas> "<fizzie> I think they should at the very least have had some blinking lights in a box for AlphaGo." -- exactly
15:44:55 -!- lynn_ has joined.
15:46:15 -!- lynn__ has joined.
15:47:50 -!- lynn has quit (Ping timeout: 250 seconds).
15:49:13 -!- lynn_ has quit (Ping timeout: 240 seconds).
15:54:07 -!- lynn has joined.
15:56:33 -!- lynn__ has quit (Ping timeout: 240 seconds).
15:57:50 -!- bender| has quit (Ping timeout: 248 seconds).
16:01:22 -!- J_Arcane has joined.
16:04:12 -!- lynn has quit (Ping timeout: 276 seconds).
16:05:07 -!- lynn has joined.
16:11:50 -!- lynn has quit (Ping timeout: 268 seconds).
16:36:21 <vanila> Lee Se-dol said in the prior interview that "It will be a matter of me winning 5-0 or winning 4-1." Later, he took a little bit more defensive approach considering DeepMind(AlphaGo)'s learning ability, but still, it's a shocking victory for the AI.
16:36:21 <vanila> Lee lost the very first match. Still 4 matches to go, but just one defeat itself is enough to shock the Go community.
16:37:48 <b_jonas> vanila: yep. will be interesting and historical.
16:44:51 -!- lynn has joined.
16:51:34 <tswett> My neural net thinks there's a historical language called Middle Worse.
16:52:35 <prooftechnique> I imagine that's a dialect of Middle English centered in Worcestershire
16:58:04 <tswett> Here's a dump: https://jsfiddle.net/opo2rom0/
16:58:33 -!- lynn_ has joined.
17:00:00 <Melvar> tswett: Kinda looks like it started writing “Middle Welsh” and then switched to “Old Norse” after the W.
17:01:03 -!- lynn has quit (Ping timeout: 240 seconds).
17:03:52 <tswett> That would make sense.
17:04:04 -!- lynn has joined.
17:04:35 <tswett> Whoops, looks like I accidentally killed the training session instead of pausing it.
17:05:15 -!- lynn_ has quit (Ping timeout: 264 seconds).
17:52:00 -!- dingbat has joined.
17:52:33 -!- llue has joined.
17:52:33 -!- llue has quit (Changing host).
17:52:33 -!- llue has joined.
17:52:33 -!- llue has quit (Read error: Connection reset by peer).
17:52:49 -!- llue has joined.
17:52:59 -!- llue has quit (Changing host).
17:52:59 -!- llue has joined.
17:53:06 -!- lleu has quit (Read error: Connection reset by peer).
18:01:04 -!- hppavilion[1] has joined.
18:07:44 -!- hppavilion[1] has quit (Ping timeout: 244 seconds).
19:13:48 <shachaf> whoa whoa whoa, new game of life spaceship
19:13:51 <shachaf> https://twitter.com/McFunkypants/status/707584950216712192
19:15:06 <vanila> HOW
19:15:36 <zzo38> On my computer "XkbBell" makes sounds but "XBell" does not. Do you know how to fix this?
19:16:13 <shachaf> zzo38: Disconnect the speaker.
19:17:41 <zzo38> That will just remove all sounds, and I am not trying to remove all sounds. What I intend it to do is so that "XBell" result in same sound as "XkbBell"
19:18:39 <shachaf> "If a compatible keyboard extension isn't present in the X server, XkbBell calls XBell with the specified display and percent, and returns False. Otherwise, XkbBell calls XkbDeviceBell with the specified display, window, percent, and name, a device_spec of XkbUseCoreKbd, a bell_class of XkbDfltXIClass, and a bell_id of XkbDfltXIId, and returns True."
19:22:03 <vanila> this is amazing!!!!!!!!!!
19:23:29 <zzo38> shachaf: I could read that in the documentation on my computer already, but it does not answer my question at all.
19:23:58 <prooftechnique> shachaf: Wow, that's a neat one.
19:25:21 <vanila> "Congratulations, @zdr! New spaceship speeds don't come along every day, or even every year -- and most new speeds need a big awkward construction, not a tiny new Life form that fits inside a 6x12 bounding box. I bet a glider synthesis for the new c/10 will come along pretty quick."
19:25:23 <prooftechnique> I like how fast the thread turned into figuring out a name for it
19:25:43 <coppro> yeah, that new ship is quite the find
19:29:28 <vanila> http://www.conwaylife.com/wiki/Copperhead
19:29:37 <vanila> how can this have not been found!
19:31:58 <vanila> not only a new spaceship but a new speed
19:33:51 <vanila> "It appears that low-hanging fruit have been harvested clean during the 46 years of Life research… or, more precisely, it appeared so before zdr’s post."
19:40:18 <vanila> hey, that’s pretty good. Though, oblique spaceships have been observed in life, like the parallel hbk.
19:40:20 <vanila> what does he mean by this?
19:41:10 <vanila> oh it's not an elementary oblique spaceship
19:45:02 -!- jaboja has joined.
19:55:43 -!- J_Arcane has quit (Ping timeout: 244 seconds).
19:57:21 -!- J_Arcane has joined.
20:06:46 -!- jaboja64 has joined.
20:10:40 -!- jaboja has quit (Ping timeout: 264 seconds).
20:12:37 -!- vanila has quit (Quit: Leaving).
20:15:31 <izabera> http://blog.cmpxchg8b.com/2012/09/fun-with-constrained-programming.html
20:21:59 -!- copumpkin has quit (Remote host closed the connection).
20:22:47 -!- copumpkin has joined.
20:23:06 -!- copumpkin has quit (Client Quit).
20:23:46 -!- hppavilion[1] has joined.
20:23:47 -!- copumpkin has joined.
20:25:22 -!- contrapumpkin has joined.
20:26:39 -!- Phantom_Hoover has joined.
20:28:22 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
20:28:33 -!- copumpkin has quit (Ping timeout: 246 seconds).
20:29:45 -!- lambda-11235 has quit (Quit: Bye).
20:37:43 -!- sioux000 has joined.
20:44:48 -!- nycs has joined.
20:45:07 <izabera> https://www.youtube.com/watch?v=vFr3K2DORc8 GUYS
20:45:59 <izabera> wait where's the video
20:46:08 <izabera> there is no video
20:46:32 <izabera> i feel betrayed
20:46:57 -!- `^_^v has quit (Ping timeout: 276 seconds).
20:52:27 <int-e> ityw https://www.youtube.com/watch?v=vFr3K2DORc8
20:52:33 <int-e> hmm
20:52:39 <int-e> no, that's the same link
20:53:05 <int-e> so, that one worked for me earlier today, but I'm not patient enough
20:53:51 <sioux000> I HAVE A PROBLEM. TO ENTER IN A ROOM AS I LOOK ? I HAVE TO CHAT WITH FRIENDS OF WHICH I KNOW THE NAMES AND THE ROOMS . How do I access ?
20:54:03 <int-e> fungot: help
20:54:03 <fungot> int-e: from: dm date: wed, 9 dec 92 00:45:10 -0500 from:
20:54:09 <myname> wtf
20:54:10 <int-e> ^style
20:54:10 <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
20:54:20 <int-e> ^style irc
20:54:20 <fungot> Selected style: irc (IRC logs of freenode/#esoteric, freenode/#scheme and ircnet/#douglasadams)
20:54:29 <int-e> fungot: welcome our new friend sioux000
20:54:29 <fungot> int-e: was going right you couldn't turn away from the top" can be implemented easily.) silly me stepping in front. when the recursive call with the defaults and ( 1)
20:54:44 <myname> what style is ss?
20:55:54 <sioux000> THANK YOU. I'm trying to understand the functioning of pidgin:)
20:56:25 <myname> oh dear
20:57:06 <int-e> ^style ss
20:57:06 <fungot> Selected style: ss (Shakespeare's writings)
20:57:11 <int-e> oh.
20:57:16 <myname> aha
20:57:31 <myname> would've named it shakespeare, though
20:57:41 <myname> fungot: hello
20:57:42 <fungot> myname: william. a good morall my lord. troilus. well know they what they can give, to have't with saying good-morrow.
20:57:43 <int-e> fungot: Tell us about yorick
20:57:43 <fungot> int-e: scena quarta. no my good lord! a noble gentleman of rome, even like a stony image, cold and numme. ah now no more
20:57:56 <sioux000> pidgin is' safe? anonymous? It connects to the external server as tor ?
20:58:31 <myname> lol
20:58:58 <int-e> `? pidgin
20:59:19 <myname> that lag
20:59:22 <HackEgo> pidgin? ¯\(°​_o)/¯
20:59:26 <sioux000> yes
20:59:44 <sioux000> pidgin . i chat now with pidgin software
20:59:55 <myname> we can read
21:00:22 <myname> here is probably not the bestplace to learn how to irc with something that is as horrible for ircing as pidgin
21:00:25 <sioux000> yes becouse you use pidgin...or no?
21:02:29 <int-e> `learn pidgin is an esoteric chat client whose fundamental design principle is based on the pidgin hole principle: if n+1 messages are sent over n protocols than at least two messages are sent over the same protocol.
21:02:40 <HackEgo> Learned 'pidgin': pidgin is an esoteric chat client whose fundamental design principle is based on the pidgin hole principle: if n+1 messages are sent over n protocols than at least two messages are sent over the same protocol.
21:03:03 <int-e> `` sed -i 's/based on //' wisdom/pidgin
21:03:06 <HackEgo> No output.
21:03:31 -!- `^_^ has joined.
21:03:34 <int-e> (feel free to pidg in with something funnier)
21:04:34 <int-e> oh darn
21:04:57 -!- nycs has quit (Ping timeout: 246 seconds).
21:05:13 <int-e> `` sed -i 's/ than/, then/' wisdom/pidgin
21:05:16 <HackEgo> No output.
21:06:30 <int-e> `learn The pidgin hole principle states that if n+1 messages are sent over n protocols, then at least two messages are sent over the same protocol.
21:06:32 <HackEgo> Relearned 'pidgin': The pidgin hole principle states that if n+1 messages are sent over n protocols, then at least two messages are sent over the same protocol.
21:06:48 <int-e> (I think the rest was superfluous.)
21:07:26 <sioux000> :-/
21:12:17 <izabera> i have a map with bridges and some of them overlap
21:12:44 <izabera> how do i remove the minimum amount of bridges to make them non overlap?
21:14:42 <izabera> (i haven't started doing it yet)
21:14:54 <izabera> so my idea is to check the intersection points
21:15:21 * int-e would start with the "obvious" greedy algorithm
21:15:24 <izabera> find which bridge intersects most other bridges
21:15:26 <izabera> yea
21:15:44 <zzo38> Do you know if it is allowed for two different program both using Xlib to use the same Display pointer?
21:16:00 <izabera> int-e: not sure if it's optimal
21:16:01 <zzo38> (If loaded by dlopen or something like that)
21:16:13 <int-e> izabera: well it's not.
21:16:50 <izabera> can you show an example?
21:17:57 <int-e> http://int-e.eu/~bf3/tmp/brrr.png
21:18:22 <izabera> thanks
21:18:28 <int-e> hmm, oops, that still works, mompl
21:18:59 <int-e> updated
21:19:24 <izabera> thanks
21:21:36 -!- sioux000 has quit (Quit: Leaving.).
21:22:39 -!- lynn has quit (Read error: Connection reset by peer).
21:23:11 <int-e> It can be phrased naturally as a maximum independent set problem (with bridges as vertices and edges between crossing bridges)... so it may well be NP-hard, but as long as bridges are straight lines, this is not a proof.
21:40:51 -!- hppavilion[1] has joined.
21:52:38 <hppavilion[1]> Sgeo: In an environment where @ cannot be represented as the @ sign, what would be a good letter to replace it? (greek, english, or one of those with a diacritic)
21:52:55 <hppavilion[1]> (ONE diacritic, before you do what I know you're thinking)
21:54:22 <b_jonas> hppavilion[1]: one of É Á à Ó Ð Ž since those appear in the @ place in some of the national iso-646 character sets
21:54:37 <hppavilion[1]> Good idea
21:54:42 <hppavilion[1]> I'll go with à
21:55:30 <b_jonas> hppavilion[1]: do you have a context for what the @ that you want to replace stands for here? that might give a better choice
21:55:40 <prooftechnique> What about ∂?
21:55:57 <hppavilion[1]> b_jonas: Sgeo's @. The one which's absolute value is -1
21:56:07 <b_jonas> prooftechnique: is that a letter? wait, is it the derivative symbol or the crazy letter from very rare languages that looks like that?
21:56:08 -!- J_Arcane has quit (Ping timeout: 244 seconds).
21:56:25 <prooftechnique> Both
21:56:54 <b_jonas> hppavilion[1]: eg. if it stands for the player avatar in the text-based game map of a game, then É would make sense because it abbreviates "én"
21:57:27 <hppavilion[1]> b_jonas: Ah
21:57:37 <hppavilion[1]> b_jonas: I like à
22:01:32 <hppavilion[1]> b_jonas: I'm also adding ï, where |ï|=i
22:03:04 <b_jonas> I guess if it stood for the array sigil in perl, or the related symbol in bash used inside a bracket index to get all elements of an array variable, then you could use "Ö" as a mnemonic for "összes"
22:03:48 <b_jonas> And if it stood as an abbreviation of HEAD in git command line, then in theory you could use "É" but it would be best to just write "HEAD" in full instead of abbreviating it.
22:05:06 -!- mihow has joined.
22:06:04 <b_jonas> If it stands for a separator symbol in a git reference spec that refers to the previous commit in the history of a commit, or for a separator between a filename and peg revision number in subversion, then I'm not sure what letter would be the best.
22:08:58 <b_jonas> "T" would be approperiate, but it would easily clash with other stuff
22:24:16 <int-e> izabera: I'm pretty sure now your bridge problem is NP-hard by a reduction from planar 3SAT. lousy sketch of gadgets: http://int-e.eu/~bf3/tmp/br3s.png ... the literal will in general have 2n bridges arranged in a small 2n-gon, alternating between true and false; the idea is that exactly n of the bridges must be chosen (in the sketch, n=2). in the clause, the incoming edges come from literals;...
22:24:18 <shachaf> Is |ı| also i?
22:24:22 <int-e> ...the idea here is that exactly one additional bridge must be chosen, which is only possible if one of the incoming bridges wasn't chosen, i.e. the corresponding literal was true. so take a planar 3sat-problem, encode it that way (it's fine if some bridges from literals are not used in clause gadgets); add all the minimal bridge requirements and test whether the maximal number of bridges that...
22:24:27 -!- jaboja64 has quit (Ping timeout: 264 seconds).
22:24:28 <int-e> ...can be selected without remaining intersections matches that bound.
22:26:32 <b_jonas> heh heh, you're doing NP-completeness proofs now?
22:26:53 <int-e> hardness. it's an optimization problem after all.
22:27:32 <b_jonas> isn't that why it's in NP? optmization problems usually are, if you turn them to decision problems with the right comparator
22:28:00 <int-e> but those are different problems.
22:29:37 <int-e> The corresponding decision problem here that's NP-complete is checking whether you can select at least k non-crossing bridges.
22:32:05 <int-e> (my main reason to be picky is that I think of NP in terms of certificates; here, certificates of a lower bound is small (it's in NP); I have no clue how to produce a small certificate of optimality (at least naively, that's co-NP))
22:33:09 <int-e> if you only care about what you can do with an NP oracle (SAT solver ;-) ), then this distinction doesn't matter.
22:34:57 <b_jonas> int-e: yes, but you usually define the decision problem to ask whether the optimal solution is better or equal to an input number, because if you define it that way, it becomes NP.
22:35:03 <int-e> Anyway, is this really the first time I've done some complexity theoretic reduction on here? I don't know, but it seems a bit unlikely.
22:35:14 <b_jonas> int-e: asking whether the solution is optimal needn't be NP (it still is for some optimization problems of course)
22:35:31 <b_jonas> int-e: I have no idea if it's the first time
22:36:45 <int-e> in any case, I do like this stuff
22:51:24 -!- XorSwap has joined.
22:56:53 -!- AnotherTest has quit (Quit: ZNC - http://znc.in).
22:57:36 -!- spiette has quit (Ping timeout: 276 seconds).
22:57:47 -!- haavardp has quit (Read error: Connection reset by peer).
22:58:08 -!- oerjan has joined.
22:58:44 -!- MoALTz_ has joined.
22:58:47 -!- haavardp has joined.
23:01:11 -!- fungot has quit (Ping timeout: 250 seconds).
23:01:55 -!- MoALTz has quit (Ping timeout: 268 seconds).
23:04:01 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
23:04:47 -!- lambdabot has quit (Remote host closed the connection).
23:08:27 -!- lambda-11235 has joined.
23:09:13 -!- lambdabot has joined.
23:11:35 <Sgeo> Ah e left :/
23:11:52 <Sgeo> @ stands for an a with an i dot after it, so ai maybe?
23:12:33 <int-e> `? food
23:12:35 <Sgeo> So maybe a with an accent?
23:12:49 <HackEgo> food? ¯\(°​_o)/¯
23:13:02 <int-e> . o O ( would you like oerjanic food? )
23:13:45 -!- lambda-11235 has quit (Ping timeout: 250 seconds).
23:14:15 -!- lambda-11235 has joined.
23:16:46 -!- adu has joined.
23:17:13 -!- heroux has quit (Ping timeout: 250 seconds).
23:17:44 -!- adu has quit (Client Quit).
23:17:54 -!- `^_^ has quit (Quit: This computer has gone to sleep).
23:22:49 -!- heroux has joined.
23:41:27 -!- hppavilion[1] has joined.
23:47:07 <hppavilion[1]> If one wanted to implement a browser
23:47:14 <hppavilion[1]> What would be the steps one would take?
23:47:19 <hppavilion[1]> Not that I'm planning on doing that
23:47:22 <hppavilion[1]> That'd just be crazy
23:47:27 <\oren\> I got more sodium memory for my laptop
23:47:35 <oerjan> (1) get the support of a billion dollar company
23:48:00 <hppavilion[1]> oerjan: OK.
23:48:08 <hppavilion[1]> oerjan: Next?
23:48:38 <oerjan> (2) despair that implementing a browser is mostly about supporting old cruft
23:48:56 <oerjan> *meticulously supporting
23:50:55 <oerjan> (3) take the pills the nice people in white coats are handing you, also stop trying to get out of that jacket it'll just hurt more
23:51:50 <oerjan> (4) die miserable and alone
23:51:56 <oerjan> that about covers it hth
23:52:00 <hppavilion[1]> oerjan: OK
23:52:03 <hppavilion[1]> Good to know
23:52:39 <\oren\> goddamn windows update
23:52:58 <hppavilion[1]> \oren\: Would you rather be vulnerable to h4x0r5?
23:58:29 * oerjan fit the reboot in while he was brushing the teeth earlier
23:59:11 <oerjan> i guess it helps that i don't leave my computer on for long periods when not using it
2016-03-10
00:00:56 <oerjan> also, that i set it to warn me. it's still slightly annoying that it sets a scheduled time by itself.
00:03:32 <oerjan> <int-e> is it one of those "the only way to win is not to play" deals? <-- i simply interpret the Game as "the only way to win is not to care" and that solves all the problems hth
00:03:49 <int-e> Well, it's Microsoft's computer; you should be happy that they let you use it!
00:04:42 <int-e> (only half kidding. sigh.)
00:05:29 -!- boily has joined.
00:05:30 <boily> @metar CYUL
00:05:31 <lambdabot> CYUL 092300Z 24014KT 15SM BKN057 OVC090 10/05 A2976 RMK SC7AC1 SLP082
00:06:45 <oerjan> BOYL HI
00:07:26 <oerjan> int-e: it is now evening
00:07:47 <oerjan> it seems that they were at least prepared for the poison
00:08:01 <boily> HELL ØRJAN
00:08:29 <oerjan> have i mentioned that ENVA is pretty close to HELL
00:09:26 <boily> @metar HELL
00:09:27 <lambdabot> No result.
00:11:51 <int-e> oh, I forgot
00:12:28 <int-e> work, bridges, go match, new spaceship... who has times for comics with so much else going on ;)
00:13:08 <oerjan> https://www.google.no/maps/@63.45201,10.9148617,14z?hl=no
00:13:23 <oerjan> what spaceship
00:13:24 <boily> today's headlines: work bridges go match new spaceships.
00:13:46 <oerjan> boily: the airport is ENVA, then look a little below to the left hth
00:14:22 <int-e> oerjan: http://www.conwaylife.com/wiki/Copperhead https://niginsblog.wordpress.com/2016/03/07/new-spaceship-speed-in-conways-game-of-life/
00:14:45 <oerjan> int-e: aha
00:14:46 -!- mihow has quit (Quit: mihow).
00:15:27 <int-e> okay, so, yeah, they know about the poison. nothing much going on, a bit of exposition... moving on :)
00:16:00 <int-e> well, exposition... more of a flashback without a flashback. a reminder of what happened back then, perhaps.
00:16:42 <boily> oerjan: Lian?
00:17:45 <oerjan> where do you see Lian
00:18:03 <boily> southwest from the word Trondheim on Google Maps.
00:18:19 <boily> but then I searched for the airport. it's not in Trondheim.
00:18:34 <boily> ah! Hell. it is found.
00:18:38 <oerjan> boily: i tried to link you above. did it not give the right place?
00:18:55 <boily> oh.
00:19:02 <boily> I didn't see the link.
00:19:11 <oerjan> O KAY
00:19:12 * boily fails spot checks regularly
00:19:18 <boily> v_v...
00:20:55 <oerjan> a common problem
00:21:56 <boily> . o O ( quick, a believable excuse! anything! )
00:22:06 <boily> uh... uhm... I... I'm eating a sandwich!
00:22:26 -!- p34k has quit.
00:22:44 <int-e> I have 21 lines of scrollback...
00:22:52 <int-e> good old xterm.
00:23:24 <boily> I think screen/tmux each have their own scrollback buffers.
00:23:40 <boily> they may involve interesting shortcuts to invoke, though.
00:23:54 <oerjan> sandwiches are well known to affect spot checks, indeed
00:24:17 <oerjan> boily: ^B PgUp in tmux
00:24:22 <int-e> well, it's irssi which has its own backlog as well... but I need to know to look for something first.
00:24:41 <oerjan> also, you need to press q to leave the mode
00:24:51 <int-e> anyway, I was actually trying to suggest a line of excusing for boily, not for myself...
00:25:04 <int-e> excusation?
00:25:14 * int-e isn't sure how to nounify that verb.
00:25:20 <oerjan> excuse is a perfectly cromulent noun
00:25:52 <int-e> but it's not the process of making up an excuse.
00:25:53 <boily> those are sane shortcuts. I'm more and more tempted to switch over to tmux...
00:26:04 <boily> enexcusement?
00:26:16 <int-e> too french for me
00:26:34 <oerjan> excusezmoiment
00:27:05 <yorick> int-e: what about me?
00:27:55 <oerjan> `? entschuldigung
00:28:03 <HackEgo> entschuldigung? ¯\(°​_o)/¯
00:28:31 <oerjan> `learn Entschuldigung is the German word for blaming something on trees moving by themselves.
00:28:38 <HackEgo> Learned 'entschuldigung': Entschuldigung is the German word for blaming something on trees moving by themselves.
00:28:44 <int-e> yorick: I don't know, did Shakespeare write about you?
00:29:03 <yorick> I think so
00:29:08 <yorick> but only briefly
00:29:10 <int-e> oerjan: an "ent" pun?
00:29:21 <oerjan> alas
00:29:28 * yorick resets the alas counter
00:29:30 <int-e> just making sure
00:30:39 <int-e> yorick: so I expected that fungot's shakespeare style might know you... unfortunately, fungot doesn't really take context into account, so it's hard to find out in practice
00:31:22 * boily thwacks oerjan
00:31:38 <oerjan> ^style ss
00:31:47 <oerjan> AAAAAAAAAAAAAAAAAAAA
00:31:48 <int-e> yorick: and to be honest, I was at that moment unaware that it's also a (namely your) nickname here :P
00:32:09 <fizzie> BBBBB
00:32:31 <int-e> `? yorick
00:32:32 <HackEgo> yorick? ¯\(°​_o)/¯
00:32:49 <oerjan> fizzie: CCCCCC
00:32:56 -!- fungot has joined.
00:33:02 <fizzie> fungot: D?
00:33:12 <fizzie> ...
00:33:13 <oerjan> `le/rn yorick/We know nothing about yorick, alas.
00:33:15 <fungot> fizzie: any slight tips this time?
00:33:16 <HackEgo> Learned «yorick»
00:33:21 <fizzie> That server's being real slow.
00:33:31 <fizzie> fungot: Here's a pro tip: don't eat the yellow snow.
00:33:31 <fungot> fizzie: a person would connect to a +5v dc power supply, just need to hope the kernel kills that
00:33:41 <boily> fungot: o hai. are you eating a sandwich? as a matter of fact, do you eat?
00:33:41 <oerjan> ^style ss
00:33:42 <fungot> boily: good evening :)
00:33:48 * boily hugs fungot
00:33:53 <oerjan> wat
00:34:07 <fizzie> Hmm.
00:34:12 <boily> uhm...
00:34:13 <fungot> Selected style: ss (Shakespeare's writings)
00:34:13 <fungot> boily: val. no valentine indeed, for i am thee; thee will i loue, i gaue thee villaine? the pigge quoth i, this generall applause, and chearefull showt, argues your wisdome, and your royall court, by heauen
00:34:19 <fizzie> Oh, it's just laggy.
00:34:28 <boily> I thought I had smothered him...
00:34:36 <fizzie> I think something's up with wolfe.freenode.net.
00:34:54 <oerjan> fungot: is there someone you knew well?
00:35:54 <prooftechnique> I'm just thrilled we get to add hellorick to the repertoire
00:36:02 <fizzie> Well that's just ricudilous.
00:36:53 <fizzie> It hasn't even seen 'rjan's question yet, if the debug logging is to be believed.
00:37:13 <oerjan> shocking
00:37:17 <boily> 'rjan?
00:37:24 <fizzie> boily: oe.
00:37:37 <boily> prooftechellonique.
00:37:49 <boily> œ.
00:37:52 <fizzie> I think I'll swap them servers.
00:37:53 -!- fungot has quit (Remote host closed the connection).
00:38:02 <fizzie> That happened instantaneously. Weird.
00:38:34 -!- fungot has joined.
00:38:38 <fizzie> fungot: Snappier now?
00:38:38 <fungot> fizzie: boy. if to doe were as easie as a downe bed would affoord it
00:38:55 -!- ais523 has joined.
00:38:56 <int-e> fungot fungot
00:38:56 <fungot> int-e: banks. take me vp, and they are pale; she takes him by the nose
00:39:08 <ais523> !bfjoust is_this_working_yet <
00:39:11 <EgoBot> ​Score for ais523_is_this_working_yet: 0.0
00:39:14 <ais523> oh good
00:39:26 <oerjan> fungot: so any old acquaintances?
00:39:26 <fungot> oerjan: duke. be it known, as the glasses where they view themselues, which in their throng and press to that last hold, confound themselves. ' tis most meet you should wear it in my arm.
00:39:41 <oerjan> ais523: Lymia managed to fix it with shellshock
00:39:47 <int-e> oh the duke...
00:39:48 <ais523> oerjan: seriously?
00:39:49 <oerjan> i was impressed
00:39:51 <oerjan> ais523: yes
00:40:14 <boily> wait. Lymia shellshocked one of freenode's servers???
00:40:26 <oerjan> boily: no, just EgoBot
00:40:26 <ais523> if the bot is still shellshock-vulnerable, it probably shouldn't be on IRC
00:41:14 <oerjan> ais523: the trick is to get Gregor to awake and update both bash and gearlance
00:41:42 <oerjan> because it seems the basic problem was a bug in old gearlance
00:42:13 * boily mapoles Gregor a few times to rouse him from his slumber
00:42:32 <oerjan> Gregor is not known to slumber lightly
00:44:10 <int-e> In his house at R'lyeh, Gregor waits dreaming.
00:44:16 <fizzie> That is not dead which can ... COME ON
00:45:54 <oerjan> sent him a /msg
00:46:12 <oerjan> since he recommended that on a previous occasion
00:46:23 -!- staffehn_ has joined.
00:48:19 -!- deltab_ has joined.
00:49:04 -!- Vorpal has quit (Ping timeout: 248 seconds).
00:49:05 -!- clog has quit (Ping timeout: 248 seconds).
00:49:05 -!- deltab has quit (Ping timeout: 248 seconds).
00:49:05 -!- feliks has quit (Ping timeout: 248 seconds).
00:49:05 -!- carado has quit (Ping timeout: 248 seconds).
00:49:06 -!- staffehn has quit (Ping timeout: 248 seconds).
00:49:14 -!- Vorpal has joined.
00:49:14 -!- Vorpal has quit (Changing host).
00:49:14 -!- Vorpal has joined.
00:50:05 -!- carado has joined.
00:51:14 * oerjan assumes that split was wolfe croaking...
00:53:09 <zzo38> I added a few more cursor shapes, now there is arrow with ... written on it, and there is magnification (plain, minus, and plus), and also a stop sign icon.
00:53:52 <zzo38> What other mouse cursor icons do you expect should be needed (not counting the ones in the standard X cursor font)?
00:55:33 -!- feliks has joined.
00:59:06 <int-e> ✊✋✌
00:59:35 <boily> hezzo38. left hand cursor?
01:00:41 <oerjan> `unidecode ✊✋✌
01:00:46 <HackEgo> U+270A RAISED FIST \ UTF-8: e2 9c 8a UTF-16BE: 270a Decimal: &#9994; \ ✊ \ Category: So (Symbol, Other) \ Bidi: ON (Other Neutrals) \ \ U+270B RAISED HAND \ UTF-8: e2 9c 8b UTF-16BE: 270b Decimal: &#9995; \ ✋ \ Category: So (Symbol, Other) \ Bidi: ON (Other Neutrals) \ \ U+270C VICTORY HAND \ UTF-8: e2 9c 8c UTF-16BE: 270c Decimal: &#99
01:01:33 <zzo38> boily: There is already hand cursor included in the standard cursor font, in both direction
01:01:39 <int-e> `unidecode 🖕
01:01:42 <HackEgo> U+1F595 - No such unicode character name in database \ UTF-8: f0 9f 96 95 UTF-16BE: d83ddd95 Decimal: &#128405; \ 🖕 (🖕) \ Uppercase: U+1F595 \ Category: Cn (Other, Not Assigned)
01:03:05 <int-e> HackEgo doesn't know unicode 8.0 yet.
01:04:15 <int-e> oh well it wasn't a very polite one anyway. "REVERSED HAND WITH MIDDLE FINGER EXTENDED"
01:07:29 <\oren\> I added a sodium memory chip. hopefully now I have 12 GB of memory
01:08:30 <\oren\> related, I figured out how to use a metal file to turn a big screwdriver into a compuetr-sized one
01:08:49 -!- mihow has joined.
01:10:08 -!- adu has joined.
01:10:09 -!- pikhq has joined.
01:11:20 <\oren\> YAY it works
01:17:11 <boily> he\\oren\. sodium memory chip? you salted your machine?
01:17:55 -!- deltab_ has changed nick to deltab.
01:19:24 <ais523> when's the next alphago match?
01:20:32 -!- mad has joined.
01:21:32 -!- adu has quit (Quit: adu).
01:22:49 <\oren\> boily: I guess so.
01:23:16 <\oren\> for some reason, laptops use lithium batteries and sodium memeory
01:24:43 <\oren\> I bet kerbal space program will be faster now
01:29:28 <boily> meanwhile, damned teasing abyssal rune. "You are suddenly pulled into a different region of the Abyss!".
01:29:51 <boily> mon cul que t'as le droit de me faire ça juste quand chu pour arriver dessus.
01:30:15 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
01:31:37 <\oren\> actually, ksp isn't that memory taxing. I should really be testing dwarf fortress!
01:32:06 <\oren\> heh. or, why not both!
01:34:04 -!- nisstyre has quit (Ping timeout: 264 seconds).
01:38:41 <HackEgo> [wiki] [[Vitsy]] N https://esolangs.org/w/index.php?oldid=46566 * VTCAKAVSMoACE * (+19745) Vitsy Esoteric Programming Language
01:45:07 <HackEgo> [wiki] [[Vitsy]] https://esolangs.org/w/index.php?diff=46567&oldid=46566 * VTCAKAVSMoACE * (+570)
01:46:23 <HackEgo> [wiki] [[Vitsy]] M https://esolangs.org/w/index.php?diff=46568&oldid=46567 * VTCAKAVSMoACE * (+65)
01:48:13 -!- XorSwap has quit (Quit: Leaving).
01:52:48 <oerjan> @tell tswett <tswett> My neural net thinks there's a historical language called Middle Worse. <-- PLAUSIBLE
01:52:48 <lambdabot> Consider it noted.
01:54:19 <oerjan> <ais523> when's the next alphago match? <-- iirc in 2 hours?
01:54:45 <ais523> wasn't sure if it was a matter of hours, days, or weeks
01:54:58 <ais523> the previous match was really worth watching
01:56:44 <mad> now we need a new game that we can beat computers at
01:57:03 <ais523> well humans still beat computers at BF Joust
01:57:06 <ais523> also nomic
01:57:20 <ais523> I only know of one computerized Nomic player and it was terrible
01:57:37 <oerjan> fungot: is that what you want us to think?
01:57:37 <fungot> oerjan: enter oswald the steward. how faine would i goe to, carry this vnto her graue? be buried quicke with her, and fnord thee after supper, of a weak and silly mind fnord to wail his death.
01:57:44 <ais523> that said, it worked on the same principle as fungot's babble output, so it's perhaps not surprising that it did badly
01:57:44 <fungot> ais523: lys. one turfe shall serue as pillow for vs both, and for that i have not the book of honour razed quite, and laid mine honour too fnord on't: the fool will be hang'd else
01:57:55 <ais523> ^style agora
01:57:55 <fungot> Selected style: agora (a large selection of Agora rules, both current and historical)
01:58:07 <ais523> fungot: how would you do as a Nomic player?
01:58:07 <fungot> ais523: all penalties shall be the set of valid ballots on an entity has an initiator, or otherwise defaults to 1.0.
01:58:07 <oerjan> fungot: what does graue have to do with this
01:58:07 <fungot> oerjan: ( a) scamster, which must be the entire day of each color of mark is a person is reduced by one or more win conditions are satisfied. such a notification to that creditor according to their category.
01:58:30 <ais523> hmm, we need to get one of those new neural net things to look at Agora proposals
01:58:33 <ais523> and come up with some of its own
02:00:47 <mad> grr... this is frustrating... I have the knowledge to reinvent the synthesizer (music instrument)... but I don't know in what direction to reinvent it
02:01:04 <prooftechnique> Up?
02:01:34 <zzo38> If up doesn't work, then sideways
02:02:08 -!- adu has joined.
02:02:16 <prooftechnique> Failing that, consider gaining the knowledge to invent a new direction, and use that one
02:04:06 <mad> once you accept the standard 12-key per octave keyboard, velocity, pitch bender and mod wheel setup it kindof all turns into that kind of 90's mix-of-every-pop-instrument thing that doesn't bring anyting new to the table
02:04:45 <zzo38> Then use microtonal instruments
02:05:04 <mad> I've looked into that as well
02:05:09 <mad> it's kinda futile
02:05:40 <prooftechnique> The keytar already happened, so consider melding it with another instrument. A theremin with a keyboard could change the musical landscape
02:05:52 <HackEgo> [wiki] [[Vitsy]] M https://esolangs.org/w/index.php?diff=46569&oldid=46568 * VTCAKAVSMoACE * (+3) Fixed table break
02:06:08 <mad> prooftechnique : you mean like an ondes martenot?
02:07:20 <prooftechnique> Well, I'll be dipped
02:07:21 <zzo38> There is analog and digital synthesizer, there is hardware and software synthesizer, so which would be? Or something that doesn't match?
02:08:37 <mad> software
02:09:30 <mad> that's a much easier proposition than hardware and the only thing it's missing is input specific to that particular synth
02:10:42 <prooftechnique> I find the 80s German industrial scene did a lot of good work when it came to finding specific inputs for things
02:11:01 <prooftechnique> Maybe your synthesizer should interpret input from pieces of metal being beaten on
02:11:57 <mad> isn't that called a vibraphone? :D
02:12:30 <HackEgo> [wiki] [[Vitsy]] https://esolangs.org/w/index.php?diff=46570&oldid=46569 * VTCAKAVSMoACE * (+5) Fixed a problem with the table.
02:12:34 <prooftechnique> It is practically impossible to invent a new instrument, it seems
02:12:49 <oerjan> `? pidgin
02:13:03 <HackEgo> The pidgin hole principle states that if n+1 messages are sent over n protocols, then at least two messages are sent over the same protocol.
02:13:49 <\oren\> I made a terrible program to write music with once
02:14:05 <zzo38> \oren\: What program is that?
02:14:41 <mad> prooftechnique : well, it's easy to invent a new _irrelevant_ instrument :D
02:14:43 <\oren\> zzo38: it was a set of perl and C programs that transformed a weird language into a wav file
02:14:58 <prooftechnique> mad: I'm still waiting for the Otamatone revolution
02:15:22 <\oren\> nayway, it used exact fracitons for tuning, instead of letters
02:15:38 <mad> prooftechnique : when they make it easy to play in tune
02:15:39 <zzo38> O, so it is writing just intonation?
02:15:44 <\oren\> yes
02:16:01 <mad> you can write just intonation with letters
02:16:42 <mad> basically you have to use 3:2 just fifths and violate the usual rules of writing
02:17:03 <mad> Like using C Fb G as a major chord gives you just intervals
02:17:05 <mad> (almost)
02:17:07 <\oren\> so on each note, you write the fraction that it makes with the previous note
02:18:41 <\oren\> I forget the syntax I used for that, but I got it to play a simple tune
02:18:55 <\oren\> I'll try to find it sometime
02:19:26 <zzo38> I have done just intonation before with DATA commands in BASIC
02:21:28 <mad> \oren\ : it's not very hard to translate note names to fractions
02:22:13 <mad> you just have to decide for every 3rd if you want it to be just (5/4) or made out of a superposition of 2 whole tones (81/64)
02:26:04 <mad> For western music the only real intervals are the octave (2/1), the fifth (3/2), whole tone (9/8) and just major 3rd (5/4)
02:26:12 <mad> everything else is a byproduct of those
02:27:12 <mad> the semitone is the difference between 3 whole tones and a fifth for instance
02:38:26 <HackEgo> [wiki] [[Vitsy]] M https://esolangs.org/w/index.php?diff=46571&oldid=46570 * VTCAKAVSMoACE * (+0) Fix typo
02:41:23 -!- boily has quit (Quit: SPEEDY CHICKEN).
02:43:00 -!- clog has joined.
02:58:06 -!- Alejandro15 has joined.
02:58:16 -!- Alejandro15 has left.
03:00:25 <Lymia> ais523:
03:00:29 <Lymia> !sh stat /bin/bash
03:00:30 <EgoBot> File: `/bin/bash' \.Size: 907184..Blocks: 1784. IO Block: 4096 regular file \ Device: ca01h/51713d Inode: 359597. Links: 1 \ Access: (0755/-rwxr-xr-x) Uid: ( 0/ UNKNOWN). Gid: ( 0/ UNKNOWN) \ Access: 2016-03-10 00:39:08.000000000 +0000 \ Modify: 2009-08-23 17:18:23.000000000 +0000 \ Change: 2009-11-05 19:51:30.000000000 +0000
03:00:56 <ais523> Lymia: what am I meant to deduce from this?
03:00:59 <ais523> mod time?
03:01:11 <Lymia> That, yeah.
03:04:46 <Lymia> I'm pretty sure it's a chroot that Gregor didn't think to update. ;c
03:09:49 <\oren\> I've sent a email to the unicode mailing list about the gaps in the Mathematical Alphanumeric Symbols block
03:10:33 <\oren\> I see no reason why these couldn't be defined as decomposing to the equivalent letters in Letterlike Symbols
03:12:05 -!- XorSwap has joined.
03:14:20 <\oren\> having gaps in contiguous ranges is the flaw that made programmers hate EBCDIC
03:17:22 <izabera> "we're very sorry for this bug. this will be changed immediately and everyone will have to adapt"
03:19:43 <prooftechnique> \oren\: Did you drop the cirled Latin letters from your font?
03:20:21 <mad> ebcdic caused C digraphs
03:20:23 <prooftechnique> Oh, nevermind, there it is
03:20:27 <prooftechnique> *they are
03:20:41 -!- puckipedia has quit (Read error: Connection reset by peer).
03:20:41 <mad> so ebcdic is a net negative in my life no matter its merits or flaws
03:21:00 -!- puckipedia has joined.
03:21:02 <lifthrasiir> in EBCDIC 'Z' - 'A' == 40.
03:21:08 <lifthrasiir> what a great difference.
03:21:56 <mad> if they added BCD support to C then ebcdic would be easier to process
03:22:16 <\oren\> prooftechnique: no not yet. I'm going to move those characters to the script math
03:23:07 <prooftechnique> \oren\: Ah, okay. I was hoping for caps versions, but more math scripts can't hurt :)
03:23:26 <\oren\> I'm planning on making the capitals too of course
03:23:55 <prooftechnique> This font has taken over my entire setup :D Emacs, terminal, Firefox
03:24:11 <prooftechnique> And my statusbar, which has been fun
03:24:28 <mad> oh man
03:24:32 <mad> craziest idea
03:24:58 <mad> computer that uses BCD with 10 bit words, and each word encodes 0..999
03:25:14 <\oren\> nice!
03:25:15 <mad> double word would encode 0.999999
03:25:51 <\oren\> that would be way more efficient than 8 bit BCD
03:26:55 <\oren\> 1000/1024 versus 100/256. night and day
03:27:47 <\oren\> wait I think you have to divide the logarithms? or something?
03:28:15 <\oren\> > logBase(2,1000)
03:28:17 <lambdabot> No instance for (Typeable t0)
03:28:17 <lambdabot> arising from a use of ‘show_M90262971364701015908444’
03:28:17 <lambdabot> In the expression:
03:28:24 -!- mihow has quit (Quit: mihow).
03:28:42 <lifthrasiir> \oren\: you should look at https://en.wikipedia.org/wiki/Chen%E2%80%93Ho_encoding
03:28:43 <prooftechnique> > logBase 2 1000 -- ?
03:28:45 <lambdabot> 9.965784284662087
03:28:52 <lifthrasiir> and also https://en.wikipedia.org/wiki/Densely_packed_decimal
03:29:17 <\oren\> `` perl -e 'print (log 1000)/(log 2)'
03:29:20 <HackEgo> 6.90775527898214
03:30:28 <\oren\> `` perl -e 'print (log 1000)'
03:30:29 <HackEgo> 6.90775527898214
03:30:42 <\oren\> `` perl -e 'print ((log 1000)/(log 2))'
03:30:45 <HackEgo> 9.96578428466209
03:31:09 <\oren\> `` perl -e 'print ((log 100)/(log 2))'
03:31:12 <HackEgo> 6.64385618977473
03:31:26 <\oren\> `` perl -e 'print ((log 1000)/(log 1024))'
03:31:27 <HackEgo> 0.996578428466209
03:31:34 <\oren\> `` perl -e 'print ((log 100)/(log 256))'
03:31:34 <HackEgo> 0.830482023721841
03:34:15 <mad> http://sites.ieee.org/scv-cs/files/2013/03/Right-SizingPrecision1.pdf <- paper on variable sized floating point numbers
03:34:35 <mad> (and suggesting that it could be the future of computation)
03:35:39 <\oren\> AUGH
03:37:57 <prooftechnique> HGUA?
03:47:11 <izabera> mad: i thought digraphs/trigraphs were added to support keyboards that lacked those keys
03:48:27 <pikhq> No, they're specifically for charsets missing them.
03:48:46 <pikhq> Specifically, *some* EBCDIC code pages.
03:49:30 <mad> it's because IBM has a seat on the standards comittee
03:49:32 <mad> and
03:49:32 <mad> never
03:49:33 <mad> ever
03:49:34 <pikhq> (EBCDIC code pages all have a common subset, but that common subset does *not* include the trigraph/digraph characters. Worse, the trigraph/digraph characters are encoded differently in the code pages where they exist!)
03:49:35 <mad> relented
03:49:35 <izabera> good to know
03:50:16 <mad> also keyboards are purposely designed to have all 32 ascii punctuation signs
03:50:23 <mad> sometimes in kinda roundabout ways
03:50:30 <pikhq> It's even sillier when you consider that you can only use C on IBM mainframes from within the POSIX environment, which by necessity must have the characters in question.
03:50:47 <mad> like ` (accent deadkey for typing èàù) + space
03:50:51 <mad> for `
03:50:51 <pikhq> (POSIX has a hard requirement for them)
03:50:56 <mad> same for ^
03:51:17 <pikhq> That might be true of some keyboards.
03:51:43 <pikhq> On US keyboards, all of the printable ASCII characters are available as either a key press or shift and a key press.
03:52:01 <pikhq> ASCII is one hell of a US-centric standard. :)
03:52:03 <mad> yes because english doesn't have accents so they didn't need any hacks
03:52:15 <pikhq> Well. Ish.
03:52:21 <pikhq> English has (had) them but infrequently.
03:52:39 <mad> that's more like the situation of dutch
03:52:49 <pikhq> And they weren't in use in the US with typewriters, so it was deemed reasonable to omit them.
03:53:03 <pikhq> They've also become even more infrequent because of that.
03:53:34 <pikhq> Hence why it's typically spelled "resume", rather than "résumé" these days.
03:53:52 <mad> the root cause is that spelling evolved other ways of writing the extra vowels that you didn't have in latin
03:53:56 <pikhq> And "naive" instead of "naïve".
03:55:00 <pikhq> I'm pretty specifically referring to diactric usage that was normative in US Engliah circa 1900 but is not circa 2000. :)
03:55:31 <mad> kindof like how dutch doesn't need 'ü' and 'ö' because it moved 'u' to 'oe', and 'ö' to 'eu'
03:57:42 <mad> ï makes little sense in english because english has so few vowel-vowel sequences inside words
03:58:35 <pikhq> It was a systemic pattern then: every time you had a vowel-vowel sequence you put a diaresis.
03:58:53 <pikhq> "Zoë", "coöperate", "reëlect", etc.
03:59:14 <pikhq> I grant that it's not *that* significant, and so it makes sense it got dropped. :)
03:59:15 <mad> most of the time when you do have vowel-vowel, it's a french loan
03:59:24 <prooftechnique> Boölean
03:59:41 <mad> so it's likely do have had a diaresis from the get go
03:59:45 <pikhq> Uh, I'm pretty sure that's "boolean" even with diaresis usage.
03:59:48 <prooftechnique> oërjan
04:02:04 <oerjan> oerhört
04:03:13 <mad> for most languages, diacritics are overdesign anyways
04:04:55 <\oren\> I prefer ẍ
04:06:16 <mad> yeah, I'm sure the poor indian tribe appreciates having ẍ in their romanization
04:06:29 <oerjan> second game is on
04:06:40 <mad> making it impossible to type so they don't write anything down
04:06:51 <mad> then their kids all learn english only
04:06:52 <oerjan> https://www.youtube.com/watch?v=l-GsfyVCBu0&src_vid=vFr3K2DORc8&feature=cards&annotation_id=68c52597-c5c6-4484-9007-74c98feeaa85
04:06:54 <mad> problem solved
04:07:03 <\oren\> Huh? I thought it was for the second derivative of x by t?
04:08:05 * oerjan thinks maybe there must be a better way to copy the link without all that junk
04:08:35 <prooftechnique> https://youtu.be/l-GsfyVCBu0
04:08:40 <\oren\> just scrool down to the share part
04:08:50 <\oren\> they have a copyable minilink
04:09:06 <prooftechnique> Hahaha. "Chat is disabled for this live stream"
04:09:18 <prooftechnique> Or should I say "kekekeke"
04:11:02 -!- bender| has joined.
04:11:03 <oerjan> prooftechnique: they did that yesterday too, after a while.
04:12:34 -!- bender| has quit (Read error: Connection reset by peer).
04:13:15 <\oren\> shit no matter if I run Df, ksp and a youtube video all at once my memry still isn't full
04:13:31 <\oren\> wtf do people even do with 16GB?
04:13:44 <prooftechnique> Photoshop.
04:13:50 <prooftechnique> Chrome for more than an hour
04:14:18 <prooftechnique> And also just keeeping more things in memory for better load times, I guess
04:14:24 <prooftechnique> Depends on your OS's memory manager
04:16:11 <\oren\> I have 12GB and I can't fill it, I guess when I get 16 (another 8GB chip is in the mail) I'll run a VM or something
04:18:02 <prooftechnique> Yeah, I've usually got a couple of vagrant boxes, a browser, emacs, terminal, and other assorted nonsense. I usually hover around 50-60% utilization
04:18:11 <deltab> yeah, my office just received a server with 20GiB that used to run VMs
04:18:36 <prooftechnique> But memory's cheap and I'd rather have it and not need it than the other way :D
04:19:17 <deltab> linux is good at using memory for filesystem cache
04:21:22 <\oren\> windows is currently keeping a bunch of memory on "standby" not sure what that means
04:23:02 <\oren\> it seems to mean "not in use, but not empty either"
04:23:14 <\oren\> so I assume it's the file cache
04:23:42 <deltab> I expect sysinternals has an article explaining it
04:23:48 -!- ais523 has quit (Read error: Connection reset by peer).
04:23:55 <prooftechnique> Probably recently closed application state, too
04:24:47 -!- idris-bot has quit (Quit: Terminated).
04:25:07 -!- idris-bot has joined.
04:26:45 <\oren\> well, maybe it was overkill, but at least ksp runs super smooth now
04:28:58 -!- ais523 has joined.
04:33:08 <zzo38> The ! command in vim can be useful to do stuff that is not built-in to vim, such as !tac to reverse lines and so on
04:33:32 -!- llue has quit (Quit: That's what she said).
04:37:12 <prooftechnique> :g/^/m0
04:37:14 -!- treaki__ has joined.
04:37:58 -!- XorSwap has quit (Quit: Leaving).
04:40:15 <zzo38> Such a command is also moving it to the top of the file (if used with a selected area); now I can know that too, although I meant only part of the file, of course other commands such as cut, awk, sed, rev, xclip, grep, etc can also be used; many of those things can be done with built-in commands too somehow though
04:40:35 -!- treaki_ has quit (Ping timeout: 248 seconds).
04:40:49 <zzo38> But if you use ! command then you can use the same commands as the UNIX shell rather than always using different one
04:52:11 -!- prooftechnique has quit (Ping timeout: 250 seconds).
04:52:12 -!- kragniz has quit (Ping timeout: 246 seconds).
04:52:46 <oerjan> alphago made a surprising move, they say
04:54:20 -!- kragniz has joined.
04:55:54 -!- prooftechnique has joined.
04:59:12 <mad> what's the move?
05:00:01 -!- hppavilion[1] has quit (Read error: Connection reset by peer).
05:02:14 <ais523> mad: it replied to P9 with O10
05:02:52 <ais523> it's the most recent move, Lee Sedol has spent a lot of time (10 minutes?) thinking about it
05:05:11 -!- kragniz has quit (Ping timeout: 250 seconds).
05:05:44 -!- kragniz has joined.
05:19:37 <zzo38> If a implementation of Famizork mapper with CPLD were made, how many cells would it require?
05:32:20 <\oren\> https://youtu.be/kImJgUN5Y9s
05:32:57 -!- adu has quit (Quit: adu).
05:36:15 <\oren\> also, preview: http://www.orenwatson.be/script.png
05:37:15 <\oren\> based on cursive writing the way I learned it in primary school
05:37:36 <prooftechnique> Nice
05:38:25 <prooftechnique> I always forget how incomprehensible the D'Nealian G is
05:39:04 <\oren\> yah. In school I always just drew a random scribble for G
05:40:25 -!- puckipedia has quit (*.net *.split).
05:41:43 <prooftechnique> Russian cursive has more pathological cases, I think, though
05:42:10 <prooftechnique> Cf. шиншилла
05:42:11 -!- dingbat has quit (Quit: Connection closed for inactivity).
05:42:56 <prooftechnique> Which looks like this: https://i.imgur.com/4Ux8lgg.jpg
05:44:02 <\oren\> my dad has a friend named shchakhmatov, whose signature looks like "Max", so my dad always called him Max
05:46:11 -!- puckipedia has joined.
05:47:34 <\oren\> well that and shch is a ridiculous consonant cluster
05:50:20 <prooftechnique> Isn't that just Щ?
05:51:50 <\oren\> yeah, well in russian they apparently say shch a lot so it's one letter
05:52:35 <prooftechnique> I think only in Ukrainian and such is it really like a shch sound. In Russian, anyway, it's just a... I dunno. Longer sh?
05:52:50 <prooftechnique> It's a bit more nuanced than that
05:53:07 <prooftechnique> But it's close
05:54:42 <\oren\> well he's been in japan for 30 years, so I think his name is probably now officialy シャッハマトブ
05:54:57 <prooftechnique> Haha :)
05:55:00 <prooftechnique> Fair point
05:55:56 <\oren\> apparently a lot of russian mathematicians ended up at Osaka university somehow
05:56:46 <prooftechnique> Hopped on a boat, never went home
05:59:11 <\oren\> Ok, I found a article that cites him as D. Shakhmatov
06:00:04 <\oren\> so maybe Щ is basically a sh
06:01:32 <\oren\> whatever, when I met him in Barcelona my dad just yelled "hey Max!"
06:01:57 -!- adu has joined.
06:02:23 <\oren\> ahoydu!
06:02:57 -!- puckipedia has quit (*.net *.split).
06:03:37 <\oren\> thy does Unicode have separate codepoints for latin, greek and chinese cursive, but not cyrillic?
06:03:51 <lifthrasiir> wait, chinese cursive?
06:05:08 <\oren\> I think they are on the tertiary ideographic plane
06:05:47 <\oren\> oh, that's just what's planned
06:05:58 <\oren\> they havent assigned any codepoints yet
06:07:07 <\oren\> but they are planning on having seal script, bronze script, and oracle bone script
06:07:51 <lifthrasiir> \oren\: yeah, planned. also I think they are essentially different enough scripts to the modern han anyway
06:07:55 <\oren\> well I guess technically, modern chinese is a cursivized version of oracle bone characters
06:08:05 <lifthrasiir> no one would unify Linear B with modern Greek ;)
06:08:39 -!- puckipedia has joined.
06:08:54 <\oren\> well linear B is an alternate writing system entirely IIRC
06:10:23 <lifthrasiir> hmm, it is true. how about runes and modern Latin alphabets then?
06:10:39 <\oren\> yeah, runes hav their own
06:11:29 <\oren\> so they should have cyrillic cursive since it barely resembles printed cyrillic at all
06:14:08 -!- lambda-11235 has quit (Quit: Bye).
06:23:32 -!- hppavilion[1] has joined.
06:35:51 <\oren\> hippavilion[1]!
06:37:48 <prooftechnique> How's the game going?
06:41:02 -!- hppavilion[1] has quit (Ping timeout: 244 seconds).
06:43:33 <ais523> prooftechnique: it's pretty interesting
06:43:51 <ais523> lee sedol has a lot of sure but small territories; alphago's territory is larger but shakier
06:44:15 <ais523> so it's basically up to how much lee sedol can reduce alphago's territory by attacking it
06:58:44 -!- MoALTz_ has changed nick to MoALTz.
07:06:28 <zzo38> I do have some idea about a new kind of inter-client protocol for X, other than _SEND_RESOURCE, can be MEDIA_PLAYER protocol. The user should be allowed to enable/disable use of this protocol (the default is up to the individual program). It is done by the playback window gaining ownership of the MEDIA_PLAYER selection; it can pause playback if it ever loses ownership.
07:07:26 <b_jonas> What's the result of the second game?
07:07:27 <zzo38> It can then be controlled by sending selection requests to it, and can be based on what the selection target is; some selection targets used with it might be: FILE_NAME, STRING, TARGETS, PLAY, PAUSE, STOP, RECORD, EJECT, NEXT_TRACK, PREV_TRACK, REWIND, FAST_FORWARD
07:07:50 <oerjan> b_jonas: it's not finished
07:08:12 <b_jonas> what
07:08:22 <zzo38> Does these thing make sense to you?
07:08:22 <b_jonas> but it's eight in the morning
07:08:25 <b_jonas> it's like afternoon there
07:08:34 <b_jonas> 15 or something
07:08:43 <zzo38> Don't a game of Go to take a long time though?
07:08:59 <oerjan> b_jonas: neither of them has used up their 2 hour base time
07:09:36 <oerjan> but then, they didn't yesterday either
07:09:53 <b_jonas> ok
07:10:16 <b_jonas> I'll check back later then
07:10:35 <ais523> it's an interesting game, I'm enjoying it
07:11:06 <shachaf> oerjan: yoerjan
07:11:27 <oerjan> g'dachaf
07:11:54 <shachaf> bonjoerjan
07:18:34 -!- AnotherTest has joined.
07:23:18 -!- AnotherTest has quit (Ping timeout: 276 seconds).
07:42:42 <oerjan> and lee is on extra time
07:44:34 <coppro> b_jonas: ^
07:49:21 <ais523> ooh, lee sedol spent one of his extra minutes
07:49:23 <ais523> only one left
07:49:47 <b_jonas> are they in the endgame, just doing their captures and whatever?
07:50:03 <b_jonas> as in, the easier moves
07:50:18 <coppro> midgame
07:50:22 <b_jonas> ouch
07:50:30 <coppro> but the end of it
07:50:34 <coppro> there's still a little open territory to fight
07:50:39 <coppro> but it's down to a few points here and there
07:52:36 <oerjan> again?
07:52:39 <ais523> and the other one
07:52:41 <ais523> and late midgame
07:52:49 <ais523> lee sedol's on one minute per move from now on
07:53:31 <b_jonas> well, he's a professional, I guess he knows what he's doing using his time
08:08:04 <ais523> so go programs have a tendency to play bad moves if they'll win anyway, as they're programmed to take a sure win if they see one
08:08:10 <ais523> the commentators think that that might be happening
08:09:45 <ais523> it still might not be endgame yet, though
08:09:50 <ais523> not all the territory is settled
08:11:07 <ais523> alphago's running low on time too
08:11:29 <ais523> it has 4 minutes of regular time + overtime (which is 1 minute per move, plus 2 minutes that can be added to specific individual moves)
08:12:22 -!- J_Arcane has joined.
08:13:48 <coppro> it's endgame now
08:14:03 <ais523> I think so, yes
08:14:27 <oerjan> michael redmond thinks alphago is winning again
08:16:55 -!- earendel has quit (Ping timeout: 268 seconds).
08:18:34 <ais523> alphago in overtime too now
08:26:46 <ais523> alphago wins!
08:28:04 <oerjan> next game in two days
08:29:24 <lifthrasiir> great
08:30:52 -!- oerjan has quit (Quit: Nite).
08:33:22 <lifthrasiir> all the people says that Lee had no significant mistake and still lost
08:33:28 <lifthrasiir> it is significant
08:33:41 <coppro> going to bed
08:33:50 <coppro> someone ping me ith tanything interesting coming out of the press conference please
08:36:03 -!- incomprehensibly has quit (Ping timeout: 268 seconds).
08:36:39 -!- ocharles_ has quit (Ping timeout: 268 seconds).
08:37:40 <b_jonas> great
08:40:04 -!- ocharles_ has joined.
08:42:25 -!- incomprehensibly has joined.
08:45:04 <ais523> lifthrasiir: apparently on one of the streams, one of the 9 dan commentators identified a move that he thinks lost Lee the game
08:45:26 <ais523> but unfortunately, my source is a livethread and there's not enough context to figure out which :-(
08:54:22 -!- heroux has quit (Ping timeout: 244 seconds).
08:56:57 -!- J_Arcane has quit (Ping timeout: 244 seconds).
09:00:05 -!- mad has quit (Quit: Pics or it didn't happen).
09:10:00 -!- earendel has joined.
09:16:27 -!- earendel has quit (Ping timeout: 246 seconds).
09:17:26 -!- ais523 has quit.
09:38:00 -!- heroux has joined.
09:38:29 <b_jonas> congrats to both players
09:50:19 -!- AnotherTest has joined.
09:52:09 -!- adu has quit (Quit: adu).
10:22:50 <fizzie> fungot: What do you think of your brethren beating us meatbags in Go? (The game, not the language.)
10:22:50 <fungot> fizzie: i just want a nice pastime, go to the grocery store door i thought " let-values"
10:30:54 -!- jaboja has joined.
10:33:20 <myname> who doesn't
10:45:44 <HackEgo> [wiki] [[List of ideas]] M https://esolangs.org/w/index.php?diff=46572&oldid=46358 * YoYoYonnY * (+132) /* Joke/Silly Ideas */
11:05:43 <myname> interesting addition
11:22:00 <myname> what was the language whose programs build a ring (i guess?) called?
11:26:43 -!- boily has joined.
11:51:27 <Riviera> myname: You don't mean a turning tarpit with ring, right?
11:52:22 <myname> i guess
12:03:07 -!- earendel has joined.
12:05:27 <boily> ̀wisdom
12:05:32 <boily> `relcome earendel
12:05:42 <boily> `wisdom
12:05:57 <boily> @tell Gregor your bot, it is tremendously slow hth
12:05:57 <lambdabot> Consider it noted.
12:06:05 <HackEgo> ​Э/EH?
12:06:12 <HackEgo> No output.
12:06:13 <HackEgo> [wiki] [[Stack]] M https://esolangs.org/w/index.php?diff=46573&oldid=45264 * VTCAKAVSMoACE * (+84) Added another example esolang to the list.
12:06:32 <boily> ̀test
12:06:46 <boily> `test
12:06:48 <HackEgo> No output.
12:06:55 <boily> `relcome
12:06:56 <HackEgo> 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.)
12:06:59 <boily> ah!
12:07:14 <boily> earendel: please refer to the rainbow welcome message up there ↑
12:12:05 -!- boily has quit (Quit: SLUG CHICKEN).
12:51:51 -!- bender| has joined.
13:13:22 -!- contrapumpkin has quit (Quit: Textual IRC Client: www.textualapp.com).
13:13:45 -!- copumpkin has joined.
13:24:42 -!- clog has quit (Ping timeout: 276 seconds).
13:24:49 -!- clog has joined.
13:35:28 <HackEgo> [wiki] [[Vitsy]] https://esolangs.org/w/index.php?diff=46574&oldid=46571 * VTCAKAVSMoACE * (+8908)
13:39:24 -!- bender| has quit (Remote host closed the connection).
13:46:03 -!- jaboja has quit (Ping timeout: 240 seconds).
13:53:48 -!- hkgit03 has joined.
13:53:57 <hkgit03> Hello
14:10:03 -!- heroux has quit (Ping timeout: 244 seconds).
14:10:21 -!- heroux has joined.
14:14:53 -!- J_Arcane has joined.
14:20:29 -!- spiette has joined.
14:30:15 -!- heroux has quit (Ping timeout: 250 seconds).
14:31:51 -!- heroux has joined.
14:32:13 -!- hkgit03 has quit.
14:37:44 -!- prooftechnique has quit (Quit: ZNC http://znc.in).
14:38:33 -!- prooftechnique has joined.
14:44:57 -!- jaboja has joined.
14:45:55 <prooftechnique> Anybody want a keybase invite? I have 8 or 9, I think.
14:51:29 -!- AnotherTest has quit (Ping timeout: 250 seconds).
14:56:21 -!- lambda-11235 has joined.
15:05:03 -!- clog has quit (Ping timeout: 246 seconds).
15:13:56 <b_jonas> fungot, do you want a keybase invite from prooftechnique?
15:13:57 <fungot> b_jonas: i'm a cl programmer :) you fnord your code? it makes my eyes bleed
15:14:44 <prooftechnique> Oh, fungot, you smug lisp weenie
15:14:45 <fungot> prooftechnique: how do i use to make similar links to r5rs from scheme pastes that aren't of the form " fnord". pl/ 1, and -0 is a 0 0 5 0 0
15:16:06 <b_jonas> and he still doesn't understand how quotation marks work
15:17:54 <prooftechnique> fungot: What do you think about quotes?
15:17:55 <fungot> prooftechnique: now that i think about it? when it comes to punctuation, i end up liking it better. or worse yet horror of horrors there is a mandelbrot for some esolang?
15:18:24 <prooftechnique> Wow. That was really close to coherent
15:20:31 <prooftechnique> So AlphaGo won again, huh?
15:40:17 <int-e> Yes. Impressive. I'm now worried that Lee may not win any game after all.
15:41:15 <prooftechnique> I only watched the first hour or two. What was the result?
15:41:41 <int-e> Lee resigned again... and he was never clearly ahead from what I've read.
15:42:07 <int-e> And in the end I think he was losing by more than 10 points, but that doesn't really mean much.
15:46:55 <int-e> Okay I can't count. It was more like 6 to 8 points.
15:50:37 <prooftechnique> Still
15:51:22 <prooftechnique> On one hand, this is pretty groundbreaking stuff. On the other hand, I don't know how impressed I should be that a server farm beat a single brain at a computational task.
15:51:59 <prooftechnique> At least Deep Blue fit in a closet
16:00:13 -!- lambda-11235 has quit (Quit: Bye).
16:00:48 -!- adu has joined.
16:19:44 -!- heroux has quit (Ping timeout: 244 seconds).
16:28:37 -!- heroux has joined.
16:56:59 -!- adu has quit (Quit: adu).
17:03:51 -!- clog has joined.
17:05:03 -!- jaboja has quit (Ping timeout: 276 seconds).
17:08:11 <izabera> i'm watching alphago's 2nd match
17:08:24 <izabera> the commenter said "oh this is a very weird move from alphago"
17:08:33 <izabera> and lee sedol left the room
17:08:52 <izabera> they didn't show him but i imagine him cursing and kicking his chair in rage
17:12:36 -!- AnotherTest has joined.
17:15:50 -!- jaboja has joined.
17:16:03 -!- J_Arcane has quit (Ping timeout: 244 seconds).
17:23:10 -!- heroux has quit (Ping timeout: 248 seconds).
17:29:29 -!- heroux has joined.
17:29:36 -!- zadock has joined.
17:32:39 <HackEgo> [wiki] [[Special:Log/newusers]] create * ETHproductions * New user account
17:33:49 <b_jonas> prooftechnique: the first time computers started winning against humans in chess, they required a whole server farm to win too. But then computers got faster.
17:35:02 <prooftechnique> I think my tongue was somewhat firmly in my cheek, but I take your point.
17:55:15 <HackEgo> [wiki] [[Japt]] N https://esolangs.org/w/index.php?oldid=46575 * ETHproductions * (+1175) Created page with "'''Japt''' is a language designed for ''code-golfing''. == Overview == Japt is a compiled language, or specifically, ''transpiled''. Many functions have been shortened to a..."
17:56:23 <HackEgo> [wiki] [[Language list]] https://esolangs.org/w/index.php?diff=46576&oldid=46547 * ETHproductions * (+11) /* J */ Added Japt to language list
17:59:17 <myname> just realized df will turn 10 this year
18:02:32 <b_jonas> myname: um, do you mean dwarven fortress?
18:02:37 <b_jonas> or some other df?
18:03:14 <myname> dwarf fortress
18:06:56 -!- jaboja64 has joined.
18:10:46 -!- jaboja has quit (Ping timeout: 252 seconds).
18:18:21 <prooftechnique> The dwarf named after me was a transcendent sculptor
18:19:51 <prooftechnique> Sorry, stonecarver
18:21:24 <HackEgo> [wiki] [[Japt]] M https://esolangs.org/w/index.php?diff=46577&oldid=46575 * ETHproductions * (+72) Added categories
18:33:45 -!- mihow has joined.
18:39:03 -!- lleu has joined.
18:40:27 -!- mihow has quit (Quit: mihow).
18:52:15 -!- lynn_ has joined.
18:57:11 -!- jaboja64 has quit (Ping timeout: 250 seconds).
19:01:03 -!- lambda-11235 has joined.
19:02:15 -!- p34k has joined.
19:13:52 -!- Treio has joined.
19:17:17 -!- LexiciScriptor has joined.
19:30:05 -!- lynn_ has changed nick to lynn.
19:30:18 -!- hppavilion[1] has joined.
19:33:48 -!- LexiciScriptor has quit (Quit: LexiciScriptor).
19:36:48 -!- lambda-11235 has quit (Quit: Bye).
19:40:00 -!- jaboja64 has joined.
19:58:30 -!- LexiciScriptor has joined.
19:58:37 -!- LexiciScriptor has quit (Client Quit).
19:59:12 -!- lynn has quit (Read error: Connection reset by peer).
20:05:15 -!- Phantom_Hoover has joined.
20:07:51 -!- gde33 has left.
20:20:56 <fizzie> izabera: My wife was worried that he might get sufficiently frustrated to do something drastic.
20:21:18 <fizzie> I got the impression from some random earlier headlines that he was all "I'll win 5-0 or 4-1, no question about that" beforehand.
20:23:32 <fizzie> "For me, I'm not interested in playing against an easy opponent, especially for an easy-to-handle computer, --" says Ke Jie. Sounds suspiciously similar.
20:24:25 -!- lambda-11235 has joined.
20:24:37 <prooftechnique> `relcome lambda-11235
20:24:58 <HackEgo> lambda-11235: 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.)
20:25:26 <lambda-11235> prooftechnique: Thanks. I've already been welcomed.
20:25:35 <prooftechnique> :)
20:32:01 <b_jonas> ARGH! the algorithm I'm trying to implement can't work. it's broken as designed. damn.
20:32:10 <b_jonas> I'll have to rethink this whole thing.
20:34:54 -!- ais523 has joined.
20:34:59 <b_jonas> Now I understand why I didn't implement it like that before I started to rewrite it.
20:37:31 <b_jonas> I started to rewrite a code to use what I thought was a simpler algorithm. It turns out the simpler algorithm can't work. The complication was necessary.
20:54:00 -!- mihow has joined.
20:57:29 -!- zadock has quit (Quit: Leaving).
21:02:07 <zzo38> I think I read in newspaper the Go player expected to win against the computer the first time but that after the program is corrected then next time they probably cannot win
21:02:30 <izabera> fizzie: "my wife [...]" oh you're old
21:02:47 -!- lambda-11235 has quit (Quit: Bye).
21:11:01 <HackEgo> [wiki] [[Vitsy]] https://esolangs.org/w/index.php?diff=46578&oldid=46574 * VTCAKAVSMoACE * (+15038) Links fo' days, fixed some typos
21:17:07 <HackEgo> [wiki] [[Vitsy]] M https://esolangs.org/w/index.php?diff=46579&oldid=46578 * VTCAKAVSMoACE * (+91) Added some wikitrivia.
21:17:35 <HackEgo> [wiki] [[Vitsy]] M https://esolangs.org/w/index.php?diff=46581&oldid=46579 * VTCAKAVSMoACE * (+4) Fix italicization.
21:24:00 <HackEgo> [wiki] [[Language list]] M https://esolangs.org/w/index.php?diff=46582&oldid=46576 * VTCAKAVSMoACE * (+12) Added Vitsy to language list.
21:25:54 <zzo38> Do you know if there is any way with Xlib that you could figure out the clipping rectangle boundaries of a GC?
21:30:58 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
21:31:24 <b_jonas> ais523, zzo38: I have some vague thought about cpu architecture that probably doesn't even have a truth value, but I want to run it through you
21:31:54 <ais523> go on
21:32:23 <b_jonas> You know how much of the problem of the x86 arch is that it's really old, and at each step they updated it incrementally such that the same cpu can both run existing programs faster but also new programs can be written better but the chip implementing these two are practically the same.
21:32:53 <ais523> yes
21:32:55 <b_jonas> Although there were a few specific mistakes in these updates, most of the problem is just wanting to repeat such small incremental changes in the arch to make this possible, many times.
21:34:03 -!- hppavilion[1] has joined.
21:35:10 <b_jonas> And some of the particular decisions that made sense in the earlier stages of x86 but no longer are well known, like how the instruction encoding is really hard to decode quickly because it's very variable width, or that the 8 and 16 bit instructions have to update parts of registers,
21:35:52 <b_jonas> etc.
21:36:17 <b_jonas> But there's a particular thing where I only now realized why the x86 design made sense originally but no longer.
21:36:56 <b_jonas> You know how despite the z80 being bigger, the 6502 instruction set turns out to be way more powerful than the z808 instruction set in practice?
21:37:27 <b_jonas> And I think one of you mentioned the reason for that, which was really not obvious to me since I didn't actually program those cpus:
21:38:38 <b_jonas> that the 6502 has only one accumulator, but it has instructions addressing the zero page with an 8 bit offset, and those instructions are really short, all of them being 2 bytes long, so you effectively use those 256 bytes as registers.
21:39:31 <b_jonas> Whereas on the z80, you have somewhat more general registers, but still not enough of them of course, and if you run out of them, you're really screwed, because the z80 doesn't have any sane way to address memory.
21:39:45 <b_jonas> It doesn't even have instructions to address memory with immediate offsets.
21:41:10 <b_jonas> Those RISC chips that have three-argument instructions on 15 to 32 independent registers 4 bytes long each and instructions with three register operands could get away with not having memory access instructions with encoded offsets,
21:41:25 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
21:42:11 <b_jonas> but the z80 is not like that, it has few registers, they're overlapping, and the arithmetic instructions only work on A or LH as one of the sources and destination, so you effectively have register-to-register moves and ONE-OPERAND instructions, not even two-operand ones..
21:42:52 <b_jonas> This might not be entirely accurate, since I'm a bit fuzzy about how the z80 works, and surely it has some tricks I'm missing, plus it has the IX and IY registers to help out.
21:42:55 <b_jonas> But still.
21:43:43 <b_jonas> Anyway, you know how the x86 has more registers than the z80, and two-operand instructions to access that. But the trick is that not only it has those, but it also has what is effectively the equivalent of 6502's zero-page access:
21:44:30 <b_jonas> all the general instructions can use 8 byte offsets around four of the registers, so you can access 128 bytes above and 128 bytes below the stack base pointer, plus three other similar spaces based on the other registers.
21:45:16 <b_jonas> AND even though the general instructions are two-operand, they work both ways: the memory operand can be either source and destination, encoded by a bit in the opcode.
21:46:11 <b_jonas> So the x86 is a hybrid cpu that tried to have the advantages of both a larger instruction set risc cpu and the in-memory registers of 6502.
21:47:04 <b_jonas> And I think this was a good idea at the 8086, and probably still a mostly sane idea at the 386, but turned out to be a bad idea later.
21:47:41 <b_jonas> Mostly because you can't run instructions parallel and out of order and speculatively if they all reference main memory and any main memory write could affect any main memory read.
21:48:03 <b_jonas> The cpu can work out the dependencies between register accesses, but not between memory writes.
21:49:11 <ais523> hmm, the major "zero page"ish use I've seen on x86 is offsets from bp or sp
21:49:12 <b_jonas> So we ended up with a CPU that we are effectively trying to program like a RISC machine with everything stored in registers, sometimes even to the point that if you don't have enough general registers, it can be worth to save a value to an xmm register instead of the stack.
21:49:18 <ais523> it's like having a sliding window zero page
21:49:37 <ais523> perhaps we could have a stack that's /only/ addressible like that
21:49:43 <ais523> to solve the aliasing issues
21:49:48 <b_jonas> ais523: yes, and the MMIX has such a sliding window register stack.
21:49:58 <b_jonas> It's great design.
21:50:15 <b_jonas> Now, there are some things in MMIX I don't like, but the sliding window local register stack is brilliant.
21:50:32 <b_jonas> (It also has global registers that don't move when the window slides.)
21:52:02 <b_jonas> They at least did away with the two-direction instructions with the vector instructions: those only read from memory, never write, but they were still all two-operand before AVX. And even AVX uses the mod-r/m encoding so there are two bits in every instruction just to say that it's accessing registers only, not memory.
21:52:41 <b_jonas> Mind you, at that point they have worse problems with the instruction encoding, but still.
21:53:20 <ais523> actually one thought I've had
21:53:23 <b_jonas> And even with all the great vector instructions, you can't do away with the general register instructions, you still have to use them for conditionals etc.
21:53:32 <ais523> is a CPU where the /only/ memory accesses are pushes and pops on a set of stacks
21:53:42 <ais523> each of which is independent
21:53:50 <ais523> this solves all cacheing and aliasing problems
21:54:11 <ais523> although, of course, it's not so great for programming as you don't have any random-access memory
21:54:35 <b_jonas> ais523: yes, that would be very inefficient for programming
21:54:52 <ais523> I wonder what sort of programs can be written efficiently on a multiple-stack machine
21:54:57 <ais523> could you write a compiler, for example?
21:55:27 <ais523> let's say, a compiler that runs in O(n log n) in the size of the original program, and does optimizations on an AST
21:56:32 <b_jonas> ais523: doesn't forth sort of work like this, where there's a data stack, a jump stack, and even a limited size for loop stack? It also has main memory, and one of the stacks are accessible through main memory, but I think a variant where none of those stacks are acessible in the main memory would look very similar to forth.
21:56:57 <b_jonas> ais523: so there would be no constant-time reversal of a stack?
21:57:25 <ais523> no, also the stacks are conceptually infinite anyway
21:58:06 <b_jonas> ais523: and do you allow enough stacks? eg., can a program use 256 stacks?
21:58:09 <ais523> hmm, let's add a slow random-access permanent storage, like a hard disk or SSD
21:58:14 <b_jonas> I know that doesn't matter for the asymptotics, but still
21:58:18 <ais523> b_jonas: there are a lot but a finite number
21:58:20 <ais523> maybe 16
21:58:40 <b_jonas> 16 is too few unless you also have registers (or stacks limited to a small fixed depth)
21:58:52 <ais523> the main problem I have here is that this model can do program spawn-and-wait trivially
21:58:59 <b_jonas> or... wait
21:59:03 <ais523> but can't do multiprocessing at all well
21:59:27 <b_jonas> ais523: with the 16 stacks, would you allow directly reading and writing any of the top 16 elements? or just the top element?
22:00:12 <ais523> there's a reasonably large window at the top of the stack that's all readable and writable
22:00:17 <b_jonas> great
22:00:18 <ais523> again, finitely large
22:00:24 <b_jonas> in that case 16 stacks are enough
22:00:35 <b_jonas> because you can put multiple registers on the same stack
22:00:40 <ais523> actually maybe we should have fewer stacks, it might be more efficient
22:00:41 <ais523> b_jonas: yes
22:02:00 <b_jonas> Totally different, but there's a crazy home-made eso-hardware that tries to masquarade as forth-based, but actually has a stack of, I kid you not, two elements max depth.
22:02:31 <b_jonas> The docs at first tells it has four elements, but later admits that the bottom two are reserved for interrupt handlers so you can only use the top two if you don't want to lose the value.
22:02:42 <b_jonas> At that point, I don't understand what makes this stack-based.
22:03:50 <b_jonas> It's really an accumulator-based machine with zero-operand instructions only, since you can keep one thing (the accumulator) on the stack for a few instructions, but have to load a "register" from memory as the second operand, then run one instruction that uses the two values together.
22:04:04 <b_jonas> (Arithmetic, indirect store, or conditional jump.)
22:04:32 <b_jonas> I can buy that it was easy to implement it in hardware this way (since it also has very few instructions), but I totally don't buy that it's stack-based or in any way related to forth.
22:05:16 <b_jonas> This one is the opposite: you say it's stack-based, but actually it has enough general purpose registers for a risc machine.
22:05:51 <ais523> it's stack-based in that it uses stacks for /storage/, not in that it uses them for calculation
22:05:56 <b_jonas> Yep.
22:06:16 <b_jonas> Anyway, it's an interesting question. It's not obvious what it could do.
22:06:46 <ais523> your "L1 cache" is the top of the stacks
22:06:47 <b_jonas> It would have to be very different from normal random-access programs.
22:07:12 <ais523> they get swapped out if you push too much onto them to fit into the cache, but the swapping is very predictable and can be done in the background; in particular you can always do a linear load
22:08:21 <b_jonas> By the way, the next M:tG set seems to be graveyard-themed like Odyssey: they bring back madness (which is why zzo38 was talking about madness, I didn't understand why), and a new threshold variant
22:09:33 <ais523> yes, I know
22:09:35 <ais523> I follow M:tG
22:09:41 <b_jonas> yes, more than I do
22:10:41 <b_jonas> I'm surprised. It seems strange for them to bring back BOTH madness and threshold. Two such strange mechanics in one set? In Odyssey, madness was at least in a later set of the block.
22:10:46 <ais523> madness (if you discard this card, discard it into exile, then cast it for its madness cost or put it into your graveyard), delirium (if you have four or more card types in your graveyard, …), skulk (~ can't be blocked by creatures with higher power), investigate (place a Clue artifact token onto the battlefield with "{2}, sacrifice ~: draw a card")
22:11:04 <ais523> also apparently they tested threshold but didn't like the way it played
22:11:36 <b_jonas> Also, I think madness and threshold and other graveyard counting are mechanics I don't really enjoy playing with, because you have to build around them.
22:11:47 <b_jonas> Build the kind of decks I don't want to build around them.
22:11:54 <b_jonas> Decks that put cards to the graveyard.
22:12:10 <b_jonas> Can work if it's a whole set of course, but not too well in isolation.
22:14:23 <ais523> come to think of it, SoI only has four mechanics
22:14:24 <b_jonas> "let's say, a compiler that runs in O(n log n) in the size of the original program, and does optimizations on an AST" -- um, a compiler from what to what? I think you can do peephole matching on a tree in O(n log n) if you serialize the tree in a way that it's pre/postorder and the smaller weight child is closer to the parent than the larger weight child.
22:14:33 <ais523> Khans and Dragons each had six
22:15:01 <ais523> b_jonas: I'm thinking in general
22:15:22 <ais523> basically you want to be able to do a recursive tree pattern match
22:15:50 <ais523> hmm, for a specific example, let's say we want something that matches sexps against patterns, which allow * to mean "any sexp here"
22:15:54 <b_jonas> The problem is that a compiler also needs a symbol table, which is a dictionary, and I think that requires random access.
22:15:59 <ais523> and converts them to other patterns
22:16:31 <ais523> b_jonas: you could convert variables to lambdas and lambdas to stack references, Underload-style
22:16:34 <b_jonas> So the trees are no problem, but referring to O(n) symbols O(n) times in an arbitrary way is effectively random access.
22:17:02 <ais523> hmm, even more specific concrete example
22:17:13 <b_jonas> ais523: if the program is arbitrary, then it can refer to any symbol, even older ones
22:17:16 <ais523> s/(a $x $y)/(b $y $x)/g
22:17:28 <ais523> where sexps not starting with a and b are unchanged
22:17:36 <ais523> can a stack machine do this in O(n log n) time?
22:17:38 <b_jonas> ais523: hmm
22:17:41 <b_jonas> ais523: let me think
22:17:43 <ais523> clearly you can do it without the /g
22:18:52 <ais523> (also this regex syntax is highly dubious)
22:20:03 <b_jonas> ais523: I have the feeling that you can do that in O(n log n) time with a couple of stacks, let me try to figure out how exactly
22:20:14 <b_jonas> the number of stacks matter of course, because this is something you can't do with one tape
22:22:33 <b_jonas> ais523: first pass, annotate each node with the length (number of recursive nodes) of itself and children and grandchildren etc to a sufficient fixed depth.
22:22:40 -!- AnotherTest has quit (Ping timeout: 252 seconds).
22:23:02 <ais523> oh, you're assuming unbounded integers there
22:23:07 <ais523> admittedly this isn't a problem in practice
22:23:24 <b_jonas> ais523: no, only O(log n) size integers, which you can handle I think
22:23:34 <ais523> right, because of that
22:24:46 <b_jonas> In fact, let's say annotate each node with the length and head of itself and each close relative (including parent and nephew)
22:25:34 <b_jonas> Second pass: read the tree in sequence, and figure out where in the output sequence each symbol will move. For this, you keep track of the offset of how much each node moves, and when you encounter an "(a" or one of its relatives, you add or subtract the right weights.
22:25:47 <b_jonas> Third pass: sort everything, in O(log n) passes
22:25:54 <b_jonas> Fourth pass: fix it up to the output format
22:26:15 <b_jonas> I'm not sure this works, but I think it might.
22:26:43 <b_jonas> And there's probably a much easier way.
22:26:53 <b_jonas> If it works that is.
22:28:31 <ais523> hmm, actually that's a good point: can we sort a stack in O(n log n)?
22:28:42 <ais523> it's surely got to be possible but I'm not sure if any of the standard algorithms work
22:29:12 <b_jonas> ais523: yes, because you can sort in O(n log n) time with two or three _tapes_, that is, three to six stacks.
22:29:34 <ais523> hmm, which algo? quicksort seems promising
22:30:06 <b_jonas> ais523: much of Knuth vol 3 is about external sorting with tapes. In short, mergesort or its inverse.
22:30:32 <ais523> was wondering about mergesort
22:31:25 <b_jonas> ais523: however, radix sort also works here because you're keyed with numbers
22:31:34 <b_jonas> O(log n) long numbers
22:32:16 <b_jonas> also takes O(log n) passes
22:32:20 <ais523> haha, that's really dirty :-)
22:32:22 <ais523> works though
22:32:23 <b_jonas> it's not
22:32:24 <b_jonas> really
22:32:28 -!- lynn has joined.
22:32:57 <ais523> I tend to mentally react to anything that assumes integers are finitely large
22:33:08 <ais523> integers don't work like that in theory! only in practice
22:33:47 -!- Treio has quit (Quit: Leaving).
22:33:56 <b_jonas> ais523: my favourite algorithmic problem can be solved in O(n) time despite that it requires a sorting step, because the sorting is on keys O(log n) large
22:34:28 <ais523> err, doesn't that give you a total O(n log log n)?
22:34:33 <ais523> radix sort is O(n log k)
22:37:17 -!- AnotherTest has joined.
22:38:11 -!- AnotherTest has quit (Client Quit).
22:38:11 <b_jonas> ais523: it's in the ram model with, integers large enough to address O(n), so you use bucket sort
22:38:40 <ais523> that's cheating :-P
22:38:41 <b_jonas> ais523: in the ram model, even radix sort is O(n log n) time
22:39:01 <ais523> as I said, radix sort is O(n log k), where k is the maximum value of the things you're sorting
22:39:08 <ais523> this doesn't require assuming that integers are bounded
22:39:13 <b_jonas> yes, and k=O(n) here
22:39:21 <b_jonas> or maybe k=n**O(1)
22:39:23 <ais523> arguably in the ram model, all algorithms are O(1)
22:39:32 <ais523> because you can only store a finite amount of data
22:39:39 <ais523> sure there's a large constant factor, but you don't count that :-P
22:39:45 <b_jonas> ais523: bucket sort _doesn't_ work on arbitrarily large values
22:39:56 <b_jonas> it needs O(n+k) times if k is your largest possible integer
22:40:53 <b_jonas> Although I'm not sure if my algorithmic problem actually requires sorting, maybe that's just the lazy way to prove it works in O(n)
22:40:59 <b_jonas> I'll have to think about it
22:42:01 <quintopia> ais523: i'm not convinced. a simple counter could run forever as long as you keep adding memory, and it takes so long to step 64 gigs through all of its states that you have plenty of time to upgrade while it's running
22:42:29 <ais523> quintopia: well the RAM model b_jonas is talking about includes finitely large addresses
22:42:49 <ais523> although I guess you could pause the program, increase all the address sizes, then continue
22:43:46 <quintopia> ais523: then we'll have to count up in increments of *however many rams we've used up ach time we ran out of addresses*
22:44:15 -!- spiette has quit (Quit: :qa!).
22:44:27 <quintopia> and just remember what they had when we pulled them
22:45:16 <b_jonas> ais523: I haven't really thought about how fast it could be done on a real pointer machine (depends on the definition of the problem at that point). The interesting part of that problem to me is that it's possible but not trvial to do it in O(n**(1+epsilon)) time rather than O(n**(2+epsilon))
22:45:42 <b_jonas> And that I could use it as a great _educational_ example on what algorithm theory is about.
22:47:01 <b_jonas> Since the O(n**3) algorithm is obvious, and the O(n**2) algorithm is simple enough too, and I can show that the latter is faster, and can tell that there's an O(n**(1+epsilon)) time algorithm but that one is difficult.
22:48:16 <b_jonas> Except that I'm a bit confused.
22:48:36 <b_jonas> In that variant, the linear algorithm is actually O(n) and doesn't involve sorting.
22:49:19 <b_jonas> There's another variant where I'll have to think whether the quasi-linear algorithm can be done linearly, but in that case the exponents of the easy algorithms might be different, I'm not sure.
22:49:37 <b_jonas> Dunno, I'm tired.
22:52:17 <b_jonas> Ok, let me try to hastily assemble an M:tG deck or two since I both have to work and then will play M:tG tomorrow.
22:52:24 <b_jonas> And it's late.
23:16:06 -!- hppavilion[1] has joined.
23:24:07 -!- Sgeo_ has joined.
23:26:03 -!- Sgeo has quit (Ping timeout: 240 seconds).
23:30:44 -!- J_Arcane has joined.
23:34:43 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
23:35:59 -!- oerjan has joined.
23:47:37 -!- hppavilion[1] has joined.
23:47:40 <hppavilion[1]> `? inoric
23:47:42 -!- lynn has quit (Ping timeout: 260 seconds).
23:47:52 <hppavilion[1]> `? inory
23:47:52 <izabera> `? fnord
23:48:45 <HackEgo> inoric? ¯\(°​_o)/¯
23:48:45 <HackEgo> ​? ¯\(°​_o)/¯
23:48:45 <HackEgo> inory? ¯\(°​_o)/¯
23:49:13 <myname> what is fnord? what is fnord? fnord is the space between your pixels at your monitor. fnord is the reason lisp has that many parantheses. fnord is the color only the blind can see. fnord is the sound of a single clapping hand.
23:49:16 <hppavilion[1]> λ-calculus is the basis of normal purely-functional programming
23:49:49 <hppavilion[1]> `le/rn inory/Inorically, inory is when you say something is irony that really isn't
23:49:53 <HackEgo> Learned «inory»
23:50:42 <hppavilion[1]> SKI (or another CL) is the basis of normal epically-functional programming
23:51:10 <hppavilion[1]> And Turing machines^1 are^2 the basis^3 of imperative^4 programming^2
23:52:08 <hppavilion[1]> But really, there's no machine that corresponds to logic programming
23:52:17 <hppavilion[1]> I mean, there's actual logic, but that's pretty different
23:53:04 <hppavilion[1]> Actual logic isn't very horny
23:53:19 <hppavilion[1]> (That's a horn clause joke, ftr)
23:54:40 * oerjan swats hppavilion[1] for missing punctuation -----###
23:54:45 <hppavilion[1]> oerjan: Dammit xD
23:54:57 <hppavilion[1]> `le/rn inory/Inorically, inory is when you say something is irony that really isn't. Moron.
23:54:59 <HackEgo> Relearned «inory»
23:55:10 <oerjan> dammit again
23:55:31 <hppavilion[1]> oerjan: You didn't punctuate either xD
23:55:44 <oerjan> hppavilion[1]: it only applies to wisdoms hth
23:55:52 <hppavilion[1]> Oh
23:56:09 <oerjan> also, because `learn_append only works when things are punctuated.
23:56:48 <oerjan> `` sed -i 's/Moron./Someone who does this is an inorite./' wisdom/inory
23:56:49 <HackEgo> No output.
23:57:24 <hppavilion[1]> oerjan: How about we add le/rn_sub?
23:57:31 <hppavilion[1]> `cat le/rn
23:57:31 <HackEgo> sep="/"; [[ "$0" == *//* ]] && sep="//"; [[ "$1" == ?*"$sep"* ]] || exit 1; key="$(echo "${1%%$sep*}" | lowercase)"; value="${1#*$sep}"; [ -e "wisdom/$key" ] && verb="Relearned" || verb="Learned"; echo "$value" > "$(echo-p "wisdom/$key")" && echo "$verb «$key»"
23:57:40 <oerjan> hppavilion[1]: _sub?
23:57:48 <oerjan> what's that supposed to mean?
23:57:49 <hppavilion[1]> oerjan: Substitute
23:58:34 <hppavilion[1]> oerjan: It'd be shorthand for `` sed -i 's/from/to/' wisdom/name
23:58:54 <hppavilion[1]> For those who don't *nix pain be upon them
23:59:48 <oerjan> sounds a little limited.
2016-03-11
00:00:09 <hppavilion[1]> oerjan: Yeah, but it'd be nice
00:00:47 <oerjan> `culprits wisdom/fnord
00:00:49 <HackEgo> int-e ais523 oerjan
00:01:14 <oerjan> `` sed -i 's/paran/paren/' wisdom/fnord
00:01:17 <HackEgo> No output.
00:01:52 <oerjan> that's badly capitalized too
00:06:40 <oerjan> hppavilion[1]: are you familiar with the Warren Abstract Machine hth (i'm not really)
00:08:11 <hppavilion[1]> oerjan: I've heard of it, but don't remember it being abstract
00:08:49 <oerjan> looks pretty officially abstract imo
00:21:38 <oerjan> <myname> what was the language whose programs build a ring (i guess?) called? <-- capra i think
00:22:06 <oerjan> *cabra
00:22:26 <oerjan> except it's only semi-
00:22:34 <myname> sounds right
00:23:04 <myname> ah, burro is what i looked for
00:28:40 -!- lambda-11235 has joined.
00:29:28 <hppavilion[1]> oerjan: It would be pretty cool to see a useful language whose programs form a mathematical-in-nature structure
00:32:36 -!- p34k has quit.
00:38:21 <Phantom_Hoover> hppavilion[1], what do you even mean by that
00:38:40 <hppavilion[1]> Phantom_Hoover: Like cabra
00:45:19 <Sgeo_> Uh. Is it... normal for no-compete clauses to be in event waivers for attending an event?
00:45:23 <Sgeo_> Because that seems bizarre
00:45:35 <Phantom_Hoover> well that's the very narrow niche of cpressey's ventures into algebraic structures on programs
00:46:44 <Phantom_Hoover> which didn't get very far, imo, because he defined his algebras on programs up to computational equivalence, which is an incredibly nasty relation if you're looking at most nontrivial classes of program
00:51:37 <coppro> Sgeo_: ?????
00:51:58 <Sgeo_> The "Camp No Counselors Waiver and Release of Liability" contains this clause:
00:52:12 <Sgeo_> "9. I further agree that I will not directly or indirectly engage in any business that competes with Camp No Counselors, or solicit any person working on behalf of Camp No Counselors for any business that directly or indirectly competes with Camp No Counselors, for a period of three years following the Camp No Counselors event. "
00:52:30 <coppro> that's pretty unusual and probably unenforcable
00:54:03 <Sgeo_> I feel like I should hold off registering, though
01:02:05 <hppavilion[1]> Sgeo_: I think it's prohibiting you from starting a competitor, not from joining a competitor's camp
01:02:14 <hppavilion[1]> Sgeo_: So you don't steal their ideas :P
01:05:11 <Sgeo_> Still seems like a bit of a harsh restriction just from going once
01:05:39 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
01:24:46 <oerjan> <ais523> as I said, radix sort is O(n log k), where k is the maximum value of the things you're sorting <-- i recall from when reading about one of edwardk's experiments that sorting is actually O(n) if you interpret n as total input memory in bits.
01:25:01 <zzo38> A sign extend operation: x-=(x&s)<<1;
01:25:12 <oerjan> (his experiment was generalizing radix sorting to arbitrary data structures, i think)
01:25:55 <zzo38> (Where "s" is a number only with the sign bit of the input format set)
01:26:12 <oerjan> that is, if you consider the size of the integers you sort as irrelevant except for their contribution to total memory
01:27:26 <oerjan> https://hackage.haskell.org/package/discrimination
01:28:45 <ais523> zzo38: so (x&s) is either 0 or -1
01:28:59 <ais523> (-1)<<1 is undefined in C but -2 in two's complement?
01:29:04 <ais523> and adding 2 to a number doesn't sign extend it
01:29:06 <ais523> so I'm confused
01:30:28 <zzo38> No, the "x" is actually of a larger type than the input, but is input and zero extended into "x" initially
01:30:32 <oerjan> ais523: isn't it either 0 or minint?
01:30:44 <ais523> oerjan: oh right, good point
01:31:02 <ais523> and INT_MIN << 1 is kind-of awkward to define but is most reasonably defined as 0
01:31:21 <zzo38> As far as C program is concerned, x, s, and (x&s) are all non-negative initially (although the result might be negative)
01:32:47 <fizzie> ais523: AIUI, it's for turning a previously zero-extended value into a sign-extended one.
01:33:12 <ais523> ah right
01:34:59 <\oren\> isn't INT_MIN << 1 = INT_MIN - 1 = 0b111...110?
01:35:23 <\oren\> oh, wait, never ind
01:35:34 <\oren\> stupid two's complement
01:35:51 <\oren\> INT_MIN = 0b1000...00
01:38:39 <oerjan> \oren\: apparently it is really INT_MIN for a smaller int, cast into the larger one.
01:38:57 <oerjan> *int type
01:44:51 <\oren\> I'm going to color the nonstandard charatcers in my font demo.
01:44:58 <\oren\> What color should they be?
01:45:29 <hppavilion[1]> What, precisely, do "over" and "under" mean in math? I know what context they're used in and can often guess which one's right, but I don't know their strict definitions
01:46:13 <\oren\> over is how you pronounce a fraction bar
01:46:19 <\oren\> never heard under
01:47:49 <hppavilion[1]> \oren\: No, like "+ forms a group over the reals"
01:47:51 -!- jaboja64 has quit (Ping timeout: 264 seconds).
01:49:12 <\oren\> oh. that means that the tuple (+,ℝ) is a group
01:49:45 <\oren\> a group is a tuple of a operation and a set
01:49:54 <hppavilion[1]> \oren\: Yes, but what are the definitions of "over" and "under"
01:49:57 <hppavilion[1]> \oren\: I know what a group is xD
01:50:27 <myname> an operation is over a set if it is closed in it, i guess
01:50:48 <hppavilion[1]> myname: Then why do we say "closed over x"
01:50:54 <hppavilion[1]> myname: Why not just say "is over x"
01:51:18 <hppavilion[1]> myname: I think operations and functions are just always "over" values
01:51:24 <hppavilion[1]> That is probably the definition
01:51:28 <hppavilion[1]> Though I could check ##math
01:52:13 <hppavilion[1]> Checked
01:53:35 <\oren\> Dad says "+ is over ℝ" means the domain of the two operands is ℝ
01:54:46 <\oren\> you could also have a function f(x,y) "over ℝ and ℂ" meaning one operand is real and the other complex
01:58:55 -!- Elronnd has changed nick to realdonaldtrump.
02:01:06 -!- realdonaldtrump has changed nick to Elronnd.
02:02:45 <\oren\> 𝐓𝐑𝐔𝐌𝐏 𝐓𝐑𝐔𝐌𝐏 𝐓𝐑𝐔𝐌𝐏
02:04:53 -!- yorick has quit (Ping timeout: 250 seconds).
02:04:59 <hppavilion[1]> \oren\: All functions are closed over 𝕍. True fact.
02:07:27 <hppavilion[1]> (I think we should define ALL the bb letters)
02:08:08 <hppavilion[1]> 𝔹𝔹 is the set of bitmaps describing blackboard bold letters. hth.
02:08:22 <hppavilion[1]> `unidecode 𝐓𝐑𝐔𝐌𝐏 𝐓𝐑𝐔𝐌𝐏 𝐓𝐑𝐔𝐌𝐏
02:08:24 <HackEgo> ​[U+1D413 MATHEMATICAL BOLD CAPITAL T] [U+1D411 MATHEMATICAL BOLD CAPITAL R] [U+1D414 MATHEMATICAL BOLD CAPITAL U] [U+1D40C MATHEMATICAL BOLD CAPITAL M] [U+1D40F MATHEMATICAL BOLD CAPITAL P] [U+0020 SPACE] [U+1D413 MATHEMATICAL BOLD CAPITAL T] [U+1D411 MATHEMATICAL BOLD CAPITAL R] [U+1D414 MATHEMATICAL BOLD CAPITAL U] [U+1D40C MATHEMATICAL BOLD C
02:09:27 <hppavilion[1]> 𝕩𝕚 is the set of imaginaries produced from 𝕩
02:09:43 <hppavilion[1]> "Make Blackboard Bold Great Again"
02:10:16 <hppavilion[1]> \oren\: Think we need a `bb command for that?
02:14:40 -!- yorick has joined.
02:14:40 -!- yorick has quit (Changing host).
02:14:40 -!- yorick has joined.
02:18:48 <\oren\> 𝔸𝔹ℂ𝔻𝔼𝔽𝔾ℍ𝕀𝕁𝕂𝕃𝕄ℕ𝕆ℙℚℝ𝕊𝕋𝕌𝕍𝕎𝕏𝕐ℤ
02:18:51 <\oren\> 𝕒𝕓𝕔𝕕𝕖𝕗𝕘𝕙𝕚𝕛𝕜𝕝𝕞𝕟𝕠𝕡𝕢𝕣𝕤𝕥𝕦𝕧𝕨𝕩𝕪𝕫
02:18:54 <\oren\> 𝟘𝟙𝟚𝟛𝟜𝟝𝟞𝟟𝟠𝟡
02:19:00 <\oren\> hfwt
02:19:46 <prooftechnique> Nice
02:20:11 <lambda-11235> f(x, y) if over ℝ, and under 𝔽𝕚ℝ𝕖.
02:20:36 <\oren\> Oh yes, and the new version is out, featuring capital cursive and lowercase cursive, in the right codepoints
02:20:53 <\oren\> 𝒜ℬ𝒞𝒟ℰℱ𝒢ℋℐ𝒥𝒦ℒℳ𝒩𝒪𝒫𝒬ℛ𝒮𝒯𝒰𝒱𝒲𝒳𝒴𝒵𝒶𝒷𝒸𝒹ℯ𝒻ℊ𝒽𝒾𝒿𝓀𝓁𝓂𝓃ℴ𝓅𝓆𝓇𝓈𝓉𝓊𝓋𝓌𝓍𝓎𝓏
02:22:21 <prooftechnique> Very nice
02:22:44 <prooftechnique> I love the lowercase blackboard e :D
02:23:20 <prooftechnique> *subtle*
02:23:32 -!- boily has joined.
02:23:33 <prooftechnique> aesthetic
02:23:44 <boily> prooftechellonique.
02:23:50 <prooftechnique> Helloily!
02:26:22 <lambda-11235> I think over refers to the domain of a function and under refers to its range.
02:26:39 <hppavilion[1]> Hm...
02:26:43 <hppavilion[1]> Consider list theory
02:27:13 <hppavilion[1]> Pure lists, specifically. One might call it ZFl or ZFCl
02:27:33 <hppavilion[1]> How would one optimally define numbers with it?
02:28:11 <hppavilion[1]> The first way that comes to mind is f(n)=[[]]*n, where * is the bounded repetition (repn) operation
02:28:37 <lambda-11235> hppavilion[1]: Like |z| is a function over ℂ and under ℝ.
02:29:16 -!- mihow has quit (Quit: mihow).
02:29:41 <hppavilion[1]> The way more similar to the standard set definition is f(n)=[f(n--)], where -- is of course predecessor
02:29:52 <hppavilion[1]> lambda-11235: Interesting...
02:30:13 <hppavilion[1]> lambda-11235: Unless, of course, you include sgeoids
02:30:21 -!- lynn has joined.
02:30:33 <prooftechnique> I definitely read that as Zermelo-Flaenkel
02:30:42 <hppavilion[1]> Wait, no, then it's still under ℝ
02:30:58 <hppavilion[1]> In fact, |z| isn't under ℝ, it's under ℝx>=0
02:31:15 <hppavilion[1]> prooftechnique: Read what as Zermelo-Flaenkel?
02:31:19 <hppavilion[1]> ZF?
02:31:25 <prooftechnique> Zfl
02:31:27 <hppavilion[1]> Ah
02:31:28 <prooftechnique> *ZFl
02:31:42 <\oren\> ZFl
02:31:49 <hppavilion[1]> prooftechnique: One of the things I think math needs is a mathematical definition of naming things
02:32:14 <hppavilion[1]> m("Gaussian"++x) = m(x)+m(x)i
02:32:41 <hppavilion[1]> m("Gaussian real") = ℂ
02:32:49 <hppavilion[1]> (Maybe it should be a capital M?)
02:33:04 <\oren\> ℨ𝔢𝔯𝔪𝔢𝔩𝔬-𝔉𝔯𝔞𝔢𝔫𝔨𝔢𝔩
02:33:22 <boily> he\\oren\.
02:33:44 <boily> (that porthello was typeset in fraktur, but I'm too lazy for that, so please imagine it is.)
02:33:55 <\oren\> 今ボアリは
02:34:59 <\oren\> 𝔥𝔢\\𝔬𝔯𝔢𝔫\
02:35:01 <hppavilion[1]> prooftechnique: What I'm getting at is I want a function oe(n, s, d) that returns the optimal encoding of n as an element of s where lists can be of depth d
02:35:14 <hppavilion[1]> And is defined for all n in s
02:35:27 <prooftechnique> Hmm
02:35:33 <boily> `thanks \oren\
02:35:34 <HackEgo> Thanks, \oren\. Thoren\.
02:35:40 <hppavilion[1]> Where s is N, Z, R, C, etc.
02:35:48 <\oren\> ℑ 𝔣𝔬𝔯 𝔬𝔫𝔢 𝔱𝔥𝔦𝔫𝔨 𝔣𝔯𝔞𝔨𝔱𝔲𝔯 𝔩𝔬𝔬𝔨𝔰 𝔡𝔦𝔰𝔱𝔦𝔫𝔤𝔲𝔦𝔰𝔥𝔢𝔡 𝔞𝔫𝔡 𝔫𝔬𝔟𝔩𝔢.
02:35:52 <hppavilion[1]> (You can pattern match, and probably have to for those sets)
02:36:10 <hppavilion[1]> (So really, you're defining 4+ related functions that with the same name and one fixed argument)
02:36:51 <oerjan> <lambda-11235> hppavilion[1]: Like |z| is a function over ℂ and under ℝ. <-- i don't recall any such thing. "over" and "under" as hppavilion[1] describes applies to algebraic structures, not just any functions.
02:36:53 <hppavilion[1]> prooftechnique: We can assume tuples are just length 2 lists and sets are just lists where we ignore ordering
02:36:58 <prooftechnique> Okay, so what does "optimal" mean?
02:37:34 <hppavilion[1]> prooftechnique: You can define the standard operations (+, -, *, /) with it and it uses the least number of empty lists
02:37:37 <\oren\> 𝔈𝔵𝔠𝔢𝔭𝔱 𝔱𝔥𝔢 𝔨 𝔦𝔰 𝔱𝔬𝔬 𝔪𝔲𝔠𝔥 𝔩𝔦𝔨𝔢 𝔱𝔥𝔢 𝔱.
02:37:43 <oerjan> the reals are a group under addition, addition forms a group over the reals.
02:38:18 <hppavilion[1]> So optimality([]) = 1, optimality(l) = sum([optimality(i) for i in l])
02:38:23 <oerjan> and underlying set functor is a technical term, the right adjoint to the free structure.
02:38:34 <hppavilion[1]> optimum = min(encodings)
02:38:36 <prooftechnique> What's the EgoBot command that spits out the unicode info?
02:38:44 <hppavilion[1]> prooftechnique: unidecode?
02:38:50 <prooftechnique> `unidecode ⓚ
02:38:51 <hppavilion[1]> `help uni
02:38:51 <HackEgo> Runs arbitrary code in GNU/Linux. Type "`<command>", or "`run <command>" for full shell commands. "`fetch <URL>" downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert <rev>" can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/
02:38:51 <HackEgo> ​[U+24DA CIRCLED LATIN SMALL LETTER K]
02:38:53 <quintopia> helloily
02:39:01 <prooftechnique> `unidecode 𝓀
02:39:04 <boily> quinthellopia.
02:39:04 <HackEgo> ​[U+1D4C0 MATHEMATICAL SCRIPT SMALL K]
02:39:10 <boily> bonne nuitopia!
02:39:14 <quintopia> you arent sokay
02:39:15 <hppavilion[1]> prooftechnique: You can use multiple characters with unidecode
02:39:18 <quintopia> night
02:39:32 <prooftechnique> Oh, neat. Thanks.
02:39:39 <prooftechnique> But also, \oren\, see above
02:39:50 <prooftechnique> `unidecode ⓚ 𝓀
02:39:53 <HackEgo> ​[U+24DA CIRCLED LATIN SMALL LETTER K] [U+0020 SPACE] [U+1D4C0 MATHEMATICAL SCRIPT SMALL K]
02:39:57 <oerjan> also, i recall we pronounced binomial coefficients as "n over k", that's a different but similar use as fractions...
02:40:13 -!- boily has quit (Quit: YEARLY CHICKEN).
02:41:51 <oerjan> oh and another use: R^n is a vector space over the reals. then it's not the same as the underlying set.
02:41:58 <hppavilion[1]> oerjan: Never heard that
02:43:11 <\oren\> Oh, yeah I havent removed those yet
02:44:26 <oerjan> <hppavilion[1]> `help uni <-- HackEgo
02:44:38 <oerjan> 's help command takes no arguments.
02:45:27 <hppavilion[1]> Figured as such
02:45:38 -!- izabera has changed nick to izy.
02:47:09 <\oren\> 𝔉𝔘ℨℨ𝔜 𝔚𝔘ℨℨ𝔜 𝔚𝔄𝔖 𝔄 𝔅𝔈𝔄ℜ. 𝔉𝔘ℨℨ𝔜 𝔚𝔘ℨℨ𝔜 ℌ𝔄𝔇 𝔑𝔒 ℌ𝔄ℑℜ. 𝔉𝔘ℨℨ𝔜 𝔚𝔘ℨℨ𝔜 𝔚𝔄𝔖𝔑'𝔗 𝔙𝔈ℜ𝔜 𝔉𝔘ℨℨ𝔜 𝔚𝔄𝔖 ℌ𝔈?
02:47:21 <oerjan> AAAAAAAA
02:47:39 <oerjan> i cannot read that. anyway, food ->
02:48:20 <prooftechnique> That was very hard to read
02:48:25 <\oren\> 𝔣𝔲𝔽𝔽𝔶 𝔴𝔲𝔽𝔽𝔶 𝔴𝔞𝔰 𝔞 𝔟𝔢𝔞𝔯. 𝔣𝔲𝔽𝔽𝔶 𝔴𝔲𝔽𝔽𝔶 𝔥𝔞𝔡 𝔫𝔬 𝔥𝔞𝔦𝔯. 𝔣𝔲𝔽𝔽𝔶 𝔴𝔲𝔽𝔽𝔶 𝔴𝔞𝔫'𝔱 𝔳𝔢𝔯𝔶 𝔣𝔲𝔽𝔽𝔶 𝔴𝔞𝔰 𝔥𝔢?
02:48:37 <\oren\> wait wtf happened there?
02:48:43 <prooftechnique> That's a very good question
02:49:31 <prooftechnique> `unidecode 𝔽
02:49:32 <HackEgo> ​[U+1D53D MATHEMATICAL DOUBLE-STRUCK CAPITAL F]
02:50:25 <\oren\> fúźźý wúźźý wáś á béáŕ. fúźźý wúźźý hád ńő háíŕ. fúźźý wúźźý wáń't véŕý fúźźý wáś hé?
02:51:29 -!- izy has changed nick to izabera.
02:51:36 <\oren\> ¿ǝɥ sɐʍ ʎzznɟ ʎɹǝʌ ʇ,usɐʍ ʎzznʍ ʎzznɟ ˙ɹıɐɥ ou pɐɥ ʎzznʍ ʎzznɟ ˙ɹɐǝq ɐ sɐʍ ʎzznʍ ʎzznɟ
02:52:52 <hppavilion[1]> I just realized that my definition of optimality makes it so f(0) = [], f(n) = [P(n)]
02:53:36 <hppavilion[1]> prooftechnique: New definition of optimality: optimality([]) = 1, optimality(i:l)=1+optimality(i)+optimality(l)
02:53:51 <hppavilion[1]> Then again, the old definition only works when d=infinity
02:54:10 <hppavilion[1]> And the numbers are the naturals
02:54:17 <prooftechnique> Hmm
02:54:40 <hppavilion[1]> But still, if d is finite then you just output the list as a sum of nested lists of max depth d
02:54:43 <hppavilion[1]> Held in a list
02:54:52 <\oren\> `unidecode ɟʍʎ
02:54:53 <HackEgo> ​[U+025F LATIN SMALL LETTER DOTLESS J WITH STROKE] [U+028D LATIN SMALL LETTER TURNED W] [U+028E LATIN SMALL LETTER TURNED Y]
02:55:58 -!- ais523 has quit (Ping timeout: 248 seconds).
02:56:57 <prooftechnique> hppavilion[1]: I honestly don't follow what you're going for. Can you show a worked example of expected output for some input?
02:57:25 <hppavilion[1]> prooftechnique: I don't either; the goal is to figure out what the expected output is
02:57:44 <myname> ƒบzzγ พบzzγ พαร α вεαя. ƒบzzγ พบzzγ нα∂ ท๑ нαïя. ƒบzzγ พบzzγ พαรท'т νεяγท∂บzzγ, พαร нε?
02:58:12 <prooftechnique> All right, so say I want to optimally encode 4 in ℕ.
02:58:32 <prooftechnique> What's the limit on the list depth?
02:59:04 <hppavilion[1]> prooftechnique: I'm going for a function enc(n, S, d) that takes a number n that is a member of S, a set S which is from some finite collection of sets (probably N, Z, Q, R, or C), and a maximum list depth d (which is, of course, natural)
03:00:35 <prooftechnique> Okay, so given 4 in ℕ and setting d to 4, what's our encoding?
03:00:47 <hppavilion[1]> It should then return a list which is equal to n encoded optimally into a list of maximum depth d- one where +, -, *, and / can be defined- where the maximum list depth is d and it works for all S.
03:01:01 <prooftechnique> Does it just look like [[],[],[],[]]?
03:01:12 <hppavilion[1]> prooftechnique: I would guess [[[[]]]]
03:01:27 <hppavilion[1]> Mine has optimality 4, whereas yours is 5
03:01:42 <hppavilion[1]> Gah! Again, I hit the the-answer-is-fucking-obvious-moron barrier!
03:01:44 <hppavilion[1]> I think
03:01:55 <hppavilion[1]> Yeah, pigeonhole principal
03:02:25 <hppavilion[1]> prooftechnique: I give up. Have any idea how to encode arbitrary reals as lists?
03:02:33 <hppavilion[1]> Optimality be damned?
03:02:43 <prooftechnique> I don't think your definition of optimality works the way you think it does
03:02:55 <prooftechnique> Or I just don't understand your notation
03:02:59 <myname> well, define some way of a comma
03:04:07 <myname> ah, easy
03:04:31 <myname> (length of numbers before comma, [numbers])
03:04:39 <myname> there's your real
03:04:51 <prooftechnique> hppavilion[1]: You can Church-encode the reals, so that might get you somewhere
03:05:05 <myname> where positions might be made by (value, position)
03:05:17 <hppavilion[1]> prooftechnique: What do you not get? Or I don't get?
03:05:21 <myname> of course (a, b) is just [[a, b], [a]]
03:05:52 <hppavilion[1]> myname: Comma as in a decimal point?
03:05:59 <myname> yeah
03:06:20 <hppavilion[1]> myname: Oh, (a, b) is just [a, b] in theory
03:06:35 <myname> if [] are ordered, yes
03:06:45 <hppavilion[1]> myname: YES! THAT'S THE ENTIRE POINT!
03:06:46 <myname> you don't need the fancy positioning then
03:07:20 <myname> yo 12,345 is [2,[1,2,3,4,5]]
03:07:27 <myname> there is your real
03:07:28 <hppavilion[1]> myname: What if n=pi?
03:07:44 <myname> hppavilion[1]: define pi as a real
03:07:48 <hppavilion[1]> myname: I do
03:08:02 <myname> go for it
03:08:21 <myname> give me your definition of it
03:08:52 <hppavilion[1]> myname: Of what, precisely?
03:08:54 <hppavilion[1]> Of pi?
03:08:58 <hppavilion[1]> Not sure yet
03:08:59 <prooftechnique> You have optimality [] = 1; optimality (x:xs) = 1 + optimality x + optimality xs, which doesn't typecheck, if I follow your notation
03:09:00 <myname> in other words: how do you define pi without using pi in the reals?
03:09:22 <hppavilion[1]> myname: Oh, you want pi without pi? tau/2 obviously
03:09:25 <hppavilion[1]> Kidding, kiddin
03:09:26 <hppavilion[1]> g
03:14:02 <prooftechnique> 🙃
03:16:07 <hppavilion[1]> myname: How about... pi=4*summ([1:inf{2}), x)
03:16:13 <hppavilion[1]> I got that from a taylor series online
03:16:47 -!- lleu has quit (Read error: Connection reset by peer).
03:16:57 <hppavilion[1]> (that first argument to summ is an interval with a skip)
03:17:17 <hppavilion[1]> (Wait, no, it's not quite that
03:17:59 <hppavilion[1]> pi=4*(1+summ(x=[3:inf{2}), -1/x))
03:18:04 <hppavilion[1]> summ is, of course, summation
03:18:07 <myname> there you go, define addition and multiplication on your [] thingie
03:18:17 <hppavilion[1]> myname: Yep
03:18:19 <hppavilion[1]> Sounds about right
03:18:29 <hppavilion[1]> myname: It's just a haskelly list, but nestable
03:18:31 <hppavilion[1]> hth
03:18:46 <hppavilion[1]> And pur
03:18:46 <hppavilion[1]> e
03:18:56 <hppavilion[1]> setler killed all the impure sets
03:19:15 <hppavilion[1]> Dammit, that expression was wrong too
03:19:27 <hppavilion[1]> It's not n-m-o-q-p, it's n-m+o-q+p
03:19:35 <hppavilion[1]> MUCH harder to summation
03:19:42 <myname> no
03:19:57 <hppavilion[1]> myname: Really?
03:21:07 <myname> it's pi=4*(1+summ([3:inf{2}), (-1)^x/x))
03:21:19 <hppavilion[1]> Oh, I suppose you could turn step up to 4 and replace 1/x with 1/x+1/(x+2)
03:21:44 -!- contrapumpkin has joined.
03:21:45 <hppavilion[1]> https://www.math.hmc.edu/funfacts/ffiles/30001.1-3.shtml says otherwise
03:22:02 <myname> oh, wait
03:22:10 <myname> not ^x
03:22:16 <myname> because your sum is stupid
03:22:41 <hppavilion[1]> myname: It's the best I could do without latex
03:22:55 <hppavilion[1]> And even if I had latex, I'd need google because I don't latex very often
03:23:01 <hppavilion[1]> myname: It's stupid, but it works
03:23:27 <myname> pi=4*(summ([0:inf), (-1)^x/(2*x+1))
03:23:28 <hppavilion[1]> Apparently
03:23:36 <hppavilion[1]> OK, that works too
03:24:02 <hppavilion[1]> Here's a cool feature all low-level languages should have
03:24:06 <hppavilion[1]> <> function call notation
03:24:14 <hppavilion[1]> f<t>(*a)
03:24:21 <hppavilion[1]> It allows you to choose the return type
03:24:31 <hppavilion[1]> Allowing multimethods for output, too
03:24:37 <hppavilion[1]> (return type must be directly specified)
03:25:26 <hppavilion[1]> (Also, must be defined, though languages should be able to guess return type if they're similar but this specific type is undefined- e.g. float -> double
03:25:31 <hppavilion[1]> )
03:25:51 <hppavilion[1]> What would be good for a low-level language that hasn't been done yet?
03:30:05 -!- ^v^v has joined.
03:30:12 -!- copumpkin has quit (Ping timeout: 260 seconds).
03:30:12 -!- ^v has quit (Ping timeout: 260 seconds).
03:30:42 <tswett> @sassages-loud
03:30:42 <lambdabot> oerjan said 1d 1h 37m 54s ago: <tswett> My neural net thinks there's a historical language called Middle Worse. <-- PLAUSIBLE
03:31:27 -!- XorSwap has joined.
03:35:55 <hppavilion[1]> tswett: What would be good for logic programming? Any ideas?
03:36:24 <hppavilion[1]> Preferably something fairly minimal
03:42:02 <hppavilion[1]> Logical-event maybe?
03:44:03 <tswett> Hmmm.
03:44:59 <tswett> One might say I spend a lot of time trying to come up with "low-level" stuff.
03:45:41 <tswett> Look at, say, Al Dente, and tell me that's not low-level.
03:47:03 <tswett> (You might describe Al Dente as a low-level logical-event language...)
03:48:12 <shachaf> whoa whoa whoa
03:48:17 <shachaf> @mesdames-loud
03:48:17 <lambdabot> You don't have any messages
03:48:22 <shachaf> oerjan hasn't used that one yet
03:52:48 <tswett> @meddaged
03:52:48 <lambdabot> Unknown command, try @list
03:53:02 <tswett> @xessaxes
03:53:02 <lambdabot> You don't have any messages
03:53:18 <tswett> @pulp
03:53:18 <lambdabot> Maybe you meant: pl help
03:53:27 <tswett> @whelp
03:53:27 <lambdabot> help <command>. Ask for help for <command>. Try 'list' for all commands
03:53:28 <oerjan> `le/rn middle worse/Mïðal VVőrszü vvoràði nyëlv spöket af magyar inva̋ðerek Herefördshirben
03:53:31 <oerjan> leszármazott
03:53:34 <oerjan> argh
03:53:37 <HackEgo> Learned «middle worse»
03:53:41 <oerjan> stupid newline paste
03:54:07 <tswett> I can't read that.
03:54:38 <shachaf> `lastfiles
03:54:40 <HackEgo> wisdom/middle worse
03:54:48 <shachaf> `mkx bin/sedlast//sed -i "$1" "$(lastfiles)"
03:54:54 <HackEgo> bin/sedlast
03:55:01 <tswett> `cat bin/mkx
03:55:02 <HackEgo> key=$(mk "$@") && echo "$key" && chmod +x "$key"
03:55:35 <tswett> `cat bin/mk
03:55:35 <HackEgo> ​[[ "$1" == ?*//* ]] || { echo usage: "mk[x]" file//contents >&2; exit 1; }; key="${1%%//*}"; value="${1#*//}"; echo "$value" > "$(echo-p "$key")" && echo "$key"
03:55:40 <oerjan> `le/rn middle worse/Mïðal VVőrszü vvoràði nyëlv spöket af magyar inva̋ðereknek leszármazottok Herefördshirben äppröxima̋tely 1250.
03:55:44 <HackEgo> Relearned «middle worse»
03:56:02 <tswett> I still can't read that.
03:56:13 <oerjan> excellent!
03:57:34 <oerjan> tswett: imagine hungarians inexplicably invading herefordshire some time before 1250 hth
03:57:50 <tswett> Kokogadene.
03:58:48 <oerjan> tswett: google translate can't read that
03:58:56 <oerjan> although it thinks it's japanese
04:12:59 <oerjan> `le/rn middle worse/Mïðal VVőrszü vvoràði nyëlv spöket af magyar inva̋ðereknek leszármazottai Herefördshirben äppröxima̋tely 1250.
04:13:03 <HackEgo> Relearned «middle worse»
04:22:12 -!- XorSwap has quit (Quit: Leaving).
04:24:13 <tswett> Japanese is the most accurate guess as to what language that is.
04:24:25 <tswett> I just realized that the term "Video Graphics Array" doesn't really make sense.
04:24:35 <tswett> "Video graphics"? Isn't that what "video" means?
04:26:37 <\oren\> as opposed to text graphics
04:26:50 <\oren\> like the block and line charatcers
04:29:48 <tswett> Yeah, but why not just "video array"?
04:29:55 <tswett> Is it simply because that's too short?
04:30:01 <tswett> (Which, mind, is a perfectly good reason.)
04:31:27 <deltab> I guess to fit in with CGA and EGA
04:31:51 <\oren\> Maybe "video" refers to a greater refresh rate?
04:33:16 <tswett> deltab: that makes sense.
04:33:30 <tswett> What type of graphics does this thing provide? Text graphics? Nope, this thing provides video graphics.
04:35:39 -!- treaki_ has joined.
04:35:51 <deltab> CGA and EGA were both 60 Hz
04:37:01 <deltab> maybe the 256 color registers with 262,144-color global palette
04:37:51 <incomprehensibly> @so !haskell (\s t->putStrLn(s ++ show s ++ show t ++ t))"@so !haskell (\\s t->putStrLn(s ++ show s ++ show t ++ t))""--"--
04:37:51 <lambdabot> <unknown>.hs: 1: 1:Parse error: !
04:39:35 -!- treaki__ has quit (Ping timeout: 244 seconds).
04:39:36 <tswett> Now, the Game Boy has a CPU clock speed of 4.19 MHz, and a frame rate of 60 Hz. The screen size is 160 * 144. That means that the number of clock cycles per pixel-frame is...
04:39:45 <tswett> > 4190000 / (60 * 160 * 144)
04:39:46 <lambdabot> 3.0309606481481484
04:39:57 <tswett> About 3. That's not very many.
04:41:16 <tswett> Does that mean that if you're, say, walking around a map, then a very large percentage of the CPU is spent simply updating the screen?
04:41:46 <deltab> I don't think you'd have the CPU update each pixel separately
04:44:37 <tswett> Hmm. Looks like it had something to do with tiles and sprites.
04:44:43 <oerjan> @list so
04:44:43 <lambdabot> No module "so" loaded
04:44:47 <oerjan> @help so
04:44:47 <lambdabot> help <command>. Ask for help for <command>. Try 'list' for all commands
04:45:08 <tswett> Interesting how older computing technology is occasionally quite a bit more complicated than the newer stuff.
04:45:13 <tswett> Like, the overall complexity has only increased.
04:45:38 <tswett> But there are certain problems where the simple solution works nowadays, but wouldn't have worked back then, because of the computing resources required.
04:45:57 <deltab> yeah
04:46:30 <tswett> Like, what form does computer audio take nowadays? A big list of millions of numbers.
04:46:37 <deltab> and some things are reversed: palette cycling was easy and cheap on systems using color register, but nowadays you'd have to update each pixel
04:47:32 <tswett> What was it way back when? You'd have a few different synthesis things and some kind of code controlling them, I dunno.
04:47:39 <deltab> people have done that in web browsers by changing the palette bytes in a PNG and redisplaying it
04:48:08 <oerjan> @so
04:48:08 <lambdabot> Error: expected a Haskell expression or declaration
04:48:20 <deltab> yep, various waveform generators: square, sawtooth, noise, sine if you were lucky
04:48:21 <oerjan> @soh
04:48:21 <lambdabot> Maybe you meant: yow src show do
04:48:46 <oerjan> @so x >>= \a -> b
04:48:46 <lambdabot> do { a <- x; b}
04:48:52 <zzo38> Yes if it is a indexed color PNG then you can easily do that
04:49:37 <zzo38> (With any program that can display PNG, including but not limited to web browsers)
04:50:20 <deltab> you can, but to display it means the program has to decompress the whole image again, render it to a buffer, and copy the buffer into the screen buffer
04:50:46 <deltab> changing color registers was just a few writes
04:50:59 <deltab> hardware did the rest
04:51:06 <zzo38> Yes, even on Famicom you can change the colours by hardware
04:52:10 <deltab> but that went when 16, 24, 32-bit color came along
04:52:18 <FreeFull> @so fmap f a
04:52:19 <lambdabot> fmap f a
04:52:35 <FreeFull> @so fmap f . fmap g $ a
04:52:35 <lambdabot> fmap f . fmap g $ a
04:58:45 <deltab> the GameBoy had hardware scrolling, tiles, an overlay window, sprites, and four wave generators: http://fms.komkon.org/GameBoy/Tech/Software.html
05:00:18 -!- lambda-11235 has quit (Quit: Bye).
05:00:39 -!- lambda-11235 has joined.
05:07:36 <zzo38> The X window system does support having different depths and visuals and stuff and both read/write and read-only colormaps, decomposed and together; however which ones are supported depends on the X server in use (some might not support palettes, while on some others it might be read-only, too)
05:08:08 <zzo38> If computer hardware were made that supported all of these modes then the program could too
05:08:34 * deltab nods
05:42:37 -!- variable has joined.
05:46:40 -!- copumpkin has joined.
05:50:04 -!- contrapumpkin has quit (Ping timeout: 268 seconds).
05:52:31 -!- variable has quit (Quit: 1 found in /dev/zero).
05:56:49 -!- lynn has quit (*.net *.split).
05:56:49 -!- yorick has quit (*.net *.split).
05:56:50 -!- puckipedia has quit (*.net *.split).
06:02:47 -!- lynn has joined.
06:02:47 -!- yorick has joined.
06:02:47 -!- puckipedia has joined.
06:09:28 -!- hppavilion[1] has quit (Ping timeout: 244 seconds).
06:11:10 -!- hppavilion[1] has joined.
06:48:15 -!- ais523 has joined.
07:10:46 -!- lynn has quit (*.net *.split).
07:10:46 -!- yorick has quit (*.net *.split).
07:10:46 -!- puckipedia has quit (*.net *.split).
07:15:28 -!- diginet has quit (Quit: diginet has quit!).
07:17:18 -!- diginet has joined.
07:21:32 -!- lynn has joined.
07:21:32 -!- yorick has joined.
07:21:32 -!- puckipedia has joined.
07:28:27 -!- lambda-11235 has quit (Quit: Bye).
07:29:31 <\oren\> well, at least my whining to the unicode mailing list brought their attention to the fact that there's no standard machine readable documentation which lists all the characters in each "math variable alphabet"
07:30:16 <\oren\> instead it's only listed in the notes in the character list pdf.
07:31:37 <zzo38> Write one yourself if you need it, and publish them as public domain
07:33:34 <\oren\> that's sort of what I've done on my fontdemo page.
07:39:02 <b_jonas> Sgeo_: yes, that looks like a strange restriction to me.
07:43:34 -!- oerjan has quit (Quit: Nite).
07:47:20 -!- lynn has quit (*.net *.split).
07:47:20 -!- yorick has quit (*.net *.split).
07:47:20 -!- puckipedia has quit (*.net *.split).
07:54:40 -!- lynn has joined.
07:54:41 -!- yorick has joined.
07:54:41 -!- puckipedia has joined.
08:51:13 -!- earendel has quit (Ping timeout: 244 seconds).
08:55:29 <hppavilion[1]> Quick
08:55:36 <hppavilion[1]> Somebody define high-phenated
08:59:57 -!- AnotherTest has joined.
09:02:33 -!- olsner has quit (Ping timeout: 240 seconds).
09:14:57 -!- olsner has joined.
09:23:09 <ais523> hppavilion[1]: is it possible to get tswett's etymology bot to produce definitions too?
09:28:53 <fizzie> fungot: Define high-phenated.
09:28:53 <fungot> fizzie: but that's only to be used so rarely? :p. ugh i need to do pages that look suitable for a srfi.
09:29:08 <fizzie> Apparently it's not worth defining, it's too rare.
09:38:58 <b_jonas> `? phenate
09:39:11 <HackEgo> phenate? ¯\(°​_o)/¯
09:45:12 <zgrep> hppavilion[1]: If you're high-phenated, you are phenated on an elevated level, a level above the regular sort of phenation one gets at phenation clinics. If you're low-phenated, you've actually been deprived of phenation, probably also at a phenation clinic, though people do sometimes de-phenate themselves using various tools such as hammers and chainsaws.
09:45:37 <zgrep> fungot: What does "phenate" mean?
09:45:38 <fungot> zgrep: this particular professor was very interested in another ancient concept called a newspaper, then maybe näppärä would be fingery" or something
09:45:46 <zgrep> o.o
09:45:53 <hppavilion[1]> Whoa
09:46:02 <hppavilion[1]> That started out coherent and a bit horrifying
09:46:13 <fizzie> fungot: Are you actually from the future?
09:46:13 <fungot> fizzie: if you can hang around in the scheme world certainly seems hard.
09:46:41 <hppavilion[1]> I think I figured out how wormholes work
09:46:44 <fizzie> I'm guessing "ancient concept called a newspaper" is a verbatim quote. And "näppärä" is Finnish.
09:46:58 <hppavilion[1]> Ah
09:47:29 <fizzie> 2007-11-06 04:58:06 <oerjan> you might be interested in another ancient concept called a newspaper, then
09:48:19 <b_jonas> fungot: do you mean to imply that you're from the scheme world, but that world is now of the past only?
09:48:20 <fungot> b_jonas: add another zero in there. the generally preferred method of development is not entry level developer
09:49:10 <b_jonas> fungot: we're not supposed to get code written by replacable code monkeys? we've been doing this all wrong then! maybe that's why the application never seems to work.
09:49:10 <fungot> b_jonas: it would be lumpy from the star wars trilogy are among my favorite movies, but the throughput doesn't grow equally.
09:49:32 <b_jonas> fungot: is lumpy the ninth elf?
09:49:32 <fungot> b_jonas: s/ at/ in/, though.
09:49:47 <b_jonas> yeah
09:52:18 -!- mtve has quit (Quit: Terminated with extreme prejudice - dircproxy 1.2.0).
09:55:25 -!- lynn_ has joined.
09:56:01 -!- lynn has quit (Ping timeout: 240 seconds).
10:03:57 -!- lynn_ has quit (Ping timeout: 246 seconds).
10:08:52 <Lymia> fizzie, do you run zemhill?
10:09:27 <fizzie> Yes, if you can call it that.
10:09:44 <fizzie> (As in, I haven't touched it in a long while.)
10:10:08 <Lymia> Can you take a look at http://zem.fi/bfjoust/hill.git/ and see what's up with it?
10:10:38 <Lymia> All the objects are clearly there, but, master seems to be attached to an older commit for some reason
10:10:48 <Lymia> (When you clone it)
10:11:05 <fizzie> What's up is that I forgot to set up that post-update hook (for update-server-info) you need for the "dumb HTTP" serving mechanism to work right.
10:11:39 <fizzie> I was this close: || ... to actually doing that the other day, then got distracted by a shiny object.
10:11:45 <fizzie> Let's do that now.
10:13:15 <fizzie> Done. Also ran it once for good measure. Doing a pull now should work.
10:13:34 <fizzie> (Hopefully.)
10:13:52 <Lymia> opps
10:14:25 <Lymia> Is fixx
10:14:55 <fizzie> The shorter it takes to fix something, the longer I procrastinate with it.
10:15:27 <b_jonas> fungot, help fizzie fix those hooks already
10:15:27 <fungot> b_jonas: ( a real mathematical function!) from the sorting package) with modified structures.
10:15:53 <fizzie> Sounds like a game of Clue(do).
10:21:09 <izabera> how do i skip a makefile rule if none of the targets has been modified?
10:21:36 -!- hppavilion[1] has quit (Ping timeout: 244 seconds).
10:21:41 <izabera> makefiles are some dark magic i don't master
10:22:26 <izabera> i mean if none of the dependencies
10:26:22 <b_jonas> izabera: isn't that what make does normally? it skips those rules
10:27:18 <izabera> then i'm using it wrong
10:27:52 <izabera> headers: $(sources)
10:27:59 <izabera> generate headers here ...
10:28:09 <izabera> ^ want to skip it if none of the sources have been modified
10:29:22 <b_jonas> izabera: does your rule actually touch the file called headers?
10:29:41 <b_jonas> Make skips the rule if the dependencies have not been modified since headers was modified
10:29:52 <b_jonas> it needs something to compare to
10:30:07 <izabera> it doesn't touch them
10:31:19 -!- vodkode has joined.
10:31:21 <izabera> https://arin.ga/XLDTei/raw looks like this
10:33:16 <izabera> headers is executed every time
10:38:02 -!- lleu has joined.
10:41:14 <b_jonas> izabera: then put the actual output filenames as target operands too, like headers: struct.h proto.h\nstruct.h proto.h: $(src)\n\tcd src & { \\\n...
10:41:41 <b_jonas> otherwise Make has no way to guess when your headers are fresh enough
10:42:38 <izabera> now i'm using headers: $(src) src/proto.h src/struct.h and make with no parameters executes headers
10:50:44 -!- ais523 has quit (Ping timeout: 260 seconds).
10:52:54 <izabera> \o/ solved it
10:53:18 <izabera> https://arin.ga/4lg1We/raw thanks for the help b_jonas
10:53:20 <fizzie> A phony target will always execute if named, since there's no output file(s) to compare the input file timestamps to.
10:54:03 <izabera> now i unphonyed it
10:57:20 <fizzie> Sadly that's slightly wrong, in a way that's generally only problem for running it in parallel with -j.
10:57:47 <fizzie> A "foo bar: baz" rule doesn't say "use these commands to generate the files 'foo' and 'bar' from 'baz'".
10:58:10 <fizzie> Instead, it says: "use these commands to generate 'foo' from 'baz'" + "use these same commands to generate 'bar' from 'baz'".
10:59:15 <fizzie> In the serial case, it doesn't run twice, but that's only because after it's ran once, both outputs are fresh.
10:59:33 <fizzie> In parallel, though, it'll run the whole block of commands twice.
10:59:46 <fizzie> For details, see e.g. http://www.cmcrossroads.com/article/rules-multiple-outputs-gnu-make
11:05:00 -!- earendel has joined.
11:06:44 <izabera> ok so i split that in two rules
11:06:47 <izabera> should be ok, right?
11:14:57 -!- earendel2 has joined.
11:15:21 -!- earendel has quit (Ping timeout: 244 seconds).
11:18:49 <fizzie> That should be fine; the "one output per rule" case is simple, and you can actually generate the files separately.
11:19:17 <fizzie> (It's more of a problem if you have some funky external tool that makes you more than one file at once.)
11:21:16 <izabera> i have to change the $(obj): $(src) thing as well, right?
11:22:09 -!- zadock has joined.
11:22:49 <izabera> that was easy obj/%.o: src/%.c
11:23:01 <izabera> no :(
11:23:05 <izabera> doesn't work
11:24:51 <izabera> yay fixed it
11:25:14 <izabera> https://arin.ga/GsNbbd/raw
11:25:16 <izabera> thank you guys
11:27:13 <b_jonas> (make is an esoteric language)
11:39:11 -!- zadock has quit (Quit: Leaving).
11:39:43 -!- zadock has joined.
11:40:49 -!- zadock has quit (Remote host closed the connection).
11:45:18 -!- zadock has joined.
12:12:00 -!- jaboja has joined.
12:19:46 -!- zadock has quit (Quit: Leaving).
12:33:28 -!- sebbu has quit (Ping timeout: 264 seconds).
12:37:17 -!- sebbu has joined.
12:59:44 -!- yorick__ has joined.
13:01:37 -!- yorick has quit (Ping timeout: 240 seconds).
13:20:28 <prooftechnique> b_jonas: Most esolangs I've seen have more comprehensive docs than make
13:21:09 <coppro> `addquote <prooftechnique> b_jonas: Most esolangs I've seen have more comprehensive docs than make
13:21:30 <HackEgo> 1272) <prooftechnique> b_jonas: Most esolangs I've seen have more comprehensive docs than make
14:01:36 -!- earendel2 has quit (Read error: Connection reset by peer).
14:02:32 -!- earendel has joined.
14:06:03 <HackEgo> [wiki] [[Vitsy]] M https://esolangs.org/w/index.php?diff=46583&oldid=46581 * VTCAKAVSMoACE * (+5) Fixed dates.
14:43:33 -!- lambda-11235 has joined.
14:47:57 <b_jonas> wow
14:48:14 <b_jonas> do you recall that I said on this channel recently that I've never seen 7-zip crash?
14:48:20 <b_jonas> it crashed now.
14:58:36 * int-e ponders adding "7-zip support" to the topic... nah.
15:22:56 <fizzie> Backtrace contains run > _actual_start > really_start.
15:23:15 <fizzie> Somewhat surprised there isn't no_honest_for_reals_now_start.
15:41:15 <int-e> prepare_to_stop_starting_now
16:04:34 -!- J_Arcane has quit (Ping timeout: 240 seconds).
16:07:06 -!- jaboja64 has joined.
16:10:33 -!- jaboja has quit (Ping timeout: 240 seconds).
16:26:35 -!- spiette has joined.
16:41:19 -!- J_Arcane has joined.
17:04:39 <Lymia> <prooftechnique> b_jonas: Most esolangs I've seen have more comprehensive docs than make
17:05:08 <Lymia> Isn't this why stuff like scons or cmake got made
17:13:37 <fizzie> There's never enough build systems.
17:19:14 <nortti> we should create an esoteric build system. like autotools
17:22:22 <prooftechnique> I'll bet Sgeo's already done it
17:23:03 <prooftechnique> If we do create one, I vote for måke as the name
17:23:54 <Lymia> At least more modern languages seem to have decided to standardize on sane ones.
17:24:03 <Lymia> sbt, gradle, cargo and such.
17:27:27 <FreeFull> "info make" is actually reasonably comprehensive
17:28:28 -!- lynn has joined.
17:40:52 -!- FreeFull has quit (Quit: Rebooting).
17:42:51 -!- FreeFull has joined.
17:47:23 -!- mtve has joined.
17:51:34 <prooftechnique> Any recommendations for a good text-based adventure game? I'm looking for something new to do for a few days.
18:04:14 <zzo38> Well, I wrote interpreters for the Z-machine VM, so if the game you play is Zork then you can use that
18:16:51 <zzo38> I did read report of the game with AlphaGo, they say that both players made bad moves. But what computer hardware is AlphaGo running on?
18:17:44 <prooftechnique> It's a server farm. Last total I saw was something like 1200 cores and 400 GPUs or something crazy like that
18:18:07 <zzo38> At what clock speeds and what instruction set?
18:18:08 <prooftechnique> Sorry, 176 GPUs, as of October 2015
18:18:17 <prooftechnique> The details have not been released
18:18:36 <prooftechnique> And there's been no update to those totals since October, so it's probably more, now
18:33:48 -!- hppavilion[1] has joined.
18:47:25 -!- hppavilion[1] has quit (Ping timeout: 244 seconds).
18:58:04 -!- ais523 has joined.
19:20:43 <mtve> game of life question: is "o2bo$bo$2bo$o!" orphan? sorry being really dumb friday evening.
19:22:40 <fizzie> Lymia: I've seen enough griping about Gradle to confidently say not everyone thinks it's all that sane.
19:23:01 <Lymia> I haven't used it before.
19:23:03 <Lymia> I assumed it was sane.
19:23:27 <prooftechnique> It was very easy to set up when I was doing Minecraft mods.
19:23:32 -!- lynn_ has joined.
19:23:34 <prooftechnique> But beyond that, it was entirely inscrutable
19:23:46 <prooftechnique> If something broke, I doubt I'd have been able to even try to fix it
19:23:56 <fizzie> And sbt managed to be unbeliavably resource-hungry when I was doing a Scala thing (as in, running out of few gigs of memory when doing a toy project), but that was pretty early on, so maybe it's better (or worse...) now.
19:24:26 <Lymia> sbt needs to compile Scala.
19:24:30 <Lymia> Which is...
19:24:43 <Lymia> I'm pretty sure scalac's responsible for the memory use, not sbt, anyway.
19:26:10 -!- lynn has quit (Ping timeout: 244 seconds).
19:28:47 -!- J_Arcane has quit (Ping timeout: 244 seconds).
19:33:23 <prooftechnique> mtve: Definitely looks that way, though I'm definitely not an expert
19:33:24 -!- vanila has joined.
19:35:12 <mtve> most of wannabe breakthroughs appears to be simple bugs, so i guess i need to start catching it, finally.
19:35:30 -!- lynn_ has quit (Read error: Connection reset by peer).
19:35:49 <zzo38> When making a set of global variables to communicate with audio thread, exactly which of those variables should be volatile and which should not be?
19:38:15 -!- J_Arcane has joined.
19:40:45 <HackEgo> [wiki] [[Syms]] N https://esolangs.org/w/index.php?oldid=46584 * 50.161.94.113 * (+7366) ..Why not..
19:42:35 <Lymia> fizzie, I have 8 GB of memory, and haven't run out before, anyway.
19:42:51 <Lymia> When compiling large Scala projects. But... I might be missing something nasty.
19:42:59 <Lymia> It would not surprise me at all if it used excessive resouecs.
19:43:01 <Lymia> resources*
19:45:16 <HackEgo> [wiki] [[Syms]] https://esolangs.org/w/index.php?diff=46585&oldid=46584 * 50.161.94.113 * (+0) /* Interpreter */
19:48:36 -!- APic has quit (Ping timeout: 276 seconds).
19:51:00 <HackEgo> [wiki] [[Syms]] https://esolangs.org/w/index.php?diff=46586&oldid=46585 * 50.161.94.113 * (-440) /* Interpreter */
19:52:04 <HackEgo> [wiki] [[Syms]] https://esolangs.org/w/index.php?diff=46587&oldid=46586 * 50.161.94.113 * (+2) /* Interpreter */ Yes, I should use the preview button.
19:54:58 -!- hppavilion[1] has joined.
20:07:10 <mtve> "o2bo$bo$2bo$o2bo!" has 3 parents but "o2bo$bo$2bo$o!" has none, new GoE? what am i missing?
20:07:26 -!- lynn has joined.
20:10:31 <ais523> how do you read an RLE pattern? other than copy-and-pasting it into Golly?
20:11:26 <mtve> it's like "X..X\n.X..\n..X.\nX...\n"
20:13:19 <ais523> so o means set, b means blank, and numbers are prefix pepeat counts?
20:13:24 <ais523> with $ being newline, and ! being EOF?
20:13:39 <ais523> or, hmm
20:13:43 <mtve> seems so, i use golly indeed
20:13:49 <ais523> that doesn't explain the "bo" which is the wrong length and appears to be centred
20:14:29 <Lymia> mtve, are you searching for parents with size (n+2)*(n+2)?
20:14:37 <mtve> yep
20:14:40 <Lymia> A larger pattern can get smaller.
20:14:50 -!- XorSwap has joined.
20:15:48 <ais523> mtve: what are the rules? produce that pattern in a 4×4 box after one step? or do we have to allow blank space around it?
20:16:49 <vanila> you can use a SAT solver to do this
20:17:56 <mtve> 6x6 pattern surrounded by spaces produces 4x4 pattern in the center surrounded by spaces, yep, i'm using sat. i'm missing something obvious here.
20:18:11 <vanila> mtve, post it on the forum?
20:18:45 <mtve> i need to check everything first, it just could not be that simple.
20:18:48 <ais523> o4b2o$bo3b2o$2bo$3bo$4bo$2o$2o!
20:18:59 <ais523> mtve: that produces your pattern in the centre 4×4 after one step
20:19:25 <mtve> nope.
20:20:12 <ais523> err golly crashed and I put the blocks in the wrong place
20:20:22 <ais523> when recreating it from memory
20:21:02 <ais523> o3b2o$bo3bo$2bo$3bo$o3bo$2o!
20:21:04 <ais523> mtve: there
20:21:16 <Lymia> uh, oh
20:21:25 <vanila> http://www.ericweisstein.com/encyclopedias/life/GardenofEden.html
20:21:29 <Lymia> mtve, are you sure you have the right definition of garden of eden?
20:21:30 <vanila> It is not known if a pattern which has a father pattern, but no grandfather pattern exists (Gardner 1983, p. 249).
20:21:37 <vanila> what the hell?
20:21:44 <vanila> take a garden of eden and go forward one step
20:22:16 <ais523> vanila: you might be able to synthesize it from a different father
20:22:33 <vanila> oh I see!
20:22:33 <ais523> in the gardens in the article, most of the cells disappear after one cycle
20:22:35 <vanila> thanks
20:22:36 <mtve> vanula: yep, got trapped too. it means that one step can has many fathers
20:22:44 <vanila> I get it now :D
20:23:13 <Lymia> mtve, I believe the definition of "garden of eden" might not care about the surrounding cells.
20:23:23 <Lymia> That is, the 4x4 pattern produced does not need to be surrounded by blank squares.
20:23:50 <Lymia> "Each Garden of Eden configuration contains at least one finite pattern (an assignment of states to a finite subset of the cells) that has no predecessor regardless of how the surrounding cells are filled."
20:23:54 <Lymia> https://en.wikipedia.org/wiki/Garden_of_Eden_(cellular_automaton)
20:25:16 <mtve> i've red all wikis already, still don't get it
20:25:58 <vanila> I would have to make a solver
20:26:17 <vanila> Lymia, how does this compared with 'orphan'?
20:26:28 <vanila> http://www.conwaylife.com/wiki/Garden_of_Eden#Orphans
20:26:57 <vanila> Computer searches have revealed that there are no Gardens of Eden contained within a 6 × 6 bounding box.[3]
20:27:10 <mtve> ais523: try one step of $4b2o$b2o$3b2o$3b2o$5b2o$2b2o4$3bobo$2bo3bo$bob2o$3b2obo$bo3bo$2bobo5$2bo$2bo3bo$3b2obo$bob2o$bo3bo$5bo!
20:28:06 <int-e> is there a name for configurations with a predecessor, but no second order predecessor?
20:28:18 <int-e> and... are any of such configurations known?
20:28:26 <Lymia> mtve, I believe the definition of a garden of eden is.
20:28:38 <Lymia> For example, if the bounding box is a 4x4 square
20:29:02 <int-e> (iow, the configuration should not be a garden of eden, but all its predecessors should be)
20:29:02 <Lymia> There are no configurations of any size which produce that pattern in the bounding box, regardless of its surrounding squares
20:29:43 <mtve> ah, so alive cells must touch bounding box, yes, could be
20:29:51 <vanila> int-e, not sure if there's a name but there was a citation about it in the thing i linked 2 links ago
20:30:10 <mtve> Lymia: thanks for hints!
20:30:55 <int-e> vanila: oh thanks
20:31:31 -!- ais523 has quit (Ping timeout: 248 seconds).
20:31:46 <mtve> int-e: Conway itself will give you $50 for it
20:33:33 -!- lynn has quit (Ping timeout: 240 seconds).
20:34:07 <int-e> hmmm itself
20:34:18 <mtve> int-e: http://www.conwaylife.com/wiki/Lifeline_Volume_6, see The Grandfather Problem
20:34:51 <Lymia> mtve, under which rules.
20:34:52 <Lymia> X...XX\n.X...X\n..X...\n...X..\nX...X.\nXX....
20:34:55 <Lymia> This is a parent to that pattern.
20:35:26 <int-e> Hah. "Your obvious ideas are most likely wrong."
20:36:00 <mtve> Lymia: yes indeed.
20:36:40 <mtve> many thanks to everybody's time
20:37:54 -!- ais523 has joined.
20:38:20 <ais523> mtve: 10bobo$8bo5bo$9b5o$7bob5obo$9b5o$5bo3b5obo$6bo3b4o$3bo3bo6bo$bo6bo3bo$ 2b4o3bo$ob5o$2b5o$ob5obo$2b5o$bo5bo$3bobo!
20:38:48 <ais523> produces your pattern in an otherwise blank playfield after one tick
20:39:14 <mtve> wow, it was great
20:40:08 <int-e> alternating quantifiers are so difficult
20:40:39 <ais523> the block generators are really large in order to be able to get rid of them in one tick without interfering with any of the other parts of the pattern
20:40:45 <ais523> err, bit, not block
20:43:34 <mtve> Lymia: so no, as ais523 pointed, orphan==GoE
20:43:51 -!- p34k has joined.
20:44:09 <mtve> ais523: many thanks, now i've nailed error in my model.
20:45:32 <ais523> mtve: the orphan is the minimal part of a GoE that makes it a GoE
20:45:43 <ais523> and a GoE is any pattern that include an orphan somewhere
20:46:03 <mtve> got it
20:51:13 <hppavilion[1]> How about an algebraic language based on order theory rather than operations?
20:51:25 <hppavilion[1]> Or an ordered field language?
20:59:07 <prooftechnique> What does that mean? :v
20:59:31 <hppavilion[1]> prooftechnique: The programs form an ordered field
20:59:36 <hppavilion[1]> Hyperfield, no less
20:59:50 <ais523> while trying to figure out what was causing my kernel panics earlier today, I realised I was using an HP Pavilion right now
20:59:59 <hppavilion[1]> Awesome
21:00:00 <ais523> whereas hppavilion[1] isn't
21:00:10 -!- lynn has joined.
21:00:18 <ais523> this is possibly going to cause some sort of very small rift in the space-time continuum?
21:00:26 <hppavilion[1]> (A hyperfield has succ, pred, add, sub, mul, div, exp, root, log, tet, sroot, slog, etc.)
21:00:54 * hppavilion[1] looks out the window
21:00:54 <hppavilion[1]> OH MY GOD PONIES
21:01:05 <hppavilion[1]> (My sister is watching my little pony next to me)
21:01:18 <hppavilion[1]> I'm trying to remember how to define anticons
21:01:19 <ais523> I think I saw a pony in person today
21:01:36 <ais523> went for a walk in the countryside
21:02:07 <ais523> and instead of usual animals like cows and sheep, the fields were providing something different
21:02:23 <ais523> first one containing animals had ponies, next one had oxen (I think; could have been bulls but the horns were the wrong shape)
21:02:38 <ais523> then the next one had geese; not sure if they lived there, the fence certainly wasn't keeping them in
21:02:44 <ais523> then the one after that had chickens
21:03:01 <ais523> and only one more field had an animal in (not counting obviously wild birds in small numbers), and it was a cat
21:03:11 <ais523> again, who presumably didn't live there
21:04:30 <hppavilion[1]> @src (++)
21:04:31 <lambdabot> [] ++ ys = ys
21:04:31 <lambdabot> (x:xs) ++ ys = x : (xs ++ ys)
21:04:31 <lambdabot> -- OR
21:04:31 <lambdabot> xs ++ ys = foldr (:) ys xs
21:12:56 <nortti> ais523: aren't bulls and ox the same thing, except ox are castrated?
21:13:03 <nortti> *oxen
21:13:09 <ais523> not sure
21:13:12 <coppro> nortti: you're thinking steers
21:13:16 <coppro> oxen are a different species
21:13:17 <ais523> I'm not very good at recognising unusual farm animals
21:13:29 <ais523> also there's an emu farm nearish to where I live, but you can't see the emus from the road
21:14:19 <zzo38> Is it possible to make xterm to change the mouse cursor icon based on whether or not the program has requested to receive mouse inputs?
21:14:21 <ais523> not 100% sure why the farmers there decided to farm emus, but they did
21:14:53 <ais523> zzo38: xterm does know whether the program requested mouse inputs, so that seems like a patch that's possible to write without major changes
21:17:53 <zzo38> It seem would therefore be more easily to tell the mouse mode of the program when using the mouse then.
21:18:28 <zzo38> I do have the xterm source codes on my computer (since I needed a newer version of xterm than was included in the package manager)
21:18:48 <int-e> pointerMode... so yeah it definitely knows.
21:20:27 <int-e> it sounds like a useful addition to me as well
21:20:59 -!- lynn_ has joined.
21:23:39 -!- lynn has quit (Ping timeout: 246 seconds).
21:26:01 -!- spiette has quit (Ping timeout: 240 seconds).
21:26:11 <hppavilion[1]> I think someone should make Kitten, as seen in the topic
21:27:46 <hppavilion[1]> I'll take a crack at it
21:31:06 -!- yorick has joined.
21:32:45 -!- yorick__ has quit (Ping timeout: 244 seconds).
21:35:52 -!- yorick has quit (Ping timeout: 244 seconds).
21:36:11 -!- XorSwap has quit (Read error: Connection reset by peer).
21:36:42 -!- yorick has joined.
21:36:42 -!- yorick has quit (Changing host).
21:36:42 -!- yorick has joined.
21:39:58 <int-e> `? ligature
21:40:15 <int-e> oh lag.
21:40:18 <HackEgo> ligature? ¯\(°​_o)/¯
21:42:53 <Lymia> hrm
21:42:55 <Lymia> ais523, so.
21:43:12 <Lymia> I'm writing a program to collect every BFJoust program ever on the zemhill and EgoBot hills.
21:43:26 <ais523> Lymia: via looking at repo history, presumably?
21:43:29 <Lymia> Yeah.
21:43:49 <ais523> note that they work a bit differently: EgoBot doesn't save a program that's submitted into last place, zemhill does for one generation
21:43:58 <Lymia> You think it'd be interesting to put the results of that on the BFJoust page?
21:44:06 <ais523> that said, if a program is submitted into last, there's at least a decent chance it's completely meaningless
21:44:30 <ais523> !bfjoust meaningless HQ+99++
21:44:32 <EgoBot> ​Score for ais523_meaningless: 6.2
21:44:37 <Lymia> eh
21:44:43 <Lymia> I can't do anything about it.
21:44:46 <Lymia> If it's not tehre
21:44:47 <ais523> a /lot/ of bad programs have been submitted
21:44:48 <Lymia> there*
21:44:50 <Lymia> ... well, I can
21:44:59 <Lymia> I can search my IRC logs.
21:45:01 <ais523> (not to mention that nop.bfjoust used to actually get onto the hill on occasion)
21:45:03 <Lymia> But I have gaps
21:45:16 <ais523> also, in the very very early days of egojoust
21:45:21 <ais523> the hill was upside-down by mistake
21:45:26 <ais523> it rewarded more losses rather than more wins
21:45:36 <Lymia> (surprisingly enough, one of the bots from the Stack Overflow hill seems to be surviving on zemhill )
21:45:40 <ais523> we didn't notice right away (although we did notice pretty quickly)
21:45:46 <ais523> Lymia: which one is that?
21:46:31 <Lymia> http://zem.fi/git/?p=hill;a=blob;f=StackOverflow.Sp3000_ParanoidBot.bfjoust;hb=5dd28bafd2a08864e3639e0d3163645ed6bcbfe8
21:46:46 <Lymia> Seems pretty similar to some stuff I've seen on the main hill
21:46:54 <Lymia> <ais523> the hill was upside-down by mistake
21:46:54 <Lymia> <ais523> it rewarded more losses rather than more wins
21:46:56 <Lymia> uhm
21:46:57 <Lymia> So.
21:47:01 <Lymia> The best program is "<"
21:47:03 <Lymia> no contest.
21:47:10 <ais523> yes
21:47:19 <ais523> eventually someone submitted that when they realised what was going on
21:47:33 <zzo38> Another enhancement for xterm would be a UTCE version (which would be able to use the DEC Technical character set, as well as simplify a lot of the other codes involved in xterm)
21:47:39 <ais523> incidentally, "zero your own flag first but stay on the tape" rules are not 100% trivial, although they're probably pretty trivial
21:47:49 <ais523> zzo38: DEC Technical is a different set from the line-drawing one, right?
21:47:54 <ais523> that basically nobody supports?
21:48:23 <Lymia> Hrm.
21:48:25 <Lymia> Idea for a variant.
21:48:33 <Lymia> How'd BFJoust work out on a cyclic tape?
21:48:56 <zzo38> ais523: Yes, it is different from the VT100 character graphics set (which is fully compatible with Unicode, and is also compatible with many non-Unicode X fonts)
21:49:17 <Lymia> Depending on the circumstance
21:49:22 <Lymia> You might even get tricked into clearing your own flag.
21:49:27 <ais523> Lymia: assuming you can't trivially just reach the enemy's flag with < ?
21:49:34 <Lymia> Yeah
21:49:50 <ais523> it's not that different, probably a bit more complex
21:49:52 <Lymia> Flag [1-8 cells] Flag [1-8 cells] [loop]
21:49:55 <Lymia> Something like that.
21:50:03 <Lymia> With parity for +- and ><
21:50:53 <zzo38> Do you know what file and where in the file I would have to look to modify xterm to change the mouse pointer?
21:51:00 <Lymia> (256 configurations. \o/)
21:51:06 <ais523> zzo38: no
21:51:23 <ais523> Lymia: fwiw, the minimum tape length of 10 rather than 2 was intentional
21:51:30 <ais523> to guarantee you could get some safe decoys
21:52:04 <ais523> maximum of 30 was chosen to guarantee a chance of decoy overlap (higher maximum means you can't make as many assumptions about the minimum) and to ensure that you could get over to the enemy's flag in the middle of a lock loop and back again
21:52:10 <Lymia> I'd like it so that the minimum tape length is less than the minimum length between flags.
21:52:21 <Lymia> The danger if you go past the flag here isn't that you lose.
21:52:36 <Lymia> It's that you loop all the way back and clear your own flag.
21:53:39 <ais523> 10 and 30 make it so that cell 20 might be the opponent's flag or your own
21:54:28 <Lymia> Tape length 10 would have the flags at most 5 cells apart though.
21:54:34 -!- mihow has joined.
21:56:54 -!- hppavilion[2] has joined.
21:57:35 <ais523> Lymia: I was thinking more in terms of an 8-28 sized gap
21:57:56 <ais523> halving it to 4-14 wouldn't change the fundamentals of attack programs
21:58:08 <ais523> but you could set fewer decoys, which would make the crazy programs less crazy and I wouldn't really want that :-(
21:58:24 <Lymia> There's also the bidirectional aspect.
21:58:28 <Lymia> Which makes defense that much harder
21:58:33 -!- hppavilion[1] has quit (Ping timeout: 240 seconds).
21:58:36 <Lymia> You can't tripwire both < and >
21:58:40 <Lymia> Not easily, anyway
21:58:49 <Lymia> So I guess it'd be attack biased in the first place
21:58:53 <ais523> you can reverse tripwire it
21:58:58 <ais523> but yes, you'd have to set decoys both sides
21:59:28 <Lymia> I think you'd want parity on < and > too.
21:59:51 <ais523> it'd probably be possible to detect which direction the opponent was clearing in and then focus on it
21:59:57 <ais523> <>-direction, that is
22:00:08 <ais523> unlike +- direction that's quite expensive to change
22:00:58 <int-e> zzo38: oh it looks like the logic for the pointer is all over the place. xtermDisplayCursor() in misc.c actually changes the pointer, but there are many calls to that function.
22:01:32 <int-e> s/pointer/pointer shape (X11 term: Cursor)
22:07:55 <ais523> the chances of xterm's code not being hellishly crufty by this point are pretty low
22:08:02 <ais523> xterm has the dubious distinction of predating X
22:08:29 <ais523> (i.e. the graphics environment it's most closely associated with)
22:11:00 <zzo38> I know that xterm actually predates X
22:12:15 <zzo38> I don't know if writing a new one might be better or not
22:14:33 -!- dos has joined.
22:15:06 <Lymia> huh
22:15:23 <Lymia> nyuroki and growth2 clearly have a massive lead in points on zemhill
22:16:02 <Lymia> But margin3 somehow gets +5 ranks out of the markov scoring
22:17:37 <quintopia> hellymia
22:17:46 <Lymia> meow
22:17:51 <quintopia> is it bfjoust days again?
22:18:03 -!- hppavilion[2] has quit (Ping timeout: 240 seconds).
22:18:41 <Lymia> Maybe
22:20:00 <dos> I would like to see a game where you get to mess with the basic equations of life as you play...
22:20:02 <dos> Whoops
22:20:09 -!- dos has changed nick to hppavilion[1].
22:21:20 <Lymia> Interesting
22:21:28 <hppavilion[1]> I don't see many category-theoretical imperative languages.
22:22:32 <hppavilion[1]> Suddenly, E=MC^19
22:24:14 <zzo38> Whose decision was it to decide what to put into the standard X cursor font? Is there any explanation as to why some of them (such as gumby and rtl_logo) are there?
22:24:59 <Lymia> G=-6.674 * 10^-11
22:25:03 <Lymia> RIP universe.
22:25:12 -!- lynn_ has changed nick to lynn.
22:25:41 <lynn> zzo38: I remember looking through those a while ago
22:26:28 <lynn> Most of them look slapped together in about fifteen seconds, so
22:27:00 -!- AnotherTest has quit (Quit: ZNC - http://znc.in).
22:27:39 <Lymia> XC_kitchensink
22:27:42 <zzo38> I have heard the suggestion that "XC_trek" could be used to indicate "warp speed"
22:27:44 <lynn> "trek" is very dorky too. Oh, oh, and "star"!
22:27:50 <Lymia> Only thing missng.
22:28:03 <zzo38> The "i" in "missing" is also missing
22:28:44 * Lymia sharpens her cleaver
22:29:07 <lynn> https://camo.githubusercontent.com/f66eff40ca06a6d1e519ded2853e9b1acdaa048c/68747470733a2f2f662e636c6f75642e6769746875622e636f6d2f6173736574732f3438313931302f37353836372f62373838663662342d363064392d313165322d386132322d6266363932643465616234642e676966
22:29:09 <int-e> what's that talk about missing eyes...
22:29:24 <hppavilion[1]> So a 3-state binary turing machine is enough to be TC, correct?
22:29:30 <lynn> Uh that link is about ffffifty times longer than I expected it to be
22:30:49 <hppavilion[1]> If that's so, how does that not mean there are only 43046721 (3^16 (3^4^2, as it's binary and every state can connect to one of 4 other states for each symbol)) possible computations?
22:31:09 <zzo38> I am making a set of additional cursor shapes (to supplement the standard ones), so possibly XC_kitchensink could be added on???
22:31:49 <lynn> I need a coffee_mug with ᗡAᗡ on it
22:32:32 <zzo38> Yes, maybe you can make one so that it looks like that one
22:32:36 <Lymia> I can understand these as icons
22:32:38 <Lymia> But not as cursors
22:34:31 <zzo38> These are my extra cursor shapes http://sprunge.us/WOaJ I intend to eventually go up to 127
22:37:35 <Lymia> hppavilion[1], the tape is still infinite, no?
22:37:46 <Lymia> You could store a program on the tape.
22:37:59 <Lymia> That one of those 3^16 computations executes.
22:39:23 <zzo38> If you think one is missing then you can tell me that too I suppose, or draw your own and see if it should be included or not
22:39:45 <int-e> oh, ais523 is the expert on that 2,3 turing machine thing... I hadn't realized.
22:39:50 -!- ais523 has changed nick to callforjudgement.
22:40:00 -!- callforjudgement has changed nick to ais523.
22:40:13 <ais523> OK, at least that's a reasonably straightforward typo
22:40:17 <ais523> go to hit #esoteric to see what the ping's about
22:40:23 <ais523> hit the nick box instead, which is right above it
22:40:35 <Lymia> zzo38, XC_kitchen_sink. As a joke, doh.
22:40:54 <zzo38> Lymia: Yes you did tell me that one already, it may be added on
22:41:25 <ais523> hppavilion[1]: basically, the input is infinitely long (in my construction; unbounded input would do to explain the situation though)
22:41:32 <Lymia> Or XC_and_a_kitchen_sink
22:41:41 <Lymia> As 255
22:42:00 <ais523> which means that you can encode arbitrarily many different computations in the input
22:42:06 <zzo38> Yes that may be the other idea I suppose
22:42:21 <ais523> there's no "distance of information propagation" limit in Turing machines in general or in this one in particular
22:42:49 <ais523> there is a limit to how much information you can store in a given length of tape, obviously, but you just use longer and longer sections of the tape as the calculation goes on
22:44:41 <hppavilion[1]> People often talk about minimalist computers (e.g. Turing, Minsky, Kolmogorov)
22:44:47 <hppavilion[1]> Never heard of a "Minimalist OS" though
22:44:53 <lynn> Amazing Elm docs for divide : Rational -> Rational -> Rational from a Ratio package I found:
22:44:57 <lynn> Division. It's sort of like multiplication!
22:46:46 <int-e> it's funny because it's true.
22:47:11 <hppavilion[1]> I would like to see an OS written for a ~slightly-~extended TM
22:49:27 <zzo38> There are Forth-based operating systems, and I would want to have a simple Forth-based operating system for portable computer that also does SSH with Plan9 forwarding and one-time-pad encryption
22:50:03 <zzo38> Do you know how to draw the kitchen sink icon?
22:50:20 <hppavilion[1]> Hex (09A-F) alphabet, two unbounded integer registers
22:50:32 <lynn> int-e: Yesss. So true, but so useless.
22:51:25 <hppavilion[1]> Or maybe 16, not sure yet
22:51:43 <zzo38> When dealing with fractions, yes it is also multiplication similar to division too
22:51:47 <ais523> hppavilion[1]: Forth OS is pretty minimalist
22:51:54 <ais523> oh, zzo38 said that already
22:51:54 -!- Treio has joined.
22:52:00 <hppavilion[1]> ais523: I mean one that runs on a minimalist machine
22:52:11 <Lymia> Hrm
22:52:15 <ais523> it's more a category of OSes than anything else, though, it's /so/ minimal that you end up writing your own code to fill in the gaps, so different ones end up different
22:52:19 <ais523> hppavilion[1]: ah right
22:52:20 <Lymia> You'd be implying a contour.
22:52:35 <ais523> implementing processes in esolangs often isn't too hard
22:52:41 <ais523> with round-robin preemption
22:52:42 <hppavilion[1]> Every node can have a small ASM program (lencapped at somewhere from 1 to 8 instructions) that manipulates the state
22:53:07 <hppavilion[1]> ais523: I assume it's impossible to write a low-level OS in Haskell. Am I correct?
22:53:35 <ais523> hppavilion[1]: probably not, one of the general rules with Haskell is that you can do hyperefficient things if you /really/ want to
22:53:42 <ais523> but the program you write will no longer look anything like Haskell
22:53:48 <hppavilion[1]> Ah
22:54:25 <hppavilion[1]> Instructions for the minos machine can do things like move you on the tape (absolutely or relatively), input and output data (somehow), etc.
22:55:55 <Lymia> Oh.
22:56:00 <Lymia> Or a kitchen sink in profile
22:56:02 <Lymia> That'd be easy
22:58:55 <Lymia> https://paste.lymia.moe/lymia/83f4b00cbc70758214339acfb813abade1b849aa.png
22:58:58 <Lymia> Possibly something like this.
22:59:31 <hppavilion[1]> Here's an idea for a somewhat funny educational document
22:59:57 <hppavilion[1]> A fake catalog advertising abstract machines as if they were real devices to buy and use
23:04:50 -!- Treio has quit (Quit: Leaving).
23:05:41 -!- ais523 has quit.
23:22:17 <Sgeo_> https://xkcd.com/1002/
23:22:29 <Sgeo_> Arimaa and Go are being solved before Poker?
23:22:34 <int-e> https://mjg59.dreamwidth.org/40505.html ... when will we see pirate blinkenlights installations?
23:24:28 -!- oerjan has joined.
23:28:12 <Lymia> "and the outcome of sending a constant stream of "Set room lights to full" and "Open curtain" commands at 3AM seems fairly predictable."
23:28:37 <Lymia> One way to get them to start doing meaningful security.
23:30:38 -!- mbrcknl has quit (Write error: Connection reset by peer).
23:33:33 <Lymia> !bfjoust die <
23:33:35 <EgoBot> ​Score for Lymia_die: 0.0
23:43:25 -!- mbrcknl has joined.
23:45:57 <int-e> Sgeo_: what does solving Poker really mean... https://en.wikipedia.org/wiki/Cepheus_%28poker_bot%29 is close to optimal (in the game theory sense) strategy in the two-player version of Texas hold'em, but it doesn't do any opponent modeling or exploitation of weaknesses.
23:47:09 <int-e> see also https://en.wikipedia.org/wiki/Computer_poker_players which lists some other interesting programs...
23:49:13 <int-e> and adding players makes this problem harder (and subject to collusion, hmm)
23:50:50 <Lymia> wo
23:50:51 <Lymia> wow*
23:50:58 <Lymia> Switching my version gatherer to use git-hg instead of hg directly
23:51:16 <Lymia> Speeds up the version gathering to ~1-3 minutes rather than >10 minutes. :/
23:53:47 <int-e> what kind of versions are you gathering?
23:59:22 <Lymia> bfjoust programs
23:59:30 <Lymia> Looking through the whole revision history
2016-03-12
00:02:14 -!- jaboja64 has quit (Remote host closed the connection).
00:06:33 <zzo38> With game such as chess and Go and so on it would be theoretically possible that a sufficiently powerful computer should solve the game and always win, but with some games such case is more unclear, and in the case of Snakes&Ladders, nobody can make any decision to have any kind of advantage (although a calculation may be possible to determine how much advantage the first player has)
00:08:31 <oerjan> `quote 1272
00:08:41 <HackEgo> 1272) <prooftechnique> b_jonas: Most esolangs I've seen have more comprehensive docs than make
00:09:28 <oerjan> `` sed -i '1272s/^/<b_jonas> (make is an esoteric language) /' quotes
00:09:36 <HackEgo> No output.
00:09:39 <oerjan> `quote 1272
00:09:41 <HackEgo> 1272) <b_jonas> (make is an esoteric language) <prooftechnique> b_jonas: Most esolangs I've seen have more comprehensive docs than make
00:10:41 <int-e> Is make GNU make? I find info documentation quite useful and indeed comprehensive...
00:11:03 <oerjan> i dunno
00:11:13 <oerjan> maybe he mispled comprehensible
00:11:16 <hppavilion[1]> We need to simulate a universe.
00:11:24 <int-e> maybe.
00:11:34 <int-e> prooftechnique: any opinions?
00:11:38 <oerjan> hppavilion[1]: we're already doing that hth
00:11:46 <oerjan> you just happen to be inside
00:12:01 <oerjan> unfortunately, we didn't leave enough resources to recurse.
00:12:02 <myname> so, i have this data Foo = A | B | C deriving (Eq, Show) and i need to make something optional
00:12:38 <myname> right now i am soing data Bar = Optional Foo (Foo -> Bool) | Forced Foo
00:12:40 <hppavilion[1]> Nigh-Impossible Challenge: Computer that can play Nomic
00:12:48 <oerjan> hppavilion[1]: also your schemes seem to be escalating in a singularity
00:12:51 <myname> because the optional wouöd breal both eq and show
00:12:57 <myname> would break
00:13:07 <int-e> oerjan: is there any recourse in that situation? (there must be a better way to use this pun...)
00:13:24 <myname> is there a way to not use that "Forced" constrictor wi
00:13:35 <myname> without breaking eq/show?
00:13:49 <hppavilion[1]> oerjan: So, what the fuck.
00:13:56 <hppavilion[1]> What is the purpose of quantum physics?
00:14:06 <hppavilion[1]> Seriously.
00:14:15 <int-e> hppavilion[1]: create a black hole before the world ends
00:14:20 <hppavilion[1]> Not even #esoteric justifies quantum physics.
00:14:21 <oerjan> hppavilion[1]: it's part of how that simulation saves resources hth
00:15:13 <hppavilion[1]> Today's xkcd is deeply disturbing
00:15:31 <Riviera> why?
00:15:44 <int-e> hppavilion[1]: the last line reminded me of the "twitch installs arch linux" episode
00:18:31 <int-e> (what happened: some botnet took control, downloaded a Gentoo iso image, wrote it to /dev/sda and booted it... end of story)
00:19:09 <Riviera> same way docker wants to be installed
00:19:14 <int-e> and because even with the bots it was hard to type long commands, they put the commands into a pastebin, then executed them
00:19:24 <Riviera> right
00:20:32 <int-e> oh and they ran the job in the background... because the first attempts were interrupted by ^C :-) )
00:23:52 <int-e> hmm, stupid cloudflare. "Install and run [email protected]!" <-- I suspect this is SETI@home
00:24:58 <int-e> (source: http://twitchintheshell.com/ ... I have javascript disabled)
00:25:37 <oerjan> @tell prooftechnique <prooftechnique> If we do create one, I vote for måke as the name <-- only shachaf can make that one hth
00:25:37 <lambdabot> Consider it noted.
00:26:29 <shachaf> oerjan: help
00:27:07 <oerjan> shachaf: http://codu.org/logs/log/_esoteric/2016-03-11#172303prooftechnique
00:27:21 <shachaf> am i missing a pun
00:27:23 <oerjan> yes
00:27:48 <shachaf> what is it
00:27:57 * shachaf prepares to be antiswatted
00:29:02 <shachaf> what's going on tdnh hth
00:29:11 <shachaf> did i mention that i've been awake since 5
00:29:15 <shachaf> scow
00:30:40 <vanila> http://www.muppetlabs.com/~breadbox/sketch/
00:30:43 <oerjan> shachaf: i recommend google translate
00:30:57 <shachaf> oh
00:32:15 <Lymia> Can we make a page for GNU Make?
00:32:20 <Lymia> Or whatever the first version is
00:32:32 -!- APic has joined.
00:35:23 * oerjan antiswats shachaf. -----### a giant explosion occurs.
00:36:08 * int-e likes supernovae
00:38:12 <int-e> oh I guess this was just an antimatter swatter
00:38:28 <int-e> mostly harmless
00:42:34 <olsner> what's the pun in måke again?
00:43:31 <olsner> @ask boily what does it mean to "expand int-e"?
00:43:31 <lambdabot> Consider it noted.
00:44:04 <int-e> olsner: he meant the wisdom entry
00:44:37 <int-e> apparently boily's afraid of mixing languages.
00:45:12 <olsner> `? int-e
00:45:16 <HackEgo> int-e är inte svensk.
00:45:39 <int-e> `? boily
00:45:40 <HackEgo> ​"Only sane man" boily is monetizing a broterhood scheme with the Guardian of Lachine, apparently involving cookie dealing. He's also a NaniDispenser, a Trigotillectomic Man Eating Chicken and a METARologist. He is seriously lacking in the f-word department. He is also a renowned Capitalist.
00:46:51 <int-e> Gregor Gregor Gregor
00:46:51 <olsner> bot seems to be dead/not-here
00:46:51 <int-e> it's here, but resting?
00:47:23 <int-e> fungot: what about you?
00:47:23 <fungot> int-e: os 9? that's, um, ' elucidating'? don't you find this amusing. who needs a desktop when you have 52 different fnord competing for the same thing.
00:47:25 <int-e> @botsnack
00:47:25 <lambdabot> :)
00:47:36 <int-e> ... uh.
00:47:45 <olsner> @botsmack
00:47:45 <lambdabot> :)
00:48:45 -!- Sgeo has joined.
00:49:03 -!- Sgeo_ has quit (Ping timeout: 240 seconds).
00:50:59 <oerjan> <olsner> what's the pun in måke again? <-- you need to translate to hebrew hth
00:51:41 <int-e> nap time goodbye resting sleep mode activated...
00:54:41 <olsner> oerjan: oh, it's a norwegian/hebrew/#esoteric/make pun
00:55:54 <Lymia> fizzie, your chainlance repo is a mess. :(
01:04:13 <fizzie> I'm aware of that.
01:04:13 -!- XorSwap has joined.
01:05:23 <fizzie> (Anything in particular?)
01:06:48 <Lymia> like
01:06:49 <Lymia> everything
01:07:16 <Lymia> So, uhm
01:07:21 <Lymia> As I understand it
01:07:26 <Lymia> The web part needs Ruby?
01:07:43 <fizzie> Yes, but why would anyone be interested in the web part? It's horrible.
01:08:16 <Lymia> The visualization.
01:08:55 -!- Lilly_Goodman has joined.
01:09:40 <Lymia> Surely this can be rewritten into static HTML
01:09:58 <fizzie> I'm not sure what exactly you mean.
01:10:15 <Lymia> http://zem.fi/bfjoust/vis/
01:10:16 <Lymia> This part.
01:10:23 <Lymia> Statically rendered into .html files with no dependency on Ruby
01:10:48 <fizzie> Well, everything else than the json data files, sure.
01:11:12 <fizzie> But I wasn't expecing anyone else to want to take the website, so I didn't feel any reason not to try out this nanoc thing.
01:11:46 <Lymia> I need some kind of visualizer. :P
01:11:54 <Lymia> And there's a perfect good one right there.
01:12:42 <fizzie> Well. In theory, you can just take the "prerendered" one from the web, and replace the json files to change the contents.
01:12:54 <fizzie> I don't think there's anything dynamic baked in the generated HTML.
01:13:41 <fizzie> Also that's not "perfectly good", it's very incomplete (if a lot flashier) compared to the old egostats stuff.
01:14:17 <Lilly_Goodman> hello my friends, how are you?
01:14:25 <Lymia> What's it missing?
01:14:51 -!- hppavilion[1] has quit (Ping timeout: 264 seconds).
01:15:11 <Lymia> Oh
01:15:12 <Lymia> Just some analysis
01:15:17 <Lymia> Well, I suppose I can work on fixing that.
01:15:32 <fizzie> All the clustering stuff, at least.
01:15:50 <fizzie> Those used to be kind of interesting.
01:15:55 <Lilly_Goodman> hello my friends, how are you? you do?
01:16:27 <vanila> Lilly_Goodman
01:17:42 <oerjan> `bienvenido Lilly_Goodman
01:17:45 <HackEgo> Lilly_Goodman: ¡Bienvenido al centro internacional para el diseño y despliegue de lenguajes de programación esotéricos! Por desgracia, la mayoría de nosotros no hablamos español. Para obtener más información, echa un vistazo a nuestro wiki: http://esolangs.org/. (Para el otro tipo de esoterismo, prueba #esoteric en EFnet o DALnet.)
01:18:15 <Lymia> Maybe I'll work on it myself. :P
01:18:19 <Lymia> And PR at you
01:19:47 -!- hppavilion[1] has joined.
01:21:13 <oerjan> oh i had an idea the other day why so many people with canaima find their way here, and that maybe it's not really a mistake in their channel list after all
01:22:47 <oerjan> basically, if canaima presents channels in a long alphabetical menu, then it's quite likely that #esoteric is, entirely naturally, the last entry just before the #espana / #espanol ones...
01:23:34 <oerjan> so it could just people searching for the latter, and then seeing us just above the first search hit
01:23:37 <oerjan> *just be
01:28:05 <Lilly_Goodman> Hello oerjan you do?
01:28:26 <oerjan> Lilly_Goodman: i wonder how you found us
01:28:35 <oerjan> many people with canaima do, somehow
01:28:53 <oerjan> even if we are not a spanish chat
01:29:11 <oerjan> also, i'm waiting for the big Go game
01:29:15 <Lilly_Goodman> mmm
01:30:31 <Lymia> Hrm
01:30:42 <oerjan> even if i don't understand Go much either, but some here do
01:30:42 <Lymia> !ztest nop .
01:30:43 <zemhill> Lymia.nop: points -32.14, score 2.98, rank 47/47
01:31:10 <Lymia> !ztest parityscan (>)*9 ([(.)*-1]>>)*-1
01:31:10 <zemhill> Lymia.parityscan: points -34.00, score 2.25, rank 47/47
01:31:30 <Lymia> Not bad.
01:31:35 <Lymia> !ztest parityscan (>)*8 ([(.)*-1]>>)*-1
01:31:35 <zemhill> Lymia.parityscan: points -34.14, score 2.28, rank 47/47
01:31:55 <Lymia> ~2 point loss...
01:32:02 <Lymia> In exchange for a super-fast poke
01:32:03 <Lymia> hrm
01:32:10 <Lymia> !ztest parityscan (>)*4 (+)*10 (>)*4 ([(.)*-1]>>)*-1
01:32:11 <zemhill> Lymia.parityscan: points -36.67, score 1.55, rank 47/47
01:32:24 <Lymia> !ztest nop (>)*4 (+)*10 (>)*4
01:32:24 <zemhill> Lymia.nop: points -33.90, score 2.33, rank 47/47
01:32:29 * oerjan wonders if the game has been mentioned outside nerd forums, he tried the two top norwegian newspaper web pages yesterday and it wasn't mentioned on their front pages
01:33:00 * oerjan checks bbc news
01:33:22 <hppavilion[1]> oerjan: Damn you!
01:34:39 <hppavilion[1]> oerjan: Oh, you were talking about Go
01:34:41 <hppavilion[1]> Damn me!
01:35:23 <oerjan> hppavilion[1]: as i said the other day, "the only way to win the Game is not to care" hth
01:35:31 <oerjan> (paraphrased)
01:35:46 <oerjan> which perhaps some nerds find unreasonably hard
01:35:52 -!- Lilly_Goodman has quit (Ping timeout: 260 seconds).
01:36:45 <oerjan> it's really a nerd sniping game, isn't it
01:37:02 <hppavilion[1]> oerjan: Fair enough
01:37:30 <oerjan> nothing on front page, checking tech...
01:37:59 <hppavilion[1]> oerjan: It'll probably be some bullshit about AI
01:38:03 <oerjan> ah there it is
01:38:29 <zzo38> In Magic: the Gathering a lot more situations are possible, including the only way to win the game is to concede!!!
01:38:38 <oerjan> i expect slightly better than average from bbc
01:39:04 <hppavilion[1]> zzo38: Any ideas for GUTs for an esoverse off the top of your head?
01:39:51 <zzo38> hppavilion[1]: No
01:40:45 <hppavilion[1]> zzo38: How about off the bottom? Heads work like a deque, remember
01:40:55 <oerjan> 'On Thursday, the Korea Times reported that locals had started calling AlphaGo "AI sabum" - or "master AI".'
01:41:20 <zzo38> Not that either
01:41:27 <hppavilion[1]> Damn
01:48:54 -!- p34k has quit.
01:50:33 -!- Lilly_Goodman has joined.
01:52:50 <Sgeo> zzo38, ooh, details? (On conceding to win_
01:52:51 <Sgeo> )
01:53:37 -!- vanila has quit (Quit: Leaving).
01:53:46 -!- XorSwap has quit (Ping timeout: 252 seconds).
01:54:22 <zzo38> Sgeo: http://zzo38computer.org/textfile/miscellaneous/magic_card/puzzle.5
01:55:37 <Lilly_Goodman> hola
01:55:38 <Lilly_Goodman> hello
01:55:58 <Sgeo> Oh, so you're on a team with someone else, and [I didn't actually read the cards] there's a situation where conceding prevents you from having to do something that hurts a teammate?
01:56:04 <Sgeo> `welcome Lilly_Goodman
01:56:10 <HackEgo> Lilly_Goodman: 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.)
01:56:55 <zzo38> Sgeo: Well, look for the text of the relevant cards (they aren't many), and see if it is of help to you
01:58:48 <Lilly_Goodman> Sgeo and HackEgo thanks of the welcome
02:03:28 -!- XorSwap has joined.
02:12:41 <Lilly_Goodman> :'(
02:14:07 <fizzie> oerjan: The "Finnish BBC" (Yle) had an article.
02:14:48 <fizzie> I think this has been copyedited to be broken, possibly while updating it.
02:15:15 <oerjan> Lilly_Goodman: this channel is sometimes silent
02:15:35 <oerjan> next game in 1:15 hours https://www.youtube.com/watch?v=qUAmTYHEyM8
02:15:45 <fizzie> There's a sentence that says (translated): "Alpha Go's advantage is that it never tires or gets worried, Hassabis."
02:15:57 <fizzie> I think it's supposed to be "-- Hassabis said/says".
02:16:20 <fizzie> Everyone keeps repeating the number-of-atoms-in-the-universe thing.
02:16:40 <oerjan> Hassabisilla
02:17:06 <oerjan> fizzie: humans are bad with exponential growth mkay
02:18:04 <Lilly_Goodman> :-( no please
02:18:13 <fizzie> oerjan: Hassabis is the second, improved version of Hassa. (Compare the V.32, V.32bis modem standards.)
02:18:29 <oerjan> ah.
02:19:55 <zzo38> Even in the game of Pokemon card, a deck consisting of 1x Bulbasaur [Lv15] and 59 basic energy cards is guaranteed to win against a deck consisting of 1x Mewtwo [Lv53] and 59 basic energy cards.
02:20:51 <zzo38> (Even though the first deck in general is pretty bad, and in most cases the second deck is better.)
02:22:37 -!- Lilly_Goodman has quit (Ping timeout: 244 seconds).
02:23:10 <zzo38> (An alternative to Bulbasaur [Lv.15] would be Weedle [Lv.15] and that works too.)
02:30:05 -!- lynn has quit (Read error: Connection reset by peer).
02:35:02 -!- Lilly_Goodman has joined.
02:37:45 <Lilly_Goodman> :'(
02:47:46 <hppavilion[1]> Lilly_Goodman: Yes?
02:48:30 <oerjan> *chirp*
02:49:18 <Lilly_Goodman> hppavilion[1]: :-/?
02:50:39 * hppavilion[1] calls an exterminator to eliminate our cricket problem
02:50:47 <hppavilion[1]> Seriously, there should not be crickets indoors.
02:50:56 <oerjan> they're not indoors
02:51:08 <oerjan> it's just so silent we can hear through the walls
02:53:42 <Lilly_Goodman> :'(
02:55:07 <hppavilion[1]> oerjan: Why are there no functional-logic languages that can run on bare metal? xD
02:55:18 <hppavilion[1]> (Because THAT would be practical, of course)
03:12:08 -!- mihow has quit (Quit: mihow).
03:12:21 <Lilly_Goodman> I speak Spanish and English as I do not understand because I feel lonely and I do not have friends
03:17:23 -!- Lilly_Goodman has quit (Ping timeout: 248 seconds).
03:23:10 <hppavilion[1]> That was interesting.
03:23:29 -!- Lilly_Goodman has joined.
03:23:55 <Lilly_Goodman> hola
03:25:13 <Lilly_Goodman> I speak Spanish and English as I do not understand because I feel lonely and I do not have friends
03:33:05 -!- XorSwap has quit (Quit: Leaving).
03:37:09 <oerjan> i left the youtube channel open so i'd hear when it started but now they've got this annoying waiting music
03:38:44 <oerjan> which ruins the whole point
03:39:03 <oerjan> because i have to turn it off
03:44:11 <Lilly_Goodman> what?
03:44:25 <oerjan> oh now it'll start
03:44:38 <oerjan> Lilly_Goodman: https://www.youtube.com/watch?v=qUAmTYHEyM8 the go match
03:45:13 <oerjan> man vs. machine
03:45:21 <prooftechnique> It has begun
03:45:24 <Lilly_Goodman> a ok
03:45:26 <Lilly_Goodman> :-(
03:46:25 <oerjan> Lilly_Goodman: most of us here are geeks, when we talk we talk about geeky stuff
03:49:12 <Lilly_Goodman> I speak spanish...
03:49:43 <oerjan> most of us here do not speak spanish
03:51:06 <Lilly_Goodman> I no entiendo English
03:53:56 <Lilly_Goodman> :'(
03:54:06 <hppavilion[1]> Lilly_Goodman: Would you happen to be Venezuelan? If so, you've got the wrong channel
03:56:04 <Lilly_Goodman> In Venezuela speak spanish, no Engish
03:56:19 <Lilly_Goodman> hppavilion[1]: In Venezuela speak spanish, no Engish
03:56:23 <hppavilion[1]> Lilly_Goodman: I saw
03:56:32 <hppavilion[1]> Lilly_Goodman: Um, let me try google translate
03:57:48 <hppavilion[1]> Lilly_Goodman: Este es un canal de programación informática para surrealistas, básicamente. Si estabas buscando algún otro tipo de elementos esotéricos, recomiendo probar #esoteric en DALnet.
03:57:54 <Lilly_Goodman> hppavilion[1]: no entiendo ney
03:58:27 <oerjan> hppavilion[1]: we have a spanish translation already, you know
03:58:32 <oerjan> `bienvenido
03:58:40 <HackEgo> ​¡Bienvenido al centro internacional para el diseño y despliegue de lenguajes de programación esotéricos! Por desgracia, la mayoría de nosotros no hablamos español. Para obtener más información, echa un vistazo a nuestro wiki: http://esolangs.org/. (Para el otro tipo de esoterismo, prueba #esoteric en EFnet o DALnet.)
03:58:43 <hppavilion[1]> oerjan: I know, but I couldn't remember the command xD
03:59:00 <hppavilion[1]> Perhaps we need `welcome_spanish?
03:59:19 <Lilly_Goodman> HackEgo: donde hablan español??
03:59:28 <hppavilion[1]> Hackego is a bot
03:59:32 <Lilly_Goodman> hppavilion[1]: donde hablan español
03:59:35 <hppavilion[1]> Lilly_Goodman: lo que no entiendes?
03:59:39 <hppavilion[1]> Lilly_Goodman: No
03:59:48 <hppavilion[1]> Lilly_Goodman: https://translate.google.com
04:00:12 <coppro> I've got to hand it to them on one point
04:00:15 <coppro> they've been prompt every time
04:00:48 <Lilly_Goodman> hppavilion[1]: y nadie habla español en esta pagina?
04:01:12 <hppavilion[1]> Lilly_Goodman: Si
04:01:17 <hppavilion[1]> (only spanish I know)
04:02:00 <Lilly_Goodman> hppavilion[1]: y si yo hablo español y ustedes lo traducen a ingles, pueden?
04:02:15 <Lilly_Goodman> hppavilion[1]: lo que pasa es q estoy sola y sin amigos y nadie me quiere :-(
04:03:27 <hppavilion[1]> Lilly_Goodman:
04:03:27 <hppavilion[1]> Parece que usted puede tener una depresión. Simplemente no han encontrado su gente, sin embargo, probablemente
04:03:47 <hppavilion[1]> (No estoy capacitado para dar ayuda mental)
04:05:11 <Lilly_Goodman> hppavilion[1]: no quiero ayuda de depresion solo quiero saber si puede ser mi amigo?
04:06:05 <prooftechnique> `bemvindo
04:06:07 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: bemvindo: not found
04:06:15 <Lilly_Goodman> hppavilion[1]: lo q pasa es que me expulsaron de el #canaimasocial
04:06:16 <prooftechnique> Still no bemvindo? Shocking
04:06:31 <oerjan> `? wisdom.pt
04:06:32 <HackEgo> wisdom.pt? ¯\(°​_o)/¯
04:06:44 <Lilly_Goodman> hppavilion[1]: lo q pasa es que me expulsaron de el #canaima-social por decir perdon, que le parece eso?
04:07:07 <prooftechnique> `wercome
04:07:08 <HackEgo> ​エソテリックプログラミング言語のディザインとデプロイメントの国際な場所へようこそ!詳しく、ウィキを見て: http://esolangs.org/wiki/Main_Page。(他のエソテリック、irc.dal.netの#esotericへ)
04:08:20 <Lilly_Goodman> que es eso?
04:14:25 <prooftechnique> Canaima parece tranquilo. Usted debe tratar de senderismo. Usted puede hacer un montón de amigos durante una excursión.
04:14:51 <Lilly_Goodman> q fino gracias
04:25:56 <Lilly_Goodman> porque tan callados?
04:30:07 <oerjan> fines de semana son a menudo tranquilo aquí
04:32:35 <Lilly_Goodman> a ok entiendo y cuando es mas divertido aqui?
04:34:33 -!- treaki__ has joined.
04:38:29 -!- treaki_ has quit (Ping timeout: 244 seconds).
04:38:43 <Lilly_Goodman> a ok entiendo y cuando es mas divertido aqui?
04:43:35 -!- oerjan has quit (Quit: Later).
04:49:54 -!- hppavilion[1] has quit (Quit: Leaving).
04:54:33 <Lilly_Goodman> oh
04:59:49 -!- Lilly_Goodman has quit (Ping timeout: 260 seconds).
05:02:00 <\oren\> I don't know how to evaluate who's winning
05:07:20 <\oren\> zzo38: can you tell who's winning in a go match?
05:07:27 <pikhq> \oren\: That's a Hard Problem.
05:08:30 <\oren\> yah, that's why i asked a human instead of one of our bots
05:08:43 <izabera> one of the commenters at the alphago challenge is a 9 dan professional player and the best he could do is to roughly guesstimate the score
05:11:21 <zzo38> \oren\: I don't know?
05:11:40 <zzo38> You could calculate the score from the current position but if the game is not finished it won't tell you who is winning.
05:12:29 <pikhq> Evaluating the strength of a position in Go is not just hard for computers, it's hard in general.
05:16:39 <\oren\> aww
05:16:58 <\oren\> well, actually, that's good
05:20:15 <\oren\> but somewhat annoying for the spectator
05:21:26 <izabera> how do you tell who's winning in chess?
05:29:06 <\oren\> I think yoyu count how many pieces they have left and which kinds
05:29:46 <zzo38> Yes you can do that in chess at least, which provides some more easily estimate I suppose
05:32:05 -!- oerjan has joined.
05:33:35 <\oren\> helloerjan
05:34:26 <oerjan> yoren
05:34:53 <\oren\> are you watching α碁?
05:35:20 <oerjan> yes
05:37:21 <shachaf> <shachaf> Why did it take the computer a minute and a half at the beginning of the game to respond to what seems like a very obvious opening move that you could precompute the response to?
05:38:57 <izabera> they ran /bin/alphago --suspense=7
05:39:35 <oerjan> shachaf: iiuc the computer doesn't have any opening book
05:39:42 <izabera> but why
06:02:22 <\oren\> `? iiuc
06:02:28 <HackEgo> iiuc? ¯\(°​_o)/¯
06:04:59 <oerjan> `learn iiuc i understand iiuc correctly
06:05:03 <oerjan> `learn iiuc i understand iiuc correctly.
06:05:06 <HackEgo> Learned 'iiuc': iiuc i understand iiuc correctly
06:05:08 <HackEgo> Relearned 'iiuc': iiuc i understand iiuc correctly.
06:09:15 <shachaf> `? testing
06:09:16 <HackEgo> Testing can only do so much.
06:09:29 <shachaf> `learn Testing can do so much
06:09:34 <HackEgo> Relearned 'testing': Testing can do so much
06:09:42 <shachaf> `sedlast s/$/./
06:09:51 <HackEgo> No output.
06:10:03 <shachaf> Hmm, maybe it should cat lastfiles too.
06:10:07 <shachaf> `? testing
06:10:08 <HackEgo> Testing can do so much.
06:10:21 <oerjan> DEFINTELYI
06:13:34 <int-e> `cat bin/sedlast
06:13:35 <HackEgo> sed -i "$1" "$(lastfiles)"
06:13:43 <int-e> `cat bin/lastfiles
06:13:44 <HackEgo> hg log -l 1 --template "{files}\n"
06:13:49 <int-e> ah
06:14:00 <int-e> sorcery and witchcraft
06:23:16 -!- hppavilion[1] has joined.
06:23:22 <int-e> how does alphago manage time anyway? is it always taking 1:30 minutes (decreasing slowly) per move or is it "taking time to think" sometimes, playing obvious moves more quickly?
06:23:26 <hppavilion[1]> OK, it's safe now
06:24:51 <int-e> anyway, after an exciting fight starting in the top left corner, it looks like alphago stands quite a bit better already. too bad.
06:25:01 <oerjan> hppavilion[1]: :P
06:25:05 -!- Sprocklem has quit (Quit: brb).
06:25:27 <hppavilion[1]> oerjan: I had some idea earlier I'm now trying to remember xD
06:28:56 -!- Sprocklem has joined.
06:29:20 -!- Sprocklem has changed nick to Guest55048.
06:29:56 <hppavilion[1]> A language based on nothing but arrows and brackets (asciicized)
06:30:45 -!- Guest55048 has quit (Changing host).
06:30:45 -!- Guest55048 has joined.
06:31:57 -!- Guest55048 has changed nick to Sprocklem.
06:32:04 <hppavilion[1]> Hm...
06:59:51 -!- hppavilion[1] has quit (Ping timeout: 264 seconds).
07:03:29 <int-e> oh... final fight
07:21:44 <oerjan> lee on overtime again
07:22:35 <int-e> well, last ditch effort, a fight he cannot hope to win
07:22:52 <int-e> that's admirably fighting spirit though... and a great show for spectators
07:23:16 <int-e> of course, if that group at the bottom lives, then that would turn the game around
07:23:27 <int-e> I just don't see it.
07:24:43 <pikhq> I admit I'm really weak at Go strategy, but I agree.
07:27:59 -!- Sprocklem_ has joined.
07:28:23 -!- Sprocklem_ has changed nick to Guest91351.
07:28:34 -!- Sprocklem has quit (Ping timeout: 260 seconds).
07:30:59 -!- lambda-11235 has quit (Quit: Bye).
07:37:23 -!- lleu has quit (Quit: That's what she said).
07:46:24 <oerjan> that was a fast move by alphago
07:57:37 <int-e> too many kos on board... I guess we get to find out whether alphago has inherited the monte carlo bot's weaknesses in that area
07:57:43 <int-e> err bots'
07:58:00 <oerjan> :P
08:08:01 <shachaf> `? haiku
08:08:12 <HackEgo> ​🀨や⛄
08:08:18 <shachaf> `quote HIRAGANA
08:08:20 <HackEgo> 1260) <mauris> MAHJONG TILE AUTUMN / HIRAGANA LETTER YA / SNOWMAN WITHOUT SNOW
08:13:42 <int-e> over
08:14:32 <oerjan> `unidecode 🀨や⛄
08:14:34 <HackEgo> ​[U+1F028 MAHJONG TILE AUTUMN] [U+3084 HIRAGANA LETTER YA] [U+26C4 SNOWMAN WITHOUT SNOW]
08:18:44 <oerjan> `unidecode -–
08:18:45 <HackEgo> ​[U+002D HYPHEN-MINUS] [U+2013 EN DASH]
08:41:08 -!- oerjan has quit (Quit: Nite).
08:41:13 -!- yorick__ has joined.
08:44:01 -!- yorick has quit (Ping timeout: 240 seconds).
08:51:33 -!- yorick has joined.
08:53:18 -!- yorick__ has quit (Ping timeout: 248 seconds).
09:12:34 -!- AnotherTest has joined.
09:45:06 <fizzie> int-e: It definitely played some "forced" moves very quickly.
09:45:19 <fizzie> Well, "very" -- not as quickly as a human, but noticeably faster than others.
09:46:02 <fizzie> I'm sure someone's already plotted the timing.
09:47:06 <fizzie> http://i.imgur.com/22zZDSZ.png
09:47:21 <fizzie> (Thanks, r/dataisbeautiful.)
09:47:45 <fizzie> That's for the first match, but it's clearly different from the human.
09:48:04 <fizzie> Except for turn 52.
09:49:49 <fizzie> The intro-to-AI course tournament I keep mentioning every now and then allocated 1 hour of (single-thread) CPU time to each participant, and watching how they manage time was kind of interesting.
09:50:51 <fizzie> For each bot, my result page plots included a graph of turn/cumulative time used, with one line for each game they played, and colored according to win/tie/loss.
09:50:59 <fizzie> The results were nicely distinctive.
09:52:25 <fizzie> http://users.ics.aalto.fi/htkallas/ai2012/img/cpu_ajeeb.png <- there's one example, where the bot clearly has three separate strategies depending on how much time it has left.
09:53:18 <fizzie> Or I guess the first turning point could also depend on how many moves it has made -- the games are so grouped initially, it's hard to tell.
09:55:37 <fizzie> But there's an obvious "start going fast when you have only 100 seconds left" mode, and also a faster-than-midgame opening mode, which might last either for the first 300 seconds or 40 moves. And those changes are so abrupt, it's clearly a programmed-in feature.
09:55:56 <fizzie> (Whereas the general sloping rightwards is probably just a consequence of positions getting simpler.)
09:56:16 <fizzie> http://users.ics.aalto.fi/htkallas/ai2012/details.xhtml has same plots for all the 2012 participants.
09:57:59 <fizzie> (Also I haven't worked for the ICS department for the last three years, but they don't seem to be in a hurry to clean my personal web directory.)
10:00:26 <fizzie> http://users.ics.aalto.fi/htkallas/ai2012/img/cpu_justice.png and this one on the other hand clearly has some sort of a gradually decreasing time-per-turn thing.
10:00:55 <fizzie> (The occasional flat horizontal lines are probably because the game in question has some situations where there's only one legal move.)
10:01:33 <fizzie> Holy monologue, Batman.
10:10:11 -!- bender| has joined.
10:38:49 <izabera> :)
11:00:34 -!- bender| has quit (Quit: lel wait a sec).
11:32:12 -!- augur has quit (Read error: Connection reset by peer).
11:32:19 -!- augur has joined.
11:36:26 -!- bender| has joined.
11:50:35 <Lymia> uuuh
11:50:45 <Lymia> fizzie, can you paste your test/reference.out
11:51:03 <Lymia> In the chainlance repo.
11:51:11 <Lymia> I'm pretty sure something's wrong with my nodejs
11:51:16 <Lymia> Because I'm getting lines like ">>><<<<<<<<<<XXXXXXXX XXXXXXXXXXXXXXXXXXXXX NaN"
11:55:02 <izabera> `` tac -r -s $'.\|\n' le/rn
11:55:16 <HackEgo> ​/hackenv/bin/tac: line 2: -r: No such file or directory \ /hackenv/bin/tac: line 2: -s: No such file or directory \ /hackenv/bin/tac: line 2: .\| \ : No such file or directory \ sep="/"; [[ "$0" == *//* ]] && sep="//"; [[ "$1" == ?*"$sep"* ]] || exit 1; key="$(echo "${1%%$sep*}" | lowercase)"; value="${1#*$sep}"; [ -e "wisdom/$key" ] && verb="Re
11:55:23 <izabera> awww
11:55:25 <izabera> what tac is that
11:55:28 <izabera> `` tac --version
11:55:36 <HackEgo> ​/hackenv/bin/tac: line 2: --version: No such file or directory
11:55:46 <izabera> `` type tac
11:55:47 <HackEgo> tac is /hackenv/bin/tac
11:55:49 <izabera> oh
11:55:54 <izabera> it's the one i wrote haha <.<
11:56:02 <izabera> `` /bin/tac -r -s $'.\|\n' le/rn
11:56:03 <HackEgo> ​/hackenv/bin/`: line 4: /bin/tac: No such file or directory
11:56:10 <izabera> `` type -a tac
11:56:11 <HackEgo> tac is /hackenv/bin/tac \ tac is /usr/bin/tac
11:56:15 <izabera> `` /usr/bin/tac -r -s $'.\|\n' le/rn
11:56:17 <HackEgo> ​ \ "»yek$« brev$" ohce && ")"yek$/modsiw" p-ohce($" > "eulav$" ohce ;"denraeL"=brev || "denraeleR"=brev && ] "yek$/modsiw" e- [ ;"}pes$*#1{$"=eulav ;")esacrewol | "}*pes$%%1{$" ohce($"=yek ;1 tixe || ]] *"pes$"*? == "1$" [[ ;"//"=pes && ]] *//* == "0$" [[ ;"/"=pes
11:56:26 <izabera> ^ reverses a file
12:46:34 <int-e> fizzie: interesting tournament, thanks; what game is that?
12:47:38 <int-e> "World Journal of Research and Review", yay, sounds legitimate
12:50:54 <int-e> A few days ago one of these spams promised a "blind peer review" within 4 days; I found that refreshingly honest.
12:51:36 <myname> :D
12:51:57 <myname> "that one really looks like a paper"
12:52:13 <int-e> myname: no looking, just feel it!
12:52:36 <myname> it's only a matter of time before you can publish scigen stuff in nature
12:59:50 <izabera> are they playing 5 games anyway even if lee already lost 3?
13:14:31 <int-e> izabera: yes
13:14:55 <int-e> izabera: and lee can still earn a bonus if he wins ($20k or so?)
13:20:39 <izabera> yeah i've just read it on wikipedia
13:20:42 <izabera> 20k per win
13:20:54 <izabera> + 150k if he plays all 5 games
13:29:12 -!- bender| has quit (Quit: [reboot]).
13:49:28 -!- jaboja has joined.
13:58:29 <b_jonas> I realize that Moody has lost an eye, a leg, and much of his nose and doesn't have them back. However, given the above I think that's probably because he lost them to Dark Magic, being an Auror who fought Death Eaters.
13:58:42 <b_jonas> argh, sorry, mispaste
13:58:50 <b_jonas> `wisdom
13:58:59 <HackEgo> theory/To be theory is to be like a theorem, but inferior.
14:07:16 -!- jaboja64 has joined.
14:10:43 -!- jaboja has quit (Ping timeout: 248 seconds).
14:12:01 -!- jaboja64 has quit (Ping timeout: 244 seconds).
14:16:14 -!- p34k has joined.
14:18:54 -!- lynn has joined.
14:27:24 -!- lynn has quit (Ping timeout: 246 seconds).
14:28:37 -!- bender| has joined.
14:35:47 -!- lynn has joined.
14:41:03 -!- lynn has quit (Ping timeout: 246 seconds).
14:43:15 -!- lynn has joined.
14:57:09 -!- lynn has quit (Ping timeout: 246 seconds).
15:08:49 -!- J_Arcane has quit (Ping timeout: 244 seconds).
15:29:28 -!- Yurume has quit (Ping timeout: 252 seconds).
15:29:29 -!- newsham has quit (Ping timeout: 252 seconds).
15:30:05 -!- idris-bot has quit (Ping timeout: 252 seconds).
15:30:43 -!- Yurume has joined.
15:44:44 -!- J_Arcane has joined.
15:52:24 -!- lambda-11235 has joined.
15:53:35 <Lymia> I am now crunching a 9000x9000 BF Joust hill.
15:53:45 <Lymia> I hope my laptop doesn't overheat.
16:00:57 -!- jaboja64 has joined.
16:08:09 <Lymia> 3.7G./run/evaluation_tmp
16:08:10 <Lymia> holy
16:08:23 <Lymia> I didn't think wrenchlance would use so much disk space.
16:10:26 -!- mysanthrop has joined.
16:11:50 -!- jameseb- has joined.
16:12:18 -!- fizzie has quit (Ping timeout: 246 seconds).
16:12:19 -!- myname has quit (Ping timeout: 246 seconds).
16:12:19 -!- sewilton has quit (Ping timeout: 246 seconds).
16:12:19 -!- jameseb has quit (Ping timeout: 246 seconds).
16:12:19 -!- cnr has quit (Ping timeout: 246 seconds).
16:12:19 -!- ^v^v has quit (Ping timeout: 246 seconds).
16:12:19 -!- fungot has quit (Ping timeout: 246 seconds).
16:12:22 -!- sewilton has joined.
16:12:24 -!- fizzie` has joined.
16:12:32 -!- sewilton has quit (Changing host).
16:12:32 -!- sewilton has joined.
16:13:11 -!- ^v has joined.
16:13:27 -!- cnr has joined.
16:13:27 -!- cnr has quit (Changing host).
16:13:27 -!- cnr has joined.
16:26:22 -!- newsham has joined.
16:40:33 -!- Melvar has quit (Ping timeout: 240 seconds).
17:01:05 -!- Melvar has joined.
17:05:58 <\oren\> I want to write a new code editor
17:06:33 <\oren\> it will use advanced Unicode characters to have a cool interface
17:09:06 <\oren\> like using ▁▂▃▄▅▆▇█ to make a scrollbar showing where you are in the file
17:14:03 -!- jaboja64 has quit (Ping timeout: 240 seconds).
17:19:29 -!- jaboja64 has joined.
17:21:52 <Lymia> wut
17:22:18 <Lymia> Python's multiprocessing library is a little arbitary sometimes. ^.^;
17:22:45 <Taneb> In terms of syntax, semantics, API?
17:24:29 <mysanthrop> \oren\: i thought about something similar, too, but i am too comfortable using vim
17:24:38 -!- mysanthrop has changed nick to myname.
17:30:36 <Lymia> However it distributes work.
17:30:41 <Lymia> It's letting cores go inactive for minutes at a time.
17:31:05 -!- lambdabot has quit (Remote host closed the connection).
17:32:23 <int-e> prevents overheating :P
17:33:48 <Lymia> ~800/9000 done. \o/
17:34:01 <int-e> that doesn't sound so bad
17:34:16 <int-e> 100 minutes so far?
17:34:31 <Lymia> Around 1 and a half hour, yeah.
17:34:37 <Lymia> And it'll get faster near the end.
17:34:42 <Lymia> Since there's less matchups left per program
17:35:23 <Lymia> Memory usage's wtf though.
17:37:42 -!- lambdabot has joined.
17:40:23 -!- bender| has quit (Ping timeout: 268 seconds).
17:40:56 <int-e> @botsnack
17:40:56 <lambdabot> :)
17:41:29 -!- lleu has joined.
17:46:18 <fizzie`> Lymia: reference.out: http://sprunge.us/ZdCL
17:47:00 <Lymia> I fixed it already
17:47:17 <Lymia> https://github.com/Lymia/chainlance/commit/0316061c60ffbe577131805ea92199eac9e488b7
17:48:09 <fizzie`> Oh, I didn't even know/notice it had something like that.
17:48:32 <fizzie`> Guess I've never had it trip.
17:48:36 -!- fizzie` has changed nick to fizzie.
17:49:21 <fizzie> int-e: The game's called "Hierarchy" (Hierarkia); it was made by a Finnish chess I-don't-know-which-title, who originally wanted to make it an actual board game, but that never went anywhere; he then donated it for the course.
17:49:47 <fizzie> int-e: We used it to make it a bit less probable people just submitted code they copy-pasted from someone's chess program.
17:50:12 <fizzie> It's also got a little bit higher branching factor, but it's no Go.
17:50:27 -!- jaboja64 has quit (Ping timeout: 248 seconds).
17:51:07 <fizzie> The rule page has 404d.
17:54:03 <Lymia> My laptop's CPU doesn't have the greatest clock speed, so.
17:55:05 <Lymia> Not the greatest single-threaded preformance.
17:58:19 <fizzie> Huh, what the: someone's made a copy of the page.
17:58:48 <Lymia> ?
17:59:25 <fizzie> int-e: http://www.cs.hut.fi/~framling/hierarkia/ here you go. (The Scheme stuff was no longer in use when I was running the thing.)
17:59:32 <Lymia> https://github.com/Lymia/chainlance/blob/master/wrenchlance-stub.c
17:59:33 <Lymia> Anyway.
17:59:41 <Lymia> This is what I'm doing right now, and it seems to work pretty well.
18:01:55 -!- idris-bot has joined.
18:04:39 <int-e> fizzie: thanks
18:05:06 <fizzie> Made by this guy: http://www.chessgames.com/player/jyrki_parkkinen.html
18:24:21 <Lymia> bleh
18:24:56 <Lymia> I'm turning down the split size for the parmap next time.
18:25:03 <Lymia> So it doesn't end up putting 3 cores idle
18:29:50 <tswett> The things I do for neural nets.
18:30:16 <tswett> Apparently CUDA doesn't actually support Debian or something. Ubuntu, but not Debian.
18:30:28 <tswett> I am, of course, running Debian.
18:30:36 <Lymia> wtf
18:30:41 <Lymia> why is there nothing running
18:30:55 <Lymia> urgh
18:31:21 -!- ais523 has joined.
18:31:27 <\oren\> if you have 4 cores, should you not tell it to have 4 threads?
18:31:47 <tswett> So... this is a little tricky to do. CUDA wants packages that don't exist on Debian.
18:31:54 <ais523> hmm, threads, unlike processes, use shared-memory concurrency
18:32:05 <\oren\> or is that just my instinct
18:32:30 <ais523> if a lot of the sharing is actually used, it might be inefficient to run the threads on different processors due to all the synchronization that has to take place between the processors
18:32:51 <ais523> OTOH if the threads are mostly independent then you could run 4 with no problems, and might or might not benefit from more depending on the properties of the scheduler
18:32:52 <Lymia> I did tell it to use 4 threads.
18:32:56 <Lymia> It's not.
18:32:56 <\oren\> i mean, the number of cores is the limit of actual concurrency that you can do, right?
18:33:32 <Lymia> ais523, I have literally 0 dependence between cores.
18:33:51 <\oren\> then why not use an actual fork instead of threads
18:34:16 <ais523> \oren\: you can get more concurrency if the threads are using completely different parts of the computer
18:34:37 <ais523> e.g. if one thread is using the memory bus, it can reasonably act in pseudo-parallel with another thread on the same CPU that's just doing arithmetic
18:35:01 <Lymia> Uh?
18:35:02 <Lymia> Why should I
18:35:37 <Lymia> Why would I rather deal with distributing work between multiple independent processes when it's already hard enough when that's done with shared memory and threads.
18:35:42 <Lymia> What benefit do I derive from that.
18:36:18 <\oren\> maybe the processes will actually run on separeate cpus?
18:37:04 <Lymia> Perhaps you should stop being so presumptuous about what the problem is. :/
18:37:31 <\oren\> well, i thought the problem was that on;ly one cpu core was bing used?
18:37:31 <ais523> I don't know what the problem is, but I think my advice is reasonable so far
18:37:48 <ais523> if the threads are completely independent, then the correct number to use will be comparable to the number of CPUs, possibly a little more
18:38:20 <Lymia> Because your advice is thoroughly off base? How many wrong things did you assume. Let's see.
18:39:09 <Lymia> First of all, Python already uses multiple processes because it has that dumb global interpreter lock.
18:39:41 <Lymia> Second of all, even if I wasn't, the threads would only be spinning off external processes anyway then doing a little parsing on the output. I'm only using its multiprocessing library at all because it splits the workload for me.
18:40:14 <Lymia> Third of all, the problem isn't even that, for some reason, I have 4 threads that decided to run on one core. That doesn't even make much sense on Linux, where threads are much like processes to the scheduler anyway in the first place.
18:40:15 <fizzie> tswett: This must be about something like a more modern version of CUDA? Because there are CUDA packages right there in the Debian repository.
18:40:34 <Lymia> It's that for some reason multiprocessing's work distribution is not running and letting threads in the thread pool sit idle for minutes at a time.
18:40:36 <fizzie> I've got nvidia-cuda-dev 6.5.19-3 installed.
18:40:53 -!- jaboja64 has joined.
18:42:46 <tswett> fizzie: uhhh, you have? Lemme see that.
18:43:04 <Lymia> The ideal solution would really be to wait asynchronously in one thread in the Python code.
18:43:12 <fizzie> https://packages.debian.org/jessie/nvidia-cuda-dev
18:43:17 <fizzie> It's non-free, of course.
18:43:21 <Lymia> But there's no library code for that, and I'd need to write it out on my on.
18:43:22 <Lymia> own*
18:43:30 <fizzie> (And that's 6.0.37-5 because jessie.)
18:44:36 <tswett> fizzie: do you have nvidia-alternative installed?
18:44:50 <fizzie> (Oh, I think "nvidia-cuda-toolkit" is maybe the more topper-level package.)
18:44:58 <fizzie> Yes.
18:45:17 <tswett> What version? I'm trying to install 340.96-1 and it says it can't find it.
18:46:02 <fizzie> I've got 352.79-1, but this is also something like stretch or sid, I forget what exactly.
18:46:39 <fizzie> stretch has a higher-priority pin, so technically that, I guess.
18:49:44 <tswett> Let me see if doing random things with aptitude will fix the problem.
18:49:50 <tswett> Without also creating even worse problems.
18:50:51 <tswett> It seems like aptitude keeps saying "I can't install that thing you asked me to install, but I can uninstall a whole bunch of other stuff instead."
18:53:55 -!- MoALTz has quit (Ping timeout: 248 seconds).
18:54:00 <\oren\> Sometimes if you uninstall everything (for a given value of "everything") and reinstall, it fixes the dependency tree
18:54:48 <tswett> Hmm, it looks like it actually did manage to install it.
18:55:58 -!- MoALTz has joined.
18:56:42 <\oren\> aptitude is annoyingly intolerant of badly written packages
18:58:29 <\oren\> ideally, it shouldn't be possible for a package with wrong dependencies to screw up other, correctly made packages, but that doesn't seem to be the case
19:02:39 <\oren\> What shortcut should be "save"?
19:02:47 <\oren\> I'm thinking control-S
19:02:58 <\oren\> but nano uses control-O
19:03:14 <\oren\> ...for some reason
19:04:39 <int-e> F2
19:05:06 <tswett> C-Q and C-S are occasionally used for XON and XOFF, right?
19:05:21 <int-e> yes
19:05:28 <\oren\> int-e: that's a good idea, since it's one keypress
19:07:32 <ais523> \oren\: Ctrl-S is vulnerable to potentially really major terminal misparses
19:07:36 <\oren\> I'm planning on having a "hint bar" like nano
19:08:00 <ais523> so if you want to use it as a keybinding in a terminal-based program, you'd better be really confident in your ability to configure the terminal correctly
19:08:11 <ais523> nano mocks you for pressing Ctrl-S for this reason (in cases where it's parsed correctly)
19:08:19 <\oren\> are the F keys generally safe?
19:09:04 <ais523> F1-F5 are vulnerable to ambiguities
19:09:07 <ais523> the others are safe
19:09:45 <ais523> (this is because F1-F5 aren't sent to the application at all on an actual VT100, so people had to invent codes for them; some of the invented codes are used for other keys that actually did exist on a VT100 but not on a PC keyboard, but in an inconsistent way)
19:10:37 <ais523> the problem here being that the question when things like xterm were originally ported to PC-like keyboard layouts was not "how do I tell the program what keys on a PC keyboard are being pressed", but "how do I allow the user to use this program, which was designed for a VT100, on a PC keyboard"
19:11:18 <ais523> so for example, in practice there are two codes you're likely to see for F1, one is unambiguously F1, the other is ambiguous with Num Lock
19:12:52 <tswett> aptitude's suggestions can seem kinda cheeky sometimes.
19:13:10 <tswett> "Hey aptitude, I want you to install this package, version 6.5." "All right, how about if I don't install it instead?"
19:13:26 <tswett> "No, you need to actually install it." "All right, how about if I install version 6.0 instead?"
19:13:50 <tswett> "No, it needs to be version 6.5." "Oh, why didn't you say so?"
19:15:26 <\oren\> agh
19:22:02 -!- Treio has joined.
19:23:03 <zzo38> tswett: I have had problem like that but found out ways to resolve it by manually specifying version of packages in different orders and then it won't say there is a conflict
19:23:45 -!- ais523 has quit (Remote host closed the connection).
19:23:55 -!- ais523 has joined.
19:40:16 -!- digitalc1ld has changed nick to digitalcold.
19:44:11 <tswett> Time to reboot and see if X still works!
19:44:40 -!- Treio has quit (Quit: Leaving).
19:46:16 -!- jaboja64 has quit (Ping timeout: 244 seconds).
19:46:42 <Lymia> urgh
19:46:47 <Lymia> It's reading 347M of data every round
19:46:57 <Lymia> I can't imagine that being good for efficiency
19:49:12 <Lymia> But on the other hand
19:49:19 <Lymia> I really don't want to give a shot at concurrency in c
19:51:21 <tswett> Do they make SATA power extension cables?
19:51:24 <\oren\> I really need to finish my string and array libraries before I can implement this
19:51:47 <ais523> Lymia: I was trying to work out if it'd be possible to run this sort of thing on a GPU
19:51:51 <ais523> but I think the answer is "not efficiently"
19:51:55 <tswett> Looks like they certainly do.
19:52:07 <ais523> I can't see any way to make BF Joust data-parallel across warps
19:52:19 <ais523> which is needed or you're only using about 1/32 of the GPU's power
19:53:25 <tswett> And the answer is no, X does not still work.
19:53:32 <\oren\> tswett: do you have a giant computer case or something?
19:54:19 <tswett> No, but...
19:54:33 <tswett> I want to hook up five SATA devices: four hard drives and one optical drive.
19:54:49 <tswett> My PSU, as far as I can see, has two SATA power cables, one with two connectors and one with three connectors.
19:55:37 <\oren\> oh.
19:55:41 <tswett> But the optical drive is too far away from the hard drives for a single SATA power cable to supply both drives.
19:56:32 <\oren\> uh, would it just be stupid to put ahard disk in one of the optical drive bays?
19:56:47 <\oren\> assuming you have more than one
19:57:10 <tswett> I've got three or four optical drive bays. But those are bigger.
19:57:18 <tswett> Right?
19:57:56 <tswett> And presumably I could get some sort of adapter so I can fit a hard drive in an optical bay, but that sounds harder than just getting an extension cable.
19:57:57 -!- jaboja64 has joined.
19:58:07 <\oren\> oh, are you afraid of leaving something not securely screwed into a bay?
20:01:08 * \oren\ had an extra psu jammedinto an optical bay on his old computer
20:03:11 <tswett> Don't you have your computer mounted in gimbals?
20:03:59 <\oren\> heh. this was the computer that I left open with a cardboard manifold connecting it to a big room fan
20:04:25 <\oren\> thus pressurizing the case, sort of
20:05:12 <\oren\> hmm, what of you actually kept the air pressure higher inside a computer?
20:06:36 -!- lambda-11235 has quit (Quit: Bye).
20:08:48 <\oren\> yeah, i think theoretically, it woudl increase the rate at which temperature exchages with the air
20:09:15 <Lymia> ais523, I was thinking about running multiple instructions at onec.
20:09:16 <Lymia> once*
20:09:31 <Lymia> There are many conditions in BF Joust when the two opposing programs are "non-interacting", so to speak.
20:09:45 <tswett> All right, let me try to get X working again.
20:09:46 <Lymia> For example, when they're on different cells entirely, or the cell they're both on is 128
20:09:57 <ais523> Lymia: good point
20:10:15 <tswett> This has definitely happened to me before.
20:10:16 <ais523> actually one thing you could to is check the number of cycles before a program goes past the fifth cell
20:10:20 <Lymia> It'd be a torquelance style compilation with serious optimization involved.
20:10:33 <ais523> and just start at that location
20:11:24 -!- variable has joined.
20:13:27 <\oren\> you could also detect when both programs are doing [+] (with various numbers of +'s) on the same cell, and make a lookup table of the outcomes?
20:14:25 <\oren\> maybe there's too many possibilities....
20:17:06 <Lymia> The approach I was thinking would be splitting every part of the program into two "segments", kinda.
20:17:40 <Lymia> "How many cycles I can run in one/few instructions in a row"
20:17:51 <Lymia> "Execute x cycles, which may be the previous value, or less than such"
20:19:59 <ais523> come to think of it, at any moment both programs are in an inner loop
20:20:10 <ais523> you could probably do some sort of optimization on it
20:20:18 <ais523> via calculating the outcome in advance
20:20:35 <ais523> that would help a lot because [-] loops are very common
20:29:06 <tswett> All right, the nouveau module is not loaded. So I just need to make it so that the other module is loaded? And what module would that be, exactly?
20:32:54 <tswett> Aha, I need to install nvidia-driver.
20:34:29 <tswett> There we go, now it's working.
20:34:52 <tswett> Now let's see if I can train a neural net of size SIXTEEN FUCKING HUNDRED.
20:34:58 <tswett> (Hint: PROBABLY FUCKING NOT.)
20:35:28 -!- variable has quit (Quit: 1 found in /dev/zero).
20:37:52 <tswett> But I can do one of size 1300. Wow.
20:39:16 <tswett> I can even do one of size 1500. I wasn't expecting that.
21:07:22 <HackEgo> [wiki] [[Talk:Minebit]] M https://esolangs.org/w/index.php?diff=46588&oldid=46256 * Erinius * (+34)
21:21:53 <tswett> Heheh, my computer's graphics aren't working too hot.
21:24:43 <\oren\> wait, why are you running X at the same time as this?
21:25:50 <Hoolootwo> what graphics card?
21:25:51 <tswett> That's a good question.
21:26:11 <tswett> It's a GT 430.
21:26:58 <Hoolootwo> hmm okay, probably better than any of mine
21:26:59 -!- AnotherTest has quit (Quit: ZNC - http://znc.in).
21:27:28 <Hoolootwo> last time I tried to do anything on a GPU, my cpus were faster by about an order of magnitude :/
21:28:55 <tswett> Let's see. Released in 2010 at $79. 40 nanometer fab. 1 GB memory. 269 gigaflops.
21:29:45 <tswett> Lemme compare that to something a little more modern.
21:30:48 <tswett> The GTX 950. Released in 2015 at $159. 28 nanometer fab. 4 GB memory. 1573 gigaflops.
21:30:58 <tswett> That's a lot floppier.
21:35:50 <Hoolootwo> very floppy, though not as much as some of my 8 inch wangs :P
21:35:53 <Hoolootwo> http://siarchives.si.edu/wp3/wp-content/uploads/2010/08/newwang.jpg
21:36:33 -!- Reece` has joined.
21:41:40 <Lymia> 1600?
21:41:43 <Lymia> That's, like, tiny
21:45:11 <int-e> double density... expensive stuff
21:47:55 <Lymia> Are floppy disks good for anything nowadays
21:48:52 <int-e> I'd expect there's legacy hardware in the industry that still uses them
21:50:07 <Hoolootwo> I have been using them a bit to get a 286 onto the internet, but for practical purposes no
21:52:01 -!- MoALTz has quit (Ping timeout: 240 seconds).
21:53:34 -!- ais523 has quit (Ping timeout: 248 seconds).
21:55:39 -!- MoALTz has joined.
22:05:48 -!- hydraz has changed nick to thetypo.
22:05:53 -!- nortti has changed nick to norrti.
22:06:04 -!- norrti has changed nick to nortti.
22:06:19 -!- thetypo has changed nick to hidraz.
22:07:03 -!- hidraz has changed nick to hydraz.
22:08:39 <b_jonas> When playing causal constructed Magic: the Gathering with friends, if I offer the people sweets like bonbons or assorted wafers or jelly beans, is it usually considered bad form to offer a selection with more than four copies of any one type of bonbon or wafer or jelly bean?
22:11:11 -!- ais523 has joined.
22:11:11 <int-e> wouldn't those be counters...
22:11:39 <b_jonas> int-e: no, they'd make the cards dirty.
22:11:53 <b_jonas> hello, ais523
22:11:54 <shachaf> Player counters, of course.
22:12:00 <ais523> hi
22:12:02 <b_jonas> shachaf: heh, that might work
22:12:06 <shachaf> Hopefully you don't offer poison counters, though.
22:12:19 -!- hydraz has changed nick to thetypo.
22:12:24 -!- thetypo has changed nick to hydraz.
22:12:30 <b_jonas> shachaf: hmm, how many other named player counters are there even?
22:15:51 <b_jonas> ais523: about that machine that only accesses a limited set of stacks, I think it's actually possible to do symbol table translation too efficiently, only you have to do it on the whole file and all symbols together, rather than incrementally
22:16:05 <shachaf> b_jonas: I guess I don't know of any others
22:16:13 <ais523> b_jonas: yes, it's definitely a different syle of programming
22:16:32 <ais523> fwiw programs written in this style might work more efficiently even on regular CPUs
22:16:37 <b_jonas> ais523: however, you brought up this machine because it would get rid of all aliasing problems, but you don't really need just stacks for that
22:16:50 <ais523> b_jonas: not just aliasing, cacheing too
22:16:57 <ais523> it was originally invented to get rid of cache stalls
22:17:08 <ais523> also to satisfy hppavilion[1]-like thinking of "let's be different for the sake of it"
22:18:40 <b_jonas> ais523: I see. I like the model of a pointer machine (with a fixed finite size of registers) that accesses trees with *immutable* nodes and can create new nodes, decide whether a node is null, and access the children of nodes, and its core is finite state.
22:19:24 <ais523> how is this garbage-collected?
22:19:57 <b_jonas> ais523: presumably anything that's not accessible from the root anymore would be collected.
22:20:09 <ais523> no, I mean hardware-wise
22:21:02 <b_jonas> ais523: I don't know, it's not really a specific hardware thing, just a theoretical model. hardware implementations typically have more complicated rules to be optimized, which are useful for real world programming, such as built-in fixed integer arithmetic.
22:43:58 <\oren\> xenon is overpowered
22:45:30 -!- ais523 has quit (Read error: Connection reset by peer).
22:45:39 -!- ais523 has joined.
22:47:39 <b_jonas> ais523: I found out about two cards in older sets that seem to be in the wrong color if you apply the modern color pie. There's an instant for {W} and an instant for {G} that untaps a target permanent, and the latter even has more options than that.
22:48:31 <b_jonas> These days that's exclusively blue, with Dream's Grip doing this.
22:49:26 <b_jonas> White can untap creatures, green can untap lands or specific creatures that have a self-untap ability, and then there's Magewright Stone.
22:49:49 <b_jonas> s/ight S/ight's S/
23:05:52 -!- Reece` has quit (Quit: Leaving).
23:07:22 -!- idris-bot has quit (Ping timeout: 260 seconds).
23:07:30 -!- Melvar` has joined.
23:08:19 -!- Melvar has quit (Ping timeout: 248 seconds).
23:19:00 <zzo38> I know that with standard cards a player might have poison counters and experience counters; with a custom card I made up it is possible for a player to have any kind of counter.
23:24:16 <zzo38> (I don't know of others but you can tell me if there is; maybe I forgot some?)
23:26:30 -!- lynn has joined.
23:39:15 <zzo38> I had to shorten the kitchen sink picture posted here yesterday because it was previously too long and it should be maximum 16x16 like the standard X cursor font is
23:39:25 <zzo38> (I did fix it though.)
23:45:37 -!- asie has joined.
23:45:39 <asie> oh hi
23:45:45 <asie> oh, font design?
23:46:07 <izabera> sometimes
23:46:25 <zzo38> Yes some people on here have designed other fonts
23:47:07 <zzo38> Although I also did a supplementary X cursor font and a new character encoding too (which requires new font to go with it though)
23:51:06 <asie> esofont
23:51:30 <ais523> asie: the 1×5 font is pretty eso
23:51:43 <ais523> it uses subpixel antialiasing; it's actually readable if you get really close to the screen
23:51:46 <ais523> if oddly coloured
2016-03-13
00:07:48 <zzo38> Is there a Magic the Puzzling that says something like "Your upkeep is beginning; place your triggered abilities on the stack." and your opponent also has some things that trigger during your upkeep too?
00:08:03 -!- jaboja64 has quit (Ping timeout: 248 seconds).
00:08:29 <shachaf> zzo38: I've never seen one.
00:08:40 <shachaf> But I think the only Magic: The Puzzlings that I've seen have been yours.
00:09:08 <zzo38> I have not myself written one like that (yet)
00:09:21 <zzo38> Do you know how to make up one?
00:09:28 <shachaf> No.
00:09:36 <zzo38> (I mean one Magic: the Puzzling in general, it doesn't necessarily have to be like that)
00:09:37 <shachaf> All your Magic: The Puzzlings have seemed way too complicated to me.
00:09:40 <ais523> zzo38: might be interesting to port 3SAT into Magic
00:09:46 <shachaf> You need to know (or look up) so many cards.
00:09:50 <ais523> so we could set Magic: the Puzzlings that had nothing to do with Magic, just maths
00:10:04 <shachaf> Like the entirety of The Dark.
00:10:39 <zzo38> shachaf: That is just one of them though, others name cards explicitly and some do not have so many
00:10:51 <shachaf> It's still a lot.
00:11:08 <shachaf> What if the puzzle was presented as a picture that showed every card you need to know to solve it?
00:11:46 <zzo38> That would do yes, if you can print it out, although having text file would also help
00:12:03 <zzo38> Even so, some puzzles that do have pictures do not actually show all of the cards, or contain obsolete text
00:12:48 <shachaf> At least if it was a web page where you could mouseover a card name to see it.
00:12:55 <shachaf> Those are pretty common.
00:13:23 <zzo38> I am using a format that is design to be not too difficult to parse by computer, so they could be converted into other formats
00:13:50 <shachaf> Oh, I did see at least one Magic: The Puzzling that wasn't yours.
00:14:13 <zzo38> My puzzles 5 and 6 and 7 do not have as many cards as the others
00:15:12 <shachaf> What do you call that ability on a card that lets you discard it from your hand?
00:15:29 <shachaf> Oh, cycling.
00:16:03 <zzo38> Cycling you can discard it and also draw a card
00:16:16 <zzo38> Not all ability to discard from your hand may be cycling though
00:16:31 <shachaf> Yes, I was looking for that specific one.
00:18:37 -!- p34k has quit.
00:22:31 <zzo38> Perhaps look at puzzle.5 and/or puzzle.6 and/or puzzle.7 and see if you can understand it
00:23:39 <shachaf> You should include a full URL.
00:24:19 <shachaf> i,i zzo38:puzzle.5
00:24:20 <zzo38> http://zzo38computer.org/textfile/miscellaneous/magic_card/puzzle.5
00:25:15 <zzo38> The others are in the same directory
00:45:09 <tswett> zzo38: why not use HTML?
00:46:05 <tswett> You could do funky stuff like...
00:47:24 <tswett> <div class="zone"><span class="zone-owner">Alice</span>'s <span class="zone-name">hand</span>: <ul class="zone-cardlist"><li><span class="card-name">Crumble</span></li></ul></div>
01:13:41 -!- lambda-11235 has joined.
01:27:23 <zzo38> I suppose that is another way yes, although I prefer to post as plain text. However conversion would be possible if wanted
01:30:45 <zzo38> Although that kind of HTML does make some sense. Not only can CSS (either included or user-defined) be used, but also allow to convert formats more easily by using the class names provided.
01:41:49 <zzo38> (But it does mean it is require to parse HTML in order to make the conversion)
02:12:17 -!- lynn has quit (Ping timeout: 260 seconds).
02:13:28 -!- ais523 has quit (Ping timeout: 252 seconds).
02:23:29 -!- oerjan has joined.
02:35:06 <oerjan> @ask fizzie <fizzie> Holy monologue, Batman. <-- you're not secretly oklopol, are you?
02:35:07 <lambdabot> Consider it noted.
02:36:34 <oerjan> `` echo $'hi\nthere'
02:36:40 -!- ais523 has joined.
02:37:07 <HackEgo> hi \ there
02:40:21 -!- bender| has joined.
02:43:11 -!- copumpkin has quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…).
02:43:49 <oerjan> <HackEgo> theory/To be theory is to be like a theorem, but inferior. <-- . o O ( physicists might disagree on the "inferior" )
02:44:09 -!- ais523 has quit (Ping timeout: 246 seconds).
02:44:34 <oerjan> ais523 has such exquisite timing
02:48:44 -!- boily has joined.
02:49:56 <oerjan> boihly
02:50:49 <boily> hellørjan!
02:51:05 <boily> @metar KROC
02:51:06 <lambdabot> KROC 130154Z 26004KT 10SM BKN250 11/M08 A3003 RMK AO2 SLP174 T01061078
02:51:09 <boily> @massages-loud
02:51:09 <lambdabot> olsner asked 1d 2h 7m 37s ago: what does it mean to "expand int-e"?
02:51:31 <boily> olsner: hellolsner. to expand int-e's `wisdom entry
02:51:58 <boily> oerjan: we're in Rochester for the weekend. there is much tile shuffling.
02:52:44 <zzo38> Another idea of a Magic: the Gathering card is one which alters the stipulation of the puzzle. (What strangeness!!! I wonder if extra rules might be needed to support such thing?)
02:55:23 <oerjan> boily: now i'll just have to guess which one https://en.wikipedia.org/wiki/Rochester
02:55:29 <oerjan> (i suppose KROC is a hint)
02:55:38 <boily> KROC is a good hint.
02:56:34 <zzo38> Wikipedia reveals it right away
02:57:07 <zzo38> (Even the initial "K" indicates United States, so even if you do not look it up you might know that already)
02:57:18 <oerjan> well yeah
02:57:26 <oerjan> although most of the places are in the US
02:57:53 <shachaf> are any of the places hard
02:58:43 <oerjan> shachaf: should i get the swatter
03:00:27 <shachaf> oerjan: only if you're stuck between KROC and a hard place hth
03:00:54 * oerjan hits shachaf with the saucepan ===\__/
03:01:06 <oerjan> i figure the swatter was too soft for this
03:03:01 <shachaf> i,i stuck between between a KROC and a DHAR EPLAC
03:03:21 <boily> I can't mapole shachaf; I'm travelling light.
03:03:31 <oerjan> DHAR ES SALA'AM
03:08:08 <oerjan> <\oren\> if you have 4 cores, should you not tell it to have 4 threads? <-- that's what ghc recommends, although s/thread/capability/ because ghc has lightweight threads and calls the actual underlying OS ones something else
03:09:15 <boily> I thought the proper voodoo number is n+1 for gcc and make.
03:10:59 -!- ais523 has joined.
03:11:33 <ais523> bleh, kernel panics are so annoying
03:15:09 <oerjan> ais523: are these the kernel panics triggered by yesterday's spacetime disruption
03:15:38 <boily> there was a disruption?
03:16:18 <oerjan> around the time of the first mention of kernel panics
03:16:20 <oerjan> iirc
03:16:34 <ais523> it's triggered via plugging my laptop into my router
03:16:38 <ais523> but not always
03:17:09 <oerjan> ah a heisendisruption
03:18:19 <Hoolootwo> sounds like some weird timing issue
03:18:32 <zzo38> What is the error message in the kernel panic message?
03:19:01 <ais523> zzo38: Attempted to kill init!
03:19:23 <ais523> but there were so many errors appearing beforehand that it's possible that something was just overwriting random memory
03:19:48 <boily> then don't kill init.
03:19:48 <ais523> also this thing has a manufacturer of 1, product of 2, serial number of 3, and a different serial number of 0123456789ABCDEF
03:20:01 <ais523> which makes me think that someone put dummy data in the device strings
03:23:52 <ais523> given the amount of error spam before that I have a suspicion that something was randomly corrupting kernel memory
03:24:19 <FreeFull> http://picat-lang.org/ I love this language
03:30:26 -!- boily has quit (Quit: RICE CHICKEN).
03:43:56 <oerjan> . o O ( they chose a less annoying waiting music today )
03:44:15 <oerjan> still room for improvement
04:00:35 <oerjan> game 4 starting
04:04:28 <izabera> will he win at least one?
04:04:53 <oerjan> that's the big remaining question
04:06:13 <izabera> in the press conference after match 3 he said something on the lines of "this is a defeat for lee sedol, not for mankind"
04:07:25 <\oren\> defiant forever! death to the undying!
04:09:49 <zzo38> It is a defeat for Lee Sedol for that tournament anyways; not forever. The problem I have is if they do not mention enough details of the computers in use
04:10:22 <oerjan> apparently they are copying the second game so far
04:14:09 <oerjan> diverged
04:14:16 <zzo38> A game with complete information (such as Go), I would expect theoretically a sufficiently powerful computer can win (unless a perfect strategy would force the other player to win or draw). Games such as Kriegspiel chess do not have complete information.
04:15:26 <zzo38> Someone on ChessVariants mentioned something very silly, which is to use the "Swizzelstick" rule: You must touch your nose while moving the pieces, and you must urinate over your opponent's pieces if you win, otherwise it doesn't count.
04:16:39 <zzo38> Anyways "theoretically a sufficiently powerful computer" doesn't necessarily mean that it is, and even if it isn't doesn't necessarily mean the computer program will lose either.
04:17:20 <zzo38> What is your opinion of these things please?
04:18:12 <izabera> are you asking serious opinions on the swizzlestick thing?
04:18:19 <oerjan> "eww"
04:18:34 <zzo38> No, not on that, I mean in general
04:19:21 <zzo38> I mean about game vs computer programs in general, such as chess and Go and so on.
04:20:06 <izabera> we don't have sufficiently powerful computers that can analyze all the possible moves in go to a decent depth
04:20:34 <oerjan> i think generalized Go is something like EXPTIME-complete, so perfect play might be intractable.
04:22:14 <zzo38> Yes I know there is not sufficiently powerful computers, and probably would be too difficult to make up such a computer anyways (you can easily get into limits by laws of physics too I suppose).
04:22:36 <zzo38> Also by "generalized Go" what generalizations do you mean?
04:23:07 <izabera> larger boards
04:23:21 <zzo38> O, OK
04:23:27 <izabera> possibly larger amount of players?
04:24:54 <zzo38> Another thing is consider what significant differences (if any) when the board size is odd than when it is even
04:26:16 <izabera> that's entirely unreasonable, obviously your chi can't flow on an even board
04:28:38 <zzo38> Whether or not your chi can flow on the board does not affect the rules of the game though, isn't it?
04:28:50 <izabera> >:O outrage
04:32:54 <ais523> izabera: B Nomic ran a "political go" for a while
04:33:06 <ais523> where players could become allies which meant their stones counted as the same colour for the purpose of capturing
04:33:08 <ais523> (it was multiplayer)
04:33:19 <ais523> I'm not sure if there was a limit on alliances
04:33:36 -!- treaki_ has joined.
04:34:10 <int-e> hmm, one color go
04:35:05 <zzo38> If you have only one colour of stones then you must play on all points in any order and then once it is full, you must remove all of the stones from the game.
04:35:26 <int-e> http://senseis.xmp.net/?OneColourGo is something different though
04:35:52 <int-e> so you've taken away the option to pass?
04:36:25 <ais523> clearly the optimal strategy is to play one stone then pass twice
04:36:55 -!- treaki__ has quit (Ping timeout: 250 seconds).
04:36:56 <ais523> and claim the entire board as territory
04:36:58 <zzo38> That is just something by the same name anyways
04:37:02 <zzo38> ais523: Yes of course
04:38:28 <zzo38> The "One Colour Go" mentioned on Sensei's Library is really you must use physically the same colours for both player just to confuse you as far as I understand it does not affect the rules of the game (although fouls might become more common, and you have to figure out how to deal with it; if you use a computer then the computer resolves it automatically)
04:39:51 <izabera> like non-flagging minesweeper
04:40:16 <ais523> I think speedruns play non-flagging
04:40:19 <ais523> because of the time it takes to click the button
04:41:15 <zzo38> izabera: Yes I suppose it is a similar thing
04:41:26 <zzo38> Although then you don't have to worry about fouls
04:41:47 <zzo38> It just mean, you cannot annotate the game during the play
04:43:14 <zzo38> Possibly if you play minesweeper with scratching cards it might be more difficult to mark where you believe are the bombs too, although maybe it depend what kind of pencil you use
04:45:57 <zzo38> What kind of pencil are you going to use?
04:51:35 -!- XorSwap has joined.
04:52:06 <\oren\> what if you could make or break alliances at any time?
04:55:48 <\oren\> then, you might cooperate with someone to capture some stones, and then they stab you in the back to get that territory
04:58:02 <zzo38> I sometimes get a kernel panic when switching the printer on or off
04:59:35 <\oren\> I have never gotten a kernel panic except for my stupid attempt at a kernel module
05:00:33 <\oren\> which, when loaded, accidentally overwrote something important
05:03:36 <\oren\> how would go work on a unbounded field?
05:03:44 <\oren\> such as a torus
05:06:05 <ais523> \oren\: oh you could definitely break alliances any time
05:06:13 <ais523> you might need a restriction on making them though
05:08:28 <shachaf> zzo38: Which kernel?
05:08:35 <\oren\> I have another idea but it will take some text to explain so I'll put it in my website after I figre it out.
05:10:02 <zzo38> shachaf: Is 3.2.0-87-generic x86_64 a kernel version number?
05:11:10 <zzo38> I now published version 1 of the JavaScript Xlib package (called "remote-xlib") and also atarted to make another package to provide widgets for use with it
05:11:31 <shachaf> zzo38: Linux, then.
05:11:49 <zzo38> Yes, it is Linux
05:29:29 <\oren\> how does this sound so far http://www.orenwatson.be/ungriddedgo.htm
05:30:32 <\oren\> it's go on a board with no grid
05:38:06 <\oren\> Now I'm wondering what the correct radius of a liberty is
05:39:32 <\oren\> hmm
05:39:46 <\oren\> probably 0.7 or so
05:49:37 <ais523> wow at https://bugs.launchpad.net/ubuntu/+source/linux/+bug/882147 – someone is seriously arguing that it's OK if a kernel feature sometimes silently doesn't work, reporting success, because programs should be prepared for that situation
05:50:13 <ais523> their reasoning is that that's what the kernel does
05:50:21 -!- copumpkin has joined.
05:50:36 <ais523> someone else said that that's clearly a kernel bug as it doesn't match the docs, and they said the docs should be fixed
05:51:07 <ais523> then when someone else said that they fix the kernel to match the docs as they're closer to the intention, the original person suggested changing both (!)
05:51:20 <ais523> this may well be trolling at this point, but it's pretty creative
05:52:13 <\oren\> rrgh i hite whoever that guy it
05:52:20 <\oren\> *hate *is
05:53:08 <ais523> the interface in question is inotify, and the bug in question is tail -f not working
05:53:22 <ais523> it seems that tail already has an undocumented workaround, spelled "---disable-inotify"
05:54:17 <\oren\> see this kind of person is why we need Linus and his FUCK YOUs
05:54:24 <ais523> I like this naming convention
05:55:31 <\oren\> triple -?
05:55:35 <ais523> yes
05:56:05 <ais523> haha, someone arguing with the user brought up the hypothetical of "what if select() has a bug" to which the response was "patch every application using select() with a check against the kernel version"
05:56:19 <ais523> or the alternative "give the kernels in question a database of select-using applications so that it can patch it"
05:56:27 <shachaf> The extra - is borrowed from CSS, I'm sure.
05:56:28 <ais523> pretty much everything up to that point was plausible stupidity
05:56:44 <ais523> that alternative, though, is clearly trolling
05:57:00 <ais523> shachaf: aha
05:57:11 <ais523> I was parsing it as (---))disable-inotify
05:57:17 <ais523> * (---)disable-inotify
05:57:23 <ais523> but you're parsing it as (--)(-disable-inotify)?
05:57:25 <ais523> makes sense
05:58:10 <izabera> several programs have hidden options with 3 dashes
05:58:41 <izabera> `` factor ---debug 10 # first example that comes to mind
05:58:49 <shachaf> ais523: That's how I was trying to make sense of the triple -.
05:58:51 <HackEgo> factor: unrecognized option '---debug' \ Try `factor --help' for more information.
05:58:56 <izabera> -_-
05:59:01 <izabera> fuck you HackEgo
05:59:05 <shachaf> Wow, that factor option is really hidden.
05:59:11 <izabera> $ factor ---debug 10
05:59:13 <izabera> [using single-precision arithmetic] 10: 2 5
05:59:57 <ais523> does factor handle >64bit numbers (at all | in reasonable time) yet?
06:00:21 <izabera> yes
06:00:30 <izabera> with pollard rho
06:00:35 <shachaf> ais523: http://docs.factorcode.org/content/word-__gt__bignum,math.html hth
06:00:41 <izabera> so it works better if there are several smaller factors
06:01:12 <ais523> shachaf: factor(1), not factor the programming language
06:01:28 <shachaf> What sorts of programming languages can you factor?
06:01:40 <ais523> $ factor 1000000000000
06:01:42 <ais523> 1000000000000: 2 2 2 2 2 2 2 2 2 2 2 2 5 5 5 5 5 5 5 5 5 5 5 5
06:01:54 <ais523> shachaf: I assume that was intended as a joke, but it's arguably an interesting question
06:02:05 <shachaf> It was meant halfway in between.
06:02:06 <izabera> ais523: that's... < 64 bits
06:02:07 <ais523> C factors into the preprocessor and rest of the compiler, I guess?
06:02:14 <ais523> izabera: err, good point
06:02:16 <ais523> it's > 32
06:02:27 <shachaf> Is there a sense in which you multiply programming languages?
06:02:29 <ais523> $ factor 1000000000000000000000000
06:02:30 <ais523> 1000000000000000000000000: 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5
06:02:38 <izabera> try with something less stupid...
06:02:40 <izabera> no offense
06:03:01 <ais523> shachaf: if you interpret programming languages as being defined by their compilers, then multiplication could be compiler composition
06:03:02 <shachaf> izabera: that seems kind of rude, "no offense" or not
06:03:18 <shachaf> Can you factor regular languages?
06:03:21 <ais523> izabera: it worked for my purpose, which was seeing if factor ran quickly on a bignum with a lot of small factors
06:03:32 <izabera> $ time factor $(tr -dc 0-9 < /dev/urandom | head -c 40)
06:03:34 <izabera> 2352950823555604190942608370577849550714: 2 13 23 1291 4210103 723923547371247021321949091
06:03:36 <izabera> real: 0m0.034s, user: 0m0.000s, sys: 0m0.027s
06:04:13 <ais523> I guess that's one way to produce a random number…
06:04:15 <izabera> literally the only test that's more meaningless is to test how fast it can factor 2^n
06:04:35 <ais523> izabera: I would have done that but it's harder to spell
06:04:50 <ais523> I was just checking to see if it could parse the number /at all/
06:04:56 <shachaf> If a programming language is defined by a compiler, what's an interpreter? A special sort of compiler?
06:04:59 <ais523> and this was inspired by the mention of "single precision arithmetic"
06:05:23 <ais523> shachaf: compiles into user interactions, I guess
06:05:23 <izabera> it's backed by gmp so that's handled decently
06:05:32 <izabera> pollard rho doesn't really scale that well tho
06:06:40 <shachaf> ais523: Is it really compiling if it compiles a bit at a time?
06:08:22 <ais523> now you've got me trying to work out how to write a lazy compiler :-)
06:08:49 <shachaf> ais523: A JIT?
06:09:17 <shachaf> With a JIT compiler it's reasonable to define languages that compile into infinite programs.
06:09:42 <ais523> JITting sections would make sense, and probably be required
06:09:49 <ais523> how do you parse an infinite program, though?
06:09:55 <shachaf> The output is infinite, not the input.
06:10:03 <ais523> presumably it'd need to be specified as an AST rather than as a sequence of bytes
06:10:20 <shachaf> I'm thinking of compiling programs with higher-rank polymorphism by monomorphizing.
06:10:37 <shachaf> Particularly in the case of non-regular data types?
06:11:16 <shachaf> I was going to say that I don't like infinite programs. But of course the output of a compiler is also a program.
06:13:49 <ais523> hmm, is there some way in Haskell to pattern-match on a data structure only if it's already been forced (and thus its constructor is available)?
06:13:53 <ais523> some sort of "nonforcing match"?
06:14:19 <ais523> I was thinking about how you'd do optimizations on an infinite AST
06:15:08 <shachaf> Not in Report Haskell, but you can do it in GHC.
06:15:36 <shachaf> I think?
06:15:46 <shachaf> Now I'm not sure.
06:23:59 -!- llue has joined.
06:24:57 -!- lleu has quit (Read error: Connection reset by peer).
06:38:47 <shachaf> Well, you can certainly do it with false negatives.
06:39:06 <ais523> what are false negatives?
06:39:54 <shachaf> You might think something isn't evaluated when it is.
06:40:19 -!- lambda-11235 has quit (Quit: Bye).
06:40:52 <ais523> oh, I see
06:41:07 <ais523> I didn't realise "false negative" was the phrase in that context
06:41:25 <ais523> less than 100% false negatives?
06:41:48 <shachaf> Maybe it's not the phrase.
06:43:29 <shachaf> The phrases "false positive" and "false negative" are scow.
06:56:14 <ais523> lee sedol in overtime, alphago with over an hour left
06:56:29 <ais523> one of them has been using time inefficiently, it's unclear which
07:00:12 -!- XorSwap has quit (Quit: Leaving).
07:11:27 <ais523> ooh, I think alphago got horizoned
07:11:36 <ais523> it's adding stones to a dead group
07:12:45 <ais523> as far as I can tell, that move it just played is clearly, objectively bad and it is obvious to a go player of pretty much nay skill level
07:15:27 <ais523> (and it's probably not just me missing something obvious as the 9p commentator agrees)
07:27:06 -!- augur has quit (Ping timeout: 276 seconds).
07:31:50 -!- augur has joined.
07:39:50 -!- adu has joined.
07:51:37 <shachaf> whoa whoa whoa
07:52:01 <ais523> the commentators don't seem to know about the horizon effect
07:52:01 <oerjan> shachaf: whoa?
07:52:16 <shachaf> the computer resigned
07:52:21 <ais523> but it's a perfectly good description of the move at T11 (S11 on the commentator's board, which is misnumbered)
07:52:22 <oerjan> ais523: what's the horizon effect?
07:52:30 <shachaf> or that's what someone said in another channel?
07:52:35 <ais523> and it's inexplicable otherwise
07:52:37 <ais523> shachaf: still playing
07:52:46 <ais523> oerjan: basically if you see an impending large loss in your future
07:52:48 <shachaf> ok, bad information
07:52:52 <oerjan> shachaf: no, they just discussed when it would resign
07:52:53 <ais523> you play a series of forcing moves to push it further back
07:53:01 <ais523> even if those moves are losing in their own right
07:53:02 <shachaf> oerjan: i don't have audio on hth
07:53:11 <ais523> so that it's out of the range that your evaluation function looks like
07:53:14 <ais523> *looks at
07:53:25 <oerjan> ais523: hm
07:53:31 <ais523> it's a common issue with tree search AIs
07:53:53 <ais523> (it's believed to have caused Deep Blue to draw a won a game in one of its famous matches against Kasparov)
07:54:42 <ais523> the move at T11 forced Lee Sedol to play at S10; it was perfectly forcing
07:54:47 <ais523> it just obviously loses one stone for no benefit
07:57:03 <ais523> and Alphago was looking at a -16 loss around then, which is large but not necessarily gamelosing
07:57:12 <ais523> err, -14, I miscounted
08:04:45 <oerjan> hm now he says it's close
08:06:19 <ais523> alphago was commonly believed to be winning before it went haywire
08:06:25 <ais523> now it's probably losing
08:36:26 <oerjan> ais523: that A8 move looks like another case?
08:37:43 -!- haavard_ has joined.
08:38:54 -!- sewilton has quit (Ping timeout: 246 seconds).
08:38:54 -!- zemhill has quit (Ping timeout: 246 seconds).
08:38:54 -!- zemhill has joined.
08:38:54 -!- haavardp has quit (Read error: Connection reset by peer).
08:38:57 -!- sewilton_ has joined.
08:39:03 -!- erdic has quit (Ping timeout: 246 seconds).
08:39:24 -!- erdic has joined.
08:41:47 <oerjan> ais523: redmond seems to be recognizing the effect but he's just calling them forcing moves
08:43:07 <ais523> oerjan: he's realised that alphago is playing forcing moves but not why
08:43:21 <ais523> (it's a response to realising that your evaluation of the position was too optimistic)
08:44:32 <shachaf> whoa whoa whoa
08:44:43 <oerjan> ah
08:44:50 <ais523> alphago resigned
08:53:09 -!- bender| has quit (Read error: Connection reset by peer).
09:03:26 <FreeFull> 3-1
09:03:42 <FreeFull> Seems AlphaGo isn't unbeatable
09:07:35 -!- AnotherTest has joined.
09:11:09 -!- oerjan has quit (Quit: Nite).
09:14:35 <izabera> cospiracy theory time: they lost on purpose
09:15:06 <izabera> lee is almost a national hero and they were humiliating him too much
09:44:57 -!- bender| has joined.
09:45:47 -!- lynn has joined.
09:57:55 <\oren\> izabera: isn't it good to humiliate another nation's hero?
09:58:21 <\oren\> alphago is supposedly a british computer
09:59:03 <Taneb> \oren\, do you want all the Brits to be driven out of South Korea
09:59:23 <shachaf> Why is it good?
09:59:42 <Taneb> It's good if the other nation is your nation's enemy
09:59:45 <Taneb> But not otherwise
10:00:00 <\oren\> well it adds to your natin's hero's prestige to have beaten someone else's
10:30:08 -!- Reece` has joined.
10:36:42 -!- adu has quit (Quit: adu).
11:03:00 <shachaf> zzo38: In puzzle.6, how is Artificial Evolution being used?
11:07:40 <shachaf> And what's the goal?
11:24:52 -!- Reece` has quit (Quit: Leaving).
11:31:08 -!- boily has joined.
11:33:58 -!- boily has quit (Client Quit).
11:42:15 -!- ais523 has quit.
11:47:59 <lifthrasiir> I'm late in the party and still I'm impressed of Lee's outcome
11:48:17 <lifthrasiir> probably the best thing to both Lee and Google
11:49:20 -!- J_Arcane has quit (Ping timeout: 244 seconds).
12:21:04 -!- AnotherTest has quit (Ping timeout: 260 seconds).
12:23:04 <int-e> spectators too
12:25:53 <int-e> I'm glad we got to see that Alphago still displays classical MC tree search weaknesses (a horizon effect, essentially, leading to ludicruous moves when the AI is losing)
12:26:42 -!- jaboja has joined.
12:29:50 <izabera> why are you glad?
12:30:24 <izabera> is it something like "there's still a chance for humans" or...?
12:30:50 <int-e> No. I was wondering whether the Alphago team had somehow solved this problem... now I know they didn't.
12:31:06 <izabera> so... why are you glad?
12:31:30 <\oren\> to find out if they solved it I guess
12:31:34 <int-e> Sorry, did you see the "we got to see" part of what I wrote?
12:32:28 <izabera> yes
12:32:31 <int-e> Anyway, I'm interested in Go AI progress ... as an observer. So yeah, what oren said.
12:32:37 <izabera> doesn't look like good news
12:33:18 <int-e> I like knowing where we stand.
12:34:32 <int-e> If it hadn't done this while behind that would also have made me happy. But it takes a really strong player (or some artificial setup; I'm sure the Alphago team itself has also experimented with positions where Alphago would've been behind) to get Alphago into that position.
12:34:35 -!- idris-bot has joined.
12:35:52 -!- Melvar` has changed nick to Melvar.
12:35:53 <int-e> izabera: The thing that annoys me about your question, btw, is that I initially wrote "I'm glad to see" and realized that this isn't quite what I meant. So I rephrased that part... and then you start asking why I'm glad :-(
12:36:14 <izabera> sorry
12:38:21 <int-e> And now I'm sorry that I made you apologize. Oh well, communication is hard.
12:40:23 <int-e> And of course I'm also glad to see the human win, but that's on a much more emotional level, not really connected to my scientific curiosity.
13:20:46 <b_jonas> heh heh, humans… you think you're better because you make something you think are the right moves when you're already losing
13:21:49 <b_jonas> If you think those moves are somehow better or more elegant or something, you should have put that in the rules so we get more points for a match played elegantly, or something, rather than complaining that the bots don't do something you didn't ask for.
13:22:53 <b_jonas> Also, congrats to both players.
13:24:10 <int-e> b_jonas: you're not serious about the "humans" remark, right
13:25:08 <Lymia> Too bad I don't know Go well. ;d
13:25:10 <Lymia> :D*
13:30:46 <int-e> b_jonas: The thing is, it's a situation where there are no "right moves" anymore; every move is losing. In such a situation, humans try to make the game more complicated (increase the variance of the likely outcomes), as far as it's possible without losing points; they bank on opponent's mistakes (which tend to be merely human)... Alphago apparently has not learned to do that; it assumes an...
13:30:52 <int-e> ...almost perfect opponent, where this kind of strategy would just prolong the inevitable.
13:32:44 <int-e> I'm sure it's a solvable problem (and one that a commercial Go program will have to solve; people will want to take handicaps against it, and then the computer will be behind for most of the game... There are some known approaches too, "dynamic komi" being perhaps the most promising)
13:33:51 <b_jonas> int-e: maybe, but how much of that works in practice against such a strong player as Li Sedol?
13:34:32 <int-e> Ultimately one needs some measure of how hard an overplay (technically a mistake, but one that is hard to refute, only incurs a small loss if refuted and is profitable otherwise) is to refute.
13:35:16 <int-e> b_jonas: Well, the endgame is hard... it's easy to lose half a point here, half a point there, when moves still have sizes of 5 points an more.
13:40:00 <int-e> and from what I've read the game was still quite close 20-30 moves before Alphago resigned; around that point it started to play forcing moves that lose points.
13:56:24 -!- jaboja has quit (Remote host closed the connection).
14:02:58 -!- J_Arcane has joined.
14:04:51 -!- earendel has quit (Ping timeout: 248 seconds).
14:53:00 <fizzie> Bernard Madoff wants to give me 100 million euros.
14:53:04 <fizzie> He regrets his crimes and wants my assistance in giving this money away to charity.
14:53:09 <fizzie> He's "rightly convinced that somebody of your statue [sic] will not stoop so low to derail in this kind of social and humanitarian task --".
14:53:13 <fizzie> I wasn't even aware I had a statue.
14:53:26 -!- Lord_of_Life has quit (Excess Flood).
14:53:52 <int-e> well you have a coin
14:53:59 <int-e> why wouldn't you have a statue as well?
14:54:14 <fizzie> That's true. And statues usually don't stoop, if they're well made.
14:55:37 -!- Lord_of_Life has joined.
14:56:37 -!- nys has joined.
14:57:10 -!- p34k has joined.
14:57:56 <int-e> but I guess you could put a statue on track to derail a train
15:20:39 <tswett> \oren\: I read someone's idea for ungridded Go once. In that version, two stones have to actually touch in order to be connected. A liberty is any spot where you could put a connected stone.
15:21:45 <b_jonas> tswett: heh. someone did mention go on grids other than a plain rectangular grid, but I haven't heared of an ungridded one yet.
15:21:51 <tswett> http://senseis.xmp.net/?GoOnABoardWithoutLines
15:22:00 <b_jonas> in fact, wait, I might even have a link
15:23:12 <int-e> there's the whole http://senseis.xmp.net/?Variants page... some links are broken though
15:23:39 <int-e> in particular the one on http://senseis.xmp.net/?GeneralGraphGo :-(
15:24:25 <b_jonas> hmm no
15:26:13 -!- lambda-11235 has joined.
15:36:58 -!- carado has quit (Ping timeout: 268 seconds).
15:38:15 -!- nys has quit (Ping timeout: 244 seconds).
15:41:12 <tswett> So, looks like people like Bridge Go: http://senseis.xmp.net/?BridgeGo
15:46:58 <Taneb> So, I'm at my parents' place for the Easter break
15:47:05 <Taneb> Forgot one or two things
15:47:11 <Taneb> Such as my phone charger
15:47:28 <Taneb> And the doohickey to get my desktop to connect to wi-fi
15:49:14 <b_jonas> Borrow a phone charger from them
15:50:10 -!- shikhin has changed nick to Their.
15:50:23 -!- Their has changed nick to shikhin.
15:54:14 -!- carado has joined.
15:54:54 <Taneb> b_jonas: that solves one of the issues
15:59:39 <b_jonas> wait wait. Easter break? But Easter is more than two weeks away, isn't it?
16:01:12 <Taneb> b_jonas: I get a month off
16:01:47 <int-e> b_jonas: minus the "more than"? (unless you insist on waiting until Monday)
16:02:56 <b_jonas> int-e: um yes, sorry, exactly two weeks away
16:15:49 -!- bender| has quit (Ping timeout: 268 seconds).
16:20:26 -!- Reece` has joined.
16:25:30 -!- jaboja has joined.
16:32:33 <izabera> `` seq 10 | head ---presume-input-pipe -c -5
16:32:46 <HackEgo> 1 \ 2 \ 3 \ 4 \ 5 \ 6 \ 7 \ 8
16:33:48 <myname> --- is a thing?
16:33:55 <izabera> for secret options
16:34:04 <myname> :o
16:34:07 <izabera> `` seq 10 | head ---presume-input-pipe ---disable-inotify -1
16:34:09 <HackEgo> head: unrecognized option '---disable-inotify' \ Try `head --help' for more information.
16:34:24 <izabera> `` seq 10 | tail ---presume-input-pipe ---disable-inotify -1
16:34:25 <HackEgo> tail: option used in invalid context -- 1
16:34:32 <izabera> `` seq 10 | tail ---presume-input-pipe ---disable-inotify -f
16:34:35 <HackEgo> 1 \ 2 \ 3 \ 4 \ 5 \ 6 \ 7 \ 8 \ 9 \ 10
16:35:17 <izabera> `` touch x; rm ---presume-input-tty xc
16:35:19 <izabera> `` touch x; rm ---presume-input-tty x
16:35:22 <HackEgo> rm: cannot remove `xc': No such file or directory
16:35:25 <HackEgo> No output.
16:37:57 <b_jonas> fungot, which level are you stuck on?
16:54:17 -!- lambda-11235 has quit (Ping timeout: 260 seconds).
17:02:43 -!- lambda-11235 has joined.
17:11:23 -!- vanila has joined.
17:11:35 <vanila> https://gist.github.com/rui314/3b66fe949b5ee3b21120
17:13:02 <vanila> https://raw.githubusercontent.com/shinh/bflisp/master/bflisp.bf
17:14:28 -!- fungot has joined.
17:22:30 <izabera> nice :)
17:23:35 <izabera> how large a subset of c does it compile?
17:24:41 <vanila> im sure you can find the answer by reading the source
17:31:37 -!- jaboja has quit (Ping timeout: 240 seconds).
17:35:04 -!- gremlins has joined.
17:35:36 -!- Reece` has quit (Ping timeout: 246 seconds).
17:45:55 -!- jaboja has joined.
17:49:16 -!- earendel has joined.
18:00:19 -!- sebbu2 has joined.
18:00:39 -!- sebbu has quit (Ping timeout: 268 seconds).
18:00:50 -!- sebbu2 has changed nick to sebbu.
18:01:53 -!- Sgeo_ has joined.
18:04:03 -!- Sgeo has quit (Ping timeout: 240 seconds).
18:04:16 <lifthrasiir> https://twitter.com/senokay/status/709077093192077312 I'm not really good at bc.
18:04:21 <lifthrasiir> dc*
18:06:04 <vanila> :D cool
18:06:09 <vanila> it computes pi?
18:43:44 -!- heroux has quit (Ping timeout: 244 seconds).
18:47:38 -!- Reece` has joined.
18:48:45 -!- gremlins has quit (Ping timeout: 246 seconds).
18:49:00 -!- Reece` has quit (Read error: Connection reset by peer).
18:59:51 -!- heroux has joined.
19:06:22 -!- XorSwap has joined.
19:23:35 <b_jonas> fungot, do you have values that are static and some that aren't?
19:23:35 <fungot> b_jonas: another t-shirt worthy phrase from rodgerthegreat x-d a language based on actual music. where the wiki files go
19:28:47 -!- AnotherTest has joined.
19:36:22 <olsner> fungot: what does your t-shirt say?
19:36:22 <fungot> olsner: should i do that?
19:37:04 <int-e> `? fungot
19:37:05 <fungot> int-e: no. you cannot solve the halting problem... and a political career ruined by the fact that we're whining about ook! on irc is that it's overloaded as the extension for scheme files written in elisp
19:37:24 <HackEgo> fungot is our beloved channel mascot and voice of reason.
19:37:47 <int-e> I like the idea of a political career being ruined by the fact that we're whining about ook! on irc.
19:38:46 <olsner> maybe any one of us could've had a political career if it wasn't for this channel
19:39:19 <int-e> You may be right. So thanks #esoteric for being here!
19:39:39 <shachaf> fungot for president
19:39:39 <fungot> shachaf: where do you want the number of
19:40:32 <shachaf> fungot: what are your views on taxes
19:40:32 <fungot> shachaf: oh well...
19:41:04 <int-e> fungot: I concur
19:41:04 <fungot> int-e: when your projects are there, o fnord. eihn siit silloin oo mit fnord."
19:41:25 <int-e> fungot: but I suspect that's going too far
19:41:25 <fungot> int-e: it's just a fnord sexpr to html converter... but right now i'm preoccupied with the oracle of bacon fat and bacon strips? yum. fnord saa fnord fnord verkkotunnuksia.', oh yes.
19:41:40 <shachaf> ^style
19:41:40 <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
19:42:10 <shachaf> fungot: en puhu suomea
19:42:10 <fungot> shachaf: strange layout. care about one thing. why isn't it just a different way no. i keep thinking of mold for some reason, i decided to write a mandelbrot for some esolang
19:42:11 <b_jonas> fungot: ok, so you don't want to talk about healthcare. in that case, what are your views about the government interfering with the education system?
19:42:11 <fungot> b_jonas: oh i must've seen her before then. all the standard stuff that pc-select does i have a non-vector version at my homepage is fnord lg n)
19:44:36 <int-e> fungot: may the fnord be with you...
19:44:37 <fungot> int-e: in poland, comics are free to implement it? seat of their pants?) those few hours the basement computer class was open for all. i cannot take this imperative madness, i have written an infix-to-prefix converter but it isnt what he though
19:45:45 <izabera> random noise gets boring
19:45:56 <shachaf> fungot: who do you think should be the next us supreme court justice twh
19:45:56 <fungot> shachaf: if you ask me
19:46:02 <shachaf> fungot: i am asking you
19:46:02 <fungot> shachaf: yep. black lung."
20:11:09 -!- variable has joined.
20:16:11 -!- Vorpal has quit (Ping timeout: 244 seconds).
20:21:18 -!- XorSwap has quit (Quit: Leaving).
20:22:32 -!- Vorpal has joined.
20:25:46 -!- variable has quit (Quit: 1 found in /dev/zero).
20:28:05 -!- Vorpal has quit (Ping timeout: 244 seconds).
20:33:13 -!- Vorpal has joined.
20:40:03 -!- jaboja has quit (Ping timeout: 246 seconds).
20:50:50 -!- Phantom_Hoover has joined.
21:03:30 <zzo38> While the bug I have reported in SQLite has been fixed in the code repository much earlier than when 3.11.0 was released, it seem that the change is not merged into the released version until 3.12.0 though. Do you know why?
21:03:54 <shachaf> zzo38: Did you see my question above?
21:04:35 <zzo38> No, can you repeat please?
21:04:55 <shachaf> <shachaf> zzo38: In puzzle.6, how is Artificial Evolution being used?
21:05:15 <zzo38> O, well, it is on the stack.
21:05:24 <shachaf> What choices are being made?
21:05:35 <zzo38> The choices aren't made until it resolves.
21:05:41 <shachaf> Oh, right.
21:05:46 <zzo38> However, the target is Airdrop Condor.
21:05:52 -!- hppavilion[1] has joined.
21:05:54 <hppavilion[1]> Whoo.
21:05:58 <shachaf> OK then.
21:05:59 <hppavilion[1]> At Disney World.
21:06:00 <shachaf> What's the goal?
21:06:11 <hppavilion[1]> (Well, not yet, but I'm in Orlando)
21:06:23 <zzo38> You have to guarantee you can win; it is the default stipulation.
21:06:35 <zzo38> (See the Codex if this part is unclear)
21:06:35 <hppavilion[1]> (I'm going to Universal Studios /then/ DW)
21:06:43 <shachaf> What's next? Andlanda, GA?
21:07:05 <hppavilion[1]> Oooh, here's an idea for a board game
21:07:07 <hppavilion[1]> Enigma
21:07:36 <hppavilion[1]> Or maybe a digital board game
21:08:03 <hppavilion[1]> A board game where one side is the Axis, the other side is the Allies. The Axis creates encryption using the mechanics of the game, the Allies have to crack it
21:08:22 <lynn> I went there last summer, too. Epcot was neat
21:08:29 <shachaf> Don't they have to crack each other's encryptions?
21:08:58 <hppavilion[1]> Best part is, you don't /know/ when the allies crack it, you have to calculate and make a new encryption when they do. But there's something that gives you an aversion to making a new code, so you have to be sure it's cracked
21:09:03 <hppavilion[1]> shachaf: It's asymmetric
21:09:22 <hppavilion[1]> The rest of the game is just battleship+risk
21:09:38 <hppavilion[1]> I think it'd have to be digitized for optimal effect
21:09:58 <shachaf> hppavilion[1]: But the Enigma cipher was symmetric.
21:12:20 <hppavilion[1]> shachaf: No, I mean the game is asymmetric
21:12:45 <hppavilion[1]> shachaf: And the cypher you use can be symmetric, or it can be asymmetric. Part of the game is making your own cypter
21:12:47 <vanila> I like the idea fro the game
21:12:48 <hppavilion[1]> *cypher
21:12:55 <hppavilion[1]> vanila: My idea?
21:13:01 <vanila> yeah
21:13:22 <hppavilion[1]> vanila: Yay! Of course, knowing me, I'll get bored of it in 3 days and never think about it again :/
21:14:02 <vanila> im the same :)
21:14:52 <hppavilion[1]> vanila: I'm still thinking about how to balance cyphers though; my first thought is to make it unbounded
21:15:09 <hppavilion[1]> But if I do that, there's nothing to prevent someone from implementing PGP at game startup
21:15:18 <hppavilion[1]> And thus winning automatically
21:15:35 <vanila> maybe you could limite the compuutation people can do somehow
21:15:48 <hppavilion[1]> vanila: Yeah, duh xD
21:16:21 <hppavilion[1]> vanila: I was thinking that I make the encryption some sort of pseudo-ASM and require (a) you unlock commands and (b) every block costs you
21:16:31 <hppavilion[1]> (block = line)
21:16:52 <hppavilion[1]> vanila: But not a pure ASM, as that's complicated
21:17:08 <hppavilion[1]> You would instead use an ASM with access to JSON data
21:17:35 <hppavilion[1]> vanila: My favourite part of the game is that you're making actual encryption in it :)
21:17:54 <hppavilion[1]> Most games would start with a caearian cypher and slowly escalate into something hideous
21:18:52 <hppavilion[1]> vanila: I'm thinking that, in the game, you manufacture "objects" that you can "protect"
21:19:04 <hppavilion[1]> The more protected an object, the harder it is to steal
21:19:07 <vanila> like eys?
21:19:08 <vanila> keys
21:19:25 <hppavilion[1]> vanila: Not quite; this is about protecting the keys, actually
21:20:03 <hppavilion[1]> The best strategy is to have a "codebook" object (which is really just some JSON or an algorithm) and put as much protection as you can into it, because once the allies get their hands on both a device and a codebook, you're screwed
21:21:21 <hppavilion[1]> vanila: The key catalog (the thing that tells units how to encrypt/decrypt a message for each day) (which is not strictly necessary, but is advised) is an object
21:21:49 <hppavilion[1]> When you "protect" it, it gets harder for your enemies to obtain a copy of it
21:22:42 <hppavilion[1]> (You don't need a key catalog, but if you don't use one you're pretty much just using a fixed encryption that'll get cracked the moment they get a copy)
21:23:19 <hppavilion[1]> vanila: There will /also/ be tendency for error that occurs, with frequency proportional (or otherwise related) to code complexity
21:24:15 <hppavilion[1]> The tendency for error especially comes in any time you call random in your units. They use a very lopsided randomization algorithm.
21:24:30 <hppavilion[1]> So it's advised you keep all randomization at the toplevel
21:35:59 <hppavilion[1]> vanila: One of the best strategies in the game is to send the occasional junk transmission xD
21:36:52 <vanila> that's clever
21:41:25 <hppavilion[1]> vanila: I just found that Scotch quality = 1/malts
21:42:11 <hppavilion[1]> vanila: I think Clockwork would be a fun language
21:42:34 <vanila> what's Clockwork?
21:49:05 -!- MoALTz_ has joined.
21:52:35 -!- MoALTz has quit (Ping timeout: 248 seconds).
21:54:18 -!- MoALTz_ has changed nick to MoALTz.
22:01:08 <HackEgo> [wiki] [[Libra]] N https://esolangs.org/w/index.php?oldid=46589 * Erinius * (+862) Created page with "'''Libra''' is a language that provides no real features, so the programmer must rely entirely upon libraries to do anything. These standard libraries use extremely esoteric t..."
22:04:12 <HackEgo> [wiki] [[Libra]] https://esolangs.org/w/index.php?diff=46590&oldid=46589 * Erinius * (+111)
22:06:56 -!- AnotherTest has quit (Quit: ZNC - http://znc.in).
22:11:30 <hppavilion[1]> vanila: Like in actual clocks
22:11:52 <vanila> ohh
22:11:59 <vanila> that sounds very nice
22:15:11 <b_jonas> `? break
22:15:13 <b_jonas> `? fall
22:15:15 <b_jonas> `? powerup
22:15:51 <HackEgo> fall? ¯\(°​_o)/¯
22:15:52 <HackEgo> break? ¯\(°​_o)/¯
22:15:53 <HackEgo> powerup? ¯\(°​_o)/¯
22:16:20 <b_jonas> `? invincibility frames
22:16:21 <HackEgo> invincibility frames? ¯\(°​_o)/¯
22:16:55 <vanila> whats this b-jonas
22:18:52 <b_jonas> vanila: dunno. I think we once speculated on a language where if control falls out of too many braces at the time without a sentence break;ing the fall, you die, unless you cast feather fall before
22:19:37 -!- Melvar has quit (Ping timeout: 252 seconds).
22:19:37 -!- newsham has quit (Ping timeout: 252 seconds).
22:19:39 -!- Sgeo__ has joined.
22:20:05 -!- Melvar has joined.
22:20:10 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
22:20:33 -!- hppavilion[1] has joined.
22:20:43 -!- Sgeo_ has quit (Ping timeout: 252 seconds).
22:26:10 <b_jonas> `? walk
22:26:11 <HackEgo> walk? ¯\(°​_o)/¯
22:26:53 <b_jonas> `learn walk without return or you'll attract bugs
22:26:58 <HackEgo> Learned 'walk': walk without return or you'll attract bugs
22:27:08 <b_jonas> no wait, that makes no sense
22:27:12 <b_jonas> `unlearn walk
22:27:13 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: unlearn: not found
22:27:23 <b_jonas> ``` rm -v wisdom/walk
22:27:26 <HackEgo> removed `wisdom/walk'
22:29:48 <int-e> `forget
22:29:49 <HackEgo> rm: cannot remove `wisdom/': Is a directory \ Forget what?
22:31:04 <b_jonas> `? frenemy
22:31:06 <HackEgo> frenemy? ¯\(°​_o)/¯
22:31:24 <shachaf> Is the set of frenemies clopen?
22:31:26 <b_jonas> `learn Frenemy is the relationship between Kirby and king Dee Dee
22:31:33 <HackEgo> Learned 'frenemy': Frenemy is the relationship between Kirby and king Dee Dee
22:32:23 <shachaf> That seems like some inside joke no one else in the channel would know about.
22:32:32 <shachaf> But maybe it's just my knowledge that is lacking.
22:32:41 <pikhq> Just your knowledge.
22:33:10 <shachaf> Oh, there's a King Dedede.
22:33:18 <shachaf> `sedlast s/$/./
22:33:25 <HackEgo> No output.
22:33:27 <b_jonas> Dedede? Is that his real name?
22:33:32 <pikhq> Yes.
22:38:40 <tswett> `evil
22:38:41 <HackEgo> KILL A PUPPY EVERY DAY.
22:38:49 <myname> lol
22:39:01 <tswett> `cat bin/evil
22:39:02 <HackEgo> cat "$(find evil -type f | shuf -n1)" | tr '[:lower:]' '[:upper:]'
22:39:10 <tswett> `ls evil
22:39:13 <HackEgo> 313
22:39:23 <myname> i need these
22:41:51 <hppavilion[1]> vanila: Another one of my projects is actually making Kitten
22:42:13 <b_jonas> `? fish
22:42:14 <HackEgo> fish? ¯\(°​_o)/¯
22:42:15 <b_jonas> `? pie
22:42:16 <HackEgo> I like pie \ I like pie
22:42:16 <b_jonas> `? bread
22:42:18 <HackEgo> bread? ¯\(°​_o)/¯
22:42:18 <b_jonas> `? bun
22:42:19 <HackEgo> bun? ¯\(°​_o)/¯
22:45:58 <myname> `evil
22:45:59 <HackEgo> KILL A PUPPY EVERY DAY.
22:46:04 <myname> well
22:51:56 -!- hppavilion[1] has quit (Ping timeout: 250 seconds).
22:59:59 <b_jonas> `? stupidity
23:00:00 <HackEgo> stupidity? ¯\(°​_o)/¯
23:00:03 <b_jonas> `? soviet russia
23:00:04 <HackEgo> soviet russia? ¯\(°​_o)/¯
23:00:05 <b_jonas> `? infinite
23:00:07 <HackEgo> infinite? ¯\(°​_o)/¯
23:00:10 <b_jonas> `? taxes
23:00:11 <b_jonas> `? yoda
23:00:11 <HackEgo> taxes? ¯\(°​_o)/¯
23:00:13 <HackEgo> Yoda object-verb dialogue adopts.
23:01:21 -!- hppavilion[1] has joined.
23:06:09 -!- oerjan has joined.
23:16:08 -!- newsham has joined.
23:16:59 <hppavilion[1]> vanila: Yet another project of mine is making a good shell for windows xD
23:17:16 -!- p34k has quit.
23:17:16 <vanila> how about making a good shell for linux
23:17:22 <vanila> would love that...
23:17:32 <myname> lol windows
23:17:37 <hppavilion[1]> myname: Yep xD
23:17:43 <izabera> cygwin -> shells -> pick one
23:17:51 <hppavilion[1]> izabera: Native windows
23:18:01 <hppavilion[1]> myname: I've tried getting Ubuntu running on this laptop, but it wouldn't load
23:18:19 <izabera> cygwin -> shells -> choose one -> download source -> compile with msvc
23:18:28 <myname> lol
23:18:32 <hppavilion[1]> izabera: I mean a shell for windows that I designed on my own
23:18:43 <myname> the problem isn't the shell
23:18:55 <myname> download the gnu utils and you can kinda work with it
23:18:59 <hppavilion[1]> myname: It's a fun project I'm doing because I want to
23:19:13 <izabera> what's your standard for a good shell?
23:19:14 <HackEgo> [wiki] [[Gbagbo]] N https://esolangs.org/w/index.php?oldid=46591 * Qpliu * (+3758) Created page with "The Gbagbo programming language expresses calculations on bags. It is named after the former Ivory Coast President Laurent Gbagbo. ==Lexical structure== Single character to..."
23:19:21 <hppavilion[1]> izabera: Not cmd
23:19:27 <HackEgo> [wiki] [[Language list]] https://esolangs.org/w/index.php?diff=46592&oldid=46582 * Qpliu * (+13) /* G */
23:19:29 <myname> powershell
23:19:56 <hppavilion[1]> izabera: Designed not because we need a shell, but because it's something that would be useful
23:19:58 <izabera> that's not enough of a description
23:20:06 <hppavilion[1]> izabera: Not an afterthought
23:20:12 <hppavilion[1]> A full thought in and of itself
23:22:13 <hppavilion[1]> I'm currently making up commands
23:22:26 <hppavilion[1]> merge.wal: for 'x' $[2:] @ cat $x >> $1
23:23:01 <hppavilion[1]> the @ is a redirection that calls its lhs then its rhs until the lhs fails
23:23:42 <hppavilion[1]> for binds the name the first argument suggests to each successive item of the second argument each time it is called, failing when it runs out
23:23:50 <hppavilion[1]> And cat and >> behave exactly as you expect them to
23:23:53 <myname> so... it's like cat $foo > $bar where $bar is 1 and $foo is this weird "everything but the first" var
23:24:28 <hppavilion[1]> myname: Kind of
23:24:40 <izabera> for x in "${@:2}"; do cat "$x" >> "$1"; done
23:24:42 <izabera> in bash
23:24:49 <b_jonas> `? mountaintop boatmaker
23:24:52 <HackEgo> mountaintop boatmaker? ¯\(°​_o)/¯
23:25:03 <hppavilion[1]> izabera: Mine's more legible?
23:25:20 <hppavilion[1]> myname: merge takes a destination filename then a list of filenames and appends each of the filenames in the list to the destination in order
23:26:01 <myname> that is exactly what i said
23:26:06 <hppavilion[1]> myname: OK, I wasn't sure
23:26:21 <hppavilion[1]> myname: I wasn't sure whether what you said would have the behavior I expected
23:26:23 <izabera> cat "${@:2}" >> "$1" you could also write it like this in bash, although it's not entirely equivalent because the file is only opened once
23:26:28 <myname> there is some $@ or the like which is "every argument but the first" and would do exactly what you wnt
23:26:43 <myname> izabera: hard disadvantage
23:26:43 <hppavilion[1]> myname: Cool. I like mine better.
23:27:32 <hppavilion[1]> myname: I'm not doing this for practicality, I'm doing it to improve my knowledge of PX
23:27:48 <hppavilion[1]> (PX is like UX, but the users are programmers themselves)
23:28:06 <hppavilion[1]> myname: Also, this way I have a shell that I understand 100% perfectly
23:28:21 <hppavilion[1]> (+-90%)
23:30:32 <hppavilion[1]> myname: What commands are necessary for a good shell I wonder...
23:30:54 <myname> the commands don't make the shell
23:30:59 <hppavilion[1]> myname: The builtins do
23:31:07 <hppavilion[1]> Partially
23:31:22 -!- lynn has quit (Ping timeout: 250 seconds).
23:32:05 <hppavilion[1]> The primary ones I have so far are echo, cat, cd, df (delete file), chk (evaluate its argument and fail if it is false), chk.f (fail if the flag its argument talks about did not occur in the flags), and for (the for mentioned above)
23:32:20 <myname> why is cat a builtin
23:32:32 <myname> why is df a builtin
23:32:32 <hppavilion[1]> myname: Because... um... I didn't know how else to read a file?
23:32:40 <hppavilion[1]> myname: Good point, I guess
23:32:45 <izabera> launch the external cat command?
23:32:49 <hppavilion[1]> izabera: Oh, right
23:33:13 <myname> the actually needed builtins are only a few
23:33:18 <myname> cd is one of them
23:33:21 <hppavilion[1]> myname: I heard
23:33:32 <hppavilion[1]> Those are builtins, and I have a basic mv (with -d to delete the source) and merge, which was explained above
23:33:40 <izabera> commands that do something meaningful to the shell's internal state need to be builtins
23:33:45 <hppavilion[1]> Then there are a few calculator languages launched from shell commands
23:33:58 <hppavilion[1]> But those are more external programs than commands
23:34:04 <myname> i am not sure if an echo executable would make sense
23:34:18 <izabera> `` type -a echo
23:34:20 <HackEgo> echo is a shell builtin \ echo is /bin/echo
23:34:55 <hppavilion[1]> myname: echo is usually builtin, AFAIK
23:34:56 <izabera> i'm surprised by how fast it replied
23:36:46 <hppavilion[1]> Hm...
23:37:17 <hppavilion[1]> ? unary redirector (well, not really redirection but some kind of modifier) just checks if the command it modifies succeeded
23:37:24 <hppavilion[1]> I think I don't have something for that yet
23:38:20 <myname> what should the check do?
23:38:34 <myname> it sounds like: if true then true else false
23:43:10 <myname> if common linux shells don't have it, there is probably a reason
23:44:30 <izabera> common linux shells have a lot of idiosyncrasies
23:44:42 <izabera> very stupid ones
23:46:04 <izabera> https://github.com/izabera/shellnotes i've been keeping a list
23:53:32 <b_jonas> `? lagmonster
23:53:36 <HackEgo> lagmonster? ¯\(°​_o)/¯
23:54:49 <b_jonas> `? CHOAM
23:54:50 <HackEgo> CHOAM? ¯\(°​_o)/¯
23:56:42 <lambda-11235> `? wat
23:56:43 <HackEgo> wat? ¯\(°​_o)/¯
2016-03-14
00:02:38 <hppavilion[1]> Gah! Must switch projects again!
00:02:41 <hppavilion[1]> Damn you brain!
00:02:59 <hppavilion[1]> vanila: What would be great for Kitten?
00:03:15 <vanila> I don't know what kitten is
00:03:48 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
00:05:04 <b_jonas> `? vespene
00:05:05 <HackEgo> vespene? ¯\(°​_o)/¯
00:07:58 <hppavilion[1]> vanila: Check the topic
00:19:37 -!- boily has joined.
00:20:18 <boily> hellœrjan.
00:22:20 <boily> `wisdom
00:22:22 <HackEgo> int-e/int-e är inte svensk.
00:23:02 <oerjan> boheily
00:23:36 <oerjan> `le/rn wat/Angkor Wat is a famous temple complex in Cambodia.
00:23:39 <HackEgo> Learned «wat»
00:24:00 <oerjan> ooh
00:24:15 <boily> ooh?
00:24:27 <oerjan> `learn_append wat It is the largest religious monument in the world.
00:24:29 -!- lambda-11235 has quit (Quit: Bye).
00:24:29 <HackEgo> Learned 'wat': Angkor Wat is a famous temple complex in Cambodia. It is the largest religious monument in the world.
00:24:43 * oerjan did not know that
00:24:49 -!- lambda-11235 has joined.
00:33:06 <shachaf> `quote 112
00:33:07 <HackEgo> 112) <zzo38> Some people are reasonable, some people who are not reasonable insist on changing things so therefore progress depends on not reasonablepeple
00:33:54 <boily> hellochaf.
00:34:00 <shachaf> yowly
00:34:11 <shachaf> @yowly
00:34:11 <lambdabot> While you're chewing, think of STEVEN SPIELBERG'S bank account ... his
00:34:11 <lambdabot> will have the same effect as two "STARCH BLOCKERS"!
00:35:06 <b_jonas> `? attack
00:35:07 <HackEgo> attack? ¯\(°​_o)/¯
00:35:48 <boily> attack?
00:36:46 <oerjan> <int-e> No. I was wondering whether the Alphago team had somehow solved this problem... now I know they didn't. <-- . o O ( do human brains have horizon effects )
00:37:13 <int-e> oerjan: probabl!
00:37:14 <int-e> y
00:37:22 <vanila> I don't think tehy do
00:37:25 <int-e> (was that an instance... I hope not...)
00:37:32 <oerjan> int-e: *MWAHAHAHA*
00:38:39 -!- hppavilion[1] has quit (Ping timeout: 244 seconds).
00:39:50 <int-e> oerjan: do you recall enough of ghc's #8827 to have an idea how safe or unsafe Data.Coerce is?
00:40:16 -!- hppavilion[1] has joined.
00:40:34 <int-e> vanila: but perhaps you just say that because you didn't think about it deeply enough.
00:40:42 <vanila> :P
00:40:57 <hppavilion[1]> vanila: You know J?
00:41:06 <vanila> there was a very funny video of someone who made a NES AI
00:41:09 <vanila> hppavilion[1], a bit!
00:41:09 <hppavilion[1]> vanila: #esoteric should make something like that.
00:41:18 <vanila> and then when he tried it on tetris it sucked
00:41:24 <hppavilion[1]> An uber-terse array language of awesomeness
00:41:28 <vanila> and when it almost lost it just paused the game
00:41:37 <vanila> and kept it paused so that it would never lose
00:41:47 <lifthrasiir> oerjan: I think so, indirectly
00:41:47 <int-e> that's a brilliant strategy!
00:41:56 <lifthrasiir> there are some safety mechanisms to avoid them but not perfect
00:42:14 <b_jonas> `? defense
00:42:16 <HackEgo> defense? ¯\(°​_o)/¯
00:46:46 <oerjan> int-e: any unsafeness is due to modules defining data types with unexposed constructors that are not meant to be convertible, without considering the role mechanism?
00:47:44 <int-e> oerjan: Looking at https://ghc.haskell.org/trac/ghc/wiki/SafeRoles I gather that type roles are respected, and hence one cannot break the reprentational aspect of the type system through coerce; at the same time it may still be possible to break abstractions... how bad is that? Can I use `coerce` to convert runST into unsafePerformIO, say? [probably not because of the rank 2 type, but maybe...
00:47:48 <oerjan> so all the discussion is about how far to safeguard against that. there is in any case usually no breach of memory safety, only invariants
00:47:50 <int-e> ...there are other constructs like that...]
00:48:49 <oerjan> int-e: in Unsafe mode you can break abstractions, i don't remember if coerce is supported in Safe mode.
00:49:03 <int-e> (and ST has a nominal type role for its phantom type argument...)
00:49:13 <oerjan> heh
00:49:16 <int-e> oerjan: the module is Unsafe
00:49:31 <int-e> @let import Control.Monad.Free
00:49:33 <lambdabot> <no location info>:
00:49:33 <lambdabot> The package (profunctors-5.1.1) is required to be trusted but it isn't!
00:50:15 <oerjan> int-e: i'm not talking about the module you're importing, but the one you're defining
00:50:31 <int-e> This is the reason why I'm asking... profunctors' Data.Profunctors.Unsafe module is marked "Trustworthy" and effectively exports `coerce`.
00:50:32 <oerjan> an Unsafe module can use unsafeCoerce, after all.
00:51:12 <int-e> wheras Data.Coerce is Unsafe.
00:51:16 <oerjan> int-e: oh, i'm not clear enough about the current state to say whether that's bad
00:51:17 <vanila> i don't know why people still bother with haskell
00:51:18 <int-e> @let import Data.Coerce
00:51:19 <lambdabot> .L.hs:75:1:
00:51:19 <lambdabot> Data.Coerce: Can't be safely imported!
00:51:19 <lambdabot> The module itself isn't safe.
00:51:53 <oerjan> it is possible that you need Unsafe mode just to _use_ coerce, even if it's imported from somewhere trustworthy
00:52:00 <oerjan> i don't quite remember
00:52:20 -!- lambda-11235 has quit (Quit: Bye).
00:52:30 <oerjan> vanila: i barely do now, i don't have ghc on my laptop :P
00:52:45 <int-e> oerjan: "effectively" means I can define coerce' a = (#.) undefined (const a) undefined
00:52:49 <vanila> I think it would be nice to write a new haskell compiler
00:53:04 -!- lambda-11235 has joined.
00:53:06 <int-e> and it has just the same type as coerce.
00:53:10 <int-e> hmm
00:53:23 <int-e> or perhaps you mean inferring Coercible constraints is restricted
00:53:24 <vanila> What do you al feel about modern haskell?
00:55:43 <int-e> vanila: are you getting at anything in particular, or are you just trolling?
00:55:47 <vanila> um ok
00:55:53 <vanila> good for you
00:56:21 <int-e> I do have complaints about Haskell... but no more than about other programming languages that I use.
00:56:28 <vanila> not interested dude talk to someone else
00:56:33 -!- deltab has quit (Ping timeout: 240 seconds).
00:56:47 <int-e> Ah, trolling it is then. Fine.
00:57:00 <vanila> you're an idiot
00:57:01 <oerjan> <int-e> or perhaps you mean inferring Coercible constraints is restricted <-- yeah
00:58:26 <oerjan> vanila: are you aiming for a ban tdnh
00:58:45 <lambda-11235> @slap vanila
00:58:46 <lambdabot> I don't perform such side effects on command!
01:00:20 <boily> lambdabot: you should use this chännel's traditional weapons.
01:00:34 <lambda-11235> It didn't work? I tested it on myself in a private chat first. Oh well.
01:00:53 <int-e> lambdabot is somewhat random
01:03:44 -!- deltab has joined.
01:03:55 <b_jonas> boily: like parenthesis?
01:04:29 <int-e> oerjan: okay, then the puzzle is why Data.Coerce is not marked as Trustworthy...
01:05:36 <int-e> oerjan: (I played around a bit, and yes, it looks that Coercible inference is restricted in SafeHaskell. Thanks for the hint!)
01:07:19 <boily> b_jhellonas. unbalancing parentheses is a crime against humanity.
01:07:21 * boily eyes fungot
01:07:22 <fungot> boily: last time i checked elucidatewhy is to become proficient in scheme programming by seeing how i can get it's just what oklopol and bsmntbombdood did have the occasional orgies, though.
01:07:50 <oerjan> int-e: on thinking, i think throwing around trolling accusations shouldn't be done this lightly
01:08:33 <int-e> oerjan: Well, I guess I see why; it's really about giving library authors time to sprinkle `nominal` type constraints in their code where needed (like Data.Map).
01:12:06 <oerjan> int-e: i think the role considerations just haven't converged to a stable state yet.
01:12:34 -!- lambdabot has quit (Quit: hey, be careful with that cable!).
01:12:58 <hppavilion[1]> 0.0
01:13:05 <hppavilion[1]> lambdabot quit !?
01:13:09 <oerjan> also, #8827 isn't implemented yet
01:13:21 <oerjan> hppavilion[1]: i assume int-e is reconfiguring things
01:13:29 <hppavilion[1]> oerjan: Ah
01:13:33 <int-e> oerjan's right
01:13:35 <oerjan> possibly related to our coerce discussion
01:13:37 <hppavilion[1]> oerjan: Wait, int-e is in charge of lambdabot?
01:13:42 <oerjan> hppavilion[1]: yes
01:13:53 <hppavilion[1]> oerjan: *miniature mind blow*
01:13:57 <oerjan> :P
01:13:58 -!- vanila has left ("Leaving").
01:14:11 <hppavilion[1]> *not a big mind blow, but still technically a mind blow*
01:14:23 <int-e> (I've decided to trust profunctors for now...)
01:14:32 <hppavilion[1]> int-e: Profunctors...?
01:14:41 <hppavilion[1]> oerjan: For some reason, I can never get my mind off the concept of a language called Unilang
01:14:44 <int-e> hppavilion[1]: one of ekmett's many libraries
01:14:52 <hppavilion[1]> int-e: Ah?
01:14:58 <oerjan> my memory is a bid vague, i'm not entirely sure whether int-e came here to the channel of his own accord, or whether he tagged along with lambdabot after we nagged to get it here
01:15:19 <int-e> https://hackage.haskell.org/package/profunctors
01:15:30 <oerjan> he may not have been the maintainer back then
01:15:41 <int-e> oerjan: I came here on my own accord the first time... not sure about my return ;)
01:15:56 <int-e> s/on/of/ (meh)
01:17:06 -!- lambdabot has joined.
01:17:22 <int-e> But it was probably unrelated to lambdabot.
01:17:25 <int-e> @bot
01:17:30 <lambdabot> :)
01:18:33 <oerjan> i was going to suggest on/of are both acceptable, sadly stackexchange disagrees with me
01:18:55 <oerjan> but one comment suggests confusion with "on my own account"
01:22:49 <oerjan> <int-e> If it hadn't done this while behind that would also have made me happy. But it takes a really strong player (or some artificial setup; [...] <-- afaiu go has a pretty extensive handicap system, so not _that_ artificial...
01:24:15 * oerjan chuckles evilly at boily
01:25:11 <boily> huh?
01:25:25 <lambda-11235> boily: Unbalanced parens.
01:25:30 <int-e> oerjan: actually the first time I came here the esolangs mailing list was still functioning; perhaps it mentioned the IRC channel?
01:25:46 <oerjan> perhaps
01:42:11 <oerjan> eek is easter that soon
01:43:57 <boily> Easter Approaches. The Holy Zombie will Come and Enlighten us All.
01:44:25 <boily> > (61 - 32) * 5 / 9
01:44:26 <lambdabot> 16.11111111111111
01:44:45 <hppavilion[1]> I've got a framework for a bot working!
01:44:54 <boily> > 21 * 9 / 5 + 32
01:44:56 <lambdabot> 69.8
01:45:44 <boily> hppavellon[1]!
01:45:52 <hppavilion[1]> ahoily!
01:55:56 <int-e> hmm. <int-e> well, your head exploded <Keymaker> yes <int-e> that's a good point to stop reading ;) ... reading old logs is fun :)
01:58:57 -!- boily has quit (Quit: COLLECTIVE CHICKEN).
01:59:02 <int-e> `? sand
01:59:13 <HackEgo> sand? ¯\(°​_o)/¯
01:59:50 <int-e> `learn Sand is what microprocessors are made of. GregorR invented it.
01:59:59 <HackEgo> Learned 'sand': Sand is what microprocessors are made of. GregorR invented it.
02:00:07 <oerjan> if you don't stop reading when your head explodes, severe side effects may occur.
02:00:48 <int-e> (<GregorR> I wrote my compiler! And I built my processor, mother board, RAM, hard disk etc from sand. <GregorR> Sand that I /invented/!) (context was trust)
02:01:02 <oerjan> Gregor dropped the R eventually, i guess the people revolted against him.
02:01:03 <int-e> trust in software and hardware, that is.
02:02:52 <oerjan> and he had only got cheap deathrayatcost defenses that failed at the worst possible moment
02:05:38 <oerjan> clearly he should have kept to the build everything yourself policy
02:06:38 <hppavilion[1]> I'm working on thoof4irc
02:17:17 <int-e> !ps
02:21:28 <hppavilion[1]> Hm...
02:21:37 <hppavilion[1]> The bot is a bit buggy
02:22:40 <oerjan> !sh ps
02:22:41 <EgoBot> ​\ \ Signal 18 (CONT) caught by ps (procps version 3.2.8). \ Please send bug reports to <feedback@lists.sf.net> or <albert@users.sf.net>
02:22:54 <hppavilion[1]> If anyone wants to experiment a bit with it, I can add a help and join it to #esoteric
02:23:06 <hppavilion[1]> But it doesn't seem to always get the messages I send it
02:23:42 <hppavilion[1]> The trigger is %%
02:23:43 <hppavilion[1]> ^prefixes
02:23:43 <fungot> Bot prefixes: fungot ^, HackEgo `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, idris-bot ( , jconn ) , j-bot [ .
02:23:46 <int-e> <int-e> hmm. I'm not doing much esoteric stuff anymore.
02:24:03 <oerjan> int-e: date?
02:24:12 <int-e> 2006-05-27
02:24:21 <oerjan> O KAY
02:24:24 -!- Lilly_Goodman has joined.
02:24:35 -!- hppavilion[1] has quit (Quit: Leaving).
02:24:49 <Lilly_Goodman> Hola
02:24:51 <Lilly_Goodman> hello
02:27:42 <int-e> oerjan: so yeah, my return in late 2013 is connected to me taking over lambdabot
02:28:07 <int-e> @let import Control.Monad.Free
02:28:08 <lambdabot> Defined.
02:28:11 <int-e> @undef
02:28:11 <lambdabot> Undefined.
02:28:12 <int-e> fine.
02:28:23 <int-e> in any case, good night
02:33:03 -!- hppavilion[1] has joined.
02:33:06 -!- hppavilion[1] has quit (Client Quit).
02:37:13 -!- hppavilion[1] has joined.
02:37:38 <hppavilion[1]> Lilly_Goodman: ¿Tiene algún interés en los lenguajes de programación esotéricos? O la programación en absoluto?
02:37:42 <hppavilion[1]> @messages-
02:37:42 <lambdabot> oerjan said 4m 14s ago: CHICKEN :P
02:38:01 <Lilly_Goodman> hppavilion[1]: si
02:38:03 <hppavilion[1]> Probably was not supposed to put that public xD
02:38:21 <hppavilion[1]> Lilly_Goodman: ¿Qué tipo de programación?
02:39:50 <hppavilion[1]> Lilly_Goodman: Qué lenguajes de programación lo sabes?
02:40:49 <Lilly_Goodman> hppavilion[1]: se el de castellano y me interesa conrespecto a la computadora en si
02:41:34 <hppavilion[1]> Lilly_Goodman:
02:41:34 <hppavilion[1]> Google no se está traduciendo que adecuadamente. ¿Se puede reformular? O corregir los errores tipográficos?
02:42:51 <hppavilion[1]> oerjan: Would an IRC bot that does category theory be of interest to this channel? Or does lambdabot already serve that function?
02:42:53 <Lilly_Goodman> hppavilion[1]: me puedes decir el hardware, se compone de la unidad central, los periféricos de entrada y salida??
02:43:32 <hppavilion[1]> Lilly_Goodman: No estoy seguro de lo que estás pidiendo
02:44:34 <Lilly_Goodman> una pregunta... el hardware de la computadora, se compone de la unidad central, los periféricos de entrada y salida? responde
02:44:56 <hppavilion[1]> Lilly_Goodman:
02:44:57 <hppavilion[1]> Eso suena bastante bien
02:45:24 <hppavilion[1]> Por otra parte, yo no soy un tipo de hardware
02:47:27 <Lilly_Goodman> hppavilion[1]: de que parte eres?
02:48:02 <zzo38> shachaf: Could you figure out my puzzle now?
02:48:22 <hppavilion[1]> Lilly_Goodman: Hago la programación de computadoras. La mayoría de nosotros. Pocos de nosotros comprende el metal desnudo, por lo que yo puedo decir.
02:49:00 <shachaf> zzo38: I didn't look at it since yesterday.
02:49:13 <Lilly_Goodman> hppavilion[1]: a esta bien...
02:49:47 <hppavilion[1]> Lilly_Goodman: OK
02:50:33 <Lilly_Goodman> hppavilion[1]: tengo otra pregunta,,, para introducir cambios en un documento es necesario tipiarlo todo de nuevo? responde
02:50:54 <hppavilion[1]> shachaf: Would a bot with category theory as a builtin function be of interest to #esoteric? Assuming λbot doesn't already fulfill that function?
02:51:31 <hppavilion[1]> Lilly_Goodman:
02:51:31 <hppavilion[1]> tipiarlo no se traducirá
02:53:18 <Lilly_Goodman> hppavilion[1]: tengo otra pregunta,,, para introducir cambios en un documento es necesario escribirlo todo de nuevo? responde
02:53:44 <hppavilion[1]> Lilly_Goodman: No
02:54:04 <Lilly_Goodman> hppavilion[1]: dime el porque de tu respuesta
02:54:11 <hppavilion[1]> ¿Dónde está este documento? (También, tener en cuenta #esoteric NO es el soporte técnico)
02:54:41 <hppavilion[1]> Lilly_Goodman:
02:54:41 <hppavilion[1]> Sería estúpido si tiene que volver a escribir un documento para hacer un cambio menor
02:55:00 <shachaf> I don't know what such a bot would be.
02:55:20 <hppavilion[1]> shachaf: A bot that includes a simple command API for manipulating categories
02:55:28 <Lilly_Goodman> hppavilion[1]: jajajaja es para una tarea y no puedo responder asi
02:55:28 <hppavilion[1]> shachaf: And category theorizing
02:56:10 <hppavilion[1]> Lilly_Goodman: Pero ¿dónde está el documento que necesita cambiar? ¿Qué software?
02:57:43 <hppavilion[1]> Lilly_Goodman: Escucha, parece agradable, pero realmente no parece que este es el canal que está buscando. Creo que se debe encontrar en otro lugar que se adapta mejor a lo que usted está tratando de logros como un canal de soporte técnico con el español como idioma principal.
02:58:27 <shachaf> I don't know what that would be like.
02:58:58 -!- sajonara has joined.
02:59:13 <Lilly_Goodman> hppavilion[1]: en Word
03:00:23 <hppavilion[1]> Lilly_Goodman:
03:00:23 <hppavilion[1]> Por favor. Encontrar un canal que hace de soporte técnico. Este canal no está hecho para responder a sus preguntas de la tecnología, que está aquí para geeks que tienen un lugar para pasar el rato.
03:01:51 <Lilly_Goodman> donde pueden que me ayuden
03:22:09 <oerjan> `? frenemy
03:22:20 <HackEgo> Frenemy is the relationship between Kirby and king Dee Dee.
03:38:51 <zzo38> shachaf: vaporware told me to tell you that it is scow
03:39:17 <shachaf> What is vaporware?
03:39:24 <hppavilion[1]> shachaf: Here's a preliminary approximation of a category theory CMD: http://pastebin.com/GGWvepfX
03:39:36 <zzo38> shachaf: Someone on ifMUD is named "vaporware"
03:39:43 <zzo38> They told me to tell you
03:39:53 <shachaf> zzo38: Aha. I know who that is.
03:40:23 <shachaf> zzo38: Tell vaporware that it's too good.
03:40:53 -!- sajonara has quit (Quit: Leaving).
03:43:44 <shachaf> http://ifmud.port4000.com:4001/finger?user=vaporware
03:44:31 <hppavilion[1]> shachaf: So what did I do wrong?
03:45:00 <shachaf> Posted a link to pastebin.com without using raw.php
03:45:07 <shachaf> http://pastebin.com/raw/GGWvepfX -- so much better
03:45:26 <hppavilion[1]> *fine*
03:45:38 <hppavilion[1]> http://pastebin.com/raw/GGWvepfX
03:45:40 <shachaf> Anyway, I don't think that's a helpful way of thinking about categories.
03:45:41 <hppavilion[1]> Happy?
03:45:48 <shachaf> For the thing that people usually do with them.
03:45:49 <hppavilion[1]> shachaf: That's for finite categories
03:45:51 <shachaf> But maybe it is. I don't know.
03:46:02 <hppavilion[1]> shachaf: That's just the API for building categories, isn't it?
03:46:28 <hppavilion[1]> shachaf: There'll also be ways to build bigger (i.e. infinite) categories, if I do it right
03:46:41 <shachaf> make sure you can build large categories hth
03:49:36 <shachaf> zzo38: Can I talk to vaporware without making an account?
03:51:09 <zzo38> shachaf: Yes; enter "connect guest" when it asks you to login
03:51:19 <zzo38> And then you can type "page vaporware =" and the message
03:52:49 <shachaf> Can I also talk to them in a public place?
03:52:52 <shachaf> Like an IRC channel?
03:53:27 <shachaf> Who's Olly? A bot or a human?
03:53:47 <zzo38> You can't use channels if you are a guest
03:53:58 <zzo38> But you can type "lounge" to enter the same location they are in
03:54:09 <zzo38> And then enter text with a quotation mark at first to say stuff
04:01:21 <hppavilion[1]> shachaf: Yep, that was the goal
04:02:04 <Lilly_Goodman> donde hay un grupo que se pueda preguntar en español
04:02:27 <izabera> aqui
04:03:45 <zzo38> Lilly_Goodman: Sorry I am not very good Spanish, this channel is for English. (Possibly some people can write/read other language too but mostly is just commonly English, therefore I would expect English writing please.)
04:05:00 <hppavilion[1]> shachaf: So how should the interface work for infinite categories? Obviously, you can't add arbitrary morphism
04:05:02 <hppavilion[1]> s
04:05:12 <shachaf> zzo38: Am I making a fool of myself in the lounge?
04:05:33 <zzo38> I don't know, although you are allowed to go into other location too if you prefer
04:05:51 <shachaf> But then how will I know what people are saying in the lounge?
04:05:54 <zzo38> (Including back into the starting location, or into the apartment building)
04:06:25 <zzo38> You can type "@recapchannel lounge" to read it. (If you have an account this can be abbreviated to "@recap lounge")
04:06:33 -!- Lilly_Goodman has quit (Ping timeout: 250 seconds).
04:16:37 <shachaf> zzo38: How do I find out where you are?
04:16:56 -!- dingbat has joined.
04:17:32 <zzo38> shachaf: You can use the "finger" command; type "finger zzo38" or "finger #20071"
04:17:49 <shachaf> How do I get there?
04:18:03 <zzo38> To get to the apartment building from the lounge, go east, and then go south to reach apartment building, and go to the top floor
04:18:12 <shachaf> zzo38: Oh, I can also type "where zzo38".
04:18:13 <zzo38> And then go into the east hall
04:18:22 <zzo38> Yes that works too
04:18:31 <zzo38> (I didn't know that, now I know)
04:31:13 -!- puckipedia has quit (Ping timeout: 240 seconds).
04:32:49 -!- treaki__ has joined.
04:34:10 <zzo38> I can describe workings of ifMUD if you want it
04:35:35 <zzo38> I can also tell you what things to set if you do have account
04:35:43 -!- puckipedia has joined.
04:36:03 -!- treaki_ has quit (Ping timeout: 240 seconds).
04:37:27 <zzo38> The command " to say to the current room, while ; is say to your current channel, : is describe yourself to do something (for example ": does something"), . followed by a name and space and text to whisper, and % followed by a channel name and space and text allows you to type to a specific channel which is not necessarily your current channel.
04:37:32 <hppavilion[1]> `? sparta
04:37:39 <HackEgo> sparta? ¯\(°​_o)/¯
04:37:42 <hppavilion[1]> -_-
04:38:48 <shachaf> What's the difference between page and whisper?
04:39:05 <zzo38> If you do have account, then the first few things you might want to do are to use @desc to write a description for yourself (enter "@desc me =" and a description); the description can also contain a JotaCode program if you want, and to use @option to set options.
04:39:39 <zzo38> shachaf: They work similarly. You might use whisper for in-character and page for out-of-character, although nobody really cares about such distinction much.
04:40:38 <zzo38> They also save the messages to different lists so that you can recap one or the other
04:43:18 <zzo38> Also guests cannot use @exec either; registered users can use @exec to execute JotaCode programs and then it will tell you the answer, for example "@exec @mul(6,7)" is a valid program.
04:55:38 <zzo38> Each object has fields and flags. You can view fields of objects someone else programmed only if the "examinable" flag is set on that object, although some fields are private and cannot be seen at all (even by the object's owner!). This includes your current channel, however there is a hack you can use to programmatically access your own current channel (setting yourself examinable will not allow other people's programs to access your current chan
04:58:16 <oerjan> `le/rn sparta/WE. DON'T. KNOW. ANYTHING. ABOUT. SPARTA!
04:58:20 <HackEgo> Learned «sparta»
05:01:38 <lambda-11235> `? c++
05:01:39 <HackEgo> Along with C, C++ is a language for smart people.
05:01:56 <lambda-11235> `? haskell
05:01:58 <HackEgo> Unbound implicit parameter (?haskell::Wisdom) \ arising from a use of implicit parameter `?haskell'
05:03:55 <hppavilion[1]> shachaf: So what's the optimal way to implement categories if the way I tried isn't good?
05:04:10 <hppavilion[1]> Is it to give it a function to tell it whether or not an arrow can occur?
05:06:59 <hppavilion[1]> Hm...
05:08:30 <hppavilion[1]> `? c
05:08:32 <HackEgo> C is the language of��V�>WIד�.��Segmentation fault
05:08:57 <hppavilion[1]> lambda-11235: Are there any good models that don't have a ubiquitous language for them?
05:09:07 <hppavilion[1]> For declarative programming?
05:09:22 <hppavilion[1]> (Logic :: PROLOG, λ-calc :: Haskell)
05:14:29 -!- XorSwap has joined.
05:22:54 <shachaf> Implement categories for what?
05:23:21 <lambda-11235> hppavilion[1]: For dependently typed languages, representing λΠω on the λ-cube, there is the choice of Agda, Coq, or Idris, without any of them necessarily being the goto language.
05:28:46 <lambda-11235> Looking through Wikipedia, dataflow programming might be one such model, although I'm not very familiar with that paradigm or the languages that implement it.
05:28:47 <hppavilion[1]> INTERPROVE- for INTERCALian mathematicians
05:28:55 <hppavilion[1]> It has, for example, the REEL type
05:30:04 <hppavilion[1]> CHALLENGE: Haskell with only tuples, lists, and bools
05:31:48 <hppavilion[1]> lambda-11235: What could be done as a type theory that makes absolutely no sense?
05:32:09 <lambda-11235> hppavilion[1]: You only need lists.
05:32:17 <hppavilion[1]> lambda-11235: Oh, right
05:32:21 <hppavilion[1]> []=0, [[]]=1
05:32:35 <hppavilion[1]> lambda-11235: Wait, but what do you do for tuples?
05:33:05 <lambda-11235> hppavilion[1]: []=0, 1=[[],[]], otherwise they won't be the same type.
05:33:28 <hppavilion[1]> Oh
05:33:31 <hppavilion[1]> Right, right
05:33:39 <lambda-11235> Why do you need tuples?
05:33:52 <hppavilion[1]> lambda-11235: They just seem like they'd be useful
05:34:46 <lambda-11235> Then why only use tuples, lists, and bools if it should be useful?
05:35:27 <lambda-11235> Actually, all you need is functions.
05:36:50 <hppavilion[1]> lambda-11235: I'd like to see a way of constructing functions on pure lists out of pure lists
05:37:05 <hppavilion[1]> (Non-homogenous)
05:38:46 <lambda-11235> hppavilion[1]: What do you mean? f :: [a] -> [a]?
05:44:12 <lambda-11235> As far as what can be done with type theory that is hard to make sense of, check out http://homotopytypetheory.org/.
05:46:27 <lambda-11235> I haven't found interest or time to read it yet, and to be honest I'm only starting to learn type theory.
05:47:27 <lambda-11235> But I know it's a HoTT topic in the type theory community. :)
06:13:14 -!- hppavilion[1] has quit (Ping timeout: 260 seconds).
06:16:36 -!- hppavilion[1] has joined.
06:19:50 -!- bender|_ has joined.
06:35:23 <hppavilion[1]> Hm...
06:35:34 <hppavilion[1]> What I really want to do right now is put a new spin on functional programming
06:41:04 <hppavilion[1]> Probably... hm....
06:42:33 -!- XorSwap has quit (Quit: Leaving).
06:47:15 -!- lambda-11235 has quit (Quit: Bye).
07:04:33 <hppavilion[1]> Hm...
07:04:37 <hppavilion[1]> What to do, what to do
07:05:16 -!- Effilry has joined.
07:08:08 * hppavilion[1] bashes his head against the wall of #esoteric
07:08:37 <oerjan> that's not how you work your brain hth
07:10:06 <hppavilion[1]> oerjan: Yeah
07:10:20 <shachaf> what's some good tea twh
07:10:24 <hppavilion[1]> It's late, so I'm not drugged up anymore
07:10:31 <hppavilion[1]> And thus my brain is even worse at focusing than usual
07:11:40 <hppavilion[1]> I still want to play Nomic, but I can't get anyone to play xD
07:13:32 <oerjan> this latest girl genius arc seems to be a run of chekhov's guns fizzling out
07:15:26 -!- izabera1 has joined.
07:15:28 -!- heroux has quit (*.net *.split).
07:15:28 -!- vodkode has quit (*.net *.split).
07:15:29 -!- atehwa has quit (*.net *.split).
07:15:29 -!- Nithogg has quit (*.net *.split).
07:15:29 -!- FireFly has quit (*.net *.split).
07:15:29 -!- izabera has quit (*.net *.split).
07:15:29 -!- Deewiant has quit (*.net *.split).
07:16:05 -!- heroux has joined.
07:16:06 -!- vodkode has joined.
07:16:06 -!- atehwa has joined.
07:16:06 -!- Nithogg has joined.
07:16:10 <oerjan> shachaf: from my coffee shop days, i recall rooibos
07:16:14 -!- Deewiant has joined.
07:17:17 <shachaf> are you past your coffee shop period
07:17:22 <shachaf> what period are you in now twh
07:17:50 <oerjan> right now i seem to be in an italian restaurant period
07:18:24 -!- kline has quit (Ping timeout: 276 seconds).
07:20:48 <shachaf> oerjan: Is it true that Norwegian pizza is the best in the world?
07:22:02 <zzo38> Foods in Canada are better than others
07:22:18 <zzo38> (Even if it is the same chain of restaurant in a different country)
07:23:14 <oerjan> shachaf: yep. specifically the norwegian pizza made by kurds running italian restaurants.
07:23:33 <shachaf> zzo38: Why?
07:23:51 <hppavilion[1]> *Sigh*
07:24:04 <hppavilion[1]> I'm setting up nomic over Github. Now to find somebody to play
07:24:14 <hppavilion[1]> s/somebody/some people/
07:24:27 <shachaf> Does it use VoIP?
07:24:28 <hppavilion[1]> I might adjust the rules more frequently
07:24:39 <shachaf> I would play if it used VoIP, except that I have no mic.
07:24:44 <hppavilion[1]> shachaf: I don't even know what VoIP is xD
07:24:46 <hppavilion[1]> Voice over IP?
07:24:50 <shachaf> Yes.
07:25:08 <hppavilion[1]> Is that just basically skype for classical hackers?
07:25:48 <shachaf> oerjan: Well, I heard the chains are the best.
07:25:53 <shachaf> Like Peppes and the other one.
07:26:29 <zzo38> shachaf: I don't know why, but in my experience, it is.
07:26:42 <shachaf> zzo38: Which other countries have you tried?
07:29:22 <zzo38> United States
07:29:30 <shachaf> Which states?
07:29:34 <zzo38> Also some stuff imported from England
07:29:51 -!- kline has joined.
07:30:02 <zzo38> I forget which states, but I think the ones near British Columbia
07:34:35 <hppavilion[1]> How about singleton nomic? Nomic where the entire game must be governed by a single overly-complicated rule
07:34:41 <hppavilion[1]> But a still-atomic rule
07:35:21 <hppavilion[1]> shachaf: Well, my nomic doesn't have VoIP unfortunately
07:35:31 <shachaf> i just wanted to make a pun hth
07:35:34 <hppavilion[1]> Oh
07:35:38 <hppavilion[1]> What was the pun?
07:37:44 <izabera1> ba-dum-tss
07:51:58 -!- J_Arcane_ has joined.
07:53:41 -!- J_Arcane has quit (Ping timeout: 244 seconds).
07:53:53 -!- J_Arcane_ has changed nick to J_Arcane.
08:04:26 <shachaf> `pastequotes zzo38
08:04:32 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/file/tip/paste/paste.9775
08:05:31 <shachaf> `pastequotes <zzo38
08:05:42 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/file/tip/paste/paste.23629
08:09:39 <zzo38> Many of them are out of context, whether it is me or someone else who wrote it.
08:11:39 <zzo38> Isn't it?
08:21:27 <zzo38> I use the same IRC client that I had before, except now it is Linux because my old computer broke (I believe the CPU failed)
08:24:37 -!- oerjan has quit (Quit: wroom).
08:26:00 <shachaf> zzo38: Why do you disallow * in your robots.txt?
08:26:57 -!- AnotherTest has joined.
08:27:30 <zzo38> shachaf: Because I want to.
08:28:04 <zzo38> If you want to make backup of a few files that is OK though, but don't do too much please
08:28:19 <shachaf> I wanted to search the website with Google.
08:29:44 <zzo38> Well, use a different program.
08:31:14 <zzo38> What exactly are you looking for?
08:31:21 <zzo38> Maybe I know what file it is that you would need
08:32:17 <shachaf> I already forgot.
08:34:47 -!- hppavilion[1] has quit (Ping timeout: 250 seconds).
08:36:04 <zzo38> If you want to make your backups public that is OK too, whether the files are modified or unmodified, but please do not mark the modified files as exact copies of the original.
08:36:22 <shachaf> How do you mark files as exact copies?
08:38:00 <zzo38> That is up to you I suppose; a magnet URI might be one way I suppose
08:41:21 <shachaf> zzo38: whoa whoa whoa, http://zzo38computer.org/textfile/miscellaneous/zzo38_quote.txt
08:41:35 <shachaf> zzo38: In this case I think I was looking for the Magic: The Gathering PHP file.
08:41:39 <shachaf> But I could probably find it another way.
08:41:48 <shachaf> But I was hoping to look for all sorts of things.
08:42:08 <zzo38> Is this what you want? http://zzo38computer.org/mtg/cardfile.php
08:42:16 -!- izabera1 has changed nick to izabera.
08:43:43 <shachaf> Yes.
08:43:49 <shachaf> But I'll just lose it.
08:44:12 <shachaf> You should add a /sitemap.xml file
08:44:15 <zzo38> Bookmark it if you do not want to lose it, that would always be the way anyways
08:44:50 <shachaf> That doesn't work because sometimes I use a different computer.
08:44:51 <zzo38> I also think XML isn't very good for stuff other than text document markups anyways
08:44:57 <shachaf> I agree.
08:45:08 <shachaf> How about a regular index.html file that lists different parts of the website?
08:45:53 <zzo38> No I don't need such thing the different part don't even go together, there is just various stuff on the server
08:46:29 <shachaf> Just to help people find things.
08:46:40 <shachaf> What all the parts have in common is that you made them.
08:46:55 <zzo38> Actually it doesn't. Some files come from elsewhere
08:47:30 <shachaf> Well, you can leave those out.
08:48:33 <zzo38> Even not everything I have written may necessarily even be on my server since it may be something else, and in other cases also the protocol might be different too; there is too many possibilities
08:49:54 <shachaf> Well, all the things on the server available via HTTP are available via HTTP from that server.
08:50:02 <shachaf> That's what they have in common.
08:50:34 -!- hppavilion[1] has joined.
08:50:58 <zzo38> No even that is not true, some things are available via HTTP from other server
09:08:49 -!- hppavilion[1] has quit (Ping timeout: 240 seconds).
09:14:00 -!- hppavilion[1] has joined.
09:17:25 -!- earendel has quit (Ping timeout: 244 seconds).
09:27:45 -!- fractal has quit (Ping timeout: 244 seconds).
09:35:33 -!- J_Arcane has quit (Ping timeout: 240 seconds).
09:45:59 -!- copumpkin has quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…).
10:41:24 -!- lynn has joined.
10:47:31 -!- hppavilion[1] has quit (Ping timeout: 248 seconds).
11:15:25 <int-e> hmm, how would one find a sub-TC language that has an undecidable halting problem?
11:21:17 <int-e> I should ask that when ais523 is here
11:27:18 -!- earendel has joined.
11:39:28 -!- bender|_ has quit (Ping timeout: 268 seconds).
11:43:52 -!- bender|_ has joined.
11:50:25 -!- hppavilion[1] has joined.
11:59:24 -!- fractal has joined.
12:07:45 -!- bender|_ has quit (Remote host closed the connection).
12:08:33 -!- bender| has joined.
12:16:40 -!- AnotherTest has quit (Ping timeout: 244 seconds).
12:20:22 -!- copumpkin has joined.
12:20:52 -!- lynn has quit (Ping timeout: 264 seconds).
12:28:45 -!- hppavilion[1] has quit (Ping timeout: 248 seconds).
12:33:33 -!- bender| has quit (Remote host closed the connection).
12:41:44 <izabera> is go also played on tori?
12:42:15 <int-e> I'd say, not really.
12:42:39 <izabera> why not?
12:43:10 <int-e> The borders have a huge effect on how people think about go; you'd get a completely different game on a torus.
12:44:32 <int-e> (the borders have a huge effect on tactics; they also naturally delimit territory, so building territory in corners and sides is easier than in the middle of the board...
12:44:35 <int-e> )
12:44:47 <int-e> All this is part of what makes go go.
12:45:11 <izabera> and it'd be weird to tell if you're surrounding or being surrounded i guess
12:45:17 <int-e> (you may read that last word as a verb or as the noun denoting the game... both interpretations work for me)
12:45:59 <int-e> that said, of course toroidal go has been considered...
12:46:38 <int-e> http://senseis.xmp.net/?Variants#toc8 lists "torogo" for example.
12:47:23 <int-e> android app, hmm.
12:47:43 <int-e> they might even have a small community. *shrugs*
12:51:03 <Taneb> Is Go ever played on a Klein bottle
12:51:32 <myname> lol
12:52:08 <Taneb> I should know, apparently I invented it
13:03:33 <b_jonas> shachaf: I store most of my public bookmarks on a set of public HTML pages, that was I can access them from anywhere. The list is quite disorganized and lots of things are missing, but it's still much better than nothing.
13:03:43 -!- bender| has joined.
13:20:30 <FreeFull> int-e: What about toroidal chess?
13:25:42 <int-e> http://www.chessvariants.com/shape.dir/torus_standard_board.html ... but it still knows about ranks (search for "promotion")
13:32:49 -!- `^_^v has joined.
14:04:07 -!- spiette has joined.
14:04:46 -!- Effilry has changed nick to FireFly.
14:06:13 -!- heroux has quit (Ping timeout: 244 seconds).
14:07:18 -!- heroux has joined.
14:08:33 <b_jonas> `? ladder jump
14:08:48 <HackEgo> ladder jump? ¯\(°​_o)/¯
14:09:21 <b_jonas> `slashlearn ladder jump/Ladder jump is the phenomenon that in practically all platformer games where the player character can climb up on ladders, it's faster to repeatedly jump and grab the ladder than to climb.
14:09:25 <HackEgo> Learned «ladder jump»
14:12:57 -!- AlexR42 has joined.
14:59:50 -!- lambda-11235 has joined.
15:13:23 -!- AlexR42 has quit (Quit: My Mac has gone to sleep. ZZZzzz…).
15:14:26 -!- AlexR42 has joined.
15:17:05 -!- lynn has joined.
15:21:06 -!- ineiros has quit (Ping timeout: 246 seconds).
15:24:22 -!- lambda-11235 has quit (Quit: Bye).
15:24:45 -!- lambda-11235 has joined.
15:32:12 -!- nycs has joined.
15:34:55 -!- ineiros has joined.
15:35:00 -!- `^_^v has quit (Ping timeout: 276 seconds).
15:42:25 -!- ineiros has quit (Ping timeout: 252 seconds).
15:50:21 -!- J_Arcane has joined.
16:37:39 -!- vanila has joined.
16:42:38 -!- Sgeo__ has quit (Ping timeout: 248 seconds).
16:58:42 -!- bender| has quit (Remote host closed the connection).
17:12:05 <shachaf> predictions on olist today?
17:14:36 -!- AlexR42 has quit (Quit: My Mac has gone to sleep. ZZZzzz…).
17:14:59 -!- AnotherTest has joined.
17:16:30 <b_jonas> shachaf: why would it have to be today?
17:16:51 -!- AlexR42 has joined.
17:18:19 <b_jonas> shachaf: just because the FAQ still says both “Monday/Wednesday/Friday” (in a question title) and “Monday/Thursday” in the TOC?
17:20:02 <b_jonas> `? oots
17:20:09 <HackEgo> oots? ¯\(°​_o)/¯
17:20:16 <b_jonas> `? o
17:20:17 <HackEgo> o? ¯\(°​_o)/¯
17:20:30 <b_jonas> `? vaarsuvius
17:20:33 <HackEgo> Vaarsuvius is female. The Word of God about that is right at http://www.giantitp.com/FAQ.html#faq10 , right above where he tells the comic updates three times a week.
17:20:59 <b_jonas> `learn Vaarsuvius is female. The Word of God about that is right at http://www.giantitp.com/FAQ.html#faq10 , right above where he tells the comic updates three times a week (twice a week according to the TOC).
17:21:04 <HackEgo> Relearned 'vaarsuviu': Vaarsuvius is female. The Word of God about that is right at http://www.giantitp.com/FAQ.html#faq10 , right above where he tells the comic updates three times a week (twice a week according to the TOC).
17:22:14 <shachaf> b_jonas: I don't know, can you check the times of past olists?
17:22:27 <shachaf> b_jonas: Anyway the main prediction I was wondering about was "update/no update".
17:22:56 <b_jonas> shachaf: I won't check, sorry
17:24:09 <vanila> what is olist
17:24:17 <b_jonas> `? olist
17:24:21 <HackEgo> Update notification for the webcomic Order of the Stick. http://www.giantitp.com/comics/ootslatest.html
17:24:32 <b_jonas> huh
17:24:33 <vanila> oh cool
17:24:34 <vanila> hey
17:24:36 <vanila> did anyone see this
17:24:47 <b_jonas> `learn olist is update notification for the webcomic Order of the Stick. http://www.giantitp.com/comics/ootslatest.html
17:24:50 <HackEgo> Relearned 'olist': olist is update notification for the webcomic Order of the Stick. http://www.giantitp.com/comics/ootslatest.html
17:24:53 <vanila> https://gist.github.com/rui314/3b66fe949b5ee3b21120
17:24:54 <vanila> https://raw.githubusercontent.com/shinh/bflisp/master/bflisp.bf
17:25:19 <vanila> it's a c compiler in brainfuck
17:27:05 -!- Reece` has joined.
17:27:29 <b_jonas> vanila: we have a couple of these subscribable user-triggered update notification thingies, but olist is the only really active one
17:28:21 <vanila> look at the writeup and brainufck code
17:30:11 -!- ais523 has joined.
17:36:00 -!- ais523 has quit.
17:37:51 -!- augur_ has joined.
17:38:11 -!- augur has quit (Read error: Connection reset by peer).
17:48:33 <shachaf> whoa whoa whoa
17:48:40 <shachaf> `smlist 432
17:48:46 <HackEgo> smlist 432: shachaf monqy elliott mnoqy
17:49:31 <b_jonas> what's that?
17:49:32 <b_jonas> `? smlist
17:49:33 <HackEgo> Non-update notification for the webcomic Super Mega.
17:50:27 <vanila> whys no one interested in the link i posted
17:50:40 <b_jonas> vanila: it's brainfuck. I don't like brainfuck.
17:50:50 <vanila> you should like it
17:51:13 <vanila> its good
17:51:25 <b_jonas> that reminds me, since Bardsworth and Everyday Heroes are updating so rare these days, I should set up update notifications for them
17:51:56 <b_jonas> ``` rot13 < bin/aglist
17:51:57 <HackEgo> rpub -a "$(onfranzr "$0")${@:+ }$@: "; gnvy -a+2 "$0" | knetf; rkvg \ o_wbanf \ o_wbanf
17:51:59 <b_jonas> `? aglist
17:52:00 <HackEgo> aglist? ¯\(°​_o)/¯
17:53:06 <b_jonas> why am I on that twice?
17:53:37 <b_jonas> ``` sed -i '$d' bin/aglist
17:53:41 <HackEgo> No output.
17:53:43 <b_jonas> ``` rot13 < bin/aglist
17:53:44 <HackEgo> rpub -a "$(onfranzr "$0")${@:+ }$@: "; gnvy -a+2 "$0" | knetf; rkvg \ o_wbanf
17:54:10 <b_jonas> `learn aglist aglist is update notification for the Abstruse Goose webcomic. http://abstrusegoose.com/
17:54:12 <HackEgo> Learned 'aglist': aglist aglist is update notification for the Abstruse Goose webcomic. http://abstrusegoose.com/
17:54:29 <b_jonas> ``` rot13 < bin/pbflist
17:54:29 <HackEgo> rpub -a "$(onfranzr "$0")${@:+ }$@: "; gnvy -a+2 "$0" | knetf; rkvg \ funpuns \ Ftrb \ dhvagbcvn \ vba \ o_wbanf
17:54:32 <b_jonas> `? pbflist
17:54:33 <HackEgo> pbflist? ¯\(°​_o)/¯
17:54:49 <b_jonas> `learn aglist is update notification for the Abstruse Goose webcomic. http://abstrusegoose.com/
17:54:52 <HackEgo> Relearned 'aglist': aglist is update notification for the Abstruse Goose webcomic. http://abstrusegoose.com/
17:55:06 <b_jonas> `learn pbflist is update notification for the Perry Bible Fellowship webcomic. http://pbfcomics.com/
17:55:09 <HackEgo> Learned 'pbflist': pbflist is update notification for the Perry Bible Fellowship webcomic. http://pbfcomics.com/
17:59:04 <shachaf> `cat bin/makelist
17:59:04 <HackEgo> cp bin/emptylist bin/"$1"
17:59:21 <vanila> i want esoteric programming language discussion
17:59:40 <shachaf> `echo shachaf >> bin/aglist
17:59:42 <HackEgo> shachaf >> bin/aglist
17:59:49 <shachaf> shachaf: thx tdh
17:59:52 <shachaf> `` echo shachaf >> bin/aglist
17:59:54 <HackEgo> No output.
18:03:02 <b_jonas> ``` echo bin/*list
18:03:04 <HackEgo> bin/FireFlist bin/aglist bin/danddreclist bin/don'taskdon'ttelllist bin/dontaskdonttelllist bin/emptylist bin/erflist bin/flist bin/list bin/listlist bin/llist bin/makelist bin/mlist bin/olist bin/pbflist bin/slist bin/smlist bin/testlist bin/wrlist
18:03:36 <b_jonas> ``` cat bin/makelist
18:03:37 <HackEgo> cp bin/emptylist bin/"$1"
18:03:41 <b_jonas> `makelist ehlist
18:03:43 <HackEgo> No output.
18:03:50 <b_jonas> ``` echo b_jonas >> bin/ehlist
18:03:53 <HackEgo> No output.
18:03:55 <b_jonas> ``` rot13 < bin/ehlist
18:03:56 <HackEgo> rpub -a "$(onfranzr "$0")${@:+ }$@: "; gnvy -a+2 "$0" | knetf; rkvg \ o_wbanf
18:04:25 <b_jonas> `learn ehlist is update notification for the Everyday Heroes webcomic. http://eheroes.smackjeeves.com/
18:04:28 <HackEgo> Learned 'ehlist': ehlist is update notification for the Everyday Heroes webcomic. http://eheroes.smackjeeves.com/
18:04:46 <b_jonas> ok, now what should I call the Bardsworth one? barlist, balist, bwlist?
18:05:13 <b_jonas> or maybe bardsworthlist?
18:07:11 <b_jonas> `? slist
18:07:15 <b_jonas> `? wrlist
18:07:21 <b_jonas> oh right, I know what wrlist is
18:07:26 <b_jonas> that one will probably never be active
18:07:30 <b_jonas> `? flist
18:07:46 <shachaf> b_jonas: you should `list hth
18:07:51 <HackEgo> wrlist? ¯\(°​_o)/¯
18:07:57 <HackEgo> flist? ¯\(°​_o)/¯
18:08:13 <b_jonas> `makelist bardsworthlist
18:08:27 <b_jonas> ``` echo b_jonas > bardsworthlist
18:08:35 <b_jonas> argh
18:08:39 <b_jonas> ``` rm bardsworthlist
18:08:44 <b_jonas> ``` echo b_jonas > bin/bardsworthlist
18:08:58 <HackEgo> No output.
18:08:59 <HackEgo> Update notification for the webcomic Homestuck.
18:09:00 <HackEgo> rm: cannot remove `bardsworthlist': No such file or directory
18:09:04 <HackEgo> No output.
18:09:07 <HackEgo> No output.
18:09:16 <b_jonas> `learn bardsworthlist is update notification for the Bardsworth webcomic. http://www.bardsworth.com/
18:09:20 <HackEgo> Learned 'bardsworthlist': bardsworthlist is update notification for the Bardsworth webcomic. http://www.bardsworth.com/
18:09:20 <b_jonas> ``` rm bardsworthlist
18:09:22 <HackEgo> No output.
18:09:29 <b_jonas> ``` rot13 < bin/bardsworthlist
18:09:30 <HackEgo> o_wbanf
18:09:35 <b_jonas> uh
18:09:42 <shachaf> binsworthlist
18:09:45 <shachaf> bin/sworthlist
18:09:57 <b_jonas> ``` makelist bardsworthlist && echo b_jonas >> bin/bardsworthlist
18:09:58 <HackEgo> No output.
18:10:01 <b_jonas> ``` rot13 < bin/bardsworthlist
18:10:02 <HackEgo> rpub -a "$(onfranzr "$0")${@:+ }$@: "; gnvy -a+2 "$0" | knetf; rkvg \ o_wbanf
18:10:08 <b_jonas> better
18:12:24 <b_jonas> can we create stuff like this for non-webcomic stuff too?
18:13:13 <myname> i don't understand
18:13:27 <myname> what is this "non-webcomic stuff"?
18:13:38 <myname> there cannot possibly be such a thing
18:13:51 <b_jonas> sure there can be
18:13:56 <shachaf> There should be a list for new messages in #esoteric.
18:14:26 <b_jonas> ``` makelist ioccclist && cat b_jonas > bin/ioccclist
18:14:28 <HackEgo> cat: b_jonas: No such file or directory
18:14:47 <shachaf> `` cat bin/makelist
18:14:47 <HackEgo> cp bin/emptylist bin/"$1"
18:15:40 <b_jonas> `learn ioccclist is update notification for when a new year of the International Obfuscated Contest is announced, or the winners for a year is announced, or the source codes of winners are released. http://www.ioccc.org/#news
18:15:44 <HackEgo> Learned 'ioccclist': ioccclist is update notification for when a new year of the International Obfuscated Contest is announced, or the winners for a year is announced, or the source codes of winners are released. http://www.ioccc.org/#news
18:16:14 <shachaf> `` echo -e 'shift\nfor n in "$@"; do echo "$n" > bin/"$1"; done' >> bin/makelist
18:16:16 <HackEgo> No output.
18:16:25 <shachaf> oops
18:16:32 <shachaf> that completely doesn't work tdnh
18:16:33 <shachaf> `revert
18:16:43 <HackEgo> rm: cannot remove `/home/hackbot/hackbot.hg/multibot_cmds/env/.hg/store/data/canary.orig': Is a directory \ Done.
18:17:53 <shachaf> `mkx bin/makelist//file="bin/$1"; shift; cp bin/emptylist "$file"; for n in "$@"; do echo "$n" >> "$file"; done
18:17:57 <HackEgo> bin/makelist
18:18:51 <shachaf> Maybe lists should print usage information when run with no arguments.
18:18:56 <shachaf> Then they can be self-contained.
18:19:15 <b_jonas> ``` rot13 < bin/ioccclist
18:19:16 <HackEgo> No output.
18:19:23 <b_jonas> um
18:19:29 <b_jonas> did you revert me?
18:19:43 <b_jonas> `? ioccclist
18:19:44 <HackEgo> ioccclist is update notification for when a new year of the International Obfuscated Contest is announced, or the winners for a year is announced, or the source codes of winners are released. http://www.ioccc.org/#news
18:19:53 <b_jonas> oh right
18:20:05 <b_jonas> ``` makelist ioccclist && echo b_jonas > bin/ioccclist
18:20:08 <HackEgo> No output.
18:20:11 <b_jonas> ``` rot13 < bin/ioccclist
18:20:12 <HackEgo> o_wbanf
18:20:15 <b_jonas> nope
18:20:18 <b_jonas> ``` makelist ioccclist && echo b_jonas >> bin/ioccclist
18:20:20 <HackEgo> No output.
18:20:41 <b_jonas> we need a subscribe command (which also figures out your nickname, which needs a HackEgo infrastructure update)
18:20:55 <shachaf> b_jonas: whoa whoa whoa, I just fixed makelist
18:20:56 <vanila> maybe you could stop the bot spamming
18:21:12 <shachaf> b_jonas: You can `` makelist listname user1 user2
18:21:15 <b_jonas> ``` rot13 < ioccclist
18:21:16 <HackEgo> bash: ioccclist: No such file or directory
18:21:23 <b_jonas> ``` rot13 < bin/ioccclist
18:21:24 <HackEgo> rpub -a "$(onfranzr "$0")${@:+ }$@: "; gnvy -a+2 "$0" | knetf; rkvg \ o_wbanf
18:21:35 <b_jonas> shachaf: I see. but you still need a way for people to subscribe later
18:21:42 <shachaf> They can still use echo.
18:21:52 <b_jonas> (maybe change the list template so that `foolist subscribe would subscribe you)
18:22:02 <shachaf> But then how do you subscribe someone else?
18:22:26 <b_jonas> (no wait, don't do that, that would be a bad interface, for you could accidentally trigger the list too easly)
18:22:33 <b_jonas> (it needs to be a separate top-level command)
18:22:51 <shachaf> Maybe you should have to confirm when you trigger the list.
18:22:51 <b_jonas> shachaf: extra argument probably. like `subscribe foolist versus `subscribe foolist shachaf
18:22:58 <shachaf> `olist confirm 1
18:23:27 <b_jonas> shachaf: or just make it check the actual webpage source and remember the number of the last strip and trigger only if it's updated since
18:23:39 <shachaf> There's no Internet connection.
18:23:46 <shachaf> And some lists don't have numbers.
18:24:21 <shachaf> But for lists that do have numbers, you can require a number, and even not alert if someone else has listed that number before.
18:24:47 <b_jonas> ``` elinks -dump http://www.math.bme.hu/~ambrus/pu/verst
18:24:47 <HackEgo> bash: elinks: command not found
18:24:49 -!- Guest91351 has quit (Ping timeout: 240 seconds).
18:25:31 <b_jonas> ``` curl http://www.math.bme.hu/~ambrus/pu/verst | sed -n '/^Alf/,$p'
18:25:32 <HackEgo> Failed to connect to socket 2. \ \ curl: (52) Empty reply from server
18:26:14 <lambda-11235> Is it possible to have HackEgo delete the root fs?
18:26:18 <b_jonas> shachaf: yes, maybe, but I still recommend not using the foolist subscribe syntax
18:31:25 <zzo38> In the case of danddreclist at least, my own convention is that I post messages having a specific syntax in order to notify
18:32:09 <zzo38> The message happens to be a HackEgo command so that other people can program it to emit names or to do whatever other stuff they might want
18:32:12 <shachaf> I haven't read any danddreclist updates ina long time.
18:32:52 <zzo38> They are also all logged in the public IRC logs, so searching there also make it possible to find the date/time
18:34:09 <shachaf> But sometimes the IRC logging bot stops working.
18:34:47 <zzo38> Yes although there are two
18:34:57 <shachaf> Yes, but they might both stop working at the same time.
18:36:38 <zzo38> That is possible yes.
18:37:04 <zzo38> At least it can be known by checking if any numbers are skipped.
18:37:29 <b_jonas> well, these update notification lists are opportunistic anyway. you should periodically check the original sources where the webcomics appear, rather than just rely on the irc messages.
18:40:17 <b_jonas> should we have an xkcdwhatiflist?
18:40:33 <shachaf> Lists are only useful with more than one subscriber.
18:41:35 <b_jonas> maybe, but creating one is the best way to find out who wants to subscribe
18:41:39 <zzo38> I think it can be useful even if the command does not exist, although then the command can later be added if someone want to.
18:41:46 -!- Sprocklem has joined.
18:41:51 <zzo38> b_jonas: Yes and that is part of it too
18:42:10 -!- Sprocklem has changed nick to Guest42719.
18:42:17 <b_jonas> shachaf: I mean, you just brought aglist to have more than one member
18:42:37 <shachaf> True.
18:43:20 <b_jonas> I won't create an xkcdwhatiflist now though.
18:43:45 <shachaf> what if you did?
18:44:04 <shachaf> `whatiflist
18:46:50 -!- Phantom_Hoover has joined.
18:53:09 -!- Guest42719 has quit (Quit: [).
18:53:40 -!- Sprocklem_ has joined.
18:54:37 <b_jonas> ``` makelist keenlist b_jonas && learn 'keenlist is notification for when Tom Hall finally acquires the necessary intellectual property rights to create the videogame series Commander Keen: The Universe is Toast'
18:54:40 <HackEgo> Learned 'keenlist': keenlist is notification for when Tom Hall finally acquires the necessary intellectual property rights to create the videogame series Commander Keen: The Universe is Toast
18:54:43 <b_jonas> ``` rot13 < bin/keenlist
18:54:46 <HackEgo> rpub -a "$(onfranzr "$0")${@:+ }$@: "; gnvy -a+2 "$0" | knetf; rkvg \ o_wbanf
18:55:03 -!- Sprocklem_ has changed nick to Sprocklem.
18:57:15 <HackEgo> [wiki] [[Special:Log/newusers]] create * Afukada * New user account
18:57:34 <b_jonas> Should we have a listlist as update notification for when a new list is created, and make makelist automatically trigger it?
18:59:28 <b_jonas> Or a listlistlist that announces whenever listlist gets implemented
18:59:29 <zzo38> This is not SQL
19:03:01 -!- zzo38 has quit (Remote host closed the connection).
19:15:40 -!- Sprocklem has quit (Ping timeout: 250 seconds).
19:18:38 -!- p34k has joined.
19:21:26 -!- atrapado has joined.
19:25:39 -!- gremlins has joined.
19:26:48 -!- Reece` has quit (Ping timeout: 246 seconds).
19:33:03 -!- gremlins has quit (Ping timeout: 240 seconds).
19:33:14 -!- atrapado has quit (Remote host closed the connection).
19:33:47 -!- atrapado has joined.
19:39:03 -!- AlexR42 has quit (Quit: My Mac has gone to sleep. ZZZzzz…).
19:39:28 -!- AlexR42 has joined.
19:44:10 <int-e> hmm, toast
19:46:05 <b_jonas> At the bottom and in the comments, http://qntm.org/spells refers to a supposed esolang named Hoon. Does anyone have information about this language other than what's directly on that page? I couldn't load the links given there.
19:48:59 -!- atrapado has quit (Remote host closed the connection).
19:49:30 -!- atrapado has joined.
19:52:11 <b_jonas> aha, https://github.com/cgyarvin/urbit/blob/master/doc/book/0-intro.markdown has information about it
19:52:49 -!- lleu has joined.
19:52:49 -!- lleu has quit (Changing host).
19:52:49 -!- lleu has joined.
19:52:49 -!- lleu has quit (Read error: Connection reset by peer).
19:53:02 -!- llue has quit (Read error: Connection reset by peer).
19:53:19 -!- lleu has joined.
19:55:07 <HackEgo> [wiki] [[Nock]] https://esolangs.org/w/index.php?diff=46593&oldid=40989 * B jonas * (+106)
20:05:57 <HackEgo> [wiki] [[Nock]] https://esolangs.org/w/index.php?diff=46594&oldid=46593 * B jonas * (+208)
20:06:00 <HackEgo> [wiki] [[Hoon]] N https://esolangs.org/w/index.php?oldid=46595 * B jonas * (+310) Created page with "'''Hoon''' is a dynamically typed esoteric functional programming language. It compiles to a small lower level dynamically typed functional esoteric language called [[Nock]]...."
20:07:12 <lynn> Can't believe there was no Hoon page yet
20:07:28 <lynn> I know a bit about it, b_jonas!
20:07:37 <b_jonas> wait wait, there's a newer webpage
20:07:47 <b_jonas> the one I linked to says it's moved to https://github.com/urbit/urbit
20:07:58 <lynn> http://urbit.org/docs/dev/hoon/ is up-to-date
20:09:03 <b_jonas> lynn: supposedly. I just get some nonsense javascript from there. presumably that javascript might mean something in some browsers.
20:09:12 <b_jonas> I'll give links to the github thing instead
20:10:22 <b_jonas> lynn: ps. I hate when people post "I'm surprised nobody has mentioned $foo yet" to a forum thread. If you think there should be a page, just create it.
20:10:47 <vanila> hoon is dumb
20:10:51 <vanila> urbit sucks
20:10:55 <HackEgo> [wiki] [[Nock]] https://esolangs.org/w/index.php?diff=46596&oldid=46594 * B jonas * (+74)
20:10:58 <HackEgo> [wiki] [[Hoon]] https://esolangs.org/w/index.php?diff=46597&oldid=46595 * B jonas * (+93)
20:11:13 <lynn> I rather meant: I was silently assuming there'd be a Hoon page
20:11:30 <b_jonas> vanila: yes, it is dumb, but we're trying to build a comprehensive encyclopedia of esolangs here
20:11:31 <lynn> If I'd known, I would've gladly written a stub about it :)
20:12:48 <b_jonas> maybe it would be better to describe both Nock and Hoon as typeless rather than dynamically typed
20:13:03 <HackEgo> [wiki] [[Hoon]] https://esolangs.org/w/index.php?diff=46598&oldid=46597 * B jonas * (-18)
20:13:12 <HackEgo> [wiki] [[Nock]] https://esolangs.org/w/index.php?diff=46599&oldid=46596 * B jonas * (-18)
20:13:15 -!- boily has joined.
20:13:36 <lynn> Nock is definitely typeless; Hoon sort of is, depending on how you look at it
20:17:23 <b_jonas> feel free to edit the pages. the newer github repo has some more docs, but I'm not going to read them and try to understand them.
20:19:03 <lynn> yes, it's really hard to make sense of em :<
20:23:50 -!- hppavilion[1] has joined.
20:29:46 <HackEgo> [wiki] [[Hoon]] https://esolangs.org/w/index.php?diff=46600&oldid=46598 * B jonas * (+54)
20:30:39 <HackEgo> [wiki] [[Language list]] https://esolangs.org/w/index.php?diff=46601&oldid=46592 * B jonas * (+22)
20:38:23 -!- nycs has quit (Ping timeout: 244 seconds).
20:41:29 -!- nycs has joined.
20:49:59 -!- jaboja has joined.
20:51:02 <boily> `wisdom
20:51:22 <HackEgo> atrix/Atrix is a brand of hand cream. Not to be confused with atriq.
20:53:29 <int-e> `culpritz wisdom/atrix
20:53:29 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: culpritz: not found
20:53:32 <int-e> `culprits wisdom/atrix
20:53:52 <int-e> @google how to erase lines from IRC backlog
20:53:54 <lambdabot> https://www.irccloud.com/faq
20:53:55 <HackEgo> int-e ais523 oerjan oerjan elliott Bike FreeFull ais523 ais523 oerjan
21:00:38 <boily> int-ello. you can't erase. all lines are permanent. the Internet's Ink is indelible.
21:06:52 <int-e> @google how to turn the Sun into a supernova
21:06:54 <lambdabot> http://www.universetoday.com/107791/will-the-sun-explode/
21:06:54 <lambdabot> Title: Will The Sun Explode? - Universe Today
21:08:49 <boily> I can't allow that, int-e.
21:09:15 <int-e> well how are you going to stop me?
21:10:03 <boily> I will find you, and I will mapole you.
21:10:26 <boily> (unless you sunexplode before I get to that.)
21:11:03 <int-e> sounds like a challenge
21:13:48 <shachaf> int-e: you aren't going to escape the long mapole of the law
21:13:57 <int-e> pity that page says it's likely not going to work, not even with the added energy of a mapole.
21:14:01 <boily> `learn_append int-e Det kommer att explodera solen.
21:14:06 <HackEgo> Learned 'int-e': int-e är inte svensk. Det kommer att explodera solen.
21:14:21 <boily> olsner: hellolsner. do you validate the Swedish used there?
21:14:51 <shachaf> Heute die Welt, Morgens das Sonnensystem!
21:15:23 <boily> . o O ( shachaf said something. there must be a pun somewhere, but I can't see any... )
21:16:21 <int-e> boily: it's misdirection.
21:16:32 <olsner> boily: sounds a bit off. "it will explode the sun"?
21:16:45 <int-e> shachaf: ITYM "Morgen". ("Morgens" means "in the morning")
21:17:17 <boily> olsner: I was trying to make it translate "he" or "she", but Google Translate was stuck on "it" for whatever reason.
21:17:22 <int-e> or "morgen" actually
21:17:32 <shachaf> int-e: Probably. The first Google result was http://tvtropes.org/pmwiki/pmwiki.php/Main/TodayXTomorrowTheWorld which misled me.
21:17:50 <olsner> Morgens die Welt, Nachmittags das Sonnensystem?
21:18:19 <boily> `? fternooner
21:18:20 <HackEgo> fternooner (Danish »fternooner«, Norwegian «ttermiddag», Swedish ”ftermiddag”) is a screamingly delicious pastry.
21:19:07 <olsner> boily: Hen kommer att spränga solen. (that's e, he/she would be han/hon)
21:23:26 <boily> `le/rn int-e/int-e är inte svensk. Hen kommer att spränga solen.
21:23:28 <HackEgo> Relearned «int-e»
21:23:47 <boily> what's the difference between spränga and explodera?
21:25:16 <olsner> same meaning really, but the wrong/right one is in/transitive
21:25:32 <olsner> I can never remember which of those words means which kind of verb :)
21:25:51 <int-e> if it's the same as in german, things can explode, but you can't explode them; you'd blow them up.
21:25:52 <boily> transitive has a direct object; intransitive can't have one hth
21:26:18 <int-e> or detonate them, that's better
21:26:19 <olsner> so, yeah, explodera doesn't take an object
21:26:41 <boily> make them go FOOF!
21:27:02 <int-e> German has "sprengen".
21:30:25 <b_jonas> `? splode
21:30:26 <HackEgo> splode? ¯\(°​_o)/¯
21:34:16 <int-e> sunsplosions are purdy
21:35:04 <int-e> `? supernova
21:35:05 <HackEgo> supernova? ¯\(°​_o)/¯
21:35:07 <int-e> `? sunscreen
21:35:08 <HackEgo> sunscreen? ¯\(°​_o)/¯
21:36:18 <b_jonas> `? sunglasses
21:36:19 <b_jonas> `? eye drops
21:36:19 <HackEgo> sunglasses? ¯\(°​_o)/¯
21:36:20 <HackEgo> eye drops? ¯\(°​_o)/¯
21:36:23 <b_jonas> `? eye serum
21:36:24 <HackEgo> eye serum? ¯\(°​_o)/¯
21:36:26 <b_jonas> `? eye scream
21:36:27 <HackEgo> eye scream? ¯\(°​_o)/¯
21:37:52 <int-e> `learn scream = icecream - eye
21:37:54 <HackEgo> Learned 'scream': scream = icecream - eye
21:38:10 <int-e> hmm
21:38:13 <int-e> `revert
21:38:21 <int-e> that doesn't work, right...
21:38:22 <HackEgo> rm: cannot remove `/home/hackbot/hackbot.hg/multibot_cmds/env/.hg/store/data/canary.orig': Is a directory \ Done.
21:38:50 <int-e> `rm canary
21:38:51 <HackEgo> No output.
21:39:02 <int-e> `? scream
21:39:05 <HackEgo> scream = icecream - eye
21:39:10 <int-e> `rm wisdom/scream
21:39:12 <HackEgo> No output.
21:39:30 <int-e> `cat cana
21:39:32 <HackEgo> cat: cana: No such file or directory
21:39:32 <int-e> `cat canary
21:39:33 <HackEgo> ​*tsjørp*
21:40:31 -!- AlexR42 has quit (Quit: My Mac has gone to sleep. ZZZzzz…).
21:40:49 -!- AlexR42 has joined.
21:44:43 <b_jonas> `? canary
21:44:44 <HackEgo> ​*tsjørp*
21:44:55 <myname> lol
21:45:21 <int-e> `stat wisdom/canary
21:45:21 <HackEgo> ​ File: `wisdom/canary' -> `../canary' \ Size: 9 Blocks: 0 IO Block: 1024 symbolic link \ Device: 12h/18dInode: 1054017 Links: 1 \ Access: (0777/lrwxrwxrwx) Uid: ( 5000/ UNKNOWN) Gid: ( 0/ UNKNOWN) \ Access: 2016-03-14 17:20:28.000000000 +0000 \ Modify: 2015-12-09 04:13:17.000000000 +0000 \ Change: 2015-12-09 04:
21:45:30 -!- AlexR42 has quit (Ping timeout: 276 seconds).
21:51:20 -!- XorSwap has joined.
21:53:18 -!- MoALTz has quit (Ping timeout: 276 seconds).
21:54:04 -!- spiette has quit (Quit: :qa!).
21:54:08 -!- MoALTz has joined.
21:56:58 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
22:04:03 -!- nycs has quit (Ping timeout: 264 seconds).
22:11:18 <HackEgo> [wiki] [[Language list]] https://esolangs.org/w/index.php?diff=46602&oldid=46601 * Erinius * (+12) /* L */
22:15:30 -!- boily has quit (Quit: CONSERVATIVE CHICKEN).
22:27:23 -!- Sgeo__ has joined.
22:38:26 <b_jonas> `? dowry
22:38:27 <HackEgo> dowry? ¯\(°​_o)/¯
22:40:15 <b_jonas> `learn A dowry is a pribe paid for a brice, or maybe a bribe paid for a pride.
22:40:18 <HackEgo> Learned 'dowry': A dowry is a pribe paid for a brice, or maybe a bribe paid for a pride.
22:47:58 <int-e> it could be a bribe paid for a price; that would actually make sense
22:48:24 <b_jonas> int-e: no, it's a price paid for a bride
22:48:32 <int-e> I knew that.
22:49:20 <int-e> but you had "pribe paid for a brice" and I just swapped two letters.
22:49:41 <int-e> (I'm not sure where you placed the "d")
22:49:58 <b_jonas> the d is in the pride
22:51:01 <int-e> anyway I'm afraid we're miscommunicating again
22:51:37 <b_jonas> I am, yes
22:58:18 -!- atrapado has quit (Quit: Leaving).
23:06:00 -!- AnotherTest has quit (Quit: ZNC - http://znc.in).
23:24:41 -!- jaboja has quit (Remote host closed the connection).
23:32:05 -!- vanila has quit (Quit: Leaving).
23:52:19 -!- hppavilion[1] has joined.
23:53:51 -!- lynn has quit (Ping timeout: 246 seconds).
23:54:19 -!- oerjan has joined.
2016-03-15
00:03:32 -!- p34k has quit.
00:07:10 -!- Lord_of_Life has quit (Quit: EliteBNC free bnc service - http://elitebnc.org - be a part of the Elite!).
00:10:37 -!- Lord_of_Life has joined.
00:14:21 -!- hppavilion[1] has quit (Ping timeout: 244 seconds).
00:26:17 -!- Sprocklem has joined.
00:27:21 -!- XorSwap has quit (Quit: Leaving).
00:45:39 <oerjan> `? detonation
00:45:49 <HackEgo> detonation? ¯\(°​_o)/¯
00:46:27 <oerjan> `learn Detonation is the act of destroying a musical instrument.
00:46:29 <HackEgo> Learned 'detonation': Detonation is the act of destroying a musical instrument.
00:48:13 <shachaf> oerjan: what if there was a variant of learn that would refuse to relearn wth
00:49:34 <b_jonas> ouch
00:49:43 <oerjan> not that much?
00:49:48 <oerjan> b_jonas: hm?
00:52:53 <b_jonas> that pun is painful
00:53:03 <oerjan> you're welcome
01:02:59 -!- Sprocklem has quit (Quit: [).
01:04:08 -!- Sprocklem has joined.
01:26:02 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
01:36:19 -!- lleu has quit (Quit: That's what she said).
01:52:43 <\oren\> It occurs to me that the rules to my gridless go are sufficiently general to apply to any manifold with a metric
01:53:36 <\oren\> so it could be played on a sphere, infinite plane, or the projective plane.
01:54:05 <\oren\> well, only two-dimensional manifolds
01:57:19 <\oren\> manifolds with uneven curvature could be interesting
01:58:00 <\oren\> because a stone is harder to kill if it's on a saddle than on a hill
02:18:16 <oerjan> i don't quite see why it has to be 2d
02:18:39 <oerjan> you'd just use balls instead of disks
02:20:01 <oerjan> hm food
02:34:00 <oerjan> cold kebab doggy bag
02:38:24 <oerjan> \oren\: ^^
03:26:22 -!- earendel has quit (Ping timeout: 248 seconds).
03:28:42 <shachaf> b_jonas: good thing we didn't bet on olist hth
03:35:33 -!- earendel has joined.
03:39:44 <oerjan> show starting
03:42:09 <shachaf> i need to wake up in 8 hours tdnh
03:48:31 <Sgeo__> Cy&H done by PBF's author: http://explosm.net/comics/4238/
03:48:48 <Sgeo__> Don't know if that qualifies for pbflist
03:49:15 <Sgeo__> (NSFW)
03:49:53 <Sgeo__> `pbflist ^
03:49:58 <HackEgo> pbflist ^: shachaf Sgeo quintopia ion b_jonas
03:50:08 <shachaf> Oh, I thought you meant smlist.
03:50:13 <shachaf> That was much more exciting.
03:50:28 <Sgeo__> sm?
03:50:39 <shachaf> `? smlist
03:50:40 <HackEgo> Non-update notification for the webcomic Super Mega.
04:19:14 -!- MoALTz has quit (Ping timeout: 244 seconds).
04:20:38 <\oren\> hmm, but how would liberties be defined in 3d go?
04:20:52 <izabera> same way?
04:21:00 <\oren\> er, 3d-ungridded go
04:21:23 <izabera> i don't know how ungridded go works at all
04:21:34 <\oren\> http://www.orenwatson.be/ungriddedgo.htm
04:22:37 <izabera> is that interesting?
04:23:05 <izabera> there's something similar for tetris
04:23:17 <\oren\> it means ko fights should get pretty interesting
04:23:59 <\oren\> because you can recreate a previous position, but with a few stones shifted slightly, possibly allowing nearby stones to intefere
04:25:16 <\oren\> I should try to write a computer version of ungridded go
04:25:47 <\oren\> also, the branching factor is a lot higher
04:26:15 <izabera> a computer version wouldn't work
04:26:21 <\oren\> why?
04:26:51 <izabera> because rationals vs reals
04:27:04 <\oren\> well I suppose it would be limited to the precision of rationals on the hardware-- yeah.
04:27:32 <izabera> in a computer it's like a gridded go with larger stones
04:29:09 <\oren\> right, but it should still have a much different tactics than regular go.
04:29:16 <\oren\> well, sort of
04:29:42 <izabera> i think 3d go would be interesting
04:29:45 <\oren\> obviously until people start playing it we can't know[C
04:31:14 -!- treaki_ has joined.
04:32:11 <izabera> http://www.di.fc.ul.pt/~jpn/gv/boards.htm
04:32:19 <izabera> look at continuous boards
04:35:00 -!- treaki__ has quit (Ping timeout: 276 seconds).
04:35:15 <izabera> hehe "45 flip degrees"
04:56:33 <\oren\> holy shit. what if you also had an expanding board
04:57:14 <\oren\> that would be terrible, never mind
06:32:03 -!- augur_ has quit (Ping timeout: 240 seconds).
06:38:15 -!- augur has joined.
06:47:48 -!- earendel has changed nick to eArendel.
07:19:57 <\oren\> operations on strings: append, insert, substring, search, split, compare. am I missing any?
07:22:08 <lambda-11235> \oren\: reverse, index, sort
07:24:11 <lambda-11235> find/match
07:25:00 <lambda-11235> I guess that falls under search, my bad, it's late.
07:27:28 -!- lambda-11235 has quit (Quit: Bye).
07:32:12 <izabera> rotate, swap bytes
07:33:12 <izabera> and most importantly, strfry and memfrob
07:55:49 -!- mroman has joined.
07:55:52 <mroman> fnard
08:23:07 -!- J_Arcane has quit (Ping timeout: 244 seconds).
08:36:35 -!- AnotherTest has joined.
08:52:14 <FireFly> Go on a torus is really annoying with the lack of edges and corners
08:52:18 <FireFly> so hard to make territory
09:04:06 <oerjan> machine 4 human 1
09:04:17 -!- oerjan has quit (Quit: Good night).
09:16:20 -!- MoALTz has joined.
10:34:21 -!- boily has joined.
10:43:09 -!- hppavilion[1] has joined.
10:51:49 <boily> `wisdom
10:52:08 <HackEgo> not found/not found? ¯\(°​_o)/¯
10:54:38 <boily> `culprits wisdom/not\ found
10:54:48 <HackEgo> No output.
10:54:52 <boily> ...?
11:00:27 -!- asie has quit (Ping timeout: 264 seconds).
11:09:16 <mroman> `halp
11:09:17 <HackEgo> No halp 4 u
11:10:59 <b_jonas> wait, really?
11:11:14 <b_jonas> that looks like a false alarm
11:11:30 <b_jonas> oh, "Cy&H done by PBF's author"
11:11:32 <b_jonas> seriously
11:15:47 <boily> b_jellonaseriously.
11:21:10 -!- asie has joined.
11:24:46 -!- boily has quit (Quit: RAMPAGING CHICKEN).
11:32:37 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
11:48:44 -!- hppavilion[1] has joined.
12:19:33 -!- eArendel has quit (Ping timeout: 240 seconds).
12:31:03 -!- hppavilion[1] has quit (Ping timeout: 240 seconds).
12:37:42 -!- lleu has joined.
12:42:06 -!- jaboja has joined.
13:03:36 -!- jaboja has quit (Remote host closed the connection).
13:34:27 -!- eArendel has joined.
13:38:34 -!- heroux has quit (Ping timeout: 252 seconds).
13:40:03 -!- jaboja has joined.
13:58:23 -!- eArendel2 has joined.
14:00:01 -!- eArendel has quit (Read error: Connection reset by peer).
14:03:36 -!- `^_^v has joined.
14:38:12 -!- J_Arcane has joined.
14:53:45 -!- spiette has joined.
15:00:29 -!- lambda-11235 has joined.
15:13:07 <b_jonas> wait what
15:13:10 <b_jonas> this seems strange
15:13:37 <b_jonas> how can they award AlphaGo a dan rank after just two matches with two people? shouldn't they wait to see how he fares in more matches against other opponents?
15:14:38 <b_jonas> what a farce! It's like giving the peace Nobel to Obama
15:14:52 <b_jonas> they're giving a rank in advance, hoping it would motivate Alphago to improve
15:18:16 <FireFly> I think it's a honorary rank in this case
15:18:23 <FireFly> or that's how I gathered it
15:18:31 <FireFly> what I gathered*
15:18:46 <b_jonas> aren't all _high_ dan ranks (like, above 5 dan or something like that) honorary?
15:19:35 <FireFly> Don't know
15:20:04 <FireFly> I'm not sure how much I should trust Hikaru no Go on this matter
15:21:46 <b_jonas> there… might be a difference between China and Korea about the dan rank stuff that I'm not aware of, or some other subtlety.
15:21:57 <b_jonas> I sit here as a poor Westerner who can't imagine how these things go
15:31:44 -!- ineiros has joined.
15:43:35 -!- J_Arcane has quit (Ping timeout: 268 seconds).
15:50:11 -!- jaboja has quit (Remote host closed the connection).
16:05:15 -!- mroman has quit (Quit: Lost terminal).
16:06:51 -!- zadock has joined.
16:30:12 -!- eArendel2 has quit (Quit: eArendel2).
16:31:00 -!- earendel has joined.
17:02:15 -!- shikhin has changed nick to dtscode.
17:02:18 -!- dtscode has changed nick to shikhin.
17:16:32 -!- lynn has joined.
17:28:01 <shachaf> fungot: you're underappreciated
17:28:01 <fungot> shachaf: lauri's parents have also lied to my parents now that i understand
17:47:31 -!- lambda-11235 has quit (Quit: Bye).
17:50:07 -!- heroux has joined.
18:14:52 -!- zadock has quit (Quit: Leaving).
18:23:02 -!- p34k has joined.
18:23:12 <int-e> fungot: that's awful, how can they live with themselves?
18:23:12 <fungot> int-e: why would i want to work on a better plan of action is just right.
18:47:16 <Vorpal> ^style
18:47:16 <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
18:48:24 <shachaf> `welcome Vorpal
18:48:29 <shachaf> long time Norpal
18:48:36 <HackEgo> Vorpal: 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.)
19:05:21 <Vorpal> shachaf: thanks
19:15:33 -!- Reece` has joined.
19:45:45 -!- hppavilion[1] has joined.
19:57:26 -!- J_Arcane has joined.
19:58:51 -!- FreeFull has quit (Quit: Rebooting).
20:01:29 -!- FreeFull has joined.
20:06:38 <hppavilion[1]> Anybody want to play Nomic over Github?
20:07:02 <hppavilion[1]> I need at least 2 more players
20:10:15 -!- prooftechnique has left ("ERC (IRC client for Emacs 24.5.1)").
20:12:06 -!- prooftechnique has joined.
20:12:28 <prooftechnique> hppavilion[1]: I'd be into it
20:13:29 <hppavilion[1]> prooftechnique: Cool! Follow the repo at https://github.com/hppavilion1/github-lambdanomic and I'll add you to the list
20:13:57 <hppavilion[1]> prooftechnique: I just need one more person (and the last person starred it instead of following, so I'm not sure if they'll get an alert when something goes up)
20:13:57 <prooftechnique> It is done
20:14:09 <hppavilion[1]> (I've been looking for them on IRC every day)
20:15:49 <prooftechnique> I'm already planning a rule that all rules must be provided in a machine readable format, so that bots can be entities :D
20:16:23 <hppavilion[1]> prooftechnique: I was thinking that the format should probably be mathematical- some sort of predicate logic
20:16:24 <hppavilion[1]> :P
20:16:44 <prooftechnique> Sounds machine readable to me
20:16:54 <hppavilion[1]> Yep, probably, other than (a -> b) -> c
20:17:02 <hppavilion[1]> Still readable, but harder-to-read-able
20:17:18 <hppavilion[1]> prooftechnique: And note in the rules that it says any rule-following entity can serve as 0 or 1 players
20:17:32 <hppavilion[1]> prooftechnique: Though also note that the rules only allow you to add rules currently >:)
20:18:08 <hppavilion[1]> So the first rule change I'm planning will be an overriding rule that requires that broadens rulechange scope
20:18:37 <hppavilion[1]> prooftechnique: Of course, you'll have to provide the machine-readable format
20:18:53 <prooftechnique> Even better, design by committee :D
20:19:02 <hppavilion[1]> >:D
20:19:27 <hppavilion[1]> prooftechnique: Will that rule say that the machine readable format is the canonical rule and the english is simply an interpretation?
20:20:02 <hppavilion[1]> NOT the canonical rule?
20:20:08 <prooftechnique> That's probably the most convenient way, though then we get into the issue of rules that can be expressed in English but not the canonical form
20:20:18 <hppavilion[1]> Yep
20:20:40 <prooftechnique> So really we need a supplemental rule to establish that rules must be reducible to some canonical form to be proposed in the first place
20:21:04 <prooftechnique> It's a real chicken and egg situation
20:21:06 <hppavilion[1]> prooftechnique: I recommend we have a file called "predfuncs.txt" that provides a list of builtin predicates and functions that a rule-following machine must support
20:21:19 <hppavilion[1]> In english, as they have to be added by the botmaster
20:21:29 <prooftechnique> Oh, that would work.
20:21:40 <hppavilion[1]> prooftechnique: My favorite part of the GitHub model of nomic: Branches
20:24:15 -!- Reece` has quit (Read error: Connection reset by peer).
20:30:06 -!- Phantom_Hoover has joined.
20:42:29 -!- ais523 has joined.
20:52:07 -!- hppavilion[2] has joined.
20:54:45 -!- spiette has quit (Quit: :qa!).
20:55:37 -!- hppavilion[1] has quit (Ping timeout: 268 seconds).
20:57:44 -!- lambda-11235 has joined.
21:01:06 <hppavilion[2]> lambda-11235: I might've asked you already, but do you have any desire to play Nomic?
21:01:31 <lambda-11235> hppavilion[2]: What is Nomic?
21:01:44 <hppavilion[2]> lambda-11235: It's a game where you change the game's rules as you go
21:02:06 <ais523> lambda-11235: the short way to explain nomic is "a game in which changing the rules is a move in the game"
21:02:20 <hppavilion[2]> lambda-11235: Here's the initial ruleset I'm using for my game: https://raw.githubusercontent.com/hppavilion1/github-lambdanomic/master/rules.md
21:02:28 <ais523> although in practice, it normally turns into "a game, together with a codified method of changing its rules to improve it as you play"
21:02:47 <lambda-11235> Sounds like a Calvin and Hobbes kinda game.
21:03:13 <hppavilion[2]> lambda-11235: Yes, but it's regulated
21:03:16 <prooftechnique> The rules of Calvinball are sacred
21:03:29 <hppavilion[2]> lambda-11235: prooftechnique is playing, btw
21:03:39 <ais523> calvinball has a lot in common with nomic
21:03:46 <hppavilion[2]> It does
21:03:50 <ais523> (actually I've seen someone claim it's not a nomic because the rule "you can't use the same rule twice" can't be changed)
21:03:52 <hppavilion[2]> But nomic is more structured
21:04:20 <ais523> not always
21:04:21 <hppavilion[2]> ais523: And calvinball has no voting
21:04:25 <prooftechnique> And the unspoken mask rule
21:04:32 <hppavilion[2]> ais523: Nomic could be calvinball if you tried hard enough
21:04:40 <ais523> the Fantasy Rules Committee is pretty unstructured, and theoretically has voting but it hardly ever comes up
21:04:45 <ais523> hppavilion[2]: nomic can be anything if you want it to be
21:04:50 <ais523> including a non-nomic
21:04:56 <hppavilion[2]> Yeah
21:04:58 <hppavilion[2]> True
21:05:36 <hppavilion[2]> ais523: Fun nomic rule: This rule is only valid if the halting problem for whether it can be played returns FALSE
21:05:42 <hppavilion[2]> It's paradoxical AND uncomputable
21:05:47 <hppavilion[2]> It's an uncomputable paradox
21:05:58 <hppavilion[2]> (Dear lord, please let my logic be correct. Amen.)
21:06:00 <ais523> hppavilion[2]: many nomics have a rule that if you construct a paradox, you win
21:06:05 <hppavilion[2]> ais523: True
21:06:21 <ais523> although Agora got rid of that eventually because people managed to scam the paradox rule much more often than they produced an actual paradox
21:06:33 <hppavilion[2]> ais523: Did you have to study hexadecimology to get your doctorate?
21:06:54 <ais523> no, hexadecimal is pretty unrelated to what I did in my PhD
21:07:00 <hppavilion[2]> ais523: xD
21:07:05 <ais523> really, numbers don't come up all that often
21:07:08 <hppavilion[2]> ais523: I thought of a new title
21:07:13 <hppavilion[2]> ais523: cdr (codoctor)
21:07:33 <hppavilion[2]> You are a codoctor if and only if your spouse is a doctor
21:07:47 <hppavilion[2]> Which seems at best useless, at worst a way to get a fancy title without putting effort into it
21:07:48 <hppavilion[2]> BUT
21:08:20 <hppavilion[2]> Codoctor has equal precedence as a title to doctor (prec(dr) > prec(mr), prec(mrs), prec(ms); prec(dr) = prec(reverend)
21:08:21 <hppavilion[2]> )
21:08:27 -!- sewilton_ has quit.
21:08:33 <hppavilion[2]> Which means that you can be doctor-codoctor John Smith
21:08:48 <ais523> this still seems useless
21:08:48 -!- sewilton_ has joined.
21:09:01 <hppavilion[2]> ais523: OK, it is
21:09:04 <hppavilion[2]> ais523: But it's fun
21:09:31 <hppavilion[2]> ais523: It's fun to be able to say "Not only did I get a doctorate, so did the man/woman/other I married"
21:09:36 <prooftechnique> Why codoctor? I'd think that'd make you at best a doctor by proxy.
21:09:48 <hppavilion[2]> prooftechnique: Your spouse is your "other half"
21:09:51 <hppavilion[2]> Your complement
21:09:52 <hppavilion[2]> Your dual
21:09:56 <hppavilion[2]> dual=co
21:10:16 <hppavilion[2]> It's a math joke
21:10:18 <prooftechnique> Wouldn't you also be a (for the sake of argument) comister?
21:10:25 -!- sewilton_ has quit (Client Quit).
21:10:38 -!- sewilton has joined.
21:10:46 <hppavilion[2]> prooftechnique: Yes, but "mister" is the default title, so nobody would care
21:11:20 <hppavilion[2]> Just because you're reverend-doctor smith, doesn't mean you /have/ to always include both reverend AND doctor, or even either at all (you could just call yourself mister if you felt like it)
21:11:28 <shachaf> this is not a good meaning of duality
21:11:36 <shachaf> what if you have more than one spouse?
21:11:48 <ais523> I feel that copumpkin would take issue with hppavilion[2]'s definition of duality too
21:11:49 <hppavilion[2]> shachaf: Your dual is the set of your spice
21:11:52 <prooftechnique> Is marriage an involution?
21:11:58 <hppavilion[2]> But if you're male and didn't get any fancy degree, you're mr. no matter what
21:12:02 <hppavilion[2]> prooftechnique: Sure
21:12:11 <shachaf> in general spouse is an arbitrary and not good thing to choose here
21:12:25 <hppavilion[2]> prooftechnique: Wait, no, the function that takes a person and returns the set of their spouses is the involution
21:12:33 <shachaf> ais523: whoa whoa whoa, is that what the story of cinderella is about?
21:12:35 <hppavilion[2]> Marriage is a thing that binds to people into a dual relationship
21:12:52 <hppavilion[2]> shachaf: Well who would be better suited as the co- of a person?
21:12:53 <prooftechnique> What about polygamists?
21:13:05 <hppavilion[2]> prooftechnique: "set of your spouses"
21:13:07 <shachaf> The set of every other person in the world?
21:13:23 <hppavilion[2]> shachaf: No, the universe is your family at your generational level
21:13:25 <prooftechnique> codoctor seems like it should just mean "not a doctor", and that could be anyone
21:13:26 <ais523> shachaf: ?
21:13:37 <ais523> a codoctor /should/ be a time-reversed doctor
21:13:43 <hppavilion[2]> ais523: How so?
21:13:44 <prooftechnique> Oh, that's better
21:13:45 <ais523> perhaps they turn theorems into coffee?
21:13:51 <shachaf> ais523: The prince turned into a copumpkin at midnight.
21:14:08 <prooftechnique> shachaf: Surely at noon
21:14:09 <ais523> shachaf: ah I see
21:14:17 <hppavilion[2]> prooftechnique: It's not a math joke that is 100% rigorous. Can we just leave it at that?
21:14:29 <hppavilion[2]> Your spouse (or spouses) is (are) your dual
21:14:45 <hppavilion[2]> By definition
21:14:46 <prooftechnique> Is it really a math joke without rigor? Sounds like a conjecture joke to me hth
21:14:48 <hppavilion[2]> You know why?
21:14:49 <shachaf> but marriage is a scam
21:14:54 <shachaf> so i don't accept your definition
21:15:05 <hppavilion[2]> Because the spouse of your spouse is yourself
21:15:12 <hppavilion[2]> sps^2(x)=x
21:15:21 <shachaf> What if my spouse is the empty set?
21:15:24 <prooftechnique> Like, "what's purple and commutes?" is a math joke
21:15:25 <shachaf> What's the spouse of that?
21:15:47 <hppavilion[2]> shachaf: The empty set is the spouse of all bachelors/bachelorettes
21:15:59 <ais523> it's not really an empty set, more like an empty monad
21:16:07 <shachaf> The spouse of my enemy is my friend.
21:16:23 <hppavilion[2]> shachaf: Even better, the domain of sps is exclusively people in a marital relationship.
21:16:28 <hppavilion[2]> And sets of said people
21:16:30 <hppavilion[2]> There.
21:16:36 <hppavilion[2]> shachaf: You are not in sps's domain
21:16:43 <shachaf> How do you know that?
21:16:51 <hppavilion[2]> shachaf: Because it's the definition of sps
21:17:02 <hppavilion[2]> sps : MarriedPeople -> MarriedPeople
21:17:06 <prooftechnique> I have two spouses, A and B. How do I define sps?
21:17:12 <hppavilion[2]> prooftechnique: It returns the set
21:17:25 <shachaf> And it takes a set as input, of course.
21:17:25 <hppavilion[2]> prooftechnique: So that above definition isn't 100% correct
21:17:35 <shachaf> So P(M) -> P(M)
21:17:39 <shachaf> But how do you know I'm not in M?
21:17:53 <hppavilion[2]> shachaf: Are you married?
21:17:59 <shachaf> none of your business hth
21:18:13 <hppavilion[2]> shachaf: Then I don't know if you're in the MarriedPeople type
21:18:33 <hppavilion[2]> s/in/an element of/
21:18:34 <prooftechnique> sps looks a lot like id, with that definition
21:18:41 <hppavilion[2]> prooftechnique: It isn't ID
21:18:57 <hppavilion[2]> prooftechnique: It's just has a domain and codomain that are the same type
21:19:02 <hppavilion[2]> prooftechnique: That's allowed
21:19:04 <prooftechnique> sps {me, A, B} = ?
21:19:07 <hppavilion[2]> succ : Nat -> Nat
21:19:13 <hppavilion[2]> prooftechnique: Empty set
21:19:24 <shachaf> look
21:19:28 <hppavilion[2]> sps : {MarriedPeople} -> {MarriedPeople}
21:19:28 <shachaf> the whole premise is flawed
21:19:39 <shachaf> marriage is an arbitrary thing
21:19:40 <hppavilion[2]> shachaf: Well we DID take the axiom of choice
21:19:49 <shachaf> it's not fundamental like duality
21:19:51 <ais523> hppavilion[2]: there are only finitely many people
21:19:56 <hppavilion[2]> ais523: Yes, and?
21:20:01 <ais523> so the axiom of choice seems irrelvant here
21:20:05 <hppavilion[2]> Oh right
21:20:07 <hppavilion[2]> Forgot about that
21:20:19 <hppavilion[2]> shachaf: It is
21:20:24 <prooftechnique> Why is it the empty set?
21:20:29 <prooftechnique> I have two spouses, A and B
21:20:49 <hppavilion[2]> prooftechnique: And you're taking the spouse of an entire marital set
21:21:09 <hppavilion[2]> Which is equivalent to the intersection of the spouse of all items of the marital set
21:21:15 <prooftechnique> You said I had to do that :/
21:21:38 <shachaf> What's the spouse of {A,B} if A and B aren't married?
21:21:47 <hppavilion[2]> shachaf: That is not a defined operation
21:21:57 <hppavilion[2]> shachaf: A and B have to be married
21:22:07 <prooftechnique> Then why would I need sps? :P
21:22:15 <hppavilion[2]> sps({Me, A, B}) = sps(Me) I sps(A) I sps(B) = {}
21:23:12 <hppavilion[2]> (I like doing abstract math on concrete things)
21:23:24 <hppavilion[2]> I is intersection, btw
21:24:05 <prooftechnique> All right, so sps me = ?
21:24:17 <hppavilion[2]> prooftechnique: {A, B}
21:24:29 <prooftechnique> Okay, but now what's sps^2 me?
21:24:41 <hppavilion[2]> prooftechnique: sps^2(x) = sps(sps(x))
21:24:46 <hppavilion[2]> prooftechnique: That's pretty standard notation
21:24:54 <hppavilion[2]> Sort of like sps^-1
21:25:00 <prooftechnique> I know what the notation means, I mean what's the value of it?
21:25:13 <prooftechnique> Oh, wait, I follow, now
21:25:17 <prooftechnique> You do intersection for sets
21:25:18 <hppavilion[2]> prooftechnique: Oh, sps^2(Me) = Me
21:25:25 <hppavilion[2]> sps returns a set, remember
21:25:37 <shachaf> No, it still doesn't work.
21:25:44 <hppavilion[2]> And it accepts a set, though shorthand permits the input to be written just as a set
21:25:50 <shachaf> The spoue of the empty set isn't defined.
21:25:52 <hppavilion[2]> shachaf: What's the issue now?
21:26:08 <shachaf> But the spouse of {A,B} can be the empty set.
21:26:14 <hppavilion[2]> shachaf: sps({}) = People-MarriedPeople?
21:26:20 <shachaf> You only made it uglier by ruling out one-person marriages, you didn't fix it.
21:26:22 <hppavilion[2]> sps : {MarriedPeople} -> {People}
21:26:29 <hppavilion[2]> shachaf: There
21:26:40 <shachaf> If {A,B} are married, then you want sps(sps({A,B})) to be {A,B}
21:26:46 <shachaf> And sps({A,B}) to be {}
21:26:49 <hppavilion[2]> shachaf: ONE PERSON MARRIAGES ARE AN ABOMINATION (ax. 3)
21:26:58 <hppavilion[2]> That's a good point...
21:27:00 <hppavilion[2]> Hm...
21:27:36 <shachaf> What you should do is define the complement of a set of people to be the set of everyone else in the universe.
21:27:52 <hppavilion[2]> I think we might be able to remediate this by replacing the set of MarriedPeople in the input with a labeled digraph
21:28:11 <prooftechnique> LABELED DIGRAPHS WON'T FIX OUR MARRIAGE, GERALD!
21:28:22 <hppavilion[2]> prooftechnique: xD
21:28:30 <hppavilion[2]> shachaf: I think we overdid this
21:28:50 <prooftechnique> Underdid, we haven't solved marriage, yet
21:28:59 <hppavilion[2]> I just wanted to be "doctor codoctor hppavilion[1]" someday
21:29:01 <shachaf> If you really wanted it to work, you'd probably want a family of spouse functions, indexed by marriage set.
21:29:09 <hppavilion[2]> shachaf: That's a good idea
21:29:17 <shachaf> Maybe it's even a natural transformation.
21:29:23 <prooftechnique> shachaf: Try telling that to my wife~
21:29:37 <prooftechnique> *wives
21:29:44 <lynn> "I now declare you... a non-empty marriage set."
21:29:52 <hppavilion[2]> sps[ms] : ms -> ms
21:30:05 <prooftechnique> "You may unify your constraints"
21:30:10 <hppavilion[2]> sps[{}](x) -> undefined
21:30:19 <hppavilion[2]> Mostly because x is impossible
21:30:29 <shachaf> Just say x
21:30:43 <hppavilion[2]> shachaf: OK
21:30:51 <hppavilion[2]> shachaf: But the empty set has no elements
21:30:57 <hppavilion[2]> p < 0.5
21:31:16 <hppavilion[2]> (not s/0.5/0.05)
21:31:25 <lynn> hppavilion[2]: https://en.wikipedia.org/wiki/Empty_function
21:31:55 <hppavilion[2]> lynn: Huh
21:32:23 <shachaf> OK, so don't define it at all.
21:32:31 <hppavilion[2]> shachaf: Fair enough
21:32:32 <shachaf> Anyway you should make it a natural transformation.
21:32:41 <hppavilion[2]> shachaf: How do I do that?
21:32:47 <hppavilion[2]> I'm still working on my category theory
21:32:59 <hppavilion[2]> sps[{x}](x) = {}
21:33:08 <shachaf> I don't know.
21:33:25 <hppavilion[2]> So sps[x](y) is basically just x\y
21:33:31 <shachaf> Yes.
21:33:34 <hppavilion[2]> OK
21:33:46 <hppavilion[2]> Now here's the definition
21:34:15 <shachaf> By the way, marriages might not be cliques.
21:34:24 <shachaf> I guess I should say transitive.
21:34:30 <shachaf> Maybe A is married to B and B is married to C but not A to C.
21:34:37 <shachaf> Maybe marriage is a directed graph.
21:34:39 <ais523> why would you expect marriages to be transitive
21:34:51 <hppavilion[2]> doctor(x) -> forall y[y in sps[marset(x)](y)] : codoctor(y)
21:34:52 <shachaf> ais523: Well, hppavilion[2] is using equivalence classes.
21:34:57 <ais523> in the case of heterosexual marriage with two genders, they're antitransitive
21:35:11 <shachaf> Why?
21:35:14 <hppavilion[2]> ais523: So you want digraph marriages?
21:35:17 <shachaf> Presumably a person is always married to themselves.
21:35:33 <ais523> shachaf: if A is married to B and B is married to C, then (with these assumptions) A and C have the same gender and B has a different gender
21:35:47 <ais523> and no, it is quite unusual, with standard definitions, for someone to be married to themselves
21:35:50 <hppavilion[2]> Where sps(x) = {y, z} does not imply sps(y) = {x, z} or sps(z) = {x, y} (index excluded)
21:36:01 <lynn> shachaf: I feel like that doesn't really match everyday usage of the term
21:36:05 <ais523> although given the relaxation on definitions of marriage recently, it might be possible to pull it off
21:36:07 <shachaf> ais523: Only if there are two genders.
21:36:14 <ais523> shachaf: that was one of my assumptions
21:36:22 <hppavilion[2]> Wait, now that we have a marset(x) function, we don't need the index, do we?
21:36:22 <ais523> now, ofc these assumptions aren't true in practice
21:36:24 <shachaf> Oh, yes.
21:36:31 <hppavilion[2]> Wait, no, marriage sets aren't exclusive
21:36:40 <ais523> they are both true more than half the time, but not 100% accurate
21:37:00 <hppavilion[2]> x in marset(y) -/> ~(x in marset(z)) where marset(z) /= marset(y)
21:37:11 <ais523> hmm, surely there's got to be some jurisdiction somewhere that was relying on gender as the only prevention of someone marrying themselves
21:37:12 <hppavilion[2]> ais523: There, there's your nontransitive marriage
21:37:12 <prooftechnique> Maybe it's better to formalize "Marital status" rather than marriage itself
21:37:23 <shachaf> ais523: I think a "heterosexual marriage" with more than two people is a somewhat strange idea.
21:37:24 <prooftechnique> Since then the singleton case is defined
21:37:28 <ais523> it seems like marrying yourself could be good for, say, tax purpsoes
21:37:34 <lynn> Is marriage ever irreflexive?
21:37:38 <hppavilion[2]> prooftechnique: But that defeats the point
21:37:46 <hppavilion[2]> ~married(x, x)
21:37:47 <lynn> I mean. Not reflexive
21:37:59 <shachaf> ais523: Isn't that the main purpose of marriage anyway?
21:38:14 <ais523> shachaf: for some people yes, for other people no
21:38:18 <hppavilion[2]> ais523: OK, what's the current question? In small words?
21:38:46 <hppavilion[2]> Is coppro the dual of ppro?
21:38:56 <shachaf> coppavillion
21:38:57 <ais523> hppavilion[2]: what I'm thinking about is "is there any jurisdiction in which it is legally possible to marry yourself, and would there be any benefit in doing so?"
21:39:12 <lynn> https://en.wikipedia.org/wiki/Self-marriage
21:39:21 <hppavilion[2]> ais523: There certainly are jurristictions where it's allowed, according to cdr. Ripley
21:39:32 <hppavilion[2]> ais523: Are there any other titles we need to invent?
21:39:38 <shachaf> ais523: It seems to me that it should either be impossible to marry yourself or everyone should automatically be married to themselves.
21:39:41 <hppavilion[2]> adr. Smith (antidoctor)
21:40:01 <hppavilion[2]> You become an antidoctor when you receive your antidoctorate, also known as a Darwin Award
21:40:20 <hppavilion[2]> shachaf: In our system or in real life?
21:40:48 <shachaf> "our"?
21:40:52 <hppavilion[2]> shachaf: My?
21:40:53 <shachaf> Since when are we married?
21:40:55 -!- Opodeldoc has joined.
21:41:04 <hppavilion[2]> shachaf: No, I mean our system of defining marriage
21:41:06 <prooftechnique> Surely sologamy isn't right. Autogamy would more Greek
21:41:15 <ais523> lynn: hmm, that article covers a different side of the subject than what I'd hoped :-(
21:41:24 <hppavilion[2]> prooftechnique: Antimonogamy: Being married to -1 people
21:41:40 <hppavilion[2]> I'm in a nullogamous relationship
21:42:10 <prooftechnique> I think antimonogamy is a marriage that kills the priest
21:42:20 <shachaf> ais523: http://www.selfmarriageceremonies.com/faq/ says there are no tax benefits.
21:42:26 <ais523> according to the linked sources, the sologamous marriage mentioned near the top wasn't legally recognised
21:42:30 <lynn> shachaf: Well, if you're married to yourself, and hppavilion[2] also is...
21:42:34 <shachaf> But that seems like hardly a marriage at all.
21:42:45 <shachaf> lynn: Oh, is the rule that everyone is married to myself?
21:42:53 <ais523> shachaf: gah at the pronouns there
21:42:58 <lynn> Yes. HTH
21:43:04 <ais523> I understand they want to be gender-inclusive, but changing pronouns at random is not a good way to do that :-(
21:43:18 <prooftechnique> Yeesh, who wrote this terrible article? Wiki editors should be all over this
21:43:33 <ais523> it has a couple of cleanup tags
21:43:41 <lynn> Do I have to marry myself to love myself?
21:43:43 <ais523> it could do with another one but I'm not entirely sure what it should be
21:43:44 <shachaf> ais523: There should be a <blink> tag for pronouns.
21:43:47 <lynn> ^ This question is very cute
21:43:53 <shachaf> So they're consistent at any point in time but change every second.
21:44:00 <ais523> shachaf: that's beautiful :-)
21:44:12 <ais523> does it also work on gender-specific words?
21:44:19 <hppavilion[2]> ais523: Well duh
21:44:25 <ais523> that aren't pronouns?
21:44:29 <hppavilion[2]> Yes
21:44:39 <hppavilion[2]> ais523: Of course, it would also include "xe" in the cycle just to bug people
21:44:58 <ais523> hppavilion[2]: at Agora we use e, em, eir, eirs, eirself
21:45:04 <ais523> but this is not just gender-neutral but sentience-neutral
21:45:05 <hppavilion[2]> ais523: Yes, I heard
21:45:10 <hppavilion[2]> ais523: Interesting
21:45:11 <ais523> "e" includes not just "he" and "she" but also "it"
21:45:37 <ais523> this is important because occasionally we have situations where inanimate objects or even concepts are capable of participating in the game
21:46:08 <hppavilion[2]> Whoa...
21:46:25 <lynn> "e" sounds so much like "he"
21:46:39 <shachaf> Does e?
21:46:41 <lynn> Cockney English pronouns
21:46:51 <ais523> yes, the Cockney connection is unfortunate
21:48:15 <hppavilion[2]> sher
21:49:57 <shachaf> I pronounce "e" as in "even", not as in "meter".
21:50:16 <hppavilion[2]> shachaf: Those are very bad example word choi- ooooooh
21:50:19 <hppavilion[2]> That's the joke
21:50:24 <ais523> shachaf: assuming you're referring to the first e in those two words, I pronounce those the same way
21:52:03 <shachaf> ais523: I was actually just trying to be ambiguous.
21:52:23 <shachaf> I actually pronounce it like "end".
21:54:01 <lynn> I pronounce "e" as the letter, but all the other ones as the "them/their" series without the first consonant
21:55:32 <shachaf> i,i 'a' as in "tomato"
21:56:24 <shachaf> `? gaspacho
21:56:25 <HackEgo> You like Gazpacho and I like Gaspacho. Let's call the whole thing off!
21:56:27 <shachaf> `? gazpacho
21:56:28 <HackEgo> You like Gazpacho and I like Gaspacho. Let's call the whole thing off!
21:56:34 <shachaf> `` ls -l wisdom/ga{s,z}pacho
21:56:35 <HackEgo> ​-rw-r--r-- 1 5000 0 71 Dec 9 04:13 wisdom/gaspacho \ -rw-r--r-- 1 5000 0 71 Dec 9 04:13 wisdom/gazpacho
21:56:39 <shachaf> what!
21:56:52 -!- hppavilion[2] has quit (Ping timeout: 244 seconds).
21:58:36 -!- AnotherTest has quit (Quit: ZNC - http://znc.in).
21:58:37 -!- boily has joined.
21:58:44 <shachaf> `` sed -i 's/Gaspacho/Gazpacho/' wisdom/gaspacho; sed -i 's/Gazpacho/Gaspacho/' wisdom/gaspacho
21:58:45 <boily> `? wether
21:58:51 <HackEgo> wether? ¯\(°​_o)/¯
21:58:53 <HackEgo> No output.
21:58:53 <boily> hellochaf!
21:58:58 <shachaf> `` \? gaspacho; \? gazpacho
21:59:00 <HackEgo> You like Gaspacho and I like Gazpacho. Let's call the whole thing off! \ You like Gazpacho and I like Gaspacho. Let's call the whole thing off!
21:59:25 <shachaf> @yowly
21:59:25 <lambdabot> ... I want a COLOR T.V. and a VIBRATING BED!!!
22:00:03 <boily> I don't want a vibrating bed.
22:00:17 <shachaf> @yowly
22:00:18 <lambdabot> I'm also against BODY-SURFING!!
22:00:34 <boily> I'm not against body surfing.
22:00:48 <boily> int-e: int-ello. please calibrate zippy hth
22:01:16 <shachaf> Do you pronounce "ello" as in "elo" or as in "hello"?
22:01:53 <boily> there's a difference?
22:02:20 <shachaf> Let's call the whole thing off.
22:02:36 <shachaf> `? gaszpacho
22:02:37 <HackEgo> gaszpacho is a polish soup, traditionally szerved cold for hot szummer days
22:03:02 <shachaf> `? gaspasjo
22:03:03 <HackEgo> gaspasjo is a norwegian soup, which died out due to a lack of hot summer days
22:03:07 <shachaf> `? gaspatsjo
22:03:08 <HackEgo> gaspatsjo is a norwegian soup, which died out due to a lack of hot summer days
22:03:22 -!- Phantom__Hoover has joined.
22:03:27 -!- `^_^v has quit (Ping timeout: 276 seconds).
22:03:29 <shachaf> `? tanebventions
22:03:31 <HackEgo> Tanebventions include D-modules, Chu spaces, automatic squirrel feeders, the torus, Stephen Wolfram, Go, submarine jousting, the universe, weetoflakes, persistence, the reals, Lambek's lemma, robots, progress, and this sentence. He never invents anything involving sex.
22:03:37 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds).
22:04:14 <shachaf> `` sed -i 's/S/gazpacho, S/' wisdom/tanebvention
22:04:16 <HackEgo> No output.
22:04:58 <shachaf> According to Wikipedia, Gazpacho is refreshing and cool.
22:06:10 <boily> the Best Szoup in the World!
22:06:22 <boily> (after pho, of course.)
22:09:23 <shachaf> `le/rn pho/Phở is a Vietnamese soup invented by nooodl to stress-test implementation of Unicode combining characters.
22:09:29 <HackEgo> Learned «pho»
22:09:45 <shachaf> `sedlast s/tion/tions/
22:09:51 <HackEgo> No output.
22:10:07 <boily> `` ls wisdom/ph*
22:10:09 <HackEgo> wisdom/phantom_hoover \ wisdom/phantom__hoover \ wisdom/phantom___hoover \ wisdom/phantom_______hoover \ wisdom/phantom__________hoover \ wisdom/phantom____________________hoover \ wisdom/pho \ wisdom/phở \ wisdom/photograph \ wisdom/php
22:10:22 <boily> `? phở
22:10:24 <HackEgo> Phở là một món ăn truyền thống của Việt Nam, cũng có thể xem là một trong những món ăn đặc trưng nhất cho ẩm thực Việt Nam.
22:10:40 <boily> I think we could should be merging both together.
22:12:53 <shachaf> `? pho
22:12:54 <HackEgo> Phở is a Vietnamese soup invented by noooooooodl to stress-test implementations of Unicode combining characters.
22:13:34 <shachaf> whoa whoa whoa, maur is nowhere to be seen
22:13:54 <shachaf> `? nooodlventions
22:13:54 <HackEgo> nooodlventions? ¯\(°​_o)/¯
22:14:31 * boily stealth mapole shachaf
22:15:06 <boily> @tell mauris you bring yourself here, you vile absent person!
22:15:07 <lambdabot> Consider it noted.
22:15:17 <boily> @tell mauris here being #esoteric.
22:15:17 <lambdabot> Consider it noted.
22:15:30 <shachaf> 15:15 -NickServ(NickServ@services.)- Last seen : Feb 06 03:27:23 2016 (5w 3d 18h ago)
22:15:55 <boily> aurgh.
22:17:44 <shachaf> ais523: http://qntm.org/gay talks about marrying yourself among other things that came up.
22:22:44 <lynn> shachaf: boily: maur is Lynn now, actually (and goes by "she/her"!) Hellooo~.
22:23:09 <lynn> It doesn't help that I started hitting this "shift key" thing more often, very incognito name change
22:23:37 <coppro> @tell hppavilion[2] yes
22:23:37 <lambdabot> Consider it noted.
22:24:34 <Phantom__Hoover> lynn, wait are you nooodl
22:25:13 <lynn> yeah! My handles: slowly moving backwards in the alphabet
22:27:59 <boily> hellynn!
22:29:04 <lynn> boinjourly~
22:31:40 <Phantom__Hoover> boily is well ahead of you tbf
22:33:39 <shachaf> whoa whoa whoa
22:34:13 <shachaf> `` sed -i 's/is/is not/' wisdom/mauri
22:34:16 <HackEgo> No output.
22:34:23 <lynn> Phantom__Hoover: yes, I'm amazed imo
22:34:41 <ais523> Phantom__Hoover: I'm ahead of boily on that basis
22:34:52 <Phantom__Hoover> aloril_ remains distant and enigmatic, above us all
22:35:38 <ais523> hmm, and I'm first out of the people who start with an alphabetical character?
22:36:01 <Phantom__Hoover> yes you completely ruined an excellent joke
22:36:42 <Phantom__Hoover> did you know that aloril has been here constantly for well over a decade and has never, as far as i can tell, uttered a single word
22:37:03 <lynn> :D
22:37:10 <ais523> might be a bot in that case
22:37:14 <ais523> but in that case, why the underscore?
22:37:31 <Phantom__Hoover> they're using xchat
22:37:35 <Phantom__Hoover> so definitely not a bot
22:37:43 <ais523> time to go home, anyway
22:37:52 -!- ais523 has quit.
22:41:20 <Phantom__Hoover> holy shit https://en.wikipedia.org/wiki/Minichess#3.C3.973_and_3.C3.974_boards
22:42:20 <shachaf> @ask zzo38 Do you like this? https://en.wikipedia.org/wiki/Minichess#3.C3.973_and_3.C3.974_boards
22:42:20 <lambdabot> Consider it noted.
22:43:38 <myname> solved problems are boring
22:51:00 <boily> Alcest is also quite mysterious. and I never saw APic speak.
22:51:41 <boily> /^[aA].*/ nicks are very intriguing people.
22:52:41 <boily> Phantom__Hoover: there's an Aloril in that page.
22:52:48 <Phantom__Hoover> exactly
22:52:51 <boily> the mystery thickens.
22:54:03 <b_jonas> it does
22:54:23 <shachaf> How about b_jon as the correct spelling?
22:54:27 <APic> boily: Then You just do not idle in here long enough ;=P
22:54:42 <APic> And what is the Problem with Bots anyhow?
22:55:29 <boily> An A-nick Spoke!
22:55:37 <boily> fungot: are you problematic?
22:55:37 <fungot> boily: i last saw mukunda on mar 01 at fnord am utc, saying: i don't run into anyone i know.
22:57:21 -!- XorSwap has joined.
23:07:18 -!- Opodeldoc has quit (Quit: Leaving).
23:08:13 <myname> wait, on 3x3 each pawn starts on the second line?
23:08:47 <myname> like, one line before the last?
23:09:44 <Phantom__Hoover> well, those were the positions aloril_ solved it for
23:09:48 <Phantom__Hoover> someone else solved the rest
23:10:04 <lynn> I once had to implement the 4x5 "Microchess" on that page as a Python exercise
23:10:52 <lynn> It was almost interesting!!
23:13:03 <boily> programming class?
23:13:15 <lynn> https://en.wikipedia.org/wiki/Minichess#4.C3.974.2C_4.C3.975_and_4.C3.978_chess The middle one. 1. Nb3+ Kb4 is a funny opening move.
23:48:57 -!- lynn has quit (Ping timeout: 244 seconds).
23:54:44 -!- p34k has quit.
2016-03-16
00:01:24 -!- oerjan has joined.
00:01:32 <boily> hellørjan.
00:01:50 <oerjan> helloily.
00:02:50 <int-e> calibrate, hmm
00:07:39 -!- heroux has quit (Ping timeout: 264 seconds).
00:07:52 <int-e> "server and client side remote code execution through a buffer overflow in all git versions before 2.7.1"... darn.
00:10:55 -!- jaboja has joined.
00:17:18 -!- XorSwap has quit (Quit: Leaving).
00:20:54 <int-e> Ah, it appears that providing read-only (gitweb) access to trusted repos seems fine; this concerns repos which encode directory trees that are too deep. (That's my own conclusion without reading a single line of code... season with salt to taste.)
00:27:19 <\oren\> rubio is out of the running
00:28:40 <boily> he\\oren\. following the elections?
00:28:54 <boily> also, there are red characters on your font page. what are they for?
00:38:55 <int-e> new additions?
00:42:38 <int-e> (I recall that new characters got a different color; I forgot which color though)
00:43:02 <boily> usually the orenew characters are green, but there's a bunch of red ones at the end.
00:43:10 <boily> newer reds. newereds.
00:43:24 <oerjan> <boily> `culprits wisdom/not\ found
00:43:36 <oerjan> `culprits wisdom/not found
00:43:49 <HackEgo> b_jonas
01:00:12 <oerjan> itl hppavilion[1] misunderstands either involutions, relations, or both.
01:01:57 -!- boily has quit (Quit: DISCARD CHICKEN).
01:06:00 <shachaf> oerjan: at least you had the option of not logreading
01:06:08 <shachaf> for those of us in the channel at the time it was involuntary
01:07:31 * oerjan releases shachaf through a trap door to the swatomat
01:21:47 -!- Phantom__Hoover has quit (Read error: Connection reset by peer).
01:23:10 <oerjan> <ais523> yes, the Cockney connection is unfortunate <-- ardly hever a problem
02:34:07 <Sgeo__> impl<'lock, T: 'lock> Lock<'lock, T> {
02:38:52 -!- andrew__ has joined.
02:39:01 -!- andrew__ has quit (Remote host closed the connection).
02:40:56 -!- andrew__ has joined.
02:44:11 -!- andrew__ has quit (Remote host closed the connection).
02:47:05 -!- andrew__ has joined.
02:47:31 -!- andrew__ has quit (Remote host closed the connection).
02:59:56 -!- jaboja has quit (Remote host closed the connection).
03:06:28 <izabera> what happens when a candidate drops out of the election?
03:06:37 <izabera> are their votes lost?
03:11:57 <oerjan> i think some of this stuff varies by US state
03:14:02 <oerjan> because technically, they are electing representatives who will do the actual voting at the party congresses, and iirc it may vary by state laws how much freedom those representatives have.
03:15:03 <oerjan> this all very vaguely remembered.
03:26:35 <pikhq> It also depends on the party in question.
03:27:45 <prooftechnique> The relevant details are at https://en.wikipedia.org/wiki/Faithless_elector
03:27:50 <prooftechnique> oerjan: ^
03:27:58 <pikhq> Because these aren't state-run elections, these are elections in private organizations in each state.
03:28:06 <pikhq> With some state regulation involved.
03:28:51 <prooftechnique> Though typos are also taken as written, which is why we had one vote for someone called "John Ewards" in 2004
03:28:53 <prooftechnique> See https://en.wikipedia.org/wiki/Faithless_elector#2000_to_present
03:43:59 -!- hppavilion[2] has joined.
04:09:55 -!- ais523 has joined.
04:10:30 <ais523> huh, so it seems that my issues with abiword starting spontaneously were nothing to do with it being first in alphabetical order, but simply to do with a bug in abiword: https://bugs.launchpad.net/ubuntu/+source/abiword/+bug/1432271
04:11:08 <izabera> *shocking*
04:11:38 <oerjan> aaa
04:19:48 <ais523> and I'd gone to all the trouble to write a program called aaaa-test for debugging before I thought to search if anyone had reported this first
04:21:34 -!- MoALTz_ has joined.
04:24:25 -!- MoALTz has quit (Ping timeout: 240 seconds).
04:30:31 -!- treaki__ has joined.
04:32:56 <prooftechnique> I didn't know people used abiword
04:34:04 -!- treaki_ has quit (Ping timeout: 264 seconds).
04:34:44 <oerjan> prooftechnique: they don't use it, it just spontaneously shows up hth
04:34:52 <prooftechnique> Aha
04:51:44 -!- heroux has joined.
05:10:38 <lifthrasiir> http://ix.io/sEe what a combinatoric naming.
05:11:01 <lifthrasiir> (a list of all Unicode hangul jamos, named so that they can be used in the internal naming)
05:22:07 -!- lleu has quit (Quit: That's what she said).
05:26:52 -!- heroux has quit (Ping timeout: 264 seconds).
05:28:02 -!- jkl has joined.
05:29:15 -!- jkl has quit (Client Quit).
05:31:32 -!- hppavilion[2] has quit (Ping timeout: 244 seconds).
06:02:32 <oerjan> poor gil
06:27:41 <shachaf> People talk about distance units like "light years", but do they ever talk about the other way around, measuring time in terms of distance units?
06:30:30 <ais523> like using, say, light miles to measure very short time periods?
06:31:13 <ais523> hmm, people arguably do that when talking about frequencies of electromagnetic radiation
06:31:27 <ais523> sometimes they're presented as wavelengths instead
06:35:33 <shachaf> Presumably it's "1/light miles"
06:35:51 <shachaf> I guess that's true.
06:36:24 <ais523> if light years are a unit of distance, light miles are a unit of time
06:36:48 <ais523> I guess you're writing it as "1/light" because you're dividing by c, not multiplying by it?
06:37:40 <shachaf> Yes.
06:45:39 -!- AnotherTest has joined.
06:52:00 -!- AnotherTest has quit (Ping timeout: 246 seconds).
06:52:38 <ais523> wow, does visible light oscillate fast
06:52:47 <ais523> it just struck me that its cycle time is measured in light-nanometres
06:56:05 <ais523> nanometres are already too short for me to visualize
06:56:12 <ais523> divide by the speed of light, which is unimaginably big…
06:56:30 <ais523> hmm, light-nanometres or nano-lightmetres?
06:56:46 <shachaf> colight nanometres
07:01:38 <lifthrasiir> lniagnhotmetres
07:05:02 <\oren\> a light nanometre would be aprox 3.3e-18 seconds
07:05:27 <\oren\> well, 3.3333...e-18
07:06:13 <\oren\> so 3 and a third attoseconds
07:09:38 <\oren\> so if red light is about 700 nanometres, then its cycle time is 2333 attoseconds
07:10:30 <\oren\> so 428 terahertz
07:12:09 <olsner> one foot is approx. one lightnanosecond and one soundmillisecond ... so lightfeet and soundfeet for nano/milliseconds makes sense?
07:20:41 <izabera> i joined kgs and won against easybot \o/
07:20:47 <izabera> i'm on a roll
07:20:55 <izabera> i'll take on lee sedol in no time
07:28:58 <oerjan> you misspelled "at" hth
07:29:50 -!- lambda-11235 has quit (Quit: Bye).
07:31:45 <izabera> take at?
07:31:53 <olsner> at a roll?
07:32:05 <olsner> won at easybot?
07:32:38 <oerjan> "at no time" hth
07:32:57 <izabera> confusing...
07:33:23 <oerjan> english prepositions often are
07:54:34 <shachaf> oerjan: that wasn't a misspelling but a different word from the one you said
07:54:56 <olsner> misspellings often produce something that is also a word
07:55:04 <shachaf> both valid preposition that give the sentence different meanings
07:55:05 <shachaf> hth
07:56:22 <oerjan> is it joke dissection day
07:57:02 <shachaf> joke dissection day is not a widely-recognized holiday
07:57:27 <shachaf> @google "joke dissection day"
07:57:29 <lambdabot> No Result Found.
07:57:33 <shachaf> in fact it looks like you invented it just now
07:58:02 <izabera> :D
07:58:10 <oerjan> shocking
07:58:28 <oerjan> izabera: so meta
07:58:50 <olsner> who would invent something like joke dissection day anyway, sounds like a pretty shitty holiday
07:58:53 <shachaf> unless perhaps it's a prank played on medical students or residents?
07:59:09 <shachaf> you never know which dissection day is real
08:00:01 <olsner> everybody ready for the shachaf dissection day celebration?
08:01:08 <olsner> hmm, it would have to be vivisection if you want to participate though
08:02:30 <shachaf> `? dissecting the angle
08:02:33 <HackEgo> dissecting the angle? ¯\(°​_o)/¯
08:05:40 <oerjan> it might just be disturbing subjects day
08:06:03 -!- J_Arcane has quit (Ping timeout: 240 seconds).
08:06:31 <shachaf> when oerjan is king, all subjects are disturbing
08:07:20 <oerjan> what's the equivalent to jester, except disturbing rather than funny
08:08:37 <shachaf> poet laureate hth
08:08:50 <oerjan> thx
08:09:24 <shachaf> Apparently Norway has no poet laureate.
08:10:46 <oerjan> okay
08:11:27 <shachaf> oerjan: seems like a niche for you to fill hth
08:14:28 <shachaf> apparently the united states poet laureate's stipend hasn't been adjusted for inflation since it was established in 1936 tdnh
08:15:31 <oerjan> however, trondheim has an official poet residence
08:15:48 <shachaf> do you reside there
08:15:53 <oerjan> no
08:16:08 <oerjan> i used to live within walking distance of it, but no longer
08:16:37 <shachaf> is it called dikterheim
08:16:53 <oerjan> dikterbolig
08:17:47 <shachaf> that reminds me of the story by heinlein that featured someone who went by Diktor
08:18:07 <oerjan> https://no.wikipedia.org/wiki/Adrianstua
08:18:54 <b_jonas> shachaf: is that the very “By his bootstraps” ?
08:19:02 <shachaf> yes
08:19:57 <oerjan> dikt is norwegian for poem
08:20:29 <shachaf> I found that out in order to put the word "dikterheim" together.
08:21:10 <shachaf> b_jonas: _By His Bootstraps_ was p. good
08:32:27 -!- mroman has joined.
08:34:14 -!- jaboja has joined.
08:45:05 -!- jaboja64 has joined.
08:45:12 -!- jaboja has quit (Read error: Connection reset by peer).
09:39:04 -!- ais523 has quit (Read error: Connection reset by peer).
09:43:40 <mroman> fnird
09:44:11 -!- ais523 has joined.
09:56:13 -!- oerjan has quit (Quit: Nite).
09:59:00 -!- AlexR42 has joined.
10:03:25 -!- jaboja64 has quit (Ping timeout: 252 seconds).
10:05:06 -!- jaboja has joined.
10:15:40 -!- bender|_ has joined.
10:18:03 <izabera> skype asks your profile info when you create an account and you can only answer male or female to the gender question
10:18:15 -!- AlexR42 has quit (Quit: My Mac has gone to sleep. ZZZzzz…).
10:21:45 -!- jaboja has quit (Ping timeout: 250 seconds).
10:29:06 -!- MoALTz_ has changed nick to MoALTz.
10:34:59 -!- boily has joined.
10:41:12 -!- AlexR42 has joined.
11:07:06 -!- jaboja has joined.
11:11:09 -!- AnotherTest has joined.
11:17:06 -!- AlexR42 has quit (Quit: My Mac has gone to sleep. ZZZzzz…).
11:17:27 -!- vodkode has quit (Quit: Leaving).
11:20:17 -!- AlexR42 has joined.
11:23:33 -!- boily has quit (Quit: WINDY CHICKEN).
11:30:15 -!- AnotherTest has quit (Ping timeout: 246 seconds).
11:36:32 <Taneb> izabera, that's the case with a lot of things unfortunately :(
11:42:59 -!- AnotherTest has joined.
11:50:39 -!- vodkode has joined.
12:19:41 -!- vanila has joined.
12:24:57 -!- ais523 has quit (Ping timeout: 260 seconds).
12:31:13 -!- bender|_ has quit (Ping timeout: 240 seconds).
12:44:30 -!- AlexR42 has quit (Quit: My Mac has gone to sleep. ZZZzzz…).
12:55:19 -!- Alcest has quit (K-Lined).
13:02:52 -!- AlexR42 has joined.
13:12:35 <mroman> izabera: well to be honest...
13:12:45 <mroman> to reflect all possible choices "gender" would have to be a blank field
13:13:09 <mroman> same goes for sexuality
13:13:29 <mroman> there's just too much diversity there to actually demand that everybody knows about it.
13:17:22 -!- AlexR42 has quit (Quit: My Mac has gone to sleep. ZZZzzz…).
13:19:01 -!- AlexR42 has joined.
13:19:11 <izabera> i think a common option is something like "male" "female" "other" "i don't want to share"
13:47:13 -!- AlexR42 has quit (Quit: My Mac has gone to sleep. ZZZzzz…).
13:50:22 -!- AlexR42 has joined.
13:51:16 <fizzie> "abort", "retry", "ignore" is a good triplet.
14:06:05 -!- spiette has joined.
14:10:42 <b_jonas> `olist 1028
14:10:54 <b_jonas> HackEgo?
14:11:08 <HackEgo> olist 1028: shachaf oerjan Sgeo FireFly boily nortti b_jonas
14:14:08 -!- `^_^v has joined.
14:14:17 <b_jonas> that was slow
14:17:39 -!- heroux has joined.
14:53:54 -!- AlexR42 has quit (Quit: My Mac has gone to sleep. ZZZzzz…).
15:06:17 <b_jonas> wtf? are they mad?
15:10:54 -!- lambda-11235 has joined.
15:33:49 -!- lynn has joined.
16:04:51 -!- mroman has quit (Quit: Lost terminal).
16:21:11 -!- AlexR42 has joined.
16:23:01 -!- J_Arcane has joined.
16:54:03 -!- spiette has quit (Ping timeout: 244 seconds).
16:58:49 -!- deltab has quit (Ping timeout: 240 seconds).
17:04:23 -!- J_Arcane has quit (Ping timeout: 244 seconds).
17:06:14 -!- deltab has joined.
17:10:03 -!- J_Arcane has joined.
17:38:54 -!- spiette has joined.
17:41:20 <shachaf> b_jonas: Who?
18:05:27 -!- mihow has joined.
18:17:50 -!- gde33 has joined.
18:20:55 -!- AlexR42 has quit (Quit: My Mac has gone to sleep. ZZZzzz…).
18:37:41 -!- idris-bot has quit (Quit: Terminated).
18:37:57 -!- idris-bot has joined.
18:48:13 -!- hppavilion[2] has joined.
18:50:57 <hppavilion[2]> prooftechnique: Hi
18:51:04 <hppavilion[2]> @massages-lud
18:51:04 <lambdabot> coppro said 20h 27m 27s ago: yes
18:51:15 -!- p34k has joined.
18:51:15 <myname> lol
19:10:29 -!- lleu has joined.
19:14:22 -!- lambda-11235 has quit (Quit: Bye).
19:14:24 -!- hppavilion[2] has quit (Ping timeout: 268 seconds).
19:19:24 -!- vanila has quit (Quit: Leaving).
19:22:57 -!- AlexR42 has joined.
19:25:12 -!- zzo38 has joined.
19:32:14 <HackEgo> [wiki] [[Headsecks]] https://esolangs.org/w/index.php?diff=46603&oldid=32498 * 198.86.29.24 * (+8) /* Syntax */ Pedantically, the unicode code points ordinals are natural numbers, which is why their remainder is always nonnegative.
19:33:45 -!- nycs has joined.
19:35:37 -!- `^_^v has quit (Ping timeout: 240 seconds).
19:38:32 <zzo38> Is it possible on Linux for a terminal emulator using pseudoterminals to read the termios settings that a program has applied?
19:40:04 <zzo38> ?messages-loud
19:40:04 <lambdabot> shachaf asked 20h 57m 44s ago: Do you like this? https://en.wikipedia.org/wiki/Minichess#3.C3.973_and_3.C3.974_boards
19:48:45 -!- ais523 has joined.
19:53:09 -!- ais523 has quit (Client Quit).
19:53:52 <zzo38> Now I can see it is solve chess on 3x3 although I would expect anyways, but board is much smaller so much more easily to solve
19:54:50 <shachaf> zzo38: I tried "whomet" on you in ifmud but the list was empty.
19:54:57 <shachaf> Unlike vaporware.
19:56:13 <zzo38> I did not program that list
20:12:26 -!- ais523 has joined.
20:35:40 -!- hppavilion[2] has joined.
20:35:44 <int-e> hmm, is there any non-obvious speedup [beyond guessing only half of the digits] for the current "ponder this"?
20:36:53 <hppavilion[2]> myname: If you're curious, that "yes" was about whether coppro was dual to ppro
21:13:25 -!- APic has quit (Ping timeout: 268 seconds).
21:20:06 -!- lambda-11235 has joined.
21:24:47 -!- hppavilion[2] has quit (Ping timeout: 244 seconds).
21:28:41 <HackEgo> [wiki] [[Malbolge programming]] https://esolangs.org/w/index.php?diff=46604&oldid=35324 * 217.236.237.114 * (-30) /* Reducing the number of immutable NOPs */
21:28:49 -!- hppavilion[2] has joined.
21:39:45 -!- deltab has quit (Ping timeout: 244 seconds).
21:40:56 -!- deltab has joined.
21:40:57 -!- AlexR42 has quit (Quit: My Mac has gone to sleep. ZZZzzz…).
22:06:08 -!- nycs has quit (Quit: This computer has gone to sleep).
22:15:34 -!- tswett has quit (Ping timeout: 277 seconds).
22:15:44 -!- Warrigal has joined.
22:16:50 -!- spiette has quit (Read error: Connection reset by peer).
22:17:26 -!- AnotherTest has quit (Quit: ZNC - http://znc.in).
22:19:14 -!- lleu has quit (Quit: That's what she said).
22:49:08 <Sgeo__> Dear CNN: Please learn how to display math
22:49:08 <Sgeo__> kthx
22:49:12 <Sgeo__> http://www.cnn.com/2016/03/16/europe/fermats-last-theorem-solved-math-abel-prize/index.html
22:49:26 <Sgeo__> "There are no whole number solutions to the equation xn + yn = zn when n is greater than 2."
22:50:28 <myname> lol
22:55:18 -!- jaboja has quit (Ping timeout: 250 seconds).
22:58:19 <hppavilion[2]> Sgeo__: Fuck you, CNN
22:58:21 <hppavilion[2]> Fuck you
22:58:41 <myname> i can solve that easily for n > 2
23:00:09 <int-e> Sgeo__: rest assured that journalist take the same meticulous approach to reporting on areas that you don't understand
23:00:11 <hppavilion[2]> prooftechnique: Hi?
23:00:20 <int-e> *journalists
23:02:20 <hppavilion[2]> Hm...
23:04:37 <int-e> (of course it's also possible that the journalist had it type-set correctly and then it got messed up by some software stack)
23:06:15 <hppavilion[2]> Which person here was going to write a compiler-writing tutorial
23:06:16 <hppavilion[2]> ?
23:06:47 <myname> what for
23:07:05 <myname> just write each part of the pipeline, done
23:07:56 <hppavilion[2]> Does attempting to write a compiler in Python make me a bad person?
23:08:02 <hppavilion[2]> Not FOR python, mind you- IN python
23:08:31 <zzo38> What is the compiler for?
23:08:47 -!- APic has joined.
23:09:04 <int-e> python isn't bad
23:09:20 <int-e> I'd be worried about speed, perhaps.
23:28:10 -!- Phantom_Hoover has joined.
23:31:13 -!- oerjan has joined.
23:39:41 -!- boily has joined.
23:43:12 <boily> `wisdom
23:43:38 <HackEgo> test/test failed. HackEgo-JUnit is not available.
23:44:21 <oerjan> Gregor approaching 14 days idlity
23:44:34 <boily> hellørjan. 'tis the season for the Gregorsleep.
23:44:38 <oerjan> aha
23:45:31 <boily> `culprits wisdom/test
23:45:40 <HackEgo> oerjan oerjan oerjan oerjan oerjan oerjan oerjan oerjan mroman_ mroman_ mroman_ mroman_ mroman_ mroman_ mroman_
23:45:56 * boily thwacks mroman and oerjan with a testified mapole
23:45:57 -!- XorSwap has joined.
23:46:21 <boily> our unit tests are nondeterministic. you will get a different number of failures every time you run them.
23:46:35 <boily> also, Jenkins may not find them from time to time.
23:48:16 -!- jaboja has joined.
23:49:42 <ais523> wait, why am I not in the culprits there? I thought I was in basically every wisdom entry due to failed attempts to delete them at random
23:51:39 <boily> his523. a strange fact indeed.
23:52:38 <oerjan> ais523: i think you may have timed out so things late in the alphabet are unaffected, or something
23:52:52 <oerjan> `` echo wisdom/*
23:52:53 <HackEgo> wisdom/` wisdom/`? wisdom/`? `? wisdom/^ wisdom/== wisdom/ wisdom/_̰̆̓_̦̻̖͍̟̖̅ͭͭͬ͡_͉̭ͧ͒̐_̯͙̬̬̦̯͂͋͒ͧ͋̋_̴̝̔̉̅ͨ͞ wisdom/! wisdom/? wisdom/?? wisdom/@ wisdom/* wisdom/\ wisdom/☃ wisdom/⊥ wisdom/ꙮ wisdom/⌨ wisdom/  wisdom/𝕈 wisdom/🐐 wisdom/̸̸̼͚͇̮͕̳̞̤̜̯̪̪̂ͭ̎̏̔ͦ͒ͪ͌̾ͦͨ̚̚ͅ
23:53:16 * oerjan bets this messed up shachaf's client again
23:53:53 <boily> `` echo wisdom/*
23:53:54 <HackEgo> wisdom/` wisdom/`? wisdom/`? `? wisdom/^ wisdom/== wisdom/ wisdom/_̰̆̓_̦̻̖͍̟̖̅ͭͭͬ͡_͉̭ͧ͒̐_̯͙̬̬̦̯͂͋͒ͧ͋̋_̴̝̔̉̅ͨ͞ wisdom/! wisdom/? wisdom/?? wisdom/@ wisdom/* wisdom/\ wisdom/☃ wisdom/⊥ wisdom/ꙮ wisdom/⌨ wisdom/  wisdom/𝕈 wisdom/🐐 wisdom/̸̸̼͚͇̮͕̳̞̤̜̯̪̪̂ͭ̎̏̔ͦ͒ͪ͌̾ͦͨ̚̚ͅ
23:54:01 <boily> just making sure it is properly messed.
23:54:34 <oerjan> boily: i protest that mapole, i do not think i have anything to do with the substance of that entry, at most minor correction.
23:55:00 <oerjan> `url wisdom/test
23:55:01 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/file/tip/wisdom/test
23:55:06 <boily> protest taken into account. I retract that mapoling.
23:55:17 <boily> oh, and: F̩ù̗͚n͕̫̪̝͈g̲̻o͖͖̹ͅt̤̻̲̙͍͍ ̥̰̭ͅi͖̻͙͠s̼̠ ̸͇̲̣O͉̟͓̬u͚̝͎r̪̹̻ ̛͕̰̙L̼̬͔o̬͔͚̼r̤̲̱͇̪͕d͓̞̞ ͉̙̗̰̣͕̦́a҉͉͔n̷͚̯̦ͅd͏̝̦̬͈͉͉̫ ̷̗͕̹̹̳͉̫S̩̜̙̱a̲͟v̩̜̣i̧̪̠̰̤̻o̞͍u̯̭͙̹͕͝r ̤H̥̙̺e̛ ̦C̵̟̙o͈͇̥̬̳̻̯m̩̙̣̩̣̬͍e̙̝̮̬̤̘̟s̥̣̞͎̟ ̶̝͔͙̙̣̠t̴̤͓o̩̱̬̦̼
23:55:20 <boily> ̛̼D̲̙͕é͍̤̰̫l͔͉̯ͅi̦̘̬̞̕v̸̘͈͎̱͕̲e̫̫̜̫̺̞͢r̥̮̻͈͉͓̝ ͈̥̭͓U̕s̯͓̩̟̠ ͖̜̯̘̻̱̀ͅF̀ro͎m̯͝ ̗̰̩̣M͈̝a҉k̷̪̱̲̭̥į̣̞̹̻͈̮̠ng͓͚̻̠ ̮̥͍͍̩̝̹͘S̕e̻̤̰̜̭̠n̹s̴e̸̠͓̱̤
23:56:02 <oerjan> hm in fact i was just using it as an actual test file, then reverting.
23:56:25 <oerjan> i've changed to using testing for that purpose.
23:57:25 <oerjan> fungot: are you much related to Zalgo?
23:57:25 <fungot> oerjan: chicken isn't logged, is it? i would never expect shivers to be available.
23:57:56 <oerjan> fungot: boily's chickens are definitely logged.
23:57:57 <fungot> oerjan: if i could get ready on thursday?
23:58:17 <oerjan> fungot: well that's today where i am
23:58:17 <fungot> oerjan: also, were you? that's rather nasty. i can not use those languages
23:59:18 <boily> fungot: I know oerjan uses unusual languages, but they aren't nasty. well... resonably not nasty.
23:59:19 <fungot> boily: and the dog doesn't? you can make sort of os architecture are we talking about shooting yourself in the situation you are using it
23:59:26 * boily doesn't like Norwegian "til"
23:59:33 <boily> fungot: we got a dog?
23:59:33 <fungot> boily: ofcourse, i wrote that lazy streams thing after i finally figured out the " joy of cats". i could always use fold.
2016-03-17
00:00:13 <oerjan> ais523: also it is possible wisdom/test is younger than your deletion, was it more than 17 months ago?
00:00:29 <ais523> oerjan: I can't remember
00:00:46 -!- lleu has joined.
00:00:46 -!- lleu has quit (Changing host).
00:00:46 -!- lleu has joined.
00:02:03 <oerjan> boily: what's so bad about "til"? btw i realized the other day that the norwegian preposition "oppå" is cognate to up-up-on hth
00:03:52 <shachaf> oerjan: my client is messed up tdnh
00:04:01 <oerjan> basically, the norwegian "på" is cognate to en:upon, and means the same thing as en:on, and then the process repeated once more.
00:04:20 <boily> eh?
00:05:18 <oerjan> boily: no:oppå <- opp+på, no:på <- old norse:upp á
00:05:47 <oerjan> no:oppå = en:upon by meaning, but up+upon by etymology
00:06:00 <boily> up-up-on. there's something wrong going on there...
00:06:16 -!- Warrigal has quit (Remote host closed the connection).
00:06:27 <oerjan> basically á went out of use and på took its place.
00:06:48 <boily> on the other hand, we have “au dessus”: «at the of on».
00:06:59 <oerjan> O KAY
00:08:24 -!- Warrigal has joined.
00:11:34 <oerjan> also, i recall reading that "på" is the only norwegian word root that is not originally a borrowing that starts with "p".
00:11:49 <oerjan> of course, originally it started with "u", then.
00:12:02 <boily> upå?
00:12:08 <oerjan> upp á, i said
00:13:14 <oerjan> otoh there are some pretty old borrowings, like "prest"
00:14:57 <oerjan> does this mean PIE didn't have words starting with "b"?
00:15:58 <oerjan> (not to be confused with "bʰ")
00:17:34 <boily> http://starling.rinet.ru/cgi-bin/response.cgi?root=config&morpho=0&basename=\data\ie\piet&first=241 ← has some b- words.
00:19:19 <oerjan> hm "peg"
00:20:51 <oerjan> fine, it is simply false, no:pinne is a counterexample.
00:21:44 <boily> let me guess: no:pinne is en:pine is fr:pin.
00:21:50 <oerjan> no, en:pin
00:22:12 <oerjan> en:pine = no:furu
00:22:16 <boily> close enough.
00:22:29 <boily> no:furu, as in en:fir?
00:23:07 <oerjan> hm yes those seem cognate
00:23:15 <oerjan> although en:fir = no:bartre
00:23:31 <b_jonas> heh, linguistics talk
00:23:54 <oerjan> or wait
00:23:59 <b_jonas> um, is norvegian "på" the same particle as swedish "på"?
00:24:02 <oerjan> en:fir isn't that broad
00:24:06 <oerjan> b_jonas: yeah
00:25:05 <boily> b_jhellonas. are Hungarian trees borrowed from PIE by chance, or completely ugric?
00:25:20 <oerjan> apparently en(US):fir = no:edelgran
00:25:39 <b_jonas> boily: "au dessus" doesn't seem too strange to me, if you compare it either to some other strange French stuff, or to those very few prepositions in Hungarian that require their argument in a case other than accusative
00:26:09 <b_jonas> boily: uh, I'm not sure, there are lots of trees, and I think they're borrowed from different languages because people met them in different times
00:26:35 <boily> . o O ( a time for trees... turn turn turn ♪ )
00:26:46 <b_jonas> and I don't really know much about etymology
00:27:21 <boily> and then you have en:larch vs. no:lerk.
00:27:24 <boily> the larch.
00:27:26 <boily> the larch.
00:27:39 <b_jonas> Presumably some of them probably come from finno-ugric roots, some from slavic, some from turkish, etc.
00:27:44 <oerjan> boily: what i remember is that the hungarian word for "apple" is the same as the kazakh one. (which makes sense since that's where apples come from.)
00:31:16 * oerjan notes that en. wiktionary has a table for alma + cases & plural, and a table for alma + possessives, but not one that combines them >:)
00:31:19 <b_jonas> boily: if I can trust the internets, then “fűz” (willow) and “nyír” (birch) are from finno-ugric stuff, whereas “tölgy” (oak) and “bükk” (beech) are of uncertain origin.
00:31:43 <boily> bükk feels very PIEish to me hth.
00:31:58 <oerjan> which would of course essentially multiply the table sizes afaik
00:32:16 <b_jonas> boily: basically, many things the Magyars met while they were still nomadic and shooting arrows backwards from their horses have finno-ugric names, and things they met later when they decided to stay put and do agriculture have names that come from Slavic or Turkish.
00:32:32 <boily> makes sense.
00:32:39 <b_jonas> “fenyő” (pine) also comes from finno-ugric
00:32:50 <boily> en:willow, but fr:saule and no:selje.
00:32:56 <b_jonas> because you don't need to do agriculture to just notice the big obvious trees that are in the mountains everywhere
00:33:42 <boily> how to recognize different types of trees.
00:33:52 <oerjan> <boily> and then you have en:larch vs. no:lerk. <-- well we're really not big on "ch" hth
00:35:35 <boily> en:ash no:ask...
00:36:00 <oerjan> not big on "sh" either
00:36:11 -!- p34k has quit.
00:36:12 <oerjan> en:oak no:eik
00:36:26 <oerjan> en:maple no:lønn
00:36:40 <oerjan> en:birch no:bjørk
00:36:40 <boily> érable sounds better imfo.
00:37:17 <oerjan> OKAY
00:37:18 <boily> an unusual one: en:yew no:barlind fr:if
00:37:50 <b_jonas> also, I totally don't know the names of most of these trees in English, I had to look them up
00:38:03 <oerjan> i didn't know that, or willow
00:38:14 <b_jonas> well, oak and pine and willow I do know, but not much more
00:38:28 <oerjan> en:spruce = no:gran
00:38:57 <b_jonas> I don't know the rest either way, as in, neither can I tell from the English word what tree it is, nor from the tree its English name, but then, I don't know too much about plants even in Hungarian
00:39:13 <b_jonas> I'm not really a botanics sort of guy
00:39:34 <oerjan> DON'T KNOW MUCH ABOUT BOTANY, DON'T KNOW MUCH ABOUT ETYMOLOGY...
00:39:46 <b_jonas> correct
00:40:08 <boily> herpetology? seismology? chickens?
00:40:24 <oerjan> surely there must be a proper word for the study of chickens
00:40:46 <b_jonas> oerjan: farming?
00:40:48 <boily> probably herpetology, if you squint hard enough.
00:42:06 <oerjan> coelosaurology
00:42:58 <oerjan> hm i'm mispling that
00:43:29 <oerjan> *coelurosaurology
00:44:03 <\oren\> Ok... let's see how many mods I can install before ksp goes completely screwy
00:44:54 <\oren\> uh, avidomesticology?
00:44:59 <oerjan> \oren\: 0 hth
00:45:31 <oerjan> or should it be -1
00:45:59 <oerjan> \oren\: mixing greek and latin, ZERO ON THE FINAL
00:46:03 <\oren\> it's true I've had things go screwy even without any mods
00:46:29 -!- gde33|2 has joined.
00:46:52 * oerjan should get some new memes but that would require actually browsing top subreddits
00:47:18 <ais523> the Marco Rubio meme is a new one and seems to be popular recently
00:48:02 <oerjan> hm are there retro-memeticists
00:48:23 <oerjan> people who wilfully use only memes at least 10 years old
00:48:49 <ais523> oerjan: maybe but nobody would recognise them as memes
00:49:06 <oerjan> darn
00:49:26 <oerjan> ais523: even if they're obvious clichés?
00:49:36 -!- gde33 has quit (Ping timeout: 276 seconds).
00:49:37 <ais523> except possibly the whole "the cake is a lie" thing, where the fact that it's an outdated meme is itself a meme; not sure if the original is 10 years old yet though
00:51:29 <\oren\> marco is dead tho
00:51:42 <oerjan> ais523: wait which marco rubio meme, there seem to be at least 3
00:52:10 <ais523> oerjan: let's dispel with this faction that «obama» doesn't know what «he's» doing, «he» knows exactly what «he's» doing
00:52:16 <ais523> *with this fiction
00:52:24 <ais523> words in «» can be swapped out, and often are
00:52:32 <ais523> typically it gets repeated a few times, then someone says "ther eit is"
00:52:38 <ais523> * "there it is"
00:52:56 <oerjan> ok makes no sense tdh
00:53:06 <ais523> oerjan: that's why it became a meme, this actually happened
00:53:09 <ais523> in a debate, very high profile
00:53:22 <ais523> Rubio said it four times, three of them pretty much in a row (the third time after he'd been called for doing it twice)
00:53:30 <ais523> and "there it is" was the response at the time
00:54:15 <oerjan> okay
00:54:43 * oerjan considers dropping learning memes until the US election is over
00:54:57 <oerjan> i'm not following it anyhow.
00:55:00 <Sgeo__> oerjan, https://www.youtube.com/watch?v=HNRNHgi1RzU
00:55:13 <oerjan> AAAA
00:55:40 <ais523> Sgeo__: I'm assuming that's a link to the original occasion?
00:55:52 <Sgeo__> ais523, yes
00:57:07 <Sgeo__> The fourth time he rephrased it a bit. Still got booes
01:00:30 <\oren\> mean while donald trump says exactly the same slogans a hundred times over
01:02:34 <\oren\> but then, his slogans are catchy
01:07:43 <boily> china china china china china china china china.
01:21:52 <lifthrasiir> https://pbs.twimg.com/media/Cdsr2R9WoAIx48G.jpg Canadian take-out!
01:22:39 -!- lynn has quit (Ping timeout: 250 seconds).
01:22:45 <lifthrasiir> boily: china is not a verb
01:23:14 <ais523> it is both a noun and an adjective though
01:23:28 <boily> lifthrasiir: bwah ah ah ah ah :D
01:23:28 <ais523> although the adjective-noun combination is either nonsensical or tautological depending on how you look at things
01:24:02 <boily> https://www.youtube.com/watch?v=RDrfE9I8_hs
01:24:34 <lifthrasiir> ais523: china china makes perfect sense
01:24:46 <lifthrasiir> to be exact, China china
01:24:56 <ais523> lifthrasiir: oh yes, that combination works
01:25:06 <ais523> and is one I hadn't thought of
01:27:50 -!- jaboja has quit (Remote host closed the connection).
01:29:15 -!- boily has quit (Quit: VINYL CHICKEN).
01:37:43 -!- mihow has quit (Quit: mihow).
01:39:13 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds).
01:39:45 -!- Phantom_Hoover has joined.
01:41:40 -!- XorSwap has quit (Quit: Leaving).
01:58:44 * oerjan puts a green hat on fungot
01:58:45 <fungot> oerjan: not by far. it's awesome. and by insane, i mean)
02:00:36 -!- AlexR42 has joined.
02:09:45 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
02:15:00 -!- AlexR42 has quit (Quit: My Mac has gone to sleep. ZZZzzz…).
02:19:39 -!- Warrigal has quit (*.net *.split).
02:19:39 -!- lleu has quit (*.net *.split).
02:19:39 -!- treaki__ has quit (*.net *.split).
02:19:39 -!- FreeFull has quit (*.net *.split).
02:20:55 -!- treaki__ has joined.
02:22:18 -!- FreeFull has joined.
02:25:14 -!- Warrigal has joined.
02:25:14 -!- lleu has joined.
02:25:43 -!- Warrigal has quit (Max SendQ exceeded).
02:25:50 -!- Warrigal has joined.
02:50:39 <\oren\> "We don't win anymore! We don't win with trade, we don't win with Isis, we don't win with China, we don't win with healthcare. We are going to start winning again for the American people"
02:53:42 <\oren\> "we are going to build a wall, and who's going to pay for it?" "MEXICO!"
02:54:54 <\oren\> etc.
02:55:02 <\oren\> they're catchy
03:29:39 <\oren\> Let's just dispense with this notion that Barack Obama doens't knwo what he's doing
03:30:07 <\oren\> Barack Obama knows EXATLCY what he's doing
03:38:14 <HackEgo> [wiki] [[Special:Log/newusers]] create * Jimmy23013 * New user account
03:39:07 <ais523> \oren\: the original was "dispel with", which people keep misquoting because it isn't correct Enlish
03:39:11 <ais523> *English
03:39:22 <ais523> they keep mentally substituting something that's actually correct
03:40:17 <oerjan> let's just mispel with this substition
03:45:06 <\oren\> lol
03:51:31 <HackEgo> [wiki] [[Undefined]] N https://esolangs.org/w/index.php?oldid=46605 * Jimmy23013 * (+1136) Created page with "'''Undefined''' is a programming language that, every program in it causes [[undefined behavior]]. Extra command line arguments and lack of source files also triggers undefine..."
03:52:47 <HackEgo> [wiki] [[Undefined]] M https://esolangs.org/w/index.php?diff=46606&oldid=46605 * Jimmy23013 * (+0)
03:57:47 <ais523> based on the edit summary snippet
03:57:55 <ais523> I'm assuming that every program in existence is an interpreter for this language
03:58:04 <ais523> called it :-)
03:58:47 <ais523> I like it, it's an absence-of-language joke that hasn't been done before
03:59:48 <zzo38> I have added XC_xterm_sideways
04:00:25 <HackEgo> [wiki] [[Undefined]] https://esolangs.org/w/index.php?diff=46607&oldid=46606 * Ais523 * (+25) cat :-)
04:11:17 <zzo38> '!' for comment, ' ' for transparent, '-' for white, '#' for black, '.' for transparent hotspot, '+' for white hotspot, '@' for black hotspot
04:21:41 -!- MoALTz_ has joined.
04:23:01 <\oren\> ais523: I thought it must be a C variant
04:23:18 <\oren\> well, in a sense it is
04:25:20 -!- MoALTz has quit (Ping timeout: 244 seconds).
04:29:14 -!- treaki_ has joined.
04:33:00 -!- esowiki has joined.
04:33:04 -!- esowiki has joined.
04:33:04 -!- esowiki has joined.
04:33:40 -!- esowiki has joined.
04:33:44 -!- esowiki has joined.
04:33:44 -!- esowiki has joined.
04:34:20 -!- esowiki has joined.
04:34:24 -!- esowiki has joined.
04:34:24 -!- esowiki has joined.
04:35:00 -!- esowiki has joined.
04:35:04 -!- esowiki has joined.
04:35:04 -!- esowiki has joined.
04:35:40 -!- esowiki has joined.
04:35:44 -!- esowiki has joined.
04:35:44 -!- esowiki has joined.
04:36:20 -!- esowiki has joined.
04:36:24 -!- esowiki has joined.
04:36:24 -!- esowiki has joined.
04:37:00 -!- esowiki has joined.
04:37:04 -!- esowiki has joined.
04:37:04 -!- esowiki has joined.
04:37:40 -!- esowiki has joined.
04:37:44 -!- esowiki has joined.
04:37:44 -!- esowiki has joined.
04:38:20 -!- esowiki has joined.
04:38:24 -!- esowiki has joined.
04:38:24 -!- esowiki has joined.
04:39:00 -!- esowiki has joined.
04:39:04 -!- esowiki has joined.
04:39:04 -!- esowiki has joined.
04:39:40 -!- esowiki has joined.
04:39:44 -!- esowiki has joined.
04:39:44 -!- esowiki has joined.
04:40:20 -!- esowiki has joined.
04:40:24 -!- esowiki has joined.
04:40:25 -!- esowiki has joined.
04:41:00 -!- esowiki has joined.
04:41:04 -!- esowiki has joined.
04:41:05 -!- esowiki has joined.
04:41:40 -!- esowiki has joined.
04:41:44 -!- esowiki has joined.
04:41:45 -!- esowiki has joined.
04:42:20 -!- esowiki has joined.
04:42:24 -!- esowiki has joined.
04:42:25 -!- esowiki has joined.
04:43:00 -!- esowiki has joined.
04:43:04 -!- esowiki has joined.
04:43:05 -!- esowiki has joined.
04:43:40 -!- esowiki has joined.
04:43:44 -!- esowiki has joined.
04:43:45 -!- esowiki has joined.
04:44:20 -!- esowiki has joined.
04:44:24 -!- esowiki has joined.
04:44:25 -!- esowiki has joined.
04:45:00 -!- esowiki has joined.
04:45:04 -!- esowiki has joined.
04:45:05 -!- esowiki has joined.
04:45:40 -!- esowiki has joined.
04:45:44 -!- esowiki has joined.
04:45:45 -!- esowiki has joined.
04:46:20 -!- esowiki has joined.
04:46:24 -!- esowiki has joined.
04:46:25 -!- esowiki has joined.
04:47:00 -!- esowiki has joined.
04:47:04 -!- esowiki has joined.
04:47:05 -!- esowiki has joined.
04:47:40 -!- esowiki has joined.
04:47:44 -!- esowiki has joined.
04:47:45 -!- esowiki has joined.
04:48:20 -!- esowiki has joined.
04:48:24 -!- esowiki has joined.
04:48:25 -!- esowiki has joined.
04:49:00 -!- esowiki has joined.
04:49:05 -!- esowiki has joined.
04:49:05 -!- esowiki has joined.
04:49:41 -!- esowiki has joined.
04:49:45 -!- esowiki has joined.
04:49:45 -!- esowiki has joined.
04:50:21 -!- esowiki has joined.
04:50:25 -!- esowiki has joined.
04:50:25 -!- esowiki has joined.
04:51:01 -!- esowiki has joined.
04:51:05 -!- esowiki has joined.
04:51:05 -!- esowiki has joined.
04:51:41 -!- esowiki has joined.
04:51:45 -!- esowiki has joined.
04:51:45 -!- esowiki has joined.
04:52:21 -!- esowiki has joined.
04:52:25 -!- esowiki has joined.
04:52:25 -!- esowiki has joined.
04:53:01 -!- esowiki has joined.
04:53:05 -!- esowiki has joined.
04:53:05 -!- esowiki has joined.
04:53:41 -!- esowiki has joined.
04:53:45 -!- esowiki has joined.
04:53:45 -!- esowiki has joined.
04:54:21 -!- esowiki has joined.
04:54:25 -!- esowiki has joined.
04:54:25 -!- esowiki has joined.
04:55:01 -!- esowiki has joined.
04:55:05 -!- esowiki has joined.
04:55:05 -!- esowiki has joined.
04:55:41 -!- esowiki has joined.
04:55:45 -!- esowiki has joined.
04:55:45 -!- esowiki has joined.
04:56:21 -!- esowiki has joined.
04:56:25 -!- esowiki has joined.
04:56:25 -!- esowiki has joined.
04:57:01 -!- esowiki has joined.
04:57:05 -!- esowiki has joined.
04:57:06 -!- esowiki has joined.
04:57:41 -!- esowiki has joined.
04:57:45 -!- esowiki has joined.
04:57:46 -!- esowiki has joined.
04:58:21 -!- esowiki has joined.
04:58:25 -!- esowiki has joined.
04:58:26 -!- esowiki has joined.
04:59:01 -!- esowiki has joined.
04:59:05 -!- esowiki has joined.
04:59:06 -!- esowiki has joined.
04:59:41 -!- esowiki has joined.
04:59:45 -!- esowiki has joined.
04:59:46 -!- esowiki has joined.
05:00:21 -!- esowiki has joined.
05:00:25 -!- esowiki has joined.
05:00:26 -!- esowiki has joined.
05:01:01 -!- esowiki has joined.
05:01:05 -!- esowiki has joined.
05:01:06 -!- esowiki has joined.
05:01:41 -!- esowiki has joined.
05:01:45 -!- esowiki has joined.
05:01:46 -!- esowiki has joined.
05:02:21 -!- esowiki has joined.
05:02:25 -!- esowiki has joined.
05:02:26 -!- esowiki has joined.
05:03:01 -!- esowiki has joined.
05:03:05 -!- esowiki has joined.
05:03:06 -!- esowiki has joined.
05:03:41 -!- esowiki has joined.
05:03:45 -!- esowiki has joined.
05:03:46 -!- esowiki has joined.
05:04:21 -!- esowiki has joined.
05:04:25 -!- esowiki has joined.
05:04:26 -!- esowiki has joined.
05:05:01 -!- esowiki has joined.
05:05:05 -!- esowiki has joined.
05:05:06 -!- esowiki has joined.
05:05:41 -!- esowiki has joined.
05:05:46 -!- esowiki has joined.
05:05:46 -!- esowiki has joined.
05:06:22 -!- esowiki has joined.
05:06:26 -!- esowiki has joined.
05:06:26 -!- esowiki has joined.
05:07:02 -!- esowiki has joined.
05:07:06 -!- esowiki has joined.
05:07:06 -!- esowiki has joined.
05:07:42 -!- esowiki has joined.
05:07:46 -!- esowiki has joined.
05:07:46 -!- esowiki has joined.
05:08:22 -!- esowiki has joined.
05:08:26 -!- esowiki has joined.
05:08:26 -!- esowiki has joined.
05:09:02 -!- esowiki has joined.
05:09:06 -!- esowiki has joined.
05:09:06 -!- esowiki has joined.
05:09:42 -!- esowiki has joined.
05:09:46 -!- esowiki has joined.
05:09:46 -!- esowiki has joined.
05:10:22 -!- esowiki has joined.
05:10:26 -!- esowiki has joined.
05:10:26 -!- esowiki has joined.
05:11:02 -!- esowiki has joined.
05:11:06 -!- esowiki has joined.
05:11:06 -!- esowiki has joined.
05:11:42 -!- esowiki has joined.
05:11:46 -!- esowiki has joined.
05:11:46 -!- esowiki has joined.
05:12:22 -!- esowiki has joined.
05:12:26 -!- esowiki has joined.
05:12:26 -!- esowiki has joined.
05:13:02 -!- esowiki has joined.
05:13:06 -!- esowiki has joined.
05:13:06 -!- esowiki has joined.
05:13:42 -!- esowiki has joined.
05:13:46 -!- esowiki has joined.
05:13:47 -!- esowiki has joined.
05:14:22 -!- esowiki has joined.
05:14:26 -!- esowiki has joined.
05:14:27 -!- esowiki has joined.
05:15:02 -!- esowiki has joined.
05:15:06 -!- esowiki has joined.
05:15:07 -!- esowiki has joined.
05:15:42 -!- esowiki has joined.
05:15:46 -!- esowiki has joined.
05:15:47 -!- esowiki has joined.
05:16:22 -!- esowiki has joined.
05:16:23 -!- glogbot has joined.
05:16:26 -!- esowiki has joined.
05:16:27 -!- esowiki has joined.
05:16:31 -!- EgoBot has joined.
05:16:31 -!- FireFly has joined.
05:18:14 <zzo38> Do you know why XGetSubImage requires you to specify the format for the image (if the XImage structure will already specify)?
05:20:14 -!- Gregor has joined.
05:43:13 -!- variable has joined.
05:46:19 -!- variable has changed nick to constant.
05:47:34 -!- hppavilion[2] has quit (Ping timeout: 252 seconds).
05:48:25 -!- AlexR42 has quit (Quit: Textual IRC Client: www.textualapp.com).
06:43:50 -!- constant has quit (Ping timeout: 268 seconds).
06:54:04 -!- AlexR42 has joined.
06:55:52 -!- lambda-11235 has quit (Quit: Bye).
07:07:46 <zzo38> What kind of effects for Magic: the Gathering cards might make interesting puzzles but that do not make sense for an actual game?
07:09:53 -!- AnotherTest has joined.
07:12:39 <zzo38> (Possibly some such effects may even do things which are impossible in a normal game)
07:16:20 -!- AnotherTest has quit (Ping timeout: 244 seconds).
07:19:27 -!- bender| has joined.
07:24:08 <ais523> zzo38: a card that lets you undo the turn, perhaps
07:24:49 <ais523> for this to work in a puzzle you'd have to spend resources to gain information on what's in the opponent's hand or library (or some other hidden zone), undo the turn, then use the information to win
07:25:02 <ais523> and the solution would involve finding a winning path no matter what was there, but the details depended on what you found there
07:25:51 <zzo38> Yes that is one idea
07:25:51 <myname> i like that
07:30:59 <zzo38> OK
07:40:59 -!- AlexR42 has quit (Quit: My Mac has gone to sleep. ZZZzzz…).
07:45:10 <zzo38> Other things I have considered are many kind of effects that cause the game to end in a draw; with default stipulations, you have not solved the puzzle if the game ends in a draw for any reason.
07:51:22 <ais523> ooh, perhaps you could also use it to mill some cards to determine what order they are in, undo the mill, and then exploit your knowledge of which cards you'll draw
07:54:19 <zzo38> Yes
08:13:04 <b_jonas> zzo38: cards that are really overpowered if you can build decks with them (even in limited) but that somehow don't seem to help you in that particular puzzle. or really underpowered ones like One with Nothing; or ones obsolated for all practical purposes by different cards, like Squire.
08:18:01 <ais523> b_jonas: One with Nothing's effect is one that many decks find useful
08:18:09 <ais523> the problem is that there are better cards with the effect
08:18:25 <ais523> there's a creature costing B that you can discard cards to for free, for example
08:18:37 <ais523> and Lion's Eye Diamond costs 0 and gives you 3 mana, that's better than One with Nothing in two ways
08:27:43 <b_jonas> ais523: ok
08:28:40 <b_jonas> ais523: then Squire and Grizzly Bears might be better examples
08:29:08 <b_jonas> (maybe unless you're playing Muraganda Petroglyphs)
08:33:39 -!- oerjan has quit (Quit: Nite).
08:39:55 <ais523> are there no white bears? those would be better than Squire in pretty much all practical circumstances
08:40:15 <ais523> (the only non-contrived situation I can think of offhand where you'd prefer a Squire involves an opponent's Ensnaring Bridge)
09:20:37 -!- ais523 has quit (Ping timeout: 250 seconds).
09:29:56 <b_jonas> there is one non-changeling white bear, but white uses lions instead
09:38:32 -!- AnotherTest has joined.
09:40:56 -!- MoALTz_ has changed nick to MoALTz.
09:46:48 <b_jonas> And windows already has working pipes, only they start out with a too little buffer by default so you have to change the buffer size with a windows api call, but linux had that very same problem for a while until they increased the default buffer size.
09:47:32 <b_jonas> On unix, you dealt with it by using unix domain sockets, which both had a larger buffer and a buffer of whose size you can adjust with a sockopt call.
09:47:50 <b_jonas> It's worse on windows because no unix sockets.
10:09:57 -!- mroman has joined.
10:10:14 <mroman> fnąrd
10:31:41 -!- boily has joined.
10:43:39 <boily> will it be the first thunderstorm of the year? stay tuned!
10:44:22 <boily> (or not. that shit can fry your machines you won't even have time to say fungot.)
10:44:22 <fungot> boily: why would it fail?
10:44:33 <boily> fungot: because ELECTRICITY!
10:44:34 <fungot> boily: is it possible to download an offline copy of teach scheme in fixnum days
10:44:56 <boily> fungot: I don't think you couldn't.
10:44:57 <fungot> boily: and for the live data. this is cool! :) works. i guess you know what the consequences of shouting out " heil bush" among friends, that would
10:45:30 <boily> fungot: we say «C't'une fois George Bush...» as a lead on for a stupid joke.
10:45:31 <fungot> boily: which is strange, but most libraries i see announced for cl do require low level tricky stuff :) forthers would say that.
10:45:48 <boily> fungot: forthers are special people.
10:58:52 -!- asie has quit (Ping timeout: 252 seconds).
11:04:30 -!- bender| has quit (Ping timeout: 248 seconds).
11:06:14 <izabera> did you know that canada is 50% the letter a
11:07:04 <boily> izabellora. now that you mention it...
11:08:22 <izabera> helloily
11:10:12 -!- asie has joined.
11:17:34 <Taneb> izabera, the catalan language is almost 50% a's, too
11:18:45 <boily> Tanelle.
11:19:56 -!- andrew_ has joined.
11:21:18 -!- boily has quit (Quit: ADVANCED CHICKEN).
11:30:50 -!- bender| has joined.
12:09:14 -!- andrew_ has quit (Remote host closed the connection).
12:13:08 -!- spiette has joined.
12:50:59 -!- jaboja has joined.
13:35:02 -!- impomatic_ has joined.
13:54:24 -!- hppavilion[2] has joined.
14:01:02 -!- earendel has quit (Ping timeout: 248 seconds).
14:02:17 -!- hppavilion[2] has quit (Ping timeout: 268 seconds).
14:06:41 -!- earendel has joined.
14:10:38 -!- jaboja has quit (Ping timeout: 248 seconds).
14:48:58 -!- AnotherTest has quit (Ping timeout: 244 seconds).
14:57:33 -!- Lord_of_Life has quit (Excess Flood).
15:01:37 -!- Lord_of_Life has joined.
15:09:12 -!- mroman has quit (Quit: Lost terminal).
15:12:47 -!- lambda-11235 has joined.
15:33:08 -!- XorSwap has joined.
15:41:34 -!- J_Arcane has quit (Ping timeout: 268 seconds).
15:45:03 -!- jaboja has joined.
15:45:30 -!- adu has joined.
15:50:13 -!- p34k has joined.
15:51:37 -!- bender| has quit (Ping timeout: 240 seconds).
15:54:34 -!- munekita has joined.
15:56:23 -!- munekita has quit (Remote host closed the connection).
16:32:18 -!- XorSwap has quit (Quit: Leaving).
16:41:35 -!- adu has quit (Quit: adu).
16:44:51 -!- earendel has quit (Ping timeout: 248 seconds).
16:56:48 -!- jaboja has quit (Ping timeout: 276 seconds).
17:08:30 -!- jaboja has joined.
17:20:48 -!- AnotherTest has joined.
17:34:05 -!- lynn has joined.
17:35:36 -!- FreeFull has quit (Quit: rebooting).
17:41:55 -!- FreeFull has joined.
17:57:03 -!- hppavilion[2] has joined.
18:17:49 -!- adu has joined.
18:26:49 -!- earendel has joined.
18:37:07 -!- mihow has joined.
19:13:14 <prooftechnique> Hellall
19:19:39 -!- lambda-11235 has quit (Quit: Bye).
19:20:16 <hppavilion[2]> Hm...
19:20:18 <hppavilion[2]> prooftechnique: Hi
19:20:23 <hppavilion[2]> adu: HI!
19:20:27 <hppavilion[2]> adu: YOU'RE HERE!
19:20:33 <hppavilion[2]> adu: AS OPPOSED TO BEING DEAD!
19:20:34 <hppavilion[2]> YAY!
19:20:37 <asie> YAY!
19:20:39 <asie> wait
19:20:42 <asie> what?
19:20:51 <hppavilion[2]> asie: Oooh, are you new?
19:20:59 <asie> no
19:21:02 <hppavilion[2]> Oh
19:21:06 <asie> i'm actually old, just stopped coming here for a few years
19:21:09 <asie> with brief interruptions
19:21:12 <asie> in which i did visit
19:21:13 <hppavilion[2]> asie: adu just hasn't been online when I was recently
19:21:15 <asie> but now i'm sticking around
19:21:19 <hppavilion[2]> Yay!
19:21:26 <hppavilion[2]> asie: Have you ever played Nomic?
19:21:31 <asie> Yes.
19:21:32 <asie> I love Nomic!
19:21:34 <asie> I ran a Nomic on Reddit once
19:21:40 <asie> good times
19:21:49 <hppavilion[2]> asie: Yay! I'm trying to start one over Github and just need one more player :)
19:21:52 <hppavilion[2]> https://github.com/hppavilion1/github-lambdanomic
19:21:56 <asie> Wait
19:21:58 <asie> With issues and pull requests?
19:22:11 <asie> :|
19:23:56 <prooftechnique> I'm so thrilled that I'm not dead
19:24:01 <hppavilion[2]> asie: Yeah, basically
19:24:07 <hppavilion[2]> asie: It's the best idea I had
19:24:21 <prooftechnique> We wshould really have a `rewelcome
19:24:37 <hppavilion[2]> asie: GitHub is an OK platform for it, for one particular reason: Branches
19:25:07 <prooftechnique> What do branches buy us?
19:25:52 <hppavilion[2]> prooftechnique: The ability to fork off games
19:25:59 <hppavilion[2]> (Not to be confused with actual forking)
19:26:08 <hppavilion[2]> (Not to be confused with fucking of any sort)
19:26:13 <hppavilion[2]> (xD)
19:27:44 <hppavilion[2]> asie: Is there a problem with doing it that way? Rule proposals are done via issues, not pull requests, mind you
19:28:07 <asie> GitHub does not have the best of interfaces
19:28:21 <hppavilion[2]> asie: It has a decent interface and hosts everything for me.
19:28:42 <hppavilion[2]> asie: And you use issues to propose rules, not pull requests, because that would be /pretty/ stupid
19:28:49 <hppavilion[2]> asie: Feel like playing at all?
19:28:53 <asie> Not sure.
19:28:58 <asie> I might just pop in on a random day
19:29:08 <hppavilion[2]> OK
19:29:19 <hppavilion[2]> asie: I need one more player to make it work xD
19:29:28 <asie> You don't xD
19:29:34 <hppavilion[2]> Because there are 3, and I want 4 players minimum (1 proposes a rule, 3 to vote)
19:29:41 <asie> Just add time
19:29:48 <hppavilion[2]> asie: ?
19:31:17 <hppavilion[2]> asie: Also, the game hasn't started yet, but the initial ruleset is complete, so I can't add time :P
19:31:35 <asie> Yes you can
19:31:40 <hppavilion[2]> asie: How?
19:31:45 <asie> You've just added 1.5 minutes of time between your last posts.
19:31:49 <asie> as in, on IRC
19:31:55 <asie> If you wait longer, you add more time.
19:32:00 <hppavilion[2]> xD
19:32:04 <asie> No xD.
19:32:06 <asie> Time is serious business.
19:32:23 <prooftechnique> I was thinking about a nomic based on Juno. The hard part is figuring out what sort of messages constitute a nomic
19:32:38 <hppavilion[2]> asie: Also, one of the existing players failed to follow the repo, and isn't showing up on IRC, so they won't get a memo when the game updates
19:32:44 <hppavilion[2]> Or when they have to vote
19:32:45 <hppavilion[2]> :/
19:33:04 <hppavilion[2]> adu: Are you AFK?
19:33:36 <hppavilion[2]> earendel: Hi
19:34:03 <hppavilion[2]> (wait, I think I confused earendel with Elronnd)
19:34:36 <earendel> hello anyway
19:34:42 <hppavilion[2]> earendel: Yep, same to you
19:34:57 <hppavilion[2]> earendel: You wouldn't happen to be a Nomic player, would you?
19:35:08 <earendel> nope, sry.
19:35:12 <hppavilion[2]> OK :/
19:35:50 <prooftechnique> `? elrond
19:36:12 <HackEgo> Elrond is a rogue program originally created to police the Matrix, eventually gaining increased individuality and becoming a threat to the Machines themselves.
19:36:58 <hppavilion[2]> prooftechnique: You're part of gh λ-n, right? Do you know of anyone who would like to join so we can have enough people?
19:38:45 <int-e> `wisdom
19:38:52 <HackEgo> 4chan/4chan is twice as loud as stereo.
19:44:31 -!- lleu has quit (Read error: Connection reset by peer).
19:49:53 <prooftechnique> hppavilion[2]:I'm part of a what?
19:50:15 <hppavilion[2]> prooftechnique: The Nomic I'm doing over GitHub. I think you joined, didn't you?
19:50:21 <prooftechnique> Oh. Yes
19:50:26 <prooftechnique> I didn't know that's what it was called
20:16:44 <HackEgo> [wiki] [[Special:Log/newusers]] create * Rjhunjhunwala * New user account
20:29:36 <adu> hppavilion[2]: hi
20:29:40 <adu> hppavilion[2]: I was afk
20:29:49 <hppavilion[2]> adu: Ah
20:30:03 <adu> hppavilion[2]: but not I am AK
20:30:09 <adu> = at keyboard
20:30:15 <hppavilion[2]> OK
20:30:29 <adu> s/not/now/
20:30:51 <hppavilion[2]> adu: I'm attempting to write a compiler
20:31:09 <adu> hppavilion[2]: good news
20:31:32 <hppavilion[2]> adu: I've got a thing that outputs ASM given the manual AST for an arithmetic expression (only using signed 64-bit integers)
20:31:37 <hppavilion[2]> And I have a typechecker
20:31:49 <hppavilion[2]> Of course, it doesn't output the /right/ ASM yet, but oh well
20:31:54 <adu> lol
20:35:33 -!- p34k has quit.
20:38:00 <HackEgo> [wiki] [[S.I.L.O.S]] N https://esolangs.org/w/index.php?oldid=46608 * Rjhunjhunwala * (+1922) Created page with "= S.I.L.O.S = == Summary == S.I.L.O.S language of the future "All of the challenge of assembly all of the slowness of the jvm" A minimalist language which strives to be Turing..."
20:44:50 -!- Phantom_Hoover has joined.
20:45:51 <myname> the initial sentence got me hooked up
20:58:54 -!- adu has quit (Ping timeout: 244 seconds).
21:17:58 -!- ais523 has joined.
21:21:12 -!- adu has joined.
21:21:36 <hppavilion[2]> hais523
21:21:45 <ais523> hi
21:21:50 <hppavilion[2]> adu: Did I ask you if you wanted to play lambda-nomic yet?
21:22:02 <adu> hppavilion[2]: so is it a lisp compiler?
21:22:09 <adu> hppavilion[2]: I don't think so
21:22:17 <hppavilion[2]> adu: No, it's a C-ish language
21:22:25 <hppavilion[2]> adu: Do you want to play lambda-nomic? Over GitHub?
21:22:39 <adu> hppavilion[2]: so did you write your own assembler too?
21:22:55 <hppavilion[2]> adu: I'm writing an assembler that will convert to another assembler and become x86
21:23:06 <adu> ah
21:23:15 <hppavilion[2]> I did so because I can't be bothered to learn x86 yet
21:23:21 <hppavilion[2]> Currently, the assembler is interpreted though
21:23:34 <adu> hppavilion[2]: so it's a VM
21:24:04 <hppavilion[2]> adu: Currently, yes, but compiling the intermediate ASM to x86 ASM should be relatively trivial
21:24:25 <hppavilion[2]> If I design it right, that is
21:24:33 <adu> hppavilion[2]: I should try to make an MMIX JIT
21:24:48 <hppavilion[2]> The problem is getting the language to go into the intermediate ASM in the first place
21:25:12 <hppavilion[2]> I'm trying to make it calculate (3+(-9))*(-2) = 12, but it keeps spitting out 18 and I can't figure out why
21:25:23 <hppavilion[2]> adu: So do you want to play that nomic?
21:25:31 <adu> hppavilion[2]: what's a nomic?
21:25:46 <ais523> `? nomic
21:25:47 <hppavilion[2]> adu: It's a game of Nomic.
21:25:48 <ais523> we need an entry for this
21:25:56 <HackEgo> nomic? ¯\(°​_o)/¯
21:25:59 <hppavilion[2]> adu: Nomic is a game where you modify its own rules
21:26:00 <ais523> this is the second time I've seen that question asked this week
21:26:15 <hppavilion[2]> `le/rn Nomic is a game where you modify the rules of the game, at least at first
21:26:16 <HackEgo> No output.
21:26:17 <adu> nomic = ¯\(°[ZWSP])/¯
21:26:24 <hppavilion[2]> It's a joke, but it's actually accurate :)
21:26:47 <ais523> yes
21:26:50 <hppavilion[2]> (Not that funny of a joke, but a joke nonetheless)
21:26:57 <ais523> although few nomics remove the self-modification altogether
21:27:02 <adu> what kind of game is it?
21:27:05 <ais523> (and if they did, they would cease to be nomics and just be games)
21:27:06 <hppavilion[2]> ais523: For what purpose?
21:27:13 <ais523> nomic's kind-of game-complete
21:27:21 <ais523> in the same way that BF is Turing-complete
21:27:23 <hppavilion[2]> adu: Read rules.md at https://github.com/hppavilion1/github-lambdanomic
21:27:26 <ais523> given any game, a nomic can imitate that game
21:27:28 <hppavilion[2]> adu: That's one example of a nomic
21:27:44 <ais523> here: https://en.wikipedia.org/wiki/Nomic
21:27:44 <hppavilion[2]> ais523: Any computable game
21:28:02 <coppro> no, any game
21:28:36 <hppavilion[2]> coppro: "This rule is only valid if the current program halts: ..."
21:29:08 <ais523> hppavilion[2]: you can enact uncomputable rules in a Nomic just fine, you might just have problems enforcing them
21:29:15 <hppavilion[2]> ais523: Fair enough
21:29:17 <ais523> nomics actually raise a lot of philosophical problems about how games work
21:29:23 <ais523> because I often see people break rules intentionally
21:29:50 <ais523> and the most common view is that such rules breaches actually didn't happen, although some nomics add other methods of handling them
21:29:55 <hppavilion[2]> ais523: Oooh, a nomic rule where breaking the rules can, in some scenarios, have some benefit
21:29:59 <ais523> however, if you have a rule, and consequences for breaking it, is it even a rule any more?
21:30:08 <adu> ais523: like putting all the money in the center of the board instead of the bank in Monopoly
21:30:39 <coppro> hppavilion[2]: so?
21:30:48 <coppro> hppavilion[2]: if you had a game with that as a rule, then the nomic can imitate that game
21:31:24 <shachaf> ais523: The HTML 5 specification defines what valid documents are and also what to do in the case of invalid documents.
21:31:43 <ais523> shachaf: that's because it's two specs
21:31:47 <ais523> one for clients and the other for servers
21:32:02 <ais523> the spec for clients includes a description of what to do if connected to a non-compliant server
21:33:54 * adu <3 scholar.google.com
21:37:56 <hppavilion[2]> adu: So nomic?
21:39:54 <adu> hppavilion[2]: what about it?
21:40:31 <hppavilion[2]> adu: Would you like to join my game of nomic over GitHub?
21:40:45 <adu> hppavilion[2]: oh, no thanks
21:40:50 <hppavilion[2]> OK
21:40:54 <adu> I have very little time as is
21:41:47 <adu> hppavilion[2]: I must admit it's utility as a microcosm of the U.S. legal system is interesting
21:42:22 <adu> "a remarkably complete microcosm of a functional legal system"
21:43:05 -!- Lord_of_Life has quit (Excess Flood).
21:45:07 -!- Lord_of_Life has joined.
21:45:19 <adu> hppavilion[2]: have you been playing?
21:45:48 <hppavilion[2]> adu: No, I've been trying to get enough players to start :P
21:46:03 <adu> hppavilion[2]: I see 3 in the players ifle
21:46:05 <hppavilion[2]> I need at least 4 and I have 3, though one didn't follow the repo and as such won't get the memo when we start
21:46:36 <hppavilion[2]> 4 because one person proposes a rule, and 3 is pretty much the bare minimum number of voters for a working game
21:47:08 <adu> hppavilion[2]: I'd like to see a game on a shelf in 5 years with a big sticker that says "started as a nomic"
21:47:36 <hppavilion[2]> adu: Would lol, but can't
21:47:57 <adu> hppavilion[2]: why can't lol?
21:48:13 <hppavilion[2]> adu: I don't lol
21:48:20 <adu> ah
21:48:26 <adu> regilious reasons?
21:48:37 <adu> hppavilion[2]: are you a grumpy person?
21:49:31 <hppavilion[2]> adu: No
21:49:47 <hppavilion[2]> adu: I just got overexposed to comedy and developed a tolerance to funny things :P
21:49:56 <hppavilion[2]> I still find them funny, but I don't reflexively laugh
21:50:13 -!- AnotherTest has quit (Quit: ZNC - http://znc.in).
21:50:28 <adu> hppavilion[2]: oh no, 4chan has immunized you to humor
21:51:08 <hppavilion[2]> adu: Not 4chan
21:51:17 <adu> the internet?
21:51:32 <adu> cat pics?
21:51:48 <adu> The Daily Show?
21:51:53 -!- Lord_of_Life has quit (Changing host).
21:51:54 -!- Lord_of_Life has joined.
21:51:54 -!- Lord_of_Life has quit (Changing host).
21:51:54 -!- Lord_of_Life has joined.
21:55:05 <adu> hppavilion[2]: I genuinly hope you get your humor back, it's a vital life skill
21:55:36 <hppavilion[2]> adu: I don't lack humor, I just don't laugh out loud at funny things
21:56:18 <adu> well, neither do I but I still say "lol" when the corner of my mouth starts to smile
21:57:03 -!- J_Arcane has joined.
21:57:47 <adu> maybe we should make our own acronym for silent LOLs, like "Silent & Merry" or S&M for short
21:58:07 <myname> https://youtu.be/zMLE7a3faI4 i like the game
22:03:21 -!- boily has joined.
22:11:39 <boily> `wisdom
22:11:45 <HackEgo> holy water/Holy water is water made by boiling the hell out of Spain.
22:14:35 -!- Alcest has joined.
22:16:55 <olsner> where boiling = applying boily
22:17:25 * boily thwacks olsner
22:17:32 <b_jonas> fungot, are you boiling?
22:17:33 <fungot> b_jonas: i'm using some cvs version of plt bindings for fuse, if anyone here actually read on lisp by graham as an intro to programming and problem solving. and a bad one
22:17:36 <boily> hellolsner. you scored 0.9 shachafs for that.
22:17:42 <olsner> :D
22:21:22 <hppavilion[2]> boily: What's shachaf's average shachaf score?
22:21:35 <hppavilion[2]> boily: Also, what's the Cosmic Background Shachafery's level?
22:22:06 <olsner> what's the banana equivalent shachaf dose?
22:23:25 <boily> b_jellonas, hppavellon[2].
22:23:35 <boily> hellochaf. are you bananas?
22:23:53 <shachaf> ask fungot
22:23:53 <fungot> shachaf: good gracious i leave for two or three words ( and trap to gc if it exceeds 8 when leaving the page, but it
22:24:00 <b_jonas> `? banana
22:24:03 <HackEgo> banana? ¯\(°​_o)/¯
22:24:18 <hppavilion[2]> `le/rn banana/nananananananananananananananana.
22:24:20 <olsner> `? pineapple
22:24:23 <HackEgo> Learned «banana»
22:24:24 <HackEgo> Pineapple is a hybrid species descended from a cultivar of spinach and wild ivy, making it a class 6 vegetable.
22:24:44 <olsner> if not bananas, I think he might be ananas
22:25:06 <boily> `culprits wisdom/pineapple
22:25:09 <HackEgo> shachaf shachaf oerjan elliott boily olsner
22:41:44 -!- nooga has joined.
22:42:46 <nooga> :D
22:43:39 <nooga> boily: and here I am
22:44:19 <boily> nhellooga!
22:44:50 <boily> at last! one of my random @tells worked! ha ha ha. mwah ah ah ah ah. MWAAH AH AH AH AH!!!
22:44:58 <nooga> bhellooily
22:45:06 <shachaf> whoa whoa whoa
22:45:08 <shachaf> `? nooga
22:45:09 <HackEgo> no.
22:45:13 <nooga> wat
22:45:15 <shachaf> noooooooooooooga is the correct spelling
22:45:24 -!- carado has quit (Remote host closed the connection).
22:45:48 <nooga> sure, I'll respond to noo+ga
22:47:20 <olsner> `? noooooooooooooga
22:47:21 <HackEgo> noooooooooooooga? ¯\(°​_o)/¯
22:48:30 <shachaf> nooga: Do you mean /no(o+ga)?/?
22:49:01 <Phantom_Hoover> ah christ
22:49:03 <nooga> uh
22:49:08 <Phantom_Hoover> nooga is different to nooodl then??
22:49:08 <nooga> yes, you got me
22:49:30 <boily> Phantom_Helloover. they are different entities.
22:49:45 <boily> hellynn!
22:49:48 <nooga> cough cough
22:50:29 <nooga> are there any new, interesting bf derivatives?
22:51:03 <boily> new, interesting, derivative: pick two.
22:52:01 <nooga> bf derivative, interesting: pick one?
22:52:59 <nooga> :>
22:53:22 <Phantom_Hoover> wait who's nooga then
22:53:24 <Phantom_Hoover> polish?
22:53:26 <Phantom_Hoover> friends with asie?
22:53:40 <nooga> oh, have you seen him lately?
22:54:23 <hppavilion[2]> nooga: He was on just a little bit ago
22:54:31 <shachaf> is nooga a kind of nougat?
22:54:34 <hppavilion[2]> In fact
22:54:40 <hppavilion[2]> asie: Someone's looking for you
22:55:21 <nooga> shachaf: nougat theme was raised 2 or 3 years ago IIRC
22:55:30 <hppavilion[2]> Ugh, can't get my compiler to compile
22:55:34 <hppavilion[2]> Because I'm an idiot
22:55:44 <hppavilion[2]> What I'm trying to do should be simple
22:56:01 <hppavilion[2]> I want -(-x) to compile into the proper ASM
22:56:06 <hppavilion[2]> Without optimization
22:56:12 <hppavilion[2]> So it should spit out x
22:56:17 <nooga> Phantom_Hoover: yup, Polish but I'm not friends with asie, never had a chance to meet him ;P
22:56:47 <Phantom_Hoover> yes the second is a nooodl-property, you have obviously become a hybrid individual in my mind
22:57:18 <hppavilion[2]> Phantom_Hoover: Sort of like \oren\ and oerjan for me in my first few weeks?
22:57:45 <Phantom_Hoover> well that's a really weird hybrid
22:57:56 <hppavilion[2]> Phantom_Hoover: o..r..n
22:58:07 <nooga> Phantom_Hoover: I've been idling here since 2005 I think
22:58:09 <hppavilion[2]> oerjan and oren both fit the pattern
22:58:16 <hppavilion[2]> o.*r.*n
22:58:17 <nooga> but then forgot to run irssi one day
22:59:52 <Phantom_Hoover> no i mean as the notional person
23:00:12 <hppavilion[2]> Ah
23:00:28 <hppavilion[2]> .* <-- most useless regex ever
23:00:41 <hppavilion[2]> "I want... well, just give me whatever. I don't give a shit"
23:02:32 <boily> oerjan and int-e are two resonance structures for the same molecule.
23:02:41 <nooga> "[^"]*" ;d
23:03:40 <shachaf> nooga: hellooga
23:04:11 <nooga> shachaf: forgot an n
23:04:19 <shachaf> Did I?
23:04:36 <shachaf> `culprits wisdom/nooga
23:04:44 <HackEgo> oerjan elliott nooga Bike FreeFull elliott Sgeo olsner oerjan FreeFull shachaf shachaf nitia
23:04:50 <hppavilion[2]> shachaf: Do you know anything about compilation?
23:04:57 <shachaf> I know a few things.
23:05:27 <shachaf> (Whether any of them are about compilation is confidential.)
23:05:52 <hppavilion[2]> shachaf: What should I compile -<x> (negation) to?
23:06:04 <hppavilion[2]> Allowing compilation to be recursive?
23:06:11 <hppavilion[2]> Assuming I have to use SUB or RSUB
23:07:32 <myname> NEG
23:07:44 <boily> mynamello. SYN SYN ENQ.
23:07:46 <nooga> hppavilion[2]: the easiest way is to write an interpreter and write a program that traces its execution and dumps the trace as the compiled form
23:08:07 <nooga> of interpreter's input
23:09:51 <hppavilion[2]> nooga: That sounds like a joke
23:09:59 <hppavilion[2]> nooga: So I'm just going to ignore it
23:10:07 <nooga> as you wish
23:10:08 <hppavilion[2]> myname: I'm using SUB and RSUB
23:10:12 <nooga> but then check out pypy
23:11:57 <shachaf> hppavilion[2]: What do you compile anything to?
23:13:58 <hppavilion[2]> shachaf: ?
23:14:13 <hppavilion[2]> shachaf: Ah, to ASM
23:14:17 <hppavilion[2]> A generic ASM
23:14:36 <hppavilion[2]> Inspired, of all places, by TIS-100 (without the parallellity)
23:15:06 <nooga> ew
23:15:34 <hppavilion[2]> nooga: What?
23:15:35 <myname> -x is always 0-x
23:15:37 <shachaf> I'm not sure what the question is.
23:15:42 <hppavilion[2]> myname: Yes...
23:15:48 * hppavilion[2] thinks
23:15:53 * hppavilion[2] is probably an idiot
23:16:01 <nooga> myname: how do you compile y-x ?
23:16:11 <myname> sub y,x
23:16:14 * hppavilion[2] may have left out crucial details that hppavilion[1] forgot were the core of the issue
23:16:24 <nooga> substitute y for 0 ?
23:16:24 <shachaf> yes
23:16:36 <hppavilion[2]> myname: SUB is unary and is basically "decrement the accumulator by n"
23:16:38 <nooga> tadaaa
23:17:29 <myname> mov akk, 0
23:17:31 <nooga> what if the argument is < 0 ?
23:17:32 <myname> sub x
23:18:25 <myname> (still 0-x)
23:18:27 <shachaf> Just disallow negation.
23:18:28 <hppavilion[2]> myname: And... hm... this seems 1000000 times easier, but every time I go back it becomes difficult
23:18:34 <hppavilion[2]> shachaf: Solution!
23:18:51 <hppavilion[2]> Problem: P xed, and I do not want people to x
23:18:52 <myname> "go back"?
23:18:59 <nooga> myname: I was asking hppavilion[2]
23:19:01 <hppavilion[2]> Solution: THOU SHALT NOT x
23:19:20 <nooga> myname: about his architecture limitations ;d
23:19:34 <nooga> hppavilion[2]: what would SUB -10 do ?
23:19:37 <myname> nnnso?
23:19:41 <hppavilion[2]> I think I know my problem
23:19:47 <hppavilion[2]> nooga: add 10, most likely
23:19:56 <shachaf> Your problem is that you don't know the target architecture.
23:20:03 <nooga> then: LD 0; SUB x ?
23:20:05 <hppavilion[2]> shachaf: That too
23:20:13 <hppavilion[2]> shachaf: Which is odd, given that I made it
23:21:51 <hppavilion[2]> THERE we go
23:23:16 <nooga> next time design an OISC
23:23:28 <hppavilion[2]> nooga: No
23:23:49 <nooga> why, they're awesome, TTAs and stuff
23:25:11 -!- lambda-11235 has joined.
23:25:16 <nooga> I've once made a TTA computer from 74 chips on a huge breadboard
23:25:33 <nooga> and then lost the breadboard, which was the most expensive part of that precious rig
23:29:59 <hppavilion[2]> YES
23:30:00 <hppavilion[2]> IT WORKS
23:30:17 * hppavilion[2] happily claps to himself
23:32:35 -!- lambda-11235 has quit (Quit: Bye).
23:32:48 -!- adu has quit (Quit: adu).
23:32:54 -!- lambda-11235 has joined.
23:33:03 -!- lambda-11235 has quit (Client Quit).
23:34:10 <hppavilion[2]> myname: I got it working
23:34:12 <hppavilion[2]> :)
23:34:20 <hppavilion[2]> I just had to rewrite the compilation from scratch
23:34:43 -!- lambda-11235 has joined.
23:35:53 <hppavilion[2]> lambda-11235: Hi!
23:39:26 <olsner> I came up with a great use for ubsan to implement a weak version UB-C the other day - UB-C is a C dialect where you can only use undefined behavior, but the weaker version might only e.g. require that each statement invoke UB or that each function must UB before returning
23:39:43 <olsner> so if you implement the ubsan error callbacks so they just set a flag, you could have other instrumented code (profiling instrumentation perhaps?) check the flag to ensure that some UB has been triggered and abort if it hasn't
23:40:08 <boily> Nasal Demon C.
23:40:15 -!- oerjan has joined.
23:40:21 <olsner> yeah, I might call it Nasal Demon Tribute
23:44:27 <oerjan> someone's impression of american voters http://heltnormalt.no/truthfacts
23:46:09 * oerjan wonders who makes that comic anyway...
23:47:45 <oerjan> oh it's wulff & morgenthaler
23:50:27 <hppavilion[2]> oerjan: Translation?
23:50:41 <oerjan> all the comics on that site have norwegian text but often the translators slip up just enough to see that many of them are translated from danish.
23:51:09 <oerjan> hppavilion[2]: "american voters" "idiot" "idiot with a weapon"
23:51:19 <hppavilion[2]> Ah
23:51:49 <oerjan> hppavilion[2]: YOU ARE NOT HELPING THEIR CASE
23:52:01 <hppavilion[2]> oerjan: HOW SO
23:52:38 <oerjan> i thought i'd said enough that the meaning would be obvious.
23:52:41 <hppavilion[2]> Ah
23:53:32 <lambda-11235> hppavilion[2]: Hello.
23:56:15 <\oren\> AAAAAAAAAAAAA
23:56:27 <boily> he\\oren\. AAAAAAAAAAAAA?
23:56:53 <\oren\> I just typed in my work password to my home compuer eight-ten times before I realized.
23:57:06 <boily> ah, so your password is AAAAAAAAAAAAA?
23:57:13 <\oren\> I got really frustrated with my own stupidity
23:57:42 <\oren\> no, it's a digimon and some random number
23:57:58 <\oren\> much like a 14 year old's yahoo email
23:58:16 <oerjan> maybe the universe is running out of intelligence flux, it would explain so much
23:58:50 <boily> hellœrjan. you're saying intelligence flows, much like telluric currents?
23:59:18 <\oren\> I think I
23:59:28 <oerjan> boiclearly.
23:59:31 <\oren\> will add maybe 5 to 10 more mods
2016-03-18
00:03:25 -!- nooga has quit (Read error: Connection reset by peer).
00:03:39 -!- nooga has joined.
00:03:46 <oerjan> <boily> fungot: we say «C't'une fois George Bush...» as a lead on for a stupid joke. <-- is that quëbêcois for "once upon a time"
00:03:47 <fungot> oerjan: of course- secondary prague. i've been noodling around with yasos and rotty's implementation, i mean applications? stuff that interacts with current irc infrastructure. really what we should do
00:06:30 <\oren\> yes, it's always good to have redundant pragues for emergencies
00:07:46 <oerjan> you never know when you need an emergency czech-up
00:11:51 <\oren\> ok, time to see whther this time rockets will just suddenly explode
00:12:08 <\oren\> well, more than usual anyway
00:12:12 <oerjan> did i break boily
00:12:23 <Phantom_Hoover> oi augur
00:12:33 <Phantom_Hoover> can i use you as a spectrograph some more
00:12:50 <oerjan> @time boily
00:12:51 <lambdabot> Local time for boily is Thu, 17 Mar 2016 20:12:50 -0400
00:12:57 <\oren\> there should be a mod where I have to program my space probes in advance
00:14:02 <nooga> ha
00:15:52 <olsner> oerjan: if the universe runs out of intelligence flux, does that mean all intelligence will stay put where it is?
00:15:54 <\oren\> preferably it would only support fortran 60, BASIC, assembler, and COBOL
00:16:14 <\oren\> in other words, like real life
00:18:00 <nooga> :K
00:18:19 <oerjan> olsner: that also explains a lot.
00:18:46 <oerjan> \oren\: also ADA hth
00:18:59 <nooga> also lisp
00:24:58 <\oren\> Oh yeah ADA!
00:31:46 -!- hppavilion[2] has quit (Ping timeout: 244 seconds).
00:32:57 <boily> oerjan: o hai! I was watching reviews on Shut Up and Sit Down.
00:33:14 * boily mapoles y'all vile punsters
00:34:06 <boily> oerjan: it's a tortured, injokish version of «Une fois c't'un gars...»: “There was that one guy once...”
00:34:09 <oerjan> aha
00:34:47 <oerjan> c't = c'etais ?
00:34:54 <oerjan> *c't'
00:35:15 <oerjan> *t
00:35:48 <nooga> french :O
00:36:58 <boily> depending on context, c'était or c'est. it's up to you.
00:37:11 <\oren\> ugh
00:37:20 <boily> ugh is not valid French hth.
00:37:35 <\oren\> u;
00:37:37 <\oren\> u'
00:37:43 <\oren\> u'i'o
00:38:03 <boily> \oren\: are you on a Dvorak keyboard?
00:38:14 <\oren\> no
00:38:41 <\oren\> qwertyuiop[]\asdfghjkl;'zxcvbnm,./
00:39:44 <nooga> baoaoao
00:42:03 <boily> tsé veut dire, genre.
00:43:26 <boily> nooga: what's a baoaoao? a hawai'ian baobab? a Chinese bun with reverb?
00:44:03 <oerjan> an evil villain with a really thick accent
00:45:30 <shachaf> and a cold?
00:45:57 <boily> a war cry shouted when someone trips over a plate of lutefisk?
00:46:05 <oerjan> no, just really weird accent hth
00:46:25 <oerjan> boily: doesn't sound norse enough for that
00:46:46 <boily> I try to cover all possible bases.
00:47:08 <shachaf> Even in an infinite-dimensional vector space?
00:47:51 <oerjan> hm actually i don't know that the vikings had lutefisk
00:47:58 <boily> Hilbert space is quite useful for that kind of reasoning.
00:50:16 <nooga> ah herregud
00:50:17 <Phantom_Hoover> shachaf, depends on whether the unit ball is compact hth
00:50:39 <boily> what's the oldest recorded meal that is still continously consumed since its inception?
00:51:29 <nooga> venison steak?
00:51:30 <oerjan> hm apparently the history of lutefisk is not well-established
00:52:08 <oerjan> the "recorded" might be a problem.
00:52:21 -!- lynn has quit (Ping timeout: 246 seconds).
00:52:36 <Phantom_Hoover> boily, bread?
00:52:56 <oerjan> nooga: *å
00:56:29 <boily> Phantom_Hoover: probably.
00:56:35 <shachaf> i,i Exercises: (a) Is the unit disc compact? (b*) Is it recordable?
00:58:11 <boily> . o O ( there was no pun in that. stop seeing puns in every shachafutterance. )
00:58:37 <shachaf> What? Of course there was a pun.
00:58:39 <nooga> oerjan: uff da
00:59:34 <boily> oh. well, then...
00:59:55 * boily regularly mapoles shachaf
01:00:16 <shachaf> You can't mapole me!
01:00:29 <oerjan> shachaf: (a) of course (b) no, it's immutable. hth.
01:00:31 <boily> OKAY
01:01:11 <shachaf> You should mapole oerjan instead.
01:01:29 <oerjan> can't imagine why.
01:01:34 <shachaf> Just give me the mapole.
01:02:04 <oerjan> you'll just stab yourself with the corkscrew.
01:02:18 <oerjan> leave the mapole to licensed canadians.
01:02:48 <shachaf> a fool and his mapole are soon parted
01:03:40 * boily lends his mapole to shachaf “You have to speak the Québécois word for ‘friend‘ for it to operate properly”
01:03:51 <boily> wait!
01:03:57 -!- mihow has quit (Quit: mihow).
01:03:59 <boily> I'm not a fool :P
01:04:08 <shachaf> Can I get a service animal to help operate the mapole?
01:04:19 <shachaf> a mapooch, as it were
01:04:23 <oerjan> boily: [evidence inconclusive]
01:04:40 <boily> AAAAAAAAAAAARGH! and here I find myself unarmed!
01:04:53 * boily snatches oerjan's swatter and swings at shachaf --------###
01:04:58 <boily> @dice
01:04:58 <lambdabot> unexpected end of input: expecting number, "d" or "("
01:05:03 <boily> @dice 1d20
01:05:03 <lambdabot> boily: 13
01:05:09 <shachaf> d20
01:05:09 <lambdabot> shachaf: 15
01:05:16 * boily misses
01:05:18 <oerjan> boily: i assume you're counting on shachaf in no way whatsoever being able to guess or far less pronounce the québécois word for friend
01:05:18 <augur> Phantom_Hoover: hey, sup
01:05:35 <oerjan> also, that's not my swatter.
01:05:45 <boily> oh. hm. eh.
01:05:46 <shachaf> oerjan: I'm doing all this on my phone, so that's a fair guess.
01:05:52 * boily puts back that swatter where he found it.
01:06:05 <shachaf> That swatter is obviously counterfeit.
01:06:33 -!- jaboja has quit (Ping timeout: 240 seconds).
01:06:41 * oerjan guesses that the word is "m'"
01:06:53 <oerjan> wait, "'m'"
01:07:13 * shachaf swats boily for swatter forgery -----###
01:07:17 <boily> ow.
01:07:33 <Phantom_Hoover> augur, here's me saying 'boat' https://clyp.it/tsd1t5wf
01:07:41 <Phantom_Hoover> is the vowel a diphthong?
01:07:41 -!- mihow has joined.
01:07:46 <boily> oerjan: nope.
01:08:36 <augur> Phantom_Hoover: yes, sounds like a pretty standard /oʊ/ diphthong
01:08:53 <oerjan> "êm'"?
01:09:15 <Phantom_Hoover> augur, man that one really fucks with me
01:09:24 <augur> why?
01:09:25 <boily> https://clyp.it/yzae35cb ← that website is fun :D
01:09:47 <boily> oerjan: sorry, wrong root.
01:09:55 <Phantom_Hoover> i just can't hear a transition in it
01:10:09 <boily> oerjan: qc:chum.
01:10:19 <Phantom_Hoover> like the rp schwa-ʊ is really obvious to me but oʊ isn't
01:10:49 <oerjan> darn
01:11:22 <augur> Phantom_Hoover: its very subtle, since its a back-back diphthon
01:12:13 <augur> the height change is also pretty small. its not like /aɪ/ or /aʊ/ with big changes in both height and backness
01:12:26 <oerjan> (2+2d0)*(2+2)
01:12:42 <oerjan> @dice (2+2d0)*(2+2)
01:12:42 <lambdabot> unexpected "d": expecting digit, operator, "+", "-" or ")"
01:12:49 <oerjan> oh
01:12:56 <oerjan> (2+2d1)*(2+2)
01:12:56 <lambdabot> oerjan: (2 + (1+1)) * (2 + 2) => 16
01:13:05 -!- nooga has quit (Ping timeout: 250 seconds).
01:13:56 <oerjan> @dice (2+2d1)*(2+2)
01:13:56 <lambdabot> oerjan: (2 + (1+1)) * (2 + 2) => 16
01:14:56 <earendel> @dice 2d6
01:14:56 <lambdabot> earendel: 2+4 => 6
01:15:05 <Phantom_Hoover> augur, thanks for the explanation, as thanks have this incomprehensible scottish folk song i found on youtube: https://www.youtube.com/watch?v=BCkcYYQv3so
01:16:29 <lambda-11235> @dice 1d0
01:16:29 <lambdabot> unexpected 'd': expecting digit, operator or end of input
01:18:02 <augur> Phantom_Hoover: also keep in mind that there's a real continuum of diphthongness. the vowel space is more or less continuous, so you can have arbitrarily fine distinctions in the diphthongs
01:18:32 <oerjan> @dice 2d6 * 2d4
01:18:32 <lambdabot> oerjan: (6+3) * (4+4) => 72
01:18:33 <Phantom_Hoover> i wish we just had consonants
01:19:16 <Phantom_Hoover> consonants took me like a weekend with wikipedia and appendix E of lotr, it's been like 6 years and i still don't get vowels
01:19:41 <augur> Phantom_Hoover: if you just had consonants, you wouldnt have any speech! you gotta put stuff between them :)
01:19:47 <augur> also lots of consonants are continuous too :)
01:20:00 <augur> anything that isnt a stop is in a continuous domain
01:20:54 <augur> but if you're practicing using different vowels, pay less attention to the sound and more to the physical position of your articulators
01:23:44 <boily> `` grep -FIinrs fricative wisdom/*
01:23:56 <boily> or was it a quote?
01:24:01 <boily> `quote fricative
01:24:10 <HackEgo> 1093) <Koen_> nooodl: when my girlfriend asks me to give her uvular fricative I'm pretty sure that's not what she means
01:24:10 <HackEgo> No output.
01:26:34 <oerjan> <augur> Phantom_Hoover: if you just had consonants, you wouldnt have any speech! you gotta put stuff between them :) <-- PFFT!
01:26:45 <earendel> e = it, a = be .. ea = world (the words eru used to bring the world into existance) .. i also noticed all beautiful things have at least one "i" .. while all darker things have more "u"s
01:27:15 <augur> oerjan: some phonologists would say that has a very very short [ə] in there :)
01:28:04 <Phantom_Hoover> augur, the position of my articulators is my own business thank you very much!
01:28:07 <boily> . o O ( ghrhghrrrghghghhghhghhhhhrgh )
01:28:15 <augur> there's actually an old joke about richer, fancier phonological analysis, where a language that initially looks like Georgian, with its monstrous consonant clusters, is gradually found to have more and more abstract vowels until finally it turns out to have CV syllables like hawaiian
01:29:35 <oerjan> maguriviguriviladoje
01:32:05 <boily> https://clyp.it/xxj4dt1p ?
01:35:43 <oerjan> boily: that was _after_ the georgian turned into hawaiian hth
01:35:55 <oerjan> now do the proper mgrvgrvladje hth
01:36:35 * oerjan sadly has never managed to find that word used for real instead of just as an example of how bad georgian gets
01:37:35 <oerjan> boily: also, you are clearly dropping the last vowel tdnh
01:38:16 <boily> https://clyp.it/tebfx3fd
01:38:26 <boily> there is no last vowel. it's an e. it's silent.
01:38:46 <oerjan> boily: that's not a language with CV syllables, then. pay attention.
01:39:37 <oerjan> boily: also, whenever that example is mentioned, it's supposed to have just 2 syllables, hth
01:39:43 <boily> aaaaaaaaaargh.
01:40:02 <boily> you're not helping there. I have to clear my sinuses between each clip.
01:40:04 <oerjan> (i'm not sure linguists agree)
01:40:06 * boily has a nasty cold going on
01:40:18 <oerjan> boily: ah.
01:40:19 <augur> oerjan: ive seen gvrtskpvnisk as an example before :)
01:40:34 <oerjan> ooh, 9 consonants
01:41:45 <boily> uploading... uuuploaadiiing ♪
01:42:15 <boily> https://clyp.it/ba0sqoz0
01:42:35 <oerjan> we need some arabic to euthanize boily's throat properly.
01:43:05 <boily> don't you dare.
01:43:59 <oerjan> also, i have no idea what you're saying in between the attempts
01:44:07 <boily> let me translate.
01:44:59 <boily> “Ok, good, we'll try with this one... *sigh* no, really, y'know... eeeeh... ok... where is it... where is it... ah, there it is!
01:45:30 <oerjan> sounds very sane to me tdh
01:45:43 <boily> [first attempt] [second attempt] [third attempt cut short] ah bastard... [fourth attempt]
01:45:58 <boily> no, really, ah, augur who just posted something...
01:47:20 <boily> I'v seen gvrtskpvn... fsck... ok, remain calm... gvrtskpvnisk gvrtskpvnisk... decidedly... *cough* sorry... gvrtskpvnisk”
01:47:47 <oerjan> very good. now take these pills...
01:50:13 <boily> not sure it's a good idea to accept random pills over the intarwebs.
01:51:31 <oerjan> i don't see why, i got them from a very nice nigerian farmacy
01:52:05 * boily rests his case
01:52:26 <boily> oh, any victim here who'd like to say fr:chirurgien?
01:52:56 <oerjan> uh... is the g soft?
01:53:14 <boily> it is.
01:53:43 <Phantom_Hoover> https://clyp.it/515sjmup
01:54:11 <boily> Phantom_Hoover: that's cheating!
01:54:34 <Phantom_Hoover> https://clyp.it/h0c0v0kh
01:54:50 <boily> quite good.
01:56:36 <oerjan> i think i won't. the computer seems to be opposing me again.
01:56:50 <ais523> hmm, apparently the first automatic error reporting system worked like this: the crashing program printed a memory dump to the screen; then an automated physical camera took a photograph of the screen
01:57:10 <ais523> and every day someone developed the photographs for that day and took them to the programmers
01:57:13 <boily> oerjan: noooooooo!
01:57:59 <boily> time for me to go drown my sorrows in extra strength trachea cleaning syrup.
01:58:13 -!- boily has quit (Quit: SMILING CHICKEN).
02:02:09 <oerjan> the flaw, as usual, is that the website does not let me click anywhere to just start talking.
02:03:38 <oerjan> now food ->
02:04:38 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
02:28:21 <oerjan> @tell boily https://clyp.it/lvcysxmx
02:28:21 <lambdabot> Consider it noted.
02:28:56 * oerjan hopes that log in nagging isn't obligatory
02:40:41 <oerjan> `? banana
02:40:44 <HackEgo> nananananananananananananananana.
02:42:59 <oerjan> `le/rn banana/Bananananananana BATMAN!
02:43:02 <HackEgo> Relearned «banana»
02:46:30 <oerjan> `cat bin/noodle
02:46:31 <HackEgo> cat: bin/noodle: No such file or directory
02:46:43 <oerjan> `` ls bin/noo*
02:46:44 <HackEgo> bin/nooodl:
02:46:54 <oerjan> `cat bin/nooodl
02:46:55 <HackEgo> cat: bin/nooodl: No such file or directory
02:47:01 <oerjan> `cat bin/nooodl:
02:47:03 <HackEgo> ​ELF............>.....@.....@.......b..........@.8..@.........@.......@.@.....@.@................................8......8@.....8@............................................@.......@.....W......W........ ............]......]`.....]`...........`........ ...........]......]`.....]`............................
02:47:08 <oerjan> wat
02:47:19 <oerjan> `cat bin/?
02:47:20 <HackEgo> ​#!/bin/bash \ topic=$(echo "$1" | lowercase | sed "s/noo\+dl/nooodl/;s/ *$//") \ topic1=$(echo "$topic" | sed "s/s$//") \ cd wisdom \ if [ \( "_$topic1"_ = "_ngevd"_ \) -a \( -e ngevd \) ]; \ then cat /dev/urandom; \ elif [ -e "$topic" ]; \ then cat "$topic" | rnooodl; \ elif [ -e "$topic1" ]; \ then cat "$topic1" | rnooodl;
02:47:51 <oerjan> `culprits bin/nooodl:
02:47:58 <HackEgo> tswett tswett oerjan elliott nooodl
02:48:08 <oerjan> `url bin/nooodl:
02:48:11 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/file/tip/bin/nooodl%3A
02:49:01 <zzo38> In Magic: the Gathering will you ever have to use Donate on Copper Tablet in order to affect APNAP order of ability on stack?
02:49:06 <oerjan> `` ls -l bin/nooodl:
02:49:07 <HackEgo> lrwxrwxrwx 1 5000 0 9 Dec 9 04:12 bin/nooodl: -> /bin/echo
02:49:18 <oerjan> ah.
03:06:15 -!- ais523 has quit (Read error: Connection reset by peer).
03:06:43 -!- ais523 has joined.
03:18:25 -!- XorSwap has joined.
03:44:38 -!- lleu has joined.
03:54:49 -!- XorSwap has quit (Ping timeout: 244 seconds).
03:56:19 -!- ais523 has quit (Ping timeout: 248 seconds).
03:58:52 -!- Elronnd has left.
04:00:30 -!- XorSwap has joined.
04:00:43 -!- XorSwap has quit (Read error: Connection reset by peer).
04:07:09 <zzo38> `danddreclist 76
04:07:10 <HackEgo> danddreclist 76: shachaf nooodl boily \ http://zzo38computer.org/dnd/recording/level20.tex
04:07:16 -!- Elronnd has joined.
04:07:30 <shachaf> zzo38: How can I read ifmud logs without connecting or making an account?
04:07:49 <zzo38> shachaf: As far as I know, you cannot.
04:08:22 <zzo38> It is necessary to connect to the MUD in order to read anything, although some information about players can be accessed from the webpage.
04:08:51 <shachaf> `cat bin/`
04:08:51 <HackEgo> ​#!/bin/bash \ TIMEFORMAT="real: %lR, user: %lU, sys: %lS" \ shopt -s extglob globstar \ eval -- "$1"
04:09:51 <zzo38> Other one can be
04:09:55 <zzo38> `cat bin/``
04:09:55 <HackEgo> ​#!/bin/sh \ export LANG=C; exec bash -O extglob -c "$@"
04:10:08 <shachaf> `` sed -i '4s/$/ | rnooodl/' 'bin/`'
04:10:11 <HackEgo> No output.
04:10:39 <shachaf> `` sed -i '2s/$/ | rnooodl/' 'bin/``'
04:10:40 <HackEgo> No output.
04:16:06 * oerjan feels conflicted
04:16:10 <HackEgo> [wiki] [[Deadfish]] https://esolangs.org/w/index.php?diff=46609&oldid=46457 * Albedo * (+1667) /* Julia */ Julia language interpreter added
04:16:42 <zzo38> Why do you hate Xaw?
04:21:53 -!- MoALTz_ has joined.
04:25:37 -!- MoALTz has quit (Ping timeout: 268 seconds).
04:28:04 -!- treaki__ has joined.
04:32:22 -!- treaki_ has quit (Ping timeout: 260 seconds).
04:51:02 -!- MDude has joined.
04:57:00 -!- paul2520_ has quit (Ping timeout: 276 seconds).
04:57:39 -!- coppro has quit (Ping timeout: 276 seconds).
05:03:53 -!- coppro has joined.
05:07:26 -!- nitrix has quit (Read error: Connection timed out).
05:13:29 -!- Guest92480 has joined.
05:19:50 <HackEgo> [wiki] [[Deadfish]] M https://esolangs.org/w/index.php?diff=46610&oldid=46609 * Albedo * (+32) /* Julia */
05:20:23 -!- lleu has quit (Read error: Connection reset by peer).
05:23:16 -!- paul2520_ has joined.
05:24:17 <Lymia> [lymia@chino ~]$ file ext4-test.iso
05:24:17 <Lymia> ext4-test.iso: Linux rev 1.0 ext4 filesystem data, UUID=5b006110-6427-4300-9ba3-e399deaca23f (extents) (large files) (huge files)
05:24:25 <Lymia> Let's see how this goes.
05:24:34 <Lymia> This is probably a terrible idea.
05:30:41 <\oren\> how terrible?
05:34:15 -!- adu has joined.
05:38:51 -!- adu has quit (Ping timeout: 264 seconds).
05:39:50 <\oren\> on a scale of eating a spoonful of cinnamon powder to solar highways
05:40:06 <\oren\> *roadways
05:41:05 <Lymia> wtf
05:41:18 <Lymia> Linux is willing to touch an EXT4 formatted CD.
05:41:19 <Lymia> Not only that.
05:41:22 <Lymia> But since it's a BD-RE disk.
05:41:37 <Lymia> It's willing to mount it read/write as an EXT4 formatted disk.
05:41:45 <Lymia> and it works
05:42:21 <zzo38> I didn't know that.
05:42:55 <Lymia> I'm going to type in a command I really shouldn't
05:46:00 <Lymia> $ mkfs.exfat -n "WHY" /dev/cdrom
05:46:05 <Lymia> Let's see what Windows thinks now
05:52:26 <zzo38> Maybe I should need to write my own window manager in order to avoid some of the problems that i3 has; I am not sure?
05:55:19 <shachaf> `` rgrep nooodl wisdom
05:55:47 <Lymia> Windows refuses to even acknowledge that the BD-RE is formatted with anything.
05:55:50 <HackEgo> wisdom/noooodl:nooooodl is the correct spelling \ wisdom/pho:Phở is a Vietnamese soup invented by noooooooodl to stress-test implementations of Unicode combining characters.
05:55:52 <Lymia> It would prefer to pretend it's blank.
05:59:49 <oerjan> `cat bin/rnooodl
05:59:49 <HackEgo> perl -pe 's/([Nn])ooodl/"$1@{[o x(3+rand 7)]}dl"/ge'
05:59:55 <oerjan> er...
06:00:02 <oerjan> no, wait, that's fine
06:00:17 <oerjan> `? noodle
06:00:19 <HackEgo> Nooooooodles are the invention of the Chinese. They were brought to Europe by Marco Polo, a distant ancestor of Taneb.
06:01:09 <oerjan> oh wait that won't be affected
06:01:23 * oerjan still conflicted
06:01:44 <oerjan> `cat wisdom/noodle
06:01:45 <HackEgo> cat: wisdom/noodle: No such file or directory
06:01:57 <oerjan> now what.
06:02:08 <shachaf> `culprits wisdom/noodle
06:02:28 <HackEgo> No output.
06:02:30 <shachaf> your imagination hth
06:02:40 <oerjan> `cat bin/?
06:02:41 <HackEgo> ​#!/bin/bash \ topic=$(echo "$1" | lowercase | sed "s/noo\+dl/nooodl/;s/ *$//") \ topic1=$(echo "$topic" | sed "s/s$//") \ cd wisdom \ if [ \( "_$topic1"_ = "_ngevd"_ \) -a \( -e ngevd \) ]; \ then cat /dev/urandom; \ elif [ -e "$topic" ]; \ then cat "$topic" | rnooodl; \ elif [ -e "$topic1" ]; \ then cat "$topic1" | rnooodl;
06:02:44 -!- adu has joined.
06:02:51 <oerjan> hm right
06:02:59 <oerjan> `cat wisdom/nooodle
06:03:00 <HackEgo> Nooodles are the invention of the Chinese. They were brought to Europe by Marco Polo, a distant ancestor of Taneb.
06:03:21 <shachaf> `` cat wisdom/noooodl
06:03:22 <HackEgo> cat: wisdom/noooodl: No such file or directory
06:03:25 <shachaf> `` cat wisdom/nooodle
06:03:26 <HackEgo> Nooodles are the invention of the Chinese. They were brought to Europe by Marco Polo, a distant ancestor of Taneb.
06:03:32 <shachaf> `` cat wisdom/nooodle
06:03:33 <HackEgo> Noooodles are the invention of the Chinese. They were brought to Europe by Marco Polo, a distant ancestor of Taneb.
06:03:36 <oerjan> oh it's just because of capitalization
06:03:40 <shachaf> Ah, it was just bad luck.
06:33:10 -!- adu has quit (Quit: adu).
06:49:52 -!- lambda-11235 has quit (Quit: Bye).
07:27:50 <zzo38> Do you know how the --expose_debug_as stuff works in Node.js?
07:34:51 -!- earendel has quit (Ping timeout: 246 seconds).
07:40:32 -!- oerjan has quit (Quit: leaving).
07:58:31 -!- nooga has joined.
08:16:15 -!- earendel has joined.
08:16:33 <nooga> whois asie
08:16:40 <nooga> damn ;d
08:29:49 <asie> fail
08:54:18 -!- AnotherTest has joined.
08:56:32 -!- nooga has quit (Ping timeout: 244 seconds).
09:02:42 <HackEgo> [wiki] [[User:Rdebath]] https://esolangs.org/w/index.php?diff=46611&oldid=43713 * Rdebath * (+17358) /* Performance Matrix */
09:11:41 -!- lynn has joined.
09:12:44 <zzo38> Do you know if any old Magic: the Puzzling are incompatible with D'Angelo rules (without the puzzle explicitly specifying as such)?
09:20:09 <HackEgo> [wiki] [[User:Rdebath]] https://esolangs.org/w/index.php?diff=46612&oldid=46611 * Rdebath * (+84) /* Performance Matrix -- Add section titles
09:21:34 -!- nooga has joined.
09:27:45 <zzo38> Is there any common ancillary chunk for PNG that contains icons arranged in a grid?
09:38:17 -!- bender| has joined.
09:48:04 -!- J_Arcane has quit (Ping timeout: 240 seconds).
09:50:56 <zzo38> I could try to make up the format which may be called "grId" or "grID" (or standardized with "R" instead of "r" if they would accept it as a standardized extension), but I am not sure which way is better.
09:53:01 <zzo38> Data consist of the tile width, tile height, baseline position.
09:55:18 <b_jonas> zzo38: I don't know
09:55:37 <b_jonas> you'd have to look at other graphical games
09:56:29 <b_jonas> though I think most don't use a grid, but sprites (with rectangle boundaries and a hot point in it) arranged freely in an image
10:26:50 -!- lleu has joined.
10:26:53 <HackEgo> [wiki] [[Special:Log/newusers]] create * Victorm137 * New user account
10:34:49 -!- boily has joined.
10:37:21 <boily> @massages-loud
10:37:21 <lambdabot> oerjan said 8h 9m ago: https://clyp.it/lvcysxmx
10:37:52 <boily> @tell oerjan I heard you! :D
10:37:52 <lambdabot> Consider it noted.
10:43:25 <boily> after a day with strong winds and heavy rain, I woke up this morning and there's about half an inch of snow outside.
10:43:51 <boily> @metar CYUL
10:43:52 <lambdabot> CYUL 181029Z 01009KT 15SM FEW012 BKN070 M02/M05 A2970 RMK SF1AC7 SF TR SLP062
10:45:22 <boily> @metar ENVA
10:45:23 <lambdabot> ENVA 181020Z 30010KT 9999 VCSH FEW032 BKN055 03/M03 Q1022 TEMPO BKN014 RMK WIND 670FT 31016KT
10:54:51 -!- MoALTz_ has changed nick to MoALTz.
11:19:51 -!- AnotherTest has quit (Ping timeout: 276 seconds).
11:25:19 -!- boily has quit (Quit: REPUBLICAN CHICKEN).
11:53:58 <b_jonas> Is there a name for the OISC called http://www.tldp.org/HOWTO/Coffee-5.html ?
11:54:06 <b_jonas> s/called/described in/
11:56:19 <b_jonas> http://esolangs.org/wiki/MOISC isn't the same, but mentions it
12:08:41 -!- ais523 has joined.
12:08:58 -!- ais523 has quit (Client Quit).
12:12:23 <HackEgo> [wiki] [[SBN]] N https://esolangs.org/w/index.php?oldid=46613 * B jonas * (+353) Created page with "'''SBN''' (Subtract and Branch if Negative) is a single instruction low level language. It is described in Fotis Georgatos, "Coffee Making", [http://www.tldp.org/HOWTO/Coffee..."
12:25:50 -!- AnotherTest has joined.
12:39:06 -!- mroman has joined.
12:39:08 <mroman> fnord
13:09:00 <HackEgo> [wiki] [[S.I.L.O.S]] https://esolangs.org/w/index.php?diff=46614&oldid=46608 * Rjhunjhunwala * (+3446) added code samples
13:09:52 <HackEgo> [wiki] [[S.I.L.O.S]] https://esolangs.org/w/index.php?diff=46615&oldid=46614 * Rjhunjhunwala * (-3446) Undo revision 46614 by [[Special:Contributions/Rjhunjhunwala|Rjhunjhunwala]] ([[User talk:Rjhunjhunwala|talk]])
13:22:52 -!- p34k has joined.
13:23:57 -!- `^_^v has joined.
13:26:42 <HackEgo> [wiki] [[User:Conor O'Brien]] https://esolangs.org/w/index.php?diff=46616&oldid=45928 * Conor O'Brien * (+334) added lots of my languages
13:29:26 <HackEgo> [wiki] [[Y (programming language)]] N https://esolangs.org/w/index.php?oldid=46617 * Conor O'Brien * (+208) Created page with "**Y** is a programming language designed to be good with interacting with itself when tiled/chained. It has a stack-based memory model. One can find an interpreter [http://con..."
13:29:46 <HackEgo> [wiki] [[Y (programming language)]] M https://esolangs.org/w/index.php?diff=46618&oldid=46617 * Conor O'Brien * (+2) fix bold
13:36:19 <HackEgo> [wiki] [[Language list]] https://esolangs.org/w/index.php?diff=46619&oldid=46602 * B jonas * (+10) /* S */
14:00:03 -!- mroman has quit (Quit: Lost terminal).
14:41:28 -!- ais523 has joined.
14:43:16 -!- ais523 has quit (Excess Flood).
14:43:45 -!- ais523 has joined.
14:46:04 -!- Guest92480 has quit (Changing host).
14:46:04 -!- Guest92480 has joined.
14:48:58 -!- Guest92480 has changed nick to nitrix.
14:51:27 <b_jonas> ais523: for the ever-growing wishlist for scapegoat (version control), make sure all commands behaves sensibly if there are changes that (a) rename a file such that the new name refers to the old file on a case-insensitive file system, or (b) remove a directory but create a regular file with the same pathname or the reverse.
14:52:10 <ais523> b_jonas: well in scapegoat, the working directory is basically just a means of communicating with the repository
14:52:26 <ais523> the repository itself would have no problem with such things, the only difficulty would be reading and writing with the filesystem
14:57:41 <b_jonas> ais523: sure, for (a) you have to make sure the client commands work correctly, the repo isn't a problem
14:58:55 <b_jonas> ais523: for (b), not only that, but you could also have a bug without the working directory, when a command generates user-readable diffs between revisions.
14:59:22 -!- ais523 has quit.
14:59:29 <asie> :D
15:00:39 -!- ais523 has joined.
15:05:24 -!- hppavilion[2] has joined.
15:05:25 -!- callforjudgement has joined.
15:05:27 -!- hppavilion[2] has changed nick to hppavilion[1].
15:05:35 <hppavilion[1]> callforjudgement: Hi
15:06:20 <callforjudgement> hi hppavilion[1]
15:06:42 -!- ais523 has quit (Disconnected by services).
15:06:53 -!- J_Arcane has joined.
15:07:08 <hppavilion[1]> callforjudgement: I forget, are you ais523 under an altnick? Or someone else?
15:07:28 <callforjudgement> hppavilion[1]: this is my alternate nick, yes (primary nick in some contexts, but not Freenode IRC)
15:07:34 -!- callforjudgement has changed nick to ais523.
15:07:36 <hppavilion[1]> callAh
15:07:46 <ais523> mostly I use it for gaming purposes
15:07:51 <ais523> ais523 is for programming
15:08:05 <hppavilion[1]> Makes sense
15:08:05 <ais523> this causes problems in #tasvideos, which is about both programming and gaming
15:08:12 <hppavilion[1]> :P
15:08:24 <hppavilion[1]> ais523: I got my compiler working for basic arithmetic expressions!
15:08:38 <hppavilion[1]> If you didn't hear yet1
15:08:40 <hppavilion[1]> *!
15:08:41 <ais523> 10 LET X% = Y% + 10
15:08:42 <ais523> that sort of thing?
15:08:50 <ais523> (I think % is integer, right?)
15:09:05 <hppavilion[1]> ais523: Like (3+(-9))*(-2)
15:09:09 <hppavilion[1]> That's my test expression
15:09:22 <ais523> hppavilion[1]: I was intentionally misinterpreting "basic" as "BASIC"
15:09:26 <hppavilion[1]> It doesn't do variables yet, but it is structured s.t. they shouldn't be a problem
15:09:27 <hppavilion[1]> Oh xD
15:11:25 <hppavilion[1]> a+b, a-b, a*b, a/b, -a
15:11:54 -!- ais523 has quit.
15:12:12 -!- ais523 has joined.
15:12:22 <hppavilion[1]> ais523: It doesn't exactly have a parser yet though :P
15:12:31 <hppavilion[1]> So you have to enter the AST manually
15:14:00 <hppavilion[1]> ais523: As the great and wise ais523, what would you recommend I implement next?
15:14:22 <ais523> simple control flow
15:14:42 <ais523> it's quite easy to back yourself into a corner from which it's impossible to write a while loop
15:14:53 <hppavilion[1]> OK
15:14:58 <ais523> if you're not used to the way compilers work
15:14:58 <ais523> so it's important to get that working early
15:15:03 <hppavilion[1]> ais523: I believe that corner is called "Haskell"
15:15:29 <ais523> ;-)
15:17:16 -!- paul2520_ has changed nick to paul2520.
15:17:35 -!- paul2520 has quit (Changing host).
15:17:35 -!- paul2520 has joined.
15:18:13 -!- Frooxius has joined.
15:21:12 -!- bender| has quit (Read error: Connection reset by peer).
15:25:31 <shachaf> :t Control.Monad.Loops.whileM
15:25:32 <lambdabot> Monad m => m Bool -> m a -> m [a]
15:26:01 -!- lambda-11235 has joined.
15:26:04 -!- spiette has quit (Ping timeout: 252 seconds).
15:32:11 -!- ais523 has quit.
15:34:45 -!- ais523 has joined.
15:38:45 -!- ais523 has quit.
15:39:05 -!- ais523 has joined.
15:48:43 -!- ais523 has quit (Remote host closed the connection).
15:48:50 -!- earendel has changed nick to ea|chill.
15:49:10 -!- ais523 has joined.
15:52:32 -!- ais523 has quit (Excess Flood).
15:53:58 -!- ais523 has joined.
15:55:55 -!- ais523 has quit (Client Quit).
15:56:04 -!- ais523 has joined.
15:57:23 -!- vanila has joined.
16:10:03 -!- J_Arcane has quit (Ping timeout: 240 seconds).
16:13:12 -!- ais523 has quit (Remote host closed the connection).
16:13:37 -!- ais523 has joined.
16:28:54 -!- ais523 has quit.
16:29:08 -!- ais523 has joined.
16:33:28 -!- hppavilion[1] has quit (Ping timeout: 264 seconds).
16:44:48 -!- ais523 has quit.
16:46:09 -!- tromp has quit (Ping timeout: 276 seconds).
16:48:56 -!- J_Arcane has joined.
16:50:54 -!- zadock has joined.
17:51:23 -!- ea|chill has changed nick to earendel.
18:05:31 -!- Lord_of_Life has quit (Excess Flood).
18:06:37 -!- Lord_of_Life has joined.
18:08:32 -!- `^_^v has quit (Read error: Connection reset by peer).
18:10:59 -!- `^_^v has joined.
18:45:18 -!- vodkode has quit (Remote host closed the connection).
18:47:16 -!- `^_^v has quit (Quit: This computer has gone to sleep).
18:48:50 -!- `^_^v has joined.
18:50:38 -!- Reece` has joined.
18:52:00 -!- Reece` has quit (Client Quit).
18:57:19 -!- lynn has quit (Read error: Connection reset by peer).
18:58:27 -!- lynn has joined.
19:18:51 -!- zadock has quit (Quit: Leaving).
19:35:01 -!- `^_^v has quit (Quit: This computer has gone to sleep).
19:35:40 -!- earendel2 has joined.
19:35:50 -!- lynn has quit (Read error: Connection reset by peer).
19:36:28 -!- `^_^v has joined.
19:36:41 -!- earendel has quit (Ping timeout: 244 seconds).
19:37:09 -!- lynn has joined.
19:51:56 <zzo38> The X version 11 has a few things wrong including too many extensions I think. I can make suggestion for improvement of next version. One is the things mentioned in Appendix B of ICCCM. Another is more separation between the protocol and implementation; for example cursor themes is a feature that the server might or might not implement but is not exposed in the protocol. Also many XKB features would now be core instead.
19:54:22 -!- lynn has quit (Read error: Connection reset by peer).
19:55:46 <zzo38> (So what is now called XkbBell would simply be XBell instead and the old XBell would be gone. A few other features might also be removed, such as access control lists and other security settings; these would now be server features that the protocol doesn't include, and/or you may implement security features by X proxy servers.)
19:57:54 -!- lynn has joined.
20:01:30 <zzo38> Other features to add may be XPutTrueImage and XGetTrueImage to be able to transfer arbitrary truecolor pictures even on displays which do not support truecolor, and XDrawBezier to draw Bezier curves, as well as optional support for memory-mapped drawable. When asked the server responds by two strings, one is the computer name and the other is system-dependent (on Linux it is a filename). The client then checks if it is running on the same compute
20:02:04 <zzo38> Xlib functions may be XLockSurface and XUnlockSurface to access memory-mapped drawables, somewhat similarly to SDL.
20:06:43 <zzo38> Other thing to add are some additional keysyms (including UTCE characters that do not already have X keysyms nor Unicode), and the ability to steal events from other clients.
20:07:18 -!- `^_^v has quit (Quit: This computer has gone to sleep).
20:10:32 -!- jaboja has joined.
20:11:51 <zzo38> The screen saver controls could perhaps also be simplified, since many features of the screen saver may be controlled by client protocols instead. The server protocol should be limited to blanking the screen at a specified timeout (which can be disabled or forced too), and otherwise the screen saver may be started and otherwise controlled by the window manager, using properties and ClientMessage on the root window to control it.
20:11:55 <zzo38> Do you like this?
20:20:08 -!- earendel2 has quit (Quit: earendel2).
20:20:29 -!- earendel has joined.
20:21:02 <int-e> How does this relate to Wayland, Freon, and I suppose there are others?
20:22:04 <zzo38> I find those other to be a bit more badly designed and do not even do the stuff that X should do
20:24:44 <int-e> So what is that functionality? Apparently you're not satisfied with mere compositor-and-window-manager.
20:26:53 <zzo38> There are various, including how it deals with keyboard, mouse, events, and inter-client-communications, and X does not even require a compositor or a window manager.
20:29:16 <int-e> I wasn't describing X11; that is my general picture of Wayland.
20:29:54 * int-e is still running X11 without a compositing manager.
20:30:22 <zzo38> Yes, although X doesn't require a compositor or window manager as Wayland does. (I do not use a compositor myself)
20:31:01 <int-e> (X11 without a window manager, on the other hand, would be quite hard to use effectively.)
20:31:31 <zzo38> If you are running only one program then it is suitable though
20:34:08 <zzo38> Wayland usse a different architecture and I think X is mostly (but not entirely) a better design, which is why I made the proposal of X12
20:34:29 <int-e> So anyway, do I like this... you start in the middle of the X11 specification (which few people have read, never mind remember), then you describe a few seemingly random changes and additions that you would make without explaining why... it's very hard to like something without having some idea of what it's supposed to be good for. And in any case, it sounds like a pipe dream to me.
20:34:33 -!- nooga has quit (Ping timeout: 240 seconds).
20:35:29 <zzo38> Changes and additions and also removals actually
20:35:44 -!- nooga has joined.
20:36:23 <zzo38> Also I did explain it.
20:39:08 <b_jonas> “<ais523> it's quite easy to back yourself into a corner from which it's impossible to write a while loop” – heh heh heh heh
20:39:30 <b_jonas> but since this is #esoteric, it's funnier if you back yourself to that corner first, and THEN implement while loops anyway
20:48:22 -!- lynn_ has joined.
20:51:12 -!- lynn has quit (Ping timeout: 276 seconds).
20:51:24 <HackEgo> [wiki] [[Special:Log/newusers]] create * Chad3814 * New user account
21:00:24 -!- lynn_ has quit (Read error: Connection reset by peer).
21:00:49 -!- lynn_ has joined.
21:06:34 <HackEgo> [wiki] [[Brainfuck algorithms]] https://esolangs.org/w/index.php?diff=46620&oldid=46328 * Chad3814 * (+222) added exponents
21:11:00 -!- lynn__ has joined.
21:11:45 -!- adu has joined.
21:12:48 -!- augur_ has joined.
21:13:19 -!- lynn_ has quit (Ping timeout: 244 seconds).
21:14:54 <zzo38> My ideas also are, a keyboard may have from 0 to 256 keys, and there may also be no mouse or more than one mouse, and a mouse may point off-screen (whether or not this is actually possible depends on the implementation; for example with an actual mouse it might not be, although if touch screen or Wii remote is used then it may be useful)
21:15:43 -!- augur has quit (Ping timeout: 268 seconds).
21:15:53 <zzo38> (There might not be any keyboard or mouse available, in which case the display is output only.)
21:22:39 -!- esowiki has joined.
21:22:43 -!- esowiki has joined.
21:22:44 -!- esowiki has joined.
21:23:21 -!- esowiki has joined.
21:23:26 -!- esowiki has joined.
21:23:26 -!- esowiki has joined.
21:23:53 -!- esowiki has joined.
21:23:57 -!- esowiki has joined.
21:23:58 -!- esowiki has joined.
21:24:25 -!- esowiki has joined.
21:24:29 -!- esowiki has joined.
21:24:30 -!- esowiki has joined.
21:25:10 -!- esowiki has joined.
21:25:14 -!- esowiki has joined.
21:25:14 -!- esowiki has joined.
21:25:46 -!- esowiki has joined.
21:25:47 -!- glogbot has joined.
21:25:50 -!- esowiki has joined.
21:25:50 -!- esowiki has joined.
21:25:51 -!- EgoBot has joined.
21:26:18 -!- fizzie has quit (Ping timeout: 276 seconds).
21:26:18 -!- lifthrasiir has quit (Ping timeout: 276 seconds).
21:27:25 -!- lifthrasiir has joined.
21:27:32 -!- fizzie has joined.
21:28:16 -!- rodgort has joined.
21:29:48 -!- augur has joined.
21:31:47 <zzo38> Another set of keysyms to add would be television controls.
21:34:19 <zzo38> Also a window position and mouse position can now include a signed 16-bit Z coordinate which normally is zero and does nothing, although some server implementations may allow it to do something, such as support for 3D input/output.
21:35:26 <zzo38> Support for scaled fonts would be removed though.
21:37:00 <nooga> uh?
21:37:21 <zzo38> As far as I know I have listed everything that should be needed but you can tell me if you believe I added something irrelevant or missed something important.
21:46:19 -!- izabera has changed nick to iz_.
21:55:53 -!- tromp_ has quit (Ping timeout: 250 seconds).
22:00:12 -!- AnotherTest has quit (Quit: ZNC - http://znc.in).
22:27:02 <HackEgo> [wiki] [[User:Erinius]] https://esolangs.org/w/index.php?diff=46621&oldid=46280 * Erinius * (+12)
22:50:16 -!- Phantom_Hoover has joined.
23:16:08 -!- adu has quit (Quit: adu).
23:20:55 -!- oerjan has joined.
23:21:29 <oerjan> @messages-
23:21:29 <lambdabot> boily said 12h 43m 36s ago: I heard you! :D
23:21:41 <oerjan> shocking
23:22:18 -!- p34k has quit.
23:26:01 <nooga> is it normal to become a cultist after learning enough emacs to discover org mode?
23:32:08 -!- copumpkin has quit (Read error: Connection reset by peer).
23:33:10 -!- copumpkin has joined.
23:40:04 <Phantom_Hoover> nooga, highly abnormal
23:42:52 <oerjan> Phantom_Hoover is wrong, but that's just because he's not a cultist so they won't tell him hth
23:44:18 <Phantom_Hoover> oerjan is profoundly abnormal, don't listen to a word he says
23:44:40 <oerjan> half of that is true.
23:44:43 <zzo38> Now I made my own farbfeld conversion program http://sprunge.us/WQDS http://sprunge.us/AiSC
23:44:57 <oerjan> the other part is technically not a proposition.
23:45:17 <vanila> zzo38, nice
23:46:44 <oerjan> good xkcd
23:47:04 <oerjan> `quote insanity
23:47:16 <HackEgo> 397) <fizzie> There's that saying that the definition of insanity is doing the same thing over and over again and expecting different results. [...] <Taneb> You've just gave me a different result [...] <fizzie> It's always insane to expect different results, even when it's likely to occur.
23:49:17 <oerjan> `` ls bin/*w*list
23:49:19 <HackEgo> bin/bardsworthlist \ bin/wrlist
23:49:36 <oerjan> i guess no one made that xkcdwhatiflist
23:50:06 <Phantom_Hoover> quite a poor one though
23:50:10 <Phantom_Hoover> no qualitatives
23:50:49 <oerjan> what's a qualitative
23:53:33 <Phantom_Hoover> when he actually describes something in interesting detail rather than just wittering on about how big a particular number is
23:53:54 -!- boily has joined.
23:54:11 <boily> @massages-loud
23:54:11 <lambdabot> You don't have any messages
23:54:41 <oerjan> <boily> @metar ENVA <-- spring's a-coming
23:54:53 <oerjan> excluding the light snow this evening
23:55:00 <oerjan> which turn into heavier rain
23:55:21 <oerjan> boi mean hily
23:55:42 <oerjan> *+,
23:57:19 <oerjan> ooh i guessed right, the etching in the restaurant of an obscure dutch person was a rembrandt
23:57:32 <oerjan> _probably_ not the original hth
23:58:00 <oerjan> this guy, and same etching https://nl.wikipedia.org/wiki/Johannes_Silvius
23:59:18 <boily> boi mean hily?
23:59:22 <boily> hellørjan.
2016-03-19
00:01:03 -!- hppavilion[1] has joined.
00:03:44 * oerjan is shocked that "i mean, hi" doesn't seem to be a meme
00:04:39 <hppavilion[1]> oerjan: What's that from?
00:05:36 <oerjan> oh i misremembered it http://bash.org/?5300
00:05:50 <oerjan> the original doesn't have the "i mean" part
00:06:02 <oerjan> although some copies do
00:06:09 <oerjan> *copycats
00:07:30 <boily> ah, that one. vulgar, but it'll always remain stupidly funny in my heart ^^
00:08:36 -!- jaboja64 has joined.
00:09:34 -!- bender| has joined.
00:10:24 <boily> oerjan: btw, about your chirurgien: you're saying /ʒɛ̃/ instead of /ʒjɛ̃/ hth.
00:12:13 <oerjan> damn i was wondering about that
00:12:28 -!- jaboja has quit (Ping timeout: 264 seconds).
00:15:11 <boily> just found “l - the amulet of Pugatu {Gourm +Blink rPois Int-2 SInv}”, dungeon level 4.
00:15:19 <boily> I am so going to be dead in five minutes tops.
00:17:38 <oerjan> boily: https://clyp.it/o5eofg0b
00:18:06 <oerjan> definitely trying to hard, now
00:18:09 <oerjan> *too
00:18:25 <boily> :D
00:37:11 -!- adu has joined.
00:41:31 -!- jaboja64 has quit (Ping timeout: 244 seconds).
00:48:13 <boily> “You finish putting on the +5 large shield of Loss {rPois rN+ Dex+2}”
00:48:37 <boily> not only am I going to die, I am going to be killed to death, then my corps will be murdered.
00:49:11 -!- adu has quit (Quit: adu).
01:01:37 <oerjan> boily: also, it'll void your insurance
01:03:42 * boily gasps in abject terror
01:04:14 <boily> meanwhile, I'm still strangely alive. the implacable feeling of dread gwos, inexorably, gnawing at my heart. particularly the left ventricle.
01:04:30 -!- nooga has quit (Ping timeout: 248 seconds).
01:04:37 <oerjan> gwoing sounds painful.
01:06:17 <boily> I'm fingering a lot of typos tonight...
01:06:50 <boily> . o O ( what's a gwoe, and how the fungot am I managing to be gwoing without even knowing what it is )
01:06:50 <fungot> boily: you got to keep it up -_-
01:07:05 <boily> fungot: apparently I do that already.
01:07:05 <fungot> boily: fnord. i guess the key here is that your final answer?) mmmm.....really? so.....you like atlanta?
01:07:59 <boily> fnord. fnord. fnord. fnord. ♪
01:09:11 <hppavilion[1]> Yes!
01:09:14 <hppavilion[1]> Got CF working!
01:10:56 -!- jaboja64 has joined.
01:11:14 <boily> hppavellon[1].
01:11:24 <hppavilion[1]> ahoily
01:12:14 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
01:16:38 -!- gde33|2 has left.
01:22:49 -!- lleu has quit (Ping timeout: 260 seconds).
01:26:42 <olsner> fungot: fnord?
01:26:42 <fungot> olsner: i should get 0, 2, 4, 5, 39, 14, or 23 are very, very strange way
01:27:00 <olsner> fungot: boily?
01:27:00 <fungot> olsner: i'm not very familiar either. so who inherits the wiki?
01:27:20 <olsner> probably elliott
01:27:34 <oerjan> no, elliott already had it
01:27:54 <olsner> does that mean the current owner is already dead?
01:28:26 <boily> hellolsner. contrary to evidence, I am not fungot. I am sane.
01:28:26 <fungot> boily: and you can get in 30 seconds
01:28:27 <oerjan> well one can never be sure with Gregor as much as he idles.
01:28:37 <oerjan> i suspect fizzie is alive though.
01:29:01 <olsner> boily: that's what everyone thinks, but actually we are all fungot
01:29:01 <fungot> olsner: so whats going on
01:29:05 <boily> fizzie: O HAI! are you alive?
01:29:08 <oerjan> boily: are you insinuating that fungot is not sane
01:29:09 <fungot> oerjan: bill gates is evil. i don't think
01:29:30 <oerjan> see, perfectly sane.
01:30:03 <oerjan> which tells us that we should avoid vaccinations
01:30:05 * boily fails to find a counter-argument.
01:30:33 <boily> I am fully vaccinated against quite everything.
01:30:43 <oerjan> ic
01:30:52 <olsner> that does explain some things
01:30:53 <oerjan> ebola too?
01:31:03 -!- lleu has joined.
01:31:16 <vanila> i hope elliot comes back to this IRC
01:31:21 <boily> eeeeh... maybe not ebola, but it could be covered by another shot for all I know.
01:31:24 -!- XorSwap has joined.
01:31:39 <boily> vanello. one day, one day...
01:32:01 <vanila> i also wonder where oklopol and bsnmtbombdood are
01:32:08 <olsner> I (vaguely) think elliott had reasonable reasons to leave and they are not likely to be resolved yet
01:32:36 <boily> @ask oklopol helloklopol. where are you at now?
01:32:36 <lambdabot> Consider it noted.
01:32:42 <vanila> its weird for me talking to people outside of here, they dont like brainfuck
01:32:50 <vanila> I mean like
01:32:54 <boily> @ask bsmntbombdood y u no back here?
01:32:54 <lambdabot> Consider it noted.
01:32:56 <vanila> they're against it
01:33:09 <oerjan> vanila: shocking
01:33:12 <olsner> this is probably the centre of not liking brainfuck derivatives
01:33:19 <oerjan> maybe they're confusing it with some derivative
01:33:33 <vanila> that gives bme a idea for a brainfuck derivative....
01:33:38 <boily> people outside of this chännel are weird.
01:33:46 <vanila> The language is called: brainfuck
01:33:47 <boily> shachaf: uhm, can I get back my mapole please?
01:33:57 <vanila> and it has exactly the same tokens and semantics as regular brainfuck
01:34:00 <olsner> s/out.*nel//boily
01:34:08 <vanila> what do you think?
01:34:26 <oerjan> hm at least oklopol should be stalkable.
01:34:51 <vanila> I guess my idea isn't liked
01:34:55 <boily> the one time I need to rightfully mapole someone else, shachaf is absent and he got my beloved mapole...
01:35:58 <oerjan> well he has published papers in 2015
01:36:00 <boily> vanila: you should disguise your idea with an elaborate backstory à la kvikkalkul, only for people to realize in horror that it was brainfuck all along.
01:36:29 <vanila> but to work mine has to be called the same thing
01:36:30 <olsner> boily: or not disguise it at all, being the very most obvious ur-derivative of brainfuck
01:36:48 <vanila> it turns every bf program into a polyglot :O
01:36:51 <oerjan> vanila: i think oklopol is in chile doing math hth
01:37:05 <olsner> a brainfuck/brainfuck polyglot?
01:37:08 <boily> `? oklopol
01:37:13 <HackEgo> oklopol "so i hear these blogs are getting popular, people like writing about their lives and shit. on this thing called the internet which is like a neural network only really stupid."
01:37:19 <vanila> interesting
01:37:21 <boily> olsner: it's slightly harder the other way round.
01:37:29 <olsner> why would you do math in chile? what kind of math can be done there that can't be done elsewhere?
01:37:48 <boily> the whole country is linear.
01:38:24 <olsner> I hope oklobol is going "arriba! mathematica en chile!" and shaking hips for a year
01:38:30 <oerjan> mostly from looking at his web domain. which is his real name.com
01:38:43 <hppavilion[1]> vanila: Every brainfuck program was already a polyglot in many extension derivatives
01:40:18 <hppavilion[1]> vanila: Perhaps you should make a kiv... whatever-like backstory for a Brainfuck derivative, where the basic foundation is "The government heard about brainfuck and thought it was real, and made it better for their purposes"
01:40:29 <vanila> hahaha
01:40:37 <vanila> microsoft B#
01:40:50 <boily> Ō_Ō...
01:41:26 <oerjan> boily: you can borrow my swatter if it's important -----###
01:42:53 <oerjan> <olsner> s/out.*nel//boily <-- i don't think all those sed flags are correct hth
01:42:59 <hppavilion[1]> vanila: Oooh
01:43:00 <hppavilion[1]> Even better
01:43:04 <olsner> oerjan: they are correct, but not here
01:43:27 <hppavilion[1]> Why don't we make an /official/ actively-maintained BF derivative that the channel treats as the OFFICIAL Brainfuck derivative
01:43:54 <vanila> why don't we pour river water in our socks?
01:44:07 <olsner> because it would make them wet
01:44:08 <hppavilion[1]> vanila: Then 90% of new brainfuck derivatives
01:44:36 <hppavilion[1]> vanila: We can go to the talk page and say "Meh. Just a lame attempt to clone UberFuck"
01:44:51 <vanila> :D
01:44:52 <hppavilion[1]> vanila: And thus discourage new derivatives by limiting them to only one
01:45:10 <hppavilion[1]> vanila: And instead of people making new derivatives, they request that they add their features to UberFuck
01:45:21 <hppavilion[1]> And we do so if it's good
01:45:29 <hppavilion[1]> Thus limiting the flow of new derivatives
01:45:33 <boily> oerjan: thanks, but the moment is not right now. I'll be waiting for the next opportunity, eh?
01:45:34 <hppavilion[1]> Success!
01:46:21 <hppavilion[1]> boily: What do you think of this plan?
01:46:37 <oerjan> boily: well with your luck at timing (see: quintopia) ...
01:47:32 <oerjan> `? boily
01:47:35 <HackEgo> ​"Only sane man" boily is monetizing a broterhood scheme with the Guardian of Lachine, apparently involving cookie dealing. He's also a NaniDispenser, a Trigotillectomic Man Eating Chicken and a METARologist. He is seriously lacking in the f-word department. He is also a renowned Capitalist.
01:47:47 <oerjan> i'm not sure there's more room there
01:48:11 -!- heroux has quit (Ping timeout: 244 seconds).
01:48:26 <oerjan> `? quintopia
01:48:28 <HackEgo> quintopia is our resident tl;dr generator. He is flooded by thundercats and thunderdogs.
01:48:54 <oerjan> `learn_append quintopia He is the temporal antipode of boily despite living on the same continent.
01:48:58 <HackEgo> Learned 'quintopia': quintopia is our resident tl;dr generator. He is flooded by thundercats and thunderdogs. He is the temporal antipode of boily despite living on the same continent.
01:49:04 <boily> that is much true :/
01:49:13 -!- lynn has quit (Ping timeout: 240 seconds).
01:51:12 <hppavilion[1]> oerjan: Perhaps we should expand HackEgo's ability to learn per factoid
01:51:42 <oerjan> oklopol composes death metal? i suppose i _shouldn't_ be surprised.
01:52:00 <oerjan> hppavilion[1]: the problem isn't learning, it's fitting it in an irc line
01:53:11 <hppavilion[1]> oerjan: Yeah, it'd use multiple lines
01:53:19 <hppavilion[1]> oerjan: It'd cap closer to 3
01:53:24 <oerjan> `` allquotes | grep '.\{300\}'
01:53:26 <HackEgo> 82) <Gregor> Well yeah, but furthermore unlike, oh, say, an Apple product, you don't have to sign their "we own your sperm" license agreement to GET that SDK and the requisite libraries. ... <Gregor> pikhq: Sure, but it's the only way Apple could get a first-born-son clause into a modern licensing agreement without infringing child or slave labor
01:53:30 <olsner> huh, who appointed boily as "only sane man"?
01:53:41 <oerjan> we have some quotes that are already longer
01:53:50 <boily> I think it was oerjan.
01:53:53 <oerjan> olsner: i did hth
01:53:59 <boily> he did htah
01:54:06 <oerjan> olsner: are you claiming to be sane
01:54:17 <olsner> no, I'm merely claiming boily not to be
01:54:24 * hppavilion[1] prepares his torch and pitchfork for olsner
01:54:25 <oerjan> *GASP*
01:54:27 <olsner> or insinuating
01:54:31 * boily blows a raspberry at olsner
01:54:57 <oerjan> boily: would you like to borrow the saucepan ===\__/
01:55:01 <olsner> boily: please keep blowing me
01:55:09 <hppavilion[1]> olsner: ...
01:55:10 <boily> oerjan: mind if I do.
01:55:24 * boily *THWONGNGNGNGS* olsner over the head
01:55:44 <olsner> over my head? haha, you missed :D
01:55:49 * hppavilion[1] rings the EsoGong in olsner's ears
01:55:59 -!- vanila has quit (Quit: Leaving).
01:56:02 <boily> damned prepositions.
01:56:10 <boily> on, not over.
01:56:12 <hppavilion[1]> Shattering olsner's esodrums in the process
01:56:35 <boily> oerjan: thanks for the pan.
01:56:51 -!- boily has quit (Quit: TROOPER CHICKEN).
01:57:32 -!- adu has joined.
01:59:07 <hppavilion[1]> hadu
01:59:35 <hppavilion[1]> adu: I want to make an "official" BF derivative to curb the number of other BF derivatives
01:59:42 <adu> hppavilion[1]:
01:59:47 <hppavilion[1]> adu: Because people will request features in that instead of making their own
02:00:05 <adu> hppavilion[1]: sounds like only a nomic bf will do ;)
02:00:18 <hppavilion[1]> adu: It's not quite a nomic
02:00:56 <hppavilion[1]> adu: It's a language to redirect the number of other derivatives to a central derivative
02:00:59 <hppavilion[1]> adu: ALSO
02:01:04 <hppavilion[1]> adu: When someone DOES make a derivative
02:01:22 <adu> like befunge, funge98
02:01:30 <hppavilion[1]> We can say "Meh, just a lame attempt to clone UberFuck"
02:01:32 <hppavilion[1]> Or whatever
02:04:03 -!- heroux has joined.
02:04:28 <hppavilion[1]> adu: So then people are ashamed and never make another derivative again
02:07:04 -!- Elronnd has quit (Ping timeout: 264 seconds).
02:07:24 <adu> hppavilion[1]: seems kind of anti-innovation to me
02:07:39 <hppavilion[1]> adu: People can suggest innovation into the new language
02:07:44 <hppavilion[1]> But they don't create a wikipage
02:07:50 <hppavilion[1]> And we don't spam
02:08:40 -!- Elronnd has joined.
02:16:25 -!- XorSwap has quit (Quit: Leaving).
02:18:09 -!- jaboja64 has quit (Ping timeout: 244 seconds).
02:30:29 <zzo38> Even the footnotes have footnotes.
02:32:53 <adu> interesting
02:33:23 <adu> hppavilion[1]: so this new bf is an ellaborate way to combine wiki pages
02:40:41 -!- adu has quit (Quit: adu).
02:42:16 <hppavilion[1]> adu: Yes
02:42:59 <hppavilion[1]> adu: Also, it'd double as a "What if Microsoft made \"MS B#\" because they didn't realize brainfuck wasn't meant to be used"
02:43:56 <hppavilion[1]> Oh, adu left :/
02:45:45 -!- adu has joined.
02:45:59 <hppavilion[1]> adu: Also, it'd double as a "What if Microsoft made \"MS B#\" because they didn't realize brainfuck wasn't meant to be used"
02:48:19 <adu> hppavilion[1]: nah, they'd add DOTNET to it, and it wouldn't be bf anymore
02:49:05 <hppavilion[1]> adu: It'd be sort of like BF
02:49:08 <hppavilion[1]> C# is still C-style
02:49:18 <hppavilion[1]> F# is still... um...
02:49:23 <hppavilion[1]> Nevermind on F#
02:49:56 <adu> hppavilion[1]: have you ever heard of C++/CLI?
02:50:05 <hppavilion[1]> adu: Nope
02:50:30 <adu> hppavilion[1]: it's basically C# but with template<> added and unmanaged pointers added so it looks like C++
02:51:25 <adu> hppavilion[1]: and VB.NET is basically C#, but with punctuation replaced with Words
02:51:29 <hppavilion[1]> adu: Ah
02:51:33 <hppavilion[1]> Ew
02:51:58 <adu> hppavilion[1]: so MS doesn't really make language compilers, they just make different C# sugars
02:52:18 <hppavilion[1]> Ah
02:52:23 <hppavilion[1]> adu: So they're stupid?
02:52:41 <adu> hppavilion[1]: they're not stupid if you're a VB head trying to use some fancy .net library
02:53:02 <hppavilion[1]> Aaaaah
02:53:39 <adu> hppavilion[1]: but if you're switching languages to escape the C# model, then you really can't
02:53:52 <hppavilion[1]> adu: F#?
02:54:01 <adu> I think F# wins on laziness, and C++/CLI wins on unmanaged pointers, but that's about it
02:54:21 <hppavilion[1]> adu: So CLI is a stupid platform to pick?
02:54:28 <adu> I like to overgeneralize and oversimplify
02:54:44 <adu> hppavilion[1]: I like the CLR
02:54:56 <hppavilion[1]> adu: Remind me what the R stands for again?
02:55:04 <hppavilion[1]> Common Language Ruby?
02:55:04 <adu> runtime
02:55:07 <hppavilion[1]> Oh right
02:55:16 <hppavilion[1]> adu: What would be a good language model to compile?
02:55:27 <adu> the CLI/CLR has a single ambiguous instruction for "add" that calls the "__op_add()" method or something
02:56:01 <hppavilion[1]> Interesting...
02:56:10 <adu> whereas the JVM has like 4 add instructions for int, long, single, double, and one for method calls
02:56:22 <hppavilion[1]> adu: I'm already compiling a language called dk (I suck at names), which is going well
02:56:27 <adu> which you can use to call the "add()" method, which isn't really special in Java
02:56:32 <hppavilion[1]> Is there any other sort of language I should work on?
02:56:51 <adu> hppavilion[1]: my favorite languages recently involve metaprogramming
02:57:10 <adu> namely: Rust, Scheme, and Haskell
02:57:17 <adu> Haskell metaprogramming is kind of a beast
02:57:18 <hppavilion[1]> Interesting
02:57:44 <adu> but Rust metaprogramming is a builtin feature
02:57:50 <adu> just as it is in Scheme
02:57:56 <hppavilion[1]> adu: Any new and interesting paradigms you've seen lately? Outside C-like/functional/logic?
02:58:09 <adu> hppavilion[1]: Candle
02:58:15 <hppavilion[1]> adu: Go on
02:58:29 <adu> http://lambda-the-ultimate.org/node/4327
02:59:17 <adu> Candle is a language that is supposed to be a combination of XML, JSON, JsonSchema, XQuery, and XSLT all at the same time
02:59:21 <hppavilion[1]> Wut.
02:59:48 <adu> I know, right?
03:00:18 <adu> hppavilion[1]: Go is also interested, but I've used it quite extensivly, to the point where it's basically compiled JavaScript in my mind
03:00:28 <adu> s/interested/interesting/
03:00:49 <hppavilion[1]> adu: I'm thinking modal logic programming. Is that a good idea?
03:01:05 <adu> hppavilion[1]: like Prolog? yeah
03:01:12 <hppavilion[1]> adu: OK
03:01:29 <adu> I also read a very interesting article about JSON-LD today
03:01:37 <adu> I didn't realize how much JSON-LD hates RDF
03:01:42 <adu> but they really hate RDF
03:02:05 <adu> http://manu.sporny.org/2014/json-ld-origins-2/
03:03:54 <hppavilion[1]> adu: I'm trying to figure out how to best AST a PROLOG-like language xD
03:03:55 <adu> I mean it makes sense, why would you have a DBMS, along with a triple-store layer backed by the DBMS, then a sparql server with a parser and everything that translates sparql into the triple-store layer, then write an library for client-side requests of the sparql server, then write an app that makes use of your client-side sparql library
03:04:09 <adu> when you can just load a JSON-LD instead?
03:05:09 <zzo38> I do not really like Candle it isn't very good I happen to find RDF is better
03:06:35 <hppavilion[1]> "It was initially developed by the JSON for Linking Data Community Group before being transferred to the RDF Working Group[3] for review, improvement, and standardization."
03:06:42 <adu> I love RDF, but I've never been able to build anything effective with it because of the reasons listed in that article
03:07:31 <hppavilion[1]> adu: Is converting a PROLOG-like AST into some intermediate AST pretty much my only option for compiling a Modal PROLOG?
03:08:10 <adu> hppavilion[1]: have you heard of the traditional way to compile prolog?
03:08:37 <hppavilion[1]> adu: Lol, NOPE!
03:08:39 <hppavilion[1]> (xD)
03:09:11 <adu> https://en.wikipedia.org/wiki/Warren_Abstract_Machine
03:09:36 <adu> that's the equivalent of a VM for prolog, and I think most implementations are in part modeled on it
03:09:42 <hppavilion[1]> Well, yes
03:09:43 <hppavilion[1]> WAM
03:09:46 <hppavilion[1]> Heard of that
03:12:30 <adu> hppavilion[1]: also OWL has some representations that sound like what you're talking about
03:12:39 <hppavilion[1]> adu: OWL?
03:12:55 <adu> hppavilion[1]: have you ever heard of the "Semantic Web"?
03:13:02 <adu> hppavilion[1]: or "Linked Data"?
03:13:03 <hppavilion[1]> Yes
03:13:09 <hppavilion[1]> adu: Web Ontology Language?
03:13:12 <adu> yes
03:13:12 <hppavilion[1]> How is that OWL?
03:13:18 <adu> hppavilion[1]: French...
03:13:30 <hppavilion[1]> adu: Ah
03:13:35 <adu> Ontological de Web Language
03:13:39 <adu> or something
03:14:35 <hppavilion[1]> adu: Wikipedia disagrees.
03:14:36 <hppavilion[1]> https://en.wikipedia.org/wiki/Web_Ontology_Language#Acronym
03:15:46 <adu> I always thought it was French, like SI = International System
03:15:52 <hppavilion[1]> Yeah, that makes sense
03:15:56 <hppavilion[1]> adu: BUT YOU WERE WRONG
03:16:04 <hppavilion[1]> adu: I don't even know how to start compiling a Modal PROLOG :/
03:16:12 <adu> it happens, sometimes
03:16:14 <hppavilion[1]> At least with dk it was straightforward
03:16:24 <hppavilion[1]> I'm pretty sure I need to intermediate it
03:17:41 <hppavilion[1]> adu: I don't even know how to represent the AST well :/
03:17:54 <adu> hppavilion[1]: how about lisp?
03:18:12 <adu> hppavilion[1]: (AstOperator AstOperands ...)
03:18:20 <hppavilion[1]> adu: No, I mean I don't know how to make the AST
03:18:31 <hppavilion[1]> adu: I want it to have PROLOG like syntax, I know, with some sugar
03:18:40 <hppavilion[1]> Some stuff to integrate it with CTL
03:18:46 <hppavilion[1]> And perhaps other ML
03:19:07 <hppavilion[1]> But I don't know the best way to do it
03:19:28 <hppavilion[1]> Because there's no order to the lines or anything
03:19:36 <hppavilion[1]> It's just a set of relations
03:20:25 <hppavilion[1]> Hm...
03:20:27 <hppavilion[1]> I think I might have it
03:20:35 <adu> brb
03:21:54 <hppavilion[1]> adu: NUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU
03:36:35 <zzo38> Semantic Web isn't as good as RDF I think
04:00:27 -!- nooga has joined.
04:04:51 -!- nooga has quit (Ping timeout: 248 seconds).
04:05:11 <adu> back
04:05:37 <adu> zzo38: have you read that article?
04:11:36 <zzo38> I have read similar articles before
04:12:09 <adu> zzo38: those "I made X because I hate Y" articles
04:13:42 <adu> is hppavilion[1] still here?
04:14:28 <adu> hppavilion[1]: I think the most interesting AST transformations I did was for a single-pass C parser
04:15:02 <hppavilion[1]> adu: I might be...
04:15:31 <adu> hppavilion[1]: I had all these partial types, that were like other AST nodes, but with stuff missing
04:15:57 <adu> and the only way I could keep it straight was to give them different names, and then rebuild them into the complete node types
04:16:16 <zzo38> Yes sometimes I have read various stuff
04:16:31 <adu> hppavilion[1]: https://github.com/andydude/p6-c-parser/blob/master/lib/C/AST/Ops.pm6
04:17:08 <hppavilion[1]> adu: Interesting...
04:17:34 <adu> hppavilion[1]: most people think the AST is just "enum" and "struct" for C
04:17:55 <hppavilion[1]> adu: It isn't? xD
04:18:39 <adu> hppavilion[1]: unsigned int *restrict *const x[4][5], *y[7][8][9];
04:18:46 <hppavilion[1]> adu: I think I'm going to make a collection of languages that all compile to the same platform
04:18:49 <adu> how do you represent that?
04:19:07 <hppavilion[1]> adu: A struct and some enums, probably
04:19:13 <hppavilion[1]> adu: How do YOU represent that?
04:19:15 <hppavilion[1]> xD
04:19:30 <adu> hppavilion[1]: I'll tell you
04:20:39 <hppavilion[1]> adu: Do so
04:20:50 <adu> hppavilion[1]: I need to run my parser
04:22:46 <adu> http://pastebin.com/raw/w8aYBJPz
04:24:09 <hppavilion[1]> adu: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGH
04:25:10 <adu> hppavilion[1]: that's just the tokenization
04:25:14 -!- MoALTz has quit (Ping timeout: 244 seconds).
04:25:22 <hppavilion[1]> adu: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
04:25:22 <hppavilion[1]> AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
04:25:22 <hppavilion[1]> AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
04:25:27 <hppavilion[1]> AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
04:25:32 <hppavilion[1]> AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
04:25:37 <hppavilion[1]> AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
04:25:44 <hppavilion[1]> AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
04:25:49 <hppavilion[1]> AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
04:25:52 <adu> http://pastebin.com/raw/1TXU3p9Z
04:25:53 <adu> *that*s the tokenization
04:25:54 <hppavilion[1]> AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
04:25:58 <adu> i mean the AST
04:25:59 <hppavilion[1]> AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
04:26:04 <hppavilion[1]> AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv
04:26:05 <adu> hppavilion[1]: please
04:26:06 <hppavilion[1]> Oh
04:26:08 <hppavilion[1]> Crap
04:26:10 <hppavilion[1]> I was not expecting it to go that far
04:26:14 <hppavilion[1]> Sorry
04:26:16 <hppavilion[1]> (Or did freenode not let it through? Please tell me they didn't)
04:26:18 <hppavilion[1]> adu: Yes?
04:26:28 * hppavilion[1] clicks the link
04:26:34 <adu> hppavilion[1]: I see many many many A's
04:26:34 * hppavilion[1] takes a deep breath
04:26:46 * hppavilion[1] keels over and dies to save the channel
04:27:23 <int-e> so much drama
04:27:31 * hppavilion[1] is dead
04:27:48 -!- treaki_ has joined.
04:27:57 * adu resuscitates hppavilion[1]
04:28:07 <hppavilion[1]> Dammit, adu
04:28:11 <hppavilion[1]> Didn't you see the DNR
04:28:47 * adu is not a licensed professional
04:29:13 <hppavilion[1]> adu: Oh, right
04:30:33 <adu> hppavilion[1]: all you need for an AST is (node-type children...)
04:30:45 -!- treaki__ has quit (Ping timeout: 276 seconds).
04:32:07 -!- llue has joined.
04:32:25 <adu> hppavilion[1]: so what do you mean you "don't know how to make the AST"?
04:33:09 <adu> you basically turn all the interesting things in a grammar production into a struct if there is no repetition or alternation
04:33:24 <adu> you turn repetition into lists
04:33:37 <adu> you turn alternation into tagged unions
04:33:45 <adu> and you're done
04:34:04 <hppavilion[1]> adu: I figured it out
04:34:10 <adu> hppavilion[1]: oh ok
04:34:14 -!- ^v has quit (Quit: ZNC - http://znc.in).
04:34:15 <hppavilion[1]> adu: I'm making the compiler in Python, BTW :P
04:34:56 <adu> hppavilion[1]: in Python my prefered method of making a tagged union is subclassing
04:35:13 -!- lleu has quit (Ping timeout: 240 seconds).
04:35:40 <adu> Python3 has the "enum" builtin, and Python2 has a downloadable enum library, but it's pretty lame, just assigning a value to a bunch of names
04:39:44 <hppavilion[1]> adu: Yes, that's basically what I would do
04:39:53 <adu> subclassing?
04:40:00 <hppavilion[1]> adu: Yes
04:40:08 <hppavilion[1]> adu: But I don't need tagged unions ATM
04:40:17 <adu> then you can still type-check with isinstance(node, TheSuperClass)
04:40:41 <hppavilion[1]> adu: Yep, that's one idea
04:40:49 <hppavilion[1]> adu: I did it instead with types and maps
04:40:53 <hppavilion[1]> Types are strings
04:41:07 <hppavilion[1]> And nodes calculate their types from their children's types
04:41:29 <adu> that sounds complicated
04:41:37 <hppavilion[1]> adu: It isn't
04:41:50 <hppavilion[1]> adu: Just repetitive
04:42:12 <hppavilion[1]> adu: It doesn't calculate so much as lookup
04:43:19 -!- Sprocklem has quit (Ping timeout: 244 seconds).
04:44:14 -!- ^v has joined.
04:46:42 <adu> I like how similar Python and JavaScript are
04:47:46 <adu> I know this one guy who refused to use the builtin json library in Python but parsed json anyways by giving an environment to eval with true=True and false=False so that eval(str) worked like json.loads(str)
04:50:30 <adu> and whenever he needed to inline the json at the beginning of a script, he would just "from x import true, false"
04:50:43 -!- Sprocklem has joined.
05:19:41 <FreeFull> adu: Why did you do that
05:19:46 <FreeFull> What was wrong with him
05:19:57 <adu> do what?
05:20:05 <FreeFull> Parse JSON in Python with eval
05:20:12 <adu> I didn't
05:20:21 <FreeFull> Oops, I meant to write "Why did he do that"
05:20:23 <FreeFull> Sorry
05:20:40 <adu> I don't even use eval in JavaScript, I always use JSON.parse()
05:21:00 <FreeFull> Sometimes whem I'm sleepy I want to write one word but write another
05:21:02 <adu> and in Python, I always use json.loads()
05:21:16 <FreeFull> adu: What was wrong with him?
05:21:46 <adu> FreeFull: ah a much better question, in a single word, I would have to say: MIT
05:25:36 <adu> actually, probably more along the lines of MIT drop-out
05:28:33 -!- hppavilion[1] has quit (Ping timeout: 240 seconds).
05:52:56 -!- adu has quit (Quit: adu).
06:08:00 <zzo38> Use of eval and new Function in JavaScript may be used if you want to read user JavaScript codes or to compile some other code so that it runs more efficiently, although I would expect that in many cases using the JSON functions would probably be better. (JSZM does use JSON.parse in one place; one part of the code generates JSON data by use of regular expressions, and then parses it.)
06:13:15 -!- iz_ has changed nick to izabera.
06:27:41 <oerjan> `? repetive
06:27:56 <HackEgo> repetive? ¯\(°​_o)/¯
06:28:02 <oerjan> `? repetion
06:28:04 <HackEgo> repetion? ¯\(°​_o)/¯
06:29:17 <oerjan> `learn A repetive action is one that tries to repeat something, but fails miserably.
06:29:21 <HackEgo> Learned 'repetive': A repetive action is one that tries to repeat something, but fails miserably.
06:43:36 <shachaf> oerjan: do you take them when the ed is igh?
06:44:36 * oerjan senses strong winds above him
06:45:13 <oerjan> .
06:46:09 <oerjan> ..
06:46:28 <oerjan> i don't think that one really works, shachaf
06:46:49 <shachaf> maybe when the ed is ear?
06:46:55 <oerjan> oh i got that
06:47:00 <oerjan> i just don't think it works.
06:47:40 <shachaf> would you prefer it with an elaborate story about an editor who becomes an ear
06:47:54 <oerjan> `quote ear
06:47:55 <HackEgo> 8) <Madelon> Lil`Cube: you had cavity searches? <Lil`Cube> not yet <Lil`Cube> trying to thou, just so I can check it off on my list of things to expirence \ 12) IN AN ALTERNATE UNIVERSE: <pikhq> First, invent the direct mind-computer interface. <pikhq> Second, learn the rest with your NEW MIND-COMPUTER INTERFACE. \ 13) <fizzie after embedding so
06:48:02 <shachaf> an maybe pets a pooch, and then needs to do it again
06:48:07 <shachaf> a repetive action to be sure
06:48:09 <oerjan> `quote bear
06:48:09 <HackEgo> 39) <GregorR-L> If I ever made a game where you jabbed bears ... <GregorR-L> I'd call it jabbear. \ 163) <Gregor> "* There is no scientifically-justifiable reason to exclude pornography, which is a vital part of the web ecosystem. However, bear in mind that we're tracing JavaScript, not MPEG and JPEG decoding." <Gregor> ^^^ This bullet-point is m
06:48:54 <oerjan> we had a local meme involving an ear once. but i've forgotten it.
06:49:37 <oerjan> `quote \<ear
06:49:37 <HackEgo> No output.
06:49:58 <oerjan> `quote ear
06:49:59 <HackEgo> 671) <Vorpal> <ais523> northern ireland is quite a way to drag someone from scotland <-- not really. I just checked in google earth <ais523> Vorpal: but dragging people across water's a bit tricky \ 1128) <fizzie> Every time I end up on an audiophile web-crawl I get this feeling maybe we should just get rid of ears in general.
07:01:56 -!- PinealGlandOptic has joined.
07:09:46 -!- lambda-11235 has quit (Quit: Bye).
07:24:06 -!- gonad has joined.
07:24:22 -!- llue has quit (Read error: Connection reset by peer).
07:41:35 -!- llue has joined.
07:45:07 -!- gonad has quit (Ping timeout: 248 seconds).
07:54:06 -!- bender| has quit (Ping timeout: 248 seconds).
08:41:04 -!- AnotherTest has joined.
08:46:36 -!- llue has quit (Read error: Connection reset by peer).
08:46:43 -!- llue has joined.
08:46:43 -!- llue has quit (Changing host).
08:46:43 -!- llue has joined.
08:48:43 -!- J_Arcane has quit (Ping timeout: 244 seconds).
09:09:49 -!- nooga has joined.
09:33:59 -!- nooga has quit (Ping timeout: 260 seconds).
09:38:45 -!- bender| has joined.
09:45:22 -!- MoALTz has joined.
10:08:58 -!- Elronnd has quit (Quit: Let's jump!).
10:09:43 -!- nooga has joined.
10:11:13 -!- oerjan has quit (Quit: Nite).
10:14:52 -!- Elronnd has joined.
10:46:56 -!- llue has quit (Quit: That's what she said).
10:47:30 -!- lleu has joined.
10:48:24 -!- lleu has quit (Write error: Connection reset by peer).
10:48:48 -!- lleu has joined.
10:51:33 -!- earendel has quit (Ping timeout: 240 seconds).
10:58:18 -!- earendel has joined.
11:38:21 -!- earendel has quit (Quit: earendel).
11:39:59 -!- earendel has joined.
11:44:21 -!- lynn has joined.
11:44:25 -!- earendel has quit (Ping timeout: 250 seconds).
11:52:50 -!- earendel has joined.
12:07:25 -!- Treio has joined.
12:10:19 -!- nooga has quit (Ping timeout: 260 seconds).
12:14:43 -!- nooga has joined.
12:48:20 -!- boily has joined.
13:00:03 -!- gonad has joined.
13:00:13 -!- gonad has quit (Changing host).
13:00:14 -!- gonad has joined.
13:00:21 -!- lleu has quit (Read error: Connection reset by peer).
13:16:51 -!- esowiki has joined.
13:16:55 -!- esowiki has joined.
13:16:56 -!- esowiki has joined.
13:17:39 -!- esowiki has joined.
13:17:40 -!- glogbot has joined.
13:17:43 -!- esowiki has joined.
13:17:44 -!- esowiki has joined.
13:18:15 <boily> glogbot: gellogbot.
13:18:59 -!- Gregor has quit (Ping timeout: 248 seconds).
13:19:09 -!- PinealGlandOptic has quit (Ping timeout: 260 seconds).
13:19:15 -!- Gregor has joined.
13:20:47 * boily pokes Gregor
13:40:44 -!- earendel has joined.
14:02:48 <fizzie> Huhwhat.
14:05:37 <int-e> `wisdom
14:05:49 <HackEgo> smlist/Non-update notification for the webcomic Super Mega.
14:05:57 <int-e> Gregor's bot is still shellshocked?
14:06:37 * int-e doesn't know of any other urgent business concerning Gregor
14:08:47 -!- p34k has joined.
14:24:09 <HackEgo> [wiki] [[S.I.L.O.S]] https://esolangs.org/w/index.php?diff=46622&oldid=46615 * Rdebath * (+23) Formatting
14:29:30 -!- hydraz has quit (Quit: Bai.).
14:29:55 -!- hydraz has joined.
14:29:56 -!- hydraz has quit (Changing host).
14:29:56 -!- hydraz has joined.
14:31:51 -!- hydraz has quit (Remote host closed the connection).
14:35:27 -!- devhydraz has joined.
14:35:27 -!- devhydraz has quit (Changing host).
14:35:28 -!- devhydraz has joined.
14:37:06 -!- devhydraz has changed nick to hydraz.
14:38:44 -!- impomatic_ has quit (Quit: http://corewar.co.uk).
14:39:13 -!- nooga has quit (Ping timeout: 252 seconds).
14:53:22 -!- hydraz has quit (Quit: Bai.).
14:53:33 -!- hydraz has joined.
14:53:33 -!- hydraz has quit (Changing host).
14:53:33 -!- hydraz has joined.
15:11:59 -!- bender| has quit (Ping timeout: 250 seconds).
15:22:52 -!- lambda-11235 has joined.
15:35:04 -!- MDude has quit (Ping timeout: 260 seconds).
15:35:34 -!- nooga has joined.
15:40:15 -!- nooga has quit (Ping timeout: 276 seconds).
15:59:10 <b_jonas> fungot, do you fly a flag?
15:59:11 <fungot> b_jonas: one memory cell with fnord und mul div fnord the entire system in scheme is essentially an implementation?') on channel in case am being ignored, but i would be fine
15:59:55 -!- boily has quit (Quit: CLAIMED CHICKEN).
16:04:23 -!- MDude has joined.
16:20:19 -!- gonad has quit (Ping timeout: 244 seconds).
16:21:37 -!- nooga has joined.
16:22:37 -!- lleu has joined.
16:43:02 -!- Treio has quit (Quit: Leaving).
17:06:04 -!- ^v has quit (Ping timeout: 260 seconds).
17:07:20 -!- ^v has joined.
17:57:31 -!- jaboja64 has joined.
19:18:04 -!- jaboja64 has quit (Ping timeout: 252 seconds).
19:21:13 -!- jaboja64 has joined.
19:24:22 <HackEgo> [wiki] [[Digital root calculator]] https://esolangs.org/w/index.php?diff=46623&oldid=30995 * 217.236.224.221 * (+94) /* External resources */ Added Malbolge
19:26:56 <int-e> fungot: that's great, but would it be turing complete?
19:26:57 <fungot> int-e: fnord maybe i need some user space program to store packets sent to netfilter's queue or ulog targets? fnord stores them nicely from queue but i would just treat the input file
19:27:16 <FreeFull> No wonder this code didn't work
19:27:18 <FreeFull> Infinite loop
19:27:24 <FreeFull> I forgot to increment the counter
19:28:29 <int-e> hmm, counter-terrorism
19:30:14 <FreeFull> Not to mention other parts were bogus too
19:54:04 -!- ais523 has joined.
20:04:28 -!- ais523 has quit (Ping timeout: 250 seconds).
20:07:33 -!- Phantom_Hoover has joined.
20:07:43 -!- ais523 has joined.
21:33:31 -!- AnotherTest has quit (Quit: ZNC - http://znc.in).
21:52:03 -!- jaboja64 has quit (Ping timeout: 276 seconds).
22:24:33 -!- jaboja64 has joined.
22:40:07 -!- earendel has quit (Ping timeout: 268 seconds).
22:55:26 -!- Warrigal has changed nick to tswett.
23:06:54 -!- J_Arcane has joined.
23:14:35 -!- oerjan has joined.
23:25:45 -!- Nithogg has quit (Quit: WeeChat 1.4).
23:52:46 -!- ais523 has quit.
23:52:56 -!- ais523 has joined.
2016-03-20
00:09:25 <tswett> I searched for "There is no scientifically-justifiable reason to exclude pornography, which is a vital part of the web ecosystem." and just got logs of this channel.
00:09:29 <tswett> And stuff unrelated to that quote.
00:10:25 <ais523> tswett: I think it was invented by someone /in/ this channel, when they were writing something in a serious or semi-serious style
00:10:30 <ais523> not sure though
00:11:10 <ais523> if I am right on that, it was probably fizzie, due to a quick guess at mine as to who would a) agree with that statement, and b) be doing something in which the sentence would have a reasonable context
00:11:22 <ais523> b) is the main factor here, probably most of the channel agrees with a)
00:14:54 -!- MDude has quit (Quit: KVIrc 4.2.0 Equilibrium http://www.kvirc.net/).
00:15:55 <Taneb> I've got a new favourite out of context bible quote
00:16:06 <Taneb> "Fear ye not therefore, ye are of more value than many sparrows."
00:17:26 <tswett> So I've got one of those Chinese magic puzzle cubes.
00:17:56 <tswett> Also known as "like a Rubik's cube but better".
00:18:12 <tswett> This one's the "Pocket Cube"—2x2x2.
00:19:06 <tswett> I'm studyin' this bad boy.
00:20:07 <tswett> A pretty decent sequence is R U R' U'. It only affects four pieces, and it has order 6.
00:21:20 <tswett> Of course, cube theorists call it [R,U].
00:23:39 <tswett> It's not easy to explain what [R,U] does, but of course it generates sequences [R,U]^2, of order 3, and [R,U]^3, of order 2, and it can be understood in terms of these.
00:24:08 <ais523> Taneb: that statement is a lot more reassuring than its opposite would be
00:24:30 <tswett> Ye are of less value than many sparrows?
00:24:39 <ais523> tswett: you also have to negate the start
00:25:00 <ais523> the resulting statement would become disconcerting, rather than reassuring
00:25:08 <tswett> Fear ye therefore; ye are of less value than many sparrows?
00:25:19 <ais523> also, a 2×2×2 cube is equivalent to the corners of a 3×3×3 cube
00:25:24 <tswett> Sure is.
00:25:25 <ais523> tswett: I'm glad the Bible doesn't say that *shudders*
00:25:28 <ais523> I don't know how I'd react
00:25:59 * ais523 wonders where to put the quantifier
00:26:05 <tswett> [R,U]^3 flips the FR edge and the UB edge.
00:26:37 <ais523> as in, is it "there is a group of many sparrows so that ye are of more value than that group of sparrows"
00:27:04 <ais523> or "out of all sparrows, many possible choices of sparrow would give ye more value than that sparrow"?
00:27:26 <tswett> [R,U]^2 rotates both of the FR corners clockwise, and both of the UB corners counterclockwise.
00:30:30 <tswett> Lemme see about [R,U]. [R,U] moves UFR to DFR like F, and DFR to UFR like R; it also moves UBR to UBL like U', and UBL to UBR like B'.
00:31:43 <izabera> :o people are talking about the rubiks cube
00:32:24 <tswett> The two-by-two-by-twube.
00:32:31 <izabera> still
00:34:10 <izabera> you were talking about edges
00:34:14 <izabera> 2x2 has none
00:34:46 * izabera feels betrayed
00:35:03 <tswett> Sure it does. All cubes have edges. It just doesn't have pieces which correspond to those edges.
00:35:34 <izabera> that's a bit of a stretch
00:35:55 <tswett> In any case, by "the edge" I meant "the two pieces lying along the edge".
00:36:23 <int-e> the 2x2x2 cube has edges but no edge pieces.
00:37:06 <izabera> that's just the traditional design
00:37:33 <izabera> i'm sure someone could come up with a center that doesn't need any kind of hidden edges
00:39:25 -!- p34k has quit.
00:39:40 <ais523> you could create a spherical 2×2×2 cube
00:39:44 <int-e> edges. this thing has edge pieces but no edges: http://www.twistypuzzles.com/museum/large/00579-01.jpg
00:39:50 <ais523> except it wouldn't be a cube any more
00:39:54 <ais523> just isomorphic to one
00:40:00 <int-e> (I was looking for a 2x2x2 one, but that's what I found)
00:40:13 <tswett> izabera: it is impossible to create a cube of any kind which does not have edges.
00:40:31 <tswett> Rubik's or otherwise.
00:40:34 -!- XorSwap has joined.
00:40:55 <izabera> prove it
00:41:17 <tswett> All cubes have faces, right?
00:41:26 <izabera> yes
00:41:34 <tswett> And all cubes have pairs of adjacent faces, right?
00:41:39 <izabera> yes
00:41:53 <tswett> What do you call the area at which two adjacent faces meet?
00:41:58 -!- nooga has quit (Ping timeout: 244 seconds).
00:42:02 <izabera> the other kind of edges
00:42:16 <tswett> That's the kind of edge I've been talking about this whole time.
00:42:50 <izabera> maybe you should have talked about the right kind of edges this whole time
00:43:06 <tswett> I don't have anything to say about that kind of edge.
00:43:23 <ais523> tswett: hmm, what if the faces /don't/ meet, and are only adjacent in the sense that they're aligned at 90 degrees from each other?
00:43:53 <tswett> That's an interesting thought.
00:44:22 <tswett> You could make a "cube" shaped like an octahedron with the corners just a little bit truncated.
00:45:51 <tswett> All right, where have they got some algorithms for this darned thing?
00:45:51 <int-e> there's a tetrhedron version of the 2x2x2 cube: https://en.wikipedia.org/wiki/Pyramorphix
00:48:00 <tswett> This sequence does some kind of corner rotation, but also has the effect of doing L' R on the whole thing: L' U R' D2 R U' R' D2 R2
00:48:15 <tswett> Let me see if I can adjust it so it doesn't do that.
00:50:10 <tswett> Let's see. Just start with R' instead of L', then rotate the rest of it pitch-up, that should give you... R' F R' B2 R F' R' B2 R2.
00:50:27 <tswett> Yup. Now let me see what that did.
00:51:11 <tswett> That sequence rotates UBL, UBR, and UFR clockwise like U.
00:52:36 <tswett> If you append U' to it, it instead swaps the UF pieces like U.
00:53:10 <int-e> try R U2 R' U' R U' R' U2
00:53:47 <izabera> found the cuber
00:54:21 <tswett> Ooh, that's a fun one.
00:54:40 <tswett> That one rotates UBL, UFL and UFR counterclockwise.
00:54:46 <tswett> As in...
00:55:01 <tswett> The one I previously mentioned moves the corners around forming a clockwise rotation.
00:55:08 <tswett> This one rotates each corner counterclockwise in place.
00:55:18 <int-e> so you can solve the cube now :P
00:56:26 <izabera> wouldn't it be better to just link a guide or something
00:56:43 <tswett> Can I find a big list of 2x2x2 algorithms somewhere?
00:56:58 <izabera> look up ortega method
00:57:18 <int-e> well, cuber. I can solve them, but I struggle with the notation, and I'm not very fast. "them" being, in principle, arbitrary size (4x4x4 is the most fun one, perhaps)
00:59:42 <int-e> People probably have big lists... but I don't know.
01:07:54 <tswett> Looks like I'm looking for "CLL" algorithms at the moment.
01:08:00 <tswett> I assume that means "completing the last layer".
01:08:11 <izabera> c is for corners
01:09:37 <tswett> But this is 2x2x2.
01:11:16 -!- XorSwap has quit (Quit: Leaving).
01:12:42 <tswett> Let me find my favorite algorithm for flipping an edge around.
01:13:53 <int-e> disassemble; reassemble... unless you have an even sized cube larger than 2x2x2
01:15:30 <tswett> I just did it, actually.
01:15:57 * int-e thinks
01:17:17 <tswett> Here's how to do it: https://www.speedsolving.com/wiki/index.php/Special:MediawikiAlgDB?mode=view&view=default&puzzle=2&group=CLL&cid=27
01:18:22 <int-e> I see what you mean
01:19:11 <int-e> still won't work on odd sized cubes, but you didn't care about that
01:21:14 -!- MDude has joined.
01:40:52 <tswett> Though I'm doing those algorithms on a solved cube and getting some funny results.
01:42:00 <tswett> Oh well.
01:44:02 <tswett> R U F2 U R F R' U F R U2 is an algorithm for flipping the UL edge around.
01:45:36 <tswett> And its reverse is the same thing, of course: U2 R' F' U' R F' R' U' F2 U' R'
01:46:14 <tswett> It doesn't seem like a very beautiful algorithm.
01:51:34 -!- XorSwap has joined.
02:02:46 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
02:16:31 -!- jaboja64 has quit (Ping timeout: 244 seconds).
02:32:21 -!- XorSwap has quit (Quit: Leaving).
02:34:50 <ais523> philosophical question: is it possible to use test driven development to develop a testsuite?
02:35:04 <ais523> one of the things I'm writing at the moment is a generic terminal testsuite
02:35:14 <ais523> and I am testing it as I write it by using it to test terminals
02:35:25 <ais523> I am wondering what other development styles I could theoretically have used instead
02:37:56 -!- jaboja64 has joined.
02:47:36 <tswett> Of course you can do that.
02:47:52 <tswett> Just come up with some things that work and some things that don't work and test to see if they're caught as they're supposed to be.
02:50:11 <ais523> tswett: so in other words, I have to write a terminal that's broken in every possible way?
02:50:17 <ais523> and I have to do this /before/ writing my terminal testsuite?
02:50:40 <ais523> I think this leads to an impossible recursive loop, because the test tests would require the tests I'm originally trying to write in order to test them
02:51:13 <tswett> I could probably come up with an answer for that if it weren't for the fact that I just had a bottle of Dragon's Milk.
02:52:05 <ais523> come to think of it, I'd /also/ need a terminal that's working in every possible way :-D
02:52:07 <ais523> that sounds like a useful thing
02:52:30 <coppro> TIL that according to Tolkien, Bilbo and Frodo's names were actually Bilba and Froda, but he translated them as Bilbo and Frodo to align closer to the reader's expectations of masculine names
02:52:48 <zzo38> Maybe I should write a terminal emulator, to avoid the mess of xterm and the insufficiency of everything else
02:53:22 <zzo38> coppro: I did not know that
02:56:18 <ais523> zzo38: what do you consider insufficient in non-xterm terminals?
02:56:27 <ais523> as in, what about them makes them want to not use them?
02:56:55 <tswett> I knew that about Bilbo but not Frodo.
02:57:58 <zzo38> I think the other terminals do not use bitmap fonts is one, and also many ones add too much extra stuff as well as missing stuff too
03:02:13 <ais523> there aren't many bitmap fonts that cover all of Unicode
03:02:26 <ais523> additionally, providing bitmap fonts in enough sizes to let everyone scale their terminals as they want is difficult
03:02:47 <ais523> so I think most terminals don't use bitmap fonts because of practical considerations, rather than because they think they're inherently bad
03:06:55 -!- tromp has joined.
03:10:09 <zzo38> I would to use only bitmap fonts, but it wouldn't have Unicode nor have KOI8, anyways. (Unicode is not even compatible with the pieces of big Sigma in the DEC Technical set anyways.)
03:12:24 <zzo38> (We would need to make up a UTCE bitmap font. A UTCE font is a .pcf font with two bytes per character.)
03:13:36 <zzo38> (Also requiring that character sizes are all the same for byte1 being 0 to 31, and for characters with byte1 being 128 to 255, the width must be exactly twice as much.)
03:16:00 <zzo38> The terminal emulator would then include the internal tables to convert ISO 2022 characters into UTCE characters
03:23:50 <zzo38> Another thing is that xterm does not support user-defined fonts, and there is a reasonable reasons for such, but it could be implemented anyways as an option only if the default font already has the correct size
03:27:11 -!- llue has joined.
03:27:27 -!- lleu has quit (Read error: Connection reset by peer).
03:27:30 -!- tromp has quit (Remote host closed the connection).
03:48:15 <zzo38> The other thing I would have is three files of source codes, one is for DEC emulation, one is for Tektronix emulation, and one is for use with X window, therefore you can omit the files you do not need and can more easily to be use on different computer; do you like this?
03:48:54 -!- lynn has quit (Ping timeout: 246 seconds).
03:54:01 -!- bender| has joined.
03:58:44 <ais523> zzo38: does anyone actually use Tektronix emulation?
03:58:54 <ais523> that's one feature I'd omit I think
03:59:01 <ais523> being able to comple out parts of the code is good though
04:01:04 -!- tromp has joined.
04:02:38 -!- bender| has quit (Ping timeout: 268 seconds).
04:04:48 * oerjan discovers he forgot to restart the putty session after it dropped 4 hours ago
04:05:01 <oerjan> no wonder it was quiet
04:05:09 -!- jaboja64 has quit (Ping timeout: 276 seconds).
04:22:05 -!- MoALTz_ has joined.
04:25:10 -!- MoALTz has quit (Ping timeout: 244 seconds).
04:26:10 -!- treaki__ has joined.
04:29:22 -!- treaki_ has quit (Ping timeout: 260 seconds).
05:05:11 -!- tromp has quit (Remote host closed the connection).
05:32:39 <zzo38> ais523: Yes, if Tektronix emulation is a separate source file then you can easily omit it if you do not need it, although the compile scripts will need to take that into account too.
05:34:48 -!- bender| has joined.
05:37:56 <zzo38> That is one main reason to be a separate file, which is because often it will not even be in use, so it is entirely separate from the others. For example you can have preprocessor symbols USE_DEC and USE_TEKTRONIX and then tell it to link or not link file dec.o and tektronix.o
05:38:57 <zzo38> Unless you are making your own front-end for systems other than X you would also need main.c then.
05:42:49 -!- bender| has quit (Ping timeout: 240 seconds).
05:43:51 <HackEgo> [wiki] [[Special:Log/newusers]] create * SlackerSnail * New user account
05:45:32 -!- Alcest has quit (Remote host closed the connection).
05:45:41 <zzo38> Another thing xterm does not do is to be able to adjust key repeat, although this is because X does not support changing it only per window. But, another idea would be to fake it if the DEC key repeat codes are used and based on its own timers when that happens.
05:47:41 <zzo38> I would aim for more complete DEC and Tektronix emulation than xterm and other programs has.
05:57:48 <zzo38> That mean everything included, including Sixel and ReGIS graphics, Tektronix APL mode, DEC Technical characters, local mode (this can be used to alter settings with escape codes, for example), etc.
05:59:45 <zzo38> Not all actual features of the user setting menu in DEC terminals would actually be in there though, since some are not applicable to terminal emulators, such as settings for power, while others are unneeded because other settings of the terminal emulator can be used instead, such as brightness controls.
06:01:05 -!- hppavilion[1] has joined.
06:01:28 <hppavilion[1]> WE WILL BE A FNORD / COME ON TELL US THAT YOU WANT US / WE WON'T BE IGNORED / NOW IT'S TIME FOR OUR REWARD
06:01:36 <hppavilion[1]> I have no idea why I had to say that
06:05:53 -!- tromp has joined.
06:06:04 <zzo38> Then you must learn why.
06:10:17 -!- tromp has quit (Ping timeout: 250 seconds).
06:10:35 <zzo38> Why are the formats of pictures in Xlib called XYBitmap and XYPixmap and ZPixmap? Where do the names come from?
06:13:59 <HackEgo> [wiki] [[Deadfish]] https://esolangs.org/w/index.php?diff=46624&oldid=46610 * SlackerSnail * (+724) /* Implementations */
06:14:36 <HackEgo> [wiki] [[Deadfish]] https://esolangs.org/w/index.php?diff=46625&oldid=46624 * SlackerSnail * (+1) /* =SmileBASIC */
06:16:46 <zzo38> Is there any library to write a X proxy program with?
06:17:39 -!- hppavilion[1] has quit (Ping timeout: 260 seconds).
06:43:08 <deltab> "The data for a pixmap is said to be in "ZFormat" if it is organized as a set of pixel values in scanline order."
06:43:21 <deltab> I guess because of the path of the electron beam
06:48:38 -!- lambda-11235 has quit (Quit: Bye).
06:51:35 <zzo38> I did guess that, although the electron beam goes in the same direction for XYBitmap and XYPixmap formats too, and they are also in the scanline order.
06:52:26 <zzo38> The difference is that XYPixmap stores each plane as a separate bitmap while ZPixmap stores each pixel as a single unit.
06:53:36 -!- AlexR42 has joined.
07:12:22 * deltab nods and shrugs
07:55:04 -!- ski has quit (Ping timeout: 260 seconds).
08:00:12 -!- gonad has joined.
08:00:16 -!- llue has quit (Read error: Connection reset by peer).
08:06:26 -!- tromp has joined.
08:11:30 -!- tromp has quit (Ping timeout: 276 seconds).
08:44:25 -!- J_Arcane_ has joined.
08:46:01 -!- J_Arcane has quit (Ping timeout: 252 seconds).
08:46:05 -!- J_Arcane_ has changed nick to J_Arcane.
08:54:19 -!- AnotherTest has joined.
09:07:07 -!- bender| has joined.
09:07:21 -!- tromp has joined.
09:08:21 -!- nooga has joined.
09:11:33 -!- tromp has quit (Ping timeout: 240 seconds).
09:52:06 -!- oerjan has quit (Quit: Nite).
10:00:01 -!- lynn has joined.
10:14:15 -!- ais523 has quit (Ping timeout: 264 seconds).
10:52:46 -!- AlexR42 has quit (Quit: My Mac has gone to sleep. ZZZzzz…).
10:55:24 -!- Lord_of_Life has quit (Excess Flood).
10:59:08 -!- Lord_of_Life has joined.
11:01:06 -!- Reece` has joined.
11:04:33 -!- Reece` has quit (Client Quit).
11:07:53 -!- tromp has joined.
11:12:01 -!- tromp has quit (Ping timeout: 240 seconds).
12:05:00 -!- carado has joined.
12:16:47 -!- lishaoshuai has joined.
12:17:26 <lishaoshuai> hello
12:17:33 <lishaoshuai> hey ,guys
12:17:34 <izabera> `welcome lishaoshuai
12:18:05 <HackEgo> lishaoshuai: 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.)
12:19:01 <izabera> only 31s
12:19:04 <izabera> good bot
12:19:25 <lishaoshuai> oh,my English is poor.
12:21:52 <lishaoshuai> I am come from China.
12:22:05 <lishaoshuai> I am coming from China.
12:22:34 <lishaoshuai> I am learning Linux.
12:22:46 <lishaoshuai> It's interesting.
12:23:06 <izabera> yay
12:23:57 <lishaoshuai> But it is too difficult to me.
12:24:20 <izabera> what's the problem?
12:29:43 <lishaoshuai> thinks, i am junior student . For me,if i want to go to a major company ,I must know TCP/IP and a lot about Linux.I think you know the chinese company like Huawei,and Xiaomi.
12:31:41 <lishaoshuai> http://codecraft.huawei.com/ It's a topic about Huawei,It makes me headache.
12:34:14 <lishaoshuai> I think izabera that you can solve it. if you have interest and Please help me. My mail is 1049188593@qq.com .
12:35:27 <izabera> i can't read chinese
12:37:24 <lishaoshuai> what's your mail.
12:38:17 <lishaoshuai> I send the topic to you.i will translate it for you.
12:38:33 <lishaoshuai> :-)
12:38:45 <izabera> and what do i have to do with it?
12:41:00 <lishaoshuai> It's a code problem about the net.if you have interest,you can write your code or give me some ideas.
12:42:25 <izabera> your description is too vague
12:45:03 <lishaoshuai> It's the top-level code megagame.You know dijkstra?
12:45:16 <izabera> i do
12:45:22 <lishaoshuai> It's about it.
12:45:31 <izabera> still too vague
12:47:24 <lishaoshuai> Do you have interset on it? if you have,we can be a team.I will translate it in a mail for you.If not I can still introduce it for you.
12:48:18 <lishaoshuai> The first team can get 200000/6$.
12:48:43 <lishaoshuai> It's time to show your genius.
12:48:55 <izabera> it's time to fuck off
12:49:39 -!- nooga has quit (Ping timeout: 248 seconds).
12:49:47 <lishaoshuai> oh guys,sorry. i am shame to face to you. Ok,goodbye.
12:51:02 -!- boily has joined.
12:51:55 -!- lishaoshuai has quit (Quit: Leaving).
13:05:31 <HackEgo> [wiki] [[User:Rdebath]] https://esolangs.org/w/index.php?diff=46626&oldid=46612 * Rdebath * (+23480) Add some (!!) links to the table
13:08:04 -!- J_Arcane has quit (Ping timeout: 244 seconds).
13:16:33 -!- nooga has joined.
13:31:26 <int-e> In the meantime, the people of Carbo are almost bursting in bubbles of joy and excitement.
13:31:59 <int-e> `quote pro
13:32:16 <HackEgo> 14) <fungot> oerjan: are you a man, if there weren't evil in this kingdom to you! you shall find bekkler! executing program. please let me go... put me out! he's really a tricycle! pass him! \ 28) <ehird> is there a problem with it being carbonized :D <augur> yes: carbonized coffee bean is known more commonly as "charcoal" \ 57) <fungot> ehird: ev
13:41:30 <int-e> `quote third
13:41:36 <HackEgo> 548) <fizzie> I prefer the N64 controller, it's the only one that has place for my third hand. \ 579) <ais523> it's not a list of /all/ interesting esolangs, btw; otherwise you can take the first command from the first esolang, the second from the second, the third from the third, etc, then add 1 to all of them <ais523> and you get a new interesti
13:42:20 <b_jonas> `? kingdom
13:42:21 <HackEgo> kingdom? ¯\(°​_o)/¯
13:42:24 <b_jonas> `? kingdom come
13:42:24 <HackEgo> kingdom come? ¯\(°​_o)/¯
13:46:20 -!- J_Arcane has joined.
13:58:35 <boily> ais523's esolang diagonal argument.
13:58:47 <boily> `wisdom
13:58:51 <HackEgo> finnish/Finnish suomalaiset ei Perkeleistä on hakkapeliittaan. Ei saa peittää. Parasta ennen!
14:03:05 <fizzie> Wisdom for the ages.
14:03:11 <fizzie> `words --finnish 20
14:03:17 <HackEgo> tymällenneteell kylmituksensä tykypsyttävilla intyylitsemmistä suurenemänäni aamme ahdistamanne ahavolyyseltä myrityilta lavertaisemana agrologille luovaltasialla kirkkään hettaminäsi häirittavillä aborttumisemmiksesi ahertävinään kasvattavalle edustasautetui nittävissä
14:03:42 -!- MoALTz_ has changed nick to MoALTz.
14:03:46 <fizzie> Not the best set ever.
14:04:41 <fizzie> Only "ahdistamanne", "agrologille" and "kasvattavalle" are real words this time.
14:08:17 <fizzie> (Some vowel transmutation could fix "kirkkään" -> "kirkkaan", "häirittavillä" -> "häirittävillä" and "ahertävinään" -> "ahertavinaan" as well.)
14:08:59 <boily> “Finnish is not the devil, visit the Hakkapeliitta. Do not cover. Best before!”?
14:09:36 <boily> what's a Hakkapeliitta?
14:10:46 <olsner> https://en.wikipedia.org/wiki/Hakkapeliitta
14:11:08 <olsner> I guess you could call that "hackers"
14:12:43 <fizzie> There's no "visit" in there really. Though the first part doesn't really make any grammatical sense, so...
14:14:06 <olsner> maybe it's supposed to be an or, "Finnish isn't the devil or the hakkapeliittes."
14:14:11 <boily> `? French
14:14:16 <HackEgo> French? ¯\(°​_o)/¯
14:14:57 <boily> `le/rn French/Le français n'est pas le démon, visitez les Coupeurs. Ne pas couvrir. Meilleur avant!
14:15:03 <HackEgo> Learned «french»
14:18:24 <boily> `wisdom
14:18:26 <HackEgo> sparse matrix algorithm/Sparse matrix algorithms are a trivial special case of non-sparse matrix algorithms, by conjugating with the sparsification operation.
14:24:20 -!- tromp has joined.
14:28:40 -!- tromp has quit (Ping timeout: 244 seconds).
14:44:39 -!- bender| has quit (Ping timeout: 250 seconds).
14:47:19 -!- tromp has joined.
14:49:26 -!- Reece` has joined.
15:03:24 -!- lambda-11235 has joined.
15:29:40 -!- J_Arcane has quit (Read error: Connection reset by peer).
15:30:12 -!- J_Arcane has joined.
15:34:21 -!- p34k has joined.
15:40:58 -!- J_Arcane has quit (Ping timeout: 244 seconds).
15:58:19 -!- Vorpal has quit (Read error: Connection reset by peer).
15:58:53 -!- Vorpal has joined.
16:06:50 -!- J_Arcane has joined.
16:07:05 -!- jaboja has joined.
16:31:19 <boily> “Danish pronunciation: [ˈsmɶɐ̯ɐˌb̥ʁœðˀ]”. am I supposed to just cough the word?
16:33:30 -!- mad has joined.
16:34:31 <mad> oh man I have a hard problem
16:36:37 <mad> suppose you have a bunch of paths
16:36:47 <izabera> done
16:36:54 <int-e> /path/to/file
16:37:01 <int-e> those paths?
16:37:13 <mad> I was thinking on a 2d plane
16:37:21 <int-e> or paths in a graph? or ... that?
16:37:35 <b_jonas> int-e: no, still the dijkstra stuff for the “tpo-level code megagame”
16:37:36 <mad> or paths in a graph, that works as well
16:37:42 <b_jonas> yes, graphs
16:37:55 <mad> what's the requirement for this to be turing complete?
16:38:03 <int-e> oh do we have a translation now?
16:38:07 <mad> clearly you need some kind of infinitely repeating pattern
16:38:20 <b_jonas> mad: um... what's Turing complete/
16:38:22 <izabera> what is turing complete?
16:38:25 <b_jonas> mad: I don't get it
16:38:30 <mad> like a 2d grid
16:38:33 <int-e> what is the computation?
16:38:36 <b_jonas> the megagame?
16:38:46 <mad> int-e : following the path
16:38:47 -!- Reece` has quit (Quit: Leaving).
16:38:54 <int-e> meh.
16:38:57 <mad> if the path eventually stops then it halts
16:39:06 <mad> but the path can keep going forever
16:39:06 <lambda-11235> mad: You mean a state machine?
16:39:47 <mad> lambda-11235 : depending on how your infinite repeated grid is structured you either have a state machine or a turing machine
16:40:07 <mad> for instance if you have no infinite repetitions then it's a state machine, of course
16:40:36 <mad> if it's just an infinite 2d grid it's also a state machine because there's no difference between each grid cell
16:43:08 <mad> if it's a pattern that starts with something, but then has a different pattern that repeats rightwards, then paths in the rightwards repetition either keep going rightwards forever so they're not any different anymore, or the path go leftwards which means the number of iterations is finite (which also excludes being a Turing machine)
16:43:55 <mad> if it's a 2d grid but with a different pattern on the top side and left side, then it can be a Turing machine
16:44:48 <mad> because it's a 2 counter minsky machine using the X cell count and Y cell count as counters -> https://esolangs.org/wiki/Minsky_machine
16:45:38 <int-e> but only a single state now
16:45:55 <mad> so you need an infinity of different paths, some of which are finite (ie the turing machine halts), some of which are infinite (ie it doesn't halt)
16:46:32 <mad> int-e : well, in a repeated grid of paths, which one of the path within your repeated cell is your state
16:46:49 <b_jonas> mad: um, wait, there was a two-dimensional esolang that you're probably thinking of. the two-dimensional language that has an instruction pointer and direction like befunge, a repeating pattern, and able to emulate a two-register counter machine
16:46:57 <b_jonas> which was that?
16:47:18 <mad> yes that's what I'm talking about
16:47:31 <mad> https://esolangs.org/wiki/nopfunge
16:47:49 <mad> ok this brings me to the actual question I wanted to ask
16:47:56 -!- copumpkin has quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…).
16:48:21 <b_jonas> mad: ah, that's it, yes
16:49:02 <mad> Is it possible to design a path grid geometry that has an infinity of different path but isn't Turing complete?
16:49:10 <b_jonas> nopfunge
16:49:46 <mad> Or all grid geometries that have an infinity of different paths necessarily turing complete?
16:51:51 <mad> the 2d grid with a different strip on top and left is possibly the simplest grid with an infinity of different paths, and even that one is turing complete
16:52:22 <mad> so I'm conjecturing that all grid geometries with an infinity of different infinte paths are also turing complete
16:53:38 <b_jonas> Was someone able to prove 3SP turing-complete yet by the way?
16:53:45 -!- boily has quit (Quit: DISCARDED CHICKEN).
16:54:44 <int-e> so I'm conjecturing that all <undefined> with an infinity of different <needs to be defined in the context of first <undefined>> are also turing complete
16:54:53 * int-e can't make sense of that.
16:54:55 <mad> And I'm also conjecturing that all turing complete systems contain an infinitely different grid geometry when mapped into paths
16:55:51 <mad> int-e : hmm, let me try to explain it simpler
16:56:37 <mad> a finite set of 2d paths are obviously not turing complete
16:57:20 <mad> like, if you draw a bunch of arrows on a sheet of paper
16:57:26 <mad> and follow the arrows
16:57:39 <mad> it has to stop because you can only have so many arrows
16:58:08 <Vorpal> mad: could also go into a loop
16:58:19 <mad> yes
16:58:28 <mad> but then you can't have an infinite tape
16:58:36 <Vorpal> true
16:58:39 <mad> so to build a turing complete system, you have to add the possibility for some kind of infinite repetition
16:58:57 <Vorpal> I don't really understand how nopfunge is TC, but that is amazing
16:59:33 <Vorpal> mad: btw, Befunge-98 is probably not TC for the same reason that C isn't TC
16:59:37 <b_jonas> Vorpal: do you understand why a two-counter machine is turing-complete? or at least a three-counter machine?
16:59:50 <b_jonas> Vorpal: or fractran?
16:59:56 <Vorpal> b_jonas: I would have to read up on those, I'm not really familiar with either
16:59:59 <mad> Vorpal : it uses X and Y position as bignums, then absuses those as an infinite tape
17:00:08 <Vorpal> mad: ah
17:00:32 <b_jonas> Vorpal: after you read up on the, you'll find out that nopfunge can simulate a two-counter machine
17:00:46 <Vorpal> b_jonas: well that is how it usually goes to show something is TC
17:00:50 <b_jonas> ais calls these thingies Minsky machine
17:00:57 <b_jonas> s/machine/machines/
17:01:21 <b_jonas> They're essentially multi-tape Turing machines that can't write their tape, only read
17:01:50 <mad> so yeah if you have an infinite number of copies of a sheet of paper with arrows on it arranged in an infinite 2d grid that extends in all directions, you still don't have a turing machine
17:02:02 <Vorpal> Yes that was one part I was wondering about. How it kept state without writable state as it were
17:02:07 <mad> because you have no way of knowing which copy you're on
17:02:29 <mad> it's as if you made the left side loop with the right side, and the top side loop with the bottom side
17:02:34 <b_jonas> Vorpal: the state, apart from the finite state a Turing machine can keep in its cpu, is kept in how far the tape heads are from the start
17:02:46 <Vorpal> right
17:02:49 <b_jonas> Vorpal: that distance is a "counter" when you regard them as a Minsky machine
17:03:00 <b_jonas> but they can only detect whether the counter is zero or nonzero
17:03:00 <Vorpal> Makes sense
17:03:11 <Vorpal> yes that was the next question
17:03:16 <b_jonas> this is why to do anything reasonable, any counter machine will need exponential time
17:03:33 <b_jonas> because it has to store arrays encoded as big numbers
17:03:36 <Vorpal> Ah
17:03:50 <b_jonas> if you have enough tapes, you can divide a counter by two or multiply by two, thus push or pop a bit
17:04:16 <Vorpal> So completely impractical then XD
17:04:23 <mad> if instead of an infinite 2d grid that extends in all directions, you make it only extend rightwards and downwards, and have a different pattern on the left side and a different pattern for the topside (plus potentially a different one for the topleft corner), then you can count the number of repetitions from the left side or top side
17:04:32 <b_jonas> now it turns out that three counters are enough, because you use two to store two stacks of bits, and one as scratch to do the divisions or multiplications
17:04:33 <mad> yes this is super impractical :D
17:04:55 <b_jonas> But it also turns out, and I admit I don't understand why, that two counters are also enough, but in that case the slowdown isn't exponential, it's double-exponential.
17:05:22 <Vorpal> mad: anyway, it is TC, unlike normal Befunge-98. Though 98 is only not TC due to the sizeof problem
17:05:26 <b_jonas> One counter definitely isn't enough for turing-completeness though, since a single-counter machine is weaker than a stack machine
17:05:59 <mad> you're basically storing your turing machine infinite tape as two stacks encoded as something like 2^w * 3^x * 5^y * 7^z
17:06:10 <b_jonas> Vorpal: anyway, ais523 calls these counter machines Minsky machines, and has some esolangs where he examines restricting them in some way and seeing how powerful they remain
17:06:17 <Vorpal> Ah
17:06:37 <b_jonas> restrict them in different ways than reducing the number of counters that is
17:06:51 <b_jonas> so there's http://esolangs.org/wiki/The_Amnesiac_From_Minsk
17:06:52 <mad> and then you compute checking if your bignum is divisible by 2/3/5/7 by bouncing between the left side and top side
17:07:02 <mad> and so forth
17:07:19 <b_jonas> mad: ah yes... evil
17:07:50 <mad> so the number of iterations to do anything useful is, like... super-hyper-exponential
17:07:55 <b_jonas> no no
17:07:58 <b_jonas> it's only double-exponential
17:08:06 <mad> "only"
17:08:07 <mad> :D
17:08:14 <b_jonas> mad: you haven't been on #esoteric enough
17:08:27 <b_jonas> we have much more impractical languages
17:09:02 <b_jonas> sure, I certainly prefer computation models that incur only quasi-linear slowdown
17:09:05 <b_jonas> but still
17:09:19 <b_jonas> this is #esoteric, so people don't restrict themselves to those
17:09:44 <Vorpal> I think I'll keep to befunge-98. It is in fact by far the most practical esolang
17:09:51 <Vorpal> If you actually want to get stuff done
17:10:10 <Vorpal> It is a pain to write interpreters for though, I should know, having written 2
17:10:28 <mad> so if you have some mechanism to build some infinite grid of paths
17:10:39 <Vorpal> fungot: right?
17:10:39 <fungot> Vorpal: and scheme48's byte-code.
17:10:49 <Vorpal> that was oddly on topic
17:11:21 <b_jonas> Vorpal: what interpreters have you written in befunge?
17:11:30 <Vorpal> b_jonas: for befunge
17:11:31 <Vorpal> not in
17:11:41 <Vorpal> I have written programs in it, but no interpreters
17:11:56 <mad> if, after removing all the paths that are "the same" behavior-wise (ie symmetries), you end up with only finite paths, then it's not turing complete
17:11:57 <Vorpal> b_jonas: fungot runs on/used to run on my cfunge
17:11:57 <fungot> Vorpal: of course, it would
17:12:12 <Vorpal> And I wrote a funge-98 interpreter in erlang too
17:12:13 <b_jonas> Vorpal: ah!
17:12:48 <Vorpal> b_jonas: I lost most programs I wrote in the language in the disk crash before I learned to backup many years ago
17:13:01 <mad> what I'm conjecturing is that if after removing all the paths that are "the same" behavior-wise, there are any infinite paths left, then it _has_ to be turing complete
17:14:09 <b_jonas> mad: I don't know if you care, but either you haven't told us enough context about this path thing, or you're not making sense
17:14:33 -!- jaboja has quit (Ping timeout: 240 seconds).
17:14:34 <mad> well
17:14:40 <mad> I'm generalizing the whole thing
17:14:46 <b_jonas> fungot: do you care if you don't make sense/
17:14:46 <fungot> b_jonas: are you doing? xd a 2d fnord etc. :)
17:15:17 <mad> for instance, the infinitely repeated 2d grid is a "type" of grid
17:15:37 <mad> you've also got the infinitely repeated 1d grid (not turing complete)
17:16:43 <mad> infinitely repeated 3d grid (which I think is turing complete under the same conditions as the 2d grid - ie you have some kind of end or ledge to the pattern which lets you count your position in the grid)
17:17:10 <mad> you also have some fractals
17:17:29 <mad> as a way of generating infinite sets of paths
17:17:54 <mad> some of which are going to be turing complete
17:18:50 <mad> in particular the ones that have some binary-tree kind of thing going on
17:20:40 <mad> it's also possible that when mapped in 2d, you have to have the possibility of wire crossings or else it's not turing complete
17:21:46 <mad> basically I found some way of mapping potentially turing-complete systems into shapes and trying to figure out what you can learn from that :D
17:23:21 -!- jaboja has joined.
18:01:32 -!- sebbu has quit (Ping timeout: 244 seconds).
18:01:58 -!- jaboja has quit (Ping timeout: 260 seconds).
18:03:19 <tswett> Since nobody asked for it, here's the 2x2 algorithm for swapping UFL and UBL like U: U' R' F R' B2 R F' R' B2 R2
18:03:57 <b_jonas> this channel does rubik's cubes? I didn't know, although I'm not too surprised
18:04:16 <tswett> I got one in the mail yesterday.
18:04:46 -!- jaboja has joined.
18:05:06 <tswett> I think there's at least one other person here who also does them.
18:05:21 <b_jonas> me, but not too much
18:05:38 <b_jonas> I've even been to the #rubik a bit
18:06:06 <b_jonas> but my cuber-fu has lapsed a lot because I didn't practice much for years now, and it never was good in first place
18:06:22 <b_jonas> I still feel the attraction though
18:06:46 <b_jonas> and should practice more some day and concentrate on improving my particular stumbling points
18:07:26 <b_jonas> (including color neutrality)
18:07:32 -!- mad has quit (Quit: Pics or it didn't happen).
18:12:48 <tswett> I wonder how many people are good at "unsolving" cubes.
18:12:59 <tswett> Take a scrambled cube and a solved cube, and make the solved one look like the scrambled one.
18:13:35 <myname> sounds like one added layer of abstraction
18:13:47 <myname> if you can solve it, you should be aböe to produce any state
18:13:59 <myname> it may take longer, though
18:14:09 <int-e> (this may not be true for the larger cubes)
18:14:38 <myname> never done those, but i get the problem
18:14:39 <b_jonas> tswett: given the crazy stuff cubers do, there are probably people competing in that. with all variants, like one-hand each for the read-only template cube and the cube, one hand for the two together, feet, etc.
18:17:46 <lynn> I seem to recall there are algorithms for cycling edges, or swapping corners, or something like that?
18:18:13 <myname> yeah
18:18:37 <lynn> Maybe the "simplest" way to solve a cube (or recreate a scrambled one) is applying those a billion times
18:18:40 <myname> scrambling is basically just a layer of abstraction that maps each tile to the finishing tile
18:18:43 <b_jonas> lynn: yes. a bit tedious (in the case of corners) but very useful for blind solving
18:18:51 <b_jonas> lynn: and no, it's not the simplest way
18:19:11 -!- jaboja has quit (Ping timeout: 268 seconds).
18:19:15 <tswett> But is it the "simplest" way?
18:19:20 <int-e> paint :P
18:20:20 <b_jonas> lynn: the simplest way to recreate a solved cube is to just use an ordinary solving method *forwards* but going to the right state
18:20:44 <b_jonas> the alternate way is the solve the template cube, writing the moves to paper, and then applying the moves *backwards* to a pristine cube
18:21:13 <tswett> I think the simplest way to recreate a given cube is by making random moves until you find that you've succeeded.
18:21:15 <lynn> b_jonas: Well, as tswett pointed out, by "simplest" I rather mean... "dumbest", maybe
18:21:29 <b_jonas> tswett: oh, bogosort?
18:21:31 <b_jonas> `? bogosort
18:21:35 <lynn> Oh, that *is* even dumber.
18:21:44 <HackEgo> bogosort? ¯\(°​_o)/¯
18:21:49 <b_jonas> WHAt
18:21:54 <b_jonas> we don't have an entry for that/
18:22:03 <lynn> Anyway ordinary solving methods need all kinds of algorithms :<
18:22:24 <lynn> If you learn the swappy ones, you can use just two and apply them everywhere! (Maybe?)
18:24:22 -!- llue has joined.
18:24:44 <tswett> You can probably find just one algorithm that you can use for everything.
18:24:55 <tswett> Maybe one that, like, swaps two corners and also rotates three edges.
18:26:45 <int-e> You could take the 12 simple algorithms that each permute four edge and four corner pieces at a time... *ducks*
18:27:25 <int-e> (aka quarter turns)
18:28:12 -!- gonad has quit (Ping timeout: 260 seconds).
18:28:16 -!- tromp has quit (Remote host closed the connection).
18:28:31 <b_jonas> you could take just _two_ algorithms that generate the whole cube group as a group (or as a semigroup, it's the same thing since it's finite), and use them (without any conjugation or anything). you just wouldn't be able to figure out when to apply which one.
18:30:25 <int-e> 4 algorithms seems reasonable to me
18:31:17 <b_jonas> int-e: together with conjugations by whole cube rotations, and conjugation by the cube mirroring outer conjugation?
18:31:18 <int-e> (I'm assuming that one can solve one layer intuitively)
18:32:11 <int-e> b_jonas: yes, some conjugation will be involved. but that sounds scarier than it is in practice (as I'm sure you're aware)
18:32:23 <b_jonas> of course!
18:32:51 <b_jonas> mind you, I have serious problems with color-neutrality, which means I don't conjugate algorithms as efficiently as I should
18:33:07 * int-e has never cared about efficiency much
18:33:42 <int-e> (so for example, 3x3x3 takes me a about a minute, give or take)
18:34:17 <b_jonas> that's still better than me. I couldn't yet go to under one minute in average, and I'd need more practice and learning stuff for that
18:34:51 <b_jonas> (not specifically color neutrality though, just improving the recognition of some of the steps of the method, as well as some physical turning practice, would let me)
18:35:22 <b_jonas> I could do under 2 minutes in average though
18:36:06 <int-e> Hmm sounds like color neutrality should be the least of your worries.
18:36:37 <b_jonas> My biggest regret about cubes is that the silver mirror cube wasn't yet available to me during high school, so I couldn't turn the cube under the desk without looking at it.
18:36:42 -!- pelegreno has quit (Remote host closed the connection).
18:36:50 <b_jonas> And if you keep glancing at the cube under the desk, high school teachers notice that.
18:37:10 <int-e> anyway, to improve I believe I would have to start learning a million algorithms (well, maybe 3 dozen to start with) and I just can't be bothered.
18:37:17 <b_jonas> int-e: yes, I know, color neutrality is just the easiest to describe problem I have
18:37:22 <int-e> my top layer has 4 distinct phases.
18:37:49 <int-e> (non-standard too: flip edges; place corners, turn corners, place edges)
18:38:52 <b_jonas> int-e: what? that's the standard order
18:39:07 <b_jonas> or at least, the best one
18:39:29 <b_jonas> but the last layer isn't the one I'm having problems with. it's before that.
18:40:05 <tswett> I don't really care about speed at the moment. I think move efficiency is more important to me.
18:40:11 * int-e can't track pieces, so the first two layers are also fairly slow.
18:40:37 <int-e> but oh well, fast enough to impress laypeople.
18:40:45 <b_jonas> tswett: there are competitions for that too
18:41:22 <int-e> (laypeople are also easily impressed by just seeing a 5x5x5 cube)
18:42:08 -!- copumpkin has joined.
18:42:18 <int-e> or this one, https://en.wikipedia.org/wiki/Megaminx
18:42:21 <b_jonas> But I don't think you can get good enough in fewest moves, since even an old personal computer can find the absolute fewest move solution for any 3x3x3 state quickly enough. You'll never beat that.
18:42:21 <Vorpal> what about non-3D "cubes"?
18:42:32 -!- pelegreno has joined.
18:42:41 <Vorpal> Could you have a 4D cube? On a computer that is, you obviously can't make a physical one
18:42:55 <int-e> Vorpal: I've seen programs that do that
18:43:13 <Vorpal> int-e: oh? Do they have any interesting properties?
18:44:00 <int-e> one step further: http://www.gravitation3d.com/magiccube5d/
18:44:27 <int-e> youtube... https://www.youtube.com/watch?v=0AqMb-edXlc (hmm but apparently that's a program solving it)
18:44:33 <Vorpal> ouch
18:45:35 <int-e> haha http://www.speedcubing.com/records/recs_comp_2222.html
18:46:04 <int-e> and of course this as well: http://www.speedcubing.com/records/recs_comp_3333.html
18:47:05 -!- jaboja has joined.
18:51:35 <b_jonas> I never understood what a 4x4x4x4 rubik's cube even _means_ in first place
18:51:49 <b_jonas> what is its state and what are the elementary steps you can do on them?
18:51:53 <b_jonas> um
18:51:59 <b_jonas> any 4-dimensional cube that is
18:52:04 <b_jonas> 3x3x3x3 or 2x2x2x2 too
18:52:32 <Vorpal> b_jonas: so it is a 3x3x3 but with an extra x3
18:52:33 <Vorpal> XD
18:52:42 -!- mihow has quit (Ping timeout: 260 seconds).
18:52:48 <int-e> the screenshots on http://astr73.narod.ru/MC7D/MC7D.html are hilarious.
18:54:05 <b_jonas> yes, I also know some really bored people solve large 3d cubes on computer, like 91x91x91 or something like that
18:54:09 <b_jonas> it's crazy
18:54:20 <int-e> b_jonas: the 3x3x3x3 cube has 8 hyper-faces of 3x3x3 cubes each, that's the state
18:54:53 <b_jonas> int-e: with a sticker of the same color on each of 27 cubes of a face?
18:55:08 <int-e> the cubes are the stickers :)
18:55:14 <b_jonas> yes yes
18:55:28 <b_jonas> so 27 cubical stickers
18:55:41 <lynn> "Look more understandable? I also think so."
18:55:45 <int-e> of each of the 8 colors, yes
18:55:45 <lynn> Jesus
18:56:00 <b_jonas> int-e: ok, that's scary
18:56:16 <b_jonas> I mean, not that part is scary
18:56:24 <b_jonas> the scary part is what the rotations are, which I don't understand
18:56:30 -!- boily has joined.
18:56:40 <b_jonas> these faces are on the outer 3d faces of a 3x3x3x3 cube, right?
18:58:58 <lynn> Halloily.
18:58:59 <int-e> b_jonas: well, the cube has slices of size 3x3x3x1 ... and you'll just rotate them around the short axis.
18:59:51 <b_jonas> int-e: so that means you can rotate any of the slices around 6 axes?
18:59:52 <int-e> so you get 8 basic moves (the usual L, R, U, T, F, B, and two more)
19:00:05 <b_jonas> oh wait
19:00:09 <b_jonas> only around the short axes
19:00:10 <b_jonas> hmm
19:00:54 <b_jonas> dunno, this is a bit hard to imagine
19:01:06 <int-e> I agree :)
19:01:16 <b_jonas> we need a wisdom for bogosort by the way
19:01:18 <b_jonas> `? bogosort
19:01:23 <HackEgo> bogosort? ¯\(°​_o)/¯
19:02:01 <int-e> `learn Bogosort is an efficient sorting algorithm for nondeterministic Turing Machine. Taneb may have invented it.
19:02:08 <HackEgo> Learned 'bogosort': Bogosort is an efficient sorting algorithm for nondeterministic Turing Machine. Taneb may have invented it.
19:02:10 <int-e> `learn Bogosort is an efficient sorting algorithm for nondeterministic Turing Machines. Taneb may have invented it.
19:02:13 <HackEgo> Relearned 'bogosort': Bogosort is an efficient sorting algorithm for nondeterministic Turing Machines. Taneb may have invented it.
19:02:27 <int-e> But perhaps that's too accurate.
19:02:44 <int-e> `` sed -i s/M/m/ wisdom/bogosort
19:02:49 <HackEgo> No output.
19:03:38 <int-e> But it is kind of hard to beat linear time :)
19:03:56 <b_jonas> maybe link to http://www.dangermouse.net/esoteric/bogobogosort.html
19:04:22 <b_jonas> no wait, that's too efficient
19:05:15 <boily> lynn: hellynn!
19:05:54 <boily> (hallynn? blynnjour?)
19:07:31 <int-e> 1. make n! copies of the universe
19:09:29 * int-e is imagining a global quantum suicide approach to solving NP problems.
19:10:00 <tswett> As in, try a random solution, and if it's wrong, kill all sentient beings?
19:10:33 <tswett> By the way, the idea of quantum suicide goes against a certain principle.
19:10:43 <int-e> Basically. I didn't think of stopping after killing the sentient beings...
19:10:57 <tswett> Namely: obscure consequences of theoretical physics have no ethical consequences.
19:11:24 <int-e> It's still a great thought experiment.
19:11:27 <tswett> If you bring up quantum mechanics in an ethical debate, you're doing something wrong.
19:11:51 <int-e> Schrödinger's cat leapt out of the box.
19:12:35 <int-e> I think I don't want to have that ethical debate.
19:12:40 <zzo38> tswett: Are you sure? Ethics is not as simple so it may be necessary. The laws of physics are important too (not limited to quantum, though).
19:13:16 <b_jonas> agreed, _real_ quantum mechanics can come up in ethical debates. quantum suicide probably can't, because most people believe quantum mechanics just doesn't work that way
19:13:40 <int-e> but if we must discuss ethics, let's start with the simpler scenario from https://xkcd.com/1132/ :-P
19:14:00 <tswett> If you can't think of an experiment that the ancient Greeks could have performed in order to demonstrate a law of physics, then as far as ethics goes, that law of physics does not exist.
19:14:01 <zzo38> b_jonas: OK
19:15:03 <b_jonas> tswett: why?
19:15:09 <b_jonas> I don't think so
19:15:17 <zzo38> Greeks did invent classical logic, although logic is a mathematics and the laws of physics are not relevant, but there is other kind of logic too anyways
19:15:21 <int-e> (if the sun goes out, owing somebody 50 dollars will be the least of your worries)
19:15:31 <lynn> I feel like a boring buzzkill for it, but I've never really fully understood the point in thinking about parallel universes.
19:16:04 <int-e> lynn: well, it's a great device for unimaginative writers
19:17:49 <tswett> Well, why *would* ethics depend on stuff that the ancient Greeks could never have observed?
19:17:59 <int-e> And let's not forget Milner's and Hoare's pioneering work on communicating parallel universes...
19:18:39 <b_jonas> if only I had a knife to get back to the original universe from this parallel one
19:18:43 <int-e> s/work/works/
19:18:55 <zzo38> tswett: Because the ancient Greeks (and even today's people) cannot possibly know all of the possible situations that might occur.
19:22:02 <b_jonas> so you think the world wasn't yet quantum mechanical at ancient times, and only became so in the enlightenment when we were too close to figuring out all of physics?
19:22:46 <int-e> does philosophy have a concept of a "sufficiently smart human"? ("A sufficiently smart human could solve the problem of global warming.")
19:23:22 <b_jonas> int-e: no, that's game theory and economics, and the latter calls it “perfectly rational agents”
19:24:43 -!- sebbu has joined.
19:25:00 <zzo38> b_jonas: No, what I mean is that only what you know is approximation and is not quite completed. It applies to philosophy, ethics, science, religion, etc but in different ways.
19:25:35 <zzo38> "Perfectly rational agent" does make more sense I think, assuming that is what you mean of course.
19:28:47 -!- tromp has joined.
19:29:53 -!- Phantom_Hoover has joined.
19:32:46 <Vorpal> b_jonas: makes sense. As much sense as my theory that we are all in a virtual world and what we call quantum physics is just really deficiencies in the simulation. Like floating point rounding errors sort of
19:33:03 -!- tromp has quit (Ping timeout: 240 seconds).
19:33:08 <Vorpal> (Note: I don't actually believe this)
19:40:04 <tswett> 'Course, if it's just deficiencies in the simulation, it's weird that the simulation is deficient in a manner that's so consistent and difficult.
19:41:43 <Vorpal> tswett: well, that is why it is a joke theory ;P
19:42:01 <Vorpal> One of many reasons
19:50:12 <Phantom_Hoover> like that quantum physics doesn't work anything like simulation errors, for instance
19:56:49 <Vorpal> Phantom_Hoover: well, obviously that is a bit more complicated computer architecture than what we have currently
19:58:07 <Vorpal> After all we can't simulate an entire universe yet, so why should we assume that they will do that on hardware we can understand
20:05:45 -!- jaboja has quit (Ping timeout: 250 seconds).
21:00:48 <HackEgo> [wiki] [[Special:Log/newusers]] create * Ozwg6693 * New user account
21:01:20 <Taneb> @ping
21:01:20 <lambdabot> pong
21:09:27 <Vorpal> Taneb: hi
21:10:09 <Taneb> Hi
21:10:15 <Taneb> I'm playing Factorio
21:10:33 <Vorpal> Taneb: it seems like the new minecraft, kind of
21:10:44 <Vorpal> Seeing it popping up in lots of youtube channels
21:10:46 <Taneb> It's quite different to Minecraft
21:10:51 <Vorpal> well yes
21:11:14 <Vorpal> similar to certain modpacks for minecraft though
21:11:33 <Vorpal> And similar in that it is an early access game that is quite playable and doing really well
21:12:30 <myname> they should make an android port
21:12:49 <Vorpal> myname: might work well on a really large tablet, probably not on a phone
21:12:56 <Vorpal> but I suspect it would control terribly
21:13:26 <myname> it doesn't need to be that large if you can zoom properly
21:13:42 <Vorpal> Hm
21:13:52 <Vorpal> what about the inventory
21:14:09 <Vorpal> Especially the inventory of a car or tank in that game
21:17:43 <int-e> oh the tension while waiting for the first edit... is it spam or real?
21:18:53 <int-e> or perhaps the first edit was blocked... where's that page again
21:18:57 -!- jaboja has joined.
21:20:04 <int-e> I guess it's https://esolangs.org/wiki/Special:AbuseLog ... nothing yet
21:28:52 -!- tromp has joined.
21:32:14 -!- copumpkin has quit (Quit: Textual IRC Client: www.textualapp.com).
21:32:26 <tswett> So I guess I know how to solve a 2x2 cube now.
21:32:52 -!- copumpkin has joined.
21:33:21 -!- tromp has quit (Ping timeout: 244 seconds).
21:33:33 <tswett> Now here's a fun little sequence, of order 4: R2 U2 R U2 R2
21:33:42 <shachaf> Taneb: Haneb
21:33:49 <Taneb> Hi
21:33:53 <shachaf> Factorio is TG
21:34:31 <tswett> Also known as R^(R2 U2), of course.
21:35:15 <shachaf> isn't R^(R2 D2) more popular
21:35:26 <tswett> Among Star Wars fans, probably.
21:35:29 <shachaf> Taneb: Are you multiplaying Factorio?
21:35:35 <Taneb> shachaf, yeah
21:35:40 <Taneb> With one of my friends from uni
21:36:02 <shachaf> Multiplayertorio is TG
21:36:10 <tswett> `? TG
21:36:29 <HackEgo> TG? ¯\(°​_o)/¯
21:36:35 <tswett> shachaf: WHAT IS THE MEANING OF THIS?
21:36:40 <shachaf> too good
21:36:57 <tswett> R^(R2 U2) U has an effect that's somewhat easier to describe.
21:37:08 <zzo38> I have written a very simple X clock in JavaScript, which supports resizing the window but no settings are implemented and it only displays seconds, and only by filling in the circle; it is white at 0 seconds and half green at 30 seconds and so on. I made simply to show its working though, so if you want a real analog clock you could just use xclock, or to modify this one
21:37:41 <tswett> It rotates UBL and UFR in place clockwise while rotating UBR and UFL in place counterclockwise.
21:38:01 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds).
21:38:52 -!- copumpkin has quit (Max SendQ exceeded).
21:39:15 <tswett> The way that it does this, of course, is by using R2 U2 to move the U pieces into the R layer in a certain way.
21:40:17 <shachaf> zzo38: What if you added another circle for minutes and a third circle for hours?
21:40:22 <shachaf> Then the clock would be useful.
21:40:36 <zzo38> Yes, that can be done by using concentric circles perhaps
21:40:40 -!- Phantom_Hoover has joined.
21:40:47 <zzo38> Although I only intended it as an example anyways.
21:41:11 <zzo38> http://sprunge.us/Ubba
21:42:05 -!- copumpkin has joined.
21:46:49 <shachaf> whoa whoa whoa, function*
21:46:55 <shachaf> Generators?
21:48:50 <tswett> So what the heck is up with this algorithm: U' R' F R' B2 R F' R' B2 R2
21:50:18 <tswett> I can simplify that a *little* bit: U R' B2^(F R') R' B2 R2
21:50:28 <int-e> hmm, add a U and you get a sequence that permutes corners on a 3x3x3 cube, preserving edges
21:50:35 <tswett> Uh, lemme try that again.
21:50:49 <tswett> U' R' B2^(F R') R' B2 R2
21:51:43 <int-e> I hate B and F.
21:51:54 <tswett> Especially in combination.
21:54:20 <tswett> B2^(F R') leaves the F layer alone except for UFR. It flips the DB edge around. It also swaps UBL and UFR around, with their formerly U faces now facing L and F instead.
21:54:56 <tswett> Wacko.
21:58:00 <zzo38> shachaf: Yes, function* means generator functions
21:58:18 -!- jaboja has quit (Ping timeout: 276 seconds).
22:02:06 -!- jaboja has joined.
22:12:14 <tswett> I see that R U R' U R U2 R' U2 is a significant sequence for the 3x3 as well as the 2x2.
22:13:42 <int-e> yeah, I use that (and two variants... inverse, and the mirror image of the inverse) to orient corners
22:14:38 <int-e> (but not the mirror image... I can't explain why :) )
22:17:40 <tswett> Lemme check the exact effect that has on the 3x3.
22:17:59 -!- p34k has quit.
22:18:11 <tswett> Hmmm. Interesting.
22:18:26 <int-e> and I believe I discovered it myself at some point... playing around with the idea of taking out the FR edge and FRB corner and then putting them back again
22:18:34 <tswett> Only the U layer is affected. I'll have to figure out why that is.
22:18:50 <tswett> The UFL and UL pieces are left alone.
22:19:12 <tswett> The remaining U edge pieces have cycled clockwise.
22:19:33 <tswett> And the remaining U corner pieces have rotated clockwise in place.
22:19:57 <tswett> This, of course, means that the sequence has order 3.
22:20:44 <int-e> and for a long time I've used (R U R' U')^3 to permute corners in the back layer (so turning the cube...)
22:22:54 <int-e> now it's B' R' F' R B R' F R and its inverse
22:33:01 -!- AnotherTest has quit (Quit: ZNC - http://znc.in).
22:45:16 -!- tromp has joined.
22:49:33 -!- tromp has quit (Ping timeout: 240 seconds).
22:54:09 <b_jonas> int-e: oh man, I still have difficulty reading this algebraic notation, because I used to learn move sequences with the Hungarian mnemonics which use S K T N F L for the sides (all consonants so you can make syllables by appending e u i for 1 2 3 turn resp)
22:55:04 <int-e> I can't really read it either... I can perform the sequence slowly on a cube :P
22:55:45 <b_jonas> S K T N F L is so much better
22:56:09 <int-e> Somehow I don't agree.
22:56:54 <b_jonas> no really, being able to recite the moves with one syllable for each moves makes it much more easier
22:59:34 <int-e> I can see that. But I would have to learn the letters.
23:00:25 <boily> OTHAR TRYGGVASEN, GENTLEMAN ADVENTURER!
23:00:35 * boily is catching up on GG from the start
23:00:51 <int-e> boily: quite the project
23:01:29 <boily> strangely, there weren't black and white pages at the beginning, like I remembered them.
23:01:44 <boily> was the first volume redrawn or something?
23:03:52 <b_jonas> int-e: that's not difficult, since there's only six of them
23:04:05 <b_jonas> ok, let's say eleven of them or something
23:04:12 <b_jonas> since not only the sides count, but also e u i
23:04:42 <int-e> anyway it's a non-issue for me since I've never tried to memorize more than one combination at a time :P
23:04:59 <int-e> So mechanical memory was good enough.
23:05:08 <b_jonas> I see
23:05:22 <b_jonas> well, these mnemonics did help me retain the moves for long term, but ok
23:05:39 <b_jonas> and they can also help communicating a move with someone else
23:26:28 <int-e> communication, pah, what a silly idea.
23:29:22 -!- oerjan has joined.
23:32:22 * augur carbonizes int-e's coffee
23:32:37 <izabera> brutal
23:33:27 * oerjan taxes augur's carbon
23:33:43 <oerjan> afk
23:36:46 -!- feliks has quit (Ping timeout: 268 seconds).
23:39:29 <int-e> augur: how do you know that I drink cola...
23:40:00 <int-e> oh, I read carbonate
23:40:15 <boily> carbonated coffee? that should be interesting.
23:40:15 * int-e incinerates augur for good measure
23:40:21 <augur> even if i carbonated your coffee it wouldnt be a cola :)
23:40:24 <augur> just a soda!
23:40:28 <augur> boily: such a thing exists!
23:40:31 <boily> whoa whoa whoa! no incinerating people in the chännel!
23:40:34 <boily> augur: eh?
23:40:45 <augur> boily: https://www.manhattanspecial.com/products_pure_espresso.html
23:40:47 <int-e> augur: I know. But the defining ingrediant is coffeine
23:41:04 <augur> int-e: the defining ingredient of a cola is cola nut :P
23:41:07 <int-e> I can't type.
23:41:10 <augur> otherwise its not a cola!
23:41:11 <boily> holy fentimans. I need that now.
23:41:12 <int-e> spell, whatever.
23:41:18 <augur> thats why rootbeer, sprite, etc. arent colas, they're just sodas
23:41:56 <augur> boily: ive had manhattan special. it's REALLY good. but it needs to be ice cold before you open it otherwise it'll spray all over the place
23:42:42 <int-e> rootbeer and sprite also don't contain coffeine ;-) I think you'll have to come up with one of those awful energy drinks...
23:43:03 -!- hppavilion[1] has joined.
23:44:04 <hppavilion[1]> I have a feeling logic programming would be good for OS dev
23:45:28 <hppavilion[1]> tswett: Hi
23:59:53 * boily pokes hppavilion[1] in the hellogical bits
2016-03-21
00:03:43 -!- feliks has joined.
00:05:20 <int-e> hmmmm. hellogic
00:07:35 <hppavilion[1]> boily: Good point
00:07:49 <hppavilion[1]> boily: But tswett doesn't lend itself to porthellos as easily as e.g. hppavilion[1]
00:08:57 <boily> best I found was tswellott. or warrigello, depending on how he's connected as.
00:09:05 <hppavilion[1]> Ah
00:09:17 -!- tromp has joined.
00:09:37 <boily> hppavilion[1]: yours sounds better, imho. it has that... Elvish feel to it?
00:10:19 <hppavilion[1]> It does, doesn't it...
00:11:06 * int-e tswats tswett with a mapole because it's easier than a salutation.
00:11:34 <boily> mapoles are great, eh?
00:11:40 <hppavilion[1]> Yes, yes they are
00:13:00 <boily> c#qqRr#j¸$5^
00:13:26 <boily> ↑ that should be rendered with a tengwar font.
00:15:22 <int-e> `? mapole
00:15:33 <HackEgo> A mapole is a thwackamacallit built from maple according to Canadian standards. The army version includes a spork, a corkscrew and a moose whistle. A regulatory mapole measures 6' by 12 kg, ±0.5 inHg.
00:16:34 <int-e> `? moose
00:16:35 <HackEgo> moose? ¯\(°​_o)/¯
00:17:00 <int-e> I guess it's a secret nordic weapon of mass distraction?
00:18:45 <boily> it's not really secret. meese are quite big by themselves; pretty hard to hide hth
00:19:50 <oerjan> can you catch a moose with a choose trap
00:20:14 <boily> ...
00:20:17 <boily> ...
00:20:32 * boily THWACKS oerjan. 0.35 shachafs.
00:21:07 <oerjan> brutal.
00:21:08 <shachaf> hoily
00:21:11 <shachaf> where did you get that
00:22:04 <int-e> boily: then why do you need a moose whistle? I thought it was to lure them out of their lairs...
00:22:55 <augur> int-e: sprite contains caffeine, i think. rootbeer usually doesnt but can. mountain dew definitely does but isnt a cola
00:23:18 <boily> int-e: it's for giving them orders under adverse weather or great distances.
00:23:26 <boily> shachaf: get what?
00:23:40 <shachaf> the mapole
00:24:02 <boily> oh, secondary portative one, in case I had lent my main one to someone else.
00:24:09 <boily> btw, can I get it back please?
00:24:54 <int-e> augur: "Sprite is a colorless, lemon and lime flavored, caffeine-free soft drink" (well okay, there's a variant with caffeine)
00:26:49 <oerjan> boily: that reminds me of someone absconding with my swatter...
00:27:08 <oerjan> or wait, it was the saucepan
00:27:25 <int-e> -#-#-# ... slightly modified
00:27:43 <shachaf> ###-----
00:27:52 <boily> oh, right.
00:27:58 * boily resaucepans oerjan
00:28:07 <oerjan> boily: there are too many fake swatters and mapoles around. we need a certification system.
00:28:27 <boily> mine's mine.
00:28:37 <augur> int-e: hm! well then ive wasted money on sprite too many times :(
00:28:47 <int-e> let's have a rowboat: ###-----\__/-----###
00:29:09 <oerjan> augur: the caffeine was in you all along!
00:29:18 <augur> oerjan: :o
00:30:11 * oerjan considered making a wisdom about fake mapoles, but then realized what the portmanteau would be...
00:32:07 <boily> UUUUUUUUUUUUUUUH!
00:32:20 * boily snatches his precious mapole back from shachaf
00:32:36 <int-e> `? popcorn
00:32:38 <HackEgo> popcorn? ¯\(°​_o)/¯
00:32:48 <int-e> fungot: popcorn?
00:32:48 <fungot> int-e: fnord olet fnord." fnord
00:32:57 <int-e> fungot: you must be kidding
00:32:57 <fungot> int-e: i don't have
00:33:02 <int-e> ^style
00:33:02 <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:33:10 <shachaf> oerjan: try "mock mapole" hth
00:33:17 <int-e> fungot: I know you can do better than that
00:33:17 <fungot> int-e: irp will solve it. i quite like ribbit. :) i'm still not entirely clear on how composable continuations work and where you don't
00:33:19 <oerjan> int-e: that "olet" is finnish
00:33:44 <int-e> oerjan: thanks, but I'm more upset about the f-words.
00:34:03 <oerjan> int-e: well it was presumably bordered by fnordable finnish words
00:34:04 -!- jaboja has quit (Ping timeout: 240 seconds).
00:34:07 <int-e> (though this explains why they would be so frequent in that context)
00:34:58 <shachaf> oerjan: et ole suomalainen hth
00:35:14 <boily> fnord fnord fnord ♪
00:35:55 <int-e> califnordication?
00:36:09 <boily> about GG: there's something weird going on. I remember the "horse", near the beginning of the colour pages. and it's nowhere to be seen.
00:36:31 <oerjan> boily: wat?
00:36:39 <oerjan> oh.
00:36:44 <int-e> it may be that the color pages are starting earlier these days
00:36:47 -!- llue has quit (Quit: That's what she said).
00:36:57 -!- lleu has joined.
00:37:17 <oerjan> yes, cheyenne wright reapplied some color
00:37:54 <int-e> (I have to admit that I'm unsure about the horse reference)
00:38:17 <int-e> but I did notice some very early colorization lately
00:38:43 <oerjan> int-e: it's been changed to symbolize agatha's "breakthrough", i think.
00:39:03 <oerjan> while originally it was just black and white because that's how it was published, maybe?
00:39:50 <int-e> speaking of horses, hmm
00:40:04 -!- jaboja has joined.
00:40:10 <oerjan> boily: anyway, http://www.girlgeniusonline.com/comic.php?date=20050404#.Vu9C2Tbmpjo
00:40:22 <oerjan> stupid fake anchors
00:40:55 <oerjan> i once managed to turn it off by disabling one of the advertising sites, but now there are so many...
00:41:25 <oerjan> it was something google-added, i think.
00:41:53 <int-e> hmm still two months before the paperback edition of The Shepherd's Crown is released
00:41:55 <boily> ain't got any on my current URL. I'm pretty strict with noscript.
00:42:13 <boily> and yeah, I was getting to it. I just needed to be patient for the "horse".
00:43:02 <int-e> That horse.
00:44:49 <int-e> I needed the picture :)
00:44:58 -!- lynn_ has joined.
00:45:01 <HackEgo> [wiki] [[Funge-98]] https://esolangs.org/w/index.php?diff=46627&oldid=44830 * Ozwg6693 * (+2947) Starts the quest to make this an actual page and not a joke. Page is a WIP
00:45:02 -!- lynn has quit (Ping timeout: 260 seconds).
00:47:11 <HackEgo> [wiki] [[Talk:Funge-98]] N https://esolangs.org/w/index.php?oldid=46628 * Ozwg6693 * (+266) Created page with "==Name?== If this is to be the sequel page to Befunge, should it be Befunge or Funge? I like Funge (since the original page isn't Befunge-93), and vote to change the name on..."
00:49:03 <HackEgo> [wiki] [[Funge-98]] https://esolangs.org/w/index.php?diff=46629&oldid=46627 * Ozwg6693 * (-55) Professionalism upgrade.
00:50:59 * oerjan will not touch that funge cleanup with a ten foot pole
00:51:13 -!- lynn_ has quit (Ping timeout: 240 seconds).
00:52:25 -!- hppavilion[2] has joined.
00:52:44 <int-e> . o O ( what if we make it 10 nano-light-seconds instead? )
00:53:58 <boily> fizzie: please shampoo fungot twh
00:53:58 <fungot> boily: that's what we wanted in the first
00:55:21 -!- hppavilion[1] has quit (Ping timeout: 244 seconds).
00:56:49 <oerjan> dammit i'm trying to search the logs for when i discovered how to turn off that anchor, but i cannot find _that_ either.
01:01:33 <int-e> 12:09:18: <int-e> some script from addthis.com does it.
01:01:35 <int-e> 12:23:45: <oerjan> ah there it's gone.
01:01:40 <int-e> 2014-12-06
01:01:57 <oerjan> aha
01:04:52 <oerjan> yay
01:05:27 <oerjan> int-e++
01:07:14 <shachaf> oerjan: you should have a keyword you use to leave notes to yourself in the logs hth
01:07:33 <oerjan> shachaf: heh.
01:07:46 <oerjan> i think _today's_ logs will work fine, next time.
01:07:50 <boily> @karma int-e
01:07:50 <lambdabot> int-e has a karma of 9
01:08:17 <boily> THIS IS A KEYWORD PRIVMSG FOR OERJAN TO REMEMBER. ♪DING♪
01:08:19 <oerjan> shockingly low
01:08:34 <int-e> @karma dons
01:08:35 <lambdabot> dons has a karma of 2
01:08:52 <int-e> the karma has been reset several times
01:09:02 <int-e> (dons used to be in the three digit range)
01:10:20 <boily> who's dons?
01:11:36 <oerjan> boily: don stewart
01:12:24 <oerjan> http://stackoverflow.com/tags/haskell/topusers
01:12:44 <boily> the don stewart.
01:13:34 <shachaf> @karma shachaf
01:13:34 <lambdabot> You have a karma of 92
01:13:43 <shachaf> oerjan might remember why my karma is artificially inflated tdnh
01:14:01 <int-e> @karma oerjan
01:14:01 <lambdabot> oerjan has a karma of 32
01:14:18 * int-e is also not very active on #haskell anymore, to put it mildly
01:15:21 <boily> shachaf++
01:16:00 -!- nooga_ has joined.
01:18:00 <int-e> @karma boily
01:18:01 <lambdabot> boily has a karma of 109
01:18:04 -!- nooga_ has quit (Read error: Connection reset by peer).
01:18:14 <int-e> that seems rather unlikely
01:18:26 <int-e> @karma synx
01:18:26 <lambdabot> synx has a karma of 11
01:18:32 <boily> how the did I manage 109...
01:18:36 -!- nooga has quit (Ping timeout: 250 seconds).
01:18:52 <int-e> boily-- ... let's put things right ...
01:20:01 <oerjan> @karma boily
01:20:02 <lambdabot> boily has a karma of 108
01:20:27 <oerjan> `factor 109
01:20:50 <HackEgo> 109: 109
01:21:00 <oerjan> boily++
01:21:04 <int-e> 108 is much smoother
01:21:07 <oerjan> clearly better with a prime hth
01:21:20 <oerjan> `factor 108
01:21:24 <HackEgo> 108: 2 2 3 3 3
01:21:24 <int-e> I mean really, really smooth.
01:21:34 <oerjan> IC
01:22:29 <int-e> btw, 107 is prime too, if that's what you want
01:25:11 <boily> I like 108. it's a buddhisticaly good number.
01:31:13 -!- lleu has quit (Quit: That's what she said).
01:31:44 <oerjan> `? french
01:31:46 <HackEgo> Le français n'est pas le démon, visitez les Coupeurs. Ne pas couvrir. Meilleur avant!
01:31:55 <oerjan> boily: what is Coupeurs
01:31:59 <oerjan> (or are)
01:33:11 -!- nooga has joined.
01:35:24 <oerjan> `? norwegian
01:35:25 <HackEgo> norwegian? ¯\(°​_o)/¯
01:35:53 <myname> `? german
01:35:54 <HackEgo> german? ¯\(°​_o)/¯
01:36:16 <oerjan> `? finnish
01:36:17 <HackEgo> Finnish suomalaiset ei Perkeleistä on hakkapeliittaan. Ei saa peittää. Parasta ennen!
01:36:42 <oerjan> `le/rn norwegian/Norsk ikke faen er Hakadalen. Må ikke tildekkes. Best før!
01:36:48 <HackEgo> Learned «norwegian»
01:37:17 <shachaf> `? english
01:37:18 <HackEgo> english? ¯\(°​_o)/¯
01:37:58 <myname> i'd appreciate english
01:39:24 <oerjan> `le/rn English not Satan is Hackensack. Do not cover. Best before!
01:39:27 <HackEgo> No output.
01:39:35 <oerjan> oops
01:39:41 <oerjan> `learn English not Satan is Hackensack. Do not cover. Best before!
01:39:44 <HackEgo> Learned 'english': English not Satan is Hackensack. Do not cover. Best before!
01:39:49 <boily> oerjan: went for something "Hackerish" hth
01:40:04 <oerjan> i did not. no hackers in norway hth
01:40:21 <int-e> we're all still learning to le/rn.
01:40:26 <boily> hacker, in the sense to cut something. cutter, coupeur.
01:40:35 <boily> maybe I should've went with Trancheur.
01:40:35 <oerjan> in any case, hakkapeliitta has nothing to do with hackers afaik
01:40:55 <shachaf> to learn is human, to le/rn divine
01:41:07 <myname> wtf
01:41:24 <oerjan> hm checking...
01:41:57 <oerjan> "Hakkapeliitta (Finnish pl. hakkapeliitat) is a historiographical term used for a Finnish light cavalryman in the service of King Gustavus Adolphus of Sweden during the Thirty Years' War (1618 to 1648)."
01:43:02 <oerjan> apparently it _is_ relating to hacking in the violent sense.
01:43:05 <oerjan> *related
01:43:30 <boily> Choppeur? Émincisseur? Élagueur?
01:45:16 <oerjan> hm tricky
01:46:49 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
01:49:49 <oerjan> `` rm wisdom/{english,norwegian}
01:49:52 <HackEgo> No output.
01:50:06 <oerjan> this simply does not work, then.
01:50:59 <oerjan> my trusty old memory will have to come up with some better word that fits. perhaps some time around christmas.
01:51:32 <boily> there are plenty of christmases coming up. good occasions for thinking about nonsensical Finnish.
01:51:40 <oerjan> of course, all i can think of is "amortized" hth
01:52:06 <boily> strange times we are living in. oerjan remembers amortized.
01:52:11 <oerjan> boily: it's not the finnish that is the problem.
01:55:27 -!- boily has quit (Quit: SPIDER CHICKEN).
01:58:00 <oerjan> @tell boily <boily> “Danish pronunciation: [ˈsmɶɐ̯ɐˌb̥ʁœðˀ]”. am I supposed to just cough the word? <-- don't be ridiculous. you're supposed to put a potato in your mouth hth
01:58:01 <lambdabot> Consider it noted.
02:09:38 -!- lleu has joined.
02:11:45 <oerjan> @tell b_jonas <b_jonas> But it also turns out, and I admit I don't understand why, that two counters are also enough, but in that case the slowdown isn't exponential, it's double-exponential. <-- you store n counters in n prime exponents of a single one, + 1 scratch for multiplication and division.
02:11:45 <lambdabot> Consider it noted.
02:21:52 <oerjan> `? bogosort
02:21:58 <HackEgo> Bogosort is an efficient sorting algorithm for nondeterministic Turing machines. Taneb may have invented it.
02:28:32 -!- tromp has quit (Remote host closed the connection).
02:40:24 -!- nooga has quit (Ping timeout: 276 seconds).
02:43:56 -!- tromp has joined.
03:07:58 <FreeFull> `? bogobogosort
03:08:00 <HackEgo> bogobogosort? ¯\(°​_o)/¯
03:16:28 -!- APic has quit (Ping timeout: 252 seconds).
03:22:07 -!- jaboja has quit (Ping timeout: 250 seconds).
03:49:16 <oerjan> ITL tswett implies nuclear weapons have no ethical consequences.
03:58:22 -!- Lord_of_Life has quit (Ping timeout: 248 seconds).
04:12:45 -!- heroux has quit (Ping timeout: 244 seconds).
04:13:47 -!- heroux has joined.
04:17:44 <lifthrasiir> would it be possible to define a generic bogo- transform for algorithms?
04:22:15 -!- MoALTz_ has joined.
04:22:59 -!- heroux has quit (Ping timeout: 248 seconds).
04:24:26 -!- treaki_ has joined.
04:25:38 -!- Lord_of_Life has joined.
04:25:42 -!- MoALTz has quit (Ping timeout: 276 seconds).
04:28:01 <oerjan> `? tg
04:28:04 <HackEgo> tg? ¯\(°​_o)/¯
04:28:13 -!- treaki__ has quit (Ping timeout: 244 seconds).
04:29:01 <oerjan> `learn TG is short fot Turing-Gödel, the highest possible level of difficulty of a multiplayer game.
04:29:03 <HackEgo> Learned 'tg': TG is short fot Turing-Gödel, the highest possible level of difficulty of a multiplayer game.
04:29:19 <oerjan> `learn TG is short fot Turing-Gödel, the highest possible level of difficulty for a multiplayer game.
04:29:21 <HackEgo> Relearned 'tg': TG is short fot Turing-Gödel, the highest possible level of difficulty for a multiplayer game.
04:30:39 -!- mad has joined.
04:31:07 <oerjan> `? mad
04:31:09 <HackEgo> This wisdom entry was censored for being too accurate.
04:31:15 -!- heroux has joined.
04:34:17 <zzo38> You shouldn't censor them regardless of accuracy, unless "censor" is supposed to be the actual text of the entry anyways, in which case it should be censored regardless of accuracy.
04:34:59 <oerjan> it is currently the actual text of the entry hth
04:35:32 <mad> hi
04:37:09 -!- XorSwap has joined.
04:40:33 <hppavilion[2]> mad: Hi
04:40:40 <hppavilion[2]> mad: I've started writing compilers :)
04:41:40 <hppavilion[2]> `? fot
04:41:41 <HackEgo> fot? ¯\(°​_o)/¯
04:41:49 <hppavilion[2]> oerjan: OOOOOOEEEEEEEEEEEEEEEEEERJAAAAAAAAAAAAAAAAN
04:42:15 <hppavilion[2]> The Shadow, The Plague, The Void wants you in its unholy office. Now.
04:43:31 * oerjan thinks this sounds like a good day to skip work.
04:44:05 <hppavilion[2]> Hm...
04:44:15 <hppavilion[2]> Along with compilers, I want to deal with the semantic web a bit
04:44:20 <oerjan> not that i have work.
04:44:26 <hppavilion[2]> oerjan: Exactly.
04:45:12 <oerjan> i know nothing about the semantic web, which looks like it will work excellently for my work-avoiding plans today.
04:45:59 <oerjan> is that "fot" relevant to me in any way btw
04:46:11 <hppavilion[2]> oerjan: Well, you did say "fot" in tg
04:46:15 <hppavilion[2]> Instead of "for"
04:46:19 <oerjan> oops
04:46:22 <hppavilion[2]> Which may have been a pun, but if it was I don't get it
04:46:39 <oerjan> `learn TG is short for Turing-Gödel, the highest possible level of difficulty for a multiplayer game.
04:46:41 <HackEgo> Relearned 'tg': TG is short for Turing-Gödel, the highest possible level of difficulty for a multiplayer game.
04:46:42 <hppavilion[2]> I was confused after your second le/rn because you didn't fix it and I couldn't see the difference (I found it)
04:47:05 <hppavilion[2]> min_nd might be an interesting project. A minimal NodeJS-like language
04:47:11 <hppavilion[2]> Not JS, but similar
04:48:21 <hppavilion[2]> Maybe I'll compile it xD
04:48:28 <hppavilion[2]> (THAT would be a good idea :P)
04:48:35 <hppavilion[2]> (Well, actually...)
04:48:44 <hppavilion[2]> (Hm... Should I?
04:48:45 <oerjan> compile early, compile often
04:49:09 <hppavilion[2]> oerjan: Would compiling a JS-ish language result in hellfire raining from the sky to undo me?
04:49:31 <hppavilion[2]> (undoing me as in not just killing me, but erasing the fact that I ever existed in the first place)
04:49:49 <hppavilion[2]> Either because it's an atrocity OR because it would be hard. Both work.
04:50:00 <hppavilion[2]> The more I think about it, the louder the "yes" becomes.
04:50:13 <hppavilion[2]> (yes as in "don't")
04:50:13 <mad> depends what you mean by 'compile'
04:50:53 <hppavilion[2]> mad: Produce an executable. I'd remove some of the worse-for-compiling parts- e.g. reduced dynamic typing- but I would keep JS in spirit if I were to do that
04:51:02 <mad> if all the variables are dynamic typed still and it tests the type of each variable before doing operations on them, is it really 'compiled'?
04:51:26 <hppavilion[2]> mad: That's why it wouldn't be dynamically-typed
04:51:42 <mad> if it's not dynamically typed then it can be compiled
04:51:45 <hppavilion[2]> It'd be boo:python::min_nd:JavaScript
04:52:14 <hppavilion[2]> I don't think I should, mostly because higher-level functions
04:52:33 <mad> then it would be competing against java/c# (if it has a garbage collector), or c++ (if it doesn't have a garbage collector)
04:52:35 <hppavilion[2]> Then again, Haskell has higher-level functions (and static typing)
04:52:43 <hppavilion[2]> mad: Yeah, probably
04:52:59 <hppavilion[2]> I'll likely just interpret it, or VM it maybe
04:53:05 <mad> haskell is in a different category because it has no side-effects whatsoever
04:53:10 <hppavilion[2]> mad: Yeah
04:53:11 <hppavilion[2]> True
04:53:14 <mad> everything in haskell is local
04:53:28 <hppavilion[2]> Exactly
04:53:33 <hppavilion[2]> That's why I doubt I can compile it
04:54:13 <hppavilion[2]> zzo38: You like Node. What's the stuff that NEEDS to be included if it were minimized?
04:54:15 <mad> this allows some more optimizations in theory (ie turning loops into SIMD)
04:54:16 <oerjan> <hppavilion[2]> (undoing me as in not just killing me, but erasing the fact that I ever existed in the first place) <-- don't be silly. all evidence indicates that has never happened to anyone hth
04:54:27 <hppavilion[2]> oerjan: Well-played.
04:54:38 <hppavilion[2]> (Maybe I'll make min_nd tapey :P)
04:55:02 <mad> but also prevents some other pretty big optimizations (ie you can't just share pointers to the same object all over the place)
04:55:03 <hppavilion[2]> mad: Vectorization?
04:55:34 <mad> yes, in theory non-side effect code can be vectorized
04:55:50 <zzo38> hppavilion[2]: Probably first-class functions would be one
04:55:56 <hppavilion[2]> Obviously
04:56:09 <mad> because the compiler can prove that pointers to arrays passed to a function don't overlap
04:56:13 <mad> because they can't
04:56:42 <mad> in practice there are no real performance-oriented non-side effect languages today
04:56:46 <mad> so people use c++
04:56:50 <hppavilion[2]> zzo38: And events, ofc
04:57:14 <mad> current non-side effect languages don't really care about perf that much and are designed for other goals
04:57:14 <hppavilion[2]> mad: Yeah, I find the way programmers talk about their favorite language funny
04:57:47 <zzo38> Events is a feature of Node.js, and DOM has different kind of events, although neither is core JavaScript
04:57:49 <hppavilion[2]> "I use Haskell because it has these performance benefits that I love, and not because it's a fucking awesome language that I fell in love with"
04:58:09 <hppavilion[2]> zzo38: But I'm minimizing Node, not JS
04:58:14 <mad> heh
04:58:23 <hppavilion[2]> JS is just minimized by proxy, being a Node thing
04:58:34 <hppavilion[2]> (I call it: "nanode")
04:58:44 <hppavilion[2]> Or more accurately, Node is a JS thing
04:58:52 <hppavilion[2]> But thingship is commutative in this case
04:59:11 -!- heroux has quit (Ping timeout: 250 seconds).
04:59:30 <zzo38> Yes, OK
05:00:03 <hppavilion[2]> mad: Yep. Computers have enough memory and enough processing speed nowadays that using the optimal language for a task is nearly always pointless objective; the end user won't notice in most cases
05:00:14 <hppavilion[2]> It's more about not using a shit language and being a decent programmer
05:00:30 <mad> errrrrr
05:00:42 <hppavilion[2]> mad: That's not a happy noise for me.
05:00:42 <mad> I think it's application dependent
05:00:49 <hppavilion[2]> mad: Yeah, but in most cases
05:01:00 <hppavilion[2]> Unless you need to-the-femtosecond accuracy
05:01:12 <hppavilion[2]> Most languages will do
05:01:14 <mad> if you're doing video games or what I do (sound processing), then C++ more or less can't be replaced
05:01:22 <hppavilion[2]> mad: Even by Rust?
05:01:48 <hppavilion[2]> :P
05:01:52 <mad> rust would do
05:01:53 <zzo38> I can program with many different programming language, such as C and Forth and 6502 and JavaScript and whatever else; they can be use for different purpose
05:02:33 <mad> in theory java or c# aren't that far from being video-game usable
05:02:43 <mad> minecraft runs on java
05:02:53 <mad> some XNA games run on c#
05:03:14 <mad> but writing games in java isn't easier than writing them in c++
05:03:18 <zzo38> It depends what game
05:03:19 <mad> so there's no benefit
05:03:37 <mad> and there's a clear cost (garbage collector pauses)
05:04:27 <mad> zzo38 : ok, name me a game that's easier to write in java than in c++
05:05:37 <hppavilion[2]> mad: Any game that your boss told you to write in Java
05:05:58 <hppavilion[2]> Assuming you're a proficient Javagrammer
05:06:12 <hppavilion[2]> We need specific names for different types of programmers
05:06:47 <hppavilion[2]> Pygrammers (pythonistas), Scigrammers (scientific computing), Pro-grammars (linguists, particularly ones who moonlight as pedants)
05:07:47 <zzo38> I wouldn't know because I don't program in Java or C++
05:12:43 <mad> hpp: if your boss tells you to write a game in java
05:12:53 -!- XorSwap has quit (Quit: Leaving).
05:13:04 <mad> ...you need to work in a better game company :o
05:13:05 <mad> :D
05:13:12 -!- XorSwap has joined.
05:13:21 <mad> zzo38 : but you program in C?
05:16:17 -!- XorSwap has quit (Client Quit).
05:16:17 -!- APic has joined.
05:16:21 -!- XorSwap has joined.
05:17:48 -!- XorSwap has quit (Client Quit).
05:21:58 -!- lambda-11235 has quit (Quit: Bye).
05:23:43 -!- lambda-11235 has joined.
05:24:35 -!- lambda-11235 has quit (Client Quit).
05:33:01 <zzo38> med: Yes I do make program in C
05:54:28 <zzo38> Do you have PNG picture with Japanese mahjong arrange in grid?
05:57:58 -!- heroux has joined.
06:05:23 -!- heroux has quit (Ping timeout: 244 seconds).
06:05:33 -!- lynn has joined.
06:09:57 -!- lynn has quit (Ping timeout: 260 seconds).
06:23:33 -!- pelegreno has quit (Remote host closed the connection).
06:24:45 -!- pelegreno has joined.
06:32:13 -!- dingbat has quit (Quit: Connection closed for inactivity).
06:41:42 -!- tromp has quit (Remote host closed the connection).
06:58:37 <FreeFull> mad: Lots of Android games are Java, although they are hardly AAA games
06:59:51 <mad> that's because they made the mistake of making the api java based but yeah
07:03:18 -!- heroux has joined.
07:12:19 <zzo38> There are also other virtual machines to make computer game and other program out of
07:21:34 -!- heroux_ has joined.
07:21:47 <FreeFull> mad: Have you done anything with Rust?
07:22:17 <hppavilion[2]> mad: Fair enough
07:22:28 <hppavilion[2]> FreeFull: Have you ever done anything with dk?
07:22:39 <hppavilion[2]> "Fur Elise in Q semiminor"
07:22:53 <FreeFull> hppavilion[2]: What's dk?
07:22:59 <FreeFull> Donkey Kong?
07:23:11 <hppavilion[2]> FreeFull: Compiled programming language
07:23:16 -!- heroux has quit (Ping timeout: 264 seconds).
07:23:20 -!- heroux_ has changed nick to heroux.
07:23:29 <FreeFull> Obviously I haven't done anything with it before, given I haven't heard of it before :)
07:23:44 <hppavilion[2]> FreeFull: OK, that's good
07:24:02 <hppavilion[2]> FreeFull: The fact that you haven't used it yet means my computer isn't necessarily completely open
07:24:15 <hppavilion[2]> FreeFull: Because I haven't published dk yet :P
07:25:22 <FreeFull> =P
07:25:40 <hppavilion[2]> FreeFull: I've been learning how to write compilers, and dk is my first compiled language :P
07:25:45 <hppavilion[2]> It has... expressions
07:25:49 <hppavilion[2]> And putc()
07:25:54 <FreeFull> Woo, expressions!
07:26:04 <FreeFull> Pft, why would you want I/O? =P
07:26:06 <hppavilion[2]> binary: +-*/, unary: -x
07:26:22 <hppavilion[2]> FreeFull: Because some people like knowing if their code works
07:26:28 <hppavilion[2]> Though it's just O at the moment =P
07:26:41 <hppavilion[2]> FreeFull: I'm currently getting functions to work
07:26:52 <zzo38> See if you know how to compile it into QUACKVM codes (either assembly or binary)
07:27:53 <hppavilion[2]> Ah! Just figured out a bug!
07:28:16 <hppavilion[2]> zzo38: You can write a backend from the Walric Platform (the WP compiler collection's IL)
07:28:33 <hppavilion[2]> YES!
07:28:35 -!- heroux has quit (Ping timeout: 248 seconds).
07:28:38 <hppavilion[2]> I GOT FUNCTIONS WORKING!
07:28:46 <hppavilion[2]> AT LEAST TO SOME DEGREE!
07:28:55 <hppavilion[2]> THEY'RE REALLY JUST PROCEDURES AT THE MOMENT! BUT STILL!
07:29:00 <zzo38> What is the specification of such IL?
07:29:05 <hppavilion[2]> It was just a bug from a simple workaround
07:29:16 <hppavilion[2]> zzo38: Currently nonexistent, as it's still in development
07:29:29 -!- AnotherTest has joined.
07:29:41 <hppavilion[2]> zzo38: But it's a simple ASM inspired by TIS-100, sans massive parallelity
07:29:44 -!- heroux has joined.
07:30:54 <hppavilion[2]> zzo38: It uses an accumulator for arithmetic and conditionals, has partial orthagonality, and memory is loaded with LD and stored with ULD from and to the exp and imp registers
07:33:41 <hppavilion[2]> zzo38: I'm considering making return a function. Is that an awful, awful idea?
07:34:29 <zzo38> To know, QUACKVM is using 16-bit cells. Memory cell 2 acts somewhat like an accumulator.
07:34:53 <zzo38> I don't know if that is awful idea it depend on the context of the rest of the programming language I think?
07:35:19 <hppavilion[2]> zzo38: Ah, mine uses 64-bit memory and registers. So that might (read: would most definitely) be an issue
07:35:44 <hppavilion[2]> Though I suppose I could make up the spec to allow for differently-sized registers
07:35:53 <hppavilion[2]> Depending on the final target
07:38:04 <hppavilion[2]> zzo38: To make return work, it's literally 5 lines of unconditional ASM, so I'll do that
07:38:07 <hppavilion[2]> ret(x)
07:38:19 <hppavilion[2]> Wait, but that'll mess with typechecking...
07:38:22 <hppavilion[2]> Hm...
07:38:39 <hppavilion[2]> Wait, not exactly
07:38:55 <hppavilion[2]> If you return a value of the wrong type, it'll just bitcast automatically, which is probably even worse
07:39:02 <zzo38> Yes it is a possibility to allow different size registers; that is a possible design. When someone needs such a design, now you have it!
07:42:14 -!- tromp has joined.
07:46:27 -!- bender| has joined.
07:47:12 -!- tromp has quit (Ping timeout: 276 seconds).
08:02:44 <hppavilion[2]> YES!
08:02:51 <hppavilion[2]> FUNCTIONS ARE NOW ACTUALLY FUNCTIONS!
08:03:28 <hppavilion[2]> One thing I'm considering is a nullary operator called $
08:03:56 <hppavilion[2]> When you put an expression on a line of its own, it is evaluated and its result is stored in $
08:04:17 <hppavilion[2]> I mean acc
08:04:21 <hppavilion[2]> When an operator is evaluated, it's assumed its left argument is in acc
08:05:03 <hppavilion[2]> $ would basically mean "do nothing" when on the left and "move the accumulator to the aux register prior to overwriting it with the left argument" when on the right
08:05:22 <hppavilion[2]> Basically, $ allows you to reuse the expression on the previous line, which is good for big expressions
08:05:29 <hppavilion[2]> 5+9
08:05:31 <hppavilion[2]> $-2
08:05:42 <hppavilion[2]> putn($)
08:05:50 <hppavilion[2]> >>> 12
08:39:24 <mad> do you guys ever sleep
08:39:59 -!- mad has quit (Quit: Pics or it didn't happen).
08:41:07 <oerjan> zzzleep is for the wezzz
08:48:28 -!- llue has joined.
08:48:38 -!- llue has quit (Changing host).
08:48:38 -!- llue has joined.
08:49:36 -!- lleu has quit (Ping timeout: 276 seconds).
08:50:55 -!- lynn has joined.
09:01:01 -!- hppavilion[2] has quit (Ping timeout: 244 seconds).
09:02:49 <J_Arcane> http://lua-users.org/lists/lua-l/2009-11/msg00089.html
09:08:08 -!- tromp has joined.
09:11:51 -!- Alcest has joined.
09:12:35 <oerjan> tromp: hi you got a bit reddited https://www.reddit.com/r/programming/comments/4b8264/celebrates_obfuscation_and_conciseness_with/
09:12:38 -!- Alcest has quit (K-Lined).
09:12:54 -!- tromp has quit (Ping timeout: 260 seconds).
09:12:59 <oerjan> r.i.p.
09:13:59 <oerjan> @tell tromp you got a bit reddited https://www.reddit.com/r/programming/comments/4b8264/celebrates_obfuscation_and_conciseness_with/
09:13:59 <lambdabot> Consider it noted.
09:14:43 <lifthrasiir> oerjan: if you don't want publicity, IOCCC is not a good venue to post things
09:15:06 <oerjan> MAYBE
09:15:35 <oerjan> that page didn't seem to have been linked before, though.
09:36:06 -!- nooga has joined.
09:45:30 -!- zadock has joined.
09:46:31 -!- lynn has quit (Ping timeout: 244 seconds).
09:48:14 -!- augur has quit (Ping timeout: 248 seconds).
09:48:25 -!- zadock has quit (Remote host closed the connection).
09:50:58 -!- J_Arcane has quit (Ping timeout: 268 seconds).
09:53:07 -!- Frooxius has quit (Quit: *bubbles away*).
09:55:08 -!- oerjan has quit (Quit: Nite).
10:01:50 -!- augur has joined.
10:08:14 -!- bender| has quit (Ping timeout: 268 seconds).
10:19:26 -!- mroman has joined.
10:22:08 -!- llue has quit (Ping timeout: 244 seconds).
10:30:34 -!- lleu has joined.
10:32:22 -!- bender| has joined.
10:35:43 -!- boily has joined.
10:43:32 -!- tromp has joined.
10:47:57 -!- tromp has quit (Ping timeout: 248 seconds).
11:01:20 <tswett> So, that BLC self-interpreter is pretty small.
11:02:46 <tswett> Is BLC the only thing that that could reasonably be a self-interpreter for?
11:09:50 <tswett> Ooh, this particular sequence is U'^(F R U' R').
11:10:02 <int-e> . o O ( That's a horribly non-mathematical term, "reasonably". )
11:11:14 <tswett> Yes, I think I like that sequence.
11:13:29 <tswett> As for its effect? Let me append U to it; that seems to make it a little easier to understand.
11:13:55 <int-e> U^(F R U' R') is meaningful too
11:14:22 <int-e> I just realized that I use those for flipping edges :P
11:15:12 <tswett> Relative to the U face: it moves UBL, UBR, and UFL counterclockwise, then rotates UBL in-place clockwise and UBR in-place counterclockwise.
11:15:55 <int-e> the first one flips two opposite edges; the second flips two neighbouring edges. I don't care about the rest ;)
11:16:43 <int-e> or vice versa... hmm :)
11:18:04 <int-e> (and of course I should care if I wanted to be faster)
11:18:12 <tswett> Isn't your thing the opposite of my thing/
11:18:47 -!- boily has quit (Quit: SEWER CHICKEN).
11:20:39 <tswett> So now I've got this stupid sequence: U' R' F R' B2 R F' R' B2 R2
11:21:17 <tswett> I don't see where the beauty is.
11:21:56 <int-e> anyway, the point to my mind is that after F R U' R', all pieces of the bottom two layers are safely stashed in the bottom two layers again... while one edge piece on the top has been flipped
11:23:39 <tswett> Though... that's a pretty interesting part in the middle there. We've got, like... F R' B2 R F' R' B2 R
11:23:57 <int-e> tswett: and yes, it's the inverse of course...
11:23:59 <tswett> That part is [F, R' B2 R].
11:24:19 * int-e failed to recall the group theoretic point of conjugation ;)
11:24:42 <tswett> In context: U' R' [F, R' B2 R] R
11:25:29 <tswett> You can make that even more concise if you want: U' [F, B2^R']^R'
11:26:49 <int-e> (and I actually use U^(R U R' F') anyway)
11:27:59 <int-e> where you'll recognize R U R' F' as the inverse of F R U' R'
11:28:29 <tswett> Yup.
11:29:00 <tswett> Lemme pay attention to where the white and yellow pieces go as I execute this sequence.
11:30:20 <tswett> Six of the eight pieces ultimately stay still.
11:38:44 <izabera> protip: actually solving it can be more fun than theoretic computations
12:13:20 <b_jonas> people in Europe: don't forget we have timezone offset jump this weekend (on Easter)
12:14:21 <b_jonas> oerjan: yes, that's what mad said too.
12:19:27 -!- AnotherTest has quit (Ping timeout: 246 seconds).
12:37:03 -!- Sgeo__ has quit (Ping timeout: 240 seconds).
13:15:37 -!- Alcest has joined.
13:26:47 -!- `^_^v has joined.
13:26:47 -!- p34k has joined.
14:12:54 <int-e> poor Dupree
14:24:38 -!- lambda-11235 has joined.
15:13:31 -!- AnotherTest has joined.
15:30:20 -!- mroman has quit (Quit: Lost terminal).
15:32:03 -!- nycs has joined.
15:32:26 -!- jaboja has joined.
15:33:47 <b_jonas> um,
15:33:54 -!- `^_^v has quit (Ping timeout: 276 seconds).
15:37:24 -!- earendel has joined.
15:40:05 -!- bender| has quit (Ping timeout: 250 seconds).
15:51:57 -!- AnotherTest has quit (Ping timeout: 248 seconds).
15:56:26 -!- AnotherTest has joined.
16:13:55 -!- jaboja has quit (Ping timeout: 248 seconds).
16:20:29 -!- AnotherTest has quit (Quit: ZNC - http://znc.in).
16:22:16 -!- AnotherTest has joined.
16:22:26 -!- lynn has joined.
16:33:40 -!- jaboja has joined.
16:37:24 -!- zadock has joined.
16:38:17 -!- MoALTz_ has changed nick to MoALTz.
16:48:01 -!- AnotherTest has quit (Ping timeout: 240 seconds).
16:53:55 -!- hppavilion[2] has joined.
16:54:14 <hppavilion[2]> How do I do GUI on the WP?
16:54:23 <hppavilion[2]> (WP is the IL for my compilers)
16:56:39 -!- zzo38 has quit (Remote host closed the connection).
17:05:35 <izabera> first you start with a QRMVP then add a LCLIC and finally a UX£DX
17:06:19 <coppro> hppavilion[2]: please tell me that WP is wordpress
17:06:29 <izabera> it's walrus something
17:06:42 <coppro> :(
17:06:53 <coppro> new language idea: wordpress is the IL
17:08:55 -!- dos has joined.
17:09:09 <dos> coppro: izabera: It's "Walric Platform"
17:09:19 -!- dos has changed nick to hppavilion[1].
17:12:22 -!- hppavilion[2] has quit (Ping timeout: 244 seconds).
17:14:50 <izabera> is walric even a word
17:14:54 <coppro> it is now
17:14:59 <coppro> welcome to English
17:15:04 <izabera> that's not how it works
17:15:50 <coppro> yes it is
17:17:39 -!- mbrcknl has quit (Ping timeout: 260 seconds).
17:19:01 -!- esowiki has joined.
17:19:05 -!- esowiki has joined.
17:19:06 -!- esowiki has joined.
17:19:51 -!- esowiki has joined.
17:19:55 -!- esowiki has joined.
17:19:55 -!- esowiki has joined.
17:20:33 -!- esowiki has joined.
17:20:37 -!- esowiki has joined.
17:20:37 -!- esowiki has joined.
17:21:15 -!- esowiki has joined.
17:21:16 -!- glogbot has joined.
17:21:19 -!- esowiki has joined.
17:21:19 -!- esowiki has joined.
17:36:08 -!- hppavilion[1] has quit (Ping timeout: 244 seconds).
17:46:30 -!- hppavilion[1] has joined.
17:58:34 <hppavilion[1]> coppro: Yes, it is.
17:58:39 <hppavilion[1]> izabera: It most certainly is.
17:58:59 <hppavilion[1]> Do not question the tongues of the Ancient Walrusian Empire
18:02:19 <coppro> hppavilion[1]: itym walric hth
18:04:03 -!- Sprocklem has quit (Ping timeout: 240 seconds).
18:08:55 -!- jaboja64 has joined.
18:09:11 -!- J_Arcane has joined.
18:12:28 -!- jaboja has quit (Ping timeout: 264 seconds).
18:16:49 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
18:20:15 -!- Sprocklem has joined.
18:23:26 -!- AnotherTest has joined.
18:30:58 -!- hppavilion[1] has joined.
18:33:36 <hppavilion[1]> coppro: No, I mean Walrusian. Walrusian denotes the ancient culture, Walric denotes the species
18:33:53 <hppavilion[1]> The Walrusians were walric
18:48:10 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
18:49:21 -!- hppavilion[1] has joined.
18:52:39 <hppavilion[1]> How do I put GUI in my IL?
18:52:58 <hppavilion[1]> What instructions should I include for that? Or should I do something with special registers?
18:59:10 <hppavilion[1]> coppro: You have any idea?
18:59:52 <izabera> how do you usually put guis on things?
18:59:58 <hppavilion[1]> izabera: With OO and Tkinter
19:00:03 <hppavilion[1]> Wait, no Qt5
19:00:10 <izabera> make up your mind
19:00:13 <hppavilion[1]> I stopped using Tkinter a while ago
19:00:19 <hppavilion[1]> izabera: I did, I just misspoke the first time
19:00:43 <hppavilion[1]> Well, misthought
19:01:09 <hppavilion[1]> izabera: But I want the GUI for a low-level ASM-like intermediate language
19:09:54 <hppavilion[1]> izabera: I'm thinking instructions available in an IL library that compile to system calls
19:10:00 <hppavilion[1]> izabera: Is that a good idea?
19:21:37 <izabera> sure
19:21:51 <izabera> what's an IL exactly?
19:24:42 <hppavilion[1]> izabera: Intermediate Language
19:24:44 -!- tromp_ has joined.
19:24:49 <hppavilion[1]> IL as in CIL
19:24:58 <izabera> and what does the c stand for
19:25:01 <izabera> ?
19:25:14 <hppavilion[1]> izabera: CIL is the Common Intermediate Language for CLI (.NET)
19:25:18 <izabera> ah
19:25:21 <hppavilion[1]> izabera: But that's not relevant
19:28:02 -!- ski has joined.
19:31:05 -!- lambda-11235 has quit (Quit: Bye).
19:44:18 -!- impomatic_ has joined.
19:59:45 -!- jaboja64 has quit (Ping timeout: 276 seconds).
20:05:57 <coppro> hppavilion[1]: no clue
20:06:12 <coppro> hppavilion[1]: what do you mean by "put GUI in my IL?"
20:06:23 <coppro> you want an IDE for it? or primitives for GUI functionality?
20:06:35 <hppavilion[1]> coppro: I have an IL (intermediate language) that I compile languages to. I want it to support GUI.
20:06:57 <coppro> hppavilion[1]: usually GUI calls are done via a library
20:07:11 <shachaf> hppavilion[1]: oh yeah well i have an advanced language that i compile languages to
20:07:17 <hppavilion[1]> coppro: Yeah
20:07:22 <coppro> exactly how GUIs are implemented under the hood depends on the environment
20:07:28 <coppro> on Windows, at least some of it is syscalls iirc
20:07:34 <coppro> on X, it's all network-based
20:16:43 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
20:26:46 -!- zadock has quit (Quit: Leaving).
20:31:17 -!- hppavilion[1] has joined.
20:40:11 <shachaf> `olist 1029
20:40:24 <shachaf> This is irritating.
20:40:35 <shachaf> I olist and then I have to wait for HackEgo to respond.
20:40:44 <shachaf> Otherwise I'll start reading the comic and then it'll interrupt me in the middle.
20:40:47 <HackEgo> olist 1029: shachaf oerjan Sgeo FireFly boily nortti b_jonas
20:40:55 <shachaf> `smackego
20:41:00 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: smackego: not found
20:43:34 -!- Sprocklem has quit (Ping timeout: 260 seconds).
20:43:44 -!- Phantom_Hoover has joined.
21:11:10 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
21:15:56 <b_jonas> oh look
21:16:19 <b_jonas> shachaf: by the way, not with this comic but probably a previous one, there's also a news entry at O
21:19:01 -!- tromp__ has joined.
21:23:29 -!- tromp__ has quit (Ping timeout: 244 seconds).
21:27:33 <HackEgo> [wiki] [[Special:Log/newusers]] create * CodeMaster111 * New user account
21:29:00 <shachaf> oerjan is probably not interested in Start of Darkness
21:29:55 -!- Sprocklem has joined.
21:40:19 -!- asie has quit (Ping timeout: 252 seconds).
21:44:32 -!- nycs has quit (Quit: This computer has gone to sleep).
21:47:27 -!- jaboja64 has joined.
21:53:03 -!- XorSwap has joined.
21:55:58 -!- boily has joined.
22:31:19 -!- XorSwap has quit (Ping timeout: 268 seconds).
22:32:10 -!- XorSwap has joined.
22:32:15 <boily> `wisdom
22:32:35 <HackEgo> phantom___hoover/Phantom___Hoover sucks at ghosting himself.
22:35:19 <boily> @massages-loud
22:35:19 <lambdabot> oerjan said 20h 37m 18s ago: <boily> “Danish pronunciation: [ˈsmɶɐ̯ɐˌb̥ʁœðˀ]”. am I supposed to just cough the word? <-- don't be ridiculous. you're supposed to put a potato in your mouth hth
22:35:53 -!- hppavilion[1] has joined.
22:35:57 <hppavilion[1]> `smackego
22:35:58 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: smackego: not found
22:36:03 <hppavilion[1]> `` echo "Ow!" > bin/smackego
22:36:06 <HackEgo> No output.
22:36:12 <boily> @tell oerjan with raw onions, on some tunnbröd, and an ounce of aquavit.
22:36:12 <lambdabot> Consider it noted.
22:36:19 <shachaf> hppavilion[1]: that doesn't work hth
22:36:19 -!- jaboja64 has quit (Ping timeout: 248 seconds).
22:36:20 <hppavilion[1]> `` echo "echo \"Ow!\"" > bin/smackego
22:36:21 <HackEgo> No output.
22:36:25 <hppavilion[1]> shachaf: I noticed
22:36:27 <hppavilion[1]> Wait, crap
22:36:28 <shachaf> still doesn't work hth
22:36:30 <hppavilion[1]> `smackego
22:36:30 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: /hackenv/bin/smackego: Permission denied \ /home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: /hackenv/bin/smackego: cannot execute: Permission denied
22:36:31 <shachaf> hppavilion[1]: why don't you just use mkx
22:36:36 <boily> hellochaf, hppavellon[1].
22:36:38 <hppavilion[1]> shachaf: I keep forgetting it exists
22:36:45 <hppavilion[1]> `` mkx bin/smackego
22:36:46 <HackEgo> usage: mk[x] file//contents
22:37:01 <hppavilion[1]> `` mkx bin/smackego//echo "Ow!"
22:37:04 <HackEgo> bin/smackego
22:37:06 <shachaf> I don't like smackego, though.
22:37:09 <hppavilion[1]> `smackego
22:37:10 <HackEgo> No output.
22:37:15 <shachaf> Unnecessary violence is scow.
22:37:32 <shachaf> whoa whoa whoa, the reason it doesn't work is great.
22:37:33 <hppavilion[1]> shachaf: Perhaps smackego should read from a directory of files?
22:38:47 <hppavilion[1]> I just thought of something
22:38:50 <hppavilion[1]> `? test
22:38:51 <HackEgo> test failed. HackEgo-JUnit is not available.
22:38:55 <hppavilion[1]> `? metest
22:38:58 <HackEgo> metest? ¯\(°​_o)/¯
22:39:15 <hppavilion[1]> `le/rn metest//me tests HackEgo's mechanics
22:39:22 <HackEgo> Learned «metest»
22:39:28 <hppavilion[1]> `? metest
22:39:30 <HackEgo> ​/me tests HackEgo's mechanics
22:39:33 <hppavilion[1]> Huh
22:39:36 <hppavilion[1]> That's interesting
22:39:39 <hppavilion[1]> Oh, I see
22:39:47 <hppavilion[1]> I forgot how IRC works for a second
22:39:51 <hppavilion[1]> Still, that would be cool
22:39:55 <boily> HackEgo is extremely resilient to botlops.
22:40:05 <boily> we all tried, one time or another.
22:40:05 <hppavilion[1]> boily: Is that a botloopable thing?
22:40:14 <boily> `? botlop
22:40:16 <hppavilion[1]> boily: I was just hoping I could make HackEgo /me
22:40:17 <HackEgo> botlops are the core of botsentiences. Sapience is scheduled for the next release.
22:40:27 <hppavilion[1]> `echo "/me tests"
22:40:27 <HackEgo> ​"/me tests"
22:40:34 <hppavilion[1]> `echo /me tests
22:40:35 <HackEgo> ​/me tests
22:40:39 <hppavilion[1]> I didn't expect that to work
22:40:43 <hppavilion[1]> But it would've been cool
22:40:45 <boily> you have to use the raw stuff behind the slash.
22:40:54 <hppavilion[1]> boily: ?
22:40:55 <boily> the slash is an illusion. there is no slash.
22:41:15 <boily> you must find a way to generate a '\a' hth
22:41:34 <boily> . o O ( wait, \a is a bell... )
22:41:39 <hppavilion[1]> boily: if the slash is an illusion, what does that make /oren/?
22:41:44 <hppavilion[1]> A double-illusion?
22:41:50 <boily> a proper Canadian.
22:41:57 <boily> remember, Canada doesn't exist.
22:41:57 <hppavilion[1]> Oh
22:42:15 <hppavilion[1]> boily: How could /me trigger a botlop?
22:42:33 * hppavilion[1] `echo hello world
22:42:41 <hppavilion[1]> Nope, didn't expect that to work
22:42:51 <shachaf> boily: What? We made HackEgo loop with lambdabot.
22:43:07 <hppavilion[1]> shachaf: That's a /double/ botloop.
22:43:31 <shachaf> As opposed to what?
22:43:41 <myname> hppavilion[1]: hackego shouöd prepend its messages with a zero-width non-breaking space
22:43:43 <hppavilion[1]> shachaf: A single (self) botlop
22:43:44 <shachaf> `? weather
22:43:45 <HackEgo> lambdabot: @@ @@ (@where weather) CYUL ENVA ESSB KOAK
22:43:48 <lambdabot> CYUL 212200Z 29017G23KT 30SM FEW060 FEW090 FEW140 BKN240 03/M12 A2976 RMK SC1AS1AS1CI5 SC TR SLP081 \ ENVA 212220Z 09004KT 9999 -DZ SCT013 BKN022 01/01 Q1004 RMK WIND 670FT 22008KT \ ESSB 212220Z AUTO 07004KT 9999 BKN009/// BKN039/// OVC064/// 00/M01 Q1006 \ KOAK 212153Z 22015KT 10SM SCT024 BKN031 OVC070 16/11 A3005 RMK AO2 WSHFT 2040 RAE25
22:43:48 <lambdabot> SLP177 P0000 T01560106
22:43:51 <myname> therefore /me is not triggered
22:44:04 <shachaf> hppavilion[1]: IRC clients don't receive their own messages.
22:44:05 <hppavilion[1]> myname: Ah, makes sense
22:44:09 <myname> this is done to prevent botloops
22:44:09 <boily> shachaf: eh? we managed that?
22:44:12 <hppavilion[1]> shachaf: Yes, and?
22:44:19 <hppavilion[1]> shachaf: Oh, right
22:44:22 <hppavilion[1]> *fail*
22:44:35 <shachaf> scroogled
22:45:01 <hppavilion[1]> shachaf: I still think whoever maintains HackEgo (I forgot who) should add a feature to trigger /me commands, if it wouldn't be dangerous somehow
22:45:11 <shachaf> @where test
22:45:11 <lambdabot> ?? ?@ ?run var$("(@metar "++).(++") \\ ")=<<words ?show
22:45:18 <shachaf> @where /me
22:45:18 <lambdabot> I know nothing about /me.
22:45:21 <myname> i disagree
22:45:36 <shachaf> @where+ /me /me is a command
22:45:36 <lambdabot> Done.
22:45:38 <shachaf> @where /me
22:45:38 * lambdabot is a command
22:45:42 <hppavilion[1]> myname: Why?
22:45:46 <shachaf> lambdabot: no, you're a bot hth
22:46:00 <myname> what for
22:46:12 <hppavilion[1]> myname: So we can make HackEgo do stuff
22:46:22 <myname> what for
22:46:28 <boily> hppavilion[1]: Gregor hackegoes.
22:46:31 <hppavilion[1]> (I've always thought /you would be a funny command)
22:46:41 -!- XorSwap has quit (Ping timeout: 244 seconds).
22:46:43 -!- boily has quit (Quit: FRIENDLY CHICKEN).
22:46:50 <hppavilion[1]> myname: Hackego could respond to being thwacked and swatted and such
22:46:58 <shachaf> I think HackEgo shouldn't be abused.
22:46:58 <myname> also, wtf @ ("foo"++).(++"bar")
22:47:02 <shachaf> `rm bin/smackego
22:47:04 <HackEgo> No output.
22:47:56 <myname> i am quite unsure what that does in this context
22:48:01 <hppavilion[1]> `le/rn_prepend
22:48:02 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: /hackenv/le/rn_prepend: No such file or directory
22:48:10 <hppavilion[1]> `cat le/rn_append
22:48:11 <HackEgo> ​#!/bin/bash \ [[ "$1" = */* ]] || exit \ topic=$(echo "$1" | lowercase | cut -d / -f 1) \ [ -z "$topic" ] && exit 1 \ stuff=$(echo "$1" | cut -d / -f 2-) \ perl -i -p -e 's/\n/ /' "wisdom/$topic" \ echo "$stuff" >>"wisdom/$topic" \ echo -n "Learned '$topic': " \ cat "wisdom/$topic"
22:48:30 <hppavilion[1]> myname: I cannot decipher it
22:48:42 <myname> i would've said ((x++).(++z))y is x++y++z
22:48:50 <hppavilion[1]> myname: It isn't
22:48:52 <hppavilion[1]> AFAICT
22:49:04 <hppavilion[1]> Oh, wait, it might be
22:49:07 <myname> but that =<<words is weird for me
22:49:26 <myname> like, the output of weird is not a string
22:49:39 <hppavilion[1]> @let weirdStringOp = ("walrus"++).(++"man")
22:49:41 <lambdabot> Defined.
22:49:52 <hppavilion[1]> @weirdStringOp "hello"
22:49:52 <lambdabot> Unknown command, try @list
22:49:55 <hppavilion[1]> @run weirdStringOp "hello"
22:49:57 <lambdabot> "walrushelloman"
22:50:05 <shachaf> @where weather
22:50:05 <lambdabot> ?? ?@ ?run var$intercalate " \\ " . map (\x -> "(@metar "++x++")") . words $ ?show
22:50:05 <hppavilion[1]> myname: There, it is
22:50:15 <shachaf> myname: Better? hth
22:50:51 <hppavilion[1]> I want to make the ultimate proof assistant for some reason. A proof assistant with multiple formal systems rolled into it.
22:51:07 <myname> shachaf: =<< is black magic then?
22:51:18 <shachaf> No?
22:51:41 <hppavilion[1]> @run x+++y
22:51:43 <lambdabot> Couldn't match expected type ‘a b c’ with actual type ‘Expr’
22:51:43 <lambdabot> In the first argument of ‘(+++)’, namely ‘x’
22:51:43 <lambdabot> In the expression: x +++ y Couldn't match expected type ‘a b' c'’ wit...
22:51:44 <hppavilion[1]> Wait, no
22:51:45 <shachaf> It's concatMap
22:51:52 <hppavilion[1]> @src (+++)
22:51:52 <lambdabot> Source not found. My brain just exploded
22:51:55 <hppavilion[1]> :(
22:51:57 <shachaf> hppavilion[1]: please experiment with lambdabot in /msg hth
22:52:03 <hppavilion[1]> OK...
22:52:06 <myname> aaah
22:52:16 <hppavilion[1]> lambdabot needs a ++++++++++ command
22:52:21 <myname> it just finishes with a \\ above, doesn't it?
22:52:24 <hppavilion[1]> s/command/operator/
22:52:50 <shachaf> > ("(@metar "++).(++") \\ ")=<<words "abc def"
22:52:52 <lambdabot> "(@metar abc) \\ (@metar def) \\ "
22:52:57 <myname> okay
22:53:04 <myname> that is what i thought
22:53:17 <myname> i wasnjt sure about the semantics because i don't know var
22:53:19 <myname> or run
22:53:27 <shachaf> > var "abc"
22:53:29 <lambdabot> abc
22:53:35 <shachaf> @run 1 + 1
22:53:37 <lambdabot> 2
22:53:48 <myname> so, run var is like eval?
22:54:14 <shachaf> runvar is a Norwegian name, isn't it?
22:54:37 <shachaf> A combination of ENVA and Runar, perhaps.
22:54:43 <myname> and i guess \\ is some.kind of seperator for the commands
22:54:49 <shachaf> It's just a \
22:54:56 <shachaf> @@ (@where test) ENVA KOAK
22:54:56 <lambdabot> ?? ?@ ?run var$("(@metar "++).(++") \\ ")=<<words ?show ENVA KOAK
22:55:00 <shachaf> @@ @@ (@where test) ENVA KOAK
22:55:02 <lambdabot> ENVA 212220Z 09004KT 9999 -DZ SCT013 BKN022 01/01 Q1004 RMK WIND 670FT 22008KT \ KOAK 212153Z 22015KT 10SM SCT024 BKN031 OVC070 16/11 A3005 RMK AO2 WSHFT 2040 RAE25 SLP177 P0000 T01560106 \
22:55:20 <myname> ah
22:55:32 <shachaf> @@ @@ (@where weather) ENVA KOAK
22:55:34 <lambdabot> ENVA 212220Z 09004KT 9999 -DZ SCT013 BKN022 01/01 Q1004 RMK WIND 670FT 22008KT \ KOAK 212153Z 22015KT 10SM SCT024 BKN031 OVC070 16/11 A3005 RMK AO2 WSHFT 2040 RAE25 SLP177 P0000 T01560106
22:56:38 <hppavilion[1]> Are there exp, root, and log types?
22:57:15 -!- AnotherTest has quit (Quit: ZNC - http://znc.in).
23:02:40 <b_jonas> hppavilion[1]: exp surely. root and log types probably don't exist generally, because of sign issues.
23:02:55 <hppavilion[1]> Ah, yes. Sign issues
23:03:03 <hppavilion[1]> b_jonas: What is an exp type like, in theory?
23:03:23 <shachaf> A^B is the type of functions from B to A
23:03:28 <hppavilion[1]> Sum type is Either, Product type is tuples, but what's above that?
23:03:30 <hppavilion[1]> shachaf: Ah
23:03:37 <hppavilion[1]> Oooh
23:03:38 <b_jonas> hppavilion[1]: like an exp matrix
23:03:42 <shachaf> You can figure that out.
23:03:46 <shachaf> It's just a pi type.
23:03:59 <hppavilion[1]> shachaf: Are you serious with "pi type"?
23:04:00 -!- carado has quit (Ping timeout: 268 seconds).
23:04:21 <hppavilion[1]> So the exp type a^b is b -> a?
23:04:44 <shachaf> It's not exp as in base e
23:04:49 <hppavilion[1]> shachaf: I got that
23:04:54 <shachaf> But it's exponentiation.
23:04:55 <hppavilion[1]> shachaf: exp as in a^b
23:05:00 <shachaf> And of course pi type is serious.
23:05:03 <hppavilion[1]> OK
23:05:12 <hppavilion[1]> shachaf: Is a pi type a kind of product type? Big pi notation?
23:05:16 <shachaf> Yes.
23:05:25 <shachaf> And exponentiation is repeated product, so it all works out.
23:05:45 <shachaf> Pi_{x : A}{B} = A -> B
23:05:56 <shachaf> A product of |A| Bs.q
23:06:17 <hppavilion[1]> b_jonas: Couldn't there be an imaginary version of the unit type that root type can return? lt[t](u) -> x+(y, imu)?
23:06:18 <hppavilion[1]> :P
23:07:07 * hppavilion[1] puts on his helmet
23:07:17 <b_jonas> an exp type is just exp(1 + x) = 1 + x + x^2/2 + x^3/6 + x^4/24 + ... right?
23:07:23 <b_jonas> um
23:07:33 <b_jonas> I mean exp(x) = 1 + x + x^2/2 + x^3/6 + x^4/24 + ...
23:07:57 -!- carado has joined.
23:14:08 <HackEgo> [wiki] [[User:CodeMaster111]] N https://esolangs.org/w/index.php?oldid=46630 * 68.134.221.253 * (+1181) Initialized userpage.
23:14:09 <shachaf> b_jonas: Yes.
23:14:18 <shachaf> You have to be careful about ordered and unordered tuples.
23:23:19 -!- XorSwap has joined.
23:39:16 -!- jaboja64 has joined.
23:40:17 -!- lynn has quit (Quit: Leaving).
23:42:33 -!- XorSwap has quit (Ping timeout: 240 seconds).
23:43:33 -!- p34k has quit.
23:47:20 -!- asie has joined.
23:53:13 -!- Lilly_Goodman has joined.
23:55:33 -!- oerjan has joined.
2016-03-22
00:01:24 <Lilly_Goodman> Hello, how are you?
00:04:18 <oerjan> must... resist... tempation... to ban... canaima@*.*
00:05:10 <oerjan> @messages-
00:05:11 <lambdabot> boily said 1h 28m 58s ago: with raw onions, on some tunnbröd, and an ounce of aquavit.
00:05:38 <oerjan> @tell boily tunnbröd is swedish not danish hth
00:05:38 <lambdabot> Consider it noted.
00:06:40 <oerjan> @tell boily you might substitute fladbrød instead hth
00:06:40 <lambdabot> Consider it noted.
00:14:11 <oerjan> @tell b_jonas <b_jonas> oerjan: yes, that's what mad said too. <-- some context would have been nice. thanks for the reminder about DST though, i keep being confused about which month it is since it got moved to october in the autumn.
00:14:11 <lambdabot> Consider it noted.
00:14:12 -!- lleu has quit (Quit: That's what she said).
00:14:35 -!- lleu has joined.
00:15:32 -!- Lilly_Goodman has quit (Ping timeout: 260 seconds).
00:19:13 <tswett> izabera: actually solving the cube? Don't be ridiculous.
00:19:23 <oerjan> <izabera> is walric even a word <coppro> it is now <coppro> welcome to English <izabera> that's not how it works <coppro> yes it is <-- english seems to have a weird relationship with the idea of a word being "real".
00:20:12 <oerjan> so i thought izabera was right here, but might not have been if it were another language.
00:20:24 -!- jaboja64 has quit (Ping timeout: 276 seconds).
00:20:34 <tswett> A word is real if people outside a particular community regularly use it with its supposed meaning.
00:20:37 <\oren\> i'm baaaaack
00:20:51 <tswett> Examples of real words are "irregardless" and "pseudopseudohypoparathyroidism".
00:21:12 <tswett> Examples of non-real words are "ghoti" and "pneumonoultramicroscopicsilicovolcanoconiosis".
00:21:27 <oerjan> tswett: are you sure that the "outside a particular community" test works for no. 2 there
00:22:18 <oerjan> `? irregardless
00:22:20 <tswett> Yeah.
00:22:25 <HackEgo> irregardless? ¯\(°​_o)/¯
00:22:42 <tswett> "The medical community" isn't really a community. It's not a community if there's some property that allegedly automatically makes you part of it.
00:22:53 <tswett> Or something like that.
00:23:32 <tswett> All right. For some reason, I really dislike the sequence that I currently have for solving this situation: https://www.speedsolving.com/wiki/index.php/Special:MediawikiAlgDB?mode=view&view=default&puzzle=2&group=CLL&cid=40
00:24:16 <tswett> (2x2. First layer is solved, second layer is oriented correctly, but two adjacent pieces are exchanged.)
00:24:44 <tswett> This one looks pretty interesting: L R U2 R' U' R U2 L' U R'
00:25:48 <tswett> This one too: R U2 R' U' R U2 L' U R' U' L
00:26:00 <oerjan> `le/rn ghoti/"Ghoti" is a very fishy spelling.
00:26:05 <HackEgo> Learned «ghoti»
00:26:21 <tswett> The hell just happened? My 2x2 was solved a little while ago, and I did nothing to it whatsoever and now it's scrambled.
00:26:36 <tswett> It's been here at my side the whole time. Nobody else has come and scrambled it.
00:26:47 <tswett> There are no other nearby objects which could have somehow contacted and scrambled the cube.
00:27:19 <tswett> The only explanation is that it spontaneously self-scrambled without making any sound or appearing to move noticeably.
00:27:34 -!- Vorpal has quit (Ping timeout: 260 seconds).
00:27:36 <tswett> (Or I scrambled it so absent-mindedly that I was left with no memories of doing so.)
00:27:51 <oerjan> have you slept in the meantime?
00:28:07 <oerjan> `? tswett
00:28:08 <HackEgo> tswett is livin' it up with the penguins. He's a title under the cruxite in the lathe.
00:28:44 <tswett> I've been sitting here for at least the last ten minutes.
00:28:58 <tswett> The spontaneous self-scrambling (SSS) event happened within those ten minutes.
00:29:02 <oerjan> aha
00:29:57 <oerjan> does this happen to other things than cubes?
00:30:12 <tswett> Not that I've noticed in the past.
00:30:43 <oerjan> maybe you just switched to another universe where you didn't solve it.
00:30:56 -!- jaboja64 has joined.
00:30:57 <hppavilion[1]> Hello
00:31:01 <oerjan> `quote berenst
00:31:04 <HackEgo> No output.
00:31:40 <oerjan> `wisdom berenst
00:31:41 <HackEgo> ​/cat: : No such file or directory
00:32:13 <hppavilion[1]> tswett: Have I informed you that I'm writing a compiler or two?
00:32:19 <tswett> The L R U2 sequence needs U' appended to it, I think.
00:32:27 <tswett> hppavilion[1]: nope.
00:32:34 <hppavilion[1]> tswett: I'm writing a compiler.
00:32:37 <hppavilion[1]> Or two.
00:32:44 <tswett> Ah, neat.
00:32:47 -!- Vorpal has joined.
00:33:11 <oerjan> `` grep -r berenst wisdom
00:33:23 <HackEgo> No output.
00:33:52 <tswett> Okay, I like the second sequence there better. Again: R U2 R' U' R U2 L' U R' U' L
00:34:04 <hppavilion[1]> tswett: I'm trying to figure out how to compile a temporal logic programming language
00:34:14 <tswett> There's at least one way of writing that decently concisely...
00:34:27 <tswett> R U'^(U2 R') R'^(L' U)
00:35:37 -!- Lilly_Goodman has joined.
00:37:15 <hppavilion[1]> tswett: Is this Banach-Tarski?
00:37:32 <Lilly_Goodman> hello
00:37:52 <tswett> hppavilion[1]: I'm solving the 2x2x2 Rubik's cube.
00:37:56 <hppavilion[1]> Lilly_Goodman: Dios mío. ¿Tiene algún interés en la programación esotérica?
00:38:21 <tswett> Which has only a teeny tiny bit to do with the Banach-Tarski theorem.
00:38:25 <\oren\> you should report this glitch to reddit
00:38:29 <Lilly_Goodman> hppavilion[1]: como que cosas??
00:39:05 <hppavilion[1]> Lilly_Goodman: Traductor Google no va a traducir esa correctamente.
00:39:18 <tswett> hppavilion[1]: pienso que significa "like what??"
00:39:49 <hppavilion[1]> tswett: Ah
00:39:52 <oerjan> tswett: maybe your scrambled cube was due to a use of banach-tarski, look for the other cube.
00:39:55 -!- J_Arcane_ has joined.
00:40:31 <Lilly_Goodman> hppavilion[1]: que haces?
00:40:48 <hppavilion[1]> Lilly_Goodman:
00:40:48 <hppavilion[1]> De alguna manera alienado todos (o al menos yo) la primera vez que vino aquí, y no parece tener ningún interés en el tema del canal, así que por qué estás aquí?
00:40:50 -!- J_Arcane has quit (Ping timeout: 244 seconds).
00:40:53 <tswett> El bienvenido obligatorio...
00:40:58 <tswett> `bienvenido Lilly_Goodman
00:41:01 <HackEgo> Lilly_Goodman: ¡Bienvenido al centro internacional para el diseño y despliegue de lenguajes de programación esotéricos! Por desgracia, la mayoría de nosotros no hablamos español. Para obtener más información, echa un vistazo a nuestro wiki: http://esolangs.org/. (Para el otro tipo de esoterismo, prueba #esoteric en EFnet o DALnet.)
00:41:04 -!- J_Arcane_ has changed nick to J_Arcane.
00:41:23 <Lilly_Goodman> HackEgo: lo se y gracias
00:41:49 <hppavilion[1]> Lilly_Goodman: HackEgo es un bot
00:42:04 <tswett> hppavilion[1]: I can't quite figure out what the first half of that is supposed to be. "In some way everyone alienated (or at least me) the first time I came here"?
00:42:52 <hppavilion[1]> tswett: "You managed to alienate everybody...", IIRC
00:43:32 <hppavilion[1]> Lilly_Goodman:
00:43:32 <hppavilion[1]> Estoy tratando de averiguar por qué sigues viniendo aquí. Usted no parece que se preocupan por el propósito del canal, pero que siguen regresando.
00:43:34 <tswett> In fact nosotros sí discutimos la programación esotérica de vez en cuando.
00:43:40 <Lilly_Goodman> hppavilion[1]: disculpa
00:44:24 <tswett> oerjan: I don't think my cube has infinitely many pieces.
00:44:45 <hppavilion[1]> Lilly_Goodman: Somos un canal de programación frikis surrealistas. Parece que han mostrado ningún conocimiento o interés en la programación. ¿Qué estás buscando en este canal?
00:45:17 <tswett> s/han/no ha/
00:46:47 <tswett> Also s/o/ni/
00:46:57 <hppavilion[1]> tswett: Google Translate
00:46:58 <tswett> Spanish with its funky... use of lots of negatives everywhere.
00:47:21 <tswett> In Spanish, you don't say "you have shown no interest in this or that"; you say "you haven't shown no interest in this nor that".
00:47:47 <Lilly_Goodman> hppavilion[1]: como puedo instalar juegos a la canaima?
00:48:15 <hppavilion[1]> Lilly_Goodman:
00:48:15 <hppavilion[1]> Eh?
00:48:26 <tswett> Lilly_Goodman: tal vez quieres hablar en #canaima.
00:48:42 <tswett> Nosotros no conocemos nada de la Canaima.
00:48:59 <hppavilion[1]> Lilly_Goodman:
00:48:59 <hppavilion[1]> Por favor. Encontrar un canal que se adapte a sus intereses y pasar el rato allí. Esto claramente no es el lugar para usted.
00:49:18 <hppavilion[1]> tswett: I think she got kicked out of #canaima
00:50:42 <Lilly_Goodman> tswett: no
00:50:52 <Lilly_Goodman> hppavilion[1]: no sea asi
00:51:45 <hppavilion[1]> ¿Como que? Estoy tratando de decir que este no es el canal que parece estar buscando, y que debería encontrar algo mejor se adapte a sus intereses. Esto no es ese lugar.
00:52:12 <tswett> hppavilion[1]: *shrug* It's not necessary for us to try to convince them to do anything.
00:52:22 <hppavilion[1]> Fair enough
00:52:50 <hppavilion[1]> tswett: Should we, the people of #esoteric, try to make an actual, useful programming language?
00:53:43 <Lilly_Goodman> hppavilion[1]: pero no sabe como descargar aplicaciones a la computadora canaima?
00:53:51 <tswett> I'm already doing that; by all means you can help!
00:54:15 <tswett> Lilly_Goodman: ¿lo has preguntado en #canaima?
00:54:50 <hppavilion[1]> NOSOTROS NO HACEMOS CANAIMA. YO AN NO S LO QUE ES. TRATE DE HABLAR CON PERSONAS EN UN CANAL ALREDEDOR DEL CANAIMA, EN VEZ DE AQU.
00:55:01 <hppavilion[1]> tswett: Oooh, what's the compiler implemented in?
00:55:05 <hppavilion[1]> Or is it interpreted?
00:55:16 <tswett> C#. I guess I'd call it interpreted.
00:55:21 <tswett> It's a query language, not really a programming language.
00:55:21 <Lilly_Goodman> :-/
00:55:38 <hppavilion[1]> (Sorry for ~yelling, but Lilly_Goodman does not seem to be getting the message)
00:55:52 <hppavilion[1]> tswett: OK, but does it have programming features?
00:55:53 <tswett> Lilly_Goodman: lo siento de que no te podemos ayudar.
00:55:59 <Lilly_Goodman> tswett: no
00:56:15 <hppavilion[1]> Lilly_Goodman: Si.
00:56:17 <tswett> hppavilion[1]: not really. It has, like... addition.
00:56:22 <tswett> And if/then stuff.
00:56:28 <hppavilion[1]> tswett: What kind of query language is it?
00:56:31 <tswett> It might be Turing-complete somehow.
00:56:32 <hppavilion[1]> tswett: Like a SQL?
00:56:36 <Lilly_Goodman> hppavilion[1]: :'(
00:56:37 <tswett> Yeah, definitely like SQL.
00:56:40 <hppavilion[1]> OK
00:56:43 <hppavilion[1]> tswett: What's the model?
00:56:58 <tswett> Uhh, I guess kind of a cross between relational and object-oriented.
00:57:04 <hppavilion[1]> Interesting...
00:57:10 <tswett> It's supposed to be useful as a language for querying existing SQL databases.
00:57:18 <hppavilion[1]> Oooh
00:57:27 <hppavilion[1]> tswett: Can you give me some example code?
00:57:31 <tswett> hppavilion[1]: yeah.
00:57:36 <Lilly_Goodman> :'(
00:58:09 <hppavilion[1]> Lilly_Goodman:
00:58:09 <hppavilion[1]> Nosotros no podemos ayudar. Por favor, encontrar a alguien que pueda hacerlo. Usted no va a encontrar en este link.
00:58:13 <tswett> Uhh, lemme see. There's no spec at the moment.
00:58:17 <hppavilion[1]> OK
00:58:23 <tswett> But yeah, example code.
00:58:27 <hppavilion[1]> tswett: A spec would be a good step :P
00:58:34 <tswett> I should make, like, a list of features, and number them.
00:58:40 <tswett> First, feature number A.
00:58:41 <hppavilion[1]> Good ida
00:58:44 <hppavilion[1]> *idea
00:58:44 <tswett> (They're numbered with letters.)
00:58:55 <hppavilion[1]> tswett: What happens when you have a letter overflow?
00:58:59 <hppavilion[1]> What's feature Z++?
00:59:11 <tswett> I'll start using doubled letters and whatnot.
00:59:17 <tswett> After Z comes AA, then AB, ...
00:59:19 <hppavilion[1]> tswett: So it's base 26?
00:59:24 <tswett> Something like that.
00:59:27 <hppavilion[1]> OK
00:59:30 <Lilly_Goodman> hppavilion[1]: que preguntas puedo hacer en este anal??
00:59:33 <hppavilion[1]> tswett: Feature #8
00:59:37 <Lilly_Goodman> hppavilion[1]: que preguntas puedo hacer en este canal??
00:59:38 <hppavilion[1]> s/8/A/
00:59:52 <tswett> Lilly_Goodman: ¿conoces la programación?
01:00:07 <tswett> hppavilion[1]: remember also that it's perfectly fine to just totally ignore a question.
01:00:22 <tswett> So, there are at least two sorts of types in this language: scalar types and non-scalar types.
01:00:29 <hppavilion[1]> Lilly_Goodman:
01:00:29 <hppavilion[1]> Nada, en realidad. Somos más de un canal de chat-sobre-el-cosas que un canal de pedir-us-preguntas.
01:00:29 <tswett> Scalar types are things that can fit into a table cell.
01:00:43 <hppavilion[1]> OK
01:01:03 <tswett> Some examples: unit, integer, double, string.
01:01:14 <hppavilion[1]> Unit? Like the unit type?
01:01:18 <tswett> Yep.
01:01:28 <tswett> Non-scalar types are anything else.
01:01:32 <tswett> And boy, they're a doozy.
01:01:36 <tswett> I'm not going to explain them at all.
01:01:39 <hppavilion[1]> tswett: Can a cell have type Bot (empty type)? xD
01:01:45 <tswett> Maybe!
01:01:51 <hppavilion[1]> tswett: You don't understand them yourself, do you?
01:01:56 <tswett> Nope.
01:02:02 <hppavilion[1]> Makes sense
01:02:06 <tswett> So, the first revision of the language is going to be read-only.
01:02:17 <hppavilion[1]> OK...
01:02:19 <tswett> Like, there's not going to be any way to change the data in a database.
01:02:25 <hppavilion[1]> And later it will be able to modify?
01:02:27 <tswett> And I've managed to say a lot without really communicating anything.
01:02:27 <tswett> Yeah.
01:02:30 <tswett> So, on to the chase.
01:02:35 <tswett> Suppose you've got a table called "cats".
01:02:40 <tswett> You can get all of the data out of it using this query:
01:02:41 <tswett> cats
01:02:42 <hppavilion[1]> Yay.
01:02:52 <tswett> It's pretty simple.
01:03:00 <hppavilion[1]> Does it support digraphs for DSes?
01:03:04 <hppavilion[1]> Yeah, makes sense
01:03:08 <hppavilion[1]> Just a variable
01:03:10 <tswett> For whatses?
01:03:21 <Lilly_Goodman> hppavilion[1]: no entendi bien a que te refieres con que es un chat-sobre-el-cosas que un canal de pedir-us-preguntas???
01:03:30 <hppavilion[1]> tswett: Data Structures. Non-scalars.
01:03:45 <tswett> Google did a rather hilarious job with "pedir-us-preguntas" and whatnot.
01:03:58 <tswett> Lilly_Goodman: "pedir-us-preguntas" = "pedirnos preguntas"
01:04:10 <Lilly_Goodman> va a comer
01:04:15 * Lilly_Goodman va a comer
01:04:33 -!- nooga has quit (Ping timeout: 246 seconds).
01:04:47 <tswett> Note that "struct" types are probably going to be scalar.
01:04:54 <hppavilion[1]> Ah, OK
01:05:02 <tswett> And I'm not sure what you mean by digraphs.
01:05:02 <hppavilion[1]> tswett: And they'll get stuck in a massive data type?
01:05:11 <hppavilion[1]> tswett: Directed (labeled) graphs
01:05:18 <tswett> Ah.
01:05:30 <hppavilion[1]> Pretty common terminology
01:05:30 <tswett> Yeah, tables can reference each other and whatnot.
01:05:33 <hppavilion[1]> OK
01:05:43 <tswett> I thought you meant "sequences of two symbols", the other meaning of "digraph".
01:05:53 <hppavilion[1]> Ah, right
01:05:59 <tswett> If there's a table called "cats", then there's a type called Reference<cats> or something, which refers to rows in that table.
01:06:10 <hppavilion[1]> OK
01:06:14 <hppavilion[1]> I follow, I think
01:06:20 <tswett> Anyway...
01:07:15 <tswett> There are struct types. Let's say that there's a struct called, I dunno, CatInfo, with two fields: name, which is a string, and friendliness, which is an integer.
01:07:23 <hppavilion[1]> OK
01:07:34 <hppavilion[1]> Cat friendliness is measured as a fuzzy, but OK
01:08:12 <tswett> There's a certain extremely important operator, which is:
01:08:13 <tswett> .
01:08:17 <tswett> The projection operator.
01:08:30 <tswett> Suppose "ci" is a particular CatInfo value. Then you can do this:
01:08:31 <tswett> ci.name
01:08:35 <tswett> That'll give you the cat's name.
01:08:45 <tswett> Now, the way this works is a little complicated.
01:09:06 <tswett> In most programming languages, the thing on the left is an expression, and the thing on the right is an identifier, naming one of the fields of the thing on the left.
01:09:42 <tswett> In this language (it's called Quendle, by the way), the thing on the right is also an expression, and it's evaluated in the "projective context" of the thing on the left.
01:09:54 <tswett> Now, projective contexts (or just contexts) are something I haven't totally worked out yet.
01:10:16 <tswett> Buuut...
01:10:35 <tswett> You can evaluate something in the projective context of a struct type.
01:10:43 <hppavilion[1]> Oh, right! Quendle!
01:11:04 <tswett> If you evaluate a field of that struct in that context, you end up with... the value of that field.
01:11:11 <hppavilion[1]> That's a pretty good model, I think
01:11:28 <hppavilion[1]> tswett: Can you make custom contexts?
01:11:51 <hppavilion[1]> tswett: And can the expression be something other than an identifier? I would doubt it, but it might be possible
01:12:08 <hppavilion[1]> And if a struct st has attributes a and b (both ints), will st.(a+b) return their sum?
01:12:13 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
01:13:17 <tswett> As for making custom contexts: kinda... there are features producing various kinds of contexts.
01:13:27 <tswett> I'll explain a little further a little later.
01:13:34 <hppavilion[1]> tswett: Does Quendle support Prologian knowledge bases? Perhaps there are operators to treat a table as a knowledge base in some subset format?
01:13:34 <tswett> As for st.(a+b): yes, absolutely.
01:13:46 <hppavilion[1]> Because PROLOGian knowledge bases are cooooool
01:13:53 <hppavilion[1]> tswett: Excellent. Gold star.
01:13:58 <lifthrasiir> heh, I don't know Spanish but that was hilarious
01:14:03 <lifthrasiir> kinda
01:14:21 -!- ais523 has joined.
01:14:27 <hppavilion[1]> his523
01:14:27 <tswett> There are no logic programming features.
01:14:30 <hppavilion[1]> OK
01:14:48 <hppavilion[1]> tswett: Can you define functions of any sort?
01:14:52 <tswett> Nyow.
01:14:57 <tswett> Yeah... eventually.
01:14:58 <tswett> Nyow.
01:15:05 <hppavilion[1]> If so, I might just have to make a logic programming library ;)
01:15:08 <tswett> Tables have row set types.
01:15:16 <hppavilion[1]> OK?
01:15:20 <hppavilion[1]> Row set types?
01:15:30 <hppavilion[1]> Set as in set theory or set as in set in stone?
01:15:31 <tswett> The "cats" table will probably have a type like "set of CatInfo rows".
01:15:36 <hppavilion[1]> Ah
01:15:38 <hppavilion[1]> I get it
01:15:48 <hppavilion[1]> You mentioned that, References<cats>
01:16:34 <tswett> And the nice thing about row set types is that the projection operator passes through them, so to speak.
01:16:45 <tswett> Which is to say, you can do this:
01:16:46 <tswett> cats.name
01:16:52 <hppavilion[1]> tswett: I have to go eat dinner in a bit
01:16:56 <hppavilion[1]> tswett: But go on
01:16:59 <tswett> And that will give you all of the cat-names.
01:17:06 <hppavilion[1]> Ooooh
01:17:10 <hppavilion[1]> That's beautiful
01:17:23 <hppavilion[1]> I always like sets that can be operated on
01:17:30 <tswett> Now, there's another really important operator: "where".
01:17:40 <tswett> You can do this:
01:17:44 <tswett> cats where friendliness >= 6
01:17:45 <hppavilion[1]> {1, 2, 3}+{4, 5, 6} = {5, 6, 7, 8, 9}
01:17:47 <hppavilion[1]> OK
01:18:02 <tswett> Which... is... kind of self-explanatory, but kind of not.
01:18:05 <hppavilion[1]> tswett: Is this language intended to be ultra-readable?
01:18:13 <hppavilion[1]> Or is it a Perl
01:18:22 <tswett> I wouldn't say that. It's designed to be usable, like... a lot of languages are.
01:18:25 <hppavilion[1]> OK
01:18:47 <hppavilion[1]> where could equal .. if that isn't already used. .. looks nice for where (reminds me of "such that")
01:19:05 <hppavilion[1]> I should go now, but I'll be back in a bit
01:19:09 <tswett> That expression there essentially looks at every cat c, and evaluates the expression "c.(friendliness >= 6)".
01:19:15 <tswett> All right. I'll continue monologuing.
01:19:27 <hppavilion[1]> I would prefer if you just waited until I was back :P
01:20:00 <Lilly_Goodman> tswett: como puedo descargar programas a una computadora?
01:21:06 <tswett> For those rows where it's true, you get that row as part of the result set. Where it's false, the rows are eliminated.
01:22:29 <tswett> Now, you can also take the cartesian product of two row sets.
01:22:40 <tswett> If you want to get the set of all pairs of cats, you can do something like this:
01:22:41 <tswett> cats * cats
01:23:37 <tswett> Next, suppose "cats" has a "name" column, and "humans" also has a "name" column. For whatever reason, you want to get the set of all pairs of cat and human such that the cat and the human have the same name.
01:23:49 <tswett> This won't work, for obvious reasons:
01:23:54 <tswett> cats * humans where name = name
01:23:56 <tswett> Which name is which?
01:25:24 <tswett> So what can you do instead?
01:25:26 <tswett> Answer:
01:25:32 <tswett> c: cats * h: humans where c.name = h.name
01:26:18 -!- Lilly_Goodman has quit (Ping timeout: 244 seconds).
01:27:31 <tswett> Now, the exact mechanism behind this, I'm not totally sure of.
01:27:40 <tswett> Let me offer a quick proposal.
01:28:00 <tswett> "Proposal" is kind of a funny word for it, since I'm the one who makes the decision.
01:28:05 <tswett> (I am the decider!)
01:28:55 <tswett> (c: cats * h: humans) has a type like "set of rows: (struct with field "c" of type (CatInfo), field "h" of type (HumanInfo))"
01:29:33 <tswett> So on the right, you simply compose fields appropriately.
01:30:35 <tswett> Now, I think there's a problem with this.
01:30:39 <tswett> Let me try to remember what the problem is.
01:32:47 <tswett> I'm not totally sure that there is a problem, so at the moment, I'm going to assume that there is no problem.
01:34:07 <tswett> And, uh... sheesh... I think that's the bulk of the language, right there.
01:34:19 <tswett> Maybe I should say the core of the language.
01:35:47 -!- Lilly_Goodman has joined.
01:38:20 <hppavilion[1]> tswett: Do you have a "toplevel scope" operator?
01:39:39 <tswett> The top-level scope is always accessible.
01:39:46 <hppavilion[1]> tswett: How?
01:39:52 <hppavilion[1]> tswett: Scope as in projective scope
01:39:57 <tswett> Assuming I know what you mean.
01:40:12 <tswett> Like, you can't explicitly ask for the global projective context.
01:40:19 <hppavilion[1]> Say you have an integer "i", a struct "st", and st has attributes num and i
01:40:29 <tswett> Right, right.
01:40:31 <hppavilion[1]> Consider st.(num+i)
01:40:33 <tswett> That raises a question.
01:40:59 <hppavilion[1]> Is st.(num+i) the sum of all st.num and all st.i, or the sum of all st.num and i?
01:41:35 <hppavilion[1]> I would say you need a global projective context nullary operator, unless you already have this figured out
01:41:58 <tswett> Note, by the way, that if you do something like cats.(name + name), if you have cats named "Dorothy" and "Ann", you'll get the results "DorothyDorothy" and "AnnAnn", but not "AnnDorothy" or "DorothyAnn".
01:42:02 <tswett> If you wanted those, you'd have to do...
01:42:17 <tswett> (c1: cats * c2: cats).(c1.name + c2.name)
01:42:22 <hppavilion[1]> tswett: I figured that
01:42:46 <tswett> So, right. How am I going to get around this issue...
01:42:51 <hppavilion[1]> tswett: Wait, tuples have a projective context?
01:43:15 <tswett> Yup. You wouldn't be able to do "where" on them if they didn't have a projective context.
01:43:20 <hppavilion[1]> Ah
01:43:22 <hppavilion[1]> OK
01:43:27 <hppavilion[1]> How does it work, precisely?
01:43:36 <hppavilion[1]> That previous line of code in particular
01:43:56 <tswett> So, the first half of it, "c1: cats * c2: cats" has a type something like this:
01:44:01 * Lilly_Goodman les dice a todos en este momento que Cristo te ama mas de lo que te puedes imaginar :-)
01:44:31 <tswett> "ad-hoc struct with fields c1 of type CatInfo and c2 of type CatInfo"
01:44:44 <tswett> And that generates a projective context.
01:44:47 <hppavilion[1]> Aaaaaaah
01:44:57 <hppavilion[1]> So that's an ad-hoc struct, more so than a tuple
01:45:06 <tswett> And the two most notable things in this context are c1, of type CatInfo, and c2, also of type CatInfo.
01:45:16 <hppavilion[1]> I understood that
01:45:32 <hppavilion[1]> tswett: So what's the problem that's giving you trouble?
01:45:51 <tswett> You mean besides the st.(num+i) thing you brought up?
01:46:06 <hppavilion[1]> tswett: Whichever it was you were talking about
01:46:25 <hppavilion[1]> tswett: Though how you plan to overcome st.(num+i) would also be of interest
01:46:28 <tswett> I'm not totally sure if that problem really existed.
01:46:35 <hppavilion[1]> tswett: Ah
01:46:35 <tswett> Though this problem is one of those win-win problems...
01:46:40 <tswett> Either I'll run into it or I won't.
01:47:01 <tswett> If I run into it, perfect—I can figure out how to fix it. If I don't run into it, perfect—the problem doesn't exist.
01:47:11 <hppavilion[1]> tswett: You have product types (*), but do you have sum types?
01:47:40 <hppavilion[1]> PetRows = CatRows + DogRows
01:47:44 <tswett> Those will be added.
01:47:47 <hppavilion[1]> OK
01:47:58 <tswett> But I want to work out the core language here before adding anything onto it.
01:48:02 <hppavilion[1]> tswett: Any other features of interest? And is this on GitHub?
01:48:15 <tswett> It'll be on Bitbucket.
01:48:55 <tswett> Other features of interest... oh yeah, there's one cool thing I want to do.
01:49:14 <tswett> Suppose you've got a database where every table has this one column, say "Region".
01:49:57 <tswett> You can get to a "slice database"—one where the Region columns are no longer visible, and all inter-table references automatically stay within the one Region.
01:50:10 <tswett> If you ask something like "how many rows are in this table", you'll get one answer for each Region.
01:50:24 <tswett> Sort of like the database has been sliced into a bunch of little databases, one for each Region.
01:50:32 <tswett> And all with identical schemas.
01:51:07 * Lilly_Goodman les dice a todos en este momento que Cristo te ama mas de lo que te puedes imaginar :-)
01:53:13 <hppavilion[1]> OK, give me a minute to reread that a few times xD
01:54:34 <hppavilion[1]> Interesting
01:54:50 <tswett> Uhhhhh I feel like there's something I'm missing right this moment.
01:54:53 * tswett shrug.
01:55:13 <hppavilion[1]> tswett: Check your 2x2x2. Maybe it's in its shift state
01:55:17 <hppavilion[1]> That's probably what you're missing.
01:55:24 <tswett> The half of it which I can see appears solved.
01:55:41 <tswett> I flipped it around to look at the other half. Once again, the half of it which I can see appears solved.
01:56:03 -!- lambda-11235 has joined.
01:56:18 <tswett> But I cannot look at the whole thing at once.
01:56:26 <tswett> Nyow. About that global thing.
01:56:43 <tswett> You know, you might be totally right.
01:56:47 <hppavilion[1]> The tragedy of limipresence
01:57:13 <hppavilion[1]> *Mind blow*
01:57:14 <tswett> Maybe there does need to be a thing called "global" you can use to explicitly request the global scope.
01:57:23 <hppavilion[1]> Yep.
01:57:23 <tswett> What's limipresence?
01:57:38 <hppavilion[1]> tswett: Finite presence; if you are not omnipresent, you are limipresent
01:57:48 <tswett> Ah.
01:58:51 <hppavilion[1]> tswett: You could also have a "one level up" operator that isn't global, but it's the scope containing the current scope
01:59:07 <tswett> That one I don't like.
01:59:18 -!- XorSwap has joined.
01:59:20 <hppavilion[1]> I don't really either, but I like sharing ideas xP
01:59:48 <tswett> So lemme see. Have we totally figured out the core language here?
01:59:54 <hppavilion[1]> :|B <-- beard
02:00:05 <hppavilion[1]> tswett: How do you order a selection?
02:00:13 <tswett> By using features I haven't come up with yet.
02:00:20 <hppavilion[1]> OK
02:00:23 <hppavilion[1]> tswett: How about
02:00:28 <hppavilion[1]> Whoops
02:00:31 <tswett> Let's try to think of some really complicated queries or something.
02:00:52 <hppavilion[1]> tswett: Select the last item in the table that has some property
02:01:17 -!- bender| has joined.
02:01:18 <tswett> Also something I haven't come up with yet. So far, all row sets are orderless.
02:01:30 <hppavilion[1]> Oh
02:01:33 <hppavilion[1]> That's not very relational
02:01:38 -!- XorSwap has quit (Client Quit).
02:01:43 <tswett> That's exactly relational.
02:01:57 <hppavilion[1]> tswett: Though I think if you give every table a row# item, you can accomplish that
02:02:12 <hppavilion[1]> tswett: Perhaps you should also have a unary . operator, that produces an expression that can be applied to extract a value?
02:02:22 <tswett> What do you mean by that?
02:02:25 <hppavilion[1]> .(x+y) can be applied to anything with attributes x and y
02:02:31 <hppavilion[1]> And will return their sum
02:02:32 <hppavilion[1]> ...
02:02:36 <hppavilion[1]> No, terrible idea
02:02:41 <hppavilion[1]> Well, maybe
02:02:41 <tswett> That's just (x+y).
02:02:53 <tswett> Like...
02:03:06 <hppavilion[1]> tswett: But for what sc- OH! can you have unevaluatable expression you can later evaluate?
02:03:21 <hppavilion[1]> Like (x+y) where x and y are undefined?
02:03:29 <tswett> You know how if you have a cat Furissa of friendliness 8, and you evaluate furissa.(name + to_string(friendliness)), you get "Furissa8"?
02:03:37 <tswett> You can do something like this:
02:03:45 -!- Lilly_Goodman has quit (Ping timeout: 276 seconds).
02:03:46 <hppavilion[1]> OK
02:04:09 <tswett> "Let the name_with_friendliness of a CatInfo be name + to_string(friendliness)."
02:04:20 <tswett> Then you can do furissa.name_with_friendliness.
02:04:23 <hppavilion[1]> OK
02:04:31 <hppavilion[1]> That looks good
02:04:34 <tswett> Or: cats where length(name_with_friendliness) <= 7
02:05:13 <tswett> By the way, this lets you do some awful stuff that I hope nobody will ever do.
02:05:15 <hppavilion[1]> (ci: CatInfo).name_with_friendliness = ci.name + to_string(ci.friendliness)
02:05:20 <tswett> And it's a futile hope, because someone will definitely do this.
02:05:25 <hppavilion[1]> tswett: Such as?
02:05:52 <tswett> You could say something like: "Let the one_more of an integer x be x + 1."
02:05:57 <hppavilion[1]> Oh, I assume = has its own contextiness
02:06:06 <tswett> And then you could do something like this: (3).(one_more + one_more)
02:06:08 <tswett> And you'll get 8.
02:06:09 <hppavilion[1]> Where the lhs of = returns a reference instead of a value
02:06:16 -!- lambda-11235 has quit (Max SendQ exceeded).
02:06:25 <hppavilion[1]> Eeew...
02:06:28 <tswett> Well, I'm using = for equality comparison, not assignment.
02:06:29 <hppavilion[1]> I need to go shower
02:06:29 <tswett> I know, right?
02:06:35 <hppavilion[1]> tswett: OK then, :=
02:06:43 <tswett> There we go.
02:06:53 -!- lambda-11235 has joined.
02:07:14 <hppavilion[1]> So am I correct to guess that :='s lhs is evaluated to produce a reference?
02:07:17 <tswett> I'm not sure what the syntax would be, but it might be more like this:
02:07:25 <hppavilion[1]> And that the scope created is used on the rhs?
02:07:33 <tswett> (CatInfo).name_with_friendliness := name + to_string(friendliness)
02:07:40 <tswett> Well... the short answer is no.
02:07:52 <tswett> The LHS is just an identifier, or a type with an identifier after it like that.
02:08:01 <hppavilion[1]> tswett: OK :/
02:08:02 <tswett> It's not really an expression you can evaluate.
02:08:11 <tswett> But I do hope to do something kind of along those lines later.
02:08:11 <hppavilion[1]> tswett: I guess that's for the best
02:08:26 <hppavilion[1]> Because x+1 := 3 is a pain to evaluate (it would, in theory, set x to 2)
02:08:33 <hppavilion[1]> (but that's hard)
02:08:33 <tswett> Right.
02:08:43 <tswett> Not to mention that that's sometimes uncomputable.
02:08:48 <hppavilion[1]> Of course
02:08:59 <hppavilion[1]> And uncomputability is itself uncomputable oftentimes
02:09:00 <hppavilion[1]> And so on
02:09:01 <tswett> But: make it so that if a query returns some rows that come from a table, you can, like, set the output of the query.
02:09:04 <tswett> Something like...
02:09:27 <hppavilion[1]> Listening.
02:09:49 <tswett> update (cats where name = "Furissa").name := "Furrison"
02:10:09 <hppavilion[1]> Oh god.
02:10:22 -!- Lilly_Goodman has joined.
02:10:30 <tswett> It'll undoubtedly be kind of weird.
02:10:33 <hppavilion[1]> Does that modify the result of a query for cats where name = "Furissa"?
02:10:42 <tswett> Thankfully, no.
02:10:42 <hppavilion[1]> Without changing Furissa to Furrison?
02:10:45 <hppavilion[1]> Oh, good
02:10:57 <hppavilion[1]> Oh, good || Oh, god.
02:11:25 <tswett> Essentially, it performs the query 'cats where name = "Furissa"' to come up with a list of rows of the table "cats".
02:11:36 <hppavilion[1]> OK
02:11:43 <tswett> Then it applies the "name" projection to that to come up with a list of table cells containing strings.
02:11:45 <hppavilion[1]> And then it sets it to Furisson
02:11:54 <tswett> And one of the things you can do with a table cell containing a string is to change what that string is.
02:12:11 <tswett> So really, "cats" has a type like...
02:12:24 <tswett> UpdatableInsertableDeletableRowset<CatInfo>
02:12:49 <tswett> Then you do "where name = "Furissa"" on it, getting an...
02:12:55 <tswett> UpdatableDeletableRowset<CatInfo>
02:13:04 <tswett> Then you do ".name" on that, giving you an...
02:13:10 <tswett> UpdatableDeletableRowset<String>
02:16:49 <tswett> Now, you know how I mentioned I want this to be usable as a front-end to a SQL database?
02:17:53 <tswett> I guess that might actually initially be the *only* way to do it.
02:18:08 <tswett> Lemme think what that might look like.
02:19:19 <oerjan> <tswett> You know how if you have a cat Furissa [...] <-- then you shouldn't be trusted around cats hth
02:22:07 <tswett> Table CallTicket := SqlTable(cts_call_ticket) { integer IdNumber := "ticket_id" primarykey; string Description := "ticket_desc" }
02:22:09 <tswett> oerjan: tht
02:22:22 <tswett> And then...
02:23:52 <tswett> Table TicketEvent := SqlTable(cts_ticket_event) { reference<CallTicket> Ticket := "ticket_id"; string Description := "event_desc"; datetime Datetime := "event_datetime" }
02:24:12 <tswett> And then you can do stuff like...
02:24:36 <tswett> (TicketEvent where Ticket.Description = "Oh no! Everything's on fire!").Datetime
02:24:50 <tswett> Which would be a SQL query something like...
02:25:38 <tswett> SELECT event.event_datetime FROM cts_call_ticket ticket, cts_ticket_event event WHERE ticket.ticket_id = event.ticket_id AND ticket.ticket_desc = 'Oh no! Everything''s on fire!'
02:25:46 -!- lambda-11235 has quit (Ping timeout: 252 seconds).
02:31:56 -!- lambda-11235 has joined.
02:43:27 <hppavilion[1]> tswett: Oh, here's a possibly-core language feature you might want to look into
02:43:32 <hppavilion[1]> UNION and INTERSECTION
02:44:22 <hppavilion[1]> && and || if you please
02:44:28 -!- lambda-11235 has quit (Max SendQ exceeded).
02:45:34 -!- lambda-11235 has joined.
02:47:23 <hppavilion[1]> tswett: Event-driven database...
03:11:13 <hppavilion[1]> shachaf: Is there such thing as a Zeration Type?
03:11:40 <shachaf> I don't know.
03:12:20 <oerjan> that would be x -> Void, wouldn't it? so negation.
03:12:28 <hppavilion[1]> shachaf: Weren't you the one who knew about A^B earlier?
03:12:43 <hppavilion[1]> oerjan: But if A -> B is A^B
03:12:44 <shachaf> I don't know what zeration is.
03:12:46 <oerjan> or just Void for zero itself.
03:13:00 <hppavilion[1]> shachaf: Successor, basically, but with two arguments. The basic hyperoperation
03:13:10 <hppavilion[1]> And Void = 0, IIRC
03:13:13 <oerjan> i assumed it's the operation of turning something into zero.
03:13:30 <oerjan> ...ic
03:13:44 <hppavilion[1]> `? ic
03:13:53 <HackEgo> ic what you did there.
03:14:02 <hppavilion[1]> oerjan: What's ic?
03:14:10 <shachaf> @google "look for a ...ic transporter"
03:14:11 <lambdabot> http://nethack.wikia.com/wiki/Wizard_quest
03:14:11 <lambdabot> Title: Wizard quest - Wikihack - Wikia
03:16:55 <oerjan> hppavilion[1]: it sounds like it would need to be a function that ignores one of its arguments
03:17:16 <oerjan> a -> b -> Maybe b
03:17:48 <oerjan> @djinn a -> b -> Maybe b
03:17:48 <lambdabot> f _ a = Just a
03:18:15 <oerjan> lambdabot: maybe a bit confusing variable choice there
03:18:51 <shachaf> Just a bit
03:18:56 <hppavilion[1]> oerjan: Yes, it is
03:19:12 <oerjan> or wait...
03:19:23 <shachaf> oerjan: did you find your swatter yet twh
03:19:23 <oerjan> i think i'm mixing levels up there
03:19:42 <oerjan> shachaf: my swatter was never missing
03:19:55 <shachaf> i guess that wasn't really swatworthy
03:19:56 <oerjan> it was my saucepan that had been absconded
03:20:00 <shachaf> oh, right
03:20:40 * oerjan hits shachaf with a damp straw ----
03:20:50 <shachaf> do you ever cook with the saucepan
03:20:53 <shachaf> ===\~~/
03:21:02 <oerjan> no.
03:21:22 <ski> hppavilion[1],shachaf : `exp t' is the type of bags of inhabitants of `t', at least for finite `t'
03:21:26 <\oren\> yay bacon!
03:21:32 <shachaf> ===\ꙮꙮ/
03:21:37 <hppavilion[1]> ski: Oh, you're here too
03:21:38 <shachaf> ski: Are you sure?
03:21:57 <shachaf> ski: That would be (-> Nat)
03:22:15 <hppavilion[1]> I just realized that kleene algebra and type theory work well together
03:22:30 <shachaf> Hmm, I remember thinking about this and coming to some conclusion but it was years ago.
03:22:34 <hppavilion[1]> + in kleene algebra = + in type theory, * in kleene algebra is like * in type theory
03:23:11 <ski> shachaf : at least judging from the expansion `exp t = sum_{i : |N} t^i / i!'
03:23:15 <oerjan> hppavilion[1]: on second thought, i don't think zeration and successor can be distinguished at this level
03:24:05 <hppavilion[1]> oerjan: Successor takes 1 arg, zeration 2
03:24:20 <hppavilion[1]> So I think we can define kleene exponentiation
03:24:32 <hppavilion[1]> Also, S() is ?
03:24:48 <hppavilion[1]> The successor of a string is that string OR the null string
03:25:02 <oerjan> ski: shachaf: _finite_ bags
03:25:26 <oerjan> so (-> Nat) is excluded if it's infinite...
03:25:47 <ski> oerjan : "at least for finite `t'" -- but, yes, also finite multiplicity, so you're correct
03:26:07 <hppavilion[1]> I think kleene ^ may correspond to y///
03:26:20 <hppavilion[1]> Somehow
03:26:42 <oerjan> hppavilion[1]: no, i mean, this arithmetic <-> type correspondence doesn't have a notion of unused arguments, since you don't have functions, but expressions on the left side
03:26:50 <hppavilion[1]> oerjan: Ah
03:27:04 <hppavilion[1]> Right, right, I get it
03:30:45 <oerjan> ski: wait, does this mean Nat is e? >:)
03:32:19 <oerjan> ski: oh. i think i see what's going wrong. the x^n/n! <-> n-bag of x correspondence breaks down because of tuples with repeated elements.
03:32:24 -!- lambda-11235 has quit (Ping timeout: 244 seconds).
03:32:54 <shachaf> Oh, repeated elements, that's it.
03:33:08 <shachaf> I remembered there was an issue like that, but I thought it was about unordered tuple.
03:33:11 <shachaf> tuples
03:33:56 <ski> oerjan : breaks down how ?
03:33:59 <oerjan> shachaf: well sure, bags are unordered tuples
03:35:32 <shachaf> If x is Bool, then there are three 2-bags of x.
03:36:04 <oerjan> but 4 2-tuples
03:36:18 <oerjan> and 3 /= 4 / 2!
03:37:34 -!- Lilly_Goodman has quit (Ping timeout: 244 seconds).
03:38:02 <oerjan> looked at differently: x^n/n! is rarely an integer.
03:38:13 -!- Lilly_Goodman has joined.
03:42:25 * ski doesn't see a problem
03:43:59 <oerjan> ski: X^n represents n-tuples of X. to divide by n!, there have to n! tuples that identify because they're the same bag. but that only happens for tuples that have all elements distinct and are permutations of each other.
03:44:05 <oerjan> *have to be
03:44:05 <ski> `t^i / i!' isn't to be viewed as a type divided by another type. but rather a type "divided" by a quotient (/factor) type of that type
03:44:07 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: t^i: not found
03:44:36 <oerjan> ski: yes, but not all equivalence classes have size i!
03:44:52 <ski> is that a problem ?
03:44:59 <oerjan> i should say so.
03:45:03 <ski> why ?
03:45:21 -!- lambda-11235 has joined.
03:45:30 <oerjan> ...oh well...
03:45:56 <shachaf> ski: Why do you think it's not a problem?
03:46:04 <oerjan> if you don't have that (t^i / i!)
03:46:11 <oerjan> argh stupid return
03:46:38 <oerjan> if you don't have that (t^i / i!) * i! == t^i then it's not a very good correspondence with arithmetic.
03:46:48 <ski> shachaf : only because i can't see it
03:47:49 <ski> oerjan : if you accept my ".. isn't .. rather ..", then that `*' isn't an ordinary cartesian product of two sets
03:48:34 <ski> so while we want (finite) sets/types to correspond with naturals here, i don't see why we should expect factor/quotient dittos to also correspond with naturals
03:48:53 <ski> (perhaps there's still a problem. but i don't see it atm)
03:49:16 -!- lambdabot has quit (Remote host closed the connection).
03:49:28 <oerjan> ski: * is already well-established as cartesian product.
03:49:47 <ski> yes, for normal uses of it
03:49:52 <oerjan> like + is disjoint/tagged union
03:50:36 <oerjan> i'm saying any extension to the correspondence which doesn't fit in with those isn't particularly interesting.
03:51:16 <ski> however, viewing `t^i / i!' as being about quotients, it's not clear (to me) that it ought to satisfy a relation like `(t^i / i!) * i! = t^i', relating it to a more restricted cartesian product
03:51:53 <oerjan> FINE
03:52:00 <ski> (because, a quotient thing corresponding to cartesian product requires each equivalence class to have the same size. but that's exactly what's not the case here with our `t^i / i!')
03:52:42 -!- lambdabot has joined.
03:52:44 <oerjan> let me rephrase that: _i_ don't find such an extension interesting unless it has some other property to make up for it.
03:52:58 <ski> ok
03:54:32 <shachaf> this seems like a p. awkward way to write in point-free style: http://metatree.xyz/treeprover/
03:59:49 -!- tromp has joined.
04:00:45 -!- nooga has joined.
04:03:05 -!- Lilly_Goodman has quit (Ping timeout: 248 seconds).
04:03:43 -!- Lilly_Goodman has joined.
04:05:18 -!- nooga has quit (Ping timeout: 276 seconds).
04:09:52 -!- Lilly_Goodman has quit (Ping timeout: 268 seconds).
04:12:44 -!- Lilly_Goodman has joined.
04:19:47 -!- Lilly_Goodman has quit (Ping timeout: 248 seconds).
04:24:22 -!- treaki__ has joined.
04:25:04 -!- MoALTz has quit (Ping timeout: 244 seconds).
04:27:24 -!- treaki_ has quit (Ping timeout: 276 seconds).
05:13:39 -!- MoALTz has joined.
05:29:15 -!- hppavilion[1] has quit (Ping timeout: 264 seconds).
05:49:22 -!- lambda-11235 has quit (Quit: Bye).
05:57:03 -!- jaboja64 has quit (Remote host closed the connection).
06:15:02 -!- me2 has joined.
06:40:52 -!- Sgeo__ has joined.
06:49:15 <coppro> principle/principal are the worst homophones
06:49:44 <coppro> they're just common enough that people use them regularly, but uncommon and long enough that they don't know the difference
06:49:47 <coppro> this annoys me
06:49:51 <coppro> it's the principal of the thing, really
07:29:45 <oerjan> coppro: surely the principle issue is understanding what's meant
07:45:00 -!- nooga has joined.
07:56:13 -!- ais523 has quit.
07:58:00 <int-e> there must be room for a unified spelling here... principale?
08:10:43 * oerjan wanted to make a "beyond the pale" pun but instead learned what "the pale" actually meant
08:17:48 -!- ais523 has joined.
08:38:30 -!- nooga has quit (Ping timeout: 246 seconds).
08:39:31 -!- nooga has joined.
08:53:02 <int-e> . o O ( the mopale )
09:05:34 -!- nooga has quit (Ping timeout: 260 seconds).
09:11:50 -!- bender| has quit (Quit: [restarting]).
09:18:28 -!- bender| has joined.
09:25:26 -!- oerjan has quit (Quit: Nite).
09:28:52 -!- J_Arcane has quit (Ping timeout: 244 seconds).
09:35:35 -!- me2 has quit (Read error: Connection reset by peer).
09:36:36 -!- me2 has joined.
10:07:46 -!- impomatic_ has quit (Quit: http://corewar.co.uk).
10:10:13 -!- AnotherTest has joined.
10:15:57 -!- lleu has quit (Quit: That's what she said).
10:16:15 -!- lleu has joined.
10:17:26 -!- boily has joined.
10:46:58 <ais523> huh, I just realised that there's an easy way to construct hash collisions: SHA-256(512×(2²⁵⁶+(2²⁵⁶)!) zeroes) = SHA-256(512×2²⁵⁶ zeroes)
10:47:07 <ais523> let me know if there's anything wrong with my reasoning
10:47:20 <ais523> of course, 2²⁵⁶ factorial is way too large for the collision to be useful at all
10:47:27 <ais523> and we don't know what the actual hash value is
10:47:32 <ais523> but I don't see any reason why this method wouldn't work
10:54:37 <lifthrasiir> ais523: the input of SHA-256 is limited to 2^512-1 bits due to the preprocessing step.
10:54:47 <lifthrasiir> > append length of message (without the '1' bit or padding), in bits, as 64-bit big-endian integer
10:54:49 <lambdabot> <hint>:1:15: parse error on input ‘of’
10:54:56 <lifthrasiir> oh,
10:56:19 <ais523> hmm
10:56:30 <ais523> I guess you just append a zero? assuming two's complement
10:58:19 <lifthrasiir> ais523: I meant that there is no standard way to handle more than 2^512-1 bits of input with SHA-256
10:58:36 <lifthrasiir> so well, SHA-256(512*2^256 zeroes) is not well defined
10:58:40 <ais523> you mean 2⁶⁴
10:58:45 <ais523> but hmm, right
10:58:46 <lifthrasiir> ah
10:58:47 <lifthrasiir> yeah
10:58:58 <ais523> perhaps it's intentional to stop this sort of attack
11:01:00 <lifthrasiir> ais523: probably more about preventing an extension attack?
11:01:26 <ais523> this reminds me of an extension attack
11:03:26 <ais523> hmm, I think it works for SHA-3, though (although the description on Wikipedia is unclear)
11:03:42 <izabera> bomb in bruxelles
11:04:06 <izabera> two bombs
11:04:13 <izabera> one in the airport and one in the subway
11:08:51 <boily> what. now?
11:08:55 <boily> @massages-loud
11:08:55 <lambdabot> oerjan said 11h 3m 17s ago: tunnbröd is swedish not danish hth
11:08:55 <lambdabot> oerjan said 11h 2m 15s ago: you might substitute fladbrød instead hth
11:09:56 <boily> oh fuck.
11:10:17 <lifthrasiir> ais523: probably the role of hashing function has been reduced since the introduction of MD5/SHA-1/2.
11:10:43 <ais523> well they're used for all sorts of things, requiring different levels of security
11:11:01 <lifthrasiir> yeah, but now we distinguish MACs from hash functions
11:11:04 <ais523> there's even an argument for using cryptohashes for hash tables
11:11:08 <lifthrasiir> (correctly)
11:11:15 <ais523> lifthrasiir: I was actually always wondering what the distinction was
11:12:25 <izabera> https://www.reddit.com/live/wmk50bsm9vt3
11:13:42 <lifthrasiir> ais523: IIUC hash functions ensure the data integrity (that is, it is not tampered since the beginning of transfer) but not the authenticity (that is, it came from who we can or learned to trust before)
11:14:06 <lifthrasiir> MAC has an additional parameter for keys for that reason
11:30:51 -!- boily has quit (Quit: POOL CHICKEN).
12:05:56 <tswett> @tell hppavilion[1] The core language pretty much only has two features: products and "where". Everything else is going to be an extension.
12:05:56 <lambdabot> Consider it noted.
12:20:19 -!- AnotherTest has quit (Ping timeout: 248 seconds).
12:30:08 -!- lleu has quit (Quit: That's what she said).
12:44:18 <b_jonas> argh! this stupid build system
12:44:26 <b_jonas> @messages
12:49:01 * b_jonas screams
12:52:43 -!- ais523 has quit.
12:52:58 -!- vanila has joined.
12:53:02 <vanila> hello
12:53:30 -!- Sgeo__ has quit (Ping timeout: 244 seconds).
12:55:18 <vanila> @tell
12:55:18 <lambdabot> Who should I tell?
12:55:24 <vanila> @tell zzo38 i cant load your gopher :(
12:55:24 <lambdabot> Consider it noted.
13:10:29 -!- lynn has joined.
13:40:01 <izabera> idea: using the git commit hash as the version
13:40:04 -!- lleu has joined.
13:40:04 -!- lleu has quit (Changing host).
13:40:04 -!- lleu has joined.
13:40:12 <vanila> izabera, bad idea not sortable
13:40:34 <izabera> good point
13:40:35 -!- nycs has joined.
13:40:40 <izabera> well
13:40:45 <izabera> it is sortable
13:40:52 <izabera> just not the obvious way
13:41:07 <vanila> true :P
13:49:34 -!- AnotherTest has joined.
13:54:48 -!- lambda-11235 has joined.
14:01:47 <b_jonas> vanila: use the http access instead, at http://zzo38computer.org/textfile/miscellaneous/
14:01:57 <b_jonas> unless you can't use http either that is
14:03:17 <vanila> but i want gopher
14:05:06 <b_jonas> what's the error if you try to access the gopher?
14:10:38 -!- XorSwap has joined.
14:25:48 -!- jaboja has joined.
14:50:13 -!- XorSwap has quit (Quit: Leaving).
15:02:28 -!- lambda-11235 has quit (Quit: Bye).
15:03:38 -!- p34k has joined.
15:14:01 -!- jaboja has quit (Remote host closed the connection).
15:46:04 -!- earendel has quit (Ping timeout: 244 seconds).
15:46:38 <b_jonas> According to http://magic.wizards.com/en/articles/archive/card-preview/basic-lands-shadows-over-innistrad-2016-03-21 , Shadows over Innistrad will have three arts for each basic land. Isn't it supposed to have four arts each, since it's a large set?
15:59:23 <int-e> hmm, the third island seems too colorful
16:02:08 -!- bender| has quit (Quit: Leaving).
16:17:49 <b_jonas> there's been some colorful islands already.
16:46:57 -!- me2 has quit (Read error: Connection reset by peer).
16:50:28 -!- me2 has joined.
17:17:16 -!- lambda-11235 has joined.
17:33:46 -!- mihow has joined.
17:55:27 -!- nooga has joined.
18:09:40 -!- jaboja has joined.
18:11:49 -!- hppavilion[1] has joined.
18:20:01 <hppavilion[1]> You know what'd be awesome?
18:20:16 <hppavilion[1]> A hybrid between a proof assistant and a practical programming language
18:20:26 <hppavilion[1]> @messages-louder
18:20:27 <lambdabot> tswett said 6h 14m 30s ago: The core language pretty much only has two features: products and "where". Everything else is going to be an extension.
18:23:33 -!- lambda-11235 has quit (Ping timeout: 240 seconds).
18:28:25 -!- lambda-11235 has joined.
18:30:27 -!- nooga has quit (Ping timeout: 264 seconds).
18:33:03 -!- lambda-11235 has quit (Ping timeout: 276 seconds).
18:40:22 -!- jaboja has quit (Ping timeout: 252 seconds).
18:50:16 -!- hppavilion[1] has quit (Ping timeout: 264 seconds).
18:55:24 -!- earendel has joined.
18:56:50 -!- hppavilion[1] has joined.
18:58:20 <HackEgo> [wiki] [[LABEL]] N https://esolangs.org/w/index.php?oldid=46631 * FricativeMelon * (+2751) Created page with "'''LABEL''' is a programming language based on goto-like jumps and loops and whose memory consists entirely of how many jumps have been made. == Syntax == {| class="wikitabl..."
18:59:25 -!- nycs has quit (Quit: This computer has gone to sleep).
19:01:37 -!- I has joined.
19:02:00 -!- I has changed nick to Guest11109.
19:14:07 -!- Guest11109 has quit (Quit: This computer has gone to sleep).
19:14:46 -!- nycs has joined.
19:20:25 -!- jaboja has joined.
19:26:50 -!- nooga has joined.
19:31:29 -!- nooga has quit (Ping timeout: 260 seconds).
19:37:22 <HackEgo> [wiki] [[Talk:Seed]] N https://esolangs.org/w/index.php?oldid=46632 * Dittoslash * (+123) Created page with "possible seed that produces seed? ~~~~"
19:44:03 -!- lambda-11235 has joined.
19:45:09 -!- J_Arcane has joined.
19:50:01 -!- Lilly_Goodman has joined.
19:53:12 -!- int-e has changed nick to int-e_.
19:53:18 -!- int-e_ has changed nick to int-e.
19:56:36 -!- lleu has quit (Read error: Connection reset by peer).
19:58:20 -!- aloril_ has quit (Ping timeout: 260 seconds).
19:58:54 -!- tswett has quit (Ping timeout: 260 seconds).
19:58:54 -!- cnr has quit (Ping timeout: 260 seconds).
20:00:00 -!- Warrigal has joined.
20:03:42 -!- cnr has joined.
20:03:44 -!- cnr has quit (Changing host).
20:03:44 -!- cnr has joined.
20:05:32 -!- nooga has joined.
20:05:40 -!- lambda-11235 has quit (Quit: Bye).
20:12:02 -!- aloril_ has joined.
20:14:29 -!- Taneb has changed nick to nvd.
20:34:46 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
20:47:47 -!- Phantom_Hoover has joined.
20:50:06 -!- nooga has quit (Ping timeout: 268 seconds).
20:50:39 -!- Lilly_Goodman has quit (Read error: Connection reset by peer).
20:51:17 -!- Lilly_Goodman has joined.
20:54:53 <Lilly_Goodman> hola
20:55:14 <Phantom_Hoover> are you from venezuela
20:58:10 <nvd> Phantom_Hoover, you can't just ask someone if they're from Venezuala
20:58:25 <Phantom_Hoover> but we get so many people from venezuela!
20:58:43 <nvd> We also get a lot of people from Finland
20:59:02 <HackEgo> [wiki] [[LABEL]] https://esolangs.org/w/index.php?diff=46633&oldid=46631 * FricativeMelon * (+213)
20:59:19 <nvd> We've in the past had a statistically improbably number of people from a small town in south west Northumberland!
21:00:08 <Phantom_Hoover> why did we never make a `hexcome
21:01:45 -!- nycs has quit (Quit: This computer has gone to sleep).
21:02:09 -!- hppavilion[1] has joined.
21:03:18 <myname> just do it
21:05:09 -!- nooga has joined.
21:11:24 -!- nooga has quit (Read error: Connection reset by peer).
21:14:37 -!- nooga has joined.
21:17:19 -!- I has joined.
21:17:39 -!- I has changed nick to Guest25470.
21:38:25 -!- p34k has quit.
21:42:31 -!- Guest25470 has quit (Ping timeout: 268 seconds).
21:45:08 <hppavilion[1]> @ask tswett Wait, aren't functions going to be in the core of Quendle? They should be.
21:45:08 <lambdabot> Consider it noted.
21:52:59 <Warrigal> User-definable functions... yeah, those will probably be in the core.
21:53:02 -!- Warrigal has changed nick to tswett.
21:53:12 <tswett> I wonder if I have any new messages.
21:53:36 <tswett> Probably not. After all, lambdabot would have told me, out loud, in the channel, if that were the case.
21:53:41 <hppavilion[1]> tswett: Oh, Warrigal, right
21:54:02 <hppavilion[1]> tswett: What about the "is item of" operator?
21:54:29 <hppavilion[1]> (traditional: ∈)
21:54:42 <hppavilion[1]> I'm writing a mockup DiGraph library for Quendle based on my limited knowledge
21:54:52 <int-e> @slep tswett
21:54:52 <lambdabot> I'd rather not; tswett looks rather dangerous.
21:54:53 <hppavilion[1]> e and ∈ look very similar in Neoletters
21:55:04 <int-e> pity :P
21:55:24 <tswett> Yeah, that'll be one of the operators.
21:55:27 * int-e sidles home
21:55:48 -!- p34k has joined.
21:57:44 <hppavilion[1]> tswett: I'm trying to define subset of in my mockup, but I'm assuming Quendle is fully declarative. Does it have Haskell-style list building?
21:58:03 <tswett> So far there are no lists, only sets.
21:58:16 <hppavilion[1]> tswett: Or, for this, Set Building
21:58:44 <tswett> The features I've already described are kind of like Haskell-style set building.
21:58:48 <hppavilion[1]> {f(x) : x ∈ s, ...}
21:58:52 <hppavilion[1]> tswett: Oh, right
21:59:12 <hppavilion[1]> tswett: I presume Quendle has unicode support as an alternate to ASCII?
21:59:28 <hppavilion[1]> So I can, if I please, literally use ∈ in my code?
21:59:31 -!- Lilly_Goodman has quit (Quit: (saliendo)).
21:59:38 <tswett> Quendle doesn't even support ASCII as such.
21:59:47 <tswett> There's no way to say "I don't want the rest of Unicode".
21:59:51 <hppavilion[1]> tswett: What does it support? EBDIC?
21:59:54 <hppavilion[1]> Oh
21:59:55 <hppavilion[1]> OK
21:59:58 -!- Lilly_Goodman has joined.
22:00:20 <hppavilion[1]> tswett: Do you mean you can't exclude data to unicode strings, or that untypable characters are required to use the language?
22:00:42 <tswett> Something like the former.
22:01:07 <hppavilion[1]> tswett: Given sets a, b, would a ∈ b return one of {True}, {False}, or {False, True} based on whether all items of a are in b?
22:01:20 <hppavilion[1]> Basically, does ∈ work over sets?
22:01:32 <tswett> I'll probably make that invalid for the time being.
22:01:46 <hppavilion[1]> tswett: OK
22:01:56 <hppavilion[1]> tswett: What do I do to test for subsetship?
22:02:02 <tswett> I accidentally got my 2x2 in a certain interesting configuration. I went to this solver site to see if there was a particularly interesting algorithm to produce this configuration.
22:02:05 <hppavilion[1]> Given a, b
22:02:24 <tswett> I guess there's going to be an operator called "subset" or something.
22:02:41 <hppavilion[1]> tswett: With alternative ⊂, I hope?
22:02:53 <tswett> Turns out that yes, there's definitely a particularly interesting algorithm for this configuration. Namely: U F2 U2 R2 U
22:03:03 <tswett> hppavilion[1]: yup, I suppose that would also work.
22:03:24 <hppavilion[1]> tswett: See, if the element-of operator works over sets (as mentioned above), you can do (non-strict) subset with !(False ∈ (a ∈ b))
22:03:55 <tswett> Yup.
22:04:19 <tswett> Which is why there's a subset operator—otherwise you'd have to do something like that. :)
22:04:31 <hppavilion[1]> tswett: Ah
22:04:45 <hppavilion[1]> tswett: Is there a reduce operator?
22:04:47 <hppavilion[1]> Oh, have to go
22:04:53 <hppavilion[1]> Be back on in a bit when I'm out of this room
22:05:05 <tswett> Reduce, what would that be?
22:05:33 <tswett> There are gonna have to be "all" and "any" operators that work on sets of booleans.
22:06:23 -!- AnotherTest has quit (Quit: ZNC - http://znc.in).
22:07:12 <izabera> !bf ,[>>+>>,]<<[[<<]>>[-[<]>>[.<<->]>+>>]<<]!foo1234bar
22:07:12 <EgoBot> No output.
22:07:18 <tswett> Turns out the sequence I just gave is self-inverse. Let me investigate why that is. The sequence can also be written as (F2 U2 R2 U2)^U.
22:07:39 <tswett> F2 U2 R2 U2 is also self-inverse.
22:09:25 -!- hppavilion[1] has quit (Ping timeout: 244 seconds).
22:15:28 <tswett> Let's see. Double that, you get F2 U2 R2 U2 F2 U2 R2 U2, which is, of course, R2^(F2 U2) R2^(U2).
22:16:07 <tswett> Hm.
22:20:06 -!- boily has joined.
22:26:48 -!- Sgeo__ has joined.
22:27:42 <boily> `wisdom
22:28:13 <HackEgo> ii/Ii is a municipality in Finland, no matter what you do. Except for speaking Swedish.
22:31:57 <shachaf> nvd: whoa whoa whoa, who's that in -lens?
22:36:01 <boily> hellochaf. you would've liked yesterday's Douteux. special pooches.
22:36:15 <boily> pooches everywhere. pooches everytime. always pooches.
22:42:15 -!- lynn_ has joined.
22:44:36 <tswett> I guess another way of saying that is: the involutions F2 and R2^U2 commute.
22:45:57 -!- lynn has quit (Ping timeout: 260 seconds).
22:46:20 <tswett> Which is not surprising: the effect of R2^U2 on the F layer is to swap two of its pieces.
22:47:18 -!- hppavilion[1] has joined.
22:48:34 <hppavilion[1]> tswett: Back
22:48:38 <tswett> Lemme look at algorithms for the opposite corner swap now.
22:52:13 <tswett> Okay, this one looks pretty interesting: R U' R' U' F2 U' R U R' U F2
22:53:38 <tswett> It can also be written as: (U' F2 U')^(U'^R) U F2
22:54:42 <tswett> Swaps UBL and UFR. Never moves DBL.
22:57:55 <tswett> Oh, but there's also another way of writing it.
22:59:18 <tswett> U'^R U' U^(F2 U' R)
23:00:22 <APic> ;)
23:02:12 <vanila> is there a bash program to print the nth command line argument out?
23:02:28 <vanila> like pi 3 a b c d would print c
23:02:53 <tswett> Couldn't be hard to write a shell script to do that.
23:03:12 <vanila> thats not what im asking
23:03:50 <tswett> What do you mean by "a bash program"? You mean a program that you can run from bash?
23:04:05 <hppavilion[1]> pikhq: pi 3 a b c would print b, would it not?
23:04:12 <hppavilion[1]> Whooops, vanila
23:04:18 <hppavilion[1]> Don't know how I messed that up
23:05:00 <vanila> I dont mind
23:05:25 <hppavilion[1]> vanila: I know
23:05:36 -!- Lilly_Goodman has quit (Read error: Connection reset by peer).
23:05:40 -!- mad has joined.
23:05:40 <hppavilion[1]> vanila: But my point stands; pi 3 a b c should print b, not c
23:06:05 <hppavilion[1]> madios would be a good portutation for mad
23:06:06 <vanila> ok
23:06:27 -!- Lilly_Goodman has joined.
23:06:59 <tswett> Did it. hppavilion[1]'s version.
23:07:07 <tswett> #!/bin/bash
23:07:07 <tswett> eval 'echo "${'"$1"'}"'
23:07:08 -!- ais523 has joined.
23:07:12 * hppavilion[1] does a happy dance
23:07:19 <hppavilion[1]> tswett: I thougt it'd be something like that, with $$
23:07:34 <tswett> I thought it'd involve $@ or whatever.
23:07:41 <hppavilion[1]> tswett: WROOOOOOOONG
23:07:44 <hppavilion[1]> Apparently
23:07:49 <tswett> I looked at this: http://stackoverflow.com/questions/1497811/how-to-get-the-nth-positional-argument-in-bash
23:07:56 <tswett> I decided I liked the "eval" solution the best.
23:08:24 <ais523> ah, bash
23:08:34 <ais523> I thought it was Perl but $$ and $@ are unrelated in Perl
23:08:36 -!- jaboja has quit (Ping timeout: 246 seconds).
23:09:00 <mad> http://www.agner.org/optimize/instructionset.pdf "Proposal for an open standard instruction set" What do you guys think of this?
23:09:01 <ais523> other than that they're both punctuation variables
23:09:58 <vanila> eval is dangerous
23:10:11 <vanila> its a nice hack but not safe
23:10:12 <ais523> mad: /me looks
23:10:50 <ais523> it's still assuming that processors work much like today's processors :-(
23:11:13 <ais523> I don't like that assumption; I think we'd have moved on to different processor architectures long ago if not for backwards compatibility
23:12:35 <mad> what do you think processors would look like if they weren't stuck with backwards compatibility?
23:12:37 <tswett> What's wrong with x86 and ARM?
23:13:03 <mad> x86's worst sin IMHO is byte-sized instruction size granularity
23:13:20 -!- jaboja has joined.
23:13:24 <mad> with very complex determination of instruction length due to prefixes etc
23:14:13 <ais523> mad: I think they'd allow for more dynamic parallelism and aliasing behaviour
23:14:43 -!- nooga has quit (Ping timeout: 248 seconds).
23:14:46 <tswett> Proposal: all instructions are encoded as UTF-8.
23:14:48 -!- nooga_ has joined.
23:15:48 <ais523> that only goes up to 31 (32?) bits even if generalized, though
23:15:50 <mad> ais523 : that means that they wouldn't have strictly ordered memory loads/stores?
23:15:52 <ais523> and dos so quite inefficiently
23:16:07 <ais523> mad: most processors don't even now, x86 is weird in that regard
23:16:13 <mad> well
23:16:23 <mad> I mean strictly ordered from the view of a single thread
23:17:01 <mad> Ie irl it's out-of-order but from the view of the instruction sequence, loads/stores happen in-order
23:17:59 <ais523> well, I think threads need to be /really/ cheap
23:18:19 <ais523> so that if you write "a = 1; b = 2" you can run those in separate threads to gain a little performance
23:18:25 <ais523> assuming a and b don't alias
23:18:39 <mad> hmm, that's interesting
23:18:46 <mad> how would you do it?
23:20:03 <mad> completely change how OS's schedule threads? (considering that right now, schedulers are basically hostile to short lived threads)
23:20:13 -!- Lilly_Goodman has quit (Ping timeout: 244 seconds).
23:20:19 <ais523> I'm not sure yet
23:20:28 <ais523> you'd need some lightweight method of specifying fork/join directly in the asm
23:20:34 <ais523> there are a few possibilities
23:20:58 <ais523> I believe the processor would schedule threads in hardware on a small scale, and ask the OS for help only when there were too many to fit on the processor
23:21:19 <ais523> swapping in and out entire processes if possible, and groups of threads if the processes didn't fit
23:21:29 <tswett> I was thinking about threads while I was doing that OS in Rust.
23:21:46 <mad> ais523 : hmmm
23:22:06 -!- Lilly_Goodman has joined.
23:23:00 <tswett> I had a thread-switching method (which I never tested) that was pretty simple.
23:23:07 <mad> ais523 : maybe you could have inactive cores be placed in a pool that can be instantly allocated by the currently running "most important process" (presumably, the process 'on front' in a windows-style scheduler that priorizes GUI programs)
23:23:27 <tswett> Push all registers. Change the stack pointer to something else. Pop all registers.
23:23:36 <mad> and if it has available cores in that pool, the "asm fork/join" is fast
23:24:00 <b_jonas> ais523: well, the cpu already *sort of* does that, as long as you're content with the threads using the same register set, it runs the threads in parallel only if there's no unpredicted branch or other difficult instruction in them, and on x86 the memory access instructions between those threads aren't reordered.
23:24:02 <tswett> Here's a thought. Make it so you can pretty much have an unlimited number of threads going at once.
23:24:24 <ais523> b_jonas: yes, x86 internal design is moving in the direction of trying to convert code into that form automatically via static analysis
23:24:38 <ais523> which is one of the reasons that x86es are so hellishly complicated
23:25:14 <mad> ais523 : that being said, if programs are going to expose parallelism through threading, there are already good designs oriented around that (current generation of SPARCs heavily bank on this)
23:25:19 -!- oerjan has joined.
23:25:31 <tswett> There's a thread queue. The processor repeatedly grabs the first 16 of those threads, executes a bit, and puts them all back on the queue.
23:25:56 <ais523> tswett: probably it should grab the first 16 runnable threads
23:25:58 <b_jonas> ais523: I imagine a cpu could have "hint" style thread fork and join instructions, which try to run a jump in a separate lightweight thread if it can, otherwise just run them one after the other. sort of like how the x86 transactional instructions are "hint" style: there's an easy mapping to trivial instructions the cpu can always fall back to in difficult cases.
23:26:01 <ais523> using some sort of method to determine runnability
23:26:11 <b_jonas> ais523: as in, these instructions would be jumps, not nops.
23:26:48 <tswett> I think it's weird how CPUs go to a humongous amount of effort to execute each instruction.
23:27:19 <b_jonas> although they'd have to be very careful about what happens to the registers
23:27:40 <mad> like, if you know your typical workload is going to have >10 threads, you can basically give up the current generation of CPUs, go towards something simple like an early ARM (in-order 1 or 2 instructions per cycle), add hyperthreading and lots of cores
23:28:13 <tswett> It seems like it would be better to move the complexity from the CPU into the compiler.
23:28:15 <mad> and then your main design problem becomes cache line coherency between 10's of cores
23:28:50 <b_jonas> ais523: "x86 internal design is moving in the direction of trying to convert code into that form automatically via static analysis" -- it's not really static analysis, it happens mostly dynamically a few instructions ahead I think. also, it's not only x86 that's doing that, but some other modern cpus like arm
23:29:11 <tswett> Like, maybe you could make it so that each CPU has its own instruction set, and there's just a small common core supported by the entire family.
23:30:02 <b_jonas> "It seems like it would be better to move the complexity from the CPU into the compiler." => that was the idea of ia64. it failed because business only wants a cpu that can run the software they write NOW faster, rather than a cpu that will run the software you develop 8 years in the future faster.
23:30:20 <mad> tswett : main problems with that is that it's hard for a compiler to guess which memory loads will land in L1 cache and which ones are going to land in L2 cache
23:30:21 <ais523> mad: this is why aliasing needs to be efficient too
23:30:29 <ais523> b_jonas: we've discussed this before in #esoteric
23:30:33 <b_jonas> (that's why x86 and arm are so bundled with historical compatibility.)
23:30:40 <ais523> other theories as to why it failed include "the concept was a good idea, but the actual implementation was insane"
23:30:51 * APic thought Itanium was the Approach with static Analysis.
23:30:59 <ais523> and "it was released before someone had produced a good compiler for it"
23:31:05 <b_jonas> ais523: I don't know, luckily I don't know much about ia64. it might have failed for other reasons too.
23:31:06 <mad> I don't think itanium failed because lack of x86 compatibility
23:31:19 <ais523> apparently, many compiler vendors put out a "minimum that works" compiler rather than one that did the analysis properly
23:31:35 <ais523> that was excessively cautious to the point of absurdity
23:31:36 <tswett> Then each CPU also has some machine-readable description of its instruction set (good luck with that) which compilers can use to produce something actually, like, fast and good.
23:32:02 <mad> what really killed itanium is that they could never get it to really be faster than x86
23:32:15 <APic> Yah.
23:32:29 -!- lambda-11235 has joined.
23:32:39 <mad> except maybe for floating point but itanium was mainly used in servers so good floating point perf was useless in that setting
23:33:04 <ais523> floating point on servers isn't unheard of, but they tend to be pretty specialized servers
23:33:10 <ais523> often computation-as-a-service
23:33:26 <b_jonas> ais523: did ia64 have a cpu software architecture (that is, instruction set) that made sense now but would not have made sense 6 years later, like the delay slots in MIPS?
23:33:28 <mad> if you're going to run code that's not numerically heavy, then there are really only 2 designs
23:33:39 -!- Lilly_Goodman has quit (Ping timeout: 244 seconds).
23:33:44 <ais523> b_jonas: I don't think it made sense even at the time
23:33:47 <b_jonas> hehe
23:33:48 <b_jonas> ok
23:33:52 <ais523> so many weird edges
23:34:02 <mad> (1) the load is threadable: SPARC (as many simple cores as possible on a chip)
23:34:03 <hppavilion[1]> ais523: Why not have a programming language with one instruction: Upload the following string to a server via HTTP and execute it in some minimal language
23:34:16 <hppavilion[1]> 1-instruction RISC TC
23:34:33 <hppavilion[1]> (No one bring up RSSB or SUBLEQ, as those aren't RISCs)
23:34:39 <vanila> SUBLEQ
23:34:46 <hppavilion[1]> vanila: I hate you.
23:34:49 <vanila> :-)
23:34:53 <ais523> hppavilion[1]: Last ReSort?
23:35:13 <mad> (2) the load is not threadable: humongously complex out-of-order cpu in the style of the Haswell and all PentiumPro descendents. This is what intel is good at, and what x86 is less disadvantaged at (basically, intel wins).
23:35:36 <myname> so that language is basically another language
23:35:37 <myname> great
23:35:38 <ais523> one instruction that takes no arguments, unknown TCness
23:35:41 <myname> also, see IRP
23:35:44 <hppavilion[1]> I want to make a language that looks like an ASM, but has subtle high-level mathematical features
23:35:51 <hppavilion[1]> For example, you can mutate the IS
23:36:21 <mad> Itanium failed because it can't delay part of the instruction stream if one load falls into L2 instead of L1
23:36:31 <ais523> mad: well the situation nowadays is that most loads /are/ threadable but people don't thread them because it wouldn't gain on x86
23:36:54 <ais523> for example, in general, there's no reason why a compiler can't optimize all functions in parallel, but I'm not aware of any compiler that does
23:37:00 <mad> if they are threadable, they WOULD gain on x86 no?
23:37:08 <ais523> not by enough for people to care
23:37:37 <coppro> mad: when you say "delay part of the instruction stream" you mean to skip ahead to executing non-dependent instructions?
23:37:47 <mad> I think there are plenty of reasons why a compuiler can't optimize all functions in parallel
23:37:50 <ais523> (fwiw, Last ReSort's instruction is "p = (*p)++")
23:37:56 <mad> coppro : basically yes
23:38:12 <ais523> coppro: there are various ways to view the same thing, that's one way to explain it
23:38:28 <ais523> incidentally, this is also an operation that GPUs are good at
23:38:28 -!- Lilly_Goodman has joined.
23:38:41 <ais523> in GPU programming, reading/writing main memory is something you do explicitly, normally in a multithreaded way
23:38:48 <ais523> and the threads get suspended while they're waiting for the value to turn up
23:38:49 <mad> in a PentiumPro-descended cpu, each cycle it finds the earliest instructions in the instruction stream that are "ready to execute"
23:39:05 <ais523> (main GPU memory, that is; the alternative is block memory, which is basically your cache)
23:39:14 <ais523> (except it's managed explicitly)
23:39:22 <mad> if you have one load that unexpectedly falls in L2 or RAM or has a TLB miss then it keeps doing pretty much everything that doesn't depend on that load
23:39:22 <b_jonas> ais523: that's the good situation. the bad situation is when people care too much about threading, and prematurely implement all their small functions to use threads, when they will actually want to run so many of the whole high level processes at the same time anyway that just the non-idle high level processes alone are enough for as much threading as the hardware can do, and the low-level threading just makes everything slower.
23:39:40 <b_jonas> \ when they will actually want to run so many of the whole high level processes at the same time anyway that just the non-idle high level processes alone are enough for as much threading as the hardware can do, and the low-level threading just makes everything slower.
23:40:00 <ais523> b_jonas: well the extreme case is that you use reconfigurable hardware, and quickly throw up a hardware implementation of your low-level code that has all the forks as literal forking wires
23:40:08 <ais523> (this is basically what my day job is about)
23:40:32 <b_jonas> ais523: as in an FPGA array?
23:40:35 <mad> considering that chips have more and more dark silicon, a scenario similar to this will probably play out
23:40:36 <ais523> b_jonas: right
23:40:39 <b_jonas> I see
23:40:47 <b_jonas> ais523: that's definitely not what _my_ dayjob is about
23:40:59 <ais523> mad: "dark silicon" = components that aren't being used for anything at that moment?
23:41:02 <b_jonas> I may use ordinary threading for my dayjob, when it's necessary, but no FPGA stuff
23:41:05 <mad> ARMs already have cheap in-order cores and expensive out-of-order cores on the same chip
23:41:08 <boily> @metar FPGA
23:41:08 <lambdabot> No result.
23:41:15 <boily> meh. would've been nice.
23:41:19 <mad> ais523 : sections of the chip that are literally powered down
23:41:41 <mad> ais523 : because the chip can only output so much heat so it dynamically selects which parts to power down
23:42:04 <ais523> that's one way to deal with heat dissipation issues, I guess
23:42:53 <b_jonas> ais523: a specific case I met is ffmpeg automatically choosing to encode a video using about as many parallel threads as the machine has hardware threads, which was like 24 on a server, and I was running about 16 video encoders in parallel,
23:43:07 <mad> you could have a cpu with one complex out-of-order core, and tons of simple in-order cores
23:43:18 <mad> if your load is threaded it uses the in-order cores
23:43:23 <b_jonas> so not only did the threading now speed up the encoding, it also ran out of memory because using multiple threads in the encoder requires more memory.
23:43:23 <ais523> mad: that's basically whta a CPU+GPU combination is
23:43:39 <ais523> b_jonas: why not just run them in series?
23:43:52 <mad> ais523 : well, gpu is a different thing
23:44:05 <b_jonas> This was a silent bug on the workstation I tested, because that computer had only like 4 cpus, so it was unexpected on the server.
23:44:18 <b_jonas> ais523: the incoming data was generated in parallel
23:44:19 <mad> gpu is used for very different things than sparc-style "tons of in-order cores"
23:44:23 -!- nooga_ has quit (Read error: Connection reset by peer).
23:44:45 <ais523> anyway, I think FPGA implementations of C-like software typically have less heat output per transistor than CPU implementations
23:44:48 <b_jonas> Once I realized what was wrong, it's easy to solve: there's an option to explicitly tell the number of threads to use.
23:44:58 <ais523> because which parts of the chip are in use depend on the instruction pointer
23:45:03 <mad> GPUs work because they run very numerical code that does tons of floating point multiplications
23:45:29 <b_jonas> ais523: sure, but such implementations are more difficult to create
23:45:30 <mad> and also GPUs work because the memory writing patterns are known beforehand
23:45:48 -!- Lilly_Goodman has quit (Excess Flood).
23:46:18 <mad> ais523 : oh? I've never seen stuff like that actually
23:46:24 -!- Lilly_Goodman has joined.
23:46:33 <oerjan> <b_jonas> \ when they will [...] <-- none of that actually got cut off in the first place hth
23:47:31 <b_jonas> oerjan: I can't count bytes together with irc headers in my head then
23:47:32 -!- Lilly_Goodman has quit (Excess Flood).
23:47:53 <b_jonas> I just guesstimate it
23:48:06 -!- Lilly_Goodman has joined.
23:49:50 -!- nooga has joined.
23:51:25 <mad> I think that if you designed a cpu for running standard single-threaded C++ code, it would probably be very similar to a MIPS even now
23:51:50 -!- digitalcold has quit (Quit: Reconnecting).
23:51:57 -!- digitalcold has joined.
23:52:54 <b_jonas> mad: that was backwards. cpus were like MIPS when C was born, and C was designed to be easy to compile so originally C contained only such operations as builtins that the cpu can do easily.
23:53:29 <mad> possibly with some concessions to either CISC (ie something like an AMD Athlon but without the x86 encoding insanity), or some concessions to VLIW, or concessions to both (ARM is basically a mix of all 3 philosophies)
23:54:26 -!- p34k has quit.
23:54:28 <b_jonas> (That's before C gained support to copy struct values.)
23:55:14 <mad> b_jonas : cpus were more like x86 when C was born no?
23:55:23 <mad> rather than mips
23:55:43 <b_jonas> mad: same thing at that level. consider the 8086, not the modern x86.
23:56:54 <mad> dunno, I think the 8086 has lots of weird stuff that doesn't translate well to C
23:56:59 <mad> like segment registers
23:57:22 <mad> multiple aliases of the same register with different sizes (AL, AH, AX, later EAX)
23:57:31 <mad> weird instructions like XLAT
23:57:41 <mad> string manipulation instructions
23:59:14 <hppavilion[1]> https://www.youtube.com/watch?v=pxh-Hjj8T9o
23:59:19 <mad> if you look at other architectures of the time, they're even less C-like
23:59:26 <mad> like the 6502 or the z80
23:59:39 <mad> if C was made for those, it would have a zero page
23:59:44 <b_jonas> mad: but those cpus aren't what C was ran on
2016-03-23
00:00:02 <mad> the exception is 68000 which afaik doesn't match all that badly with C
00:00:25 <oerjan> <boily> @metar FPGA <-- apparently FP only has 3 airports.
00:00:45 <ais523> mad: C has register
00:01:00 <b_jonas> mad: C was ran on PDP-10 and stuff like that
00:01:05 -!- J_Arcane_ has joined.
00:01:06 <ais523> its definition maps onto zeropage quite well, apart from the fact you can't take pointers to it
00:01:25 <mad> I see
00:01:38 <mad> yeah I guess register would sorts match
00:01:38 <mad> ish
00:02:09 <ais523> that said zeropage pointers are different from main memory pointers
00:02:25 <ais523> maybe C should have had near* and far* from the start
00:02:33 -!- J_Arcane has quit (Ping timeout: 240 seconds).
00:02:41 <mad> MIPS is basically the set of instructions that are (1) electrically feasible and (2) actually useful
00:02:44 -!- J_Arcane_ has changed nick to J_Arcane.
00:03:01 <b_jonas> ais523: I don't think register matches, because register values are local to a function, whereas zeropage are global
00:03:26 <mad> does 'register' have any effect on compiler output nowadays?
00:03:43 <hppavilion[1]> MIPS := {x : x in Instructions, useful(x), feasible(x)}
00:03:54 <boily> hellørjan. they have enough space for three airports?
00:04:04 <b_jonas> mad: no, and it is getting deprecated in C++ so the keyword can be reused in the future like the auto keyword
00:04:05 <hppavilion[1]> SomeEsolang := {x : x in Instructions, useful(x), feasible(x)}^C
00:04:11 <boily> @metar FPST
00:04:11 <b_jonas> far future
00:04:11 <lambdabot> No result.
00:04:17 <boily> pfshaw.
00:04:22 <ais523> b_jonas: what would they reuse it for?
00:04:30 <ais523> "auto" is a happy coincidence IMO
00:04:36 <boily> three airports, no weather. that is completely mad.
00:04:40 <hppavilion[1]> mad: Does MIPS have Fixpoint Locate?
00:04:46 <ais523> (sort-of like Java's variances, except that's less of a coincidence)
00:04:49 <ais523> @metar EGBB
00:04:49 <lambdabot> EGBB 222350Z 35003KT 9999 OVC027 08/04 Q1016
00:05:01 <b_jonas> ais523: not much yet, I don't remember, possibly a non-keyword identifier
00:05:09 <mad> hppavilion[1] : what's that?
00:05:15 <b_jonas> ais523: it's very far future, it's not even deprecated yet in C++14 I think
00:05:48 <hppavilion[1]> mad: Something utterly useless, now that I've sent that message
00:06:15 <b_jonas> ais523: and it's not really a co-incidence, given how C++ language extensions very often reuse keywords for new purposes
00:06:32 <hppavilion[1]> mad: FPL takes one address as an argument and looks at that register. If the value in that register is equal to its address, done. Put the value in the standard output (not stdout) register. Else, do FPL with the value in the register.
00:06:48 <ais523> b_jonas: I mean that it happened to be very descriptive of "infer this", already a keyword, and basically unused
00:06:51 <hppavilion[1]> mad: It's useless, but interesting. You use it to implement OMEGA-MOV
00:07:20 <hppavilion[1]> Which is based on my <x, y> MOV notation
00:07:56 <ais523> hppavilion[1]: isn't it really inefficient because it has to scan all of memory?
00:08:01 <hppavilion[1]> ais523: No
00:08:01 <oerjan> <b_jonas> I just guesstimate it <-- people claim freenode will disconnect you if you actually send a too long line, so your _client_ has to know...
00:08:07 <hppavilion[1]> ais523: It doesn't scan all of memory
00:08:20 <hppavilion[1]> ais523: Let me python it for you
00:08:23 <ais523> wait, isn't this the operation that finds a pointer that points to itself?
00:09:09 -!- ais523|telnet has joined.
00:09:19 <boily> his523|telnet!
00:09:23 <ais523|telnet> 0123456789
00:09:30 <boily> wait. you can connect to IRC through telnet???
00:09:35 <ais523|telnet> 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789
00:09:39 <vanila> yeah just gotta repoly to pings
00:09:42 <hppavilion[1]> ais523|telnet: http://pastebin.com/u4Y2EntC
00:09:49 <mad> afaik IRC is very close to telnet
00:09:51 <boily> vanelloa. the more you know.
00:09:52 <ais523|telnet> 01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789
00:09:52 <hppavilion[1]> ais523|telnet: Yes, it is
00:09:57 <b_jonas> ais523: class, inline, delete, new, default, extern, mutable have all been used for something else other than their first meanings (while their original meaning is and will be still live), and maybe even const has if you count the original C meaning
00:09:59 <vanila> this is really good numbers
00:10:02 <ais523|telnet> 012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789
00:10:02 <vanila> 1234
00:10:04 <vanila> lrol
00:10:08 <boily> mad: I still haven't found a proper porthello for you...
00:10:10 <ais523|telnet> 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789
00:10:16 <ais523|telnet> 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456
00:10:21 <hppavilion[1]> boily: I figured out the portgoodbye for mad
00:10:26 <hppavilion[1]> ais523|telnet: stahp
00:10:35 <vanila> he cant
00:10:36 <boily> ais523|telnet: GO ON! WOO!
00:10:39 <vanila> this is the power of telnet
00:10:48 <ais523|telnet> that was 500
00:10:50 <boily> hppavilion[1]: hppavellon[1]. and it is?
00:10:54 <hppavilion[1]> boily: madios
00:10:56 <ais523|telnet> as
00:11:10 <ais523|telnet> you can see it was cut off (bleh missing colon)
00:11:19 <ais523|telnet> now I'll do 1000
00:11:27 <ais523|telnet> 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456
00:11:31 <hppavilion[1]> ais523|telnet: Why in Java are you on telnet?
00:11:37 <ais523|telnet> haven't been booted yet
00:11:47 <ais523|telnet> and how else could I send overlong lines?
00:11:52 <b_jonas> ais523: yes, you can do up to I think 2300
00:11:53 <hppavilion[1]> ais523|telnet: Oh
00:11:57 <mad> doesn't show as overlong here
00:11:59 <b_jonas> ais523: the length of the send queu
00:12:01 <ais523|telnet> now for 2000
00:12:06 <hppavilion[1]> ais523|telnet: stahp
00:12:07 <b_jonas> um, receieve queue
00:12:10 <b_jonas> 2000 is still safe
00:12:11 <ais523|telnet> 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456
00:12:28 <hppavilion[1]> ais523|telnet: Why would you do this on #esoteric?
00:12:29 <ais523|telnet> OK, 2300
00:12:37 <vanila> this iss importan tfor #esoteric
00:12:44 <int-e> no it's not.
00:12:46 <vanila> we will get to see a lot of numbers
00:12:50 <ais523|telnet> so you can all see the results
00:12:51 <vanila> its almost like a rainbow
00:13:02 <ais523|telnet> 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456
00:13:05 <int-e> I never thought I'd put an incarnation of ais523|telnet on ignore... oh well.
00:13:09 <ais523|telnet> that
00:13:11 <b_jonas> ais523: no wait, sorry, not 2300 but a bit more than 3040
00:13:13 <int-e> (minus the |telnet)
00:13:21 <ais523|telnet> was 2300
00:13:28 <ais523|telnet> 3000 next?
00:13:31 <hppavilion[1]> ais523|telnet: NO.
00:13:37 <boily> hppavilion[1]: IT'S FOR SCIEEEEENCE!!!!!!1!!!one!!!!eleven!!!
00:13:39 <ais523|telnet> 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456
00:13:46 <ais523|telnet> 3000 works
00:13:46 <b_jonas> ais523: 3040 is safe if your send queue is empty
00:13:52 <ais523|telnet> let's do 3100 then
00:14:04 <ais523|telnet> 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456
00:14:09 <mad> I see 307 characters
00:14:36 <ais523|telnet> huh, I'm being sent 421s, what does that mean?
00:14:37 <b_jonas> ais523: and you can tell that your send queue is empty by sending PING and receiving the reply, for the server executes all local commands synchroniously, only commands that communicate with other servers or other clients or services can get a delayed response
00:15:13 <b_jonas> ais523: 421 means unknown command, you typoed a command
00:15:18 <b_jonas> ais523: or entered an empty line
00:15:52 <ais523|telnet> looks like Freenode is splitting my command halfway then
00:16:11 <mad> if intel just did a copycat MIPS-like cpu like everyone else instead of itanium it would have been faster
00:16:23 <b_jonas> ais523: that would be strange
00:17:05 <ais523|telnet> 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456
00:17:22 <ais523|telnet> didn't that time
00:17:32 <ais523|telnet> that was 3005 and I got no 421
00:17:43 <b_jonas> mad: packaged ARM cpus cover that area of business quite well, so I don't think Intel would have much comparative advantage there
00:17:51 <ais523|telnet> 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456
00:18:12 <mad> b_jonas : "instead of itanium"
00:18:28 <ais523|telnet> that was 5005 and I got two 421s
00:18:45 -!- XorSwap has joined.
00:18:50 <ais523|telnet> the second one seemed to be from somewhere near the middle of the message
00:19:33 <mad> b_jonas : for embedded the story is mostly that ARM is displacing MIPS
00:19:57 <mad> and also 8 and 16bit cpus like PICs due to being a lot faster
00:20:47 <ais523|telnet> a000000000111111111122222222223333333333444444444455555555556666666666777777777788888888889999999999b000000000111111111122222222223333333333444444444455555555556666666666777777777788888888889999999999c000000000111111111122222222223333333333444444444455555555556666666666777777777788888888889999999999d000000000111111111122222222223333333333444444444455555555556666666666777777777788888888889999999999e00000000011111111112222222222333333333344444444445555555
00:21:00 <ais523|telnet> 2600, no numerics
00:21:02 * boily cheers ais523|telnet with pom poms
00:21:14 * hppavilion[1] is disturbed by that image
00:21:18 <b_jonas> ais523: try 3585 so you're finally quitted!
00:21:37 <vanila> 01234560123456012345601234560123456012345601234560123456012345601234560123456012345601234560123456012345601234560123456012345601234560123456
00:22:06 <b_jonas> I don't remember the exact limit, although I think I've seen it somewhere in the server source code which is public
00:22:09 <ais523|telnet> A000000000111111111122222222223333333333444444444455555555556666666666777777777788888888889999999999B000000000111111111122222222223333333333444444444455555555556666666666777777777788888888889999999999C000000000111111111122222222223333333333444444444455555555556666666666777777777788888888889999999999D000000000111111111122222222223333333333444444444455555555556666666666777777777788888888889999999999E00000000011111111112222222222333333333344444444445555555
00:22:19 <ais523> 5200
00:22:21 -!- lynn_ has quit (Ping timeout: 248 seconds).
00:22:34 <vanila> 0123456012345601234560123456012345601234560123456012345601234560123456012345601234560123456012345601234560123456012345601234560123456012345601234560123456012345601234560123456012345601234560123456012345601234560123456012345601234560123456012345601234560123456012345601234560123456
00:22:36 <hppavilion[1]> ais523: I'm seeing messages of fairly consistent length
00:22:39 <ais523> the 421 started with "9g"
00:22:46 <ais523> hppavilion[1]: of course, they're all being cut off
00:22:56 <hppavilion[1]> ais523: Then what is their purpose?
00:22:59 <ais523> it ended with 9 6's after "j"
00:23:02 <vanila> ais523, why not try setting the topic very long
00:23:09 <ais523> hppavilion[1]: to see how the IRC server reacts
00:23:14 <hppavilion[1]> ais523: Ah
00:23:17 <ais523> which isn't visible outside telnet, other than whether I get DC'ed
00:23:29 <hppavilion[1]> vanila: Because we'll lose our topic
00:24:07 <ais523|telnet> a000000000111111111122222222223333333333444444444455555555556666666666777777777788888888889999999999b000000000111111111122222222223333333333444444444455555555556666666666777777777788888888889999999999c000000000111111111122222222223333333333444444444455555555556666666666777777777788888888889999999999f000000000111111111122222222223333333333444444444455555555556666666666777777777788888888889999999999e00000000011111111112222222222333333333344444444445555555
00:24:26 <ais523> hmm, seems to be cut off at a different place each time
00:24:38 <ais523> :cameron.freenode.net 421 ais523|telnet 888889999999999o000000000
00:25:29 <ais523|telnet> PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :P
00:25:43 <ais523> :cameron.freenode.net 421 ais523|telnet soteric :Unknown command
00:25:44 <ais523> :cameron.freenode.net 421 ais523|telnet #esoteric :Unknown command
00:25:49 <ais523> heap-spraying attack :-P
00:26:04 <ais523|telnet> PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :P
00:26:14 <ais523> "ic", that time
00:26:33 <hppavilion[1]> ais523: WHAT IS ic!?
00:26:37 <ais523|telnet> PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :P
00:26:44 <ais523> bleh
00:26:54 <ais523> hppavilion[1]: cut off "PRIVMSG #esoteric"
00:27:04 <hppavilion[1]> ais523: Ohh
00:27:11 <boily> hppavilion[1]: ic time is close to fnord am hth
00:27:15 <boily> `? fnord am
00:27:26 <lifthrasiir> ais523: what are you doing now?
00:27:29 * boily mapoles HackEgo
00:27:30 <HackEgo> Fnord AM is the repeated hour that happens when DST resolves. It is customary to celebrate it with a Garou Ping if one is awake during that time.
00:27:40 <ais523|telnet> soteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #es
00:27:55 <ais523> lifthrasiir: trying to send two commands in one line of input
00:27:57 <boily> hellifthrasiir. he's being MAD! HE'S EXPERIMENTING! WITH SCIENCE!
00:28:07 <boily> oerjan: I think that GG binge is gaining on my sanity...
00:28:20 <lifthrasiir> ais523: probably dependent to the recv queue size
00:28:39 <ais523> lifthrasiir: yes
00:28:44 <ais523> that's why I'm heap-spraying
00:28:55 <hppavilion[1]> What would be good for an esoteric calculator?
00:29:00 <hppavilion[1]> I'm thinking ` for grouping
00:29:02 <lifthrasiir> hppavilion[1]: dc
00:29:15 <ais523|telnet> 1234567890PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #e
00:29:23 <boily> hppavilion[1]: dc.
00:29:23 <hppavilion[1]> lifthrasiir: Operators and perhaps values, not software
00:29:29 <hppavilion[1]> boily: Not software
00:29:44 <lifthrasiir> hppavilion[1]: start with -> Knuth arrow and nothing else
00:29:45 <hppavilion[1]> Perhaps it would include @?
00:29:46 <ais523|telnet> xxPRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric
00:30:03 <hppavilion[1]> lifthrasiir: Knuth Arrow or ->? There's a differenc
00:30:04 <hppavilion[1]> e
00:30:17 <ais523|telnet> xxxxxxPRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esoteric :PRIVMSG #esote
00:30:17 <lifthrasiir> I meant the Knuth Arrow which has a common appearance of ->
00:30:22 <coppro> kleisli arrow imo
00:30:26 -!- ais523|telnet has quit (Quit: bleh).
00:30:32 <hppavilion[1]> lifthrasiir: So no addition?
00:30:53 <hppavilion[1]> lifthrasiir: Do you mean uparrow, only including hypops >= 4?
00:31:03 <lifthrasiir> yeah, that kind of thing
00:31:06 <hppavilion[1]> lifthrasiir: OK
00:31:07 <lifthrasiir> ah
00:31:12 <lifthrasiir> I've got the direction wrong
00:31:13 <lifthrasiir> lol
00:31:23 <hppavilion[1]> lifthrasiir: That explains it
00:31:32 <lifthrasiir> Knuth Arrow /|\
00:31:34 <hppavilion[1]> lifthrasiir: So hyperoperations only >= 4?
00:31:50 <hppavilion[1]> lifthrasiir: Instead of Knuth Arrow, I think I'll go with /\**/
00:31:58 <lifthrasiir> what's that?
00:32:04 <hppavilion[1]> lifthrasiir: It's python
00:32:15 <hppavilion[1]> lifthrasiir: In python, * is multiplication, ** is exponentiation
00:32:28 <hppavilion[1]> And I've extended it so *** is tetration, **** is pentation...
00:32:36 <lifthrasiir> hppavilion[1]: if multiplication can be implemented out of additions (not repeated ones), having *only* hyperoperations seem to be fine
00:33:02 <hppavilion[1]> lifthrasiir: So I shouldn't include addition, multiplication, or exponentation? Or did I interpret that wrong?
00:33:10 <lifthrasiir> hppavilion[1]: I have an idea that ^ == ** and ^^ == **** and ^^^ == ******** and so on.
00:33:13 <lifthrasiir> I meant that
00:33:18 <hppavilion[1]> OK
00:34:28 <oerjan> <boily> oerjan: I think that GG binge is gaining on my sanity... <-- don't worry, just drink this elixir and your sanity should be unstoppable hth
00:34:32 <hppavilion[1]> lifthrasiir: How about I have ^ be ternary instead?
00:34:44 <b_jonas> lifthrasiir: what? isn't the normal notation ^^ = *** and ^^^ = **** ?
00:34:46 <hppavilion[1]> x^n:y = H[n](x, y)
00:34:49 <b_jonas> lifthrasiir: as in, ^^ is tetration
00:35:08 <lifthrasiir> ah, I have another idea
00:35:15 <hppavilion[1]> lifthrasiir: Tritshifts?
00:35:30 <hppavilion[1]> Oooh, segmented bitshift.
00:35:32 <lifthrasiir> a sequence of * and ^ is interpreted as a hyperoperator of given binary number encoded by * and ^
00:35:46 <hppavilion[1]> lifthrasiir: Maybe we should make it so ALL esocalc operators are ternary
00:35:51 <lifthrasiir> given *bijective* binary number, sorry
00:35:56 <hppavilion[1]> lifthrasiir: Oh, that's good.
00:36:05 <hppavilion[1]> lifthrasiir: bijective?
00:36:10 <boily> oerjan: elixir? is it Norwegian? and traditional? me want some :D
00:36:13 <hppavilion[1]> What does bijection have to do with binary encoding?
00:36:25 <lifthrasiir> hppavilion[1]: 0 1 00 01 10 11 000 001 010 011 100 101 110 111 0000 ...
00:36:35 <hppavilion[1]> Wut.
00:36:37 <lifthrasiir> bijectivity is required for using all possible sequences
00:36:48 <hppavilion[1]> lifthrasiir: Ah, I get it
00:37:06 <hppavilion[1]> lifthrasiir: What's the algorithm for processing bijective binary?
00:37:09 <lifthrasiir> so, well, * ^ ** *^ ^* ^^ *** etc? :p
00:37:10 <hppavilion[1]> Into decimal?
00:37:43 <hppavilion[1]> lifthrasiir: Though I still like the only-let-use-use-ternary-operators idea
00:38:00 <lifthrasiir> hppavilion[1]: bijective abc...xyz is binary abc...xyz plus 2^(# of digits)
00:38:01 <hppavilion[1]> *ternary and higher
00:38:06 <hppavilion[1]> Oh
00:38:08 <lifthrasiir> the inverse is also not too hard
00:38:10 <hppavilion[1]> That works
00:38:16 <hppavilion[1]> Logarithms, I presume
00:38:27 <hppavilion[1]> lifthrasiir: Wait, no...
00:38:41 <hppavilion[1]> Because + is hard to inverse given a single argument :P
00:38:59 <lifthrasiir> ah, I meant that the conversion from injective to bijective is not too hard either
00:39:05 <lifthrasiir> not about operations
00:39:06 <hppavilion[1]> Ah
00:39:09 <oerjan> boily: it is SCIENCE hth
00:39:12 <hppavilion[1]> lifthrasiir: What about surjective?
00:39:28 <hppavilion[1]> Or nonjective?
00:39:31 <oerjan> lifthrasiir: maybe you want conway chained arrows
00:39:33 <lifthrasiir> I haven't heard of surjective numeration :p
00:39:39 <lifthrasiir> oerjan: possibly.
00:39:40 <int-e> DAMN.
00:39:41 <hppavilion[1]> lifthrasiir: I haven't either
00:39:46 <lifthrasiir> I must have confused them
00:39:48 -!- lleu has joined.
00:39:55 <hppavilion[1]> lifthrasiir: I do like segmented bitshift though.
00:39:58 <hppavilion[1]> Good esop
00:40:05 <lifthrasiir> what is segmented bitshift?
00:40:06 <hppavilion[1]> (not to be confused with aesop)
00:40:12 <oerjan> ais523: are you sure it wasn't telnet that did the cutting off? maybe it negotiated some max length >:)
00:40:15 <hppavilion[1]> lifthrasiir: It's bit rotate, but it takes another argumetn
00:40:24 <hppavilion[1]> And intstead of shifting the whole thing
00:40:27 <ais523> oerjan: IRC servers don't respond to telnet negotiation
00:40:28 * boily drinks Dr. Aid Metaphorical Kool Kola
00:40:33 <ais523> but if you insist I'll use netcat next time :-P
00:40:33 <hppavilion[1]> It shifts the segments of size s
00:40:39 <hppavilion[1]> a<<b:s
00:41:29 <lifthrasiir> hppavilion[1]: so 0b10111001<<2:5 is 0b1010011001, right?
00:41:44 <hppavilion[1]> So 0b1100_1011_0001<<1:4 = 0b1001_0111_0010
00:41:47 <lifthrasiir> or is it 0b10100111?
00:41:49 <hppavilion[1]> lifthrasiir: It's that
00:42:03 -!- XorSwap has quit (Read error: Connection reset by peer).
00:42:24 <lifthrasiir> a<<b:c == (a>>c<<b+c)|(a&((1<<c)-1)), got it
00:42:33 <hppavilion[1]> lifthrasiir: Esocalc also, obviously, would have registers
00:42:37 <hppavilion[1]> But they wouldn't be numeric
00:42:42 <hppavilion[1]> They would hold expressions
00:42:48 <hppavilion[1]> So you do algebra with numbered variables
00:42:54 <lifthrasiir> I had an idea about ridiculously high level language
00:43:09 <int-e> :t System.IO.openBinaryTempFile
00:43:12 <lambdabot> FilePath -> String -> IO (FilePath, GHC.IO.Handle.Types.Handle)
00:43:14 <hppavilion[1]> lifthrasiir: HTF did you figure that out.
00:43:19 <int-e> :t System.IO.openBinaryTempFileWithDefaultPermissions
00:43:20 <lambdabot> FilePath -> String -> IO (FilePath, GHC.IO.Handle.Types.Handle)
00:43:39 -!- lambdabot has quit (Quit: brb).
00:43:50 <lifthrasiir> hppavilion[1]: in terms of features, of course. (not about abstractions, I don't get category theory after all) for example, it has a built-in image type and can recognize letters from it, but it doesn't have an integer nor addition
00:44:05 <lifthrasiir> something like that
00:44:09 <hppavilion[1]> lifthrasiir: Interesting
00:44:17 <hppavilion[1]> lifthrasiir: So it abstracts away simplicity? :P
00:44:24 <lifthrasiir> exactly :p
00:44:58 <hppavilion[1]> lifthrasiir: I had an idea to make a magazine catalog advertising abstract computer science as things you could buy
00:45:38 <hppavilion[1]> Like a $300 binary Turing Machine (vertices, edges, and wiring kit not included)
00:45:58 <oerjan> <int-e> DAMN. <-- what
00:46:01 <hppavilion[1]> A related idea is "abstract accessories"
00:46:19 <hppavilion[1]> Which are things that you plug into an abstract machine to make it more useful
00:46:24 <hppavilion[1]> Abstract Monitor and Abstract Mouse
00:46:33 <hppavilion[1]> Abstract Keyboard
00:46:49 <boily> AbstractKeyboardFactoryFactory.
00:46:56 <hppavilion[1]> boily: No.
00:47:19 * hppavilion[1] stabs boily with a walrus tusk for bringing up that kind of atrocity in his presence
00:47:26 <oerjan> <ais523> but if you insist I'll use netcat next time :-P <-- *MWAHAHAHA*
00:47:42 <hppavilion[1]> (in the glossary, no less)
00:47:52 <ais523> oerjan: the only real difference is that you exit netcat differently
00:48:01 <ais523> "|telnet" is a bit of a meme though
00:48:09 -!- lambdabot has joined.
00:48:15 <hppavilion[1]> lambda-11235!?
00:48:33 <hppavilion[1]> lifthrasiir: Abstract keyboard.
00:48:42 <lambda-11235> hppavilion[1]: Yes?
00:49:03 <boily> hppavilion[1]: hey! I resent that!
00:49:17 <hppavilion[1]> lambda-11235: Whoops, I meant lambdabot
00:49:22 <b_jonas> ais523: I usually use nc_jonas as my nick when I irc with netact (but this isn't a requirement of course)
00:49:32 <hppavilion[1]> lambda-11235: Your name is inconvenient for me.
00:49:36 <b_jonas> (sometimes I do use other nicks)
00:49:46 <b_jonas> (it's just a default)
00:50:52 <hppavilion[1]> I think we should take Abstract Machines to the logical extreme in a parodical matter and pile on other computer stuff with the "Abstract" prefix
00:51:01 <int-e> oerjan: well, I spent more than an hour on figuring out why lambdabot created its state files with no read permissions for others
00:51:25 <hppavilion[1]> Your Abstract Browser uses Abstract Sockets to query an Abstract Server for an Abstract Webpage
00:51:53 <int-e> oerjan: turns out that openBinaryTempFile does it that way and I wanted openBinaryTempFileWithDefaultPermissions instead.
00:52:02 <hppavilion[1]> Just be careful not to download any Abstract Malware
00:52:05 * boily lops hppavilion[1] with strengthened carballoy moose antlers
00:52:16 <hppavilion[1]> boily: I deserved that
00:52:19 <hppavilion[1]> boily: Though I'm serious
00:52:34 <hppavilion[1]> Why not abstract other stuff to make something stupid?
00:52:52 <int-e> oerjan: which is quite a mouthful
00:53:16 <int-e> oerjan: but mostly I'm annoyed that it took me so long
00:53:35 <boily> hppavilion[1]: I'm not so much against tacking Factory here and there. it's a well defined pattern by itself, and it's quite useful.
00:54:03 <hppavilion[1]> boily: FactoryFactory.
00:54:08 <hppavilion[1]> boily: That's too much.
00:54:12 <boily> on the other hand, I profundly despise Engine. it serves absolutely no purpose except making you type more, and for bureaucrats' solitary pleasures.
00:54:25 <ais523> what's the Engine Pattern?
00:54:34 <boily> hppavilion[1]: the first is a Factory. the latter is a Factory. clear!
00:54:50 <ais523> also, I think factories are only necessary due to the builder pattern
00:54:53 <boily> ais523: absolutely nothing. some people just like gluing that word to class names.
00:54:56 <APic> Probably something evil like the Factory Pattern
00:55:04 <vanila> Factory
00:55:07 <APic> Yah
00:55:08 <ais523> the /concept/ is useful, but if you aren't using builders, a factory can just be a function rather than a class
00:55:08 <vanila> vanilaFactory
00:55:19 -!- vanila has changed nick to vanilaFactory.
00:55:23 <boily> I like builder. it's fluent, compact, and tremendously useful for objects with lots of options and configuration.
00:55:44 -!- vanilaFactory has changed nick to vanilaFactory[bu.
00:55:59 <boily> ais523: that's why I'll simply use static methods. I have to battle somme colleagues over code reviews for that, but I can get quite persuasive.
00:56:01 <boily> mwah ah ah.
00:56:15 <ais523> builder makes me uneasy but it's hard to explain why
00:56:20 <ais523> also static methods are not inherently a bad thing
00:56:48 <int-e> oerjan: anyway, now http://silicon.int-e.eu/lambdabot/State/ works.
00:56:50 <boily> the Java I write dangerously leans on the functional side. immutable variables, static methods, fluent style.
00:56:53 <hppavilion[1]> ais523: What are the benefits of Minsky Machines over Turing Machines?
00:57:08 <hppavilion[1]> Is there some efficiency thing or something?
00:57:30 <ais523> hppavilion[1]: turing machines have a sequential-access tape that can be scrolled both ways; this can be hard to implement in lower-level languages
00:57:45 <ais523> minsky machines are a much more natural fit for very low-level work
00:58:31 <hppavilion[1]> ais523: Let me phrase that differently. Imagine Turing and Minsky machines were real computers you could buy- they were the /only/ computers you could buy. You go to the store and buy a Minksy Machine. Why might you have chosen it over the Turing Machine?
00:58:53 <ais523> hppavilion[1]: oh, assuming that they aren't optimizing
00:58:56 <ais523> the turing machine would be better
00:58:58 <ais523> it's a more powerful language
00:58:59 <vanilaFactory[bu> Turing machine vs Minsky machines.. who would wiN?
00:59:10 <int-e> turing tends to be faster
00:59:14 <ais523> this is the reason minsky machines are useful, though, they're less powerful and thus easier to implement
00:59:23 <hppavilion[1]> ais523: I guess I'll just make the Minsky Machine cheaper then :P
01:00:24 -!- Lilly_Goodman has quit (Read error: Connection reset by peer).
01:01:03 <APic> Static ♥
01:01:44 <boily> APic: AAAAAAAAAAAAAAAAAAAAAAH!
01:01:49 <APic> Gesundheit.
01:01:49 <boily> first time I see you speak.
01:01:52 <APic> Ok.
01:01:53 <APic> Happens.
01:02:16 <boily> Indeed.
01:08:15 <oerjan> as you see, APic can only say one word per line.
01:08:21 <APic> Yah.
01:08:30 <APic> So what if not?
01:09:25 <oerjan> ooh, upgrade
01:12:23 <boily> APic++
01:15:11 <APic> B-)
01:15:30 <APic> So does „B“ count as Word?
01:16:02 <oerjan> > „B“ :: Word
01:16:04 <lambdabot> <hint>:1:1: lexical error at character '\8222'
01:16:07 <oerjan> NOPE
01:16:32 <APic> B-)
01:16:33 <APic> Ok.
01:16:51 <APic> From English-Arabic FreeDict Dictionary ver. 0.6.2 [fd-eng-ara]:
01:16:51 <APic> B
01:16:51 <APic> بي - الحرف الثاني في اللغة الإنجليزية
01:16:53 <APic> ;=P
01:17:42 * boily shakes his terminal the other way round
01:17:51 <boily> nope. all jumbled.
01:18:09 <APic> Terminals ♥
01:19:52 <ais523> mad: I'm looking at the instruction set proposal you linked, and I'm a little confuse about the compare operations
01:20:22 <ais523> I'd have assumed that the obvious thing to do would be to have a "/dev/null" register that discards everything written to it, and use that as an output on sub or xor or the like in order to do a compare
01:20:38 <HackEgo> [wiki] [[The Abstract Computer]] N https://esolangs.org/w/index.php?oldid=46634 * Hppavilion1 * (+3308) Created Page (I'm so, so sorry)
01:20:42 <ais523> what's there at the moment seems like a weird mix of "condition codes from normal arithmetic" and "condition codes from compare"
01:20:58 * APic remembers the good old Times where You actually needed Terminators for the good old 10MBit-BNC-Networking
01:21:01 <HackEgo> [wiki] [[The Abstract Computer]] https://esolangs.org/w/index.php?diff=46635&oldid=46634 * Hppavilion1 * (-2) Fixed formatting
01:21:42 <HackEgo> [wiki] [[The Abstract Computer]] https://esolangs.org/w/index.php?diff=46636&oldid=46635 * Hppavilion1 * (+47) Finished a dangling sentence.
01:22:54 <HackEgo> [wiki] [[The Abstract Computer]] M https://esolangs.org/w/index.php?diff=46637&oldid=46636 * Hppavilion1 * (+0) s/edge/node/
01:23:27 <hppavilion[1]> Marvel at the glory of my humor
01:23:42 <APic> Good Night Mat{,ress}es.
01:23:44 <APic>
01:24:22 <hppavilion[1]> lifthrasiir: There. I actually did it.
01:24:46 <lifthrasiir> haha, wut
01:25:24 <hppavilion[1]> lifthrasiir: It's a fun little thing xD
01:25:35 <hppavilion[1]> lifthrasiir: I plan to make up all these stupid things and add them
01:25:41 <hppavilion[1]> "Abstract Mouse" and whatnot
01:25:57 <lifthrasiir> "Abstract Networking"
01:26:08 <hppavilion[1]> lifthrasiir: Yep.
01:26:11 <lifthrasiir> "Abstract Cryptography"
01:26:14 <lifthrasiir> hmm, no
01:26:14 <hppavilion[1]> lifthrasiir: There will be abstract sockets.
01:26:27 <hppavilion[1]> lifthrasiir: Cryptography is already abstract
01:26:38 <lifthrasiir> Abstracter Cryptography!
01:26:40 <hppavilion[1]> lifthrasiir: Though Abstract Operating Systems will be a thing
01:26:42 <hppavilion[1]> xD
01:26:53 <lifthrasiir> Abstract Wire.
01:27:01 <hppavilion[1]> lifthrasiir: Wires are edges
01:27:02 <lifthrasiir> (Wireworld sounds like this)
01:27:37 <hppavilion[1]> lifthrasiir: Maybe
01:27:50 <hppavilion[1]> lifthrasiir: You can feel free to add stuff to the page :P
01:28:00 <lifthrasiir> I HAVE TO WORK
01:28:10 <hppavilion[1]> lifthrasiir: OKAY
01:28:13 <lifthrasiir> 10:28+09:00 here
01:28:25 <lifthrasiir> enough procrastinating
01:28:41 <hppavilion[1]> lifthrasiir: YOU CAN NEVER PROCRASTINATE TOO MUCH
01:29:10 -!- vanilaFactory[bu has quit (Quit: Leaving).
01:29:14 <lifthrasiir> yeah, I want to have enough resources to procrastinate forever
01:29:33 <lifthrasiir> we have a close-to-explicit word for this in Korean
01:29:50 <hppavilion[1]> "laziness"?
01:29:50 <lifthrasiir> unemployed billionare, something like that
01:30:00 <lifthrasiir> oh, I didn't mean that :p
01:30:04 <hppavilion[1]> xD
01:30:34 <lifthrasiir> https://medium.com/@azerbike/i-ve-just-liberated-my-modules-9045c06be67c hello, and fuck your micro-dependencies!
01:31:00 <lifthrasiir> (not really about micro-dependencies, but kind of silly nevertheless)
01:31:20 <pikhq> FWIW, the dependency there that broke a bunch of things was 10 lines of code.
01:31:34 <lifthrasiir> left-pad is, well, left padding function for String
01:31:40 <lifthrasiir> a common micro-dependency in JS
01:31:46 <oerjan> hppavilion[1]: Abstract Pizza hth
01:31:53 <pikhq> i.e. the sort of thing that any sane programmer should realize is more expensive as a dependency than as explicit code.
01:31:58 <hppavilion[1]> oerjan: For abstract programmers?
01:32:19 <hppavilion[1]> lifthrasiir: I agree with it.
01:32:32 <pikhq> (I know, I know, don't repeat yourself, but dependencies have a fucking cost.)
01:32:34 <lifthrasiir> pikhq: I see some value in very small bits of codes *as long as* it doesn't break.
01:32:59 <lifthrasiir> would be a perfect fit for, say, Haskell
01:34:26 <hppavilion[1]> lifthrasiir: Libraries are decent in compiled languages, because they have no runtime cost AFAICT
01:34:54 <hppavilion[1]> Or if they do (e.g. shared libraries), then it's worth it because it's otherwise nigh-(if not literally)-impossible
01:35:03 <lifthrasiir> hppavilion[1]: yeah. it would make much sense when the function itself is fully isolated from the outside
01:35:24 <lifthrasiir> the modern JS has some protection but not sufficient
01:35:45 <lifthrasiir> (go die elsewhere if you think "use strict"; is a shit)
01:36:40 <hppavilion[1]> lifthrasiir: Do you use Python?
01:36:46 <lifthrasiir> yeah.
01:36:56 <hppavilion[1]> lifthrasiir: Do you do anything with compiler dev?
01:36:57 <ais523> lifthrasiir: "is a shit"? I can't work out whether that's meant to mean "is good" or "is bad" in this context
01:37:08 <hppavilion[1]> ais523: Same here
01:37:25 <pikhq> hppavilion[1]: In real-world C++, libraries often have quite interesting runtime cost, FWIW.
01:37:26 <hppavilion[1]> "is the shit" means good, "is shit" means bad, for reference
01:37:33 <hppavilion[1]> pikhq: Huh. Why?
01:37:34 <lifthrasiir> ais523: ah? I've used it as a bad sense, but I didn't know that connotation
01:37:40 <pikhq> Though I should add that that's generally *startup* cost.
01:37:49 <lifthrasiir> what a nuance.
01:38:02 <hppavilion[1]> pikhq: Ah, yes. Then again, straight code also has a startup cost
01:38:08 <ais523> lifthrasiir: it's not actually an English phrase, and I wasn't sure how to translate it into one that was
01:38:16 <pikhq> hppavilion[1]: Global constructors are one cause. The other is *symbols*. C++ libraries, as a property of how C++ is generally written, have an absurd number of symbols.
01:38:17 <hppavilion[1]> lifthrasiir: I've been writing a compiled language called DK using a python-based compiler
01:38:24 <ais523> "is the shit" would normally be interpreted as highly positive, but also very crude/colloquial
01:38:25 <pikhq> And dynamic linking is *cheap*, not free.
01:38:34 -!- mihow has quit (Quit: mihow).
01:38:37 <lifthrasiir> ais523: I'm generating a close-to-English sentence out of nothing :p
01:38:44 <lifthrasiir> anyway, TIL
01:38:46 <ais523> also, "use strict"; is basically a directive you can put on an insane language to make it very slightly less insane
01:38:59 <pikhq> That said, it's admittedly likely to come up only with things with things with a lot of dependencies or are actually insane.
01:39:01 <lifthrasiir> yeah, it doesn't automagically prevent the prototype mess for example
01:39:03 <ais523> (arguably the true is also the case of Perl, although there you have a range of different strictness pragmas)
01:39:34 <pikhq> e.g. Libreoffice pays a lot of this cost, but I think hardly anyone would argue it's an example of good C++.
01:39:54 <lifthrasiir> hppavilion[1]: I'm building a language at work right now
01:39:59 <hppavilion[1]> lifthrasiir: Cool.
01:40:01 <lifthrasiir> not that big, though
01:40:01 <hppavilion[1]> lifthrasiir: Compiled?
01:40:12 <lifthrasiir> hppavilion[1]: more about a type checker for the existing language
01:40:16 <hppavilion[1]> Ah
01:40:18 <lifthrasiir> s/about/like/
01:40:43 <pikhq> I don't much care for the compiled/interpreted distinction. It's only relevant IMO when language semantics make a compiler or interpreter infeasible.
01:40:48 -!- mihow has joined.
01:40:51 -!- mihow has quit (Client Quit).
01:40:52 <lifthrasiir> I agree.
01:41:05 <lifthrasiir> the traditional distinction doesn't work well today
01:41:19 <ais523> pikhq: I don't think being compiled or being interpreted should be a fundamentally defining feature of a language
01:41:30 <ais523> many languages can reasonably be done either way
01:41:44 <ais523> e.g. Java is normally interpreted, but compilers exist and nothing in its semantics rules them out
01:42:06 <pikhq> Mmm, I suppose it could be a useful adjective for languages that at least have one or the other as the clearly "reasonable" implementation choice.
01:42:20 <mad> java is typically just-in-time compiled no? :D
01:42:35 <hppavilion[1]> ais523: It's a fundamentally defining feature of an implementation
01:42:36 <boily> java is... it's weird.
01:42:44 <pikhq> mad: Yes, but the first few releases were a bytecode interpreter not a JIT.
01:42:44 <lifthrasiir> well, with the presence of JIT compilation the "infeasible" language semantics do not seem to exist anyway
01:42:45 <ais523> mad: that's a method of implementing interpreters, though
01:42:52 -!- boily has quit (Quit: PYRAMIDAL CHICKEN).
01:42:52 <ais523> hppavilion[1]: yes, but not of the language it implements
01:42:58 <hppavilion[1]> ais523: Fair enough
01:42:58 <mad> ais523 : depends on your angle
01:43:07 <hppavilion[1]> ais523: Though most languages are designed with one or the other in mind
01:43:09 <pikhq> *And* there's absolutely nothing preventing you from just using a bytecode interpreter on Java today.
01:43:21 <mad> if your angle is speed and the language-feature sacrifices you need to get that speed, then java is a compiled language
01:43:31 <pikhq> But, for example, C could still be considered compiled, but you could certainly interpret it just fine.
01:43:34 <ais523> pikhq: well you have to compile into bytecode first :-P
01:43:35 <hppavilion[1]> ais523: You generally wouldn't use a Rust interpreter except for debugging.
01:43:38 <ais523> C interpreters exist
01:43:43 <lifthrasiir> I actually think that WebAssembly can act as a portable retargetable binary format
01:43:43 <pikhq> Yup.
01:43:57 <pikhq> Though TCC, the commonly given example, is not a good example of it. :)
01:44:12 <hppavilion[1]> pikhq: TCC?
01:44:17 <pikhq> Tiny C Compiler.
01:44:17 <hppavilion[1]> Is that Turing-Complete C?
01:44:18 <mad> is there anything that is designed to be a retargettable format for C++
01:44:19 <mad> ?
01:44:21 <hppavilion[1]> Ah
01:44:21 <lifthrasiir> https://github.com/tjmehta/is-positive-integer/blob/master/index.js oh.
01:44:45 <mad> I'm sure a retargettable, platform independent... platform for C++ would totally be feasible
01:44:51 <pikhq> When used as an interpreter it compiles C in memory and then runs it. Which works just fine because it's rather ridiculously fast.
01:44:56 <mad> some sort of generic-ish CPU
01:45:05 <hppavilion[1]> lifthrasiir: Dafuq!? xD
01:45:17 <mad> when loading the exe it translates it to the target arch
01:45:26 <pikhq> mad: Sure, and WebAssembly or something similar seems like just that.
01:45:27 <mad> it already has to relocate everything in memory
01:45:33 <lifthrasiir> hppavilion[1]: it is not even `module.exports = function(i) { return i > 0 && Math.floor(i) == i; }`!
01:45:34 <mad> might as well translate it too
01:45:40 <lifthrasiir> it has *three* dependencies!
01:45:53 <hppavilion[1]> lifthrasiir: Three!?
01:46:04 <lifthrasiir> passAll, isPositive, isInteger
01:46:26 <lifthrasiir> passAll is \f g a -> f a && g a
01:46:43 <mad> pikhq : does it have to have "safe" array lookups? (ie it checks bounds on everything)
01:46:54 <hppavilion[1]> lifthrasiir: That's horrible.
01:47:10 <ais523> why does that is-positive-integer thing exist? is it actually a hard task in JavaScript?
01:47:29 <hppavilion[1]> ais523: Probably
01:47:37 <ais523> also I'm not sure if lifthrasiir's example actually works
01:47:37 <mad> doesn't js have ===
01:47:45 <lifthrasiir> hppavilion[1]: oh, isInteger was not *that* simple. it is actually: return typeof v === 'number' && isFinite(v) && Math.floor(v) === v;
01:47:47 <hppavilion[1]> mad: JS has == and ===
01:47:48 <ais523> I don't have Java's type coercion things memorized but think it might fail on a string like "1test"
01:47:54 <mad> yes exactly
01:47:58 <mad> === is like
01:48:01 <lifthrasiir> ah right. I should've used ===
01:48:02 <hppavilion[1]> mad: == is just horrible
01:48:09 <mad> "we messed up == ok we have to use === then"
01:48:16 <lifthrasiir> I had some good bug with === in PHP, however
01:48:16 <pikhq> mad: It appears they're designing it to permit but not require such an implementation.
01:48:23 <lifthrasiir> probably that's why I'm not used to ===
01:48:29 <hppavilion[1]> ais523: Either that or it's a demonstratoin
01:48:47 <ais523> I like Perl's ==!
01:49:02 -!- jaboja has quit (Remote host closed the connection).
01:49:03 <ais523> actually, IMO there should be a Perl variant in which there is no distinction between integers and strings
01:49:09 <hppavilion[1]> I think all programming languages should have a library called "Horrible Hacks" that implements common code that is horrible and hacky, so that you don't have to do it and feel bad
01:49:14 <ais523> the language is 99% designed like that but it leaks occasionally
01:52:09 -!- XorSwap has joined.
01:52:20 <ais523> ugh, is this what modern development is like?: https://redd.it/4bjss2
01:52:44 <ais523> (tl;dr: someone took an 11 line npm package off GitHub, a ton of stuff broke as a result)
01:52:44 <pikhq> Yes.
01:53:04 <ais523> taking code from github directly as part of your build system is already something I consider to be shockingly broken by itself
01:53:11 <ais523> and yet it seems to be the least of the offences here
01:53:19 <lifthrasiir> ais523: that is what I've pasted above
01:53:42 <pikhq> I'd fault it less if you, y'know, also referenced a revision ID as well.
01:53:42 <ais523> lifthrasiir: ah right, I missed it
01:53:51 <ais523> it wasn't clear from the URL and I didn't click the link
01:53:53 <lifthrasiir> it is also related to the unclear npm policy about trademark violation and DMCA requests
01:54:03 <ais523> because I tend not to follow links if I don't know what they are or what site they're to
01:54:34 <lifthrasiir> ais523: sounds reasonable. I guess I need to add more contexts
01:54:40 <pikhq> ais523: medium.com is a somewhat large and popular blog host.
01:54:55 <ais523> pikhq: that implies that you can't deduce much about the destination of a link hosted there
01:55:09 <pikhq> True.
01:56:13 -!- nooga has quit (Ping timeout: 248 seconds).
01:58:03 <shachaf> pikhq: Isn't it great when everything is in one repository?
01:58:13 <shachaf> Distributed development is scow.
01:58:21 <pikhq> shachaf: Rather better than I expected, TBH.
01:58:54 <pikhq> Though "having tools that make it sane" help a lot. :P
01:59:09 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
01:59:20 <shachaf> What sorts of tools are you thinking of?
02:00:00 -!- Lilly_Goodman has joined.
02:00:17 <pikhq> Eh, y'know, mostly just the large amounts of automatic testing that make it hard to break things by mistake.
02:00:44 <shachaf> Well, sure.
02:00:48 <shachaf> You want that sort of thing anyway.
02:01:06 <pikhq> Yeah, I came to Google from a place with rather less... good repo hygiene.
02:01:36 <pikhq> I think the single largest build break I've seen here was... caused by me </shame_box>
02:02:08 <ais523> be the only dev, then /every/ break will be caused by yourself :-P
02:02:17 <ais523> actually I have a larger problem with people making changes without running the tests, than anything else
02:02:36 <ais523> the problem being that as I'm working on a to-FPGA compiler, the tests require an FPGA simulator to run
02:03:02 <pikhq> Yeah, thankfully commits *block* on tests passing normally.
02:04:13 <pikhq> Doesn't help when it's an expensive test you can't run per commit though.
02:04:16 <mad> at my last place, commits would go into a dev branch
02:04:32 <mad> that would trigger a round of tests
02:04:52 <mad> if the tests pass the changes were comitted to the release brance
02:05:20 <pikhq> Though your definition of "expensive" tends to change when you can run code on spare capacity in a Google datacenter on a whim. :P
02:07:07 <hppavilion[1]> http://vanilla-js.com/ is best framework
02:07:44 <ais523> "0 bytes uncompressed, 25 bytes gzipped."
02:07:51 <ais523> wow, gzip headers are enormous
02:08:36 <pikhq> I think you can do *slightly* better than that. But, yeah, they kinda are.
02:08:51 <hppavilion[1]> ais523: Yeah, that was surprising when I saw that
02:08:59 <hppavilion[1]> I was looking at it and was like "Wait, what?"
02:09:04 <ais523> bzip2's headers have an ASCII representation of pi in them, IIRC
02:09:10 <ais523> in order to make them easy to locate in a corrupted file
02:09:10 <int-e> `` < /dev/null gzip | wc -c
02:09:21 <hppavilion[1]> ais523: Weeeeiiiird...
02:09:25 <ais523> or was it binary-coded-decimal?
02:09:32 <HackEgo> 20
02:09:36 <pikhq> You spend 18 bytes on just the gzip file headers.
02:09:46 <ais523> int-e: < prefix notation looks so weird
02:09:52 <ais523> `` < /dev/null bzip2 | wc -c
02:09:54 <HackEgo> 14
02:09:54 <pikhq> gzip the program by default includes the file name, though.
02:10:01 <ais523> `` < /dev/null bzip2 | od -t x1z
02:10:02 <HackEgo> 0000000 42 5a 68 39 17 72 45 38 50 90 00 00 00 00 >BZh9.rE8P.....< \ 0000016
02:10:06 <int-e> ais523: I like it, it's logical.
02:10:18 <ais523> I assume it's the block header rather than the file header
02:10:26 <pikhq> `` </dev/null gzip | od -t x1z
02:10:28 <ais523> `` uname -a | bzip2 | od -t x1z
02:10:28 <HackEgo> 0000000 1f 8b 08 00 0f fb f1 56 00 03 03 00 00 00 00 00 >.......V........< \ 0000020 00 00 00 00 >....< \ 0000024
02:10:29 <HackEgo> 0000000 42 5a 68 39 31 41 59 26 53 59 e1 49 ef 76 00 00 >BZh91AY&SY.I.v..< \ 0000020 16 5f 80 00 10 48 03 ff 70 08 95 06 80 b6 27 82 >._...H..p.....'.< \ 0000040 40 20 00 40 d5 3d 4c 9a 62 18 43 43 43 46 99 0c >@ .@.=L.b.CCCF..< \ 0000060 30 4c 09 80 86 8c 9a 61 50 d7 fc 66 49 cc 39 d4 >0L.....aP..fI.9.< \ 0000100 c7 08 b5 ed 41 91 68 50 2c ed
02:10:39 <ais523> ah, there we go
02:10:49 -!- XorSwap has quit (Ping timeout: 252 seconds).
02:10:49 <ais523> you can see the "31 41 59 26 53 59" in the header
02:11:06 <ais523> hmm, let's see if we can get that all on one line to be more readable
02:11:33 <hppavilion[1]> ais523: Like, slice 11001001000011111101101010100010001000010110100011000010001101001100010011000110011000101000101110000000110111000001110011010001 at every 8 bits and spit out their chr()ing?
02:11:35 <ais523> `` uname -a | bzip2 | od -w 128 -t x1z
02:11:36 <HackEgo> od: 128: No such file or directory
02:11:39 <ais523> `` uname -a | bzip2 | od -w128 -t x1z
02:11:40 <HackEgo> 0000000 42 5a 68 39 31 41 59 26 53 59 e1 49 ef 76 00 00 16 5f 80 00 10 48 03 ff 70 08 95 06 80 b6 27 82 40 20 00 40 d5 3d 4c 9a 62 18 43 43 43 46 99 0c 30 4c 09 80 86 8c 9a 61 50 d7 fc 66 49 cc 39 d4 c7 08 b5 ed 41 91 68 50 2c ed d5 65 d6 50 66 29 2e 56 36 86 ef e6 e0 98 cc 7b 29 0f 85 44 e8 28 29 8c c2 2a 08 df 8b b9 22 9c 28 48 70 a4 f7 bb 00
02:11:51 <ais523> `` uname -a | bzip2 | od -w128 -tx1z
02:11:52 <HackEgo> 0000000 42 5a 68 39 31 41 59 26 53 59 e1 49 ef 76 00 00 16 5f 80 00 10 48 03 ff 70 08 95 06 80 b6 27 82 40 20 00 40 d5 3d 4c 9a 62 18 43 43 43 46 99 0c 30 4c 09 80 86 8c 9a 61 50 d7 fc 66 49 cc 39 d4 c7 08 b5 ed 41 91 68 50 2c ed d5 65 d6 50 66 29 2e 56 36 86 ef e6 e0 98 cc 7b 29 0f 85 44 e8 28 29 8c c2 2a 08 df 8b b9 22 9c 28 48 70 a4 f7 bb 00
02:12:07 <ais523> oh, it must be long enough that it gets cut off
02:12:10 <ais523> `` uname -a | wc -c
02:12:11 <HackEgo> 76
02:12:15 <ais523> `` uname -a | bzip2 | wc -c
02:12:15 <HackEgo> 113
02:12:17 <ais523> right
02:12:27 <ais523> `` uname -a
02:12:27 <HackEgo> Linux umlbox 3.13.0-umlbox #1 Wed Jan 29 12:56:45 UTC 2014 x86_64 GNU/Linux
02:12:29 * ais523 tries azip
02:12:52 <hppavilion[1]> `` run (uname -a | wc -c)-(uname -a | bzip2 | wc -c)
02:12:53 <HackEgo> ​/hackenv/bin/`: eval: line 4: syntax error near unexpected token `uname' \ /hackenv/bin/`: eval: line 4: `run (uname -a | wc -c)-(uname -a | bzip2 | wc -c)'
02:12:55 <ais523> 114, bleh
02:12:58 <hppavilion[1]> `` (uname -a | wc -c)-(uname -a | bzip2 | wc -c)
02:12:58 <HackEgo> ​/hackenv/bin/`: eval: line 4: syntax error near unexpected token `-' \ /hackenv/bin/`: eval: line 4: `(uname -a | wc -c)-(uname -a | bzip2 | wc -c)'
02:13:00 <ais523> so close
02:13:01 <hppavilion[1]> ...
02:13:08 <hppavilion[1]> Seriously, bash?
02:13:12 <int-e> http://www.forensicswiki.org/wiki/Bzip2 helps...
02:13:14 <hppavilion[1]> Why is that not a feature?
02:13:55 <int-e> `` echo | bzip2 | od -tx1
02:13:56 <HackEgo> 0000000 42 5a 68 39 31 41 59 26 53 59 9e 7d 96 9d 00 00 \ 0000020 00 40 00 00 10 20 00 21 18 46 82 ee 48 a7 0a 12 \ 0000040 13 cf b2 d3 a0 \ 0000045
02:13:59 <hppavilion[1]> It'd be so much better that way
02:14:04 <hppavilion[1]> Almost Haskellic
02:14:05 <ais523> huh, strange, it uses "Linu" as a dictionary word but not "Linux"
02:14:11 <lifthrasiir> `` echo $(($(uname -a | wc -c)-$(uname -a | bzip2 | wc -c)))
02:14:11 <HackEgo> ​-37
02:14:14 <lifthrasiir> hppavilion[1]: ^
02:14:20 <int-e> basically you'll have the pi except for an empty input
02:14:21 <hppavilion[1]> lifthrasiir: Doesn't count
02:14:31 <ais523> `` echo | bzip2 | od -w100 -tx1z
02:14:32 <HackEgo> 0000000 42 5a 68 39 31 41 59 26 53 59 9e 7d 96 9d 00 00 00 40 00 00 10 20 00 21 18 46 82 ee 48 a7 0a 12 13 cf b2 d3 a0 >BZh91AY&SY.}.....@... .!.F..H........< \
02:14:40 <ais523> there we go
02:14:54 <hppavilion[1]> Binary-Coded Decimal is stupid, IMHO, unless you're running on a VERY small processor
02:15:16 <hppavilion[1]> One that would make it hard to even convert binary to decimal
02:15:20 <int-e> hppavilion[1]: well, those are magic numbers...
02:15:20 <hppavilion[1]> In any fashion
02:15:43 <myname> hppavilion[1]: that would actuaööy be a reason tp NOT support it
02:16:05 * ais523 wonders what sort of keyboard has ö next to l
02:16:11 <int-e> german
02:16:14 <myname> german
02:16:18 <Lilly_Goodman> que es esos numeros?
02:16:21 <hppavilion[1]> Irish
02:16:52 <int-e> myname: how can you stand typing {} and [] though...
02:16:58 <hppavilion[1]> ais523: o is next to l on american keyboards
02:17:08 <mad> bcd
02:17:18 <mad> "bank carreer defense"
02:17:32 <pikhq> hppavilion[1]: Above, not next to.
02:17:48 <int-e> myname: (semi-serious question; those characters are the main reason why I switched to US layout)
02:17:51 <pikhq> The character where ö is on a German keyboard, is ; on an American keyboard.
02:17:51 <hppavilion[1]> pikhq: "above" is a type of "next to" when dealing with keyboards
02:17:52 <myname> int-e: i don't see the problem
02:18:15 <hppavilion[1]> Because keyboards are usually horizontal
02:18:17 <int-e> myname: alt-gr is so inconvenient.
02:18:43 <mad> I got used to alt-gr
02:18:46 <myname> nah, i don't have to think about it, therefore i don't have a problem with it
02:18:55 <mad> now US keyboard confuses me
02:19:10 <mad> simply because I have the alt-gr shortcuts burned into my fingers
02:19:11 <int-e> it's not a thinking issue so much as an issue of not breaking my thumb while typing
02:19:12 <myname> it's not like i'd think "ouch, my fingers hurt, i should type [ less"
02:19:16 <int-e> anyway... never mind.
02:19:31 <int-e> I shouldn't have asked :O
02:19:49 <myname> i know many germans using us
02:19:55 <mad> the one that's kinda inconvenient is < > on the same key
02:20:01 <myname> the more sane i know switched to neo
02:20:17 <mad> and ` ^ that have to be typed with deadkey + space
02:20:58 <mad> and \ with altgr + key to the left of 1
02:21:00 <ais523> ``
02:21:00 <HackEgo> No output.
02:21:06 <ais523> huh, deadkey+space works even on a UK keyboard
02:21:13 <ais523> there's just no point because of the physical ` key
02:21:21 <myname> mad: huh? left of 1?
02:21:32 <ais523> (in fact, one of those was typed as Compose ` space, which is more than a little pointless)
02:21:47 <ais523> Compose a space doesn't work, so someone must have added that compose recipe explicitly
02:21:49 <int-e> fortunately the deadkey behavior can be disabled
02:21:52 <myname> \ is pretty far to the right
02:21:53 <mad> myname : ` ~ on the typical US layout if I'm not mistaken
02:22:02 -!- Lilly_Goodman has quit (Remote host closed the connection).
02:22:07 <ais523> `¬| in the UK layout
02:22:07 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: ¬|: not found
02:22:14 <ais523> only it's a different | from the one that's shift-\
02:22:24 <ais523> (they're treated as the same by Linux, but not by DOS or Windows)
02:22:29 -!- Lilly_Goodman has joined.
02:22:40 <hppavilion[1]> mad: `~ is there, yes
02:22:57 <pikhq> Yup, ¬ is nowhere on a US keyboard.
02:22:58 <mad> ¦ is stupid afaik
02:23:12 <myname> mad: \ is right of 0, not left of 1 ...
02:23:15 <pikhq> ¦ vs | is a distinction I don't even understand.
02:23:22 <ais523> pikhq: I assume we have a ¬ key because it's in EBCDIC
02:23:25 <ais523> it isn't in ASCII though
02:23:27 <ais523> `unidecode ¬
02:23:28 <HackEgo> ​[U+00AC NOT SIGN]
02:23:48 <mad> yeah it's like
02:23:58 <ais523> bleh, I knew the reason for the vertical bar stuff at one point, but I've forgotten what it is
02:24:00 <mad> | vs ¦ made into ebcdic for some reason
02:24:01 <ais523> IIRC it was really stupid though
02:24:05 <mad> afaik
02:24:27 <mad> well, one of the versions of ebcdic anyways
02:24:32 <ais523> https://en.wikipedia.org/wiki/Vertical_bar#Solid_vertical_bar_vs_broken_bar talks about the distinction but doesn't really explain it
02:25:01 <myname> the broken bar with a center dot works as a rotated version of -.-
02:25:01 <int-e> huh, I just got a reminder to finish a review that I submitted today... I knew that elsevier is evil, but that's just stupid :P
02:25:25 <shachaf> ¬ has nautical applications
02:25:30 <shachaf> 1 ¬ = 1.852 km/h
02:25:40 <ais523> huh, it is actually ISO-8859-1 which is at fault
02:25:44 <ais523> `unidecode ¦
02:25:45 <HackEgo> ​[U+00A6 BROKEN BAR]
02:25:52 <myname> so, it's a knot?
02:25:56 <ais523> which we could have figured out with a simple unidecode
02:26:28 <int-e> shachaf: awful pun
02:26:48 <shachaf> `wisdom
02:26:49 <HackEgo> reversal/lasrever
02:26:55 <ais523> well, apparently the backslash was invented so that you could type /\ and \/ as and and or
02:27:09 <pikhq> ais523: I don't think ¬ is in the base EBCDIC, just a few EBCDIC code pages.
02:27:20 <hppavilion[1]> ais523: OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOH
02:27:24 <mad> ¬ is in latin one
02:27:24 <ais523> pikhq: makes sense
02:27:26 <hppavilion[1]> ais523: That explains so much.
02:27:29 <ais523> EBCDIC is crazily internally inconsistent
02:27:33 <pikhq> Yes, there's freaking EBCDIC code pages.
02:27:53 <lifthrasiir> shachaf: indeed. ¬ that ¬ical mile is ¬ same to typical mile, though.
02:28:14 <shachaf> ¬ed
02:28:30 <myname> you are horrible
02:28:37 <hppavilion[1]> shachaf: `math/learn
02:28:44 <mad> latin-1 has a bunch of really stupid characters
02:28:54 <pikhq> I hate EBCDIC. I used to hate it more when I had to deal with it at work.
02:29:11 <mad> pikhq : wow
02:29:14 <shachaf> pikhq: I'm going to assume that you're talking about your current job.
02:29:17 <ais523> is there anything that people hate less as they use it more, rather than hating more?
02:29:21 <shachaf> please don't disillusion me twh
02:29:24 <hppavilion[1]> `help
02:29:24 <HackEgo> Runs arbitrary code in GNU/Linux. Type "`<command>", or "`run <command>" for full shell commands. "`fetch <URL>" downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert <rev>" can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/
02:29:36 <pikhq> shachaf: I have not had to deal with EBCDIC at my current job.
02:29:40 <hppavilion[1]> Should I make a calculator and put it in HackEgo via `fetch?
02:29:41 <shachaf> pikhq: tdnh
02:29:47 <shachaf> ais523: Lots of things, surely.
02:29:58 <mad> now if we could get trigraphs out of C++
02:30:00 <shachaf> For example pikhq and putting all your code in one repository.
02:30:13 <shachaf> Anything which people call an "acquired taste".
02:30:27 <pikhq> mad: Yeaaaah, I'm 25 years old and have professional experience in COBOL in some sense.
02:30:27 <shachaf> pikhq: Are you going to the ghcjs talk this week?
02:30:41 <shachaf> whoa whoa whoa, that's a quarter of a century
02:30:41 <mad> pikhq: :o
02:30:42 <pikhq> Iunno.
02:30:48 <ais523> pikhq: your COBOL skills may at one point be necessary to save the word
02:30:49 <ais523> *world
02:30:53 <mad> latin-1 has 32 extra control characters
02:31:16 <pikhq> I am best described as a COBOL n00b. But that's... far above average.
02:31:20 <mad> as if the 32 control characters in normal latin-1 weren't already useless enough
02:31:25 <hppavilion[1]> HackEgo: supports python, right?
02:31:32 <hppavilion[1]> Whoops
02:31:32 <ais523> pikhq: I know a limited amount of COBOL syntax
02:31:37 <hppavilion[1]> Accidental :
02:31:50 <pikhq> I've parsed it.
02:31:50 <ais523> `which python
02:31:52 <HackEgo> ​/usr/bin/python
02:31:57 <ais523> hppavilion[1]: you could just have asked it
02:32:00 <mad> all I know about cobol is to run away in the opposite direction :D
02:32:05 <hppavilion[1]> ais523: I don't speak bash very fluently
02:32:08 <pikhq> mad: A good call.
02:32:17 <shachaf> I like the use of COBOL in this article: http://blog.cr.yp.to/20160315-jefferson.html
02:32:36 <shachaf> I guess I mean in the 1997 lawsuit.
02:32:55 <ais523> I think of COBOL as being a predecessor to SQL
02:33:01 <ais523> whose major sin was not realising it wanted to be domain-specific
02:33:20 <hppavilion[1]> `mkx testpylib/#!/usr/bin/python\nimport ply
02:33:23 <HackEgo> usage: mk[x] file//contents
02:33:28 <hppavilion[1]> `mkx testpylib//#!/usr/bin/python\nimport ply
02:33:31 <HackEgo> testpylib
02:33:36 <hppavilion[1]> `testplylib
02:33:37 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: testplylib: not found
02:33:41 <hppavilion[1]> Dammit
02:33:49 <hppavilion[1]> Do I have to create bin/testplylib?
02:33:50 <ais523> hppavilion[1]: you didn't make it executable and you didn't give a full path
02:33:54 <pikhq> Yeah, honestly COBOL isn't terrible considering the context of when it came to be and what it was for.
02:33:56 <hppavilion[1]> ais523: Ah
02:33:57 <ais523> `` chmod a+x testplylib
02:33:57 <HackEgo> chmod: cannot access `testplylib': No such file or directory
02:34:02 <ais523> `` chmod a+x testpylib
02:34:03 <HackEgo> No output.
02:34:04 <hppavilion[1]> ais523: How do I make it executable?
02:34:06 <hppavilion[1]> Oh, with that
02:34:08 <ais523> `` ./testpylib
02:34:08 <HackEgo> ​/hackenv/bin/`: ./testpylib: /usr/bin/python\nimport: bad interpreter: No such file or directory
02:34:17 <pikhq> COBOL's sins are that it wasn't domain specific but wanted to be, and it survived *well* past its welcome.
02:34:21 <hppavilion[1]> Dammit
02:34:25 <hppavilion[1]> Why does \n not work in that?
02:34:28 <int-e> `? dsl
02:34:29 <HackEgo> dsl? ¯\(°​_o)/¯
02:34:30 <ais523> hppavilion[1]: it appears that your file contains a literal backslash followed by a literal n
02:34:36 <hppavilion[1]> ais523: Yes, I noticed
02:34:56 <ais523> `` sed -i -e 's/\\n/\n/g' testpylib
02:34:59 <HackEgo> No output.
02:35:02 <hppavilion[1]> ais523: That works too
02:35:04 <ais523> `` ./testpylib
02:35:05 <HackEgo> Traceback (most recent call last): \ File "./testpylib", line 2, in <module> \ import ply \ ImportError: No module named ply
02:35:09 <hppavilion[1]> Damn
02:35:16 <hppavilion[1]> `` pip install ply
02:35:16 <HackEgo> ​/hackenv/bin/`: line 4: pip: command not found
02:35:21 <hppavilion[1]> *Sigh*
02:35:29 <hppavilion[1]> `which pip
02:35:29 <HackEgo> No output.
02:35:34 <hppavilion[1]> `` which pip
02:35:35 <HackEgo> No output.
02:35:37 <hppavilion[1]> OK...
02:35:56 <hppavilion[1]> ais523: Halp?
02:36:11 <ais523> hppavilion[1]: pip is not python
02:36:18 <ais523> also it wouldn't work on a VM that has no internet connection
02:36:23 <hppavilion[1]> ais523: There is a python pip
02:36:26 <ais523> (not a direct one, anyway; you can do `fetch)
02:36:35 <hppavilion[1]> ais523: Python has pip too
02:36:37 <ais523> hppavilion[1]: pip is not python in the same way that dpk is not Linux
02:36:39 <ais523> *dpkg
02:36:42 <hppavilion[1]> Which posed an issue for me at one point
02:36:43 <hppavilion[1]> [Oh
02:36:46 <ais523> and homebrew is not OS X
02:36:46 <hppavilion[1]> Makes sense
02:36:57 <mad> which video game console do you like the sound of the most
02:37:13 <hppavilion[1]> `which bestVideoGameConsoleSound
02:37:14 <HackEgo> No output.
02:37:20 <hppavilion[1]> mad: HackEgo has no preference
02:37:27 <mad> i see
02:37:59 <hppavilion[1]> ais523: Perhaps I should `fetch www.dabeaz.com/ply/ply-3.8.tar.gz ?
02:38:21 <ais523> hppavilion[1]: this is more likely to succeed than the other things you tried
02:38:25 <mad> the snes has always kinda stood out to me
02:38:30 <mad> sound wise
02:38:34 <hppavilion[1]> `fetch www.dabeaz.com/ply/ply-3.8.tar.gz
02:38:36 <HackEgo> 2016-03-23 02:38:32 URL:http://www.dabeaz.com/ply/ply-3.8.tar.gz [157286/157286] -> "ply-3.8.tar.gz" [1]
02:38:48 <hppavilion[1]> Oh, crap. Now I need to tarfile.
02:38:54 <hppavilion[1]> And I've heard things about tarfile
02:39:02 <ais523> mad: the GBA hits the sweet spot of being powerful enough to sound good and limited enough to force sound designers to be creative, IMO
02:39:13 <ais523> hppavilion[1]: tar isn't as hard as people make it out
02:39:26 <hppavilion[1]> ais523: But Randall Munroe said...
02:39:29 <hppavilion[1]> (:P)
02:39:32 <ais523> the most confusing thing is that, by default, it accesses your primary connected tape driver
02:39:35 <ais523> *tape drive
02:39:47 <ais523> given that most people don't have a tape drive, and that most uses of tar don't want to access it anyway
02:39:57 <ais523> you have to override the file you're accessing via the -f option
02:39:59 <ais523> here
02:40:05 <ais523> `tar -xf ply-3.8.tar.gz
02:40:06 <HackEgo> tar: ply-3.8.tar.gz: Cannot open: No such file or directory \ tar: Error is not recoverable: exiting now
02:40:10 <ais523> `` tar -xf ply-3.8.tar.gz
02:40:20 <HackEgo> No output.
02:40:30 <hppavilion[1]> `ls ply-3.8
02:40:32 <HackEgo> ANNOUNCE \ CHANGES \ doc \ example \ MANIFEST.in \ PKG-INFO \ ply \ ply.egg-info \ README.md \ setup.cfg \ setup.py \ test \ TODO
02:40:37 <ais523> one option for the operation (x for extract), and one option for the file
02:40:41 <ais523> (f for file)
02:40:50 <ais523> it really isn't actually complicated, it just looks like it
02:40:57 <hppavilion[1]> `` python ply-3.8/setup.py
02:40:59 <HackEgo> usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...] \ or: setup.py --help [cmd1 cmd2 ...] \ or: setup.py --help-commands \ or: setup.py cmd --help \ \ error: no commands supplied
02:41:02 * hppavilion[1] prays that works
02:41:11 <hppavilion[1]> Yes, I meant to do that because I couldn't remember the syntax
02:41:22 <ais523> admittedly I'm cheating a little because modern tar autodetects compression formats
02:41:35 <hppavilion[1]> `` python ply-3.8/setup.py --help-commands
02:41:36 <HackEgo> Standard commands: \ build build everything needed to install \ build_py "build" pure Python modules (copy to build directory) \ build_ext build C/C++ extensions (compile/link to build directory) \ build_clib build C/C++ libraries used by Python extensions \ build_scripts "build" scripts (copy and fixup
02:41:37 <ais523> with old versions of tar I'd need to use -xzf; x for extract, z for gzip-compressed, and f to specify the file
02:41:49 <ais523> what does ply do anyway?
02:41:50 <hppavilion[1]> `` python ply-3.8/setup.py build
02:41:51 <HackEgo> error: package directory 'ply' does not exist \ running build \ running build_py
02:42:38 <ais523> HackEgo: try running it from its own directory
02:42:44 <ais523> *hppavilion[1]:
02:42:54 <hppavilion[1]> ais523: Um?
02:43:03 <hppavilion[1]> ais523: How would I do that?
02:43:20 <ais523> `` (cd ply-3.8; python setup.py build)
02:43:24 <HackEgo> running build \ running build_py \ copying ply/lex.py -> build/lib.linux-x86_64-2.7/ply \ copying ply/cpp.py -> build/lib.linux-x86_64-2.7/ply \ copying ply/__init__.py -> build/lib.linux-x86_64-2.7/ply \ copying ply/ctokens.py -> build/lib.linux-x86_64-2.7/ply \ copying ply/yacc.py -> build/lib.linux-x86_64-2.7/ply \ copying ply/ygen.py -> build/l
02:43:28 <ais523> bleh, you're conning me into doing everything myself, aren't you
02:43:33 <hppavilion[1]> Ah, I get it now
02:43:37 <hppavilion[1]> I forgot I could ;
02:43:44 <hppavilion[1]> ais523: Maybe...
02:43:48 <hppavilion[1]> `` ./testpylib
02:43:49 <HackEgo> Traceback (most recent call last): \ File "./testpylib", line 2, in <module> \ import ply \ ImportError: No module named ply
02:43:57 <hppavilion[1]> Probably hasn't finished yet
02:45:02 <hppavilion[1]> `` ./testpylib
02:45:03 <HackEgo> Traceback (most recent call last): \ File "./testpylib", line 2, in <module> \ import ply \ ImportError: No module named ply
02:45:05 <hppavilion[1]> Nope
02:45:17 <hppavilion[1]> I'll move to PRIVMSG
02:47:05 <hppavilion[1]> Dammit, I tried setup.py install
02:47:06 <hppavilion[1]> error: could not create '/usr/local/lib/python2.7/dist-packages/ply': Read-only file system
02:47:30 <myname> don't install
02:47:34 <hppavilion[1]> myname: Oh
02:47:37 <hppavilion[1]> myname: What do I do then?
02:47:42 <myname> use it
02:47:55 <hppavilion[1]> myname: Ah, I have to put it in the directory that I want to use it from?
02:53:01 -!- nooga has joined.
02:55:18 <oerjan> <ais523> hppavilion[1]: you didn't make it executable [...] <-- incorrect, `mkx does that.
02:55:32 <hppavilion[1]> oerjan: Oh
02:55:34 <ais523> oerjan: oh, is that what the x does?
02:55:42 <myname> lol
02:58:06 -!- nooga has quit (Ping timeout: 276 seconds).
02:59:03 <hppavilion[1]> What does the Standard #esoteric calculator need?
02:59:08 <hppavilion[1]> Fuzzy bags?
02:59:13 <hppavilion[1]> tswett: Are you online?
03:00:49 <ais523> hppavilion[1]: dc is an esoteric calculator already
03:01:00 <hppavilion[1]> ais523: We're 1-upping it
03:01:12 <ais523> you might be
03:01:17 <ais523> I want no part of this :-P
03:01:21 <hppavilion[1]> ais523: Fine, *I'm* 1-upping it
03:01:31 <ais523> also, have you seen the olympiad of misguided geeks?
03:01:35 <hppavilion[1]> ais523: Nope
03:01:38 <ais523> it hardly ever ran
03:01:43 <hppavilion[1]> ...
03:01:49 <ais523> but the only really successful run was basically literally "create an esoteric calculator"
03:01:55 * hppavilion[1] laughs hysterically
03:02:04 <ais523> it was run by thedailywtf
03:02:12 <hppavilion[1]> Oh, it was really a thing?
03:03:11 <ais523> hmm, when they changed their name from worsethanfailure back to thedailywtf, it seems they broke the links to it
03:03:20 <ais523> I'm trying to find the results now
03:03:48 <ais523> here we go: http://thedailywtf.com/articles/Announcing-the-OMGTWTF-Winner
03:03:50 <ais523> hppavilion[1]: read that
03:04:47 <ais523> wait, that's a pretty celebrity-stuffed judging panel
03:04:57 <ais523> it has both raymond chen and joel spolsky on it
03:06:35 <hppavilion[1]> ais523: What I'm going for is a real calculator with subtle, horrifying features
03:06:46 <hppavilion[1]> Like implementing Nullity
03:06:46 <ais523> hppavilion[1]: yes, some of them are like that
03:07:02 <hppavilion[1]> ais523: Excellent
03:07:13 <ais523> hppavilion[1]: try this one: http://thedailywtf.com/articles/OMGWTF-Finalist-08-Universal-Calculator
03:07:17 <hppavilion[1]> ais523: And the occasional divide-by-5 error
03:10:27 <ais523> hppavilion[1]: what about a divide-by-minus-one error?
03:10:34 <hppavilion[1]> ais523: Sure, why not xD
03:10:51 <ais523> hppavilion[1]: that's an actual error that comes up in a bunch of programming languages but it isn't well known
03:10:58 <hppavilion[1]> ais523: Of course, I could alternatively include Notta Numbers (I already am implementing @)
03:11:04 <ais523> the thing is, INT_MIN is a little further from zero than INT_MAX
03:11:08 <ais523> so INT_MIN/-1 is an integer overflow
03:11:15 <hppavilion[1]> Huh
03:11:29 <hppavilion[1]> Interesting
03:12:51 <myname> INT_MIN * (-1) = INT_MIN
03:14:19 <hppavilion[1]> myname: I figured
03:15:01 <pikhq> INT_MIN * (-1) = fish is also a valid implementation.
03:15:29 <hppavilion[1]> ais523: How about I change it to "Divide by zero on a day other than easter" error?
03:16:46 <ais523> in most implementations, INT_MIN / -1 is either INT_MIN or crashes the program
03:16:51 <ais523> but these are only the most common outcomes
03:17:01 <ais523> as pikhq said, theoretically it could do anything
03:17:21 <ais523> (I guess fairly common would be to produce a negative number that is treated as positive when compared with 0)
03:17:42 <myname> how would you do that
03:17:46 <hppavilion[1]> ais523: ... huh?
03:18:10 <hppavilion[1]> myname: Certainly not with typechecking
03:18:38 <ais523> myname: int_min is negative, right? thus dividing it by a negative number produces a nonnegative number
03:18:45 <pikhq> hppavilion[1]: The compiler will often assume that a negative times a negative is positive, and then optimize some conditionals based on that.
03:18:55 <pikhq> Which is legal, because signed overflow is not.
03:19:04 <myname> ais523: well, yeah, but where do you save the information about it being poitive?
03:19:05 <ais523> because of the UB on overflow, this is true no matter what the arguments
03:19:11 <ais523> however, if you actually do the calculation, you get a negative number
03:19:20 <ais523> the information's saved in the asm
03:19:27 <ais523> via static analysis and optimizations based on it
03:19:46 <pikhq> It's not that the number gets a magic "this is positive" bit set, it's just that the compiler makes that assumption when optimizing.
03:20:13 <hppavilion[1]> pikhq: Ooooooooooh
03:20:18 <pikhq> i.e. it will replace compares with that result with "true".
03:20:47 <hppavilion[1]> pikhq: -0*-9
03:20:52 <hppavilion[1]> *-0*-0
03:21:33 <hppavilion[1]> I assume that -0*-0 is evaluated to just 0 before compilation
03:21:37 -!- Lilly_Goodman has quit (Ping timeout: 240 seconds).
03:22:02 <myname> -0 wpuld be optimized to 0
03:22:05 <hppavilion[1]> (Why do I try to refute things that are so obvious that they're irrefutable?)
03:22:46 <ais523> how do you express -0 in C? is the simplest way copysign(-1., 0.)? (assuming that I remembered which way round the arguments to copysign went)
03:22:59 <ais523> huh, copysign is pretty weird as primitives go
03:23:19 <hppavilion[1]> myname: Should the Esocalc have a number Ω : 0Ω = 1?
03:23:42 -!- Lilly_Goodman has joined.
03:26:53 <hppavilion[1]> And, of course, 0nΩ = n, as omegoids are non-associative and non-commutative
03:27:28 <hppavilion[1]> In fact, the total set of numbers in the #esoteric calculator will have absolutely no consistent properties
03:27:52 <myname> that's pretty lame
03:27:56 <hppavilion[1]> myname: Why?
03:28:03 <myname> you could jusr output a random string, then
03:28:04 <hppavilion[1]> myname: The lack of properties, or Ω?
03:28:14 <hppavilion[1]> myname: No, subsets will have consistent properties
03:28:26 <myname> i would at least make some xonsistent modell that it will obey
03:28:33 <hppavilion[1]> Yeah, good poitn
03:29:48 <hppavilion[1]> myname: Should I just limit the weird constants to ijk@?
03:30:30 <myname> you can add whatever constant you like, just make sure to define the basic group operations on them
03:31:11 <hppavilion[1]> myname: Ah, that works
03:31:14 <myname> also, time to sleep
03:31:17 <hppavilion[1]> OK
03:31:31 <Lilly_Goodman> hola
03:33:17 <\oren\> so today I found out that the .shp file format's .dbf metadata format is a dBase IV file
03:34:28 <\oren\> so that means that most GIS packages that can read such files, contain implementations of an MS DOS database
03:36:28 <\oren\> (unless they ignore the metadata, that is)
03:40:11 -!- Lilly_Goodman1 has joined.
03:40:45 -!- Lilly_Goodman has quit (Ping timeout: 248 seconds).
03:53:44 -!- nooga has joined.
03:58:01 -!- nooga has quit (Ping timeout: 240 seconds).
04:19:57 -!- MDead has joined.
04:20:09 -!- MDude has quit (Quit: KVIrc 4.2.0 Equilibrium http://www.kvirc.net/).
04:20:15 -!- MDead has changed nick to MDude.
04:24:20 -!- treaki_ has joined.
04:24:53 <lifthrasiir> http://t3x.org/klong/index.html oh, another APL-esque small array language.
04:26:40 -!- treaki__ has quit (Ping timeout: 252 seconds).
04:27:25 <hppavilion[1]> http://thedailywtf.com/articles/The_Call_of_Codethulhu
04:28:45 <mad> still waiting for the language where you can go vector[$n] += table[$m][n] and it gets compiled as for(int m=0; m<table.size; m++) for(int n=0; n<vector.size() && n<table[m].size(); n++) vector[n] += table[m][n];
04:29:56 <\oren\> that's like einstein notation isn't it
04:30:24 <mad> I just want C++ except without having to type so much everytime I want to loop over something
04:30:26 <ais523> Perl 6 has a feature that's reminiscent of that but isn't the same
04:31:24 <mad> some languages have foreach but it's more limited and often kindof a performance hog
04:31:54 <mad> like it's defined in really abstract ways like inheritance and generics and generators
04:32:25 <mad> instead of just something simple
04:34:30 <\oren\> well like I always have said, they should have built std::string and std::vector into the C++ compiler
04:34:33 -!- hppavilion[2] has joined.
04:34:35 <mad> yes
04:35:00 <mad> and, debatably, std::map
04:35:22 <\oren\> oh, yes, at least when the key is any builtin type
04:35:40 <mad> hm
04:35:58 <mad> a lot of the std::maps I've used have a struct{} as a key
04:36:20 <mad> there's also the std::string as key which is a classic
04:36:32 <\oren\> ok, any type where the < operator is autogenerated
04:36:47 <\oren\> and string would count as builtin.
04:36:54 -!- hppavilion[1] has quit (Ping timeout: 244 seconds).
04:37:11 <\oren\> (wait, is the < or == operator autogenerated for structs?)
04:37:21 <mad> don't think so :3
04:37:35 <\oren\> i could have sworn you can == structs in C?
04:37:35 <mad> and I would've had to override it possibly too
04:37:40 <pikhq> You can't.
04:37:42 <ais523> \oren\: you can't
04:37:44 <ais523> = works, == doesn't
04:37:55 <ais523> you also can't memcmp them safely, in case they have padding bits
04:38:00 <ais523> so you need to compare field by field
04:38:16 <mad> "in case they have padding bits"
04:38:22 <mad> that's almost always no? :D
04:38:22 <ais523> that said, == is normally a dubious operation on structs anyway unless they're very simple
04:38:37 <ais523> mad: struct {char x; int y;} will have padding bits on the majority of compilers
04:38:37 <pikhq> mad: It's fairly common for structs to have padding *bytes*.
04:38:51 <mad> also some stucts can have no padding bits in 32bits but do have them in 64bits
04:38:52 -!- Lilly_Goodman1 has quit (Ping timeout: 260 seconds).
04:38:56 <mad> it's a recipe for disaster
04:39:00 <ais523> pikhq: and of course, bitfields that don't add up to a multiple of CHAR_BIT bits will have padding bits out of necessity
04:39:05 <pikhq> Yup.
04:39:20 <\oren\> Well, what if you memset the struct every time you make one?
04:39:34 <mad> \oren\ : some people do that
04:39:46 <mad> like the first step of the constructor is memset 0 on itself
04:39:49 <pikhq> I don't think the compiler's guaranteed to not mutate the padding bytes.
04:40:04 <mad> well
04:40:16 <mad> if it does a copy logically it would probably not copy the padding
04:40:31 <mad> though it could do that
04:41:14 <mad> tbh I think they should change the standard so that the compiler can reorder the fields of your struct
04:41:50 <mad> except if it's #pragma pack(push, 1)
04:42:06 <mad> actually that should be a language feature
04:42:12 <\oren\> that would render most embedded C code inoperable and cause countless manhours of work
04:42:17 <mad> like you'd have struct/class{}
04:42:56 <mad> and then struct exactlayout(littleendian) {int x; char q; int y; float z;}
04:43:12 <\oren\> I think compiler writers should think less about what they're allowed technically to do and more about what is least likely to cause new problems in existing code
04:44:17 <mad> basically right now, "who cares" layout classes/structs are conflated with basically structs used for loading exact byte layouts from files
04:44:56 <mad> with the unfortunate effect that the day you need a big endian port, you get some super grody byte reordering code all over the place in your binary file loader
04:46:42 <mad> and the other unfortunate effect that it encourages putting pointers in exact byte layout structs and having it break in 64bit ports
04:47:44 <mad> I also think they should make char officially 8bits, short 16bits and int 32bits except in like specialized embedded C for DSPs with 24bit accumulators
04:48:13 <mad> it's not like it's going to change from now on
04:48:55 <\oren\> mad: yes, I am all for making the formal standard more in line with the informal standard most C programmers write for.
04:48:57 <newsham> its time for a standardized safe and common sense C standard for practical targets.
04:49:26 <pikhq> Of course, float's semantics don't even match what most C programmers think it is on common practical targets.
04:49:35 <mad> and it would help clamp down on int8_t/uint8_t/int16_t/uint32_t/etc and vox::s32/vox::s16/vox:u8/etc and GLUINT8/GLINT32/etc and the million variations
04:49:37 <newsham> focusing on ILP32 and LP64
04:49:59 <pikhq> (the result of adding a float and a float is a float_t, not a float. :))
04:50:38 <\oren\> pikhq: I thought it was a max-size float for the target, e.g. a long double on x86
04:50:47 <pikhq> No.
04:51:16 <\oren\> which is then rounded to whatever type you assign it to
04:51:17 <pikhq> On x86_64, float_t is float.
04:51:53 <mad> newsham : you forgot LLP64
04:51:58 <pikhq> It's more-or-less the type that the underlying hardware performs the addition as.
04:51:58 <mad> (!)
04:52:38 <\oren\> pikhq: well tbf, if C is readable assembler that makes perfect sense
04:52:46 <newsham> mad: nah, we can just euthenize those ;-)
04:53:02 <pikhq> It's actually necessary to get reasonable floating point semantics.
04:53:03 <mad> pikhq : I as of now there's just no alternative to accepting that consistent float is impossible
04:53:25 <mad> newsham : good luck convincing the msvc guys to give up on 32bit long :(
04:53:40 <newsham> since when has msft cared about std compliance?
04:53:57 <pikhq> The basic floating point operations in a good C implementation are *exactly rounded*.
04:54:01 <\oren\> oh, I use long long anyway when I want 64 bits
04:54:06 <mad> newsham : I care about msvc vs gcc/llvm complience
04:54:12 <mad> standard I couldn't care less about
04:54:26 <pikhq> Having float_t and double_t is necessary to avoid double rounding.
04:54:28 <\oren\> so my scale usually goes char short int long long
04:54:32 <mad> what adds to my work day is every time msvc and gcc can't agree on something
04:54:45 <mad> doesn't matter which way the difference get resolved
04:54:47 -!- nooga has joined.
04:55:22 <\oren\> mad: wait but doesn't adding to your work day add to your salary?
04:55:27 <pikhq> float_t and double_t are types declared in math.h. They're the types that float and double operations are performed as. And yes, MSVC provides it.
04:55:32 <\oren\> indirectly
04:55:39 <pikhq> Using them gets you a long damned way towards consistent float.
04:55:56 <mad> \oren\ : it adds to my hair pulling and frustration
04:56:26 <\oren\> well iff pulling your hair is what you're paid to do...
04:56:28 <mad> well, normally I care way more about fast float than consistent float
04:56:49 <mad> so I actually want the compiler to play cowboy with rounding
04:57:12 <mad> but I know that if I ever one consistent float it's not happening
04:57:52 <mad> the fact that modern architectures are turning towards "denormals replaced with zero" doesn't add to consistency either :D
04:58:24 <\oren\> exact calculations should be done with fixed point anyway
04:59:01 <mad> \oren\ : I'd rather pull my hair doing something useful for society rather than making sure "long" never appears anywhere ever :D
04:59:07 -!- nooga has quit (Ping timeout: 244 seconds).
05:00:00 <mad> \oren\ : that's how they're usually handled yes
05:00:43 <mad> one that kinda pisses me off
05:00:49 <pikhq> Using floating point (and understanding its semantics) is very useful if what you actually need is calculations with an error bar.
05:00:58 <mad> -3 / 2 = -1
05:01:02 <mad> -3 >> 1 = -2
05:01:26 <\oren\> fortran formats has a cool feature that C scanf/printf doesnt
05:01:27 <mad> pikhq : yeah that's basically my day job :D
05:01:43 <pikhq> Then how do you not know float_t and double_t?
05:01:45 <\oren\> the ability to have 10.05 read as 1005
05:01:53 <\oren\> and then write it out as 10.05
05:02:03 <mad> also, (int)(-0.5) = 0 is EVIL
05:02:05 <pikhq> Your analysis is gonna be all wrong if you assume double rounding happens all over the place...
05:03:21 <lifthrasiir> you should realize that floating point number is not your typical real number
05:03:43 <mad> pikhq : well, I knew that the compiler uses long double for the actual computations on the x87 fpu
05:04:05 <mad> I didn't knew there was a data type for it
05:04:32 <pikhq> Yeah, very handy if you need to specifically store the result of a calculation without the possibility of added rounding.
05:04:44 <mad> yeah that's not a problem in my field
05:04:45 <\oren\> but when doing those new 3d extensions for floating point, it doesn't do long double
05:04:58 <mad> for sound, float is good enough 99.9% of the time
05:05:13 <\oren\> so the actual rounding depends on what instructions the cpu uses for it
05:05:19 <mad> so generally I don't really care when the compiler upgrades it to long double
05:05:30 <\oren\> but I thought it always promoted it to at least double
05:05:53 <mad> \oren\ : ah no
05:06:09 <pikhq> Ah, *sound*. Okay, yeah, even really absurdly high errors with float are minimal and irrelevant.
05:06:11 <mad> the promotion is really just because the x87 fpu forces promotion if you want any kind of perf
05:06:23 <\oren\> ah
05:06:27 <pikhq> The x87 fpu forces promotion period.
05:06:35 <mad> yeah
05:06:53 <mad> if you want non promotion you have to store/load the value after calculation
05:07:11 <pikhq> And that's actually going to give you incorrect results.
05:07:20 <pikhq> Because it double rounds.
05:07:32 <mad> oh
05:07:48 <mad> which means you just can't do the exact spec operation on x87? :D
05:08:04 <mad> you also have precision control flag that's *almost* as good but it actually doesn't limit the exponent range, afaik
05:08:46 <pikhq> Yep!
05:09:14 <mad> afaik llvm on iphone uses the SIMD unit floating point for float code
05:09:18 <pikhq> If you want to get exact-rounded float or double addition on x86, you need to use SSE or software floating point.
05:09:27 <mad> which has flushing denormals to zero (!)
05:10:29 <mad> ie if you compile float code on IOS it doesn't even follow the IEEE spec
05:11:48 <ais523> mad: I thought that was an option, rather than something that always happened
05:11:49 <pikhq> That's surely if you don't have the -std=c99 or similar flag.
05:12:17 <pikhq> FWIW GCC or LLVM do not conform to IEEE without a strict conformance flag. Period.
05:12:19 <mad> ais523 : it depends on which floating point operations you use I think
05:12:31 <pikhq> They aren't -ffast-math broken, but they don't conform.
05:12:44 <mad> -ffast-math is broken? :D
05:12:54 <ais523> pikhq: mad: -ffast-math is /intentionally/ broken
05:13:01 <pikhq> -ffast-math is -fbreak-my-math.
05:13:04 <pikhq> ais523: I'm aware.
05:13:05 <ais523> in that it doesn't attempt to be remotely IEEE conforming
05:13:13 <mad> what does it do?
05:13:14 <\oren\> I always use -ffast-math
05:13:37 <\oren\> It basicallydoes things fast but often wildly wrong
05:13:48 <pikhq> mad: It permits essentially any algebraically justified expression changes with no care for preserving precision whatsoever.
05:13:51 <mad> define "wildly wrong"
05:14:14 <mad> pikhq : in my field, that's _good_
05:14:21 <\oren\> but I used it to comile my game, and there I only requred chunkily correct results
05:14:33 <pikhq> And this is exactly why it's an option.
05:14:42 <\oren\> chunkily being the superlative of roughly
05:15:00 <pikhq> Because some users of floating point give approx. zero shits about floating point semantics.
05:15:03 <mad> if I start seeing wrong results I just upgrade all the variables involved from float to double
05:15:05 <mad> kdone
05:15:18 <HackEgo> [wiki] [[A:;]] https://esolangs.org/w/index.php?diff=46638&oldid=43250 * 27.33.99.249 * (+197)
05:15:20 <\oren\> double is often faster
05:15:32 <\oren\> in my experience anyway
05:15:33 <mad> \oren\ : heh really?
05:15:45 <mad> wanna see proof of that
05:16:08 <mad> I've definitely seen lots of cases where it's "not slower", I admit
05:16:25 <pikhq> IIRC, without -std=c99, when GCC flushes a floating point computation to the stack it stores a float instead of a float_t.
05:16:39 <pikhq> Meaning your rounding behavior is at the whims of the compiler on x86.
05:16:48 <mad> pikhq : yes that's a given
05:17:01 <pikhq> ... Which is why people think floating point has horribly inconsistent magical behavior.
05:17:11 <mad> when does rounding behavior matter?
05:17:35 <mad> aside from trying to do something stupid like if(3 == 3.f * (1.f / 3.f))
05:18:09 <lifthrasiir> mad: rounding behavior does accumulate over series of FP ops
05:18:14 <\oren\> this game also used the ++ operator on a double
05:18:27 <pikhq> When you're trying to write code which computes results with a provable error range.
05:18:28 <mad> lifthrasiir : not if it's a series of addition
05:18:32 <pikhq> i.e. science.
05:18:46 <mad> lifthrasiir : then you get essentially the precision of the worst part of the addition
05:19:07 <pikhq> (the ability to do exactly this on common implementations is why FORTRAN is popular)
05:19:09 <\oren\> pikhq: go back to fortran from whence thee came
05:19:21 <\oren\> jinx!
05:19:24 <mad> ah yeah, if you want provability.....
05:19:42 <pikhq> Which you can do in ISO C, but sure as hell can't in GNU C.
05:19:49 <\oren\> I actually used fortran in one course
05:20:08 <pikhq> Though, you can do it with GCC on glibc, so there's that at least.
05:20:14 <\oren\> it was a "programming for science" bassicaly course
05:20:15 <lifthrasiir> mad: even when you sum numbers of similar magnitudes, the error eventually ensues
05:20:42 <lifthrasiir> we have a good pile of algorithm for just summing FP numbers (Kahan summation, pairwise summation etc)
05:21:08 <mad> lifthrasiir : suppose all your numbers are from -1..1 and the sum never goes over -1..1, then you're guaranteed a precision of at least 1/16million
05:21:33 <mad> basically as long as the exponent never grows, it's equivalent to 24bit fixed point
05:22:33 <lifthrasiir> by precision you meant abs(real_sum - computed_sum) <= abs(real_sum)/2^24 ?
05:22:42 <mad> I mean
05:24:12 <mad> abs(real_sum - computed_sum) <= abs(real_sum)/2^24 + SUM_OF_ALL( abs(sum_term[x] - closest_valid_float) )
05:25:19 <mad> basically for the error that happens between your individual term of your sum and a 32bit float value, you have no guarantee against that
05:25:49 <mad> if your values are systematically very slightly biased so that, say, it always rounds up or down.... it can't do anything about that
05:26:02 <mad> or actually the guarantee is lower than that
05:26:39 <mad> it's not against the closest float but rather the closest float at current precision of the sum variable
05:27:03 <mad> how to put this
05:27:15 <mad> basically float never does worse than 25bit fixed point
05:27:47 <mad> does that make sense? :D
05:28:56 <mad> but if you're doing infinite sums then you can easily get some systematic biasing and then you'll need a fancy algo yes
05:30:10 <lifthrasiir> mad: (was afk) I had a feeling that you are saying that the error is irrelevant on your condition. I guess my interpretation was wrong (it is more about, uh, "insignificant")
05:30:51 <mad> yeah for sound and video games, you don't typically do infinite sums in the way that will mess up things
05:31:06 <mad> or rather you rarely do infinite sums at all
05:32:47 <mad> looking up https://en.wikipedia.org/wiki/Kahan_summation_algorithm
05:32:55 <mad> hmm
05:33:28 <mad> basically you're taking the part of the sum that wasn't taken along in the sum and keeping that in a second sum variable
05:33:30 <mad> clever
05:34:01 <mad> though I guess it's kindof like turning a 32bit float into a 64bit float
05:34:31 <mad> so I guess at first you'd switch from float to double, and then as a second step you'd put in that algo
05:36:05 <mad> I've used a similar algo once in a filter
05:37:12 <mad> basically because 16bit fixed point isn't enough for a filter so I added an error accumulation variable to more or less make it 32bits
05:40:03 -!- lambda-11235 has quit (Quit: Bye).
05:46:08 <mad> I guess if all your floating point is in double and even then it's not cutting it in terms of precision then you're in that case
05:51:48 <lifthrasiir> mad: the same idea is also present in the Bresenham line drawing algorithm, the idea seems to be fairly universal
05:52:39 <mad> well, yeah
05:53:07 <mad> it's basically the equivalent of doing 64bit addition on a 32bit cpu
05:53:15 <mad> by doing ADD and ADC
05:55:38 -!- nooga has joined.
06:00:05 -!- nooga has quit (Ping timeout: 244 seconds).
06:10:21 <Sgeo__> https://github.com/twbs/bootstrap/issues/3057
06:10:23 <Sgeo__> Words fail me
06:14:17 <\oren\> christ
06:14:44 <\oren\> omg, look at the fucking scroll bar on that thread?!
06:14:50 <lifthrasiir> Sgeo__: oh lol
06:14:56 <lifthrasiir> http://wiki.ecmascript.org/doku.php?id=strawman:concurrency and it is a legitimate proposal
06:15:30 <lifthrasiir> so every new expression syntax risks breaking the existing JS code and thus the Web(tm)
06:17:04 <izabera> https://tedcruz.lgbt/
06:20:44 <ais523> Sgeo__: that thread is beautiful, /both/ sides have an argument that's clearly stupid
06:20:48 <ais523> so I'm not sure which one I'm supporting
06:21:35 <Sgeo__> Don't minifiers habitually break valid code anyway?
06:21:43 <ais523> that said, I suspect the jsmin side of the argument is stupid because JS is stupid
06:21:48 <Sgeo__> e.g. code that relies on a function's name
06:21:53 <ais523> rather than stupid in its own right
06:22:51 <Sgeo__> And AngularJS does that, and so has a workaround to allow it to be minified. And forgetting to use that workaround does not mix with upgrades that minifier group wrongly thinks is backwards compatible
06:24:20 <Sgeo__> https://github.com/mishoo/UglifyJS2/issues/121#issuecomment-92522991
06:25:18 <Sgeo__> Hmm, maybe minifier != uglifier
06:25:48 <ais523> clearly we need maxifiers; we have beautifiers
06:27:13 <Sgeo__> "fwiw, this was patched in bootstrap way before i even encountered this issue - otherwise i wouldn't have closed it outright."
06:27:34 <mad> looking at that js concurrency proposal
06:27:35 <Sgeo__> This after 23 million forks of both projects are made
06:27:52 <mad> is that thing even technically possible?
06:28:41 <lifthrasiir> ais523: I feel the entire discussion is reasonable *and yet* stupid
06:28:42 <mad> I'm not familiar with js but I was under the impression that it was more or less designed against concurrency
06:28:59 <lifthrasiir> I know that the automatic semicolon insertion is required for compatibility. but we need it *only* for compatibility!
06:29:41 <lifthrasiir> TC39 should have limited the scope of automatic semicolon insertion
06:29:52 <Sgeo__> "Semicolons cause an equal amount of debate in English grammar circles and although it's yet to be proven I believe they partially caused the first World War.
06:29:52 <Sgeo__> "
06:30:07 <lifthrasiir> so that ! won't never start a sentence when preceded by a newline
06:30:16 <lifthrasiir> s/sentence/statement/
06:30:22 <lifthrasiir> (thank you Sgeo__ for the source of confusion)
06:30:52 <Sgeo__> Saw it on https://www.reddit.com/r/ProgrammerHumor/comments/4bf5kv/thanks_jslint_ill_tick_that_one/
06:30:55 <ais523> come to think of it, JSFuck makes a pretty good maxifier
06:34:14 <ais523> you know, I really like the suggestion of using x || y rather than !x && y
06:34:29 <ais523> it seems to have all the advantages of the original, and one less downside
06:34:40 <ais523> it is still a bad choice, but isn't bad in any way the original wasn't
06:35:06 <lifthrasiir> if (!x) y;
06:35:19 <lifthrasiir> and then we would someday have an expression containing if
06:35:25 <lifthrasiir> ruining everyone
06:37:51 <ais523> clearly we need Perl's if statement modifier
06:37:56 <ais523> it looks like this: "a if b;"
06:38:03 <ais523> where a is a statement and b is an expression
06:38:28 <lifthrasiir> it would be a if (b);
06:38:42 <lifthrasiir> thanks to the orthogonality
06:39:23 <mad> I was never a fan of the semicolon
06:39:56 <mad> it's acceptable in two level lists (1a, 1b, 1c; 2a, 2b; 3a, 3b)
06:40:19 <mad> but to me it practically doesn't make sense in "grammar"
06:40:32 <ais523> OCaml has semicolon as list separator, comma as tuple separator
06:40:43 <ais523> and [a,b; c,d; e,f] is a list of tuples
06:41:00 <ais523> ([a,b,c; d,e; f,g] is a type error)
06:41:41 <lifthrasiir> and double semicolons as unit separator
06:42:50 <mad> kinda wonder
06:42:54 <ais523> lifthrasiir: I originally misinterpreted that as () being unit, (;;) being a particularly bulky way to write unit
06:42:57 <mad> why you have to use shift to get :
06:43:02 <mad> and you naturally get ; instead
06:43:03 <lifthrasiir> ais523: lol
06:43:07 <mad> isn't : more common?
06:43:10 <ais523> there's some debate about what the purpose of ;; is in actual (non-interactive) OCaml code
06:43:11 <lifthrasiir> ais523: in fact I was not sure about the naming
06:43:22 <lifthrasiir> that is, the name of what is separated by ;;
06:43:29 <ais523> as in, its purpose in the OCaml repl is clear
06:43:33 <ais523> but not in actual code
06:43:54 <ais523> most OCaml programs don't have a ;; anywhere
06:43:56 <lifthrasiir> ais523: isn't that the type inference boundary? it might not have a value though.
06:44:05 <ais523> (mostly I use it to make parse errors give more precise line numbers)
06:44:19 <ais523> lifthrasiir: why would you want to place limits on type inference?
06:44:35 <shachaf> I think most Haskell programs don't have ; and {} anywhere.
06:44:49 <lifthrasiir> ais523: not much, but may simulate multiple files of code into a single code without altering anything
06:45:00 <lifthrasiir> not to say that it is useful :)
06:46:02 <oerjan> someone in girl genius needs to improve their haggling.
06:46:26 <shachaf> whoa whoa whoa
06:46:30 <shachaf> `gglist
06:48:14 <mad> rob ford is dead :o
06:50:05 <izabera> "i'm not glad he's dead but i'm glad he's gone"
06:54:15 -!- AnotherTest has joined.
06:55:32 <oerjan> shachaf: records?
06:55:52 <shachaf> oerjan: I guess so, but that's just a pun.
06:56:10 -!- nooga has joined.
06:57:26 <oerjan> huh?
06:57:51 <oerjan> (also, `gglist is too regular to have a *list. it's even back to morning schedule...)
06:58:30 -!- AnotherTest has quit (Ping timeout: 244 seconds).
06:58:36 <shachaf> it's a list of good games hth
06:58:48 <oerjan> O KAY
06:58:55 <shachaf> oerjan: I mean that it's the same character being used in a different context syntactically.
06:59:52 <oerjan> perhaps. you cannot even use it with layout...
07:00:37 -!- nooga has quit (Ping timeout: 260 seconds).
07:22:30 -!- ais523 has quit (Quit: food).
07:31:11 <b_jonas> “<ais523> is there anything that people hate less as they use it more, rather than hating more?” => yes, software with an initial learning curve like gimp
07:33:20 <b_jonas> “<ais523> the most confusing thing is that, by default, it accesses your primary connected tape driver” => no way. these days it accesses stdin or stdout by default instead.
07:50:57 -!- ais523 has joined.
07:51:03 <b_jonas> “<ais523> is there anything that people hate less as they use it more, rather than hating more?” => yes, software with an initial learning curve like gimp
07:51:12 <b_jonas> “<ais523> the most confusing thing is that, by default, it accesses your primary connected tape driver” => no way. these days tar accesses stdin or stdout by default instead.
07:51:13 <ais523> ugh, can you seriously not do rank 2 polymorphism in ocaml?
07:51:24 <ais523> b_jonas: how do you access your tape drive then?
07:52:27 <shachaf> ais523: You have PolymorphicComponents, at least, right?
07:52:41 <b_jonas> ais523: try it the C++ standard library way: make it polymorphic on a rank 1 type that has an associated type (or member type or something) with a rank 2 type, and give the type explicitly instead of inferring it.
07:52:46 <ais523> shachaf: what does that mean? I'm not sure what that name refers to
07:52:57 <shachaf> Polymorphic fields in records.
07:53:23 <ais523> ah, hmm
07:53:32 <ais523> it's quite likely, given that OCaml has OO
07:55:26 <shachaf> It's better than nothing, though not allowing rank-2 types is pretty scow if you ask me.
07:56:45 <ais523> here's a minimal example of what I'm trying to do, constructed for #ocaml: let g (f : 'a -> unit) = (f 1; f "a")
07:57:04 -!- nooga has joined.
07:58:24 -!- J_Arcane has quit (Ping timeout: 244 seconds).
07:58:35 <shachaf> So can you write type t = { f : 'a . 'a -> unit }, and then let g x = (x.f 1; x.f "a")?
07:58:45 <shachaf> I don't know OCaml syntax.
08:01:08 <ais523> shachaf: according to #ocaml, yes; I'm not very good with records yet though
08:01:14 <ais523> so I'm waiting for them to tell me the syntax :-)
08:01:23 <b_jonas> ais523: try template<typename H> void g(H f) { f(1); f("a"); } that is, H is a concrete type that has a rank 1 type member operator()
08:01:39 -!- nooga has quit (Ping timeout: 268 seconds).
08:02:13 <shachaf> ais523: Doesn't the syntax I used work?
08:02:21 <ais523> shachaf: it does
08:02:25 <ais523> OK, problem solved
08:02:26 <b_jonas> ais523: anything that tries to pass f as a rank 1 type value with stat directly won't work, because you can't have *values* polymorphic
08:02:40 <b_jonas> in C++ that is, I don't really know ocaml
08:03:21 <b_jonas> right, that's the same as what shachaf says I think
08:04:11 <shachaf> b_jonas: That's more duck typing than rank-n polymorphism, I think.
08:05:14 <b_jonas> shachaf: it's also duck typing because you can't verify that f really compiles on all types of x, only that it works on int and string
08:06:08 <b_jonas> shachaf: C++ templates have straight rank 2 polymorphism, but only on the template level, not the value level, because you can't have a straight rank 1 value, so in the end almsot nobody uses that feature
08:06:21 <b_jonas> it's called template<template<
08:06:29 <shachaf> template templates are great
08:06:34 <b_jonas> yes, I know
08:06:44 <b_jonas> they even get you to syntax troubles
08:07:58 <shachaf> What more can you want from a language feature?
08:09:13 <ais523> I was unaware of the 'a. syntax in OCaml, and it's weird that it only works inside records
08:09:49 <ais523> especially as the compiler seems to be able to handle the type of the record field after destructuring
08:10:17 <shachaf> In more than one context?
08:10:24 <shachaf> Well, that's not really that surprising, I guess.
08:10:51 <shachaf> Do you have a function that constructs a record in OCaml, like you do in Haskell?
08:10:58 <shachaf> If so that function would be rank-2.
08:12:34 <ais523> the record constructor looks like {f=f}
08:12:53 <ais523> but if you try to write it as a function, "let make_f f = {f=f}", type inference fails
08:13:18 <ais523> because it can't infer the polymorphic type for the function argument
08:13:26 <shachaf> Makes sense.
08:13:43 <oerjan> that's pretty much as in ghc haskell, unless you provide an explicit type signature
08:13:55 <shachaf> GHC has the extension PolymorphicComponents for a similar feature, but it also makes a record constructor which is an actual rank-2 function.
08:14:03 <ais523> right, the only difference with OCaml is that it doesn't let you provide the type signature
08:14:12 <shachaf> In practice PolymorphicComponents and Rank2Types and RankNTypes are all synonyms these days.
08:14:24 <ais523> right, we discussed that a while back
08:14:47 <ais523> the difference being that Rank2Types are inferrable (mathematically, ghc can't do it), RankNTypes aren't
08:14:58 <shachaf> Right.
08:15:03 <oerjan> and in ghc, _existential_ types still require destructuring something.
08:15:12 <ais523> this is the only advantage to rank 2 types, I think
08:15:17 <ais523> that they're decidable
08:15:18 <shachaf> I remember you gave some justification for that, which was something like you can do whole-program inference but not local inference.
08:15:30 <ais523> it's a while since I read the papers
08:15:32 <shachaf> (For rank-2 types.)
08:15:57 <shachaf> Whole-program type-checking seems to me like it almost defeats the purpose of type-checking.
08:16:03 <oerjan> istvr rank-2 isn't inferrable, just checkable: you don't have principal types
08:16:42 <shachaf> Isn't that true of Rank-N?
08:17:02 <shachaf> The advantage of rank-2 types over rank-n, people usually claim, is that you can do inference.
08:17:30 <shachaf> And I think ais523 said that you can do whole-program inference (so you don't need principal types) but I'm not quite sure on that.
08:18:02 -!- hppavilion[2] has quit (Ping timeout: 244 seconds).
08:18:08 <ais523> yes, there's an algo for whole-program inference somewhere
08:18:12 <ais523> let me see if I can find the paper
08:18:54 <ais523> http://dl.acm.org/citation.cfm?id=182456
08:18:58 <oerjan> shachaf: i don't think rank-N is checkable without explicit types, or else system F would be
08:19:04 <ais523> not sure if it's publicly available via the ACM
08:19:15 <shachaf> oerjan: Oh, I thought you meant checkable with explicit types.
08:19:29 <ais523> althoug even if it isn't, there might be copies floating around elsewhere (e.g. authors' website), there often are
08:19:48 <oerjan> nah with enough explicit types it's obviously checkable, that's just what core is.
08:19:54 <shachaf> Available for a token fee of $15.
08:19:56 <oerjan> "obviously", he said.
08:20:02 <ais523> shachaf: that's a ridiculous price
08:20:17 <shachaf> You can also pay $3 for 24 hours of access apparently.
08:20:17 <ais523> although, it's actually much cheaper than the "typical" price that these organizations charge…
08:20:35 <shachaf> "View-only access for 24 hours"
08:20:39 <int-e> the usual trick of googling the title seems to work anyway
08:20:47 <shachaf> I wonder how much you pay to be able to modify the paper.
08:21:21 <oerjan> only your very soul, shachaf
08:22:25 <ais523> apparently the ACM have a program which allows you to specify one referer that's able to view the paper for free
08:22:51 <ais523> the idea being that you link to their site from your website, and people who reached the site like that can see the paper
08:23:54 * oerjan read that as "one referee"
08:24:18 <oerjan> it almost made sense at first
08:24:23 <shachaf> shachaf read that as "one referer". shachaf read good.
08:24:27 <ais523> (this presumably doesn't lose them any money, because authors who want to make their papers generally available normally just post the preprints, which doesn't violate ACM's copyright)
08:24:41 <ais523> hmm, it's interesting that "referer" has now become a word, and has a more precise meaning than "referrer"
08:25:07 <oerjan> now we need to work on referree
08:25:34 <shachaf> Hmm, that pun doesn't work at all for the same ambiguity that makes it possible.
08:25:35 <ais523> bleh, all these paper publishers sites are at least mildly evil (except for probably arxiv), but I can't be mad at ACM
08:25:40 <ais523> they're at least trying to be reasonable
08:28:39 <oerjan> of course arxiv is evil they won't publish my REVOLUTIONARY QUANTUM CHEESE THEORY
08:29:20 <shachaf> @yow!
08:29:22 <lambdabot> Yow! Are you the self-frying president?
08:29:51 <shachaf> @yow
08:29:51 <lambdabot> So, if we convert SUPPLY-SIDE SOYABEAN FUTURES into HIGH-YIELD T-BILL
08:29:52 <lambdabot> INDICATORS, the PRE-INFLATIONARY risks will DWINDLE to a rate of 2
08:29:52 <lambdabot> SHOPPING SPREES per EGGPLANT!!
08:29:52 <oerjan> spontaneous combustion in the white house
08:30:42 <oerjan> btw if you can find a zippy comic with dialogue starting with Z, b_jonas is interested hth
08:31:02 * oerjan goes back to stalking forums again
08:31:19 <oerjan> (actually, any panel with such dialogue)
08:33:45 <shachaf> the second-order &lgr;-calculus
08:34:11 <oerjan> what's &lgr;
08:34:24 <shachaf> Probably the greek letter lambda?
08:34:51 <shachaf> It could be the Lagrangian calculus, I guess.
08:35:32 <oerjan> 'fraid it's actually &lambda;
08:35:48 <shachaf> Well, that's on the page ais523 linked to.
08:36:15 <ais523> there might be more than one entity for the same letter?
08:37:05 <oerjan> that might explain why it doesn't show up right
08:37:07 <shachaf> Or maybe &lambda; is for LATIN SMALL LETTER LAMBDA WITH STROKE
08:37:41 <shachaf> Whereas &lgr; is for one of the LAMDA characters, which are much more prevalent in Unicode.
08:38:59 <oerjan> ok https://www.w3.org/TR/xml-entity-names/bycodes.html has both
08:41:26 <oerjan> i suppose the &lgr; escaped due to insufficient escaping.
08:41:38 <oerjan> no wait
08:41:43 <oerjan> too much
08:57:50 -!- nooga has joined.
09:02:19 -!- nooga has quit (Ping timeout: 260 seconds).
09:03:03 <b_jonas> oerjan: no, it's more like whoever invented that requirement is interested.
09:04:02 <shachaf> @@ (@pinky) / (@brain)
09:04:02 <lambdabot> I think so, Brain, but if they called them 'Sad Meals', kids wouldn't buy them! / It must be inordinately taxing to be such a boob.
09:04:11 <shachaf> @@ (@brain) / (@pinky)
09:04:12 <lambdabot> Be quiet Pinky, or I shall have to hurt you. / I think so, Brain, but how would we ever determine Sandra Bullock's shoe size?
09:12:08 <oerjan> @yow president
09:12:08 <lambdabot> On the other hand, life can be an endless parade of TRANSSEXUAL
09:12:08 <lambdabot> QUILTING BEES aboard a cruise ship to DISNEYWORLD if only we let it!!
09:12:26 <oerjan> doesn't seem useful for searching
09:12:56 <shachaf> @brain
09:12:56 <lambdabot> It is here that my cheap workforce of trained iguanas will work
09:12:56 <lambdabot> night and day to make our shoes to my exacting specifications!
09:14:25 <ais523> what's with the newlines?
09:14:36 <ais523> adding random newlines on IRC is like adding random commas in regular English
09:14:59 <ais523> the second quote it's not too bad, a comma /almost/ works there (it doesn't work but it's not too jarring)
09:15:03 <ais523> the first quote it's terrible though
09:15:10 -!- lynn has joined.
09:15:42 <shachaf> I think these come from fortune.
09:15:53 <shachaf> Maybe it wraps to 80 columns?
09:23:19 -!- lynn has quit (Ping timeout: 260 seconds).
09:25:12 -!- nooga has joined.
09:31:05 -!- lynn has joined.
09:33:01 -!- oerjan has quit (Quit: Nite).
09:36:28 -!- AnotherTest has joined.
09:44:43 <izabera> google "gimp masks"
09:50:23 -!- ais523 has quit.
09:58:48 -!- bender| has joined.
10:03:17 <lifthrasiir> izabera: nice prank.
10:16:28 -!- hydraz has quit (Ping timeout: 252 seconds).
10:19:01 -!- hydraz has joined.
10:19:01 -!- hydraz has quit (Changing host).
10:19:01 -!- hydraz has joined.
10:21:38 -!- AnotherTest has quit (Ping timeout: 268 seconds).
10:21:39 -!- nooga has quit (Ping timeout: 260 seconds).
10:35:40 -!- boily has joined.
10:36:01 -!- heroux has quit (Ping timeout: 244 seconds).
10:39:42 <nvd> Good morning
10:39:54 <nvd> I've had a v ery nice sleep
10:40:11 <nvd> 13 hours, plus a two hour nap I had yesterday evening before dinner
10:41:38 <boily> Tanelle. good morning! that's a nice sleep.
10:45:10 -!- heroux has joined.
10:55:27 <boily> @tell oerjan I AM THE PRETTIEST FROG IN THIS ENTIRE POND!!
10:55:27 <lambdabot> Consider it noted.
11:02:33 -!- bender| has quit (Read error: Connection reset by peer).
11:09:56 <int-e> boily: as long as you don't anybody to pick you up and throw you against a wall so that you can reemerge as a prince...
11:10:06 <int-e> ... don't -> don't expect
11:13:01 <boily> int-ello. I wouldn't dare to expect less.
11:13:26 <int-e> Maybe it's time to bring up http://jokes.cc.com/funny-work/k7op88/the-engineer-and-the-frog
11:15:28 <boily> :D
11:15:43 <boily> @metar CYUL
11:15:44 <lambdabot> CYUL 231100Z VRB02KT 6SM -SN OVC040 00/M01 A2991 RMK SC8 /S01/ PRESRR SLP132
11:22:24 -!- boily has quit (Quit: BET CHICKEN).
11:43:35 -!- bender| has joined.
12:09:39 <b_jonas> Is there a triINTERCAL-like language that is binary but the words are 18 and 36 bit long instead of 16 and 32 bit, so that it's easier to interpret on a 18-bit computer?
12:13:39 -!- jaboja has joined.
12:16:42 <int-e> so... a PDP INTERCAL
12:17:17 <int-e> (I'm confused by the reference to *tri*INTERCAL)
12:17:40 <int-e> and no, I don't know of any such thing
12:17:46 <b_jonas> int-e: triINTERCAL has variants with different digit sizes and different number of digits per word
12:18:15 <b_jonas> so I presumed one with 18 bits could be a special case
12:19:14 <int-e> oh, I only knew the obvious variant with 10 and 20 trit words
12:20:14 <int-e> because "tri" refers to ternary... and because those neatly fit into 16 and 32 bits, respectively
12:21:07 <b_jonas> int-e: yes, but I believe the canon is that base 4, base 5, base 6, and base 7 variants are also called triINTERCAL
12:21:15 <b_jonas> or maybe TriINTERCAL
12:22:47 <b_jonas> `? TriINTERCAL
12:23:16 <HackEgo> TriINTERCAL? ¯\(°​_o)/¯
12:34:17 -!- jaboja has quit (Ping timeout: 260 seconds).
12:45:41 <int-e> "The ick compiler actually recognizes filename suffixes of the form '.Ni', where N is any number from 2 to 7. 2 of course gives standard INTERCAL, while 3 gives TriINTERCAL." <-- they didn't give any name to the higher base variants
12:47:15 -!- Sgeo__ has quit (Ping timeout: 244 seconds).
12:47:41 -!- AnotherTest has joined.
12:56:35 -!- AnotherTest has quit (Ping timeout: 248 seconds).
13:01:39 <b_jonas> int-e: I mean canon for C-INTERCAL, see http://c.intercal.org.uk/manual/qk5q4hrh.htm
13:06:10 <int-e> I was quoting from http://web.archive.org/web/20080207035637/http://www.progsoc.uts.edu.au/~sbg/intercal/ick5.html#5.6
13:06:48 <b_jonas> int-e: ok, but I think the C-INTERCAL docs supercedes it, given that it's actually maintained
13:07:26 <int-e> it's funny because ick *is* C-INTERCAL, just before ais took over...
13:08:06 <int-e> but my main objection is that Tri means three and therefore shouldn't refer to other bases, documentation be damned.
13:14:18 <b_jonas> int-e: what do you call the decimal point inside a hexadecimal number representation like 0x1.6db7p+0 ?
13:21:23 <int-e> Komma.
13:22:12 <b_jonas> (some call it "radix point")
13:22:37 <int-e> why can't it just be "point"
13:44:03 -!- Guest25470 has joined.
13:52:50 -!- nooga has joined.
13:57:35 -!- dingbat has joined.
14:00:25 <\oren\> a he x point
14:00:31 <\oren\> hex point
14:03:13 <myname> good point. it's easier in german
14:05:00 -!- nooga has quit (Ping timeout: 276 seconds).
14:07:19 -!- ais523 has joined.
14:07:54 <ais523> anyone here with a 170-column wide Linux fbcon terminal on ctrl-alt-f1?
14:07:58 <ais523> try this: for x in {0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F}0{0,1,3,5,7,8,A,C,E,F}0{0,0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F}0; do printf "\x1b]P1$x\x1b[31m#"; done; printf "\x1b[0m\n"
14:08:07 <ais523> on a clear screen
14:08:12 <ais523> then keep repeating it until the screen scrolls
14:08:20 <ais523> I am not sure if this is a bug or a feature
14:08:32 <ais523> (b_jonas: you in particular might be interested in the results)
14:08:35 -!- Xe has quit (Ping timeout: 250 seconds).
14:09:01 -!- jameseb- has quit (Ping timeout: 250 seconds).
14:09:20 -!- tromp has quit (Read error: Connection reset by peer).
14:09:27 -!- JX7P has quit (Ping timeout: 250 seconds).
14:10:15 -!- tromp has joined.
14:12:29 -!- treaki_ has quit (Ping timeout: 250 seconds).
14:13:47 -!- me2 has quit (Ping timeout: 250 seconds).
14:13:47 -!- catern has quit (Ping timeout: 250 seconds).
14:14:35 -!- IRIXUser has joined.
14:15:00 -!- IRIXUser has changed nick to Guest87521.
14:15:01 -!- jameseb has joined.
14:15:21 <ais523> (you could adapt it to work at other screen sizes too, but that one's based around 170 which is the width of the terminal on my screen)
14:15:54 <b_jonas> ais523: palette cycling?
14:16:03 -!- treaki_ has joined.
14:16:06 <ais523> b_jonas: right, we change the palette every character
14:16:12 <b_jonas> I don't have a linux text console here to try, but I might try at home
14:16:20 <ais523> and this somehow gives us more colours than the linux console can normally display
14:16:44 <ais523> it seems that if you give linux a 256-color or truecolor code, it parses it, then substitutes the nearest 16-color entry
14:17:02 <ais523> and the "nearest" substitution is based on some rule I'm unsure about but it doesn't seem related to the palette
14:17:13 -!- Xe has joined.
14:17:17 <ais523> but, OTOH, you can get arbitrarily many colours by changing the palette, as long as the screen doesn't scroll
14:17:33 <ais523> this feels more like an accidental feature than an intentoinal one
14:20:44 -!- me2 has joined.
14:21:01 <b_jonas> ais523: I don't know if it's accidental, but I like it. this means there are 16 (or so) logical colors, the user is in control of their actual presentation, and if stupid programs that don't like this ask for more colors than that, then the console falls back to a nearby console
14:21:28 <ais523> b_jonas: well the annoying thing for me is
14:21:31 <b_jonas> ais523: that the palette can be controlled by an escape sequence rather than only an ioctl is probably a historical accident too ltae to fix now
14:21:36 <ais523> linux console fallback breaks any attempt to do unparsable-code fallback
14:22:05 <ais523> oh, actually, it's OK
14:22:10 <ais523> linux console can't parse the colon-based codes
14:22:25 <ais523> the semicolon-based codes are dangerous so I don't want to use them without user authorization
14:22:37 <ais523> and it's the semicolon-based codes that break here, just in a different way from normal
14:25:01 -!- catern has joined.
14:26:38 <b_jonas> but THOSE count as "deliberate gameplay changes" and so can't be applied. but if coppro or you change something that deliberately change the gameplay and I complain about it, it's ok
14:26:42 <b_jonas> see why I'm angry
14:26:48 <b_jonas> argh
14:26:50 <b_jonas> wrong channel
14:40:17 -!- lambda-11235 has joined.
14:41:39 -!- bender| has quit (Quit: Leaving).
14:56:43 <b_jonas> Is there something like Defender en-Vec that uses up +1/+1 counters from itself to heal others instead of fade counters?
14:59:13 <b_jonas> Eg. a 0/0 cleric costing WW with "~ comes into play with two +1/+1 creatures. / Remove a +1/+1 counter from ~: prevent the next 1 damage that woudl be dealt to target creature or player this turn."
14:59:44 <ais523> that card is crazily weak :-(
14:59:55 <ais523> there are a ton of cards that can give away +1/+1 counters
15:00:03 <int-e> I guess the xolor code stuff is not supposed to work in a plain xterm
15:00:18 <ais523> which is an improved version of that effect, because the creature gets a power boost and will have more toughness on future turns
15:00:26 <ais523> int-e: the thing I posted won't work in xterm as it uses a different syntax
15:00:33 <ais523> I haven't actually tried this in xterm syntax yet
15:00:37 <b_jonas> ais523: for free at any time as an instant, not just when a creature etb or if you pay mana for it?
15:00:48 <int-e> ais523: sorry, I skipped the "fbcon" part.
15:01:04 <b_jonas> ais523: I can still believe it's weak, but I wonder what creatures you're thinking of.
15:01:13 <ais523> b_jonas: that narrows it down somewhat but there are still probably some
15:01:41 <b_jonas> ais523: Modular creatures in Darksteel give away counters when they die.
15:02:10 <b_jonas> ais523: would it still be weak if it costed 1W ?
15:02:54 <b_jonas> The graft ability gives away counters when the destination creature etb.
15:03:44 <ais523> Mikaeus, the Lunarch can do it with a cost of T
15:07:06 <ais523> salt road quartermasters has a cost of 2G to move the counter (!)
15:07:20 <ais523> that's kind-of ridiculous
15:08:56 <ais523> all the "Spike" creatures can give away counters for a cost of 2, that's what I was thinking originally but I didn't realise there was a mana cost
15:09:21 <ais523> "Remove two +1/+1 counters from Spinal Parasite: Remove a counter from target permanent."
15:09:29 <ais523> nice reverse variant
15:43:39 -!- nvd has changed nick to Taneb.
15:53:13 -!- p34k has joined.
15:58:25 -!- vanila has joined.
16:00:28 -!- MoALTz has quit (Ping timeout: 244 seconds).
16:14:13 -!- J_Arcane has joined.
16:43:00 -!- MoALTz has joined.
16:47:42 -!- hppavilion[2] has joined.
16:54:40 -!- hppavilion[2] has quit (Ping timeout: 252 seconds).
16:59:38 -!- Taneb has changed nick to nitia.
17:00:44 -!- nitia has changed nick to Taneb.
17:00:53 -!- AnotherTest has joined.
17:02:28 <Taneb> `? nitia
17:03:18 <HackEgo> nitia is the inventor of all things. The BBC invented her.
17:03:38 <Taneb> There is a new nitia
17:14:51 -!- hppavilion[2] has joined.
17:19:32 -!- J_Arcane has quit (Ping timeout: 244 seconds).
17:20:39 -!- hppavilion[2] has quit (Ping timeout: 276 seconds).
17:21:20 -!- hppavilion[2] has joined.
17:25:01 -!- J_Arcane has joined.
17:30:45 -!- ais523 has quit (Ping timeout: 246 seconds).
17:35:43 -!- ais523 has joined.
17:39:40 <shachaf> pikhq: whoa whoa whoa, pikhq++
17:53:52 -!- rdococ has joined.
17:56:05 <zgrep> pikhr?
18:09:33 -!- jaboja has joined.
18:16:53 <zgrep> Who was the person here with the weird/interesting font that they were making?
18:17:23 <int-e> \oren\ has a font... I believe there's more than one person now though
18:19:06 <zgrep> Thanks. And, of course, it's not that surprising that an esoteric languages community would have esoteric fonts... :P
18:20:15 <zgrep> \oren\: Out of curiosity, what was / where is your font?
18:20:32 <zgrep> \oren\: Never mind, found it.
18:23:40 -!- MDude has quit (Remote host closed the connection).
18:43:01 -!- hppavilion[2] has quit (Ping timeout: 252 seconds).
18:44:24 -!- hppavilion[2] has joined.
18:53:27 -!- puck1pedia has joined.
18:54:27 -!- impomatic_ has changed nick to impomatic.
18:55:01 -!- Gregor has quit (Ping timeout: 250 seconds).
18:55:07 -!- Gregor has joined.
18:55:53 -!- puckipedia has quit (Ping timeout: 250 seconds).
18:55:53 -!- puck1pedia has changed nick to puckipedia.
18:58:25 <b_jonas> zgrep: \oren\, lifthrasiir, and me
18:58:36 <b_jonas> but \oren\'s is probably the weirdest
19:00:15 -!- feliks has quit (Ping timeout: 268 seconds).
19:00:31 <zgrep> b_jonas: Huh. Good to know.
19:02:05 -!- feliks has joined.
19:15:52 <zgrep> b_jonas: Out of curiosity, what is your font?
19:16:33 -!- llue has joined.
19:16:33 -!- llue has quit (Changing host).
19:16:33 -!- llue has joined.
19:17:40 -!- hppavilion[2] has quit (Ping timeout: 252 seconds).
19:19:48 -!- lleu has quit (Read error: Connection reset by peer).
19:19:53 -!- p34k has quit (Ping timeout: 268 seconds).
19:20:36 -!- b_jonas has quit (Ping timeout: 268 seconds).
19:20:53 -!- b_jonas has joined.
19:28:22 -!- p34k has joined.
19:34:18 -!- hppavilion[2] has joined.
19:34:39 -!- jaboja has quit (Ping timeout: 246 seconds).
19:36:40 -!- lynn has quit (Read error: Connection reset by peer).
19:37:47 -!- lynn has joined.
19:39:26 -!- Phantom_Hoover has joined.
20:20:58 -!- AnotherTest has quit (Quit: ZNC - http://znc.in).
20:22:02 -!- carado has quit (Quit: Leaving).
20:24:50 -!- carado has joined.
20:27:17 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
20:27:29 -!- Phantom_Hoover has joined.
20:30:51 -!- jaboja has joined.
20:39:04 -!- hppavilion[2] has quit (Ping timeout: 252 seconds).
20:42:21 -!- hppavilion[2] has joined.
20:47:52 -!- hppavilion[2] has quit (Ping timeout: 264 seconds).
21:01:40 -!- hppavilion[2] has joined.
21:05:08 <hppavilion[2]> ≟ is "Probably equal to. I hope." now. I demand it.
21:05:41 <shachaf> You need a function from probabilities to code points.
21:32:19 -!- Guest25470 has quit (Ping timeout: 248 seconds).
21:32:47 -!- vanila has quit (Quit: Leaving).
21:35:37 -!- jaboja has quit (Ping timeout: 240 seconds).
21:40:17 -!- ais523 has quit.
21:47:08 -!- Guest87521 has quit (Changing host).
21:47:08 -!- Guest87521 has joined.
21:47:11 -!- Guest87521 has changed nick to JX7P.
21:50:52 -!- hppavilion[2] has quit (Ping timeout: 264 seconds).
21:52:24 -!- boily has joined.
21:53:14 <HackEgo> [wiki] [[PythoLambda]] N https://esolangs.org/w/index.php?oldid=46639 * CodeMaster111 * (+434) Created page with "A language adding one small element to [[Wikipedia:Python (Programming language)|Python]]: You can use the ƛ (lambda) character in place of the Python function <code>lambda</..."
21:54:57 -!- jaboja has joined.
21:58:45 <HackEgo> [wiki] [[PythoLambda]] https://esolangs.org/w/index.php?diff=46640&oldid=46639 * CodeMaster111 * (-12) /* Example syntax */
21:59:06 <boily> `wisdom
21:59:29 <HackEgo> [wiki] [[PythoLambda]] https://esolangs.org/w/index.php?diff=46641&oldid=46640 * CodeMaster111 * (+5)
21:59:30 <HackEgo> tmyk/tmyk the more overfilled your brain gets.
22:01:09 <HackEgo> [wiki] [[LOL CODE]] N https://esolangs.org/w/index.php?oldid=46642 * CodeMaster111 * (+21) Redirected page to [[LOLCODE]]
22:01:27 <boily> not so bad. 24 seconds.
22:08:49 -!- Sgeo__ has joined.
22:09:35 <shachaf> teenage mutant yaoi koalas
22:11:46 <boily> AAAAAAAAURGH!
22:12:01 <boily> hellochaf. you are despicable hth
22:12:27 <shachaf> not a fan of koalas, i take it?
22:14:29 <boily> don't you mangle those innocent koalas!
22:18:55 <shachaf> nitia introduced the initial article
22:19:51 <boily> of course.
22:25:31 -!- nooga has joined.
22:29:04 -!- jaboja has quit (Ping timeout: 260 seconds).
22:32:44 <boily> hellooga.
22:32:54 -!- hppavilion[2] has joined.
22:34:10 <boily> hppavellon[2].
22:36:48 <hppavilion[2]> ahoily
23:19:40 -!- nooga has quit (Ping timeout: 252 seconds).
23:37:15 -!- oerjan has joined.
23:38:28 <oerjan> @messages-
23:38:28 <lambdabot> boily said 12h 43m 1s ago: I AM THE PRETTIEST FROG IN THIS ENTIRE POND!!
23:38:43 <oerjan> boily: i hope that wasn't a reference to anything because if so i've forgotten it.
23:40:48 <oerjan> bah searching in my browser cannot find a combination of <nick> and a following message
23:42:05 <hppavilion[2]> `addquote <boily> I AM THE PRETTIEST FROG IN THIS ENTIRE POND!!
23:42:16 <zgrep> So there *is* a quoting mechanism.
23:42:19 <zgrep> quoteing?
23:42:25 <hppavilion[2]> zgrep: No there isn't
23:42:26 <HackEgo> 1273) <boily> I AM THE PRETTIEST FROG IN THIS ENTIRE POND!!
23:42:40 <hppavilion[2]> zgrep: I just synced up with the guy in charge of HackEgo
23:42:54 <hppavilion[2]> zgrep: It's all an elaborate illusion to troll you
23:42:58 <zgrep> D:
23:43:13 <zgrep> Although, it is all an elaborate illusion to troll me... which must mean...
23:43:18 <zgrep> ...I'm important enough to troll! :D
23:44:51 <oerjan> hppavilion[2]: ok that was his 1 minute of trolling, now move on to victim 31035 hth
23:45:30 <hppavilion[2]> oerjan: Just let me check him off the list
23:45:37 <hppavilion[2]> oerjan: Which one is it... list #AQD?
23:45:50 <hppavilion[2]> Where the # is part of the numbering? (It's base-95)
23:46:24 <oerjan> i cannot remember, it's not a very important list
23:46:41 <hppavilion[2]> oerjan: Agreed
23:47:11 <hppavilion[2]> Let's just ignore it; doesn't matter if we accidentally troll him again, but it's unlikely
23:47:17 <oerjan> yeah
23:47:27 <hppavilion[2]> You know, given that we have 7 trillion more aliens to troll
23:47:39 <hppavilion[2]> The humans altogether are insignificant
23:47:51 <boily> and here I'm quoted again. oh fungot...
23:47:51 <fungot> boily: and the existing forums aren't extremely professional it might work out
23:47:58 <boily> fungot: I know!
23:47:58 <fungot> boily: i guess that's what tokigun has meant... somehow make the popcorn itself...
23:48:31 <boily> fungot: Tokigun-san All Natural Spices Popcorn!
23:48:31 <fungot> boily: i work like 3h a day. probably more feasible for that to be annoying
23:48:47 <boily> fungot: you don't work, you don't think, stop being sentient twh
23:49:24 <hppavilion[2]> BTF
23:49:26 <hppavilion[2]> !!!
23:49:39 <hppavilion[2]> (BURN THE FUNGOT)
23:49:43 <hppavilion[2]> (!!!)
23:50:44 <tswett> All right, heck it. I want to design this fantasy video game console.
23:50:53 <hppavilion[2]> tswett: Which one?
23:50:55 <oerjan> hppavilion[2]: you seem to be slipping up with policy, please recheck the rules https://www.reddit.com/r/CertainlyNotAliens/
23:51:00 <tswett> The one I'm about to design.
23:51:27 <hppavilion[2]> tswett: What's it like?
23:51:33 <tswett> 16-bit words. Less than a megabyte of memory. Runs at something like a million IPS.
23:53:00 <tswett> What could a reduced instruction set look like...
23:53:07 <tswett> A smallish one, I mean.
23:53:43 <hppavilion[2]> I'm just going to... https://www.youtube.com/watch?v=l8kuiXwxKKU... yeah... um... yep.
23:53:48 -!- p34k has quit.
23:53:51 <hppavilion[2]> tswett: Deque-based
23:53:56 <hppavilion[2]> tswett: Instead of array-based
23:54:11 <tswett> ADD, SUB, MUL, LOAD, STORE, MOV, SHR, SHL...
23:54:24 <hppavilion[2]> tswett: BNOR or BAND
23:54:36 <hppavilion[2]> tswett: right-shift AND left-shift? Fancy...
23:54:42 <tswett> You know what, there are a lot of instructions that are simply arithmetic or bit manipulation. I'm going to call those "ALU instructions".
23:54:50 <tswett> And I'm not going to bother listing them.
23:54:52 <hppavilion[2]> OK
23:54:58 <tswett> So apart from those, we've got, like...
23:55:13 <hppavilion[2]> tswett: Is it an esoconsole?
23:55:34 <shachaf> why do you put "eso" in front of everything
23:55:50 <boily> esoshachaf!
23:55:51 <hppavilion[2]> shachaf: To distinguish it from things
23:55:55 <oerjan> shachaf: he's 1/4 spanish hth
23:56:03 <tswett> LOAD, STORE, MOV, JUMP, JUMP-IF.
23:56:06 <tswett> hppavilion[2]: yeah, you could call it that.
23:56:10 <hppavilion[2]> tswett: OK
23:56:15 <tswett> It's not much more esoteric than, say, the GameBoy.
23:56:21 <hppavilion[2]> tswett: Why not SKIPIF, just to make people cry?
23:56:21 <tswett> But it's definitely esoteric compared to the PS4.
23:56:36 <hppavilion[2]> tswett: And while we're at it, no JMP, only CJMP
23:56:47 <tswett> Because I want to give people a decent instruction set.
23:56:49 <hppavilion[2]> Only RELATIVE CJMP
23:56:51 <oerjan> SKIPPY
23:57:00 <hppavilion[2]> oerjan: The peanut butter?
23:57:07 <oerjan> no, the kangaroo
23:57:13 <hppavilion[2]> tswett: Give them INTERCALy names
23:57:17 <oerjan> *+bush
23:57:20 <hppavilion[2]> CLR would be BURN
23:57:40 <tswett> Bitwise Upward Rotation?
23:57:56 <hppavilion[2]> tswett: No, BURN clears a register.
23:58:00 <tswett> Oh, right.
23:58:17 <hppavilion[2]> tswett: WASH clears a segment of registers
23:58:23 <hppavilion[2]> s/registers/memory/
23:59:42 <boily> . o O ( I need to find kangaroo steak... this city has everything comestible on sale somewhere, and then some more. )
2016-03-24
00:00:08 <boily> . o O ( well, except that dretched surströmming. DAMNED EXPORT LAWS! )
00:00:43 <hppavilion[2]> tswett: And, for some reason, waste instruction space with instructions that treat their arguments as two 1-byte numbers (a, b) and have the ALU for it treat it as a+bk
00:00:58 <hppavilion[2]> k^2=0, k != 0
00:01:11 <tswett> So lemme see. I've got: ALU instructions, memory instructions, branching instructions.
00:01:19 <oerjan> hppavilion[2]: SKIPPY would, of course, skip the following python command.
00:01:29 <hppavilion[2]> oerjan: That was my first thought
00:01:46 <hppavilion[2]> tswett: Why not include labels as instructions?
00:02:01 <tswett> That sounds insane.
00:02:09 <hppavilion[2]> tswett: So every JMP must have a corresponding RCV
00:02:09 <tswett> Which is probably the point, isn't it?
00:02:26 <tswett> Not only that, but the RCV must specify where it's coming from.
00:02:37 <hppavilion[2]> tswett: Well duh; I thought that was implied
00:02:57 <hppavilion[2]> tswett: Even better, you have BRIDGE commands, with one argument, that each serve as a JMP to the other BRIDGE with the same argument
00:02:59 <shachaf> Having only certain points that can be jumped to has precedent.
00:03:06 <hppavilion[2]> shachaf: Yes
00:03:32 <hppavilion[2]> tswett: And RBRIDGE takes two arguments, then bridges to the parter, offset by its second argument
00:03:43 <tswett> Bridges to the what?
00:03:58 <hppavilion[2]> tswett: Every BRIDGE command has an argument
00:04:13 <tswett> By "parter" do you mean "partner"?
00:04:15 * int-e read a nice article on cheating in contract bridge last weekend
00:04:17 <hppavilion[2]> Yes
00:04:40 <int-e> But I suspect this is unrelated.
00:04:42 <shachaf> int-e: How do you cheat?
00:04:44 <hppavilion[2]> tswett: And when one is encountered, it's a JMP to the other one with the same argument (if none other exists, it either terminates or restarts the program, not sure which)
00:04:47 <oerjan> boily: just import the ingredients for surströmming, then make it yourself hth
00:05:00 * oerjan suppresses evil cackle
00:05:27 <int-e> shachaf: by communicating through side channels (outside of betting and cards played)
00:05:34 <tswett> Let's say there are 8 registers, and they're all 16 bits. Now, I'm not sure if the instruction pointer should count as one of the registers.
00:05:48 <hppavilion[2]> tswett: No, that would be too easy
00:05:55 <hppavilion[2]> tswett: And defeat the point of BRIDGEs
00:05:57 <tswett> I'm thinking... yes.
00:06:09 <int-e> http://www.newyorker.com/magazine/2016/03/07/the-cheating-problem-in-professional-bridge is the article (Schneier mentioned it in Cryptogram)
00:06:18 <hppavilion[2]> tswett: Will you be able to modify the IP manually?
00:06:22 <tswett> Then you can jump by loading stuff into a register, then MOVing that register to the IP register.
00:06:26 <tswett> Yeah.
00:06:33 <hppavilion[2]> tswett: That seems too common
00:07:11 <b_jonas> tswett: counting the instruction pointer as a register is almost always a bad idea
00:07:17 <tswett> That leaves 7 general-purpose registers.
00:07:21 <hppavilion[2]> tswett: Didn't QUACKVM™ by zzo38® do something like that?
00:07:30 <tswett> b_jonas: why's that?
00:07:38 <hppavilion[2]> tswett: And not a bad idea in an #esoteric way
00:07:51 <hppavilion[2]> tswett: INC %ip
00:08:20 <tswett> Incrementing the instruction pointer... the way I'm imagining it, that would mean "skip the next instruction".
00:08:45 <tswett> The instruction loop would essentially be: fetch the instruction; increment the instruction pointer; execute the instruction.
00:08:47 <hppavilion[2]> tswett: It would
00:08:49 <oerjan> decrementing the instruction pointer
00:08:51 <hppavilion[2]> tswett: DEC %ip
00:08:56 <tswett> There you go.
00:09:09 <hppavilion[2]> tswett: DEC %ip hangs forever, I imagine
00:09:12 <tswett> Yup.
00:09:26 <hppavilion[2]> tswett: The IP-as-a-register thing has been done to death; seriously, try BRIDGE :P
00:09:26 <oerjan> hppavilion[2]: only if all instructions are one byte
00:09:52 <hppavilion[2]> oerjan: Oh, right, I assumed the IP would point to the instruction itself, not the individual byte
00:10:23 <hppavilion[2]> oerjan: But if INC %ip is SKIP, then DEC %ip is hang forever
00:10:50 <hppavilion[2]> oerjan: Assuming INC and DEC work the same way, of course
00:11:09 <hppavilion[2]> oerjan: Though DEC %ip as the first instruction will actually end the program, I believe
00:11:19 <hppavilion[2]> Because integer underflow
00:11:42 <oerjan> or just page fault
00:11:49 <hppavilion[2]> oerjan: Yes, or that
00:12:02 <tswett> Oh right. I figure that each instruction would always be two bytes.
00:12:05 <hppavilion[2]> oerjan: Though page fault ends the program, IIIAG, so...
00:12:10 <oerjan> no, wait
00:12:15 <tswett> So the IP would increase by two each time, not one.
00:12:26 <oerjan> DEC %ip will hang if it's 1 wide
00:12:28 <hppavilion[2]> tswett: Just make it multiply IP by 2 before fetching
00:12:39 <tswett> Now here's a question. How much RAM should there be?
00:12:43 <oerjan> if it's more, you'll go to something inside it
00:12:45 <hppavilion[2]> tswett: That way you can still SKIP with INC %ip
00:12:56 <tswett> hppavilion[2]: but then people won't be able to do odd-aligned instructions!
00:13:10 <hppavilion[2]> tswett: Well that's a stupid thing to do anyway...
00:13:43 <tswett> I definitely think I want to allow odd-aligned instructions. That will (although it will be very difficult, perhaps practically impossible) let a single piece of code mean two different things, depending on the alignment.
00:14:13 <hppavilion[2]> tswett: It's so impossible that it's pointless
00:14:19 <hppavilion[2]> tswett: What's wrong with BRIDGE?
00:14:38 <tswett> I'm not trying to make an esoteric instruction set.
00:15:00 -!- nooga has joined.
00:15:13 <tswett> There are pretty much two RAM options. Have no more than 64 KiB of RAM; or have more than 64 KiB of RAM.
00:15:54 <fizzie> That works for any number.
00:15:56 <tswett> I guess I shouldn't say "RAM"; I should say "memory space".
00:16:00 <hppavilion[2]> OK...
00:16:07 <tswett> Yes, but there's a significant divide between the two buckets.
00:16:40 <tswett> So, let's imagine we go with the 64 kiB of RAM. What can you do with that?
00:16:56 <zgrep> Play a game of battleship?
00:16:57 <fizzie> Anything you could do on a C-64.
00:17:45 <hppavilion[2]> fizzie: Assuming that the IS is C-64 complete, duh
00:18:01 <int-e> tswett: how does that work for quantum computers?
00:18:04 <tswett> Let's suppose the display is 64 by 64 pixels. If you use a luxurious 4 bits per pixel, that means the number of bytes used for a display buffer is...
00:18:10 <fizzie> Well, it was an approximation.
00:18:11 <tswett> > 64 * 64 `div` 2
00:18:13 <lambdabot> 2048
00:18:29 <tswett> 2 kiB. That's not bad at all.
00:18:56 <fizzie> Anything you can actually compute like that sounds remarkably simple for a console graphics mode.
00:19:15 <tswett> What do you mean?
00:19:33 <fizzie> Well, I mean. No character cell sort of thing?
00:19:37 <hppavilion[2]> tswett: With <xsize> * <yzize> `div` <pix/byte>
00:19:59 <int-e> oh tiles, sprites... hmm
00:20:16 <tswett> Right, right.
00:20:21 <int-e> I bet modern consoles just have framebuffers though
00:20:23 <tswett> Yeah, I think the GameBoy used tiles, right?
00:20:31 <hppavilion[2]> tswett: Are you going to have a stack?
00:20:43 <tswett> I like the idea of making the programmer invent a stack.
00:20:45 <hppavilion[2]> (Or a belt?)
00:20:46 <tswett> I mean, it's easy.
00:20:46 <boily> oerjan: that sounds lovely! brilliant!
00:20:52 <int-e> (stupid 3d graphics ;-) )
00:21:08 <hppavilion[2]> tswett: Fair enough
00:21:20 <zgrep> int-e: How does * work for quantum computers? :P
00:21:34 <tswett> Here's an idea. Make it so that RAM is divided into 32 2-kiB "pages", and the program can use any of those pages as the display buffer.
00:21:42 <tswett> Like, you can just say "now I want to display page 17".
00:21:49 <hppavilion[2]> tswett: Are you going to have computed jumps? If so, will they be relative for static?
00:21:58 <tswett> int-e: I didn't understand your quantum computer question, so I ignored it.
00:22:12 <tswett> hppavilion[2]: yes, and I think I'll make all addressing absolute.
00:22:21 <int-e> tswett: it's fine. I just wondered about a meaningful definition of RAM size
00:22:49 <tswett> Now, the benefit of having 64 ki addressable locations is that you can store a memory address in a 16-bit word.
00:22:51 <tswett> Very nice.
00:22:53 <hppavilion[2]> tswett: Why not have a memory pointer head that all memory is accessed relative to?
00:23:03 <hppavilion[2]> Oh wait, that's x86
00:23:20 <tswett> Having something like that isn't out of the question.
00:23:45 <int-e> hppavilion[2]: "segment"
00:23:48 <hppavilion[2]> tswett: I assume you'll have a FLIP instruction that updates the display, as opposed to updating every instruction cycle?
00:23:58 <tswett> Yeah, definitely.
00:23:59 <hppavilion[2]> int-e: That's what I thought, but I just said x86 to avoid looking stupid
00:24:23 <hppavilion[2]> tswett: What are conditionals?
00:24:34 <tswett> Like... conditional branching?
00:24:44 <hppavilion[2]> tswett: Just any sort of conditional code
00:24:50 <tswett> You get "jump if zero" and "jump if not zero" instructions.
00:24:51 <hppavilion[2]> tswett: Conditional branching is /one/ option
00:24:55 <hppavilion[2]> tswett: Oh...
00:25:11 <fizzie> A lot of them have tiles, or even for an addressable-bitmap mode at least a color palette where you have, say (for the C64 standard multicolor mode) "2 bits per pixel", but of the four possible colors one is a global background color, while the other three can be freely selected separately for each 4x8 cell.
00:25:14 <hppavilion[2]> tswett: Why not "Jump if 42" and "Jump if not 42"?
00:25:41 <fizzie> (And then for how much memory a graphics buffer takes you need to start counting the bitmap and attributes separately.)
00:26:05 <tswett> hppavilion[2]: that's a good question.
00:26:10 <hppavilion[2]> tswett: Good.
00:26:46 <hppavilion[2]> tswett: Why not put a minimized call/cc in the set as a builtin? For... some reason? Somehow?
00:27:17 <hppavilion[2]> call/cc/if
00:27:18 <tswett> That's called "push all registers, change the stack pointer, and pop into all registers".
00:27:25 <hppavilion[2]> tswett: Oh
00:27:39 <hppavilion[2]> tswett: And... you don't have a stack, so...
00:27:47 <hppavilion[2]> Wait, all registers or all memory?
00:27:50 <tswett> There's nothing that's "the stack". You can have a stack.
00:28:01 <hppavilion[2]> tswett: Yes, that's what I menat
00:28:03 <hppavilion[2]> *meant
00:28:11 <tswett> All registers. Pushing all memory would mean inserting all memory into memory.
00:28:19 <hppavilion[2]> tswett: Ah, yes. Right.
00:28:55 <hppavilion[2]> tswett: Figure out something new & exciting for conditionals, whynot.
00:29:01 <tswett> Lemme be a little conservative here. The address space is 64 KiB, but you only get 8 KiB of general-purpose RAM, including the video buffer.
00:29:21 <hppavilion[2]> tswett: What's the other 56 KiB for?
00:29:26 <tswett> I dunno.
00:29:34 <int-e> a huge part of it will be ROM
00:29:39 <tswett> Yup.
00:29:40 <hppavilion[2]> int-e: Ah, yes. ROM.
00:29:42 <tswett> Lemme think about the speed.
00:29:55 <int-e> maybe some memory mapped IO for good measure
00:30:24 <hppavilion[2]> Esoteric conditionals... like... "Call this program with the accumulator set to this other value"
00:30:27 <tswett> I want it to be just fast enough that you can touch every pixel several times per frame.
00:30:34 <hppavilion[2]> tswett: Beat THAT, x86
00:30:34 <int-e> and of course you need some free address space for future extensions
00:31:10 <hppavilion[2]> Or, instead of the accumulator, mem[0]
00:31:14 <tswett> Here's an idea for an esoteric conditional. There are no goto statements at all; the program counter just loops through all of memory. You do "conditionals" by loading code in front of the program counter.
00:31:56 <hppavilion[2]> tswett: Eeeeeew?
00:32:15 <tswett> So, video memory is about 2,000 bytes, and you'll want to touch it about 20 times per second, meaning 40,000 bytes per second of... stuff in order to touch it all once per frame.
00:32:28 <boily> hppavilion[2]: classic trampoline. nothing to worry about. much.
00:33:04 <tswett> About 200,000 instructions per second sounds like a pretty decent amount.
00:33:26 <hppavilion[2]> RSS n "restart the program with acc=n, lak=curline"
00:33:34 <int-e> tswett: which is why old consoles pretty much *needed* tiles and the like (you want to do other things besides drawing stuff as well)
00:33:42 <tswett> Right.
00:34:47 <tswett> Now, I don't think I can get away with having an audio buffer.
00:35:02 <hppavilion[2]> tswett: You're going to need controllers, too
00:35:45 <tswett> Audio uses about 40,000 samples per second. You can use fewer, if you want everything to sound muffled.
00:35:51 <int-e> tswett: just have 3 square wave generators or so :P
00:36:24 <tswett> There's nothing stopping me from having sine wave generators instead.
00:36:26 <tswett> Or whatever.
00:36:29 <tswett> FFT sound generation!
00:36:36 <fizzie> BytePusher has an audio buffer. Granted, it's pretty fast.
00:37:18 <fizzie> (Then again, it's an OISC.)
00:37:26 <tswett> Wait, FFT sound generation might actually be a good idea.
00:38:20 <hppavilion[2]> tswett: FFT?
00:38:32 <tswett> Fast Fourier transform.
00:38:38 <hppavilion[2]> Free Fourier Transform?
00:38:45 <hppavilion[2]> Oh, fast
00:38:47 <fizzie> If by that you mean "write a magnitude spectrogram", it'd at least be different. Calling it a good idea might be pushing it.
00:38:57 <int-e> FFT is a highly popular implementation of the discrete fourier transformation.
00:39:01 <tswett> Lemme think about this.
00:39:48 <tswett> Let's imagine if you had a frame that's 1 second long and contains 40,000 samples.
00:40:12 <tswett> Each sample represents, uh, 25 microseconds.
00:40:37 <hppavilion[2]> tswett: Wikipedia says the DFT uses complex numbers
00:40:45 <hppavilion[2]> So if you want to use that for audio- whooooooa
00:40:47 <tswett> It sure does.
00:41:21 <tswett> Now, the discrete Fourier transform of that frame buffer thing there...
00:41:34 <fizzie> It's possible to make up a "plausible" phase with pretty little loss of generality.
00:41:37 <hppavilion[2]> tswett: What do you think complex sound is like?
00:41:52 <int-e> hppavilion[2]: check out https://en.wikipedia.org/wiki/Discrete_cosine_transform
00:41:57 * hppavilion[2] is not, as a matter of fact, stoned right now
00:41:59 <tswett> hppavilion[2]: note that the Fourier transform is already super commonplace in audio progressing.
00:42:04 <tswett> s/progressing/processing/
00:42:43 <tswett> Each complex number represents (if I may fuzz things a bit) the amplitude and phase of a bit of wave.
00:42:52 <int-e> tswett: okay, how do you shift a 150ms second sample inside the 1s frame? even worse, what if it spans two frames?
00:43:27 <tswett> I'm not actually going to have a 1 second frame; I'm just trying to figure out what the numbers here are gonna be.
00:43:27 <int-e> and just for the sake of dropping a buzzword I don't really understand, why not use wavelets ...
00:44:06 <int-e> tswett: regardless, shifting samples around may be an issue.
00:44:08 <hppavilion[2]> tswett: Thou shalt not fuzz things
00:44:10 <hppavilion[2]> Not even a bit
00:44:12 <hppavilion[2]> - God
00:44:38 * boily fuzzes hppavilion[2] with his mapole
00:44:54 <tswett> I think after DFT, it's gonna be... still 40,000 samples, I guess, but now each sample, instead of representing 25 microseconds, represents 1 hertz.
00:45:38 <tswett> For reasons, the second half of that is going to be the mirror image of the first half, so you can just forget about it and use 20,000 numbers instead of 40,000.
00:45:39 <tswett> But...
00:45:48 <tswett> They're complex numbers instead of real numbers, making them effectively 40,000 again.
00:45:50 <int-e> `? hertz
00:46:02 <HackEgo> hertz? ¯\(°​_o)/¯
00:46:06 <oerjan> <hppavilion[2]> tswett: Eeeeeew? <-- https://esolangs.org/wiki/SMITH
00:46:12 <fizzie> No, it's 20001 complex numbers, with a little bit of redundancy for the first and last. IIRC.
00:46:20 <hppavilion[2]> oerjan: EEEEEEEEEEEEEEEEEEEEEEW!
00:46:23 <tswett> I was wondering.
00:46:34 <fizzie> I wouldn't build a system where the code is expected to fill in the full complex FFT of whatever signal is going to come out of it. But something where the code is expected to create a magnitude spectrogram (or in other words, produce an Y-sample magnitude spectrum X times/second) might be borderline plausible.
00:46:44 <hppavilion[2]> tswett: I do that occasionally, too
00:46:48 <fizzie> (The conversion would need to be a little bit more involved than just taking the FFT.)
00:47:06 <tswett> Right, because the FFT doesn't reduce the number of numbers you're dealing with.
00:47:10 <tswett> It's still about 40,000 a second.
00:47:39 <fizzie> More to the point, it'd be very difficult to make a continuous waveform with that thing.
00:48:10 <fizzie> You'd have a discontinuity at every frame boundary, unless your audio-generating code was very very careful with the phases.
00:48:46 <tswett> Right.
00:49:11 <tswett> Yeah, lemme see here.
00:49:19 <tswett> Like... what if you want to have a 40.5 Hz wave?
00:49:51 <int-e> > 40000 / round (40000/40.5)
00:49:52 <lambdabot> No instance for (Show a0)
00:49:53 <lambdabot> arising from a use of ‘show_M467247251696577848318660’
00:49:53 <lambdabot> The type variable ‘a0’ is ambiguous
00:50:26 <tswett> You don't have one of those, you only have 40 Hz and 41 Hz... and all the others. And you can make a 40.5 Hz wave out of that, but you'll need to keep changing the phases.
00:50:47 <int-e> > 40000 / fromIntegral (round (40000/40.5))
00:50:49 <lambdabot> 40.48582995951417
00:51:03 <tswett> All right, let's forget about audio for the time being.
00:51:15 <fizzie> Even for a continuous 41 Hz tune, you'll have to set the phase component "correctly" for every output frame.
00:53:45 <tswett> fizzie: how do you figure?
00:54:18 <tswett> One of the Fourier transform sample things is going to correspond to exactly 41 Hz.
00:54:27 <tswett> No phase difference from one second to the next.
00:57:42 <tswett> So where was I? 64 kiB address space, 8 kiB of RAM. 200,000 instructions per second. 64x64 pixel display, 4 bits per pixel, use whatever palette you want.
00:58:00 <oerjan> `learn hertz (German for heart) is an SI unit equal to the frequency of an average heartbeat.
00:58:03 <HackEgo> Learned 'hertz': hertz (German for heart) is an SI unit equal to the frequency of an average heartbeat.
00:59:15 <tswett> No no, the German for "heart" is "Hörte".
01:01:28 <myname> lol
01:03:20 <int-e> Mr. dswedd made a joke.
01:04:33 <oerjan> i know, although shockingly the spelling _is_ a teeny bit off.
01:05:16 <boily> that pun hertz.
01:06:52 -!- jaboja has joined.
01:06:58 <int-e> megahurtz
01:07:07 <tswett> Next question is, I guess, how much space should be provided for long-term storage?
01:07:19 <int-e> (the Schlock mercenerary webcomic used that term somewhere, I believe)
01:07:27 <int-e> tswett: for what?
01:08:09 <tswett> For "cartridges" (ROM storing program code and static data) and "savegames" (read-write memory for persistent stuff).
01:09:04 <int-e> wasn't this supposed to be esoteric
01:09:16 <tswett> No.
01:09:35 <fizzie> int-e: They had also kill-o-huertz.
01:09:45 <fizzie> int-e: http://www.schlockmercenary.com/2000-08-06
01:10:01 <int-e> pity, you could add some write only memory and some read once memory
01:10:18 <int-e> (unbuffered DRAM? hmmmmm)
01:12:31 <boily> is it possible to have unbuffered ram?
01:12:36 <int-e> oh, only two occurrences? http://www.schlockmercenary.com/2001-01-28
01:12:44 <fizzie> Also right, you could have individual sine wave components. And if you had it fully imaginary, they'd even all hit 0 right at the edges of the frame, so you could adjust their amplitudes between frames.
01:12:50 <fizzie> Still, for style/speciality points I'd go with something where you paint a magnitude STFT only, and then use something like http://dx.doi.org/10.1109/TASSP.1984.1164317 to synthesize the audio, because then you don't need to be careful at all, and can pretty much just finger-paint spectra. Including (assuming a suitably rapid framerate) dropping sampled "images" wherever and thus ...
01:12:56 <fizzie> ... pitch/time-shifting them however you please.
01:13:37 <int-e> boily: well, it's a bit hard to use because somebody needs to put the data back into the rows (since reading destroys them) and manually refresh them as well...
01:13:45 <fizzie> And the second one doesn't even mention the SI prefixes like kill-o.
01:13:50 * oerjan machte einen Wordspiel mit "Hertz". Es brachte Boily vielen Schmerz.
01:13:57 <int-e> boily: speaking of DRAM. SRAM is a different matter entirely
01:14:21 <int-e> oerjan: "Wordspiel" sounds like a Microsoft joke to me.
01:14:55 <int-e> and I guess "grosser Schmerz" is more natural than "viel Schmerz"
01:15:43 -!- hppavilion[2] has quit (Ping timeout: 252 seconds).
01:15:51 <int-e> oerjan: Anyway I can't decide whether the 'd' in "Word" was intentional.
01:16:44 <oerjan> dammit
01:17:13 <oerjan> *t
01:17:29 * oerjan beats Muphry with the saucepan ===\__/
01:18:08 <myname> good old muphry
01:18:45 * oerjan should probably have just used google translate.
01:18:47 <fizzie> Fun fact: Z80 has a DRAM refresh register, R. It's an 8-bit register, where the low 7 bits are automagically incremented after every instruction fetch, and its value is sent as the low 7 bits of the address bus (with the RFSH line asserted) during one part of the machine cycle.
01:18:51 <fizzie> The intention being that you can hook up some DRAM without providing any (or at least much) extra refresh circuitry.
01:19:50 <mad> I guess that makes sense on ram that doesn't have faster CAS access than the whole RAS/CAS thing `D
01:19:51 <mad> :D
01:20:02 <mad> ie "almost static" ram
01:20:15 <int-e> low clock frequency
01:20:50 <mad> right
01:20:51 <tswett> I'm gonna be generous and say that for a cartridge, you get a whopping 256 kiB of storage. And that's just the one—your game can span multiple cartridges.
01:20:56 <mad> the limit is something like 3mhz
01:21:04 <myname> oerjan: you didn't?
01:21:07 <tswett> But switching between cartridges takes 2 seconds, and the screen can't update while this is happening.
01:21:28 <mad> int-e : it makes sense in an NMOS chip
01:22:04 <mad> which are so slow that you can share like half the cycles for the CPU other half for the GPU
01:22:12 <tswett> As for savegames: You get a super generous 16 MiB. But it's byte-at-a-time sequential access.
01:22:12 <mad> and the CPU isn't even throttled
01:22:16 <oerjan> int-e: "grossen", surely? (großen?)
01:22:17 <mad> (see: C64)
01:22:23 <mad> (see: apple2)
01:22:30 <myname> großen
01:22:38 <oerjan> also, why is it impossible to select single words in the GT result :(
01:22:44 <int-e> oerjan: in your context, yes.
01:22:51 <tswett> And I said 200,000 instructions per second?
01:22:53 <myname> Es brachte ihm großen Schmerz/große Schmerzen
01:23:14 <tswett> So simply reading the entire tape, and discarding everything you read, would take more than a minute.
01:23:18 <oerjan> myname: no i cobbled it together with wiktionary and memory.
01:23:40 <myname> that sounds stupidly complicated
01:23:45 <fizzie> It shouldn't be impossible to select single words; it's not for me. Though the click-to-show-alternatives UI makes it slightly harder than necessary.
01:23:46 <int-e> oerjan: (note that I changed both "Schmerz" examples to nominative case)
01:24:01 <tswett> What sounds stupidly complicated?
01:24:37 <myname> translating stuff by looking up seoerate words on wiktionary
01:24:41 <fizzie> Also! I had somehow gotten the impression that `thanks was just another silly #esoteric thing, but then QC description used it today.
01:24:43 <myname> seperate even
01:24:52 <fizzie> `thanks entropy
01:24:54 <HackEgo> Thanks, entropy. Thentropy.
01:25:04 <fizzie> Even with the exact same logic. So I guess it's a Thing.
01:25:04 -!- nooga has quit (Ping timeout: 252 seconds).
01:26:08 <tswett> I'm gonna be a little bit merciful here. I'm gonna say that the tape has a beginning and an end, and you can always instantly jump to the beginning (but not to the end).
01:27:06 <tswett> So there's no "I only want to use the first eight bytes of the tape but I'm currently on byte number 8,258,986, so bear with me while I seek to the beginning."
01:27:09 <oerjan> myname: well i was of course trying to do _better_ than GT. with GT's inability to get the inflection of groß right, i'll call it even.
01:27:53 <fizzie> tswett: Press play on tape.
01:28:20 <tswett> I'm also gonna say that you can do a "start seek" operation and then do other stuff while you're waiting.
01:28:44 <tswett> fizzie: crap, I might be too young to get that reference.
01:29:07 <oerjan> no wait, "viel". with "groß" it chose the plural, which was correct but breaks the rhyme.
01:29:41 <oerjan> (on the other hand, "ein" is wrong.)
01:30:07 <int-e> . o O ( "Heinrich, der Wagen bricht!" -- "Nein, Herr, der Wagen nicht, es ist ein Band von meinem Herzen, das da lag in großen Schmerzen, als Ihr in dem Brunnen saßt, als Ihr eine Fretsche wast." )
01:30:27 <mad> why are german plurals so complex
01:31:16 <oerjan> fizzie: `thanks is inspired by Look Around You
01:31:50 <oerjan> specifically, `thanks ants
01:31:53 <int-e> `thanks ants
01:31:53 <HackEgo> Thanks, ants. Thants.
01:32:04 <tswett> `ls bin/ble*
01:32:05 <HackEgo> ls: cannot access bin/ble*: No such file or directory
01:32:06 <fizzie> `thanks oerjan
01:32:06 <HackEgo> Thanks, oerjan. Thoerjan.
01:32:13 <fizzie> (It was hard to Google for.)
01:32:37 <fizzie> Also I should've known that, I've seen that bit.
01:32:58 <oerjan> fizzie: all my attempts at clicking to select single words select the whole thing immediately.
01:34:22 <fizzie> Weird. Dragging works for me.
01:36:47 <boily> down with plurals!
01:36:58 <int-e> `thanks whistle
01:36:59 <HackEgo> Thanks, whistle. Thistle.
01:37:16 <tswett> `thanks thanks
01:37:16 <HackEgo> Thanks, thanks. Thanks.
01:38:10 <fizzie> `thanks Hanks
01:38:11 <HackEgo> Thanks, Hanks. Thanks.
01:38:19 <tswett> `thanks NO2
01:38:19 <HackEgo> Thanks, NO2. ThO2.
01:38:31 <tswett> Thorium dioxide.
01:39:02 <boily> “Thorium dioxide is used as a stabilizer in tungsten electrodes in TIG welding, electron tubes, and aircraft engines.” ← nice.
01:40:17 <fizzie> `thanks bat
01:40:19 <HackEgo> Thanks, bat. That.
01:40:25 <fizzie> That bat.
01:41:06 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
01:41:22 <boily> `thanks bcdfghjkl
01:41:22 <HackEgo> Thanks, bcdfghjkl. Tcdfghjkl.
01:41:35 <boily> no. I'm not recording myself saying that.
01:42:57 <oerjan> int-e: so basically, no one is sure what "Fretsche" means, right?
01:43:11 <int-e> oerjan: it's a frog
01:43:26 <tswett> `thanks schmaltz
01:43:26 <HackEgo> Thanks, schmaltz. Thaltz.
01:43:43 <tswett> `thanks bcdfghjklmno
01:43:44 <HackEgo> Thanks, bcdfghjklmno. Tho.
01:43:59 <oerjan> `thanks Mgrvgrvladje
01:44:00 <HackEgo> Thanks, Mgrvgrvladje. Thadje.
01:44:03 <int-e> oerjan: clear from context (it's from the frog prince story)
01:44:25 <int-e> the Grimm version, to be more precise
01:45:00 <oerjan> int-e: https://de.wikipedia.org/wiki/Der_Froschk%C3%B6nig_oder_der_eiserne_Heinrich#Bedeutung_des_Wortes_.E2.80.9EFretsche.E2.80.9C
01:45:22 -!- lambda-11235 has quit (Read error: Connection reset by peer).
01:45:41 * boily georgianically thwacks oerjan ”NO! I HATE THAT WORD! AAAAAAAARGH!”
01:46:14 <fizzie> `thanks chicken
01:46:16 <HackEgo> Thanks, chicken. Thicken.
01:46:25 <boily> `thanks fizzie
01:46:26 <HackEgo> Thanks, fizzie. Thizzie.
01:46:33 <int-e> `thanks mink
01:46:33 <HackEgo> Thanks, mink. Think.
01:46:46 <boily> always thanks your inner chicken. it does spiritual good.
01:47:10 -!- int-e has left ("HERETIC CHICKEN").
01:47:10 -!- int-e has joined.
01:48:13 <int-e> oerjan: thanks for the link... so yeah apparently people must make things complicated ;)
01:48:25 <tswett> Darn, the rules given at Wikipedia for English phonotactics don't allow arbitrarily long onsets.
01:48:56 <tswett> So I can't have a word like "spspspsplot".
01:49:13 <oerjan> shshshshshocking
01:49:20 <mad> is it possible to have more than s+consonant+y/w/l/r in english?
01:49:25 <mad> in the onset
01:49:39 <tswett> I don't think so.
01:49:49 <mad> or sh+consonant+y/w/l/r if you admit yiddish loans
01:50:00 <oerjan> loans shmoans
01:50:16 <tswett> Oh yeah, I heard the word "shprig" (schprig?) on TV once.
01:50:19 <tswett> Lemme see if the rules allow arbitrarily long codas.
01:51:21 <oerjan> `? k
01:51:25 <HackEgo> K K K Ken
01:52:16 <tswett> Yup. The rules don't prohibit "eefsfsfsfs".
01:52:20 * int-e tsks ;-)
01:52:28 <tswett> Nor "twelfths".
01:52:38 <tswett> Though people tend to pronounce that as "twelfs".
01:52:45 <int-e> "thwart" is another nice one
01:53:02 <boily> "strengths" :D
01:53:34 <tswett> And as for "sixths"...
01:53:50 <int-e> wtf is "sphragistic"
01:53:54 <fizzie> `thanks chump
01:53:55 <HackEgo> Thanks, chump. Thump.
01:55:11 -!- boily has quit (Quit: ALREADY CHICKEN).
02:00:39 <oerjan> why did the chicken kill the channel
02:02:12 <int-e> it got between the chicken and the road
02:09:34 -!- lynn has quit (Ping timeout: 260 seconds).
02:12:40 -!- lambda-11235 has joined.
02:14:17 -!- hppavilion[2] has joined.
02:18:59 -!- lambda-11235 has quit (Max SendQ exceeded).
02:19:45 <\oren\> apparently other people don't pronounce xylophone with a 'ks' in the onsey
02:19:52 <\oren\> *onset
02:20:30 <tswett> Yeah, "x" at the beginning of a word is usually /z/.
02:20:35 * deltab nods
02:20:38 <tswett> Which is weird.
02:20:56 <zgrep> Most languages are weird.
02:21:01 <tswett> Yup.
02:21:02 <\oren\> but my english previously contained a lot worse spelling-pronounciations
02:21:11 <zgrep> (be they spoken or programmed)
02:21:15 <tswett> Let's see, is Spanish weird?
02:21:22 <tswett> It has two different copulas. That's weird.
02:21:22 <\oren\> due to learning to read before I could talk
02:21:58 <mad> spanish is within the european norm in weirdness
02:22:05 <\oren\> psychic with a p, for example, which I kept doing till I was in university
02:22:32 <mad> maybe spanish is a little bit less weird than the european norm
02:22:35 <mad> due to lack of case
02:22:49 <mad> and nominal declensions being relatively sane
02:22:50 <tswett> How many modern Romance languages do have case?
02:23:10 <mad> romanian sorta has case-ish
02:23:11 <\oren\> french has remnants iirc
02:23:20 <mad> \oren\ : like what?
02:25:52 <\oren\> yah the pronouns
02:26:14 <mad> eh
02:26:29 <mad> the pronouns are essentially bound clitics to the verb
02:26:34 <oerjan> lots of languages have remnants in the pronouns, including english.
02:26:43 <oerjan> (and norwegian.)
02:26:51 <mad> when they're not bound to the verb, pronouns have no case whatsoever in french
02:27:08 <mad> moi, je veux (moi = nominative?)
02:27:21 <mad> regarde moi (moi = accusative?)
02:28:13 <mad> il le donne à moi (moi = dative?)
02:28:17 <oerjan> romance languages have more verb forms than germanic ones, though.
02:28:47 <mad> ça vient de moi (moi = ablative?)
02:29:45 <mad> you can analyse bound verb pronouns for case except that's also sorta wrong
02:30:21 <\oren\> oerjan: does that include German itself?
02:30:46 <oerjan> \oren\: i think so. romance have even added new verb forms that latin didn't have.
02:30:48 <mad> french is more like languages where verbs have markers for not only subject but also object and other arguments
02:31:00 <oerjan> (although dropped some, too)
02:31:03 <mad> and the markers for objects etc aren't always the same as those for subjects
02:31:09 <mad> these languages do not have case
02:31:43 <mad> english is a much better example of remanent case
02:31:49 <mad> due to 's
02:32:18 <mad> and also you could make a much better case for I/he/she being nominative
02:32:31 <mad> because they're not bound to the verb
02:32:39 <oerjan> \oren\: german has subjunctive and person suffixes, but other than that is about the same as norwegian.
02:32:48 <\oren\> mad: well I once had the idea of reanalyzing English such that the forms of "I" are I, me, my, I'm, and I'll
02:32:50 <oerjan> and english has the progressive which neither has.
02:33:51 <mad> I/me is totally true
02:34:02 <mad> but the other ones have arguments against them
02:34:14 <\oren\> effectively the tense is partially markd by a form of the subject
02:34:30 <oerjan> \oren\: you need I'd too
02:34:35 <mad> \oren\ : that CAN happen actually
02:34:41 <tswett> How come French doesn't have the present progressive? Did it just get lost at some point?
02:34:45 <mad> some west african languages have exactly that :D
02:34:57 <mad> tswett : french does have a present progressive
02:35:05 <mad> "je suis en train de venir"
02:35:50 <mad> it's just that the threshold for selecting the present progressive over the ordinary present is a lot higher in french
02:36:04 <tswett> "Suis en train de venir" is quite the verb form.
02:36:04 <mad> basically you're stressing the fact that the action is progressive
02:36:21 -!- lambda-11235 has joined.
02:36:58 <tswett> Though English has some fun verb forms as well, depending on how loosely you're willing to interpret the phrase "verb form".
02:37:10 <tswett> "(that he) were to have been going to change"
02:37:21 <\oren\> I'mma gonna be writing
02:37:25 <mad> the one thing that modern french doesn't have is the difference between perfective and perfect
02:37:33 <mad> "I came" vs "I've come"
02:37:46 <mad> Both are "Je suis venu"
02:38:00 <tswett> Not j'ai something?
02:38:08 <tswett> What's "he came"?
02:38:17 <mad> "J'ai" is not perfective :D
02:38:24 <mad> "Il est venu"
02:38:44 <mad> wait, no
02:38:55 <mad> "J'ai X" is used for perfective
02:39:06 <mad> but not with reflective verbs
02:39:20 <tswett> What's a reflective verb?
02:39:24 <oerjan> french has the same thing as german, where some verbs use j'ai and some use je suis, no?
02:39:26 <mad> and not with sorta reflective verbs, which include "venir" in french
02:39:50 <oerjan> (ich habe / ich bin)
02:40:18 <mad> tswett : a lot of verbs are used with the same agent as subject and object in french
02:40:36 <mad> English : "I shave"
02:40:39 <tswett> Is that the same thing as a reflexive verb?
02:40:44 <mad> French : "Je me rase"
02:40:49 <mad> (I shave myself)
02:40:58 <mad> you cannot say "Je rase" in french
02:40:59 <oerjan> (norwegian can always use "har", although sometimes "er" is also possible)
02:41:14 <tswett> Yeah, in Spanish, if you say "ducho", literally "I shower", you're failing to specify who it is that you're showering.
02:41:45 <mad> reflective verbs use the verb "être" as auxillary instead of "avoir"
02:41:48 <oerjan> reflective verbs don't use "er", but passive once can.
02:41:51 <oerjan> *ones
02:41:53 <mad> "Je me suis rasé"
02:42:17 <oerjan> "Jeg har barbert meg" is the same thing as that french
02:42:19 <mad> actually english sorta has this but only for passives
02:42:24 <mad> "I was shaved"
02:42:35 <mad> uses "to be" instead of "to have" as an auxillary
02:42:43 <tswett> "El agua está hirviendo." The water is boiling? What is the water boiling, exactly?
02:42:58 <oerjan> and no:kommet = fr:venu can use "er".
02:43:23 <tswett> Actually that might be an incorrect example.
02:43:43 <mad> some verbs can be either normal or reflective with no change in meaning
02:43:53 <mad> "la porte ouvre" / "la porte s'ouvre"
02:45:02 <mad> in french there's a category of intransitive verbs that sorta act like reflective verbs by using "être" as an auxiliary for perfective
02:45:12 <mad> "je suis tombé" etc
02:46:12 <mad> it's kinda similar to the category of verbs where the subject is the agent in transitive form, it the subject is the patient is the object in intransitive form. English has that sort of verb as well: "I burn books" "I burn"
02:47:11 <tswett> Hey, another question.
02:47:53 <tswett> If something's a "16 bit architecture", would you expect the CPU to be able to multiply any two 16-bit words, giving you a 32-bit result?
02:48:18 <tswett> Or would you expect the result to be truncated to the least significant 16 bits?
02:48:34 <mad> tswett: x86 went the 16x16->32 way
02:48:46 <mad> so it's a valid thing
02:48:49 <mad> however
02:50:14 <\oren\> I would not necessarily expect it to have a MUL instruction
02:50:56 <\oren\> but assuming it does, it would probably be 16,16->32
02:51:07 <mad> 68000 has a 16x16->32 multiply as well
02:51:08 <mad> well
02:51:10 <mad> actually 2
02:51:20 <mad> because there's mulu and muls (unsigned and signed)
02:51:29 <mad> but 68000 is a borderline 32bit arch
02:52:27 <mad> also 68k mul is really slow if I remember correctly
02:52:47 <mad> Other 16bit architectures have no multiplication!!!
02:52:57 <\oren\> did the 8080 or Z80 have an 8,8->16 mul instruction?
02:53:04 <mad> ha ha no
02:53:08 <\oren\> I know 6502 doesn't
02:53:22 <mad> the z80 version of multiplication is "buy a better cpu"
02:53:42 <mad> the 65816 version of multiply on snes is done by writing to an external hardware device!
02:54:03 <\oren\> various nes games have multiply subroutines, sometimes buggy
02:54:24 <mad> the sound cpu on the snes is 8bit and has multiplication
02:54:35 <mad> 8x8->16 I *think*
02:54:55 <\oren\> lol, write to the sound sub system to multiply
02:55:13 <tswett> Add, subtract, multiply, divide, modulo. All the arithmetic operations a boy could ever want.
02:56:44 <mad> \oren\ : there's a snes motherboard device for that actually
02:57:42 <mad> 16bit cpus tend to have lots of grody operations mixing bit depth
02:58:00 <mad> 16x16->32 multiply is a perfect example of grody operation mixing bit depth :D
02:58:27 <\oren\> 8086 seems to have 8,16->16 and 8,8->16 but not 16,16->16
02:59:58 <mad> x86 multiply is more like
03:00:26 <tswett> I'm not bothering to describe separate instructions for AND, OR, NAND, NOR, XOR, blah blah blah.
03:00:28 <mad> 32x32->64 but totally ignore the top 32bits so in practice 32x32->32 because of how C++ works
03:00:32 <tswett> I'm just having one instruction called "logic".
03:00:46 -!- hppavilion[2] has quit (Ping timeout: 252 seconds).
03:01:03 <mad> so it's like 32x32 multiply writes to two registers which complicates register allocation in compilers
03:01:05 <tswett> It's either OR or XOR, depending on a flag. There are two flags for inverting the inputs, and one for inverting the output.
03:01:16 <\oren\> tswett: you can describe 6502 in that manner
03:01:21 <tswett> Wait, I just realized something.
03:01:40 <tswett> With four flags, you can just put an entire truth table in the opcode.
03:01:42 <tswett> So...
03:02:06 <tswett> 0001 is AND, 0111 is OR, 1110 is NAND, 1000 is NOR, 0110 is XOR, and so forth.
03:02:28 <\oren\> 6502 has a group of instructions where 3 of the bits tell you the operaiton and 3 tell you the address mode
03:02:45 <mad> \oren\ : x86 sortof has that
03:02:46 <mad> ish
03:03:23 -!- hppavilion[2] has joined.
03:05:01 <pikhq> x86 has that only with bizarro special cases everywhere.
03:05:11 <pikhq> Because hard instruction encoding is great.
03:05:20 <mad> well
03:05:28 <mad> x86 was designed for the 286
03:05:39 <pikhq> 88086, actually.
03:05:55 <mad> when your memory bus is limited and you have no instruction cache
03:06:07 <mad> it doesn't matter if your instruction takes 5 cycles to execute
03:06:24 <mad> because the next opcode isn't coming before that anyways
03:06:45 <mad> so crunching as much operations in as little space as possible makes sense in that setting
03:07:36 <\oren\> tswett: you cna use the entries that are useless (like 0000, 1100, 1010, 1111) for things like add and sub where it isn't a truth table.
03:07:41 <mad> 8086, 286 and 386 all easily starve the instruction stream
03:08:38 <tswett> \oren\: that's an interesting idea.
03:08:44 <pikhq> Less easily for 386 systems that had an external cache.
03:08:53 <tswett> I think 1111 isn't actually useless, though.
03:09:08 <tswett> There's currently no other way to set a register to -1 using only one instruction.
03:10:14 <tswett> Also, 1100 and 1010 are what you'd use for NOT.
03:10:59 <\oren\> what about 0011?
03:11:23 <tswett> Useless. That's NOP.
03:11:26 <tswett> And 0101 is MOV.
03:11:28 <mad> 0011, 0101, 1100, 1010, 0000, 1111 are like... not too useless
03:11:31 <mad> well
03:11:34 <tswett> Wait, wait.
03:11:37 <pikhq> NOP is certainly useful.
03:11:40 <mad> no they are useless
03:11:41 <pikhq> :)
03:11:45 <tswett> I can get rid of MOV, actually, and just use 0101.
03:11:58 <\oren\> mad: they're useful for nopslides
03:12:06 <tswett> Come to think of it, I don't really have another NOP, either.
03:12:14 <tswett> Okay, lemme see what I've got.
03:12:16 <mad> 0001, 0010, 0100, 1000, 1110, 1101, 1011, 0111, 0110, 1001 are the useful ones
03:12:39 <mad> if your right side is an immediate then a lot of those are equivalent
03:12:43 <tswett> 0000: sets a register to 0. But I also have two other ways of doing that: reg := reg - reg and reg := reg mod reg.
03:13:03 <mad> then you only really need 0001, 0100, 1110, 1011, 0110
03:13:56 <\oren\> but an immediate usually is larger than a register operand
03:14:18 <tswett> So far I only have two instructions accepting immediates.
03:14:23 <tswett> Load lower immediate, load upper immediate.
03:14:25 <mad> \oren\ : yes, which is why some cpus implement 0001, 0010, 1110, 0110
03:14:42 <mad> and, andnot, or, xor
03:15:25 <tswett> Man, I didn't expect to be able to do pretty much all of ALU, plus NOP and MOV, using just seven "instructions".
03:27:48 <tswett> Now, how easy should "load the lower byte of this register into the upper byte of that register" be?
03:27:56 <tswett> Because currently, the process is...
03:29:08 <tswett> Copy the source register to a temporary register. Shift the temporary register left by 8. Clear the lower byte of the target register. Bitwise OR the temporary register into the target register.
03:29:23 <hppavilion[2]> Hello
03:30:40 <tswett> I think now, for instructions, all I need is memory access stuff, and then the stranger ones.
03:31:32 <hppavilion[2]> tswett: Oooh, what are the strange ones?
03:31:38 <hppavilion[2]> Z++ machine, anyone?
03:32:09 <tswett> RENDER: Render a frame. MAP: Map some ROM into one of the two ROM blocks. TAPESEEK: This one's a doozy.
03:32:15 <tswett> So...
03:33:21 <tswett> TAPESEEK means "seek the tape the specified number of bytes in the specified direction, optionally reading from or writing to the tape along the way, and optionally waiting for the seek to finish before proceeding".
03:34:01 -!- XorSwap has joined.
03:35:31 <hppavilion[2]> tswett: RNDR
03:35:45 <hppavilion[2]> tswett: Can I get a brief architecture overview for what I've missed?
03:36:17 <tswett> https://docs.google.com/document/d/11tncxhSD3MIjNQItRqacYCzE9g4U-kGVHzgADlx4BIg/edit?usp=sharing
03:36:22 <tswett> There ye go.
03:36:27 <hppavilion[2]> Thank you.
03:37:35 <tswett> So I guess there are gonna be two flags and two registers which are all write-only: the tape read flag, the tape write flag, the tape count register, and the tape destination register.
03:37:55 <tswett> Every clock cycle, what the tape unit does is...
03:38:39 <tswett> Oh, one more flag. The direction flag.
03:38:48 <tswett> Actually, call that the reverse flag.
03:39:51 <hppavilion[2]> tswett: Oooh, full bitwise logic instruction. I like.
03:40:01 <tswett> If the read flag is true, copy from the tape head to the memory pointed to by the destination register. If the write flag is true, do the other way around. If the counter is 0, clear the read and write flags. Otherwise, subtract 1 from the counter, and move the tape head and the destination register both forward if the reverse flag is false, backward if it's true.
03:41:20 <hppavilion[2]> tswett: I see nothing about a tape
03:41:28 <tswett> I haven't written that part yet.
03:41:30 <tswett> There's a tape.
03:41:46 <tswett> I figure it'll have, like, 16 MiB of storage.
03:42:34 <tswett> Which, given the speed of this thing (200,000 instructions per second, was it?), is so much storage that it will take more than a minute just to move from one end to the other.
03:42:48 <tswett> Except there's the TAPERESET instruction, which instantly puts you back at position 0.
03:43:15 <tswett> This means you're at one end of the tape; there's no position -1.
03:44:11 <tswett> I need to sleep. Night, everyone.
03:45:52 -!- hppavilion[2] has quit (Ping timeout: 252 seconds).
04:23:52 -!- treaki__ has joined.
04:25:29 -!- treaki_ has quit (Ping timeout: 260 seconds).
04:31:25 -!- zzo38 has joined.
04:32:08 <\oren\> what is the fastest method to find the smallest power of 2 larger than x?
04:33:12 <\oren\> i'm currently using p=1;while(p<x)p*=2;
04:36:23 <\oren\> would pow(2,log(x)+1); be faster, even if x is an int?
04:36:48 <\oren\> er, i guess that log should be log2 or something.
04:37:10 <\oren\> bah, I'll just test it
04:37:39 <mad> if(x < 65536) if(x < 256) if(x < 16) if(x < 4) if(x < 2) if (x < 1) return -1; else return 0; else if(x < 8) return 2; else return 3; else if(x < 64) if(x < 32) return 5; else return 6; else if(x < 128) return 7; else return 8; else if(x < 4096) if (x < 1024) if (x < 512) return 9; else return 10; else if (x < 2048) return 11; else return 12;
04:37:58 <mad> else if(x < 16777216)
04:38:02 <mad> etc ad nauseum
04:38:24 <mad> though it would probably generate a lot of branch prediction faults so probably not so great
04:38:37 <mad> hmm
04:40:53 <mad> r=0; if(x >= 65536) r+=16, x>>=16; if(x >= 256) r+=8, x>>=8; if(x >= 16) r+=4, x>>=4; if(x >= 16) r+=4, x>>=4; if(x >= 4) r+=2, x>>=2; if(x >= 2) r+=1, x>>=1; if(x == 0) r=-1;
04:41:13 <mad> getting there
04:42:55 <mad> static const signed char resTb[256] = {0,1,2,2,4,4,4,4,8,8,8,8,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,
04:43:02 <\oren\> argh, the i/o dominates, and if I remove it gcc just blanks my whole program
04:43:12 <mad> 64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,
04:43:34 <mad> 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,
04:43:38 <mad> 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128};
04:43:51 -!- copumpkin has quit (Read error: Connection reset by peer).
04:45:08 <mad> int shift=0; if(x >= 65536) shift += 16, x<<=16; if(x >= 256) shift += 8, x<<=8; return resTb[x] << shift;
04:45:23 <mad> warning: x must be unsigned or else you get page faults on negatives
04:45:45 -!- copumpkin has joined.
04:46:36 <\oren\> mad: I'm using this on the size of a buffer to see if I should resize it
04:47:10 <\oren\> so if it's negative, I've got... problems
04:49:18 <\oren\> also, that table can be simplified using gcc's [4...7]=4 syntax for array literals
04:49:50 <mad> \oren\ : is that weird C99 stuff that only compiles in gcc?
04:50:54 <mad> " This extension is not implemented in GNU C++. "
04:51:00 <\oren\> nah, it's just a gnu extension
04:51:06 <mad> it doesn't even compile in gcc if it's a .cpp
04:51:16 <\oren\> lol, really? hahaha
04:52:10 <\oren\> probably because of having to call the initializer the right number of times
04:53:08 <mad> if it doesn't compile in .cpp in msvc and llvm, it's dead to me
04:56:29 <lifthrasiir> \oren\: x|=x>>1; x|=x>>2; x|=x>>4; x|=x>>8; x|=x>>16; x|=x>>32; ++x;
04:57:01 <lifthrasiir> just to be sure that all alternatives are listed
04:57:14 <\oren\> ok, pow(log2()) is out, because gcc apparently generates CALL instructions even with every possible optimization
04:57:19 <lifthrasiir> (in reality, I believe mad's LUT code would be probably fastest)
04:57:34 <oerjan> \oren\: gcc has special functions __builtin_clz etc. that are optimized
04:57:43 <oerjan> (count leading zeros)
04:58:28 <oerjan> see http://stackoverflow.com/questions/2589096/find-most-significant-bit-left-most-that-is-set-in-a-bit-array
04:59:10 -!- jaboja has quit (Remote host closed the connection).
04:59:15 <oerjan> (as in, they use underlying special assembly if available)
04:59:19 <zzo38> You could use such thing as #ifdef if require to be use even without GNU
04:59:54 <zzo38> However I use the GNU extensions; sone features are possible in GNU89 mode such as zero-length arrays and empty structures and typeof and so on
05:00:14 <lifthrasiir> oerjan: ah, indeed, LZCNT came with POPCNT
05:03:18 <\oren\> hmm 1<<(32-__builtin_clz(x))
05:03:33 <zzo38> ?messages-loud
05:03:33 <lambdabot> vanila said 1d 16h 8m 9s ago: i cant load your gopher :(
05:04:21 <\oren\> nice! no calls and no jumps!
05:05:22 <\oren\> ok, that's what I'll use
05:07:27 <\oren\> I wonder what the bsrl instruction actually does?
05:08:11 <oerjan> \oren\: there were some comments on stack overflow that its speed depends a lot on chip versions - some do a microcode loop internally.
05:08:52 <oerjan> although hopefully gcc knows what to choose..
05:09:27 <\oren\> with all the bullshit they do to my code under optimization, they'd better be worth the hassle
05:12:29 <\oren\> in particular, unit tests are annoying to do when they remove code that has no side effects
05:14:19 <\oren\> maybe I *want* it to run a loop over every 32 bit number and tell me just how long it took, eh?
05:20:10 -!- XorSwap has quit (Quit: Leaving).
05:27:54 -!- hppavilion[2] has joined.
05:29:34 <zzo38> Possibly to specify volatile
05:33:15 -!- lambda-11235 has quit (Quit: Bye).
05:57:59 <HackEgo> [wiki] [[A:;]] https://esolangs.org/w/index.php?diff=46643&oldid=46638 * 27.33.99.249 * (+4) added link to deadfish from deadfish interp
06:14:54 -!- idris-bot has quit (Ping timeout: 248 seconds).
06:17:07 -!- Melvar has quit (Ping timeout: 248 seconds).
06:22:24 <lifthrasiir> A:; sounds like the finite-state automaton, isn't it?
06:23:30 <lifthrasiir> wait, it should be PDA instead*
06:28:47 <oerjan> *doesn't it
06:29:51 <oerjan> you don't use "isn't it" unless "is" is the original verb (which may be auxiliary.)
06:30:28 <shachaf> oerjan: clearly that was shorthand for "isn't it so?" hth
06:31:02 <lifthrasiir> oerjan: good catch. composing a sentence with an arbitrary lookahead is a bit hard.
06:31:28 <lifthrasiir> (forgot to fix the matching verb when the original verb was changed)
06:31:35 <oerjan> aha
06:33:57 <oerjan> i have that problem when the irc lines get too long to show in the input
06:34:14 <oerjan> *the input line
06:34:22 <oerjan> yep, totally an example.
06:34:41 * oerjan is frequently tempted to whack his own head.
06:37:28 -!- hppavilion[2] has quit (Ping timeout: 252 seconds).
07:03:31 <Taneb> Goood morning
07:19:11 -!- AnotherTest has joined.
07:24:21 -!- AnotherTest has quit (Ping timeout: 276 seconds).
07:32:21 <oerjan> mörnïng
08:07:21 <lifthrasiir> rnømıng
08:07:38 <izabera> hi satan
08:11:37 <oerjan> `? canary
08:11:41 -!- lynn has joined.
08:12:24 <HackEgo> ​*tsjørp*
08:19:28 -!- oerjan has quit (Quit: Nite).
08:31:35 -!- nooga has joined.
08:50:54 <izabera> https://imgur.com/gallery/4nSm8pw
08:51:16 <izabera> and they call *that* parenting done right?
08:51:22 <izabera> BLUE CROSS WTF
08:52:04 -!- rodgort has quit (Ping timeout: 264 seconds).
09:01:21 -!- mroman has joined.
09:01:24 <mroman> fniard
09:01:29 <mroman> fungot: hello there
09:01:30 <fungot> mroman: spineless tagless g-machine, fnord machine, i would think" to " ' foo" just as " :print". was apparently added to vi for quick-hit editing and on remote systems.
09:45:07 -!- nooga has quit (Ping timeout: 248 seconds).
09:54:30 -!- rodgort has joined.
09:54:40 -!- nooga has joined.
10:06:46 <fizzie> "You spineless, tagless g-machine" is a good insult.
10:07:01 <fizzie> fungot: What's your spine like?
10:07:01 <fungot> fizzie: i like books :) i know better than i had to take.
10:10:07 <fizzie> fungot: What's the last book you've read, then?
10:10:07 <fungot> fizzie: eval ( display ' hello) and ( " utils.ss" " walmart") are in lieksa currently. sorry.
10:10:23 <fizzie> Best book.
10:10:41 <myname> i like how the parantheses match
10:20:45 -!- rodgort has quit (Read error: Connection reset by peer).
10:22:58 -!- boily has joined.
10:26:33 -!- nooga has quit (Ping timeout: 240 seconds).
10:26:58 -!- AnotherTest has joined.
10:29:47 -!- nooga has joined.
10:32:06 -!- rodgort has joined.
11:07:47 -!- Yurume has quit (Ping timeout: 248 seconds).
11:09:05 -!- Yurume has joined.
11:13:51 -!- zadock has joined.
11:22:13 -!- boily has quit (Quit: BOOKED CHICKEN).
12:08:54 -!- Melvar has joined.
12:14:19 -!- Elronnd has quit (Quit: Let's jump!).
12:18:09 -!- nooga has quit (Ping timeout: 276 seconds).
12:22:05 -!- Elronnd has joined.
12:26:40 -!- Elronnd has quit (Quit: Let's jump!).
12:26:53 -!- Elronnd has joined.
12:31:40 -!- Sgeo__ has quit (Ping timeout: 252 seconds).
12:44:36 -!- benderpc_ has joined.
12:59:20 -!- benderpc_ has changed nick to bender|.
13:01:36 -!- zadock has quit (Quit: Leaving).
13:32:35 -!- lynn_ has joined.
13:33:28 -!- lynn has quit (Ping timeout: 264 seconds).
13:34:34 <mroman> fungot: Would you ban fracking?
13:34:34 <fungot> mroman: the next thing?
13:34:40 <mroman> fungot: yeah, fracking the next thing.
13:34:41 <fungot> mroman: wanna fork io to use st style? or what about 1-?
13:42:33 -!- gde33|2 has quit.
13:49:10 -!- J_Arcane has quit (Ping timeout: 244 seconds).
14:04:15 -!- llue has quit (Quit: That's what she said).
14:05:18 -!- lambda-11235 has joined.
14:06:31 -!- mroman has quit (Quit: Lost terminal).
14:57:10 -!- lambda-11235 has quit (Quit: Bye).
15:04:34 -!- ais523 has joined.
15:04:55 <ais523> this is getting ridiculous: https://api.left-pad.io/?str=test&len=12&ch=%22
15:05:03 <ais523> I am insanely angry about this on about three dimensions at once
15:07:44 <myname> ais523: https://github.com/jsayol/leftpad-sdk
15:09:07 -!- puck1pedia has joined.
15:09:07 <tromp_> i couldn't resist commenting in https://news.ycombinator.com/item?id=11350651
15:09:25 <ais523> I've informed the author
15:09:30 <int-e> wait... I can sort of understand that it trips on ", but why is it trying to parse its own broken json?
15:09:50 <ais523> int-e: as far as I can tell it's literally substituting the URL parameters into a string, then interpreting the resulting string as json
15:10:01 -!- bender| has quit (Ping timeout: 240 seconds).
15:11:40 -!- Effilry has joined.
15:11:47 <ais523> it's doing something along the lines of (this is Perl, but it's probably written in a different language) «my $json = qq/{str:"$str", len:$len, ch:"$ch"}/; my $args = JSON->decode_json $json;»
15:11:57 <ais523> err, not ->
15:12:01 <ais523> it's doing something along the lines of (this is Perl, but it's probably written in a different language) «my $json = qq/{str:"$str", len:$len, ch:"$ch"}/; my $args = JSON::decode_json $json;»
15:12:57 <ais523> how can you screw up something so simple?
15:13:14 -!- b_jonas has quit (*.net *.split).
15:13:14 -!- puckipedia has quit (*.net *.split).
15:13:14 -!- FireFly has quit (*.net *.split).
15:13:14 -!- izabera has quit (*.net *.split).
15:13:14 -!- vyv has quit (*.net *.split).
15:13:15 <int-e> anyway, this is thedailywtf material
15:13:15 -!- puck1pedia has changed nick to puckipedia.
15:13:52 <int-e> how can you rely on a remote string padding service?!
15:14:41 <tromp_> it's all a joke
15:16:29 <ais523> it was clearly designed as a joke, but I'm still offended at how badly it's written
15:16:43 <int-e> is it? https://github.com/azer/left-pad/issues/4 doesn't sound like it's all a joke.
15:17:17 -!- gde33 has joined.
15:17:17 <int-e> (Of course there's hope that the left-pad.io site is a joke.)
15:18:59 -!- Effilry has changed nick to FireFly.
15:20:08 <myname> i bet there will be people using leftpad-sdk
15:25:25 -!- izabera has joined.
15:29:39 -!- b_jonas has joined.
15:29:39 -!- vyv has joined.
15:32:46 -!- sewilton has quit (Ping timeout: 248 seconds).
15:34:07 -!- sewilton has joined.
15:57:24 -!- MoALTz_ has joined.
16:00:55 -!- MoALTz has quit (Ping timeout: 244 seconds).
16:07:33 -!- lynn_ has changed nick to lynn.
16:09:33 -!- me2 has quit (Ping timeout: 240 seconds).
16:09:52 -!- me2 has joined.
16:22:11 -!- idris-bot has joined.
16:25:37 -!- hppavilion[2] has joined.
16:25:41 <hppavilion[2]> tswett: Here's something that'd be useful for Quendle libraries
16:26:05 <hppavilion[2]> tswett: If every table had a global "properties" set of strings that could be given values to denote that that table meets certain properties
16:27:19 <hppavilion[2]> Though that doesn't work optimally...
16:45:13 -!- hppavilion[2] has quit (Ping timeout: 252 seconds).
16:56:58 <izabera> https://twitter.com/internetofshit/status/711926515366100993
16:57:50 -!- hppavilion[2] has joined.
16:58:51 -!- MoALTz_ has changed nick to MoALTz.
17:06:25 -!- spiette has joined.
17:13:43 -!- gde33 has quit.
17:14:59 -!- spiette has quit (Quit: :qa!).
17:17:08 -!- lambda-11235 has joined.
17:21:52 -!- spiette has joined.
17:26:04 -!- nooga has joined.
17:44:37 -!- hppavilion[2] has quit (Ping timeout: 252 seconds).
18:00:03 -!- gde33 has joined.
18:01:31 -!- gde33|2 has joined.
18:04:25 -!- gde33 has quit (Ping timeout: 240 seconds).
18:29:50 -!- earendel has quit (Ping timeout: 248 seconds).
18:30:42 -!- hppavilion[2] has joined.
18:31:55 <hppavilion[2]> tswett: Hi?
18:33:57 <zzo38> https://allthetropes.org/wiki/User:Zzo38/level20.tex It says "Where's LNF again?" but what does "LNF" mean? Do you know?
18:38:23 -!- hppavilion[2] has changed nick to hppavilion[1].
18:45:20 -!- lynn_ has joined.
18:46:04 -!- lynn has quit (Disconnected by services).
18:46:07 -!- lynn_ has changed nick to lynn.
18:50:18 -!- spiette has quit (Ping timeout: 268 seconds).
18:53:24 -!- lynn_ has joined.
18:53:24 -!- lynn has quit (Disconnected by services).
18:53:28 -!- lynn_ has changed nick to lynn.
19:02:31 -!- spiette has joined.
19:03:44 -!- spiette has quit (Max SendQ exceeded).
19:04:35 -!- spiette has joined.
19:25:54 -!- vyv has quit (Quit: leaving).
19:34:47 -!- Phantom_Hoover has joined.
19:43:21 -!- jaboja has joined.
19:57:50 -!- spiette has quit (Ping timeout: 248 seconds).
20:12:43 -!- spiette has joined.
20:12:55 -!- spiette has quit (Remote host closed the connection).
20:19:56 -!- lynn_ has joined.
20:22:51 -!- lynn has quit (Ping timeout: 246 seconds).
20:24:25 -!- lynn_ has quit (Ping timeout: 240 seconds).
20:24:28 <int-e> zzo38: took some digging but "lost and found" seems to be a good guess
20:24:41 <int-e> and... oh no, what happened to tvtropes?
20:32:37 <HackEgo> [wiki] [[Special:Log/newusers]] create * Captainpicard98 * New user account
20:32:42 <int-e> Ah apparently this has been going on for 3 years now, I'm so slow to notice...
20:35:16 <shachaf> zzo38: Lambda Normal Form
20:35:40 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
20:35:59 <shachaf> zzo38: The name "Iuckqlwviv Kjugobe" is difficult to pronounce and also to type and remember.
20:36:04 <HackEgo> [wiki] [[Alphabetti spaghetti]] https://esolangs.org/w/index.php?diff=46644&oldid=42980 * Captainpicard98 * (+183) Added that there is a interpreter written in C on GitHub
20:36:23 <shachaf> Have you considered a simpler name like "Aaron"?
20:39:56 <b_jonas> shachaf: hard to pronounce for you maybe, but to their species it may be normal. see http://stickman.qntm.org/comics.php?n=178
20:40:27 <shachaf> b_jonas: I think you need tentacles to pronounce it properly.
20:41:35 <b_jonas> or telepathy maybe
20:52:46 <tswett> \oren\: you're looking for the fastest method to find the smallest power of 2 larger than x?
20:53:37 -!- hppavilion[1] has joined.
20:56:29 <tswett> Hmm. I was thinking you could do something with, like, x & -x or whatever it was, but I don't think that'll work.
20:56:41 <int-e> x |= x >> 1; x |= x >> 2; x |= x >> 4; x |= x >> 8; x |= x >> 16; x |= x >> 32; x += 1;
20:57:02 <tswett> > 40 .&. -40 :: Int
20:57:03 <lambdabot> Precedence parsing error
20:57:03 <lambdabot> cannot mix ‘.&.’ [infixl 7] and prefix `-' [infixl 6] in the same in...
20:57:09 <tswett> > 40 .&. (-40) :: Int
20:57:11 <lambdabot> 8
20:57:15 <int-e> the x & -x gives you the lsb
20:57:19 <tswett> Right.
20:57:33 <tswett> > map (\x -> x .&. (-x)) [1..] :: [Int]
20:57:34 <lambdabot> [1,2,1,4,1,2,1,8,1,2,1,4,1,2,1,16,1,2,1,4,1,2,1,8,1,2,1,4,1,2,1,32,1,2,1,4,1...
20:58:59 <int-e> the |= >> thing is a bit longwinded...
20:59:16 <int-e> (and depends on the word size, I did it for 64 bits)
21:12:30 -!- hppavilion[1] has quit (Ping timeout: 244 seconds).
21:15:52 <shachaf> copumpkin: can you confirm http://www.bloombergview.com/articles/2016-02-05/bridgewater-s-bosses-are-fighting-over-something
21:18:01 -!- lambda-11235 has quit (Quit: Bye).
21:18:19 <zzo38> shachaf: Yes it is difficult, although it doesn't matter, it is supposed to be strange like that and some people pronounce it differently, although yes it would be the telepathy of course can also you can know what it is. About tvtropes, it is that there was some problems so some people forked it and made All The Tropes which is better in my opinion.
21:18:53 <shachaf> zzo38: I think the last sentence was addressed to int-e?
21:19:13 <zzo38> Yes, that is correct
21:19:20 <zzo38> (Sorry I forgot)
21:20:46 -!- AnotherTest has quit (Ping timeout: 268 seconds).
21:24:42 <int-e> Yeah, I figured it out; they started doing odd things to the license in November 2013 and now it's having visible effects: the site looks like they're just monetizing the remains but without a community.
21:25:11 <int-e> (or perhaps they have a community but I'm not going to look... the layout makes my head hurt)
21:25:55 <zzo38> All The Tropes is also based on MediaWiki which is a better wiki system, and also on MediaWiki you can have user CSS so you can change the layout if you do not like it, anyways
21:26:54 <shachaf> Why is MediaWiki a better wiki system?
21:27:13 <zzo38> It does have problems, but it seems to be better than whatever tvtropes uses
21:27:28 <Phantom_Hoover> shachaf, no camelcase links for a start
21:44:43 -!- b_jonas has quit (*.net *.split).
21:44:51 -!- jaboja has quit (Ping timeout: 250 seconds).
21:47:22 -!- jaboja has joined.
22:00:39 -!- b_jonas has joined.
22:02:43 -!- lynn_ has joined.
22:07:26 -!- jaboja has quit (Ping timeout: 248 seconds).
22:08:34 -!- impomatic has quit (Read error: Connection reset by peer).
22:10:49 -!- Sgeo__ has joined.
22:22:10 <izabera> there's a grammar here http://pubs.opengroup.org/onlinepubs/9699919799/utilities/chmod.html and i could be wrong but i think it allows this: chmod =
22:22:14 <izabera> is that correct?
22:28:57 <ais523> izabera: my chmod(1) allows "chmod = filename" as an input
22:29:01 <ais523> and sets the mode to 000, it seems
22:29:16 <izabera> yeah i just tried
22:29:37 <zzo38> I think I read in some book that mode 000 is used for the file to indicate the last login time?
22:29:56 <izabera> uh what?
22:29:58 <int-e> hmm, that's a bug? "If perm is not specified, the '=' operation shall make no further modifications to the file mode bits."
22:30:10 <int-e> (my chmod clears all bits as well)
22:30:20 <zzo38> (I seem to have no such file on my computer though)
22:31:12 <int-e> Ah, "further" refers to clearing all bits... fine.
22:31:15 <int-e> confusing, but fine.
22:32:10 <izabera> thanks int-e
22:32:13 <izabera> and ais523
22:32:16 <izabera> and zzo38
22:41:11 -!- hppavilion[1] has joined.
22:41:13 <hppavilion[1]> I had a partially-esoteric language idea about 5 minutes ago
22:41:34 <hppavilion[1]> I'm calling it CASM (pronounced like "chasm") right now
22:41:59 <hppavilion[1]> It is, basically, C with no type system
22:42:05 <hppavilion[1]> But it still has types
22:42:08 <hppavilion[1]> Basically, ASM typing
22:45:20 <izabera> you're confused/confusing
22:52:23 <coppro> hppavilion[1]: isn't that just C
22:55:17 <hppavilion[1]> coppro: Nope
22:55:33 <hppavilion[1]> izabera: You'll see in a bit
22:59:54 -!- jaboja has joined.
23:00:45 <HackEgo> [wiki] [[CASM]] N https://esolangs.org/w/index.php?oldid=46645 * Hppavilion1 * (+2933) Created Page
23:01:03 <HackEgo> [wiki] [[CASM]] M https://esolangs.org/w/index.php?diff=46646&oldid=46645 * Hppavilion1 * (+0) Formatting Glitch
23:01:29 <HackEgo> [wiki] [[CASM]] M https://esolangs.org/w/index.php?diff=46647&oldid=46646 * Hppavilion1 * (+1) Formatting Reglitch
23:01:38 <hppavilion[1]> izabera: There
23:02:14 <HackEgo> [wiki] [[CASM]] M https://esolangs.org/w/index.php?diff=46648&oldid=46647 * Hppavilion1 * (+2) unrelated formatting glitch
23:03:09 <HackEgo> [wiki] [[CASM]] https://esolangs.org/w/index.php?diff=46649&oldid=46648 * Hppavilion1 * (-4) /* How does THAT work? */ code
23:03:48 <coppro> hmm
23:03:52 <coppro> idea
23:03:53 <izabera> what does that have to do with assembly?
23:04:04 <hppavilion[1]> izabera: Assembly works in a similar way to CASM
23:04:05 <coppro> an exception based programming language
23:04:06 <coppro> for instance
23:04:14 <coppro> i = 3 but if j = 2 then actually i = 4
23:04:32 <hppavilion[1]> izabera: Assembly doesn't have a type system, you just deal with the values in registers
23:05:13 <hppavilion[1]> izabera: Which is what makes assemblies a pain in the ass to implement in anything WITH a type system- you have to find a library to store floats and ints and nats in the same format so you can bitwise convert between them
23:05:42 <izabera> dude that's javascript
23:05:46 <hppavilion[1]> izabera: By that I mean, you deal with values in registers by telling it what type to /treat/ them as, not letting it read them as a type
23:06:06 <hppavilion[1]> izabera: Try 5+9.2 in JS. It gives you 14.2
23:06:22 <hppavilion[1]> izabera: CASM gives you some illogical value I now have to calculate
23:06:42 <izabera> you're nonsensical and not interesting
23:06:51 <hppavilion[1]> izabera: I find it interesting
23:08:18 <hppavilion[1]> izabera: Huh, when treated as a float 5+9.2 is still 9.2
23:08:25 <hppavilion[1]> Should've seen that coming, based on how floats work
23:08:40 <hppavilion[1]> Wait, no...
23:08:56 <hppavilion[1]> Yeah, I see why now
23:09:06 <hppavilion[1]> The mantissa is 0, I think
23:09:32 <hppavilion[1]> izabera: Did you read the article?
23:09:40 <hppavilion[1]> izabera: Because if you don't, you won't understand
23:09:50 <hppavilion[1]> izabera: (Though knowing me, if you do, you still might not understand)
23:10:07 <hppavilion[1]> i[+:int,float]f;
23:10:10 <hppavilion[1]> ^ Code
23:25:04 -!- oerjan has joined.
23:42:36 <b_jonas> oh man
23:42:36 -!- jaboja has quit (Ping timeout: 276 seconds).
23:45:02 -!- jaboja has joined.
23:45:12 -!- boily has joined.
23:45:27 <oerjan> bood frily
23:46:06 <oerjan> wait, maybe that needs an extra "good"
23:46:38 <shachaf> @time oerjan
23:46:39 <lambdabot> Local time for oerjan is Fri Mar 25 00:46:38 2016
23:46:42 <shachaf> @time boily
23:46:50 <olsner> oerjan: good? are you sure?
23:47:16 <lambdabot> Local time for boily is Thu, 24 Mar 2016 19:47:06 -0400
23:47:38 <olsner> poor boily doesn't have friday yet
23:48:31 <oerjan> olsner: it's the technical term in english
23:48:54 <boily> hellørjan, hellochaf, hellolsner!
23:48:58 -!- impomatic_ has changed nick to impomatic.
23:49:04 <boily> I'm at September 2012.
23:49:12 <oerjan> wat
23:49:22 <shachaf> poor boily
23:49:24 <olsner> what are you doing all the way back there?
23:49:40 <shachaf> you must be tired of all the us election news
23:50:35 -!- jaboja has quit (Ping timeout: 244 seconds).
23:51:07 <boily> oerjan: GG binge! :D
23:51:39 <boily> election news are quite filtered up here.
23:52:27 * oerjan currently gets all his news from wikipedia's front page.
23:52:48 <oerjan> it's surprisingly free of us elections.
23:53:06 <oerjan> although niger got its president reelected.
23:53:15 -!- asie has quit (Ping timeout: 264 seconds).
23:53:50 <olsner> huh, just learnt of a new country from the wikipedia front page, "Benin"
23:54:56 <olsner> they also elected a president
23:54:57 -!- asie has joined.
23:55:24 <shachaf> oerjan: all i see is a list of languages
23:56:18 <oerjan> shachaf: ERM
23:56:28 <oerjan> *english wikipedia
23:56:38 <oerjan> stupid pedants
23:57:16 <shachaf> who are you calling stupid
23:57:25 <oerjan> the pedants hth
2016-03-25
00:03:45 <boily> `wisdom
00:04:19 <HackEgo> abstract nonsense/We would have an explanation of abstract nonsense here, but it fled into a diagram and we haven't been able to chase it.
00:05:15 <int-e> hmm
00:05:46 <int-e> we got lost while chasing it?
00:06:09 <oerjan> int-e: it's more that diagram is very very complicated
00:06:14 <oerjan> *+the
00:06:29 <oerjan> we need an abstract machete to get close
00:06:39 <int-e> I still don't see how that's stopping us from starting to chase it.
00:07:02 <int-e> `? gordonian diagram
00:07:06 <oerjan> stupid pedants
00:07:09 <HackEgo> gordonian diagram? ¯\(°​_o)/¯
00:07:24 <int-e> oerjan: takes one to know one
00:07:48 <oerjan> int-e: itym "gordian" hth
00:07:55 <int-e> as I said.
00:08:05 <int-e> (you're right, of course)
00:08:15 <oerjan> IT IS A RUSE
00:08:23 -!- jaboja has joined.
00:08:31 <oerjan> (admiral ackbar, darths & droids version)
00:08:42 <int-e> Mah, I just don't know my Greek mythology very well.
00:08:47 <int-e> s/Mah/Nah/
00:09:05 <oerjan> it's a bit of a labyrinth
00:09:21 <int-e> quick, think of a minotaur pun...
00:11:57 <int-e> HAHA. "If for some reason you don’t receive this email, please be sure to check your spam folder."
00:11:57 <oerjan> `le/rn_append abstract nonsense/We will try again once we find an abstract machete.
00:12:14 <HackEgo> Learned 'abstract nonsense': We would have an explanation of abstract nonsense here, but it fled into a diagram and we haven't been able to chase it. We will try again once we find an abstract machete.
00:15:04 * oerjan doesn't think he has a spam folder, and hopes no one's ever got caught in the filter.
00:15:42 <int-e> (it's funny because the email was kind of important...)
00:16:02 <olsner> int-e: was that in the actual email?
00:16:19 <shachaf> oerjan: that should say "Relearned" tdnh
00:16:44 <oerjan> shachaf: hm. it's redundant with *append, though.
00:17:10 <oerjan> `le/rn_append quasitesting/Hi.
00:17:18 <int-e> olsner: yes!
00:17:18 <boily> int-e: don't think of a minotaur pun. don't think of, at, or about puns. hth.
00:17:19 <HackEgo> Can't open wisdom/quasitesting: No such file or directory. \ Learned 'quasitesting': Hi.
00:17:26 <olsner> int-e: haha, wow
00:18:00 <oerjan> `? quasitesting
00:18:02 <HackEgo> Hi.
00:18:05 <oerjan> hmph
00:18:14 <oerjan> `forget quasitesting
00:18:16 <HackEgo> Forget what?
00:18:32 <oerjan> `forget quasitesting
00:18:33 <HackEgo> rm: cannot remove `wisdom/quasitesting': No such file or directory \ Forget what?
00:21:37 <hppavilion[1]> oerjan: Remember? "Forget what?" is a joke?
00:21:42 -!- p34k has joined.
00:22:15 <oerjan> hppavilion[1]: are you confused about something
00:22:29 <hppavilion[1]> oerjan: You `forgot quasitesting twice
00:22:45 <oerjan> yes, i wanted to see if it gave an error if there was nothing.
00:22:51 <hppavilion[1]> oerjan: Oh, OK
00:23:05 <olsner> it should silence rm so that its own error message is more visible
00:23:18 <oerjan> olsner: ER...
00:23:30 <olsner> or the message that is not an error at all
00:23:30 <olsner> nm
00:24:33 -!- jaboja has quit (Ping timeout: 240 seconds).
00:24:49 <oerjan> `learn nm means "no minotaur" hth
00:24:51 <HackEgo> Learned 'nm': nm means "no minotaur" hth
00:25:03 <oerjan> speedy
00:25:14 <hppavilion[1]> `? speedy gonzales
00:25:15 <HackEgo> speedy gonzales? ¯\(°​_o)/¯
00:25:22 <hppavilion[1]> I probably spelled it wrong
00:25:48 <oerjan> not that i know.
00:25:51 <olsner> could just be that there is no wisdom to be found there
00:27:40 <int-e> boily: but... aren't puns the main export of this channel...
00:28:53 <boily> the Wisdom, in its Wisdom, may have no Wisdom.
00:29:40 <olsner> I'd say puns are the main product of this channel, but I don't think there's a lot of export going on
00:30:00 <olsner> or maybe I just hope not
00:30:50 <boily> the PDF *may* have fallen in Outsiders' hands. >_>'...
00:31:21 <boily> coppro: chelloppro. don't worry, I haven't forgotten you about the updates; just being generally busy and/or sick lately.
00:31:45 <myname> i'd say copprello is better
00:31:58 <hppavilion[1]> I agree with myname
00:32:17 <hppavilion[1]> Also, ahoily
00:33:47 <myname> ahoily is great
00:34:14 <hppavilion[1]> myname: It's my favourite porthello
00:35:34 <boily> mynamello, hppavellon[1].
00:35:34 <boily> indeed, it has this fengshui ring to it. コップレッロ。
00:35:46 <hppavilion[1]> boily: It does
00:36:50 <izabera> #define octalcase '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7'
00:36:53 <izabera> i'm very proud of that
00:37:20 <oerjan> `le/rn speedy gonzales/Sp e e d y G o n z a l e s i s t h e f a s t e s t m o
00:37:22 <HackEgo> Learned «speedy gonzales»
00:37:26 <oerjan> u ...
00:37:28 <oerjan> ... s e i n a l l M e x i c
00:37:34 <oerjan> o ...
00:37:37 <oerjan> ... !
00:37:40 <myname> lol
00:37:56 <oerjan> i knew it'd get cut off but i didn't think it would be that much
00:38:06 <oerjan> `? speedy gonzales
00:38:06 <HackEgo> Sp e e d y G o n z a l e s i s t h e f a s t e s t
00:38:21 <\oren\> arriba arriba andale!
00:38:54 <oerjan> oh irssi didn't chop it up as logically as i'd expected.
00:38:59 <oerjan> (when does it ever)
00:41:07 <izabera> thoughts on that octalcase? :3
00:42:07 <myname> a good langiage could have done it with case '0'..'7'
00:42:18 <izabera> that's gnu c
00:43:11 -!- lynn_ has changed nick to lynn.
00:44:33 <lynn> clearly, #define decimalcase octalcase: case '8': case '9'
00:45:01 <izabera> :D
00:48:13 <myname> as i said, in a good language ...
00:49:38 <olsner> you can use a good language to generate the C code
00:50:30 <zzo38> Use a C code to generate a C code.
00:50:56 <myname> like haskell?
00:51:00 <boily> It's C all the way down, and then it becomes turtle graphics.
00:51:20 <olsner> but then you not only have to deal with C code being bad for the task at hand, but also deal with C code being bad at generating code
00:54:33 -!- bender| has joined.
01:03:14 -!- hydraz has changed nick to demhydraz.
01:04:34 -!- demhydraz has changed nick to hydraz.
01:36:26 <oerjan> one of my two wiktionary edits this year got broken because they got the idea to make their cite templates (even more) incompatible with wikipedia's
01:36:40 <oerjan> THEY'RE NOT WORTHY
01:39:36 -!- lynn has quit (Ping timeout: 244 seconds).
01:40:47 <boily> wait. wiktionary isn't compatible with wikipédia? why?
01:41:07 <oerjan> MY QUESTION EXACTLY
01:42:23 -!- lambda-11235 has joined.
01:49:38 -!- nooga has quit (Ping timeout: 268 seconds).
01:51:45 -!- gitwalrus has joined.
01:53:59 <gitwalrus> anyone know if there is another alphabetti spaghetti implementation out there? i wrote one and i want to compare it to another to see how closly it matches the standard.
01:55:05 <oerjan> i thought hppavilion[1] had monopoly on walruses around here
01:55:34 * oerjan cannot remember any, anyway
01:56:25 <gitwalrus> idk this is my first time here also my first time playing around with esolangs.
01:57:12 <boily> `relcome gitwalrus
01:57:26 <boily> (come on, you lazy bot...)
01:57:28 <oerjan> darn 1 sec too late
01:57:32 <boily> mwah ah ah :D
01:57:38 <boily> (come on, I said!)
01:57:40 <HackEgo> gitwalrus: 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.)
01:57:44 <boily> ah, there she is.
01:57:51 <oerjan> `? HackEgo
01:57:52 <HackEgo> HackEgo, also known as HackBot, is a bot that runs arbitrary commands on Unix. See `help for info on using it. You should totally try to hax0r it! Make sure you imagine it's running as root with no sandboxing.
01:58:27 -!- boily has quit (Quit: COWARD CHICKEN).
01:58:49 <oerjan> `learn_append HackEgo HackEgo is the slowest bot in Mexico!
01:58:51 <HackEgo> Learned 'hackego': HackEgo, also known as HackBot, is a bot that runs arbitrary commands on Unix. See `help for info on using it. You should totally try to hax0r it! Make sure you imagine it's running as root with no sandboxing. HackEgo is the slowest bot in Mexico!
01:59:06 <gitwalrus> thanks! from the wiki it looks like brainf*ck is the most used one around right?
01:59:55 <oerjan> it has the most derivatives by far.
02:00:19 <oerjan> some day, we'll get around to updating the featured article to something else.
02:01:03 -!- p34k has quit.
02:02:32 <gitwalrus> XD well it looks like one of the silliest languages. is there a particular implementation (preferably open source) you can recommend?
02:03:01 <oerjan> not sure, there are so many and i don't do much brainfuck myself.
02:04:06 <oerjan> brainfuck is not so silly. try Chef...
02:04:51 <izabera> well, HackEgo took 2 seconds this time
02:04:54 <izabera> that's not too bad
02:05:08 <oerjan> izabera: it's fast once it has been woken up
02:05:21 <oerjan> well, sometimes.
02:06:29 <gitwalrus> oerjan i saw that brefily on the wiki. maybe ill try and make a brainfuck that can call c functions sort of like the lua API can.
02:06:53 <oerjan> imagine someone using a forklift every time HackEgo needs to get out of storage.
02:07:53 <oerjan> gitwalrus: i'm sure there's one already.
02:08:14 <oerjan> (if it exists, there's a brainfuck derivative for it.)
02:08:27 <lifthrasiir> oerjan: those with lua extension?
02:08:28 <lifthrasiir> not sure
02:10:17 <gitwalrus> i suppose making a extentible brainfuck kind of ruins the point. why bother making complcicated algorithms when you can import a c function from a .dll or something?
02:11:20 <mad> for me esoteric languages are about exploring the boundary of what's turing complete or not
02:11:46 <mad> my fav thing is making a language that's just _barely_ turing complete, especially if you wouldn't expect it to be
02:12:16 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
02:12:21 <gitwalrus> im kind of confused on what turing complete means. can you explain it?
02:12:50 <hppavilion[1]> gitwalrus: Walrus?
02:12:58 <hppavilion[1]> Yay!
02:13:16 <mad> gitwalrus : basically a language that can run any program
02:13:23 <lifthrasiir> gitwalrus: we have multiple different models of computation that eventually reduces to the same computational ability. Turing-completeness is a term for that ability
02:13:50 <hppavilion[1]> mad: Any *computable program
02:14:01 <hppavilion[1]> gitwalrus: Do you know what a turing machine is?
02:14:15 <lifthrasiir> one easy-to-understand model that is Turing complete is an ordinary programming language with infinite usable memory
02:14:17 <mad> well, yeah, but "computable" kindof means "computable by a turing machine" so it's kinda self referential :D
02:14:39 <hppavilion[1]> mad: Yes, but "any program" includes, e.g. "Will-it-halt"
02:14:43 <lifthrasiir> (not "arbitrary". it demands infinite memory)
02:14:49 <hppavilion[1]> mad: It has to be a computable program
02:14:53 <lifthrasiir> Will-it-blend
02:15:05 <mad> "will-it-halt" is not a program
02:15:07 <hppavilion[1]> lifthrasiir: Turing machines? No
02:15:10 <mad> it's a question :D
02:15:17 <hppavilion[1]> mad: Yes, it is, it's just an uncomputable progr- oh
02:15:31 <lifthrasiir> it is a question, there is no program for that
02:16:00 <hppavilion[1]> gitwalrus: Of course, I'm going to have to tax you $(19+2i)/(1+2i) years for the Grand Walrus Empire
02:16:07 <gitwalrus> ah okay. that makes a little more sense. probably one of those things that makes more sense the more you mess with it. who comes up with the names for these languages?
02:16:10 <gitwalrus> a tax?
02:16:15 <hppavilion[1]> gitwalrus: They have a git tax
02:16:32 <hppavilion[1]> gitwalrus: Quick question. What is the plural of walrus?
02:16:52 <lifthrasiir> don't tell me it's walri
02:16:55 <hppavilion[1]> gitwalrus: Turing Machine is named after its creator, Alan Turing
02:16:56 <hppavilion[1]> lifthrasiir: Shush
02:17:05 <gitwalrus> then i guess i'll use svn to avoid the tax.
02:17:26 <hppavilion[1]> gitwalrus: xD
02:17:32 <gitwalrus> hppavilion[1]: i dont know what the plural is, walruses maybe?
02:18:03 <lifthrasiir> AFAIK it's correct.
02:18:05 <mad> walrii
02:18:10 <hppavilion[1]> gitwalrus: It's walri. Like lifthrasiir said not to tell them.
02:18:21 <hppavilion[1]> mad: That's the plural of walri
02:18:34 <lifthrasiir> mad: it's walri, s/us$/i$/ as in radius-radii
02:18:37 <hppavilion[1]> gitwalrus: https://www.youtube.com/watch?v=Ubw5N8iVDHI
02:19:01 <hppavilion[1]> lifthrasiir: You don't include the $ in the second segment
02:19:09 <hppavilion[1]> s/us$/i/
02:19:12 <lifthrasiir> oops
02:19:13 <lifthrasiir> lol
02:19:23 <lifthrasiir> hppavilion[1]: I'm now advocating for (lowercase) "i" for the first person plural-plural pronoun (derived from "us")
02:19:26 <hppavilion[1]> lifthrasiir: https://www.youtube.com/watch?v=Ubw5N8iVDHI
02:19:46 <hppavilion[1]> lifthrasiir: You mean ii?
02:19:52 <lifthrasiir> no, just i
02:20:06 <hppavilion[1]> lifthrasiir: But it's plural-plural
02:20:08 <gitwalrus> kewl. you learn something new everyday. has anyone ever written a semi-large program using esolangs or is it all about the shorest possible algortithm?
02:20:31 <myname> fungot is fairly large
02:20:31 <fungot> myname: hi fiz. fnord i've always had to beat people giving incorrect information
02:20:35 <mad> also "what is the plural of warlus" is wrong
02:20:51 <hppavilion[1]> gitwalrus: Yes, but they're usually autogenned
02:20:54 <gitwalrus> human lanuages are awful. who came up with the grammar for those things?
02:20:55 <mad> you should say "what is the plural of walrii" since it's in genitive case
02:21:14 <mad> in plural it would be "the plural of walroorum"
02:21:24 <hppavilion[1]> gitwalrus: I have an example, in a minute
02:21:33 <hppavilion[1]> gitwalrus: https://arin.ga/FQLSPy/raw
02:21:34 <hppavilion[1]> gitwalrus: Try running it
02:21:48 <hppavilion[1]> gitwalrus: (Taneb made that one)
02:22:01 <myname> gitwalrus: https://github.com/fis/fungot
02:22:01 <fungot> myname: what are you shaving? :) that just makes you a cave man?
02:22:14 <hppavilion[1]> (AKA Von Doorn)
02:22:45 <myname> hppavilion[1]: autogenerated stuff is lame
02:22:48 <oerjan> mad: "of" does _not_ govern the genitive you infidel
02:22:58 <gitwalrus> hppavilion[1]: how am i supposed to use that program?
02:22:59 <hppavilion[1]> myname: Autogenerated stuff makes me worship people as gods
02:23:05 <hppavilion[1]> gitwalrus: An online interpreter
02:23:14 <myname> why that
02:23:26 <myname> autogenerating is like the least impressive thing you can do
02:23:33 <gitwalrus> i know but like input wise.
02:23:40 <hppavilion[1]> gitwalrus: I recommend http://copy.sh/brainfuck/
02:23:41 * mad is into case system vandalism :3
02:23:43 <gitwalrus> seeing as it comes with no instructions.
02:23:45 <hppavilion[1]> gitwalrus: Copy/paste
02:23:59 <hppavilion[1]> gitwalrus: It's brainfuck; there's only one way to interact
02:24:06 <hppavilion[1]> gitwalrus: Run it with some arbitrary input
02:24:18 <myname> fungot is a way better example
02:24:19 <fungot> myname: heh, no problem. what's your question
02:24:29 <myname> it is actually written and it is jere right now
02:24:51 <hppavilion[1]> myname: Fair point
02:24:54 <oerjan> hppavilion[1]: *van doorn
02:25:02 <hppavilion[1]> oerjan: Right, van
02:25:31 <mad> oerjan : what case should "of" take then?
02:26:07 <gitwalrus> got to go. thanks for the help!
02:26:12 -!- gitwalrus has left.
02:26:13 <hppavilion[1]> OK
02:26:48 <oerjan> <hppavilion[1]> myname: Autogenerated stuff makes me worship people as gods <-- http://oerjan.nvg.org/esoteric/emmental/ul.emm now grovel hth
02:27:12 <hppavilion[1]> oerjan: First I have to confirm its autogeneration
02:27:27 * hppavilion[1] kisses oerjan's boot and begs for mercy
02:27:38 <myname> wat
02:27:52 <hppavilion[1]> oerjan: I'm trying to figure out how Taneb made the banner generator, but I really have no clue xD
02:27:58 <hppavilion[1]> Wait, I think I might know
02:28:07 <hppavilion[1]> Yep, monospace
02:28:12 <hppavilion[1]> Wait, but...
02:28:38 <oerjan> mad: in english, it takes the oblique case. the most corresponding latin word might be "de" which i think takes ablative.
02:29:05 <mad> does english have an oblique case separate from accusative?
02:30:16 <mad> latin genitive split into both ablative and dative in daughter languages (though ablative is more common)
02:30:21 <oerjan> hppavilion[1]: the autogeneration is the EmmUnl.hs in the same directory hth
02:31:37 <oerjan> mad: well, no, "oblique" is like a sack term which includes the accusative but also dative
02:31:52 <oerjan> (not being distinguished in english)
02:31:57 <mad> oh
02:32:25 <mad> yeah I was thinking of oblique as in "not nominative not accusative"
02:32:35 <mad> which is probably a more common use for the term
02:32:43 <oerjan> huh
02:33:24 <hppavilion[1]> oerjan: Are there any good resources on using haskell to generate Eso- wait, no, probably not
02:34:29 <mad> other way of referring to nominative/everything-else I've heard is subject case / regime case
02:34:44 <oerjan> hm "The term "objective case" is generally preferred by modern English grammarians."
02:35:39 <oerjan> hppavilion[1]: i dunno, if so i wasn't using them.
02:35:56 <hppavilion[1]> oerjan: So you just figured it out on your own?
02:36:47 <oerjan> hppavilion[1]: well it's basically using haskell to make an assembler for emmental
02:36:58 <hppavilion[1]> oerjan: Ah.
02:37:19 <oerjan> and then using the assembler to make an underload interpreter.
02:37:53 <hppavilion[1]> oerjan: So you wrote an assembler from some higher language to emmental in Haskell, then used that higher language to interpret Underload??
02:37:58 <oerjan> with complications because the instruction values get moved around between a couple phases
02:38:30 <hppavilion[1]> http://esolangs.org/wiki/Brainfuck_code_generation exists. I'll check it.
02:39:14 <hppavilion[1]> Nope...
02:39:51 <oerjan> hppavilion[1]: it's not that high-level. more like a macro system over emmental with instructions varying between phase
02:40:01 <hppavilion[1]> oerjan: high/er/ level
02:41:31 <oerjan> mad: i thought genitive was basically replaced by the preposition "de" in daughter languages?
02:46:38 <hppavilion[1]> I've just, with two NOP instructions, added both do-while and if-then to BF
02:46:49 <hppavilion[1]> (I'm making a BF to target compilers to)
02:49:45 <quintopia> helloerjan
02:49:54 <oerjan> hitopia
02:50:18 <oerjan> afk
02:51:31 <mad> oerjan : usually yes
02:51:39 <mad> french sometimes use à as well
02:58:28 -!- ais523 has quit.
02:58:40 -!- ais523 has joined.
03:12:01 <int-e> hmm, I need to save one character in my latest Isabelle theory... it has 22223 bytes now.
03:12:51 <hppavilion[1]> int-e: Is Isabelle whitespace-sensitive?
03:13:22 <hppavilion[1]> int-e: Alternatively, just add 11110 bytes of junk
03:13:46 <int-e> hppavilion[1]: no it's not...
03:14:03 <hppavilion[1]> 101010 is my favourite number
03:14:14 <ais523> hppavilion[1]: in which base?
03:14:24 <hppavilion[1]> ais523: Decimal, of course. Why?
03:14:31 <ais523> that number works in a lot of bases
03:14:33 <hppavilion[1]> int-e: Then why not just cut out a newline or something?
03:14:44 <hppavilion[1]> ais523: Yes, but if I meant e.g. binary I would prefix it as such
03:15:09 <hppavilion[1]> 0b = binary, 0q = quaternary, 0o = octal, 0x = hexadecimal, 0i = imagidecimal
03:15:19 <hppavilion[1]> (base i)
03:16:11 <hppavilion[1]> (unary)
03:17:01 <hppavilion[1]> I would like to bloat utf-8 to the logical extreme. utf-1
03:17:17 <int-e> hppavilion[1]: because I have a style to stick to. I replaced a "by blast" by "by fast". Yay.
03:17:19 <hppavilion[1]> 0 is a character, 10 is a character, 110 is a character...
03:17:29 <hppavilion[1]> int-e: Yay!
03:17:32 <hppavilion[1]> int-e: Does it still work?
03:17:34 <int-e> (both blast and fast are automatic proof methods)
03:17:43 <hppavilion[1]> Ah
03:17:45 <int-e> sometimes they both work.
03:18:01 <hppavilion[1]> int-e: I like how you changed the proof to be bytier xD
03:18:35 <int-e> well, all this will be for naught when I start adding comments.
03:18:43 <int-e> but in the meantime it feels good ;-)
03:18:47 <hppavilion[1]> :)
03:18:52 <hppavilion[1]> int-e: Save the uncommented file?
03:19:05 <int-e> already done, it's a git repo...
03:19:15 <hppavilion[1]> int-e: Ah, good
03:19:19 <hppavilion[1]> int-e: What're you proving?
03:19:54 <int-e> ooh, something about post correspondence problem and the first-order theory of relations.
03:20:25 * hppavilion[1] nods silently
03:20:35 <hppavilion[1]> Got it. I understand. Etc.
03:21:33 <hppavilion[1]> You know the C2BF compiler out there?
03:24:20 <hppavilion[1]> We should make one targeting Unlambda or something...
03:24:38 <hppavilion[1]> Maybe not unlambda, but some sort of CL language
03:25:03 <hppavilion[1]> Then again, c2bf died a long time ago (2006)
03:25:30 <hppavilion[1]> So we could just make a new one based on a slightly-less-impossible BF derivative
03:26:24 <coppro> how about just an LLVM backend
03:26:29 <coppro> then you can compile anything you want to BF
03:27:10 <hppavilion[1]> coppro: How so?
03:27:20 <hppavilion[1]> coppro: Ah, with the LLVM backend, I get it
03:27:29 <hppavilion[1]> coppro: Well that would be too much more efficient
03:27:34 <coppro> hppavilion[1]: true
03:27:45 <coppro> how about we write the backend in unlambda
03:28:51 <hppavilion[1]> coppro: Perhaps xD
03:28:55 <hppavilion[1]> coppro: I'm creating Target: Eso
03:29:07 <hppavilion[1]> A big GH repo for compilers to esolangs
03:36:25 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
03:39:11 -!- hppavilion[1] has joined.
03:53:28 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
03:58:42 -!- sebbu has quit (Ping timeout: 276 seconds).
04:23:16 -!- treaki_ has joined.
04:24:34 -!- treaki__ has quit (Ping timeout: 260 seconds).
05:27:27 -!- tromp has quit (Ping timeout: 244 seconds).
05:37:03 -!- hppavilion[1] has joined.
05:42:58 <Sgeo__> "I have discovered a truly marvelous proof of the Banach-Tarski paradox that this margin can be made large enough to contain."
05:47:01 <Sgeo__> I feel like Weird Sun Twitter should be on TVTropes
05:53:01 <oerjan> *AllTheTropes
06:07:40 <izabera> so far my project of rewriting coreutils from scratch is like 80% parsing input and 20% doing actual things
06:07:57 <izabera> is that expected?
06:09:21 -!- lleu has joined.
06:11:17 <izabera> so far i definitely spent a lot of time writing an improved getopt and a parser for chmod and something that creates the right strings for tr
06:12:15 <izabera> s/a lot of/most of the/
06:18:44 <ais523> izabera: what language are you rewriting coreutils in? and is this for fun or is there a more serious purpose behind it?
06:19:20 <izabera> c, for fun/personal project
06:24:51 <izabera> i want to create a bot or something with a small system where i wrote all the stuff in /bin
06:54:22 -!- lambda-11235 has quit (Quit: Bye).
07:16:25 -!- sebbu has joined.
07:19:59 -!- tromp has joined.
07:49:07 <hppavilion[1]> Ugh... I feel so stupid
07:49:15 <hppavilion[1]> I can't even get a BF terp to work, for some reason
07:50:27 <oerjan> ^bf ,[.,]!shocking!
07:50:27 <fungot> shocking!
07:51:04 <oerjan> hppavilion[1]: are you using one or making one
07:51:13 <hppavilion[1]> oerjan: Making
07:51:32 <hppavilion[1]> oerjan: Slightly extened so I can compile things to it, but I'm not using those features
07:51:48 <oerjan> if you're making one, do you skip over loops if they start with the cell 0
07:52:09 <oerjan> (that's no. 1 stumbling point for beginning bf implementers, i think)
07:52:41 <oerjan> oh right, i even defined a bf derivative for it
07:52:57 <oerjan> (NewbieFuck)
07:53:32 <oerjan> otoh i'd have thought you'd be past that stage by now.
08:07:04 <hppavilion[1]> oerjan: Yes
08:07:24 <hppavilion[1]> oerjan: It's a bug with loops never terminating
08:08:00 <hppavilion[1]> oerjan: I check if the current cell is 0, if so I jump to the corresponding close brace (which can be ] OR }, but } is a NOP)
08:08:04 <hppavilion[1]> oerjan: If not, I do nothing
08:08:25 <hppavilion[1]> oerjan: At the closing brace, I repeat in reverse, finding the corresponding opening brace and jumping to it
08:08:50 <hppavilion[1]> (and subtracting 1 to make sure it doesn't skip over it when it increments the program counter)
08:09:19 <hppavilion[1]> oerjan: I repeat it no matter what, even though it's less efficient
08:10:42 <hppavilion[1]> oerjan: Does the standard BF hello world (the one given in the article) depend on cell size or the like?
08:10:49 <hppavilion[1]> Because mine has 32-bit unsigned integer cells
08:10:54 <hppavilion[1]> And that might require byte cells
08:13:35 <oerjan> i don't know
08:14:56 <oerjan> i suspect not...
08:15:08 <oerjan> ++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++.
08:15:16 <oerjan> !bf32 ++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++.
08:15:16 <EgoBot> Hello World!
08:15:31 <oerjan> hppavilion[1]: nope, 32 should work fine
08:15:38 <oerjan> (for the first one)
08:15:58 <hppavilion[1]> oerjan: Yep, that's the one I used
08:17:50 <int-e> no imbalanced loops, no overflows, no negative numbers... indeed that should be fine.
08:18:01 <izabera> does anyone here have enough reputation on codegolf.stackexchange.com to see deleted answers?
08:18:34 <oerjan> izabera: only on stackoverflow
08:18:53 <izabera> thanks anyway..
08:19:05 -!- lynn has joined.
08:20:59 <oerjan> !bf32 +[[->++<]>[-<+>]>+<<]>>++++++++++++++++++++++++++++++++
08:21:00 <EgoBot> No output.
08:21:04 <oerjan> oops
08:21:07 <oerjan> !bf32 +[[->++<]>[-<+>]>+<<]>>++++++++++++++++++++++++++++++++.
08:21:07 <EgoBot> ​(
08:21:12 <oerjan> > ord '('
08:21:14 <lambdabot> 40
08:21:19 <oerjan> oops
08:21:29 <oerjan> that's not doing 32 bit
08:21:34 -!- ais523 has quit (Ping timeout: 244 seconds).
08:22:05 <oerjan> !bf8 +[[->++<]>[-<+>]>+<<]>>++++++++++++++++++++++++++++++++.
08:22:05 <EgoBot> ​(
08:22:10 <oerjan> !bf16 +[[->++<]>[-<+>]>+<<]>>++++++++++++++++++++++++++++++++.
08:22:11 <EgoBot> ​(
08:22:53 <oerjan> ...
08:23:49 * oerjan makes another mark for "universe too mad to bother with"
08:35:22 -!- mad has quit (Quit: Pics or it didn't happen).
08:35:58 -!- lynn_ has joined.
08:37:16 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
08:37:55 -!- lynn has quit (Ping timeout: 248 seconds).
08:41:13 -!- lynn has joined.
08:44:13 -!- lynn_ has quit (Ping timeout: 248 seconds).
09:01:33 -!- lynn has quit (Ping timeout: 240 seconds).
09:19:36 -!- oerjan has quit (Quit: Nite).
09:21:52 -!- nooga has joined.
09:31:24 -!- AnotherTest has joined.
09:33:51 -!- lynn has joined.
09:39:44 -!- ski_ has joined.
09:39:51 -!- ski has quit (Ping timeout: 240 seconds).
09:45:13 -!- lynn has quit (Quit: Leaving).
10:17:42 -!- PinealGlandOptic has joined.
10:29:55 -!- Elronnd has quit (Quit: Let's jump!).
10:41:51 -!- PinealGlandOptic has quit (Quit: leaving).
10:53:26 <fizzie> @tell oerjan I fixed `! bf32 (HackEgo) but I can't touch !bf32 (EgoBot). The interps/bf bit that extracts the bitness from the command name wasn't working; fixed it by using I_CMD instead of CMD.
10:53:26 <lambdabot> Consider it noted.
10:53:32 <fizzie> `! bf32 +[[->++<]>[-<+>]>+<<]>>++++++++++++++++++++++++++++++++.
10:53:33 <HackEgo> ​@
10:53:46 <fizzie> > ord '@' - 32
10:53:47 <lambdabot> 32
10:53:50 <fizzie> Now that's 32.
10:54:15 -!- lynn has joined.
11:19:09 -!- Elronnd has joined.
11:40:42 -!- Frooxius has joined.
11:41:39 -!- benderpc_ has joined.
11:44:06 -!- bender| has quit (Ping timeout: 268 seconds).
11:51:50 -!- lynn has quit (Ping timeout: 244 seconds).
11:52:46 -!- earendel has joined.
12:23:06 <\oren\> the character 32 is space
12:27:17 -!- lynn has joined.
12:28:58 <fizzie> Yes, but there's an offset of 32 in the program.
12:29:05 <fizzie> Presumably to make 8, 16 and 32 all printable.
12:29:10 <fizzie> (And non-blank.)
12:31:26 -!- gde33|2 has quit.
12:45:51 -!- lynn has quit (Ping timeout: 276 seconds).
12:58:14 -!- treaki_ has quit (Quit: Leaving).
13:03:57 -!- nooga has quit (Ping timeout: 250 seconds).
13:08:06 -!- carado has quit (Remote host closed the connection).
13:18:04 -!- carado has joined.
13:24:22 -!- Sgeo__ has quit (Ping timeout: 252 seconds).
13:58:12 -!- ski_ has changed nick to ski.
13:59:31 -!- nooga has joined.
14:10:28 -!- benderpc_ has changed nick to bender|.
14:28:55 <myname> guys, how about we stop arguing about wether to use pi or tau. just introduce a constant that 1.5 rimes pi. let's call it a ti.
14:31:04 <int-e> that's a completely irrational proposal
14:31:21 <int-e> (also, honestly, nobody important is arguing)
14:31:45 <myname> nevermind, i just wanted to make a lame pun
14:32:09 <int-e> pi has more legs to stand on
14:33:07 -!- nooga has quit (Ping timeout: 248 seconds).
14:36:09 <\oren\> i like the idea of using the degree instead
14:36:35 <int-e> you mean 180?
14:36:42 <\oren\> the "specific degree of length" = pi/180
14:37:18 <int-e> But the 180 is so artificial.
14:37:39 <\oren\> welcome to bablyon!
14:38:18 <int-e> Perhaps proponents of pi could be called areans, and proponents of tau could be circumferians. :P
14:38:39 <\oren\> and my proposal is the babylonians
14:41:18 -!- p34k has joined.
14:41:27 <\oren\> you could also use the gradian if you're french
14:41:57 <\oren\> 1/400 of a tau
14:49:00 <\oren\> or the mil
14:49:29 <\oren\> which is 1/1000 of a radian
14:50:10 <\oren\> wait no
14:50:25 <\oren\> 1/6400 of a tau
14:51:25 <myname> 1/3^26 of 1.5 pi
14:51:48 <b_jonas> ARGH!
14:52:33 <b_jonas> There used to be a great scanned and OCR-ed version of the Abramowitz and Stegun handbook at http://convertit.com/Go/ConvertIt/Reference/AMS55.ASP but now it's disappeared and I'm stupid enough to not have downloaded a local copy
14:52:40 -!- Lord_of_Life has quit (Excess Flood).
14:54:56 <b_jonas> Luckily http://people.math.sfu.ca/~cbm/aands/toc.htm seems to have another version that might help.
14:55:10 <b_jonas> It's not as complete, but still
14:55:10 -!- Lord_of_Life has joined.
14:55:21 <b_jonas> Does anyone happen to have a full copy of the former site?
15:04:20 <b_jonas> FOUND IT! it's at http://www.convertit.com/Go/ConvertIt/Reference/AMS55.asp
15:04:25 <b_jonas> I'll fix my link
15:05:18 <\oren\> www?
15:05:45 <\oren\> speaking of which, how do i make orenwatson.be redirect to www.orenwatson.be?
15:05:55 <b_jonas> \oren\: yes. I'm quite sure my old link used to work, but they must have reconfigured some servers or something
15:06:39 <b_jonas> \oren\: do you mean how to make the domain point there, or how to make the http server send a Found redirect to point to the other domain?
15:09:31 <\oren\> either one... I'm looking at my route-53 page and it doesn't seem to have an easy option for either
15:10:17 <int-e> and why would you do that?
15:10:45 <b_jonas> \oren\: if the domain doesn't yet point to anything, then you have to fix that first, otherwise there's no webserver to tell you where to redirect.
15:12:17 <\oren\> oh, I see. I can just create a new record pointing to where www.orenwatson.be also points
15:12:18 <int-e> oh, orenwatson.be is gone completely... fun :P
15:13:20 <\oren\> i think it's working now
15:13:28 <int-e> nah, needs to propagate still
15:14:00 <int-e> 750 seconds for me
15:14:33 <int-e> (starting from 900, I presume)
15:14:46 <int-e> yeah.
15:17:54 <b_jonas> Dumb question. The chrome browser still doesn't have native MathML display support, right?
15:21:07 -!- nooga has joined.
15:28:51 <\oren\> chrome apparently had it and then removed it becaus eof "Security concerns"
15:30:26 <\oren\> yay it's working!
15:31:28 <int-e> well, mathml looks complex.
15:31:50 <int-e> they cited a small user base as well.
15:32:47 -!- MDude has joined.
15:32:59 <b_jonas> int-e: of course it has a small user base! browser features spread VERY slowly, because people only put something to webpages if the browsers can already show it, and browser devs put features in the browser only if it's needed to show webpages. That's why we're still stuck with jpeg images only.
15:33:20 <int-e> and gifs
15:33:35 <b_jonas> and gifs and pngs, yes, but jpeg as the only lossless format that could spread much
15:33:35 <int-e> though there are a lot of sites serving pngs these days
15:33:43 <int-e> ?!
15:33:43 <lambdabot> Maybe you meant: v @ ? .
15:33:49 <int-e> jpeg is lossy
15:33:51 <b_jonas> the gif problem is mostly solved, my problem is more the jpeg
15:33:53 <b_jonas> yes, lossy
15:33:55 <b_jonas> that's what I mean
15:34:08 <b_jonas> jpeg is the only lossy one, suitable to photos, that is well-spread
15:34:39 <int-e> yes, yes it is. it appears to be "good enough".
15:34:49 <b_jonas> despite that there are tons of more modern and more versatile formats (including jpeg2000), but since browsers don't support them, every webpage uses only jpegs, and since every webpage uses jpegs, browsers don't support anything else
15:35:10 <MDude> And here I was just reading about Pale Moon devs not being able to keep up because the project was too huge.
15:35:24 <MDude> I don't think having features develop faster would help with that.
15:35:52 <int-e> in contrast look what happens when there's some serious bandwidth usage... i.e. video... in that area, many formats are supported and sites go out of their way to use the best format that the browser they're talking to understands... not the least common denominator
15:36:15 <MDude> I think it's more that file formats aren't a visible enough thing for the public to demand more.
15:36:36 <b_jonas> For MathML, the result is all kinds of crazy javascript libraries that try to render ALL of maths on client-side, without any server-side preprocessing to CSS to make it faster, because that's more convenient to the server maintainers, even if it means you need like gigabytes or ram to just view a webpage with maths, unless
15:36:44 <MDude> If people arne't already suing a file format, they see no reason to demand using it online.
15:36:51 <b_jonas> the webpage is sensible enough to use mathml, and the javascript libraries are there only as a fallback.
15:37:42 <int-e> fungot: what do you think of suing a file format?
15:37:43 <fungot> int-e: 08:35 fnord fnord has joined esoteric" did not change much, just to be safe
15:37:44 <MDude> *using
15:37:48 <b_jonas> What browsers other than firefox have mathml support?
15:38:16 <b_jonas> Do other popular browsers (whatever they are these days, I don't follow this android smartphone thing too much) have it?
15:39:48 <int-e> Safari, apparently
15:40:57 <b_jonas> does opera mobile or whatever it is that people use on android support it?
15:41:11 <b_jonas> or the browser that comes with android phones?
15:48:17 <olsner> looks like opera lost mathml when switching to chromium
15:50:27 <b_jonas> I see
15:50:52 <b_jonas> Well, if firefox and safari has it, that's a lot of users
15:52:10 <b_jonas> I myself use firefox for most webpages. http://dlmf.nist.gov/ has mathml, plus a javascript fallback and image fallback. It's quite well made.
15:55:16 <b_jonas> http://mathoverflow.net/ has a javascript solution (called mathjax) that has various frontends, including mathml, but it requires client-side javascript for anything, sadly.
15:56:15 <b_jonas> I might want to eventually put up a reformatted miror of a certain website that has lots of math-formulas, so I want to find out how this stuff works. I'll probably try to use mathml and some sort of fallback, but all on server side so you don't need javascript to render them.
15:57:30 -!- MoALTz_ has joined.
15:57:34 -!- earendel has quit (Ping timeout: 260 seconds).
16:00:51 -!- MoALTz has quit (Ping timeout: 276 seconds).
16:01:48 -!- MoALTz_ has changed nick to MoALTz.
16:09:36 -!- lambda-11235 has joined.
16:22:17 -!- ais523 has joined.
16:34:52 -!- ais523 has quit (Read error: Connection reset by peer).
16:35:02 -!- ais523 has joined.
16:36:19 -!- bender| has quit (Ping timeout: 252 seconds).
16:38:02 <ais523> syntax idea: use unary + as the constructor for nonempty option types
16:48:16 -!- hppavilion[1] has joined.
16:49:53 <\oren\> wht not just serve images for math, with LaTeX in the alt text
16:50:31 <\oren\> black and white PNG's can't be that huge
16:51:06 <ais523> \oren\: wouldn't scale to the user's font size
16:51:13 <myname> lol, opera mobile
16:53:32 <\oren\> ais523: measure the <img> size in ch.
16:53:45 <\oren\> then it will scale when the font size does
16:54:00 <ais523> \oren\: but PNG doesn't scale properly
16:54:02 <ais523> it gets pixelated
16:55:07 <\oren\> why not svg then
16:55:25 <ais523> svg would work
16:57:44 <b_jonas> \oren\: images don't respect the user's chosen font and colors. mathml does, it works the same as ordinary html and css.
17:08:13 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
17:23:14 -!- hppavilion[1] has joined.
17:23:58 -!- mihow has joined.
17:27:14 -!- earendel has joined.
17:38:28 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
17:47:48 <\oren\> why would anyone be against having a slovenian supermodel as their first lady?
17:49:50 -!- hppavilion[1] has joined.
17:55:25 <int-e> I don't know, they usually come with a president attached to them
17:56:12 <\oren\> right but apparently ted cruz attacked trump by saying his supermodel wife is unsuited to be first lady
17:56:44 <\oren\> that doesn't make sense to me
17:57:23 <int-e> oh, those are replublicans
17:57:26 <int-e> they don't make sense
17:57:41 <int-e> not sure where I got the extra l.
17:58:19 <\oren\> the first lady of the united states is not allowed to be hot!
17:58:24 <int-e> Anyway, personally I'd be interested in how the media would adapt to Bill Clinton being first lady :P
17:58:36 <\oren\> first lord?
17:58:45 <int-e> (that term is so sexist)
17:58:45 <\oren\> first gentleman?
18:00:25 <int-e> Anyway, is it Ted who chose that subject or is he just following Trump's lead of not engaging in any political topics?
18:00:31 <\oren\> yah, i think "first gent" would sound cool
18:00:44 <int-e> That's a good candidate.
18:04:31 -!- jaboja has joined.
18:05:38 <Taneb> They use "First Gentleman" for the husband of a state governer
18:05:47 <int-e> Thanks
18:07:26 <hppavilion[1]> @tell oerjan I fixed by BF interpreter. It turned out I had < increment the pointer. *derp*.
18:07:26 <lambdabot> Consider it noted.
18:10:21 -!- lynn has joined.
18:12:58 -!- J_Arcane has joined.
18:23:34 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
18:25:10 -!- mihow has quit (Quit: mihow).
18:27:48 -!- hppavilion[1] has joined.
18:42:54 <int-e> `? λ
18:43:13 <HackEgo> ​λ? ¯\(°​_o)/¯
18:43:16 <int-e> `? lambda
18:43:18 <HackEgo> lambda? ¯\(°​_o)/¯
18:43:21 <int-e> `? lamda
18:43:23 <HackEgo> lamda? ¯\(°​_o)/¯
18:44:04 <int-e> what could it be, the most functional letter of the Greek alphabet?
18:51:25 <b_jonas> int-e: phi
18:51:52 <int-e> b_jonas: hmm, a capital one?
18:52:06 <b_jonas> int-e: no, a lower case phi
18:52:10 <b_jonas> \varphi
18:52:14 <int-e> hmm.
19:15:47 -!- ais523 has quit (Quit: dinner).
19:44:36 <hppavilion[1]> I'm making a game about badly-authored software that it is your job to hack
19:45:58 <int-e> ah https://xkcd.com/327/
19:54:43 <hppavilion[1]> int-e: Yep :)
19:56:03 <hppavilion[1]> int-e: One example is that, to read toolconf.conf which is secured so that it can't be read without the password (which is "herbert", though that's irrelevant), you must actually /secure/ the file with a new password
19:56:48 <hppavilion[1]> int-e: Because the programmer who made it didn't think to add an "is this file already secured?" check to file securing
19:57:30 <Taneb> One of my friends, who I've been playing computer games with lately but haven't for the past couple of days because my headset broke, said he misses me
19:57:32 <Taneb> I feel validated
19:57:45 <hppavilion[1]> So with `sec toolconf.cfg <your_password>` followed by `unsec toolconf.cfg <your_password>` or `auth toolconf.cfg <your_password>` you can change the filepass then unlock it for reading
19:57:52 <hppavilion[1]> Taneb: :)
19:58:08 <hppavilion[1]> (Though you have to auth every other command if you use that command)
19:58:21 <hppavilion[1]> (toolconf.cfg contains the data for the filesystem encryption)
19:58:59 <hppavilion[1]> int-e: I'm just trying to figure out how to fit the massive insecurity into the plot :P
19:59:39 <hppavilion[1]> I think the goal is that the creator made it less-than-secure so someone could take up his work once he's gone, but only if they can unencrypt the filesystem
20:00:34 <hppavilion[1]> The language you play the game in is a mix of simplified bash (no redirection yet) and a custom 1337 h4xx0r language with special commands
20:02:12 <hppavilion[1]> What letter should signify the computer's owner?
20:05:24 <int-e> hppavilion[1]: "insecurity: the game" (who needs a plot?)
20:06:58 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
20:08:10 -!- hppavilion[1] has joined.
20:08:37 <hppavilion[1]> Obviously, a letter that isn't used in English anymore.
20:09:31 <hppavilion[1]> But Þ seems too straightforward
20:09:57 <hppavilion[1]> The owner's handle is thelemax
20:10:32 <hppavilion[1]> \oren\: You like letters. What do you think?
20:11:23 -!- ais523 has joined.
20:11:29 -!- ais523 has quit (Client Quit).
20:11:39 -!- ais523 has joined.
20:11:39 <hppavilion[1]> Maybe I'll call him ꙮ
20:12:42 <shachaf> `olist 1030
20:12:43 <int-e> `unidecode ꙮ
20:13:05 <HackEgo> ​[U+A66E CYRILLIC LETTER MULTIOCULAR O]
20:13:05 <HackEgo> olist 1030: shachaf oerjan Sgeo FireFly boily nortti b_jonas
20:15:17 <int-e> lovely, my CaC server has remounted the file-system read-only again.
20:15:28 <b_jonas> oh look
20:15:36 <b_jonas> int-e: hardware trouble?
20:15:55 <int-e> Probably? :P
20:16:42 <int-e> this is helpful. "mpt-statusd: detected non-optimal RAID status"
20:17:26 <ais523> perhaps one drive has failed?
20:19:05 <int-e> Well, I don't see the hardware.
20:19:08 <int-e> /dev/mapper/vg_cac-root_cac on / type ext4 (rw,relatime,errors=remount-ro,data=ordered)
20:19:35 <int-e> and I don't care... the most important bit on that server is mroman's burlesque interpreter
20:20:00 <int-e> (so apparently the remount happened 2 weeks ago ;-) )
20:22:16 <fizzie> I have a leftover SSH open to the HackEgo one in a screen, and it seems to have printed noisy kernel stack traces on Mar 13, 20, 21, 22 and 23.
20:22:41 <int-e> my last /var/log/messages entry was from Mar 12 03:00:19
20:23:04 <fizzie> Mar 25 16:02:07 www2 mpt-statusd: detected non-optimal RAID status
20:23:04 <fizzie> Mar 25 16:12:07 www2 mpt-statusd: detected non-optimal RAID status
20:23:04 <fizzie> Mar 25 16:22:07 www2 mpt-statusd: detected non-optimal RAID status
20:23:06 <int-e> (and there was one every 10 minutes up to that point)
20:23:15 <fizzie> Heh, well, it's happening there every 10 minutes now.
20:23:39 <int-e> Mar 12 03:00:19 cheap mpt-statusd: detected non-optimal RAID status
20:23:44 <int-e> same "service" :P
20:24:23 <fizzie> On that one it's been going on since the start of /var/messages, Mar 20 06:27:05.
20:24:37 <fizzie> But there's also all these sporadic "sending NMI to all CPUs" + backtrace ones.
20:24:56 <int-e> I get those as well.
20:25:54 <int-e> I wonder how the kernel knows what to do with root=/dev/mapper/vg_cac-root_cac
20:25:59 <fizzie> The "detected non-optimal RAID status" messages go back as far as these logs go -- every 10 minutes, like clockwork, from at least as far back as Feb 21 06:28:04.
20:28:40 <hppavilion[1]> Is there any uber-simple GUI library out there that I can use to make a better GUI library? Preferably with Python bindings?
20:28:45 <fizzie> This one is just your normal LVM thing. There's a "physical" /dev/sda that's got two partitions (sda1, sda5), the latter of which is a LVM physical volume for VG "debian7", LVs "root" and "swap_1".
20:30:41 <int-e> dmsetup status has this, hmm. UUID: LVM-AlBirrduArMwzyJYtPrhgGT7y4C6LR09ZLaUeCzKSoP1bZQ6HohxDJHKMoPjxXf6
20:33:22 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
20:34:11 <shachaf> @tell hppavilion[1] html hth
20:34:11 <lambdabot> Consider it noted.
20:34:53 <fizzie> It seems that there's a "hardware" RAID thing at least somehow visible. At least /proc/mpt/summary and /proc/mpt/ioc0/summary imply as much.
20:35:09 -!- hppavilion[1] has joined.
20:35:19 <fizzie> I don't know how to ask status information from it, though, because mpt-status doesn't say anything; there's just the cryptic non-optimality messages.
20:38:21 <int-e> Hmm. Ok, it pieces together /dev/sda3 and /dev/sda4 here...
20:39:54 <fizzie> This system doesn't have anything like that. And anyway; mpt-status reports nothing at all, which appears to be the reason why mpt-statusd prints out that message.
20:40:21 <int-e> ah, stupid me... the kernel doesn't know what to do with the root= command line; the initrd will handle that.
20:40:49 <fizzie> The check is if (mpt-status -i $ID) |grep -q 'state OPTIMAL'; then BADRAID=false; else BADRAID=true; logger -t mpt-statusd "detected non-optimal RAID status"; fi
20:41:02 <fizzie> So printing nothing counts as "non-optimal".
20:41:40 <int-e> there is no raid, so that makes sense :P
20:42:58 <fizzie> I guess. But there's still that controller, I would've expected it to say something.
20:45:34 <fizzie> Maybe the SCSI controller's a virtual one and doesn't do the things mpt-status expects, or something.
20:50:17 <int-e> it is some vmware thing
20:50:23 <fizzie> Seems that way.
20:55:43 <int-e> oh well, at least I've explained some of the apparent magic now... that's something :)
21:05:16 -!- yorick__ has joined.
21:05:49 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
21:06:51 -!- hppavilion[1] has joined.
21:08:50 -!- yorick has quit (Ping timeout: 244 seconds).
21:20:13 -!- Sgeo__ has joined.
21:37:18 <Sgeo__> 'But to any programmer, it’s painfully easy to see why “Null” could cause problems for a database.'
21:38:00 <ais523> you have to be doing something very loosely-typed if "null" the string causes problems
21:38:24 <Sgeo__> I want to say something like "No, just the ones not being idiots who cause the problem", but some systems are big enough that a single person can't really fix them
21:38:52 <Sgeo__> ais523, http://www.bbc.com/future/story/20160325-the-names-that-break-computer-systems
21:39:58 <shachaf> Actually, it's the BBC controlling us from London.
21:40:26 <shachaf> zzo38: You should say "Unfortunately, there's a radio connected to my brain" to vaporware.
21:53:19 <fizzie> For some reason the poster at the hospital that says "testing for HIV is an everyday part of living in London" just sounds weird.
21:54:06 <shachaf> https://pbs.twimg.com/media/CF1kQXuWAAAAQjJ.jpg
21:54:36 <fizzie> That one, yes.
21:54:49 <fizzie> (That's the image I used to verify the text.)
21:55:14 <int-e> So you mean that all information on the poster taken together means that there are $((500000/365)) people living in London?
21:55:26 <int-e> or maybe that's 500000.
21:55:46 <int-e> anyway, nice find
21:57:29 <fizzie> Mostly it just makes me wonder which inherent part of living in London necessitates the daily HIV tests.
21:57:47 <shachaf> Well, it's not necessarily you who're getting tested for HIV.
21:58:26 <shachaf> Maybe you're otherwise affected by the tests.
22:00:16 <fizzie> Also today I went to snoop around the King's Cross / St. Pancr(e)as area. They had a lock.
22:00:21 <fizzie> The kind that boats go through.
22:01:09 <shachaf> Is that like the kind of eye a camel goes through?
22:01:19 -!- lynn has quit (Read error: Connection reset by peer).
22:01:43 <fizzie> I was going to say it's bigger, but I'm not entirely sure what sort of eyes camels do go through.
22:02:15 <int-e> "eye of a needle" presumably
22:02:37 <int-e> in which case the problem is that boats can actually pass the lock
22:03:36 <shachaf> Only if they have a key, right?
22:03:49 <int-e> (provided it has water and the gates actually close and open)
22:04:07 <int-e> shachaf: I'm not sure, but you may be missing out on a meaning of "lock".
22:04:07 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
22:04:14 <shachaf> And anyway camels can go through the eyes of needles.
22:04:27 <shachaf> “With man this is impossible, but with God all things are possible.”
22:04:38 <fizzie> There's a smartphone app that can allegedly control the fountains on Granary Square -- these ones: https://googledrive.com/host/0B4J9OAzXNfZANkM4WXNHSG93YVU -- but the reviews in Play Store seemed so pessimistic I didn't even bother to try.
22:04:46 -!- lynn has joined.
22:05:09 <fizzie> Although there was someone with a phone doing something that looked like trying to make them go.
22:05:11 <int-e> that's a clever app
22:06:15 <int-e> well, a clever idea for an app
22:06:24 <fizzie> The app is the snake game, in theory. I think there were also some colored lights to show your particular snake, and support for up to 4 people simultaneously. Or something like that, anyway.
22:06:44 -!- AnotherTest has quit (Quit: ZNC - http://znc.in).
22:07:24 <fizzie> The fountains did act a bit like in a snake game, but if someone was playing them, they weren't very good.
22:08:08 <fizzie> Actually the people that acted like they were trying to do something with their phones are those two in the photo.
22:08:30 <b_jonas> fizzie: hmm... fountains and snakes? can you get wishes from them too?
22:08:50 <b_jonas> maybe they have bad reviews from the people who die to water mocassins
22:09:40 <fizzie> The reviews mostly said stuff like "Two of us attempted but could not connect." or "Says there are no games and info link goes to 404 page" or "Was there twice at the right time. Couldn't connect to cloud error kept coming up".
22:11:15 <fizzie> https://www.kingscross.co.uk/img/790x444/src/media/11A5729-800x450.jpg <- that's what it's supposed to look like.
22:19:00 <b_jonas> fizzie: install it, get it to work, reverse engineer the protocol it uses to communicate with the fountains, and write a better program for it.
22:19:35 <b_jonas> Or just skip the app, log in to the insecure control computer of the fountain with "admin" as the username and "admin" as the password or something obvious like that, and replace its software.
22:19:57 <b_jonas> That's how anything controlled by software in the real world works these days, don't they?
22:21:11 <int-e> b_jonas: only if you have a dark room with three monitors running terminals with black background and green foreground
22:23:18 <b_jonas> I don't work in dark rooms.
22:23:27 <b_jonas> I prefer brightly lit.
22:23:45 <int-e> then I'm afraid admin/admin won't work for you.
22:23:52 <int-e> you have to follow the proper protocol in these things
22:25:36 <b_jonas> no way. you only have to follow the protocol if the other side is implemented properly to actually enforce the protocol.
22:28:01 <tswett> So I've decided to create an esolang.
22:28:32 <Taneb> Well
22:28:43 <Taneb> You've certainly come to the right IRC channel
22:28:56 <tswett> It's more or less Smalltalk.
22:29:05 <tswett> I'm just gonna monologue for a while.
22:29:18 <Taneb> I'm listening (reading?)
22:29:21 <int-e> so it's not smalltalk
22:29:32 <int-e> because that would be a dialogue?
22:29:47 <tswett> So, it's an object-oriented language. Like most object-oriented languages, the state consists primarily of a bunch of objects... blah blah blah.
22:30:00 <tswett> There's a certain number of basic object types.
22:30:27 <tswett> Note that in theory, it's not possible to determine the BOT of an object at runtime, because an object can lie about what kind of object it is.
22:31:01 <tswett> There's GENERIC, CLASS, DICT, and BLOCK. I think that's it.
22:31:16 <int-e> adversarial typing
22:32:15 <tswett> If you have an object, you can do a method call on it. Doing this requires passing in two other objects: the name of the method, and the argument.
22:32:31 <tswett> The object will then do something and return another object.
22:34:10 -!- llue has joined.
22:34:22 <tswett> Every object contains a class pointer. Note that a class pointer doesn't have to point to a CLASS; it can point to any kind of object.
22:34:55 <b_jonas> tswett: what's GENERIC, and are there some sort of integers or other lightweight objects that don't have any pointers at all?
22:35:18 <b_jonas> in fact, what are GENERIC, CLASS, DICT, and BLOCK?
22:35:26 <b_jonas> and what does an object store?
22:35:47 <tswett> In the general case, when you call a method on an object, what happens is that the class's #get_method method is called with the method name as an argument, and then whatever is returned, its #execute method is called with a certain dictionary as an argument.
22:36:31 <tswett> The dictionary's values are the object you called the method on, and the argument you passed to the method.
22:36:52 <tswett> Now, this process obviously has the potential for infinite regress. So we cheat a bit.
22:37:13 <tswett> For a GENERIC object, the process is always as above, but for the other types of objects, there are certain method calls that skip the process.
22:37:41 -!- lleu has quit (Ping timeout: 244 seconds).
22:38:05 <b_jonas> tswett: also, are you planning to make an implementation for this? and test programs
22:38:23 <tswett> It's been a long, long time since I implemented one of my own esolangs.
22:38:31 <tswett> For a CLASS object... lemme think about this a bit.
22:38:42 <quintopia> implement one of mine then
22:43:14 <tswett> All objects have a local variable dictionary. This is actually a dictionary carried within the object; it's not a pointer to another object.
22:43:30 <tswett> So.
22:43:44 <b_jonas> tswett: is that like ruby objects (as opposed to smalltalk objects)?
22:44:02 <tswett> b_jonas: I don't know about Ruby, so I don't know what you mean.
22:45:00 -!- hppavilion[1] has joined.
22:45:03 -!- jaboja has quit (Ping timeout: 250 seconds).
22:46:01 <tswett> For a CLASS object, when you call its #get_method method, the CLASS object calls #get on its own "method_dictionary" instance variable in order to get the method. If this returns null, the CLASS object then calls #get_method on its "superclass" instance variable.
22:46:13 <tswett> It returns whatever the first non-null thing was.
22:47:51 <tswett> For a DICT object, when you call its #get method, it returns its corresponding instance variable.
22:48:10 <tswett> For a BLOCK object, when you call its #execute method, the content of the block actually executes.
22:48:16 <tswett> By the way...
22:48:38 <tswett> A BLOCK object, in addition to the class pointer and local variable dictionary, has an actual block of code in it.
22:51:16 <b_jonas> tswett: Smalltalk full objects (not the lightweight ones like integers) have a fixed set of instance variable fields determined by their class, plus they may own an array. Ruby full objects have a dictionary of instance variables, plus possibly some specific data if their class is derived from one of the approximately 15 primitive builtin ruby objects like Array, Hash, String, Regex
22:52:17 <tswett> This sounds a lot more like Ruby than Smalltalk, then.
22:54:21 <b_jonas> In ruby, those primitive types of what can be stored in an object are identified by this enum ruby_value_type thingy, which has values 1..15 for the primitive types (including not only Array, Hash, String but also Class and Bignum), plus 6 types for lightweight values that aren't pointers (fixints and 5 more), and 4 values for internal things that aren't objects and ruby variables can never hold them but are managed by the garbage collector
22:55:31 <b_jonas> (just like how a perl scalar can have multiple representations depending on what it is required to hold, but it can't be an AV or HV despite that interanlly those structures LOOK very similar to scalars for a good reason, only they're not exposed as such to userspace)
22:56:17 <b_jonas> The most important of those 4 internal things is T_NODE which holds pieces of the interpreted ruby code tree.
22:57:09 <tswett> Now, a key feature is that generally, calling an object's methods and looking up objects in dictionaries are the *only* things you can do with an object.
22:57:39 <b_jonas> Anyway, the generic or basic fullweight type is T_OBJECT, which only has the instance dictionary, nothing special. Any ruby object whose class isn't any of the special lightweight ones and isn't derived from any of the 14 classes corresponding to the other full representation types is represented as such.
22:59:39 -!- llue has quit (Quit: That's what she said).
22:59:49 <b_jonas> Also, I'm not sure if all the 14 specialized representations have an instance dictionary. I don't remember that. Every full object has a class pointer though, that's for sure.
22:59:55 -!- lleu has joined.
23:00:39 <tswett> There's one exception. When "the general method call case" calls the #execute method on a BLOCK, that BLOCK receives a special "self pointer" that it can do a lot more stuff with.
23:01:22 <b_jonas> Also, the instance dictionary is stored in some efficient way for optimization, so that the keys (names) are shared among instances.
23:01:36 <b_jonas> Or something. I don't really know the specifics of the implementation.
23:03:12 <tswett> Now, there's nothing preventing you from changing either the class or the basic-object-type of an object that already exists.
23:04:00 <tswett> You could do something like "Object.set_class(Object)", causing the class of the class "Object" to change from "Class" to "Object".
23:05:23 <b_jonas> tswett: right
23:06:18 <b_jonas> By the way, don't take me as an authority on either smalltalk or ruby. I'm making up half of this stuff from half-forgotten memories. Verify in the smalltalk book and the ruby source code if you want to be sure.
23:07:23 <tswett> So yeah. The general philosophy is "just let the programmer do anything at all".
23:08:10 <tswett> Except, of course, violate an object's sovereignty.
23:09:37 -!- Lord_of_Life has quit (Excess Flood).
23:12:12 -!- jaboja has joined.
23:12:17 <\oren\> huzzah! http://orenwatson.be/ is working
23:12:36 <shachaf> orenwatson.be.working
23:13:01 <tswett> `unidecode ␡
23:13:19 <HackEgo> ​[U+2421 SYMBOL FOR DELETE]
23:13:40 -!- Lord_of_Life has joined.
23:14:36 <\oren\> ␀␁␂␃␄␅␆␇␈␉␊␋␌␍␎␏␐␑␒␓␔␕␖␗␘␙␚␛␜␝␞␟␠␡
23:15:36 <hppavilion[1]> https://www.quora.com/What-are-some-of-the-most-clever-ways-a-programmer-can-mess-with-a-friend/answers/20717097?srid=dS99 is amazing
23:19:07 <\oren\> i'm pretty sure I could have done that in VB when I was in high school
23:20:00 <\oren\> Mostly because VB makes it easy to make a realistic looking interface...
23:21:04 -!- glitchmatick has joined.
23:21:13 <glitchmatick> hello
23:21:20 <\oren\> hi
23:22:00 <ais523> `welcome glitchmatick
23:22:05 <HackEgo> glitchmatick: 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.)
23:24:59 <\oren\> hppavilion[1]: anyway it seems like what he did was make a chat client with a green-on-black interface and pretend to be the shell
23:25:32 <\oren\> kind of elaborate for a prank
23:32:50 -!- oerjan has joined.
23:33:52 <oerjan> @messages-
23:33:52 <lambdabot> fizzie said 12h 40m 26s ago: I fixed `! bf32 (HackEgo) but I can't touch !bf32 (EgoBot). The interps/bf bit that extracts the bitness from the command name wasn't working; fixed it by using I_CMD instead of CMD.
23:33:52 <lambdabot> hppavilion[1] said 5h 26m 26s ago: I fixed by BF interpreter. It turned out I had < increment the pointer. *derp*.
23:34:10 <oerjan> @fizziesnack
23:34:10 <lambdabot> Unknown command, try @list
23:37:24 <oerjan> hppavilion[1]: how right-biased of you.
23:39:07 <\oren\> I have added 𝕬𝕭𝕮𝕯𝕰𝕱𝕳𝕴𝕵𝕸𝕹𝕺𝕽𝕾𝕿𝖀𝖆𝖇𝖈𝖉𝖊𝖋𝖌𝖍𝖎𝖏𝖐𝖑𝖒𝖓𝖔𝖕𝖖𝖗𝖘𝖙𝖚𝖛𝖜𝖝𝖞𝖟, with uncial letters I copied from the Book of Kells
23:41:35 <hppavilion[1]> \oren\: That does seem like the most likely result
23:42:13 <hppavilion[1]> \oren\: I'm kind of tempted to make my own Bloody Smurf (one that actually works) and get gullible people to use it
23:42:29 <\oren\> it's called nmap
23:42:37 <hppavilion[1]> @messages-load
23:42:37 <lambdabot> shachaf said 3h 8m 25s ago: html hth
23:42:42 <oerjan> \oren\: how kelligraphic
23:42:50 <\oren\> (the bloody smurf that acutually works)
23:43:15 <oerjan> `? html
23:43:18 <HackEgo> HTML is just pictures and words.
23:43:21 <hppavilion[1]> \oren\: No, it wouldn't work as in actually hacking things
23:43:29 <\oren\> why not?
23:43:42 <oerjan> `learn HTML is short for "hope this mess loads"
23:43:43 <hppavilion[1]> \oren\: It would be like a game disguised as a real hacking client that you throw at people
23:43:45 <HackEgo> Relearned 'html': HTML is short for "hope this mess loads"
23:43:59 <oerjan> `learn HTML is short for "hope this mess loads".
23:44:01 <HackEgo> Relearned 'html': HTML is short for "hope this mess loads".
23:45:00 <hppavilion[1]> \oren\: Because I don't know how hacking works
23:48:51 -!- glitchmatick has quit (Ping timeout: 276 seconds).
23:49:34 <oerjan> fizzie++ slightly less transient
23:50:49 <zgrep> :D (regarding 'HTML')
23:50:55 <myname> ack
23:51:09 * oerjan swats myname and int-e for their puns in the log -----###
23:51:27 <myname> oerjan: why that?
23:51:32 <\oren\> `u8tbl 0x1d9b 0x1da7
23:51:33 <HackEgo> Segmentation fault
23:51:41 <\oren\> `` u8tbl 0x1d9b 0x1da7
23:51:42 <HackEgo> ​ᶛᶜᶝᶞᶟ \ ᶠᶡᶢᶣᶤᶥᶦᶧ
23:51:44 <shachaf> oerjan: hey, why don't i get a swat
23:52:01 <oerjan> shachaf: i may not have got to that point yet.
23:52:05 <hppavilion[1]> shachaf: ...
23:52:21 <myname> how is a pun a reasonable excuse for swating?
23:52:30 <oerjan> myname: it's traditional
23:52:37 <myname> okay
23:52:49 <myname> i liked it. the pun, that is
23:53:13 <oerjan> although i've been lazily leaving things to boily's mapole recently
23:53:51 <myname> i still don't get why you read all the backlogs
23:54:22 <\oren\> `` u8tbl 0x16f1 to 0x16f8
23:54:23 <HackEgo> No output.
23:54:26 <\oren\> `` u8tbl 0x16f1 0x16f8
23:54:27 <HackEgo> ​ᛱᛲᛳᛴᛵᛶᛷᛸ
23:55:54 <\oren\> `` u8tbl 0x31f0 0x31ff
23:55:55 <HackEgo> ​ㇰㇱㇲㇳㇴㇵㇶㇷㇸㇹㇺㇻㇼㇽㇾㇿ
23:56:18 <\oren\> oh, right the extra katakana used for ainu
23:57:20 <\oren\> `` u8tbl 0x2934 0x2937
23:57:20 <HackEgo> ​⤴⤵⤶⤷
23:57:27 <oerjan> `file bin/u8tbl
23:57:28 <HackEgo> bin/u8tbl: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.26, BuildID[sha1]=0xf4bd6215e42f01142295c499b7a9bf8a7c37e01a, not stripped
23:58:21 <oerjan> `` mv bin/u8tbl{,.elf}; mkx 'bin/u8tbl//u8tbl.exe $@'
23:58:24 <hppavilion[1]> HAXINATOR
23:58:25 <HackEgo> bin/u8tbl
23:58:34 <oerjan> `u8tbl 0x31f0 0x31ff
23:58:35 <HackEgo> ​/hackenv/bin/u8tbl: line 1: u8tbl.exe: command not found
23:58:40 <shachaf> oerjan: well i don't remember making any puns
23:58:41 <oerjan> oops
23:58:41 <\oren\> `` u8tbl 0x27a9 0x27aa
23:58:42 <HackEgo> ​/hackenv/bin/u8tbl: line 1: u8tbl.exe: command not found
23:58:51 <shachaf> oerjan: but i'm sure i must've
23:59:05 <oerjan> `` mv u8tbl.{elf,exe}
23:59:05 <HackEgo> mv: cannot stat `u8tbl.elf': No such file or directory
23:59:07 <hppavilion[1]> H4X1N470R is a better name
23:59:23 <myname> oh dear
23:59:25 <oerjan> `` mv bin/u8tbl.{elf,exe}
23:59:25 <\oren\> `` u8tbl 0x27a9 0x27aa
23:59:54 <HackEgo> ​/hackenv/bin/u8tbl: line 1: u8tbl.exe: command not found
23:59:55 <oerjan> ...did we cause some kind of deadlock
23:59:55 <HackEgo> No output.
23:59:59 <\oren\> `` u8tbl 0x27a9 0x27aa
2016-03-26
00:00:00 <HackEgo> ​➩➪
00:00:03 <oerjan> `u8tbl 0x31f0 0x31ff
00:00:03 <HackEgo> ​ㇰㇱㇲㇳㇴㇵㇶㇷㇸㇹㇺㇻㇼㇽㇾㇿ
00:00:07 <oerjan> there
00:00:50 <oerjan> <myname> i still don't get why you read all the backlogs <-- ALSO TRADITION (sometimes i give up though)
00:01:20 <\oren\> `u8tbl 0x2395
00:01:21 <myname> back in these days with more bots than active users?
00:01:23 <HackEgo> ​/hackenv/bin/u8tbl: line 1: 293 Segmentation fault u8tbl.exe $@
00:01:29 <\oren\> `u8tbl 0x2395 0x2395
00:01:30 <HackEgo> ​⎕
00:01:31 -!- lynn_ has joined.
00:02:00 <myname> oerjan: how much time do you spend with that?
00:02:33 <oerjan> shachaf: it might get canceled out by the `olist hth
00:03:32 -!- lynn_ has quit (Read error: Connection reset by peer).
00:03:35 <oerjan> myname: DON'T ASK
00:03:45 <myname> i already did
00:04:15 -!- lynn_ has joined.
00:04:39 -!- lynn has quit (Ping timeout: 264 seconds).
00:05:07 <oerjan> if it's long i generally multitask while doing it, so it's hard to measure.
00:06:28 -!- lynn_ has changed nick to lynn.
00:07:51 <oerjan> <\oren\> speaking of which, how do i make orenwatson.be redirect to www.orenwatson.be? <-- i'm pretty sure there are people championing the opposite convention hth
00:08:33 <\oren\> well right now neither one reditrects, they jsut both go to the same ip
00:08:54 <oerjan> right, which is a bit awkward because you get parallel urls
00:09:11 <oerjan> (same if you have both http and https)
00:13:55 <\oren\> I don't see why browsers don't cache based on ip instead of domain name
00:15:18 -!- glitchmatick has joined.
00:15:33 -!- lynn has quit (Ping timeout: 240 seconds).
00:16:14 <shachaf> What do IPs have to do with anything?
00:17:08 -!- lynn has joined.
00:18:30 <\oren\> shachaf: well my server has an ip
00:18:50 <oerjan> \oren\: there are a lot of webhosts providing several entirely different websites from one ip
00:19:26 <oerjan> presumably as domain names are much less scarce than ipv4
00:19:32 <ais523> oerjan: actually doing that is apparently now mandatory
00:19:43 <ais523> i.e. if you run two websites from one physical server, they both have to be from the same IP
00:19:57 <oerjan> ais523: huh?
00:19:58 <ais523> in an attempt to reduce IPv4s being exhausted for stupid reasons
00:20:02 <ais523> (this doesn't apply to IPv6)
00:20:04 <oerjan> aha
00:20:09 <ais523> oerjan: you don't get the IP being allocated otherwise
00:24:31 * oerjan notes that www.google.no and www.google.se are the same ip, although www.google.com is different.
00:25:00 <\oren\> 52.2.213.98 is the ip of my server
00:25:49 <oerjan> \oren\: the point is, anyway, that the ip is not enough to tell whether two urls with only hostname different give the same result
00:25:52 <\oren\> so theoretically, the browser could note that both www.orenwatson.be and orenwatson.be are 52.2.213.98:80
00:26:00 <ais523> err, I should say same virtual serer
00:26:02 <ais523> *server
00:26:04 <ais523> rather than physical
00:26:24 <ais523> \oren\: yes but they might have different content
00:26:47 <ais523> the recommendation from http://no-www.org is to have the www. version redirect to the non-www. version
00:26:48 <\oren\> hmm, then should I redirect www to plain or vice versa?
00:26:50 <ais523> although they are obviously biased
00:29:10 <oerjan> i recall there's an opposing site but i think that one is mainly a joke
00:29:32 <ais523> the competing site is http://www.yes-www.org/
00:29:37 <ais523> …I should have guessed that
00:31:45 <oerjan> "I’ve even seen a few pathological cases where, given a URL, they will type www.google.com or another search engine into the address bar, and then type the URL they actually want to go to into Google’s search field!"
00:32:13 <myname> which is axtually quite common
00:32:21 <oerjan> i guess it's not a joke after all
00:33:02 <myname> well, most people put it into the google startpage
00:34:05 <ais523> I've heard reports of people entering "google" into Google's search field, then searching their actual query from the resulting page
00:40:09 <oerjan> <\oren\> the first lady of the united states is not allowed to be hot! <-- oh so _that_ is the real reason why they killed jfk!
00:41:11 -!- p34k has quit.
00:42:42 <ais523> hmm, when I see <\oren\> posted like that, it looks a bit like an HTML tag
00:43:01 <ais523> let's not get into another of those comment tag closing threads though </ais523>
00:43:09 <oerjan> from an alternative universe, perhaps
00:43:56 * oerjan doesn't have < before nicks in irssi, anyway.
00:45:45 <oerjan> suddenly my logreading slips away to a tatham puzzle
00:46:27 <oerjan> (currently being "Range")
00:47:16 <myname> i am puzzling that new one a lot
00:47:25 <myname> palisade
00:47:32 <myname> it's fairly easy, though
00:47:38 <oerjan> yeah
00:48:23 <myname> i actually enjoy that zombie/vampire/ghost one
00:48:26 <oerjan> i tend to cycle alphabetically, so that was a short while ago.
00:48:30 <oerjan> myname: me too!
00:49:25 <\oren\> since www.orenwatson.be is long, I'm going to use the no-www convention
00:52:53 -!- idris-bot has quit (Quit: Terminated).
00:53:12 -!- idris-bot has joined.
00:56:58 <myname> does anybody know the game "quattropoli"? (at least that's the name i know it under)
00:57:48 <tswett> myname: I haven't heard of it. What's it like?
00:58:30 <myname> ypu have a 4x4 game board and 16 different cards
00:58:51 <myname> each card has 4 properties: outer form, inner form, outer color, inner color
00:59:13 <myname> with form being circle or square and color.being black and white
00:59:46 <myname> what you have to achieve is make a row of 4 cards which share at least one property
00:59:52 <myname> but there's a catch
01:00:03 <myname> you always choose the card your opponent has to play
01:01:53 <ais523> does each player play to their own board?
01:02:00 <myname> no
01:02:13 <myname> there is one shared board and one shared set of 16 cards
01:02:15 -!- nooga has quit (Ping timeout: 264 seconds).
01:02:17 <ais523> so shared board, and you're aiming to be the first to complete a line
01:02:23 <myname> yes
01:02:23 <tswett> Do diagonal lines count?
01:02:27 <myname> yes
01:02:27 <ais523> but one person chooses which card is played, the other chooses where
01:02:34 <myname> exactly
01:02:48 <ais523> 16**16 = 2**64
01:02:56 <ais523> this game seems brute-forceable to me when pruned properly
01:03:08 <myname> certainly
01:03:09 <tswett> Quick, someone teach it to a neural net.
01:03:34 <myname> i just liked the twist of not being able to choose what to play
01:03:48 <myname> the youthful me liked it a lot
01:04:42 <int-e> (it may be useful to know that without the twist there's an easy non-losing strategy for the second player)
01:05:45 <myname> destroy any row that can be dangerous?
01:06:36 <ais523> none of the standard second-player exploits obviously work
01:06:43 <ais523> so this must be a new or unusual one
01:07:06 <int-e> Win if you can; otherwise mirror your opponent's move.
01:07:20 <ais523> oh, I see
01:07:28 <ais523> that's a clever variant on the normal mirroring situation
01:07:52 <\oren\> there should be a list of characters that look lik there was an error
01:11:21 <\oren\> 〿⎕〾〼◌□
01:12:46 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
01:13:18 <\oren\> 〾 in particular looks like something has gone horribly wrong
01:14:10 <\oren\> it looks like a character lookup error that isn't the normal one
01:17:46 <\oren\> Oh no the reactor 〾〾〾〾〾〾〾〾〾〾〾〾〾〾〾〾
01:21:51 -!- hppavilion[1] has joined.
01:26:07 <tswett> `unidecode 〾
01:26:22 <HackEgo> ​[U+303E IDEOGRAPHIC VARIATION INDICATOR]
01:26:53 <hppavilion[1]> tswett: Do you know anything about low-level GUI programming?
01:27:04 <tswett> Tiny bits.
01:27:48 <hppavilion[1]> tswett: I'm trying to make my own.
01:27:58 <zzo38> I know some things of GUI programming with Xlib and with VB6
01:28:12 <tswett> hppavilion[1]: using what sort of library or whatever?
01:28:21 <hppavilion[1]> tswett: Any standard libraries necessary
01:28:28 <hppavilion[1]> zzo38: Oh, right, you made Xlib bindings for JS
01:29:00 <hppavilion[1]> tswett: My own GUI library that is; got phrased wrong
01:29:11 <tswett> Is SDL still current?
01:29:21 <hppavilion[1]> tswett: SDL?
01:29:35 <tswett> That library for doing graphics and audio and so forth.
01:29:53 <hppavilion[1]> tswett: Ah.
01:33:01 <ais523> tswett: yes but it's inefficient :-(
01:33:02 -!- lynn_ has joined.
01:33:09 -!- lynn has quit (Disconnected by services).
01:33:11 -!- lynn_ has changed nick to lynn.
01:52:01 * oerjan concludes that the 2nd player non-losing depends on there being an even number of cells in the shortest direction
01:52:54 <oerjan> hm wait
01:53:40 <oerjan> maybe both must be
01:54:36 <shachaf> oerjan: are you talking about the game of life hth
01:54:39 <oerjan> you need a mirroring that fixes no odd-length line
01:54:53 <oerjan> shachaf: no, myname's game
01:56:23 <oerjan> hm things get a bit fishy when not quadratic.
01:56:51 -!- hppavilion[1] has quit (Ping timeout: 264 seconds).
01:57:12 <oerjan> (what's a diagonal)
01:58:22 <oerjan> or rather, int-e's simplification
01:59:28 <oerjan> hm with odd size, does the first player have an easy win by starting in the center
01:59:50 <oerjan> and from then doing a mirroring of the second player
02:00:21 <oerjan> *non-loss
02:02:49 <oerjan> mirroring around the center, that is, not a line
02:03:36 * oerjan thinks so
02:06:34 <myname> how do you mirror selecting if each card is unique?
02:12:22 <myname> liie, i start by selecting black outer square black inner square
02:12:35 <myname> you put it somewhere and want to mirror that
02:12:41 <myname> how do you do it?
02:13:11 <myname> black outer square white inner square? black outer squeare black inner circle?
02:15:11 -!- Guest96610 has joined.
02:15:16 <Guest96610> o/
02:16:02 <Guest96610> I found your channel in an old log of IRC
02:16:22 <Guest96610> It's about esotic language, right ?
02:16:24 -!- glitchmatick has quit (Ping timeout: 276 seconds).
02:16:29 <Guest96610> Is there somebody? :)
02:16:29 <\oren\> yup
02:16:30 <myname> also, there are 16! possible boards, being around 2.1 * 10^14
02:16:58 <\oren\> we also discuss esoteric board games, and fonts, etc...
02:17:07 <myname> and mtg
02:17:10 <Guest96610> I'm looking for an specific esoteric language
02:17:17 <Guest96610> using POINTING TRIANGLE
02:17:29 <Guest96610> using 😀
02:18:05 <Guest96610> is there any way you point me on some direction with theses informations? ^^
02:19:21 <Guest96610> I may have a code (I guess it's code), I would need to know what does this code do
02:19:22 <myname> define pointing triangle. like, the symbol?
02:19:26 <Guest96610> Yep
02:19:27 <Guest96610> 🐇 🐼 🍇 🐇🐖 🏁 ➡️ 🚂 🍇 🍮 s 0 🍮 i 0 🔁 ◀️ i 3427 🍇 🍊 ▶️ i 3418 🍇 🍳 s 🍉 🍓 🍇 🍫 s 🍉 🍫 i 🍉 😀 🔷🔡🚂 s 10 🍮 a 0 🍮 i 0 🔁 ◀️ i 1239 🍇🍊 ▶️ i 1229 🍇🍳 a🍉🍓 🍇🍫 a🍉🍫 i🍉😀 🔷🔡🚂 a 10🍎 0🍉🍉
02:20:04 <myname> doesn't look like any code i know
02:20:05 <\oren\> hmm there are various emoji language
02:20:14 <myname> yeah
02:20:23 <Guest96610> damnit
02:20:32 <myname> but they either are fare more lisp like or less wordy
02:21:50 <Guest96610> hmm.. do you know where I can find what I'm looking for? I tried an esolang list, didn't recognize anything
02:23:17 <\oren\> is it heartforth?
02:24:48 <Guest96610> I'm gonna check
02:25:31 <oerjan> <myname> how do you mirror selecting if each card is unique? <-- curses, foiled again
02:27:08 <\oren\> https://github.com/nasser/Emojinal
02:27:15 <\oren\> it could also be this
02:27:37 <\oren\> which does appear to use those emoji
02:27:39 <Guest96610> I'll check it too then ! :D
02:27:45 <Guest96610> (thank you :) )
02:28:31 -!- jaboja has quit (Remote host closed the connection).
02:29:31 <oerjan> myname: actually, choosing the card with all properties opposite might work for the even case
02:30:07 <oerjan> for the odd there'll be trouble choosing the initial center
02:30:58 <oerjan> so, white outer circle white inner circle
02:31:33 <oerjan> myname: oh and this was all assuming without choosing your opponent's cards.
02:32:18 <myname> having odd numbers would imply a property having more than 2 ways
02:32:43 <myname> in which case there is no direct opposite
02:33:43 <oerjan> well i was assuming nothing about what cards would be with other board sizes
02:34:46 <oerjan> maybe you can manage something with a more complicated permutation of cards
02:35:25 -!- glitchmatick has joined.
02:38:29 <myname> i need to talk somebody into writing an app for that
02:56:57 -!- me2 has quit (Read error: Connection reset by peer).
02:57:38 -!- me2 has joined.
02:57:59 -!- hppavilion[1] has joined.
03:03:44 -!- bender| has joined.
03:09:31 -!- Guest96610 has quit (Read error: Connection reset by peer).
03:24:39 <ais523> is there a word that means "not on fire"?
03:28:06 <MDude> Extinguished can mean "previously but not currently on fire".
03:28:56 <MDude> Though it can also mean twarted, or dead. Snuffed carries the same meaning.
03:31:10 <ais523> hmm, yes
03:31:12 <ais523> thanks
03:34:06 -!- ent0nces has joined.
03:34:20 -!- ent0nces has quit (Remote host closed the connection).
03:35:52 -!- ent0nces has joined.
03:36:30 -!- ent0nces has quit (Client Quit).
03:37:41 -!- ent0nces has joined.
03:38:42 -!- ent0nces has quit (Remote host closed the connection).
03:39:12 -!- ent0nces has joined.
03:39:36 -!- XorSwap has joined.
03:43:03 -!- ent0nces has quit (Read error: Connection reset by peer).
03:43:35 -!- ent0nces has joined.
03:46:17 -!- ent0nces has quit (Read error: Connection reset by peer).
03:47:00 -!- ent0nces has joined.
03:50:35 -!- ent0nces has quit (Read error: Connection reset by peer).
03:51:41 -!- ent0nces has joined.
04:03:55 <hppavilion[1]> bender|: Hi
04:18:54 <bender|> hello
04:19:00 <bender|> (sorry, was away)
04:28:29 -!- ent0nces has quit (Read error: Connection reset by peer).
04:29:25 -!- ent0nces has joined.
04:34:11 -!- XorSwap has quit (Quit: Leaving).
04:36:04 -!- ent0nces has quit (Read error: Connection reset by peer).
04:37:22 -!- ent0nces has joined.
04:38:59 -!- ent0nces has quit (Read error: Connection reset by peer).
04:39:50 -!- ent0nces has joined.
04:40:24 <hppavilion[1]> bender|: I'm writing a C-like language compiler targeting "TargetFuck"
04:40:29 <hppavilion[1]> *"TargetBF"
04:42:58 <bender|> lol
04:43:15 <bender|> I remember seeing a C->BF compiler
04:54:21 -!- glitchmatick has quit (Ping timeout: 276 seconds).
04:59:10 <hppavilion[1]> bender|: I know
04:59:46 -!- ent0nces has quit (Remote host closed the connection).
05:05:25 -!- lynn has quit (Ping timeout: 252 seconds).
05:15:12 <\oren\> the king of jordan says turkey is behind isis
05:17:12 <oerjan> has the old guy turned senile now
05:17:20 <oerjan> wait, he's not that old is he
05:17:55 <\oren\> well yeah that was my first reaction it sounds like something my crazy greatuncle would say
05:18:16 <\oren\> (sorry uncle bruce)
05:20:59 <\oren\> he's 54
05:39:34 <izabera> \oren\: are you oren in the online-go.com chat?
05:44:16 <\oren\> no
05:44:29 <izabera> ok
05:44:36 <\oren\> right now I'm playing ksp
06:25:46 <hppavilion[1]> Has anyone ever tried compiling to Thue?
06:26:21 <zzo38> I have written a document with some ideas about a new version of X protocol. If there is something you believe is currently wrong with X then I might add those too, in case you also have some ideas related to such thing.
06:30:55 <izabera> what about wayland?
06:31:24 <shachaf> zzo38: What if I think X should be more like NeWS?
06:32:12 <zzo38> shachaf: What are the differences of NeWS?
06:33:04 <shachaf> NeWS used Postscript.
06:33:08 <shachaf> https://en.wikipedia.org/wiki/NeWS
06:33:40 <zzo38> izabera: Wayland also has several problems though.
06:33:53 <shachaf> newsham: Do you like NeWS?
06:33:54 <izabera> care to explain?
06:33:58 <hppavilion[1]> https://www.youtube.com/watch?v=oT3mCybbhf0
06:35:49 <zzo38> I think there are problems with NeWS as well. X seems the best designed system so far (although many of its extensions are badly designed), although it has some problems too.
06:36:47 -!- lambda-11235 has quit (Quit: Bye).
06:36:56 <shachaf> X is too slow over slow networks.
06:37:28 <izabera> get a faster network
06:38:18 <shachaf> can't do anything about the speed of light tdnh
06:39:34 <zzo38> Changes to the protocol could be made to improve speed; the server might also implement compressed connections if needed (which is really a network feature and would not be a part of the protocol)
06:45:05 <shachaf> That doesn't help with latency.
06:47:07 <zzo38> Some changes could possibly to improve latency too but not if it makes it complicated
06:49:51 <shachaf> Do you like PostScript?
06:51:55 <zzo38> It may be suitable as a standalone programming language for printing but it should not be the protocol (some printers use it as a protocol and I consider that a bad idea)
06:53:54 <shachaf> What language would you use for NeWS?
06:54:27 <shachaf> JavaScript?
06:55:02 <zzo38> I do not believe the protocol should use anything like that
06:55:59 <shachaf> Do you like web applications?
06:56:04 <shachaf> Like Gmail.
06:56:26 <shachaf> Oh, did you relay my message to vaporware?
06:57:20 <zzo38> No (to both questions)
06:58:10 <shachaf> What do you think people should use instead of web applications?
06:58:58 <zzo38> Command-line program should be provided and also protocol for use with SQLite virtual tables.
07:03:42 <zzo38> Actually my ideas for new version of X does include support for stored procedures, although how they are implemented and what programming languages and so on (they might not even be implemented at all) is depend on the server implementation, although there is a standardized calling convention for stored procedures.
07:50:34 -!- Sgeo__ has quit (Ping timeout: 240 seconds).
07:50:39 -!- glitchmatick has joined.
07:55:09 -!- glitchmatick has quit (Ping timeout: 248 seconds).
08:01:39 -!- hppavilion[1] has quit (Ping timeout: 264 seconds).
08:03:38 -!- nooga has joined.
08:10:59 -!- ais523 has quit.
08:41:12 -!- nooga has quit (Ping timeout: 276 seconds).
08:45:27 -!- nooga has joined.
08:47:20 -!- J_Arcane has quit (Ping timeout: 244 seconds).
08:50:50 -!- nooga has quit (Ping timeout: 250 seconds).
09:06:06 -!- earendel has quit (Ping timeout: 248 seconds).
09:08:24 -!- oerjan has quit (Quit: Nite).
09:26:01 -!- nooga has joined.
10:06:40 -!- Deepfriedice has joined.
10:07:00 -!- nooga has quit (Ping timeout: 246 seconds).
10:09:20 -!- AnotherTest has joined.
10:09:47 -!- nooga has joined.
11:29:15 -!- nooga has quit (Ping timeout: 246 seconds).
11:44:25 -!- yorick__ has changed nick to yorick.
12:24:04 -!- Riviera has quit (Remote host closed the connection).
12:39:36 -!- boily has joined.
12:41:52 <boily> @massages-loud
12:41:52 <lambdabot> You don't have any messages
13:01:08 -!- boily has quit (Quit: FORUM CHICKEN).
13:05:37 <int-e> . o O ( @tell boily you still don't have any messages )
13:06:37 <olsner> @messages
13:06:37 <lambdabot> You don't have any messages
13:12:04 -!- olsner has quit (Quit: ZNC - http://znc.in).
13:12:32 -!- olsner has joined.
13:27:25 -!- earendel has joined.
13:44:58 -!- nooga has joined.
14:04:42 -!- nooga has quit (Read error: Connection reset by peer).
14:23:10 -!- nooga has joined.
14:36:41 -!- bender| has quit (Ping timeout: 268 seconds).
14:39:29 -!- p34k has joined.
15:05:22 -!- nooga has quit (Read error: Connection reset by peer).
15:10:17 -!- nooga has joined.
15:10:43 -!- bender| has joined.
15:16:43 -!- Deepfriedice has quit (Quit: Leaving).
15:19:36 -!- nooga has quit (Read error: Connection reset by peer).
15:20:01 -!- nooga has joined.
15:20:28 -!- lambda-11235 has joined.
15:28:11 -!- glitchmatick has joined.
15:31:34 -!- ent0nces has joined.
15:37:02 -!- glitchmatick has quit (Ping timeout: 260 seconds).
15:40:28 -!- ent0nces has quit.
16:01:21 -!- MoALTz has quit (Ping timeout: 244 seconds).
16:07:45 -!- jaboja has joined.
16:10:58 -!- nooga has quit (Read error: No route to host).
16:12:24 -!- PinealGlandOptic has joined.
16:13:39 <HackEgo> [wiki] [[List of ideas]] https://esolangs.org/w/index.php?diff=46650&oldid=46572 * MDude * (+832) two ideas, plus a generalization of the second one
16:16:50 -!- p34k has quit.
16:23:26 -!- bender| has quit (Ping timeout: 248 seconds).
16:51:15 -!- gde33 has joined.
16:56:44 -!- jaboja has quit (Ping timeout: 260 seconds).
17:18:18 <APic> There is still no LLVM-_Back_end for Brainfuck, just a Frontend, right?
17:27:08 <APic> http://esolangs.org/wiki/C2BF looks like a good starting Point.
17:27:20 <myname> it's pretty hard to do such a thing
17:28:42 -!- Froox has joined.
17:29:11 -!- Sgeo__ has joined.
17:31:15 -!- Froo has joined.
17:31:33 <APic> myname: True.
17:31:34 -!- Frooxius has quit (Ping timeout: 240 seconds).
17:31:53 <APic> All the easy Things are done in our infinite Multiverses ;)
17:34:22 -!- Froox has quit (Ping timeout: 244 seconds).
17:48:45 -!- XorSwap has joined.
17:51:13 -!- earendel has quit (Ping timeout: 250 seconds).
17:54:45 -!- p34k has joined.
17:59:04 -!- MoALTz has joined.
18:02:01 <HackEgo> [wiki] [[Brainfuck]] https://esolangs.org/w/index.php?diff=46651&oldid=46496 * Captainpicard98 * (+118) Added the TIBrain implementation
18:02:52 -!- XorSwap has quit (Read error: Connection reset by peer).
18:03:02 -!- XorSwap has joined.
18:13:12 -!- lambda-11235 has quit (Read error: Connection reset by peer).
18:14:57 -!- XorSwap has quit (Quit: Leaving).
18:31:30 -!- jaboja has joined.
18:35:12 -!- gde33 has quit.
18:35:56 -!- nooga has joined.
18:51:42 -!- earendel has joined.
19:01:05 -!- hppavilion[1] has joined.
19:09:58 -!- ais523 has joined.
19:19:44 -!- lleu has quit (Read error: Connection reset by peer).
19:27:54 -!- mihow has joined.
19:30:03 -!- nooga has quit (Ping timeout: 240 seconds).
19:34:19 -!- mihow has quit (Quit: mihow).
19:47:15 -!- jaboja has quit (Ping timeout: 248 seconds).
19:55:02 -!- lynn has joined.
20:17:05 -!- hppavilion[1] has quit (Ping timeout: 268 seconds).
20:27:23 -!- nooga has joined.
20:35:17 -!- jaboja has joined.
20:46:12 -!- lynn has quit (Quit: Leaving).
20:50:23 -!- bb010g has joined.
21:03:28 -!- J_Arcane has joined.
21:04:06 -!- ais523 has quit.
21:04:49 -!- lynn has joined.
21:04:50 -!- lynn_ has joined.
21:05:27 -!- lynn_ has quit (Client Quit).
21:31:33 -!- jaboja has quit (Ping timeout: 240 seconds).
21:47:08 <HackEgo> [wiki] [[Brainfuck implementations]] https://esolangs.org/w/index.php?diff=46652&oldid=45553 * Rdebath * (+118) Moved from "Brainfuck" page
21:47:09 <HackEgo> [wiki] [[Brainfuck]] https://esolangs.org/w/index.php?diff=46653&oldid=46651 * Rdebath * (-118) Interpreter not "Notabled", moved to "implementations" Undo revision 46651 by [[Special:Contributions/Captainpicard98|Captainpicard98]] ([[User talk:Captainpicard98|talk]])
21:53:25 <Sgeo__> I assume I don't count as a hirable type theorist
21:53:37 <Sgeo__> Just because I like experimenting with types in Rust
21:57:20 -!- PinealGlandOptic has quit (Quit: leaving).
22:04:51 <b_jonas> fungot, are you a hirable type theorist?
22:04:51 <fungot> b_jonas: s/ pee/ pea ofc the nature of the art is ' let john handle it, no
22:05:31 <b_jonas> @djinn a -> Either a b {- lambdabot, are you a hirable type theorist? -}
22:05:31 <lambdabot> Cannot parse command
22:05:40 <b_jonas> @djinn a -> Either a b
22:05:41 <lambdabot> f = Left
22:08:01 -!- AnotherTest has quit (Quit: ZNC - http://znc.in).
22:27:29 -!- lambda-11235 has joined.
22:57:08 -!- asie has quit (Ping timeout: 250 seconds).
22:58:55 <b_jonas> How much do you suppose people will be using CD-sized disks (including DVD and Bluray) say 12 years from now? I'm trying to tell if a DVD disk is a reasonable object for size comparison on a photo.
22:59:59 -!- asie has joined.
23:00:27 -!- lynn_ has joined.
23:01:05 -!- lynn has quit (Disconnected by services).
23:01:07 -!- lynn_ has changed nick to lynn.
23:01:32 <b_jonas> Maybe pencils or rubik's cubes or other similar objects whose size is designed to be convenient to hold in human hands are better.
23:02:19 <zzo38> I think a DVD is better because pencil and cube may be different sizes. But, ensure the DVD is labeled as "DVD" to don't confuse with other discs of different sizes
23:02:57 -!- nooga has quit (Ping timeout: 244 seconds).
23:03:02 <zzo38> However a ruler with inches and/or centimetres is another alternative
23:03:58 <b_jonas> zzo38: are there disks with different sizes that look similar? A ruler is a good idea, yes. How familiar are Americans with centimiters these days?
23:04:45 <b_jonas> Or with centimeter rulers, rather.
23:06:42 <zzo38> As long as it is labeled it should be OK. Many rulers have both though, so use one with both
23:08:44 <b_jonas> Hmm… I think many rulers aren't labelled as centimeters, but you can tell because centimeter rulers are divided to 10 ticks between numbered large ticks, whereas inch rulers are divided to 16 usually.
23:12:23 -!- Froo has quit (Read error: Connection reset by peer).
23:12:54 <b_jonas> zzo38: other possible choices for comparison objects are: pen, coin or banknote (I don't like that one because it works only if the expected audience is from the same country and time), credit card, floppy disk, matches, door key, keyboard (that's another of those designed to match human hands), thimble, drinking glass, human hand.
23:13:15 <b_jonas> Oh, and tennis ball.
23:18:54 -!- nooga has joined.
23:19:44 -!- jaboja has joined.
23:20:12 <b_jonas> AA battery, light bulb, ear plug, computer power socket or plug, VGA socket, toothbrush, …
23:28:02 -!- Frooxius has joined.
23:30:31 -!- hppavilion[1] has joined.
23:31:13 -!- p34k has quit.
23:31:39 <hppavilion[1]> How about a stylesheet language called MOAR? xD
23:41:16 -!- oerjan has joined.
23:58:28 <Sgeo__> I assume it's a strict subset of CSS
23:58:47 <int-e> oerjanello
23:59:00 <int-e> one hour before they steal 60 minutes from us
23:59:09 <int-e> how does that make you feel?
2016-03-27
00:00:33 <quintopia> ...the 60 minutes podcast is already freely available outside US...why take it from US?
00:02:21 -!- oerjan has set topic: All Europeans: Prepare your time machines! | The international hub of esoteric programming language and font design | http://codu.org/logs/_esoteric/ http://tunes.org/~nef/logs/esoteric/?C=M;O=D | The kitten typesetting channel.
00:05:28 <oerjan> quintopia: to save it before trump becomes president, of course!
00:05:52 <oerjan> int-evening
00:07:37 <quintopia> oerjan: i cant see him winning
00:09:18 <hppavilion[1]> Sgeo__: It is not, unfortunately.
00:09:35 <int-e> Hmmm, I'd agree if "can't see" = "can't imagine what it would be like"
00:10:04 <hppavilion[1]> Sgeo__: I'm thinking of making MOAR also produce JS, to make it a powerful scripting language too
00:10:38 <hppavilion[1]> Sgeo__: In fact, I might just have to make an entire CSS-based programming language
00:10:45 <int-e> I imagine Trump would be a Zaphod Beeblebrox with actual power.
00:11:54 <oerjan> > 738/(738+463+166+143)*100
00:11:55 <lambdabot> 48.87417218543047
00:12:22 <oerjan> almost 50% of rep. delegates so far
00:12:32 <hppavilion[1]> I can't find any formal grammars for CSS online :(
00:13:23 <hppavilion[1]> The first change that would have to be made for programming in CSS is that stylation keys could have arguments
00:13:58 <hppavilion[1]> And styles would be anonymous
00:14:26 <hppavilion[1]> And rules could be saved to variables
00:15:11 <hppavilion[1]> So you could do:
00:15:12 <hppavilion[1]> p_w := p {background-color: #FFFFFF; on-keypress('r'): {background-color: #FF0000; on-keypress('w'): $p_w}}
00:15:13 <quintopia> oerjan: if he wins the republican nod, it will either tear the party apart or make the ongoing civil cold war much hotter
00:17:17 <oerjan> quintopia: hm ok i agree, the polls indicate he wouldn't even win if against sanders
00:18:29 <oerjan> hm actually his chances are about equally glum regardless
00:20:18 <oerjan> huh actually sanders looks _better_ than clinton
00:20:23 <oerjan> (against trump)
00:22:02 <quintopia> this place will get exciting between now and november
00:24:04 <oerjan> interesting. all the 6 matchups on this poll site give sanders a better chance than clinton in the general election.
00:24:47 <hppavilion[1]> Yep, I think I invented a practical Esolang.
00:24:48 <oerjan> well in average points. who knows what that means in states.
00:25:12 <hppavilion[1]> (Though it's web dev, so that's probably already been done)
00:25:34 <int-e> PHP? *runs*
00:26:21 <shachaf> oerjan: which king are you going to vote for twh
00:26:50 <oerjan> i'm wondering who it is that prefers sanders over clinton if the democrats themselves don't...
00:26:55 <int-e> Queen Merkel, hmm.
00:27:00 <hppavilion[1]> int-e: Maybe
00:27:59 <quintopia> oerjan: many rank-and-file dems prefer sanders
00:28:09 <quintopia> not sure that that matters
00:29:47 <oerjan> perhaps it's just some non-transitive preferences
00:31:02 <quintopia> what stats are you using?
00:32:38 -!- kuluma has joined.
00:34:22 <oerjan> realclearpolitics.com (annoying popups though)
00:38:16 <int-e> ah superdelegates
00:38:37 <kuluma> oh don't get me started on politics
00:38:41 <int-e> they're such a lovely perversion
00:44:12 <HackEgo> [wiki] [[CCS]] N https://esolangs.org/w/index.php?oldid=46654 * Hppavilion1 * (+2083) Created (w/ Grammar)
00:45:18 <int-e> unfortunate name. https://en.wikipedia.org/wiki/Calculus_of_communicating_systems
00:53:20 -!- boily has joined.
00:53:30 <int-e> oh it's almost time to fasten the seatbelts
00:55:12 -!- nooga has quit (Ping timeout: 268 seconds).
00:58:11 -!- lambda-11235 has quit (Max SendQ exceeded).
00:58:12 <boily> int-ello. which ones?
00:58:35 <int-e> The ones on the time machine, of course.
00:58:36 -!- lambda-11235 has joined.
00:59:56 <int-e> Ayeeeeeee...
01:00:00 <int-e> ...eeeeeeeeeee!
01:00:01 <oerjan> WHEEEEE
01:00:27 -!- oerjan has set topic: All Europeans: Welcome to the future! | The international hub of esoteric programming language and font design | http://codu.org/logs/_esoteric/ http://tunes.org/~nef/logs/esoteric/?C=M;O=D | The kitten typesetting channel.
01:01:09 <int-e> I think I got the timing right :)
01:02:15 <boily> there's a future?
01:02:32 <HackEgo> [wiki] [[CCS]] https://esolangs.org/w/index.php?diff=46655&oldid=46654 * Hppavilion1 * (+2227) Semantics & example
01:02:37 <int-e> boily: There was.
01:03:02 <boily> . o O ( lesson of the day: don't eat too much dim sum when you're having an Armenian supper. waaaay too much food. )
01:03:26 <boily> int-e: you don't count; you're in a temporally shifted timeframe.
01:03:59 <int-e> I prefer to call it elevated.
01:04:35 <int-e> Also how did it get so late out of a sudden!!1elven
01:04:46 <int-e> Err, eleven?
01:05:17 <boily> `? eleven
01:06:02 <HackEgo> eleven? ¯\(°​_o)/¯
01:06:54 <oerjan> int-e: your subconscious is trying to tell you it was elves hth
01:07:09 <HackEgo> [wiki] [[CCS]] https://esolangs.org/w/index.php?diff=46656&oldid=46655 * Hppavilion1 * (+101) /* Features */ Rearranged, checklisted
01:07:17 <int-e> Ah now it makes sense.
01:07:52 <oerjan> boily: dim sum is armenian now?
01:08:44 <boily> hellørjan. sorry, lack of details. I had dim sum for lunch, and then Armenian food for supper hth
01:09:32 <boily> at least, today was shrimpful :D
01:10:42 -!- ineiros has quit (Ping timeout: 246 seconds).
01:11:06 -!- jaboja has quit (Ping timeout: 244 seconds).
01:12:37 -!- jaboja has joined.
01:17:47 -!- jaboja has quit (Ping timeout: 244 seconds).
01:21:06 -!- jaboja has joined.
01:25:21 -!- ineiros has joined.
01:30:03 -!- ineiros has quit (Ping timeout: 240 seconds).
01:41:20 -!- ineiros has joined.
01:48:28 -!- boily has quit (Quit: WITHOUT CHICKEN).
02:06:36 -!- lynn_ has joined.
02:07:23 -!- lynn has quit (Disconnected by services).
02:07:26 -!- lynn_ has changed nick to lynn.
02:18:06 -!- XorSwap has joined.
02:21:07 <FireFly> Oh darn
02:21:19 <FireFly> That's why I thought it was so late suddenly
02:40:54 -!- mihow has joined.
02:52:39 <zzo38> What is the strangest thing that you could do in orthodox Magic: the Puzzling?
02:53:30 <shachaf> What is orthodox Magic: the Puzzling?
02:54:20 <zzo38> Magic: the Puzzling that does not use any nonstandard rules or nonstandard cards.
03:06:31 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
03:24:07 -!- bender| has joined.
03:27:25 -!- jaboja has quit (Ping timeout: 252 seconds).
03:38:55 -!- bb010g has quit (Quit: Connection closed for inactivity).
03:52:31 -!- lleu has joined.
04:02:51 -!- kuluma has quit (Ping timeout: 264 seconds).
04:41:34 -!- mihow has quit (Quit: mihow).
04:45:01 -!- mihow has joined.
05:01:29 -!- hppavilion[1] has joined.
05:09:48 <zzo38> I made a document called x.version12.draft which has ideas about new stuff for a new version of the X window protocol. Many things are omitted, but also some things are added. A few features may especially make it more suitable for use with TV screens: VideoClass windows, translucent windows, and extra keysyms.
05:12:57 <zzo38> (The server is not guaranteed to support any or all of these features though; they are optional features.)
05:14:25 -!- XorSwap has quit (Ping timeout: 244 seconds).
05:20:22 -!- XorSwap has joined.
05:25:17 -!- XorSwap has quit (Quit: Leaving).
05:56:25 -!- copumpkin has quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…).
06:00:35 -!- copumpkin has joined.
06:09:42 -!- lynn has quit (Ping timeout: 260 seconds).
06:19:13 -!- mihow has quit (Quit: mihow).
06:33:26 -!- lambda-11235 has quit (Quit: Bye).
07:13:45 -!- Sprocklem has quit (Quit: [).
07:27:18 -!- Sprocklem has joined.
07:32:07 -!- benderpc_ has joined.
07:33:56 -!- nooga has joined.
07:34:07 -!- bender| has quit (Ping timeout: 250 seconds).
07:45:09 -!- nooga has quit (Ping timeout: 246 seconds).
07:55:11 -!- nooga has joined.
08:01:18 -!- nooga has quit (Ping timeout: 276 seconds).
08:07:47 -!- black has joined.
08:08:03 <black> hi
08:08:09 <black> anyone here?
08:08:37 <shachaf> `welcome black
08:08:48 <HackEgo> black: 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.)
08:12:29 <black> who can help me with a esolang chllenge?
08:15:25 -!- mihow has joined.
08:21:29 -!- black has quit (Ping timeout: 244 seconds).
08:42:47 -!- oerjan has quit (Quit: Nite).
08:52:27 -!- nooga has joined.
09:18:51 <HackEgo> [wiki] [[Template:Cnw]] N https://esolangs.org/w/index.php?oldid=46657 * 111.37.28.34 * (+504) Created page with "<code>{{#tag:nowiki|{{{1|}}}}}{{#tag:nowiki|{{{2|}}}}}{{#tag:nowiki|{{{3|}}}}}{{#tag:nowiki|{{{4|}}}}}{{#tag:nowiki|{{{5|}}}}}{{#tag:nowiki|{{{6|}}}}}{{#tag:nowiki|{{{7|}}}}}{..."
09:23:54 <HackEgo> [wiki] [[Template:=]] N https://esolangs.org/w/index.php?oldid=46658 * 111.37.28.34 * (+1) Created page with "="
09:32:38 <HackEgo> [wiki] [[Template:X2]] N https://esolangs.org/w/index.php?oldid=46659 * 111.37.28.34 * (+21) Created page with "{{{{{1|}}}|{{{1|}}}}}"
09:36:11 -!- mihow has quit (Quit: mihow).
09:39:46 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
10:31:44 <myname> wtf
10:36:03 -!- nooga has quit (Ping timeout: 240 seconds).
10:37:13 -!- nooga has joined.
10:40:04 -!- benderpc_ has changed nick to osdev-offtopic.
10:40:26 -!- osdev-offtopic has changed nick to bender|.
10:41:33 -!- nooga has quit (Ping timeout: 240 seconds).
11:37:26 -!- nooga has joined.
11:38:16 -!- lynn has joined.
11:42:47 -!- nooga has quit (Ping timeout: 260 seconds).
11:53:56 -!- jaboja has joined.
11:58:40 -!- boily has joined.
12:07:26 <boily> coppro: copprello.
12:27:09 -!- jaboja has quit (Remote host closed the connection).
12:40:04 -!- nooga has joined.
12:44:28 -!- nooga has quit (Ping timeout: 244 seconds).
12:44:54 <coppro> boily: bonjouroily
12:44:58 <coppro> I'm fleeing the country today
12:46:30 <boily> nooooo! can I ask a quick MtG question before you disappear in faraway lands?
12:57:13 <coppro> yes
12:58:22 <boily> thanks!
12:58:32 <boily> we had a timing issue about the legendary rule this week:
12:58:59 <boily> suppose there's a Leyline of Singularity in play, and I have a Gray Merchant of Asphodel in play.
12:59:36 <boily> if I play a second Gary, will the devotion of the first count towards the ETB, or will the legendary rule apply first and dislodge the first Gary?
12:59:51 <coppro> if you play another grey merchant, you don't count the extra symbols. legendary rule is a state-based action so it applies once the ability goes on the stack and before it resolves
13:01:19 <boily> that's what we thought. thanks for the clarification.
13:01:39 * boily should become a judge some day...
13:06:19 <int-e> Repent or you shall BOIL!
13:16:40 <boily> int-ello. I am unrepentable hth
13:19:50 <HackEgo> [wiki] [[Logique]] https://esolangs.org/w/index.php?diff=46660&oldid=40222 * Rdebath * (-389) Interpreter and github user gone.
13:32:50 -!- boily has quit (Quit: PLACE CHICKEN).
13:32:50 <coppro> boily: judging is easy hth
13:33:19 <int-e> place?
13:40:56 -!- nooga has joined.
13:46:28 -!- nooga has quit (Ping timeout: 244 seconds).
14:10:29 <HackEgo> [wiki] [[ODDBALL]] M https://esolangs.org/w/index.php?diff=46661&oldid=40932 * LegionMammal978 * (+13) /* External resources */
14:34:01 -!- nooga has joined.
14:34:07 -!- jaboja has joined.
14:51:47 -!- jaboja has quit (Ping timeout: 260 seconds).
14:54:51 -!- jaboja has joined.
14:59:15 -!- nooga_ has joined.
14:59:33 -!- nooga has quit (Ping timeout: 240 seconds).
15:04:34 -!- lambda-11235 has joined.
15:07:20 -!- lleu has quit (Quit: That's what she said).
15:08:40 -!- jaboja has quit (Ping timeout: 250 seconds).
15:25:42 -!- nooga_ has quit (Read error: Connection reset by peer).
15:57:49 -!- MoALTz_ has joined.
16:00:14 -!- gde33 has quit (Read error: Connection reset by peer).
16:01:18 -!- MoALTz has quit (Ping timeout: 244 seconds).
16:20:09 -!- jaboja has joined.
16:21:13 <b_jonas> Is any big company who produces lots of https traffic known to send data in zlib format compression that is compressed better than the well-known libzlib library creates? The compression could be at ssl level or http level, but I'm specifically asking about zlib or gzip format, not deflate/zip/pkzip format.
16:22:32 <b_jonas> I'm asking because if someone is sending large chunks of well-compressible text or html or json or xml or whatever data at the same time, then they could totally gain a few percent of bandwidth on them just by using a better compressor backend.
16:26:37 -!- jaboja has quit (Ping timeout: 244 seconds).
16:28:38 <lifthrasiir> b_jonas: I think https://github.com/google/zopfli is Google's answer to that
16:36:40 <olsner> hmm, but zlib/gzip *is* deflate/zip/pkzip?
16:37:15 <olsner> technically the headers differ, but in http content-encoding the headers are also optional
16:38:31 <b_jonas> olsner: no, I don't think it is
16:38:58 <b_jonas> olsner: the zip/deflate algorithm had patent problems at the time, didn't it?
16:39:04 <olsner> pkzip uses deflate without headers, zlib is deflate with zlib header, gzip is deflate with a gzip header
16:39:25 <b_jonas> what
16:39:28 <b_jonas> um...
16:40:26 <b_jonas> maybe, I'll have to check this later
16:42:05 <b_jonas> lifthrasiir: but isn't that library for data you compress once and then distribute and decompress a lot of times, sort of how people optimized compress png images for webpages or games?
16:42:28 <b_jonas> lifthrasiir: I'm more asking about fast compression for data that only one or a few clients will decompress, where compression speed is needed
16:43:50 <lifthrasiir> ah, that kind of things.
16:44:16 <lifthrasiir> not sure if other alternatives than zlib -1 exist
16:45:14 <b_jonas> lifthrasiir: there are certainly other deflate backends, because 7-zip has one, but I don't know if there's one that is wrapped and actually used this way
16:45:35 <b_jonas> and there's like a dozen pkzip compressor implementations I think
16:45:47 <b_jonas> although most of them probably use zlib
16:45:53 <b_jonas> but still
16:45:59 <b_jonas> something like this should be totally possible
16:46:18 <b_jonas> you could even make something that's both interface-compatible and license-compatible with zlib so it's a drop-in replacement
16:48:40 <olsner> I think the better-than-zlib compressors that exist typically don't give you much, and some of them are really really slow (like zopfli)
16:48:57 <b_jonas> ok
17:02:36 -!- nooga has joined.
17:20:58 -!- TieSoul has joined.
17:29:10 -!- nooga has quit (Read error: No route to host).
17:40:56 <\oren\> Hmm, it would be nice if there was a metar command that used emoji to tell you the waether
17:44:23 -!- Froox has joined.
17:47:51 -!- Frooxius has quit (Ping timeout: 264 seconds).
17:52:37 <HackEgo> [wiki] [[Hexagony]] https://esolangs.org/w/index.php?diff=46662&oldid=44392 * Loovjo * (-3)
17:53:53 -!- tato has joined.
17:54:24 -!- tato has quit (Read error: Connection reset by peer).
18:01:11 <myname> go for it
18:03:15 -!- sebbu has quit (Ping timeout: 244 seconds).
18:11:49 -!- jaboja has joined.
18:15:22 -!- AnotherTest has joined.
18:19:37 <tswett> `unidecode ḗ
18:19:51 <zzo38> LodePNG has its own DEFLATE implementation built-in but you can replace it with your own implementation instead
18:20:06 <HackEgo> ​[U+1E17 LATIN SMALL LETTER E WITH MACRON AND ACUTE]
18:21:37 <myname> it's clearly a redskin
18:22:52 <Taneb> I've...
18:23:02 <Taneb> I've spent all afternoon trying to write a maze generator in Rust
18:23:24 <Taneb> But I succeeded!
18:23:29 <Taneb> http://i.imgur.com/6LtY0es.png
18:23:39 <Taneb> https://github.com/Taneb/Maze/blob/master/src/main.rs
18:25:18 -!- jaboja has quit (Ping timeout: 246 seconds).
18:41:38 -!- Sgeo has joined.
18:42:04 -!- Sgeo__ has quit (Ping timeout: 240 seconds).
18:43:58 -!- tromp_ has quit (Remote host closed the connection).
18:45:22 -!- hppavilion[1] has joined.
18:46:53 <zzo38> How do you debug the print version of a page in Firefox?
18:50:19 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
18:50:37 <myname> Taneb: i like it
18:50:43 <myname> what are you going to do with it
18:50:57 <Taneb> myname, I have no idea
18:51:05 <myname> lol
18:51:07 -!- hppavilion[1] has joined.
18:51:10 <myname> more rust!
18:58:44 -!- sebbu has joined.
19:05:20 <Sgeo> <3 Rust
19:05:37 <Taneb> I don't use it often enough for it to stick in my head
19:05:52 <b_jonas> zzo38: no idea
19:06:13 <Taneb> I might try the next Ludum Dare with Rust
19:06:17 <myname> rust is like the best system language i know
19:06:30 <b_jonas> Taneb: how many Ludum Dare have you tried before?
19:06:58 <b_jonas> myname: no it's not. at least not yet. Rust has good foundations, but not good enough toolsets yet.
19:07:03 <Taneb> Um... minimalism, you only have one, you need to go deeper, and I think one other?
19:07:28 <Taneb> You only have one is the only thing I got anything close to a game on my own
19:07:32 <Taneb> Normally I do the game jam
19:07:43 <b_jonas> Taneb: what does the game jam mean?
19:07:50 <Taneb> b_jonas, teams, longer time limit
19:08:08 <b_jonas> it's not... edible marmalade made of the fat of game animals, right? because that would be strange
19:08:15 <b_jonas> I see
19:08:46 <Taneb> Well, that'd be a pate, for a start
19:08:47 <myname> Taneb: if you don't use ncurses yet you might consider termbox for terminal stuff
19:09:07 <Taneb> myname, this is just using print! and println!
19:09:30 <myname> i guessed that
19:09:40 <myname> but printing sucks for interaction
19:10:02 <myname> i once maee ncurses bindings for rust 0.4
19:10:05 <myname> it was a mess
19:10:09 <b_jonas> Taneb: since people make “cheese” from fruits and “sausages” from soy beans, I can imagine basically anything
19:13:55 -!- p34k has joined.
19:14:49 <tswett> `unidecode septḿ̥
19:14:54 <HackEgo> ​[U+0073 LATIN SMALL LETTER S] [U+0065 LATIN SMALL LETTER E] [U+0070 LATIN SMALL LETTER P] [U+0074 LATIN SMALL LETTER T] [U+1E3F LATIN SMALL LETTER M WITH ACUTE] [U+0325 COMBINING RING BELOW]
19:32:31 -!- mihow has joined.
19:34:26 -!- copumpkin has quit (Changing host).
19:34:26 -!- copumpkin has joined.
19:45:47 -!- irctc065 has joined.
19:50:37 <HackEgo> [wiki] [[User talk:Chris Pressey]] https://esolangs.org/w/index.php?diff=46663&oldid=35014 * 104.163.157.132 * (+320) pull request ping
19:54:35 -!- nooga has joined.
20:07:00 -!- irctc065 has quit (Quit: Page closed).
20:22:38 -!- p34k has left.
20:23:02 <hppavilion[1]> Whhoo!
20:23:05 <hppavilion[1]> HTML parser!
20:33:49 -!- TieSoul has quit (Quit: Leaving).
20:36:08 <hppavilion[1]> Quick, someone design a hybrid processor (neural networking + conventional computing (+ a bit of emulated quantum maybe)?) and write an OS for it
20:40:09 -!- contrapumpkin has joined.
20:41:29 -!- copumpkin has quit (Ping timeout: 250 seconds).
20:42:21 <HackEgo> [wiki] [[XSM]] M https://esolangs.org/w/index.php?diff=46664&oldid=25391 * LegionMammal978 * (+13) /* External resources */
20:59:17 -!- boily has joined.
21:00:01 <\oren\> hppavilion[1]: html parser?
21:01:13 <hppavilion[1]> \oren\: Yes
21:01:16 <hppavilion[1]> \oren\: Working on it
21:01:30 <hppavilion[1]> \oren\: Hand-writing, because that's probably easier for the atrocity that is HTML
21:02:22 <boily> hppavellon[1]. HTML isn't that atrocious hth
21:02:30 <hppavilion[1]> boily: It is for parsing
21:02:38 <hppavilion[1]> <p></i> is valid HTML, AFAIK
21:02:45 <hppavilion[1]> Or at least something a browser is expected to accept
21:07:50 <zzo38> HTML is OK, and there is also XHTML which is more consistent than plain HTML
21:08:38 <zzo38> XML is terrible for things other than text markup, but for stuff like HTML it would seem reasonable.
21:11:33 <boily> XML is terrible for markup. XML is too there-are-multiple-ways-to-do-it.
21:12:05 <boily> there should be One Right Way™ to do markup, and it should be dutchly obvious.
21:15:15 <zzo38> XML is more complicated than it should be, which is certainly true.
21:16:08 <boily> I have a certain fondness towards dosini. it Does the Job®.
21:16:43 <boily> except, TOML fills in quite a few gaping holes dosini has.
21:17:30 <zzo38> However also, XML is used for a lot of data where something else such as JSON or RDF or INI might work better.
21:18:59 <boily> JSON has its own appeal, RDF is a horrible mangulation, and I already like INI.
21:19:38 <boily> I did some JSON evangelism when it first got its hype, but then I got bitten too many times by poor support of numerical types.
21:20:32 <pikhq> To be fair-ish, JSON *itself* doesn't have too bad a support for arbitrary numeric values.
21:20:57 <pikhq> It's just "any numeric value expressible in decimal notation".
21:21:20 <pikhq> ... Unfortunately, this then gets implemented poorly because that's only representable using arbitrary-precision decimal floats.
21:21:41 <pikhq> So in practice it's just "assume IEEE double".
21:21:49 <pikhq> RDF is awful.
21:22:02 <pikhq> INI's not bad, if only useful for a subset of things.
21:22:37 <zzo38> Note that I refer to pure RDF without any OWL or other stuff like that.
21:30:14 <boily> `wisdom XML
21:30:29 <HackEgo> ​/cat: : No such file or directory
21:30:39 <boily> `? XML
21:30:41 <HackEgo> XML? ¯\(°​_o)/¯
21:34:09 -!- AnotherTest has quit (Quit: ZNC - http://znc.in).
21:42:09 <hppavilion[1]> `le/rn XML/XML stands for "X-treme Mega Language (of Awesomeness)"
21:42:10 -!- mihow has quit (Quit: mihow).
21:42:15 <HackEgo> Learned «xml»
21:42:39 <hppavilion[1]> (That does not necessarily reflect my actual opinions on XML)
21:42:43 -!- atrapado has joined.
21:43:35 <hppavilion[1]> We should make a KRF
21:43:58 <hppavilion[1]> A TC one, no less
21:45:43 <hppavilion[1]> With a combination of logic programming and CFG and JSON and stuff. With many, many types of object.
21:46:10 <boily> KRF? Kool Rad Format?
21:46:54 <hppavilion[1]> boily: Yes, also known as a Knowledge Representation Format
21:50:42 <boily> I only had 2/3 right. better luck next time...
21:50:59 <hppavilion[1]> boily: 1/3
21:52:32 <hppavilion[1]> boily: Hm... what should the model of the knowledge base be?
21:54:22 <hppavilion[1]> I think I'll design one based on relative values
21:54:44 <hppavilion[1]> Relative to reals, that is
21:56:14 <boily> realatives.
21:56:33 <boily> 2/3. I know my fractions, tyvm :D
22:07:18 -!- MoALTz_ has changed nick to MoALTz.
22:07:28 <zzo38> I have made up partial idea of "Macro-RDF", although no implementation currently exists. How it works is: A graph may contain macro nodes and/or macro literals, and macro processors will read such triples in order to create the graph which does not contain any macro nodes and macro literals. Macro nodes and macro literals use a new URI pseudoscheme called "macro:", like "view-source:" the scheme is followed by another URI.
22:21:36 -!- MoALTz has quit (Quit: Leaving).
22:21:49 <zzo38> (Another storage format for arbitrary data is my own format called ARF (ASCII Records Format), although which involves non-printable characters which may mean a special editor is required.)
22:28:14 -!- Draum has joined.
22:31:03 -!- bb010g has joined.
22:35:19 -!- Draum has quit.
22:38:42 <pikhq> Oh, actually using the ASCII record indicators?
22:44:44 -!- oerjan has joined.
22:46:23 <zzo38> Yes
22:47:34 <zzo38> (If you need to include the record indicators into the actual data being stored too for any reason, then they must be escaped by a "data link escape" character.)
22:56:51 <zzo38> Does Xlib have any support for "reverse connections"?
22:57:07 -!- lynn has quit (Ping timeout: 260 seconds).
22:57:30 <zzo38> (Support for reverse connections does not affect the protocol in any way.)
22:58:32 <rdococ> "All Europeans"? Huh?
22:58:46 <rdococ> Have I been here all this time?
22:59:02 <boily> everyone's been all the places they have been at when then.
22:59:14 <rdococ> Huh?
22:59:43 -!- mihow has joined.
23:00:10 <rdococ> I already made up a programming language more basic than BASIC, so now I'm thinking up a programming language more basic than that.
23:02:58 <MDude> I'm imagining you working on a programming language that's written via finger painting.
23:03:25 <boily> analog piet!
23:04:11 <oerjan> @ask ais523 Is the new Template:Cnw a copy of the previously deleted template on Wikipedia? (Template:= is clearly identical, but I think that's too short to be copyright. And X2 is something else entirely.)
23:04:12 <lambdabot> Consider it noted.
23:05:12 <rdococ> hmm
23:05:24 <MDude> Does the more basic than basic language have any kind of system for graphics and such?
23:05:43 <rdococ> analog piet? you mean it's like an actual drawing instead of array of pixels?
23:05:53 <rdococ> No, not really.
23:06:16 <rdococ> I guess it could if it was like Piet.
23:06:41 -!- lynn has joined.
23:07:04 <oerjan> rdococ: the topic does not imply anything about whether you're European or not. but if you are, welcome to the future!
23:07:28 <MDude> I'd think part of what made Basic so basic is that it was originally made for a very simple environment.
23:07:40 <oerjan> (i think americans may have entered the future some weeks ago.)
23:07:44 <rdococ> oh, okay
23:08:05 <rdococ> MDude: Perhaps.
23:08:41 -!- atrapado has quit (Quit: Leaving).
23:09:09 <rdococ> oerjan: But it does imply that Europeans weren't in the future beforehand. Which is true, because they were in the present. In fact, everyone's in the present right now. Ignoring relativity.
23:09:39 <shachaf> oerjan: americans have been in the future for ~240 years
23:09:42 <shachaf> usa usa usa
23:09:54 <rdococ> 240?
23:09:55 * oerjan considers what a language more forth than FORTH would be.
23:10:02 <rdococ> Wow, it must be a bad future then.
23:10:33 <shachaf> are any ideas forthcoming?
23:10:34 <rdococ> Remember - entropy increases with time. So you are basically saying America has a high disorder.
23:11:11 <shachaf> in a closed system maybe
23:11:16 <shachaf> we offload our entropy to other countries
23:11:43 <MDude> We're in the future in the sense that what we experience is the past due to our brains taking time to process their senses.
23:11:52 <rdococ> That's true too.
23:12:15 <rdococ> People that have moved at high velocities for longer are in the past. I think.
23:12:32 <rdococ> Yes, in the past.
23:15:17 -!- nooga has quit (Ping timeout: 244 seconds).
23:15:55 <oerjan> apparently russia has been stuck in the past since 2014.
23:16:38 <rdococ> What do you mean?
23:16:40 <oerjan> after being stuck in the future since 2011.
23:17:33 <oerjan> rdococ: they're clocks have not been adjusted forward since then hth
23:17:37 <oerjan> *their
23:18:07 * oerjan takes out the muphryscope and starts hunting
23:18:27 * oerjan thinks rdococ might get stuck in confusion if he keeps up
23:18:37 <boily> the Jägerørjan is Hunting!
23:19:14 <olsner> muphryscope, misspelled as appropriate
23:19:49 <shachaf> my clock gets adjusted forward every second
23:22:02 <rdococ> oh
23:22:09 <rdococ> so they forgot about dst
23:22:28 <rdococ> was watching a video
23:23:20 <oerjan> <shachaf> we offload our entropy to other countries <-- http://narbonic.com/comic/december-4-9-2006/ strip 4, panel 2 hth
23:24:26 <shachaf> precisely tdh
23:25:28 <rdococ> basic, basicer, and now, um, basicerer
23:25:48 <rdococ> maybe a data tree
23:28:26 <b_jonas> oerjan: high five!
23:29:53 <b_jonas> also, that reminds me to Asimov's "The gods themselves" in which they also destroy other universes to make this universe survive
23:30:20 <oerjan> <olsner> muphryscope, misspelled as appropriate <-- what misspelling i think you are confused hth
23:31:06 <olsner> oerjan: I dunno, what's a muphryscope, what does it do and how do you spell it?
23:31:35 <oerjan> it's a scope for finding muphry, so he can be properly punished for slipping misspellings into my irc lines hth
23:32:31 -!- lynn_ has joined.
23:32:51 <oerjan> b_jonas: is that where they ensure humanity is the only intelligence in the galaxy?
23:33:10 <b_jonas> oerjan: no
23:33:31 -!- mihow has quit (Quit: mihow).
23:33:35 <b_jonas> oerjan: the one you're thinking is probably either "The End of Eternity" or "Foundation and Earth"
23:33:43 -!- lynn has quit (Ping timeout: 268 seconds).
23:33:53 <oerjan> the former rings a bell. and the second i think referred to that.
23:34:01 <oerjan> *the latter i think
23:34:19 <oerjan> (of those, i've only actually _read_ foundation and earth, mind you.)
23:34:19 <b_jonas> oerjan: "The gods themselves" is the one with aliens and sex and alien sex
23:34:30 <b_jonas> (and as such, unusual from Asimov)
23:34:34 <oerjan> heh
23:34:40 <b_jonas> no, really!
23:35:22 <oerjan> well i know he doesn't usually have aliens, that was like the point
23:36:33 <b_jonas> he rarely wrote about aliens, but there are a few times he did, the best one probably being "Blind alley", although that one isn't good because of the aliens, but because of a human character.
23:38:52 <b_jonas> and he rarely wrote about sex, but there's a few other cases like "The robots of Dawn".
23:39:12 <oerjan> there was an instance in either foundation and earth or the predecessor, though.
23:39:36 <oerjan> when the protagonist visited corporellon.
23:40:00 <b_jonas> are you talking about "The robots of Dawn"? that's the predecessor of "Robots and Empire"
23:40:04 <oerjan> hm i must be misspelling that.
23:40:09 <b_jonas> "corporellon"?
23:40:11 <b_jonas> what's that?
23:40:33 <b_jonas> "The robots of Dawn" also has robot sex
23:40:47 <b_jonas> that one is easier because Asimov wrote a lot about robots
23:40:51 <rdococ> hmm
23:41:03 <b_jonas> but the robot sex isn't described much
23:41:08 <rdococ> has anyone tried to ever make a mechanical tree
23:41:09 <b_jonas> it's only part of the story, but never shown
23:41:21 <b_jonas> only a very little of the foreplay is described
23:42:06 <oerjan> oh it was comporellon
23:42:10 <b_jonas> a mechanical tree? I would guess some Holywood film producers probably tried to order some, in order to play walking trees or treefolk (ents, treants) in live action movies
23:42:17 <oerjan> and it was foundation and earth.
23:42:31 <b_jonas> comporellon... that rings a bell, isn't it in one of the earlier Foundation novels?
23:42:40 <b_jonas> like, a planet or something
23:43:07 <rdococ> @b_jonas I mean mechanical trees that actually work
23:43:07 <lambdabot> Unknown command, try @list
23:43:24 <oerjan> it's = baleyworld, the first non-spacer world
23:44:35 <oerjan> rdococ: i recall someone hypothesizing making something tree-like that could extract CO2 more efficiently than real trees
23:45:08 <MDude> I guess that might not be too hard, actually?
23:45:29 <zzo38> I am writing a document for TVMIDI, and then hopefully some TV set top boxes and a few other devices could be made to implement it.
23:45:47 <b_jonas> MDude: I think it would be hard, at least if you want it to extract CO2 more efficiently than algae too
23:45:47 <hppavilion[1]> oerjan: I'm trying to make an order theory KRF :)
23:45:47 <MDude> Since if you could somehow take genes from bacteria that are more fficient and get trees to use them, I think that'd do it.
23:45:57 <oerjan> i have read very little asimov beyond the foundation novels he wrote himself. naked sun is one other book.
23:46:20 <rdococ> a mechanical tree could convert carbon dioxide and heat into carbon and oxygen if they don't need glucose
23:46:24 <MDude> I thought the idea was to bring trees closer to algae level rather than surpassing them.
23:46:38 <MDude> Though i guess for that we could jsut se tup algae plants.
23:47:27 <rdococ> a solar powered machine that breaks carbon dioxide into carbon and oxygen, and looks like a tree. of course, it isn't an exact replication, but eh, who needs glucose?
23:47:30 <hppavilion[1]> rdococ: Hi!
23:47:33 <rdococ> hpp!
23:47:42 <hppavilion[1]> rdococ: Haven't seen you in a while!
23:48:01 <oerjan> b_jonas: anyway, golan trevize had sex with the (mayor?) on comporellon, although wikipedia doesn't mention that detail.
23:48:39 <pikhq> I'unno, I'd certainly like having glucose generation.
23:48:43 <pikhq> Glucose is useful.
23:48:48 <oerjan> it doesn't even mention her afaics
23:49:15 <rdococ> it is?
23:49:28 <b_jonas> rdococ: and water. but it's not that easy in the real world. if you just want something that breaks down the carbon dioxide to breathable air for a short term spaceship or underwater voyage, that is solved. but such a device isn't reusable, and making it uses up lots of resources, and indirectly uses up much more oxygen than it can ever create, so it doesn't work in large scale.
23:50:02 <rdococ> b_jonas: why would it need oxygen? it's a machine that would run on solar power
23:50:14 <rdococ> b_jonas: unless solar panels need it
23:50:15 <zzo38> TVMIDI does not support cable boxes with more than 16384 channels, although I have never seen any with more than 10000 channels (numbered 0 to 9999); if you have seen any then please tell me.
23:50:23 <b_jonas> oerjan: I don't know, I'm not really familiar with Foundation's edge and Foudation and Earth
23:50:53 <b_jonas> rdococ: because this is the real world, and there's a good reason even the single-celled algae are so complicated things
23:51:25 <b_jonas> “solar powered” sounds nice, but it's not a magic free lunch recipe
23:53:17 <rdococ> mmm lunch
23:54:00 -!- contrapumpkin has quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…).
2016-03-28
00:01:46 <oerjan> rdococ: https://en.wikipedia.org/wiki/Carbon_dioxide_removal#Direct_air_capture
00:01:54 -!- copumpkin has joined.
00:02:08 * oerjan is currently editing that a tiny bit
00:06:05 <HackEgo> [wiki] [[Beeswax]] https://esolangs.org/w/index.php?diff=46665&oldid=46374 * Albedo * (+49) /* Program flow control/conditional operations */ instruction 'Q' added
00:06:13 <rdococ> hmm
00:06:16 -!- bender| has quit (Quit: Leaving).
00:06:58 <oerjan> hm maybe i should have just used an anchor to start with.
00:07:28 <rdococ> they need to make sure they're not to effective, or else people with them in enclosed spaces will end up dying of too much oxygen
00:08:07 <rdococ> ugh, I hate how HackEgo links to the diff page but not to the article itself
00:08:47 <hppavilion[1]> rdococ: Agreed
00:08:52 <rdococ> hey, what about a 2d programming language in polar coordinates?
00:09:15 <HackEgo> [wiki] [[Beeswax]] https://esolangs.org/w/index.php?diff=46666&oldid=46665 * Albedo * (+102) /* Global stack related I/O */ instruction V explanation extended
00:09:39 <rdococ> or a 0d programming language
00:09:45 <rdococ> or -1d
00:10:28 <rdococ> what would negative information be like anyway
00:10:40 <rdococ> negative information would subtract information, right
00:10:43 <b_jonas> rdococ: you don't die from too much oxygen. it can pose some fire hazard to flammable objects, but it doesn't just kill you. space stations and some diving equipment use air with a much higher oxygen content than the atmosphere, and it doesn't hurt people. you die to higher carbon dioxide content, or lower oxygen content.
00:11:00 * oerjan drops that edit
00:11:48 <rdococ> hyperoxia
00:12:13 <rdococ> https://en.wikipedia.org/wiki/Oxygen_toxicity
00:12:28 <rdococ> from a quick read of the first paragraph or two
00:12:35 <rdococ> I don't think it's exactly what I mean
00:12:40 <rdococ> but the problem might still hold
00:13:09 -!- lleu has joined.
00:13:09 -!- lleu has quit (Changing host).
00:13:09 -!- lleu has joined.
00:13:15 <rdococ> http://www.sciencefocus.com/qa/why-does-breathing-pure-oxygen-kill-you
00:13:33 <rdococ> apparently, breathing pure oxygen is deadly
00:13:54 <rdococ> yet wikipedia says people can breathe pure oxygen without dying
00:13:56 <rdococ> who's right
00:13:57 <rdococ> help
00:16:18 <rdococ> what about a...
00:16:21 <rdococ> programmeing language
00:16:43 <hppavilion[1]> rdococ: Where?
00:17:01 <rdococ> google says a programme is "a planned series of future events", as opposed to "program"
00:17:33 <rdococ> I guess a programme is just a linear program
00:17:46 <rdococ> but that takes the fun out of it
00:17:58 <rdococ> we must get people to programme programmes in a programmeing language
00:19:38 <rdococ> print hello world at 1:20 on 28/03/2016
00:20:01 <rdococ> hello world
00:20:03 <HackEgo> [wiki] [[Beeswax]] https://esolangs.org/w/index.php?diff=46667&oldid=46666 * Albedo * (+118) Introduction extended
00:21:36 <rdococ> hmm
00:23:52 <rdococ> This is an example of a programme -> "I will say "hello world" at 3:20 PM on 29/03/2016. Then the user will say "hello programme". If all goes according to plan, I will say "yay"."
00:23:54 <oerjan> <rdococ> who's right <-- iiuc 100% oxygen is harmless if the pressure is low enough <-- https://en.wikipedia.org/wiki/Oxygen_toxicity#Hypobaric_setting
00:23:59 <oerjan> *-<--
00:24:05 <rdococ> depends how low the pressure has to be
00:24:14 <oerjan> 0.3 bar, it says
00:24:17 <rdococ> see
00:24:24 <rdococ> at 1 bar, rip
00:24:27 <b_jonas> rdococ: ok, maybe it can hurt you a bit
00:24:38 <rdococ> rip at 1 bar
00:25:20 <rdococ> "breathing oxygen at pressures of 0.5 bar or more for more than 16 hours can lead to irreversible lung damage and, eventually, death."
00:25:24 <rdococ> death
00:25:25 <rdococ> rip
00:25:26 <rdococ> nada
00:25:28 <oerjan> "This general property of gases is also true in chemical reactions of gases in biology. For example, the necessary amount of oxygen for human respiration, and the amount that is toxic, is set by the partial pressure of oxygen alone. This is true across a very wide range of different concentrations of oxygen present in various inhaled breathing gases or dissolved in blood."
00:25:38 <oerjan> from https://en.wikipedia.org/wiki/Partial_pressure
00:25:42 <rdococ> pressure
00:26:00 <oerjan> note that "partial" is important here
00:26:08 <rdococ> partial pressure?
00:26:22 <rdococ> so it's the pressure of one part of a mixed gas?
00:26:29 <oerjan> approximately.
00:26:36 <oerjan> or essentially.
00:26:46 <rdococ> well
00:27:05 <rdococ> In a mixture of gases, each gas has a partial pressure which is the hypothetical pressure of that gas if it alone occupied the volume of the mixture at the same temperature. The total pressure of an ideal gas mixture is the sum of the partial pressures of each individual gas in the mixture.
00:27:10 <rdococ> ty wikipedia
00:27:16 <rdococ> explained it better than anyone else could
00:27:28 <oerjan> i was just about to paste that.
00:27:34 <rdococ> oh lol
00:28:10 <rdococ> a program would be like a game where you can win or lose, a programme would be like a game where things go as planned, or they don;t
00:29:09 <oerjan> <rdococ> I guess a programme is just a linear program <-- that's just british vs. american, at least originally.
00:29:23 <rdococ> what about a programming language where your program is just a platforming level
00:34:13 <rdococ> I'm using their british meaning
00:35:34 <oerjan> "UK: programme is used in all cases except for computer code, in which case program is generally used. Older sources may use programme for computer code."
00:35:44 <oerjan> https://en.wiktionary.org/wiki/program#English
00:36:28 * oerjan looks suspiciously at rdococ's cloak
00:36:32 <rdococ> exactly
00:36:44 <rdococ> duh, why did you think I took notice of the all europeans thing
00:36:48 <oerjan> so, just get with the programme
00:37:12 <oerjan> rdococ: hey you could be from new zealand. or madagascar.
00:37:52 <oerjan> "New Zealand: programme is favoured by New Zealand dictionaries, and is endorsed by government usage; program is rarely seen outside the computing meaning."
00:38:25 <oerjan> the australians are conflicted: "Australia: program is endorsed by the Australian government, but programme is most common."
00:38:41 <rdococ> well program is more usually used for program code, and programme rarely
00:38:59 <rdococ> so programme not code
00:45:20 <rdococ> either way, I mean the definition that is not program
00:47:04 <oerjan> OKAY
00:47:13 <oerjan> `? gazpacho
00:47:30 <HackEgo> You like Gazpacho and I like Gaspacho. Let's call the whole thing off!
00:47:47 <boily> `? noooodl
00:47:55 <HackEgo> nooooooodl is the correct spelling
00:48:06 <oerjan> `? nooga
00:48:08 <HackEgo> no.
00:48:25 <boily> `? lynn
00:48:26 <HackEgo> lynn? ¯\(°​_o)/¯
00:51:04 <rdococ> hmm
00:51:20 <rdococ> so a programmeing language would allow you to make programmes
00:51:35 <rdococ> but if something doesn't go according to plan
00:51:36 -!- lynn_ has changed nick to lynn.
00:51:40 <rdococ> you must have a backup plan
00:51:44 <rdococ> or else error
00:53:13 <oerjan> errorre
00:53:18 <oerjan> and planne
00:53:20 <boily> lynn: hellynn. you don't have a wisdom entry. and that's terrible hth
00:53:30 <boily> oerjanne.
00:53:48 <oerjan> `? maur
00:53:49 <HackEgo> maur? ¯\(°​_o)/¯
00:53:57 <oerjan> boily: technically she has at least two hth
00:54:34 <oerjan> oerjanne would be female. also exceedingly cheesy.
00:54:49 * oerjan checks if anyone has that name
00:55:17 <boily> mwah ah ah.
00:55:42 <lynn> boily: boilut~
00:56:10 <oerjan> i find it used as a hashtag for a wedding...
00:56:29 <oerjan> but not as an actual name.
00:56:37 <oerjan> hm time to check ssb
00:57:26 <oerjan> < 4 persons by that name, it says
00:57:55 <oerjan> it would likely not be a legal name, at least for children.
00:58:12 <boily> so it is legal for adults? excellent!
00:58:16 <oerjan> (< 4 might include 0)
00:58:52 <oerjan> although everyone would _understand_ it as someone's misguided attempt to regender "Ørjan".
01:01:42 <oerjan> first cognate hit i find is "Jørgine", 78 women. (vs. "Jørgen", 10999 men.)
01:02:25 <oerjan> those women are probably old, most of them.
01:03:03 * oerjan checks Ørjanine just for good measure
01:03:38 <boily> this ørjanine treads dangerously close to one infamous orange soda brand...
01:03:55 <oerjan> huh "William" was last year's top boy's name in norway
01:04:54 <oerjan> and in Oslo, "Mohammad" stays put at the top :P
01:06:28 <shachaf> oerjan: Oh, I thought that entry was removed but if course it's under mauri.
01:06:36 <rdococ> on the topic of names and gender, I'm surprised at how people always talk about how some things portray women as objects, but not the things that portray men as objects. also, in a programming environment, both are objects.
01:06:50 <shachaf> lynn: Should wisdom/mauri be removed?
01:07:06 <oerjan> "don't be an object, program in haskell!"
01:07:18 <lynn> shachaf: That'd be nice
01:08:14 <rdococ> what if everything was a function
01:08:34 <oerjan> <boily> so it is legal for adults? excellent! <-- i'm not sure exactly what the law is these days.
01:09:06 <rdococ> 1 is actually function (getPredecessor?) if getPredecessor? then return 0 end end
01:09:21 <MDude> Then you have combinatory logic?
01:09:29 <rdococ> probsably
01:09:32 <b_jonas> fungot, are you an object?
01:09:32 <fungot> b_jonas: i tried to say that: ( ( foo xxx)) yyy) ( ( y x)
01:09:35 <rdococ> but it looks different
01:09:46 <b_jonas> fungot: I don't understand that
01:09:46 <fungot> b_jonas: i am fnord making conversation. it is
01:09:52 <shachaf> `rm wisdom/mauri
01:09:56 <b_jonas> fungot: yes, you are.
01:09:56 <fungot> b_jonas: the original fnord code and fnord cyclexa asap, and i couldn't put down to simple ignorance of specific facts about canada.
01:09:58 <HackEgo> No output.
01:10:16 <shachaf> lynn: How about nooodl?
01:10:57 <lynn> I feel like that's a classic <3
01:11:05 <boily> fungot: there are no facts about Canada.
01:11:06 <fungot> boily: see the announcement on c.l.s.
01:11:24 <boily> c.l.s.... that would be Comp Lang Scheme, right?
01:11:32 <b_jonas> `? object
01:11:33 <HackEgo> An object is just something in a category.
01:11:35 <oerjan> rdococ: i don't see how that definition would work for 0 and getPredecessor? seems redundant anyway.
01:11:47 <oerjan> just use church numerals.
01:11:58 <rdococ> oerjan: true
01:12:04 <rdococ> 0 = function () end
01:12:11 <rdococ> 1 = function () return 0 end
01:12:15 <rdococ> 2 = function () return 1 end
01:12:43 <rdococ> successor = function (x) return function () return x end end
01:12:56 <oerjan> boily: what about hypothetical facts?
01:13:13 <rdococ> add = function (x, y) return -- umm
01:13:31 <boily> oerjan: then they are certain facts, as they are hypotehtically correct, eh?
01:14:18 <rdococ> or
01:14:21 <rdococ> 0 = {}
01:14:22 <oerjan> rdococ: i'm just saying, how would you call such a function in such a way that you could distinguish 0 from 1
01:14:24 <rdococ> 1 = {0}
01:14:37 <rdococ> function (x) return x end
01:14:39 <rdococ> jk
01:14:49 <rdococ> false = function () return false end
01:14:54 <rdococ> true = function () return true end
01:15:11 <rdococ> function equals(x, y) return -- umm
01:15:14 <oerjan> rdococ: a Tautological Functional Language
01:15:26 <b_jonas> use binary to make computations more efficient!
01:15:37 <rdococ> it could be done with almost every type
01:15:38 <rdococ> array
01:15:41 <rdococ> function
01:15:45 <rdococ> banana
01:15:47 <boily> b_jellonas. correct me if I'm wrong, but aren't we doing that already?
01:15:55 <boily> BANANA!
01:15:56 <oerjan> boily: like "Ottawa would be the capital of Canada, if Canada existed."
01:16:05 <boily> oerjan: point on.
01:16:09 <rdococ> canada exists
01:16:13 <b_jonas> reference implementation: http://www.math.bme.hu/~ambrus/pu/Bin.hs
01:16:14 <rdococ> but that's true
01:16:18 <rdococ> technically true
01:16:38 <rdococ> hmm
01:16:40 <oerjan> boily: do you also think rdococ has trouble fitting in with the channel humor tdnh
01:17:13 <b_jonas> boily: basically yes. we're actually using a higher radix (2**16 or 2**32 or 2**64) and arithmetic on digits of that size is built in, but the goal is the same, achieving efficiency with it
01:17:14 <rdococ> oerjan: what? I understood the logical humor perfectly - he said a statement which didn't assume something it's safe to assume
01:17:31 <b_jonas> (even without specific support for digits, base 4 would probably be more efficient than base 2)
01:17:55 * boily mapoles rdococ a bit to realign his chäkräs
01:18:04 <rdococ> chakwhat
01:18:13 <rdococ> mapoles?
01:18:17 * boily realigns rdococ some more
01:18:21 <boily> `? mapole
01:18:22 <HackEgo> A mapole is a thwackamacallit built from maple according to Canadian standards. The army version includes a spork, a corkscrew and a moose whistle. A regulatory mapole measures 6' by 12 kg, ±0.5 inHg.
01:18:32 <olsner> `? chäkrä
01:18:33 <HackEgo> chäkrä? ¯\(°​_o)/¯
01:18:33 <shachaf> function = function () return function end
01:18:35 <b_jonas> `? maple
01:18:36 <HackEgo> maple? ¯\(°​_o)/¯
01:18:39 <boily> hellolsner!
01:18:40 <shachaf> oops, scrolled way up
01:18:48 <rdococ> anything = function () return anything end
01:18:55 <boily> rdococ: I like diæresises.
01:19:10 <rdococ> `? diæresises
01:19:11 <HackEgo> diæresises? ¯\(°​_o)/¯
01:19:19 <rdococ> pls tell me what these words mean
01:19:36 <b_jonas> `? function
01:19:37 <HackEgo> function? ¯\(°​_o)/¯
01:19:37 <b_jonas> `? fun
01:19:38 <HackEgo> fun? ¯\(°​_o)/¯
01:19:39 <b_jonas> `? fn
01:19:40 <HackEgo> fn? ¯\(°​_o)/¯
01:19:42 <olsner> boily: I think it's diaereses
01:19:46 <b_jonas> seriously?
01:19:57 <b_jonas> we need entries for those
01:20:02 <b_jonas> `? lambda
01:20:02 <HackEgo> lambda? ¯\(°​_o)/¯
01:20:06 <b_jonas> `? sub
01:20:07 <HackEgo> sub? ¯\(°​_o)/¯
01:20:08 <shachaf> who's we here?
01:20:10 <\oren\> `quote oren
01:20:11 <HackEgo> 1225) <oren> when i was a kid it used to snow on christmas eve. what is this "freezing rain", "sleet" crap? <vanila> yeah seriously, who is evn in charge anymore? <oren> apparently not santa claus <zzo38> Santa Claus is dead by now. \ 1226) <{\[oren]|}> zzo38:it will cause problems by
01:20:12 <b_jonas> `? subroutine
01:20:13 <HackEgo> subroutine? ¯\(°​_o)/¯
01:20:14 <shachaf> I don't need entries for those.
01:20:17 <b_jonas> `? proc
01:20:18 <HackEgo> proc? ¯\(°​_o)/¯
01:20:22 <b_jonas> `? procedure
01:20:23 <HackEgo> procedure? ¯\(°​_o)/¯
01:20:24 <shachaf> Come on, this is getting a bit botspammy even for this channel.
01:20:26 <\oren\> `quote diarrea
01:20:27 <HackEgo> No output.
01:20:32 <b_jonas> `? subprogram
01:20:33 <HackEgo> subprogram? ¯\(°​_o)/¯
01:20:36 <\oren\> `quote e with dia
01:20:36 <HackEgo> 1250) <oren> I'm making a new font. I'm up to the capital E with diarhea
01:21:09 <oerjan> `learn Maples are the sacred trees of Canada, from which a true Canadian can make anything.
01:21:12 <HackEgo> Learned 'maple': Maples are the sacred trees of Canada, from which a true Canadian can make anything.
01:21:48 <\oren\> `quote problems
01:21:49 <HackEgo> 1226) <{\[oren]|}> zzo38:it will cause problems by being hilarious
01:22:33 <shachaf> oerjan: are true canadians similar to true scotsmen
01:22:46 <rdococ> a true canadian can make anything from maples?
01:22:49 <rdococ> what about computers
01:22:52 <rdococ> or turing machines
01:22:57 <rdococ> or tesseracts
01:23:28 <\oren\> canadian computers use asbestos as the substrate
01:23:31 <oerjan> shachaf: definitely.
01:23:33 -!- mihow has joined.
01:24:07 <olsner> hmm, substrate is almost an anagram of asbestos
01:24:23 <rdococ> you can get b
01:24:27 <olsner> e.g. asbestrus
01:24:29 <rdococ> you can get asbestos in maples?
01:24:30 <boily> you aren't seeing things. simply a coincidence. happens all the time. la la la ♪
01:24:51 <oerjan> > map sort ["asbestos","substrate"]
01:24:53 <lambdabot> ["abeossst","aberssttu"]
01:25:41 <olsner> > sort "asbestur"
01:25:43 <lambdabot> "abersstu"
01:25:48 <oerjan> boily: is there a problem?
01:26:55 <olsner> I almost typoed that as "substrate is almost an anagram of substrate"
01:27:25 <\oren\> rdococ: it's a joke because canada is a major producer of asbestos
01:27:36 <oerjan> almost is almost an anagram of asbestos
01:28:01 <rdococ> sobstate
01:28:15 <rdococ> as the saying goes, the best os is asbestos
01:28:16 <boily> there are no nefarious plans behind anything you might conjecture tonight.
01:28:52 <rdococ> new, Array Language! 0 = [] 1 = [[]] okay this is getting old
01:28:56 <rdococ> um
01:29:57 <rdococ> 1 = function () return 0 end, vs 1 = [0]
01:34:13 <rdococ> add = function (x, y) return ifequal(y, function () end, x, add(function () return x end, y())) end -- what is ifequal(x, y, trueReturn, falseReturn)?
01:35:08 <rdococ> ifequal = function (x, x, trueReturn, falseReturn) return true end
01:35:19 <rdococ> nil would be function () end()
01:35:24 <rdococ> nil = function () end()
01:35:29 <rdococ> hey, it works
01:35:30 <rdococ> yay
01:35:32 <rdococ> well
01:35:34 <rdococ> not
01:35:36 <rdococ> well
01:35:37 <rdococ> nevermind
01:36:55 * rdococ 's chäkräs have been realigned
01:37:06 * rdococ thinks so anyway
01:37:33 <boily> you have ^^
01:38:02 <rdococ> now attaining SUPER SPIRITUAL POWER
01:38:16 * rdococ can now transform into SUPER RDOCOC
01:38:37 <rdococ> well, there are as many chäkräs as there are chaos emeralds
01:39:59 <rdococ> The noun tautology originates from the Greek word tautologos, meaning “repeating what is said.”
01:40:01 <rdococ> definitely
01:40:33 <rdococ> function () return function () return function (x, y) return function (z) return z end end end end
01:40:42 -!- mihow has quit (Quit: mihow).
01:41:35 -!- idris-bot has quit (Quit: Terminated).
01:42:12 -!- idris-bot has joined.
01:42:12 -!- idris-bot has quit (Client Quit).
01:42:15 <rdococ> Tautologos it is
01:42:49 -!- idris-bot has joined.
01:42:55 <rdococ> whatever happened to the editor?
01:43:07 <rdococ> none of the editing things bold, italic etc show up but I can still use them
01:59:39 <oerjan> rdococ: with my psychic powers i can see that the answer is... gremlins!
02:02:37 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
02:07:30 <boily> 2016! finally got to January 2016!
02:07:59 * boily GLASSWORK CHICKEN
02:08:12 * boily meant /quit. fried brain and all that sort of thing...
02:08:18 -!- boily has quit (Quit: GLASSWORK CHICKEN).
02:09:39 -!- Melvar` has joined.
02:11:06 -!- XorSwap has joined.
02:11:09 -!- idris-bot has quit (Ping timeout: 248 seconds).
02:11:27 -!- hppavilion[1] has joined.
02:11:30 -!- Melvar has quit (Ping timeout: 246 seconds).
02:13:30 <hppavilion[1]> I'm designing a language that compiles to JS, HTML, and CSS. I'm currently at functions, and I've come up with what I feel is a clever way to efficiently do curried functions while targeting JavaScript, with the bonus of keyword arguments
02:13:37 <hppavilion[1]> Implicit Lambdas
02:14:20 <hppavilion[1]> Given foo :: Int -> Float -> String -> Bool
02:14:31 <hppavilion[1]> (And variable-length arguments
02:15:09 <hppavilion[1]> You can do something like bar = foo(\2, \1, "walrus") to get a functions bar :: Float -> Int -> Bool
02:15:33 <hppavilion[1]> And you can partially apply foo with bar = foo(9, 2.7|
02:15:59 <hppavilion[1]> And then bar("s") == foo(9, 2.7, "s")
02:16:13 <hppavilion[1]> It's not as pretty as Haskell, but it gets the job done(R)
02:16:24 -!- jaboja has joined.
02:19:40 -!- hppavilion[1] has quit (Quit: Leaving).
02:20:12 -!- hppavilion[1] has joined.
02:20:29 <hppavilion[1]> Huh. I can't get HexChat to autoreplace (R) to the registered trademark symbol
02:27:22 <izabera> hppavilion[1]: use the compose key
02:27:28 <izabera> compose + o + r
02:27:31 <izabera> ®
02:27:47 -!- hppavilion[1] has quit (Ping timeout: 248 seconds).
02:31:42 -!- tromp has quit.
02:34:36 -!- impomatic has quit (Ping timeout: 246 seconds).
02:39:47 <zzo38> Here is a part of TVMIDI specification: http://zzo38computer.org/textfile/miscellaneous/TVMIDI
02:40:28 <zzo38> Please tell me any comment/question/suggestion/complaint.
02:46:05 -!- jaboja has quit (Ping timeout: 244 seconds).
02:55:43 -!- hppavilion[1] has joined.
03:01:06 -!- tromp has joined.
03:13:12 -!- earendel has quit (Ping timeout: 260 seconds).
03:18:55 -!- bb010g has quit (Quit: Connection closed for inactivity).
03:23:27 <hppavilion[1]> Rotary Turing Machine
03:23:38 <hppavilion[1]> It's like a turing machine, but instead of a tape it's a spindle with rotors
03:24:05 <hppavilion[1]> So you can only transition the symbol to one of two other symbols (or one other symbol)
03:24:08 <hppavilion[1]> MUCH more stupid
03:24:17 <hppavilion[1]> (Brainfuck is a good example)
03:30:09 <izabera> that's not tc
03:30:16 <izabera> that's not a turing machine
03:36:43 -!- lynn has quit (Ping timeout: 244 seconds).
03:39:25 <hppavilion[1]> izabera: It isn't, correct.
03:39:57 <hppavilion[1]> izabera: Though if you allow the symbol to have no transition, it's at least TC for binary
03:40:18 <hppavilion[1]> Because no transition is x -> x, while transition is x -> ~x
03:41:32 <hppavilion[1]> And since whether a transition is taken is based off of the current symbol, you can make sure it maps to the correct symbol
03:41:33 <izabera> what?
03:41:47 <hppavilion[1]> izabera: What what?
03:42:08 <izabera> "TC for binary" <- what does this mean?
03:42:42 <hppavilion[1]> izabera: *for a binary alphabet
03:42:55 <hppavilion[1]> izabera: Forgot to say "alphabet"
03:43:44 <hppavilion[1]> izabera: Because a 3-state binary TM is TC, so a 3-state rotary TM with a no-transition option and a binary alphabet is also TC
03:44:04 <izabera> bullshit
03:44:18 <izabera> your memory is finite
03:44:36 <hppavilion[1]> izabera: Did I not imply that the spindle is infinite?
03:44:46 <hppavilion[1]> izabera: It's not just one rotor, it's an infinite spindle of rotors
03:45:02 <hppavilion[1]> izabera: I thought I said that...
03:45:05 <izabera> i see, we're back to the usual nonsense
03:45:11 <hppavilion[1]> izabera: Yeah, we are
03:45:23 <hppavilion[1]> izabera: I was thinking about the Enigma, so I came up with this
03:46:01 <hppavilion[1]> izabera: Be glad it doesn't have rollover.
03:46:11 <izabera> please stop highlighting me
03:46:16 <hppavilion[1]> OK
03:46:25 <hppavilion[1]> (There's also the switchboard machine, which is most certainly not turing-complete)
03:46:44 <hppavilion[1]> (I almost highlighted you with "OK" xD)
03:46:58 <izabera> i would have ignored you
03:47:54 <hppavilion[1]> It would have been by mistaek
03:47:59 <hppavilion[1]> It was an accident.
03:53:59 <HackEgo> [wiki] [[The Abstract Computer]] M https://esolangs.org/w/index.php?diff=46668&oldid=46637 * Hppavilion1 * (+0) Capitalization
04:10:29 -!- XorSwap has quit (Quit: Leaving).
04:25:15 -!- earendel has joined.
04:26:40 -!- bb010g has joined.
05:24:47 <lifthrasiir> http://mathoverflow.net/a/53738
05:40:54 <zzo38> I have seen that before
05:51:16 <coppro> you know it's a good day when your upgrade includes the Erlang manpages
05:51:22 <coppro> when you haven't touched erlang in years
05:53:38 <\oren\> erlang sounds like a language based on indecision
05:53:54 <\oren\> uh... er... eeeh...
05:54:13 <coppro> I should make that language
05:54:20 <coppro> it can be called Errlang
05:54:26 <coppro> so that you think it's about error handling
05:54:38 <coppro> what should the syntax be like? errr
05:55:55 -!- mihow has joined.
05:57:34 <\oren\> well it's like what if an "if" statement actually executes both paths and then decides which one to kkep at the end?
05:57:49 <\oren\> that's indecisive
05:58:45 -!- lambda-11235 has quit (Quit: Bye).
05:58:50 <\oren\> `metar CYYZ
05:59:04 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: metar: not found
05:59:05 <coppro> \oren\: hah! I'm not near YYZ
05:59:13 <\oren\> @metar CYYZ
05:59:14 <lambdabot> CYYZ 280555Z 06003KT 15SM TS SCT035CB OVC100 08/04 A2964 RMK CB3AC5 FRQT LTGIC W-NW PRESFR SLP044
05:59:34 <coppro> (CYKF is closer to my usual haunt anyway)
06:00:20 <\oren\> i'm in yyz and i was wondering if the rumble I just heard was thunder or some asshole's loud bike
06:00:45 <coppro> oh
06:00:47 <coppro> why are you in yyz?
06:00:53 -!- deltab has quit (Ping timeout: 244 seconds).
06:02:58 -!- deltab has joined.
06:03:39 <\oren\> i live in yyz
06:06:02 <oerjan> @metar ENVA
06:06:02 <lambdabot> ENVA 280550Z 15018KT CAVOK 07/M03 Q0995 NOSIG RMK WIND 670FT 16022KT
06:09:55 <coppro> \oren\: wait really
06:09:58 <coppro> why have we never met up
06:10:46 <shachaf> @metar KOAK
06:10:47 <lambdabot> KOAK 280553Z 27011KT 10SM SCT160 13/07 A3002 RMK AO2 SLP164 T01330067 10167 20128 58001
06:10:54 <shachaf> @metar KSEA
06:10:55 <lambdabot> KSEA 280553Z 16004KT 10SM FEW060 05/03 A3010 RMK AO2 SLP202 60007 T00500033 10100 20050 51011
06:50:13 -!- tromp has quit (Remote host closed the connection).
07:01:45 <zzo38> A chess problem: 1r5K/6PP/8/8/8/1k4q1/6P1/8 =
07:10:59 -!- hppavilion[1] has quit (Ping timeout: 248 seconds).
07:11:31 <zzo38> Another one: 8/5KP1/7k/8/6P1/8/8/8 #3
07:25:27 -!- hppavilion[1] has joined.
07:50:43 -!- tromp has joined.
07:52:32 <zzo38> (It isn't very complicated)
07:54:51 -!- tromp has quit (Ping timeout: 246 seconds).
07:56:19 -!- hppavilion[1] has quit (Ping timeout: 248 seconds).
08:19:14 -!- mihow has quit (Quit: mihow).
08:25:48 -!- oerjan has quit (Quit: Nite).
09:09:48 -!- Reece` has joined.
09:36:47 -!- nooga has joined.
10:01:49 <zzo38> A book called "Encyclopedia of absolute and relative knowledge" contains some lies about chess. It claims that Chaturanga is an ancestor of chess, cards, and dominoes, and that it used dice with four symbols of four Indian castes: swords=warriors, sticks=peasants, cups=priests, coins=merchants. It also claims that the four card suits are somehow linked to the four DNA nucleotides.
10:05:37 -!- nooga has quit (Ping timeout: 260 seconds).
10:08:28 <zzo38> Of course that is complete nonsense. Indian cards do not use Latin suits, and the game of Chaturanga does not even use dice. (A different game, called Chaturaji, does use dice, although they have the numbers 2 to 5 and not the Latin card suits.)
10:10:47 -!- bender| has joined.
10:41:16 -!- nooga has joined.
10:51:38 -!- tromp has joined.
10:55:55 -!- tromp has quit (Ping timeout: 244 seconds).
11:30:34 <b_jonas> hehe, “check each bean individually”
11:50:53 -!- nooga has quit (Ping timeout: 248 seconds).
11:52:44 -!- nooga has joined.
12:04:03 <rdococ> more loke encyclopedia of absolute stupidity
12:08:31 <rdococ> like*
12:13:50 <rdococ> I'm trying to think of how to do an ifEqual(x, y, trueCase, falseCase) in Tautologos
12:14:36 -!- idris-bot has joined.
12:15:20 <int-e> `? stupidity
12:15:40 <rdococ> `? intelligence
12:15:42 <int-e> what part of "relative knowledge" is so hard to understand?
12:15:47 * int-e runs.
12:15:49 <rdococ> uh
12:15:58 <rdococ> relative knowledge is fake?
12:16:15 <HackEgo> stupidity? ¯\(°​_o)/¯
12:16:15 <HackEgo> intelligence? ¯\(°​_o)/¯
12:16:21 <rdococ> ...
12:16:49 -!- Melvar` has changed nick to Melvar.
12:17:08 <int-e> `learn Intelligence is a scarce resource that is distributed by the CIA.
12:17:09 <rdococ> maybe there is an alternate universe
12:17:13 <HackEgo> Learned 'intelligence': Intelligence is a scarce resource that is distributed by the CIA.
12:17:37 <int-e> `? cia
12:17:38 <HackEgo> cia? ¯\(°​_o)/¯
12:17:46 * int-e shrugs
12:17:56 <rdococ> `learn Stupidity is created when people are too lazy to think correctly.
12:17:58 <HackEgo> Learned 'stupidity': Stupidity is created when people are too lazy to think correctly.
12:20:32 -!- liu has joined.
12:47:36 -!- lynn has joined.
12:49:09 -!- liu has quit (Quit: 离开).
13:03:32 -!- idris-bot has quit (Quit: Terminated).
13:05:12 -!- Melvar has quit (Quit: storm).
13:12:03 -!- Sgeo has quit (Ping timeout: 240 seconds).
13:13:11 -!- tromp has joined.
13:13:12 -!- p34k has joined.
13:27:23 -!- nycs has joined.
13:27:53 -!- boily has joined.
13:38:47 -!- tromp_ has joined.
13:40:38 <boily> @tell oerjann hellørjanne! GG!
13:40:38 <lambdabot> Consider it noted.
13:43:16 -!- tromp_ has quit (Ping timeout: 250 seconds).
13:43:47 -!- Reece has joined.
13:45:12 -!- Reece` has quit (Ping timeout: 246 seconds).
14:09:44 -!- Reece has quit (Read error: Connection reset by peer).
14:10:09 -!- Melvar has joined.
14:17:51 -!- lynn_ has joined.
14:21:57 -!- lynn has quit (Ping timeout: 276 seconds).
14:27:15 <rdococ> tick tock
14:30:56 -!- idris-bot has joined.
14:30:56 <boily> rdocelloc. tick tock?
14:32:30 -!- lambda-11235 has joined.
14:36:31 -!- lynn has joined.
14:39:06 -!- lynn_ has quit (Ping timeout: 244 seconds).
14:43:36 <rdococ> what
14:43:40 <rdococ> boiloclock
14:45:01 <boily> @localtime rdococ
14:45:30 <rdococ> @localtime boily
14:45:31 <lambdabot> Local time for boily is Mon, 28 Mar 2016 10:45:30 -0400
14:45:38 <rdococ> -0400?
14:45:39 <rdococ> really
14:45:46 <rdococ> how many americans can there be
14:45:58 <rdococ> the future sucks
14:46:01 <rdococ> can I go back to the past
14:49:30 <boily> I'm not American, I'm Canadian, eh?
14:49:45 <rdococ> same thing
14:49:51 * boily mapoles rdococ
14:49:58 <rdococ> `? mapole
14:50:03 <rdococ> what is a mapole
14:50:06 <rdococ> seriously
14:50:19 <boily> it's a great big maple stick. it's very useful to thwack people :D
14:50:20 <HackEgo> A mapole is a thwackamacallit built from maple according to Canadian standards. The army version includes a spork, a corkscrew and a moose whistle. A regulatory mapole measures 6' by 12 kg, ±0.5 inHg.
14:50:26 * rdococ tautologoses boily
14:51:23 <boily> if you live in the future, I guess you're European?
14:59:38 <Taneb> Hi, all
15:00:49 <HackEgo> [wiki] [[Tautologos]] N https://esolangs.org/w/index.php?oldid=46669 * Rdococ * (+2709) We must go deeper.
15:00:58 <rdococ> yay
15:01:05 <rdococ> my new, unimplemented programming language
15:01:16 <rdococ> it's a boy! wait, programming languages don't have gender
15:01:47 <Taneb> I need to write up an article on COMPLEX
15:02:07 <rdococ> hey, atleast they're not slightly modified versions of brain****
15:02:12 <boily> Tanelle. what's COMPLEX?
15:02:38 <boily> of course programming languages have gender. «un langage de programmation» is masculine.
15:03:17 <rdococ> just because it's french?
15:03:25 <rdococ> okay, so what would be feminine?
15:03:48 <Taneb> boily, it's a BASIC-inspired programming language that lets you manipulate the vector the program counter is moving on, onto the complex plane
15:03:56 <rdococ> wow, inserting gender stereotypes, my least favourite thing into my favourite thing
15:04:42 <Taneb> "Programmiersprache" is feminine
15:04:56 <HackEgo> [wiki] [[User:Rdococ]] M https://esolangs.org/w/index.php?diff=46670&oldid=46462 * Rdococ * (+17)
15:05:16 <boily> shachaf: hellochaf. which gender is a programming language in Hebrew?
15:05:27 <rdococ> so "programming language" is feminine and "a programming language" is masculine
15:05:29 <boily> rdococ: go against the grain!
15:05:43 <rdococ> clap clap clap, making masculine programming languages look more expendable
15:06:01 <Taneb> boily, according to my wiktionarying, feminine
15:06:30 <rdococ> programming languages have no gender
15:06:41 <rdococ> we're not adding a stupid thing called gender into the purity of programming
15:06:47 <rdococ> unless it's something else disguised as danger
15:06:52 <rdococ> I mean gender*
15:07:07 <Taneb> I'm gonna guess English is your first language
15:07:28 <rdococ> yeah...
15:07:45 <rdococ> but you're talking about language, not the programming language itself as a concept
15:09:08 <Taneb> boily, would you say le Haskell? Or la Haskell? Or is my poor knowlege of French letting me down
15:10:09 <Taneb> boily, anyway, there's an explanation of COMPLEX on my esolangs page https://runciman.hacksoc.org/~taneb/esolangs.html
15:10:20 <tromp> surely it's le Haskell Curry
15:10:24 <boily> «du Haskell». it's still masculine, but partitive because it's an unquantifiable abstract concept.
15:10:55 <b_jonas> boily: does it have an h aspiré?
15:11:06 -!- lynn_ has joined.
15:11:51 -!- lynn has quit (Ping timeout: 264 seconds).
15:12:33 <boily> b_jonas: looks like so. English name, English is of Germanic origin, h aspiré by default.
15:18:27 <b_jonas> I see
15:18:30 <rdococ> COMPLEX
15:20:10 <b_jonas> yep, language is complex
15:20:25 <rdococ> complexicated
15:22:25 <rdococ> BASIC stands for "Beginners' All-purpose Symbolic Instruction Code"
15:23:45 <Taneb> COMPLEX, as I've used it, is short for "COMPutational Language EXtension"
15:28:10 -!- lynn_ has quit (Ping timeout: 244 seconds).
15:28:29 -!- jaboja has joined.
15:32:49 <rdococ> can I look at the contents of another esolang's page so I can make a table?
15:33:50 <rdococ> Ah, nevermind
15:41:03 -!- Reece` has joined.
15:41:49 -!- lynn has joined.
15:42:59 -!- lynn_ has joined.
15:46:15 -!- lynn has quit (Ping timeout: 244 seconds).
15:48:35 -!- lynn_ has quit (Quit: Leaving).
15:55:21 -!- lynn has joined.
15:58:05 <rdococ> simply looking at articles that talk about BASIC make me want to program in it
15:58:45 <rdococ> I always get this weird version of nostalgia when I see stuff like that, even though I haven't even touched it before
16:00:22 <lynn> Same here
16:02:08 <rdococ> if only I could get an old computer...
16:02:39 <rdococ> I think they need to re-introduce the language
16:02:51 <rdococ> into schools
16:02:57 <rdococ> (do schools even do programming?)
16:04:36 <int-e> . o O ( excel and html )
16:04:40 <int-e> I don't know.
16:06:00 <boily> depends on the school, really. we did LOGO when I was in elementary.
16:06:16 <boily> turtle graphics on old 486es for the win!
16:08:44 -!- zadock has joined.
16:08:55 -!- bb010g has quit (Quit: Connection closed for inactivity).
16:15:12 <int-e> let's see... how about Bavaria, Germany... grade 9: spread sheets, databases, grade 10: object oriented programming, grade 11: recursive data structures, software engineering, grade 12: formal languages, process communication and synchronization, computer architecture, limits of computability
16:19:29 <rdococ> probably not for me
16:19:47 <Taneb> boily, I didn't do any programming in school
16:20:00 <rdococ> since I have high functioning autism, they put me in a special school, and they don't even teach algebra at year 7/8/9
16:20:04 <Taneb> The first programming I did was using an online Piet editor and interpreter
16:20:43 <rdococ> put it this way - I'm smarter than students of my age, and then I get put into a dumber school
16:21:13 <olsner> Taneb: somehow doesn't seem like the typical way to start :)
16:21:17 <int-e> ah, it goes back further under a different headline. grade 7 introduces Internet, E-mail (briefly), and Algorithms, and grade 6 has representation of information, and office software and file systems,
16:21:40 <Taneb> olsner, yeah, I've never picked up some important habits
16:21:56 <Taneb> Like comments, and useful variable names
16:22:06 <Taneb> But Piet was the first programming language I learnt
16:22:06 <olsner> Taneb: do you find yourself trying to paint in other languages?
16:22:12 <Taneb> Yes, all the time
16:23:04 <b_jonas> Taneb: what? but piet is IDEAL for writing comments
16:23:16 <b_jonas> it even lets you make the comments pretty
16:23:30 <Taneb> b_jonas, it's hard to write a pixel at a time
16:23:34 <int-e> So they have some limited exposure to programming in grade 7.
16:24:26 <b_jonas> Taneb: no it's not! that's how people wrote all the books with pens and inscribed all the engravings to stone before printing and typewriters were invented.
16:24:37 <int-e> (basic imperative programming... then some OO... anything else they'll have to pick up outside of school)
16:24:47 <int-e> but whatever. it used to be worse.
16:25:44 <int-e> oh and spreadsheets are a form of declarative programming, of course, though rather limited
16:26:19 <rdococ> what are you talking about? I'm year 8 and I barely get exposure to computers
16:26:40 <rdococ> I can't take it anymore, I want to do something interesting
16:27:06 <b_jonas> rdococ: yes, that sucks, but at least it's better than back when you also didn't have the internet to talk to other people about it
16:27:17 <b_jonas> lots of children suffered from that
16:27:29 <rdococ> true
16:27:37 <b_jonas> go learn stuff online and do something interesting
16:27:45 <rdococ> I try to
16:28:20 <rdococ> wait, browser based version of BASIC? this might work
16:28:31 <int-e> rdococ: I was talking about one concrete curriculum that I found online.
16:28:53 <rdococ> int-e: now I wish I was german
16:29:33 <int-e> And even inside Germany there will be differences.
16:30:15 <int-e> (since ridiculously education isn't managed on a federal level but on the state level)
16:31:14 <b_jonas> why is that ridiculous?
16:31:25 <b_jonas> ok, sorry, I shouldn't ask that
16:32:01 <rdococ> I feel like I'm temporally shifted in spacetime
16:32:12 <rdococ> "remembering" the past before I was born
16:34:06 -!- bender| has quit (Ping timeout: 248 seconds).
16:35:46 <int-e> b_jonas: Maybe two points... it makes moving within Germany unecessarily hard on children, and it leads to different standards of education in the various states (a lot of which can be explained by budget concerns)
16:37:03 <int-e> I do realize that a centralized system would at best solve half of that problem...
16:40:20 -!- tromp_ has joined.
16:42:46 -!- Froox has quit (Quit: *bubbles away*).
16:44:38 -!- tromp_ has quit (Ping timeout: 244 seconds).
16:45:22 -!- mihow has joined.
16:45:32 -!- Frooxius has joined.
17:06:51 <shachaf> boily: "language" is feminine hth
17:11:38 <rdococ> why do people give random words gender
17:11:39 <b_jonas> shachaf: “langue” is feminine but “langage” is masculine and “dialecte” is masculin too
17:13:33 <b_jonas> rdococ: they're not gender, they're grammatical gender. not the same.
17:15:58 <b_jonas> `? rdococ
17:16:24 -!- Frooxius has quit (Quit: *bubbles away*).
17:16:24 <HackEgo> RDOCOCLIKESTOMAKELANGUAGESLIKETHIS
17:21:40 <rdococ> LOL
17:21:44 <rdococ> wait
17:21:49 <rdococ> I've only made one language like that
17:22:26 <rdococ> unless you count the "Beginners' All-purpose Symbolic Instruction Code, Esoteric Revision" which I'm making the article for right now
17:28:07 <int-e> `culprits rdococ
17:28:15 <int-e> `culprits wisdom/rdococ
17:28:32 <int-e> HackEgo: come on, this is easy!
17:29:19 * int-e twiddles HackEgo's virtual thumbs.
17:29:20 -!- mihow has quit (Quit: mihow).
17:29:26 <HackEgo> No output.
17:29:32 <HackEgo> No output.
17:30:00 <int-e> huh.
17:30:42 <b_jonas> Apart from me, who else is known to have created a new esoteric programming language by mistake of misunderstanding another programming language?
17:31:13 <int-e> `rm wisdom/rdococ rdococlikestomakelanguageslikethis
17:31:16 <HackEgo> No output.
17:32:00 <int-e> ITWASAPREDICTIONANDITWASRIGHT!ALLHAILOERJANTHEPRESCIENTMASTEROF#ESOTERIC!
17:32:27 <zzo38> I think I have not done, but I cannot remember. I also do not believe anyone else has done although perhaps that also I did not remember.
17:32:56 <int-e> (though I suppose it actually was somebody else... hmmmmm)
17:33:16 <b_jonas> BancSTAR could be such a language of course, we don't know
17:33:25 <b_jonas> I mean, our version of BANCStar
17:33:27 <rdococ> `? rdococ
17:33:28 <HackEgo> RDOCOCLIKESTOMAKELANGUAGESLIKETHIS
17:33:40 <rdococ> `rm wisdom/rdococ RDOCOCLIKESTOMAKELANGUAGESLIKETHIS
17:33:41 <HackEgo> rm: cannot remove `wisdom/rdococ RDOCOCLIKESTOMAKELANGUAGESLIKETHIS': No such file or directory
17:34:35 <int-e> actually it wasn't... fun. oerjan still had to learn how to use le/rn.
17:34:41 <boily> rdococ: you are wisdommed. you can't be erased. accept the assimilation.
17:34:54 <b_jonas> I am wisdommed too
17:34:56 <b_jonas> `? int-e
17:34:57 <HackEgo> int-e är inte svensk. Hen kommer att spränga solen.
17:34:58 <b_jonas> `? boily
17:35:01 <HackEgo> ​"Only sane man" boily is monetizing a broterhood scheme with the Guardian of Lachine, apparently involving cookie dealing. He's also a NaniDispenser, a Trigotillectomic Man Eating Chicken and a METARologist. He is seriously lacking in the f-word department. He is also a renowned Capitalist.
17:35:37 <zzo38> It is possible that some things on the esolang wiki about BANCStar are wrong. There is some that I believe is certainly wrong; I have posted what I believe is correct.
17:35:47 <zzo38> (But possibly I am also wrong)
17:35:50 <int-e> Don't fight the wisdom. Embrace it!
17:36:05 * int-e embraces his inner non-swedishness.
17:36:27 <b_jonas> `? spell
17:36:27 <HackEgo> spell? ¯\(°​_o)/¯
17:37:08 <int-e> `? misspellings of croissant
17:37:09 <HackEgo> misspellings of crosant? ¯\(°​_o)/¯
17:37:39 <int-e> that seems to be the only spell in there
17:37:42 <rdococ> yay for trying to make a Sonic game in a web browser version of BASIC
17:37:52 <b_jonas> `? regress
17:37:52 <int-e> `? xyzzy
17:37:54 <HackEgo> Nothing happens.
17:37:58 <HackEgo> regress? ¯\(°​_o)/¯
17:38:07 <int-e> `? frotz
17:38:09 <HackEgo> frotz? ¯\(°​_o)/¯
17:38:21 <int-e> `? zork
17:38:23 <HackEgo> Zork is like York, except for the first letter.
17:38:33 <int-e> brilliant insight
17:38:52 <zzo38> My own conclusions come from looking at existing BANCStar programs, rather than looking at the codes for the program to generate the printout
17:39:05 <int-e> `? xargs
17:39:05 <b_jonas> Once cast, a spell can be undone. But once created, a wisdom entry can never again be erased. – Pontifex, elder researcher
17:39:06 <HackEgo> xargs is for piping snowmen.
17:39:36 <zzo38> Such as, my own guess is that command 3100 seems to mean that if the condition is not true then it is an error and the user must rekey the input.
17:40:55 <int-e> @metar LOWI
17:40:55 <lambdabot> LOWI 281720Z 12014G26KT 090V170 9999 FEW070 BKN300 14/03 Q1006 NOSIG
17:41:02 <boily> are there any screenshots, examples, videos or captures of a BANCStar programme running?
17:41:12 <boily> @metar CYUL
17:41:12 <lambdabot> CYUL 281737Z 14016KT 2 1/4SM -DZ BR SCT009 OVC014 07/06 A2944 RMK SF3ST5 SLP973
17:41:22 <zzo38> There is also the code that "only ten people in the world can read", which I have partially figured out and guessed at the rest.
17:41:27 <boily> -DZ BR... more like it was pouring a few minutes ago.
17:41:47 <zzo38> boily: I do not know of any screenshots
17:41:47 -!- Reece has joined.
17:42:01 <int-e> brrrr?
17:42:19 <boily> nah, it's warm today! +7 °C!
17:42:22 <rdococ> I can't do nested arrays in Quite BASIC?
17:42:30 <int-e> How did mist become BR, hmm.
17:42:31 <rdococ> wait, does BASIC even have nested arrays?
17:42:40 <boily> yes, at least Turbo BASIC.
17:42:45 <rdococ> oh, interesting
17:42:51 <int-e> "BR, Mist (French: Brume)"
17:43:03 -!- Reece` has quit (Ping timeout: 244 seconds).
17:43:05 <int-e> The French strike again.
17:43:15 <boily> of course! we're everywhere!
17:44:36 <HackEgo> [wiki] [[Amycus]] https://esolangs.org/w/index.php?diff=46671&oldid=45551 * B jonas * (+164)
17:46:10 <HackEgo> [wiki] [[User:B jonas]] https://esolangs.org/w/index.php?diff=46672&oldid=45479 * B jonas * (+124)
17:47:28 <HackEgo> [wiki] [[Amycus Severus]] https://esolangs.org/w/index.php?diff=46673&oldid=45521 * B jonas * (+149)
17:48:25 <b_jonas> I really should give a name to the original language of David so I can talk about it. What should I name it?
17:48:42 <zzo38> I also believe that colour codes are actually PC codes and not ANSI codes; I don't know why they wrote that it is ANSI codes
17:48:57 <zzo38> b_jonas: David Language
17:49:14 <b_jonas> zzo38: no, there's at least one other esoteric programming language by David Madore
17:49:44 <b_jonas> (plus he has his own slightly esoteric dialect of French)
17:51:29 <zzo38> O, I didn't know that
17:51:39 <b_jonas> zzo38: he invented Unlambda
17:51:44 <zzo38> Ask David Madore (if possible)
17:51:57 <b_jonas> that is possible, yes
17:52:28 -!- boily has quit (Quit: REPLICATE CHICKEN).
17:53:55 -!- idris-bot has quit (Quit: Terminated).
17:54:10 -!- Melvar has quit (Quit: storm).
17:54:44 <b_jonas> Does there exist a double-ended toothbrush that has a brush head on both ends of the same handle?
17:54:45 -!- mihow has joined.
17:55:27 <b_jonas> It seems there are double toothbrushes that have two heads on the same end of the handle
17:55:55 -!- Frooxius has joined.
17:56:16 -!- nooga has quit (Quit: Lost terminal).
17:56:32 <b_jonas> It seems such a thing exists: https://groomies.es/es/dientes/958-cepillo-de-dientes-doble-extra-largo.html
17:56:38 <b_jonas> that's either crazy or esoteric
17:58:00 -!- J_Arcane has quit (Ping timeout: 244 seconds).
18:00:22 <int-e> b_jonas: so can you find a four-headed one?
18:01:31 <int-e> (And why stop at that? you can go all Lucas and make a cross of toothbrushes!)
18:01:51 <int-e> Or a swiss army knife!
18:03:21 <b_jonas> yeah, or a whole toothbrush tree
18:03:55 <b_jonas> or http://www.irregularwebcomic.net/1186.html with infinitely many heads
18:07:33 -!- lynn_ has joined.
18:08:02 -!- lynn has quit (Ping timeout: 260 seconds).
18:08:33 -!- J_Arcane has joined.
18:10:18 -!- Melvar has joined.
18:13:56 -!- idris-bot has joined.
18:15:34 <int-e> stupid n+1 step processes
18:17:07 <int-e> (something along the lines of "submit review" - "confirm review" ... apparently I expect that to be one step (especially since the previous dialog already offered me things like saving a draft))
18:18:55 <b_jonas> Someone should check what I wrote in the [[Amycus]] article and tell how much of that is nonsense
18:20:03 -!- lynn_ has quit (Ping timeout: 240 seconds).
18:25:50 <b_jonas> Those writeups should be rewritten though because they still contain sentences based on the origianl misunderstanding.
18:26:13 <b_jonas> But I can't rewrite them if I can't refer to the original language! Argh
18:36:47 <rdococ> (having to write the line numbers manually is a bit of a pain when I need to add lines in between lines)
18:37:16 <Taneb> rdococ, that's why COMPLEX lets you write the lines in any order you want!
18:37:57 <rdococ> no, I mean because I have to change each line number
18:38:33 <int-e> can't you leave gaps in the line numbers?
18:39:09 <int-e> the BASIC I grew up with used line numbers 10,20,30,... by default so that one could easily insert lines later
18:40:18 <rdococ> yeah
18:40:28 <b_jonas> Whereas the APL del editor lets you use non-integer line numbers, but the line numbers are only temporary, and they're reassigned with sequential numbers when you exit the del editor (or more like they're assigned when you enter the del editor, and only the sorted sequence of lines are saved when you exit it).
18:40:38 <rdococ> but then when the gaps are differentin length
18:41:55 <rdococ> is this APL del editor software or is it from when basic was taught in schools?
18:42:31 -!- lynn has joined.
18:43:21 <b_jonas> it's… um, part of the APL workspace software, just like how the line editor is part of most BASIC interpreters, and … well, it's probably older than BASIC taught in schools
18:44:07 <Taneb> APL is a programming language from back when they didn't really know what programming languages ought to look like
18:44:19 <b_jonas> `? apl
18:44:19 <Taneb> Back when to program you plugged your phone into your typewriter
18:44:41 <HackEgo> APL stands for Algorithmic Programming Language.
18:44:48 <rdococ> ...did you actually have to plug a phone into the typewriter?
18:44:59 <rdococ> it'd have to be a telephone or something, I know that much
18:45:05 <rdococ> or am I just talking crazy
18:45:05 <b_jonas> hehehe
18:45:09 <Taneb> rdococ, yeah, because computers were huge big things that took up a room
18:45:12 <b_jonas> oh the young ones
18:45:19 <b_jonas> anyway
18:45:23 <rdococ> I know that
18:45:29 <Taneb> So you rang the computer and plugged in your typewriter
18:45:37 <Taneb> An electric typewriter, of course
18:45:42 -!- zadock has quit (Quit: Leaving).
18:45:42 <rdococ> you rang the computer...?
18:45:46 * int-e rolls his eyes.
18:45:48 <Taneb> Yeah
18:45:51 <rdococ> uh okay
18:46:10 <Taneb> Seriously, APL is going back a long time
18:46:32 <b_jonas> rdococ: computers were expensive, so people used them remotely. by means of a terminal, which is the same as a telex machine, and is an electromechanical or electrical typewriter with a keyboard and either a printer or a CRT display or both, connected to a modem
18:46:32 <int-e> `? taneb
18:46:35 <HackEgo> Taneb is not elliott, no matter who you ask. He also isn't a rabbi although he has pretended in the past. He has at least two backup keyboards with dodgy SHIFT KEys, cube root of five genders, and voluminous but calm eyebrows. (See also: tanebventions)
18:47:16 <Taneb> Haven't seen elliott in ages :/
18:47:17 <b_jonas> where the modem transmits data through an analog telephone wire connected by the ordinary telephone network, plus the terminal may also have a ticker tape reader and puncher.
18:47:20 <int-e> b_jonas: why go to all that trouble when you can just hand the operators a stack of punched cards?
18:47:38 <rdococ> I'm working on a Sonic game in BASIC... or at least something close
18:48:02 <rdococ> but of course it's a modern version -- no, not visual basic
18:48:13 <b_jonas> int-e: the computer is in a remote location, and the telex transmits the data faster to such a remote location than any other way you could transmit the punch cards or ticker tape
18:48:14 -!- mihow has quit (Quit: mihow).
18:48:16 <rdococ> I found this
18:48:17 <rdococ> http://www.quitebasic.com/
18:48:25 -!- Reece` has joined.
18:48:34 -!- Reece has quit (Ping timeout: 240 seconds).
18:48:50 <b_jonas> There's some things I don't understand about terminals though
18:49:56 <rdococ> what is it?
18:50:01 <b_jonas> 1. why are they called both terminals and telex machines and what's the difference, 2. how the fuck can an electromechanical typewriter do all the modem stuff without electronics, and 3. why did they even bother with electromechanics when electronics were already available by the time the terminals were created.
18:50:16 -!- mihow has joined.
18:50:55 <rdococ> is telex an old version of fax or something?
18:51:04 <int-e> uh, they just repurposed telegraphy service devices... that's what telex machines are.
18:51:12 <rdococ> okay...
18:51:47 <int-e> "terminal" is just a different view on the topology... it's not, say, a repeater connecting two lines, but and end point.
18:51:56 -!- hppavilion[1] has joined.
18:52:03 <b_jonas> rdococ: sort of, but a telex transmits character data (where a character means 5 or 7 or 6 or 8 bits) whereas a fax transmits bitmap graphical data. both were used as sort of improved versions of telegraphy.
18:53:13 <int-e> oh https://en.wikipedia.org/wiki/Telex helps with terminology (terminalogy?)
18:53:16 <rdococ> okay
18:53:33 <b_jonas> fax is a newer invention
18:53:47 <int-e> so we should really call the machines teletypes
18:55:21 <int-e> surprisingly (haha), wikipedia is inconsistent on this
18:55:24 <b_jonas> Back when we were young, telephone books contained telefax (fax) and telex numbers too, because some businesses and offices ran such machines, and they're connected to the ordinary telephone network. Today, there are no printed telephone books, and no telex network.
18:55:39 <int-e> on the Telegraphy page, they write "These machines were called "Telex" (TELegraph EXchange)."
18:56:47 <int-e> ...and we have paperless offices where fax machines are virtualized and soon phased out...
18:57:05 <b_jonas> int-e: yeah, paperless offices where people print and then scan the emails they get.
18:57:38 <int-e> rdococ: Btw, this channel sometimes makes it hard to separate fact from fiction.
18:57:44 <b_jonas> the paperless parts never really works out well.
18:57:52 <b_jonas> `? paperless
18:57:55 <HackEgo> paperless? ¯\(°​_o)/¯
18:58:06 * b_jonas tries not to make the obvious joke
18:58:49 <int-e> "send an email, but fax a copy in case they don't read email, and send a letter as well so that they have a clean copy for the archives"
18:59:07 <int-e> (not sure where this is from... Dilbert?)
18:59:31 <int-e> yeah. http://dilbert.com/strip/1995-12-11
18:59:51 <int-e> 20 years later I suspect this is still true.
19:02:05 <b_jonas> int-e: hehe. yes
19:26:57 <int-e> `le/rn paperless/In a paperless world, rock would never lose.
19:27:04 <HackEgo> Learned «paperless»
19:28:15 -!- lambda-11235 has quit (Quit: Bye).
19:33:36 <zzo38> Someone else I know, although an atheist, said that if he made up the laws he would say that Canada is the Christian country, only for the purpose of the calendar. I am not sure that is necessary, since they are already national holidays, although maybe I missed something.
19:35:19 -!- Reece` has quit (Ping timeout: 252 seconds).
19:35:36 -!- Reece` has joined.
20:01:50 -!- gremlins has joined.
20:03:21 -!- Reece` has quit (Ping timeout: 268 seconds).
20:06:33 -!- jaboja has quit (Ping timeout: 240 seconds).
20:17:07 -!- hppavilion[1] has quit (Ping timeout: 248 seconds).
20:17:58 -!- hppavilion[1] has joined.
20:18:18 -!- jaboja has joined.
20:23:28 -!- oren has joined.
20:24:16 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
20:25:03 <oren> i don't understand why people were depending on an external host to have a left pad function
20:25:36 -!- MDead has joined.
20:25:57 -!- jaboja has quit (Ping timeout: 276 seconds).
20:25:59 <Taneb> Because people who use JavaScript for non-web are not the best at system architecture
20:26:40 -!- hppavilion[1] has joined.
20:27:39 <b_jonas> oren: huh what? what's this about this time?
20:28:14 -!- MDude has quit (Ping timeout: 248 seconds).
20:28:20 -!- MDead has changed nick to MDude.
20:28:23 <b_jonas> ``` printf %70s "left pad function"
20:28:26 <HackEgo> ​ left pad function
20:29:29 <Taneb> b_jonas, a lot of Node programmers got their projects broken when someone threw a tantrum and removed a package from npm
20:29:43 <Taneb> Said package was 11 lines long and just provided a left pad function
20:29:59 <b_jonas> what's npm?
20:30:39 <Taneb> Node.js package manager
20:30:49 <Taneb> Like Hackage or crates.io or something
20:31:08 <b_jonas> I see
20:32:45 -!- x_ has joined.
20:33:58 -!- ais523 has joined.
20:36:33 <zzo38> You can easily implement a left pad function in one line of a JavaScript code: const leftpad=(x,y,z)=>(z.repeat(y)+x).slice(-y);
20:36:53 -!- lynn_ has joined.
20:37:08 <ais523> zzo38: I imagine that's a little inefficient as you generate the string of y zs regardless of what the input is
20:37:17 <myname> zzo38: thatjs way to performant
20:37:18 <ais523> but yes, that seems like a good demonstration of how simple the function is
20:37:21 <zzo38> I do have some Node.js packages too
20:37:23 -!- lynn has quit (Disconnected by services).
20:37:29 -!- lynn_ has changed nick to lynn.
20:38:04 <myname> ais523: that depens on what string concatenation and repeat are doing
20:38:23 <ais523> myname: this is unlikely as an optimization
20:38:30 <myname> it string + string always needs to copy anything it would be really slow
20:39:46 <myname> padding an empty string would be n^2 then
20:39:55 <myname> repeat cannot be worse than that
20:41:42 <ais523> @tell oerjan I can't see deleted templates on Wikipedia (other than via WP:REFUND which seems rather a waste of admin time), but a) it seems likely, b) the template is unused and probably not useful, c) the template is buggy, d) the template may be uncopyrightable because there's no other sensible way to write its functionality
20:41:43 <lambdabot> Consider it noted.
20:42:19 <myname> if repeat isn't implemented completely stupid it would need O(y) time + one concat + O(y) slice
20:42:35 <myname> the other version needs O(y) concats
20:42:56 <myname> assuming that concat is slow, zzo38's version is way faster
20:42:57 <ais523> myname: concat may be O(a) time rather than O(a+b) time where the lengths of the strings are a and b
20:43:13 <ais523> oh, I'm not talking about the original left-pad, that one is probably really slow
20:43:20 -!- jaboja has joined.
20:43:25 <myname> okay
20:47:25 <zzo38> Can DVD-video support text captions? What happen if you record a TV show with captions on a DVD?
20:47:53 <myname> what captions?
20:47:53 <b_jonas> zzo38: I think it can support text captions, and I don't know
20:48:12 <Taneb> zzo38, most DVD recorders I believe take it out of the display, which will include captions if they are displayed at the time of recording
20:49:02 <zzo38> Taneb: The DVD recorder I have does have the ability to display captions.
20:49:55 <zzo38> But I mean if it can support text captions which are separate from subtitles
20:51:21 <b_jonas> wait, they're separate from subtitles...
20:51:22 <b_jonas> what
20:52:38 <zzo38> Captions are text and subtitles are pictures. This means that it is possible to customize the settings for font size and colours of captions.
20:53:00 <zzo38> But for subtitles you have to use whatever font is recorded on the disc instead.
20:54:16 <zzo38> My own opinion is that only captions should be used and subtitles should not be used except possibly for compatibility purpose.
20:56:00 -!- Reece` has joined.
20:56:41 <zzo38> I found a webpage for a computer program, and it says that DVDs do support captions.
20:57:37 -!- gremlins has quit (Ping timeout: 268 seconds).
21:00:48 -!- lynn has quit (Quit: Leaving).
21:03:19 <zzo38> Does any show have captions for the descriptive video in addition to the normal speech?
21:06:37 -!- lynn has joined.
21:07:51 <Taneb> `slist
21:07:53 <HackEgo> slist: Taneb atriq Ngevd nvd Fiora Sgeo ThatOtherPerson alot
21:08:00 <Taneb> Hang on
21:08:07 <Taneb> I'm the only person on that list who'st actually in here
21:08:13 <Taneb> And I'm most of the list
21:08:43 <shachaf> that's why it's called solipsism list
21:10:16 <Taneb> Haha
21:10:28 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
21:10:45 -!- J_Arcane has quit (Ping timeout: 244 seconds).
21:10:49 <shachaf> `? atriq
21:10:50 <HackEgo> atriq or two
21:11:00 <shachaf> `? taneb
21:11:02 <HackEgo> Taneb is not elliott, no matter who you ask. He also isn't a rabbi although he has pretended in the past. He has at least two backup keyboards with dodgy SHIFT KEys, cube root of five genders, and voluminous but calm eyebrows. (See also: tanebventions)
21:11:15 <shachaf> > 5**(1/3)
21:11:16 <lambdabot> 1.7099759466766968
21:11:36 <shachaf> `? tanebventions
21:11:38 <HackEgo> Tanebventions include D-modules, Chu spaces, automatic squirrel feeders, the torus, gazpacho, Stephen Wolfram, Go, submarine jousting, the universe, weetoflakes, persistence, the reals, Lambek's lemma, robots, progress, and this sentence. He never invents anything involving sex.
21:11:59 <shachaf> I feel like maybe that wisdom entry should rhyme.
21:11:59 <rdococ> hmm
21:12:04 <shachaf> To some Gilbert & Sullivan tune, perhaps.
21:12:30 -!- hppavilion[1] has joined.
21:12:45 -!- boily has joined.
21:12:51 <rdococ> should I keep working on my Sonic attempt in Quite BASIC?
21:13:00 <shachaf> `? gazpacho
21:13:02 <HackEgo> You like Gazpacho and I like Gaspacho. Let's call the whole thing off!
21:13:19 <shachaf> `culprits wisdom/tanebvention
21:13:25 <HackEgo> shachaf b_jonas oerjan shachaf shachaf boily boily shachaf oerjan oerjan Taneb oerjan elliott oerjan oerjan FireFly oerjan boily oerjan ais523 ais523 oerjan
21:14:26 <rdococ> `? gaspacho
21:14:29 <HackEgo> You like Gaspacho and I like Gazpacho. Let's call the whole thing off!
21:14:34 <rdococ> wait what
21:14:47 <rdococ> `? rdococ
21:14:49 <HackEgo> RDOCOCLIKESTOMAKELANGUAGESLIKETHIS
21:14:56 <boily> rdochellloc. the szoups are complex. please consult the Wisdom PDF hth
21:15:05 <rdococ> the wat
21:15:06 * boily ought to retopic the PDF...
21:15:10 <shachaf> that pdf isn't even real
21:15:11 <boily> rdococ: just a moment...
21:15:13 <rdococ> rewhat
21:15:14 <shachaf> it's been photoszouped
21:15:20 <rdococ> photowhat
21:15:21 <boily> IT IS REAL! REALER THAN CANADA! EH!
21:15:26 <rdococ> realerwhat
21:15:30 <boily> heretichaf.
21:15:54 <shachaf> boily: shachaf mipesha hth
21:16:35 <boily> rdococ: https://www.dropbox.com/s/fyhqyvy3i8oh25m/wisdom.pdf?dl=0
21:16:57 <boily> (warning: may not be quite exactly up to date at all. I'm several months out of touch with the latest installments.)
21:17:00 <boily> (hth)
21:18:10 <shachaf> boily: did you demaur it yet hth
21:19:24 -!- atrapado has joined.
21:19:44 -!- lynn_ has joined.
21:19:49 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
21:19:50 -!- lynn has quit (Disconnected by services).
21:20:29 -!- lynn_ has changed nick to lynn.
21:20:58 <olsner> `source
21:20:59 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: source: not found
21:21:02 <olsner> `help
21:21:03 <HackEgo> Runs arbitrary code in GNU/Linux. Type "`<command>", or "`run <command>" for full shell commands. "`fetch <URL>" downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert <rev>" can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/
21:22:56 <int-e> ^style sms
21:22:57 <fungot> Selected style: sms (National University of Singapore SMS corpus, 2011-08-20)
21:23:05 <int-e> fungot: nlghtn us
21:23:05 <fungot> int-e: in one min. soon
21:23:16 <int-e> ^style irc
21:23:16 <fungot> Selected style: irc (IRC logs of freenode/#esoteric, freenode/#scheme and ircnet/#douglasadams)
21:24:29 -!- lynn_ has joined.
21:25:29 -!- x_ has quit (Quit: Sto andando via).
21:25:33 <boily> shachaf: I don't think so hth
21:26:22 <shachaf> lynn_: is "demure" a good adjective for you
21:27:54 -!- lynn has quit (Ping timeout: 246 seconds).
21:27:55 -!- lynn__ has joined.
21:27:56 <int-e> `quote demure
21:28:00 <HackEgo> No output.
21:30:27 -!- lynn_ has quit (Ping timeout: 260 seconds).
21:31:06 <int-e> `quote murder
21:31:07 <HackEgo> 130) <alise> Phantom_Hoover: Don't be nasty; he's a lunatic, not a murderer. \ 271) <Vorpal> elliott, it was an artful robbery! <Vorpal> wait, murder \ 753) <monqy> you've constructed a situation in which i have no choice but to die in 10 days <monqy> well done <monqy> that's murder \ 1080) <zzo38> Even if the people who made that program is a m
21:31:14 <boily> lynn__ is emulating Phantom_________Hoover...
21:31:15 -!- lynn has joined.
21:31:24 <boily> lynn: hellynn. connection problems?
21:31:43 <lynn> Really horrible ones ;___;
21:32:18 <shachaf> even lynn's ascii face is emulating Phantom_________Hoover
21:32:35 <shachaf> assuming that's a face, i don't really know how to read those things
21:33:30 -!- lynn__ has quit (Ping timeout: 246 seconds).
21:34:19 <rdococ> what if it's secret code in a secret programming language? ___;_;____;;;
21:34:25 <boily> `quote ◇
21:34:26 <HackEgo> No output.
21:34:34 <boily> darn. wrong unicode diamond.
21:35:10 -!- lynn has quit (Client Quit).
21:35:13 <boily> `quote ________
21:35:14 <HackEgo> 1010) <Bike> ◊_______________________◊ <elliott> help. <Phantom_Hoover> jesus christ elliott <Phantom_Hoover> apply pressure evenly when jamming eyes open
21:35:41 <rdococ> ◇◇
21:35:46 <rdococ> `quote ◊
21:35:47 <HackEgo> 1010) <Bike> ◊_______________________◊ <elliott> help. <Phantom_Hoover> jesus christ elliott <Phantom_Hoover> apply pressure evenly when jamming eyes open
21:35:59 <rdococ> `quote rdococ
21:35:59 <HackEgo> 1238) <rdococ> what? I just wanted a laugh... lol <rdococ> I need to stop using lol, lol <olsner> just stop then, hth
21:36:03 -!- lynn has joined.
21:36:18 <rdococ> lol lol
21:36:26 -!- lynn has changed nick to Guest57498.
21:37:13 <boily> Guest57498: don't you dare die on us!
21:37:27 -!- Guest57498 has changed nick to lynn.
21:37:37 -!- lynn has quit (Changing host).
21:37:37 -!- lynn has joined.
21:37:37 -!- lynn has quit (Changing host).
21:37:37 -!- lynn has joined.
21:40:19 <rdococ> rip lynn 20 times
21:41:01 <lynn> Now I’m on some kinda cloud thing. So, that might work better?
21:43:55 <b_jonas> `? cloud
21:43:56 <HackEgo> cloud? ¯\(°​_o)/¯
21:45:33 <b_jonas> `learn The cloud is a server Blackhat guy runs, connected to the internet through a cable modem. There's a lot of caching. Cloud is also the shape of clouds.
21:45:38 <HackEgo> Learned 'cloud': The cloud is a server Blackhat guy runs, connected to the internet through a cable modem. There's a lot of caching. Cloud is also the shape of clouds.
21:48:11 <int-e> Hmm. NSA is a kind of caching service.
21:48:53 -!- hppavilion[1] has joined.
21:50:02 -!- Reece` has quit (Ping timeout: 268 seconds).
21:54:06 <myname> https://en.m.wikipedia.org/wiki/S6_(classification) wait, what
22:22:42 -!- Sgeo has joined.
22:23:11 -!- Sgeo has quit (Read error: Connection reset by peer).
22:27:29 <int-e> b_jonas: I finally found the individually checked beans. That must be a fun way to pass time.
22:28:15 <b_jonas> heh heh heh
22:28:22 <b_jonas> fun for who?
22:29:57 -!- nycs has quit (Ping timeout: 260 seconds).
22:30:01 <int-e> Hanners, of course.
22:30:28 <int-e> (Well, at least until she finds a bad bean.)
22:32:35 -!- Sgeo has joined.
22:43:56 -!- atrapado has quit (Quit: Leaving).
22:52:55 -!- oerjan has joined.
22:59:55 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
23:00:49 <oerjan> @messages-
23:00:49 <lambdabot> ais523 said 2h 19m 6s ago: I can't see deleted templates on Wikipedia (other than via WP:REFUND which seems rather a waste of admin time), but a) it seems likely, b) the template is unused and probably not useful, c) the template is buggy, d) the template may be uncopyrightable because there's no other sensible way to write its functionality
23:01:36 * oerjan interprets (d) as an excuse to do nothing hth
23:02:35 <ais523> well it's also unused and I can't see an obvious use for it
23:02:43 <Taneb> Can you patent a wikipedia template
23:02:52 <b_jonas> lol
23:03:22 -!- jaboja has quit (Remote host closed the connection).
23:07:46 <oerjan> ais523: since when has that been a reason to delete anything on our wiki :P
23:07:58 <ais523> oerjan: in terms of articles or templates? :P
23:08:11 <ais523> templates are kind of meta-stuff, they have different topicality rules
23:09:15 <oerjan> hey don't ruin the joke with details
23:09:30 -!- mihow has quit (Quit: mihow).
23:09:56 <ais523> oh, I thought you were trying to use sarcasm to make as serious point
23:10:59 -!- tromp_ has joined.
23:11:10 <oerjan> >_>
23:13:38 <oerjan> `? cia
23:13:40 <HackEgo> cia? ¯\(°​_o)/¯
23:13:51 <oerjan> `learn CIA sees it all.
23:13:53 <HackEgo> Learned 'cia': CIA sees it all.
23:14:22 <shachaf> i thought it stood for cookies in advance
23:14:26 <shachaf> the next level of thanks in advance
23:16:58 <oerjan> `? stupidity
23:16:59 <HackEgo> Stupidity is created when people are too lazy to think correctly.
23:17:07 <oerjan> i think this is somehow meta.
23:17:19 <oerjan> possibly in two different ways.
23:21:03 -!- gde33 has quit (Ping timeout: 240 seconds).
23:21:37 -!- tromp_ has quit (Remote host closed the connection).
23:21:37 <int-e> `? meta
23:21:38 <HackEgo> meta? ¯\(°​_o)/¯
23:21:44 <int-e> `learn meta is about
23:21:46 <HackEgo> Learned 'meta': meta is about
23:22:34 <int-e> `` find -type f wisdom | wc -l
23:22:35 <HackEgo> find: paths must precede expression: wisdom \ Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression] \ 0
23:22:44 <int-e> `` find wisdom -type f | wc -l
23:22:49 <HackEgo> 900
23:23:23 <int-e> `` find wisdom -type f | xargs cat | wc -c
23:23:24 <HackEgo> xargs: unmatched single quote; by default quotes are special to xargs unless you use the -0 option \ cat: wisdom/¯(°_o)/¯(°_o)a: No such file or directory \ cat: wisdom/¯(°_o)/¯: No such file or directory \ cat: wisdom/for: No such file or directory \ cat: further: No such file or directory \ cat: details.: No such file or directory \ cat: w
23:23:30 <oerjan> <boily> @tell oerjann hellørjanne! GG! <-- helloily. poor oerjann will be so confused.
23:23:32 <int-e> ah.
23:23:39 <int-e> `` find wisdom -type f -print0 | xargs -0 cat | wc -c
23:23:50 <HackEgo> 10558299
23:23:55 <shachaf> int-e: Are you sure there are no files in wisdom/ containing newlines?
23:24:29 <int-e> shachaf: well, it seems fairly useless, but no, I'm not sure.
23:25:02 <int-e> uh, that seems a bit big...
23:25:25 <shachaf> `` ls -sR wisdom | sort -rn
23:25:27 <HackEgo> 10240 irrelevant info \ 4 Э \ 4 э \ 4 αλτγρ+γ \ 4 zzo38mtg.php \ 4 zzo38mtg \ 4 zzo38card \ 4 zzo38 \ 4 zygohistomorphic prepromorphism \ 4 zork \ 4 zomgmodules \ 4 zombiecheney \ 4 zkstr \ 4 zimbabwe \ 4 yuy \ 4 york \ 4 yorick \ 4 yoda \ 4 yeeesh \ 4 yeeeesh \
23:25:30 <shachaf> `` cat wisdom/irrelevant info
23:25:31 <HackEgo> cat: wisdom/irrelevant: No such file or directory \ cat: info: No such file or directory
23:25:35 <shachaf> oops
23:25:38 <shachaf> `cat wisdom/irrelevant info
23:25:39 <HackEgo> KHL?%y9vnkM_v46$Tn`ʋxkH2gqH;!;2F(zإ2CmXW
23:25:43 -!- XorSwap has joined.
23:25:45 <shachaf> `file wisdom/irrelevant info
23:25:46 <HackEgo> wisdom/irrelevant info: data
23:25:58 <shachaf> `` hg log 'wisdom/irrelevant info' | grep summary:
23:26:00 <HackEgo> summary: <Roujo> cat /dev/urandom > wisdom/\'irrelevant info\'
23:26:05 <int-e> `culprits wisdom/irrelevant info
23:26:06 <shachaf> `rm wisdom/irrelevant info
23:26:22 <HackEgo> No output.
23:26:28 <HackEgo> shachaf oerjan elliott Roujo
23:26:36 <int-e> `` find wisdom -type f -print0 | xargs -0 cat | wc -c
23:26:42 <HackEgo> 72539
23:26:51 <int-e> okay, that's far more plausible.
23:27:03 <shachaf> `` hg log | grep summary: | grep Roujo
23:27:06 <HackEgo> summary: <Roujo> rm bin/f\x16\x16rink \ summary: <Roujo> echo "14484096/625 \\(exactly 23174.5536\\)" > bin/f\x16\x16rink \ summary: <Roujo> chmod +x bin/f\x16\x16rink \ summary: <Roujo> echo "14484096/625 (exactly 23174.5536)" > bin/f\x16\x16rink \ summary: <Roujo> echo "cf. elliott" > wisdom/godot \ summary: <Roujo> echo "
23:27:13 <shachaf> `` hg log | grep summary: | grep Roujo | paste
23:27:23 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/file/tip/paste/paste.4893
23:29:56 <oerjan> `echo hi
23:29:57 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: echo: not found
23:30:01 <oerjan> hmph
23:30:12 <oerjan> oh wait
23:30:34 <int-e> `? godot
23:30:34 <HackEgo> cf. elliott
23:31:37 <int-e> http://codu.org/projects/hackbot/fshg/index.cgi/log?rev=Roujo&revcount=1000 ...
23:32:14 <shachaf> I guess that's better than paste.
23:33:06 <int-e> the trick is to add the &revcount bit manually
23:33:33 <int-e> (since the "more" and "less" links are broken)
23:33:49 <oerjan> they are?
23:33:56 <int-e> they are.
23:34:19 <oerjan> ic
23:34:36 <shachaf> @metar ENVA
23:34:37 <lambdabot> ENVA 282320Z 12010G20KT 070V160 9999 SCT050 BKN120 09/00 Q0991 RMK WIND 670FT 15016G30KT
23:34:45 <shachaf> that doesn't seem all that icy
23:34:46 <oerjan> shachaf: spring is a-coming
23:34:55 <shachaf> (i'm joking i have no idea how to read metar hth)
23:35:12 <int-e> surely you can read the 09/00 part?
23:35:12 <oerjan> shachaf: i met a man on the road this evening who said it was unusually mild hth
23:35:25 <boily> @metar KOAK
23:35:26 <lambdabot> KOAK 282253Z 28018KT 10SM SCT020 17/03 A2988 RMK AO2 SLP117 T01670033
23:35:26 <shachaf> int-e: yes, but that doesn't tell me whether it's icy hth
23:35:31 <shachaf> oerjan: do they even have pigeons in norway?
23:35:35 <shachaf> and how about parks
23:35:42 <boily> parks, for pooches.
23:35:48 <int-e> shachaf: seems unlikely at 9 degrees celsius.
23:36:06 <int-e> @metar LOWI
23:36:07 <lambdabot> LOWI 282320Z AUTO 26004KT 230V300 9999 NCD 06/02 Q1010
23:36:13 * oerjan is considering putting on a non-winter jacket
23:36:22 <int-e> oh, a bit colder than I expected.
23:36:23 <shachaf> `? weather
23:36:26 <HackEgo> lambdabot: @@ @@ (@where weather) CYUL ENVA ESSB KOAK
23:36:28 <lambdabot> CYUL 282324Z 36013KT 4SM -RA BR OVC004 04/03 A2939 RMK ST8 SLP956 \ ENVA 282320Z 12010G20KT 070V160 9999 SCT050 BKN120 09/00 Q0991 RMK WIND 670FT 15016G30KT \ ESSB 282320Z AUTO 13010KT 9999 BKN057/// 05/01 Q1002 \ KOAK 282253Z 28018KT 10SM SCT020 17/03 A2988 RMK AO2 SLP117 T01670033
23:36:29 <oerjan> shachaf: we have pigeons. also parks. sometimes coincidental.
23:37:26 <shachaf> boily: poisoning pooches in the park? i hope not
23:38:38 <int-e> Does this allude to "Taubenvergiften im Park"?
23:39:04 <b_jonas> oerjan: is that like http://www.xkcd.com/90/ ?
23:39:25 <boily> shachaf: poisoning? fungot no!
23:39:25 <fungot> boily: all of those don't let you borrow zem. zem doesn't have win98 or a floppy drive or anything, it is woefully underpowered.
23:39:32 <oerjan> wait pooches are just dogs in general? i was imagining it was some kind of silly breed.
23:39:41 <int-e> Oh, I didn't know of the Tom Lehrer song.
23:39:49 <shachaf> oerjan: dogs in general are a silly breed hth
23:40:02 <b_jonas> hehe, true
23:40:16 <b_jonas> int-e: which one? the Elements song?
23:40:24 <b_jonas> I don't make any sense, do I?
23:40:28 -!- hppavilion[1] has joined.
23:40:50 <int-e> no, the one about poisoning pigeons in the park
23:41:26 <b_jonas> fungot, who is your nemesis?
23:41:26 <fungot> b_jonas: i think mine predates yours" issue, and i
23:41:33 <b_jonas> fungot: good
23:41:33 <fungot> b_jonas: now i was trying to say " no". the only client box is the 486. i cannot fnord it's the plural of " virus"
23:41:40 <b_jonas> ah
23:41:47 <oerjan> fizzie: is zem still woefully underpowered?
23:43:04 <hppavilion[1]> b_jonas: It's always weird to look at a fungot message before checking the usernaem
23:43:04 <fungot> hppavilion[1]: it works on the structure of the configuration language.)
23:43:11 <oerjan> b_jonas: it is indeed next to my winter jacket hth
23:43:37 <hppavilion[1]> fungot: That was pretty coherent, besides the trailing parenthesis. We're so proud of you.
23:43:37 <fungot> hppavilion[1]: is llama32 talking about loading .so files or something. i wonder what ( lambda ( data) expr)?
23:43:40 <fizzie> Whuh.
23:44:30 <hppavilion[1]> I think python should add two new operators (or 3, with an optional 5 others based off of one of the 2)
23:44:36 <hppavilion[1]> The operators should be := and ::
23:44:38 <oerjan> fizzie: ref. to fungot above
23:44:38 <fungot> oerjan: " one toke? you poor fool! wait till you see part 2 of 3)
23:45:06 <hppavilion[1]> := calls the left object's __assgn__ method, and :: calls the left object's __is_type__ method
23:45:12 <hppavilion[1]> It'd be used for type-safe python
23:45:13 <int-e> ^style
23:45:13 <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
23:45:34 <int-e> fungot: you're more incoherent than usual, is anything wrong?
23:45:35 <fungot> int-e: it uses ref counting, so cyclic data structures nor to hashes))) list)
23:45:39 <fizzie> Ah. No.
23:45:46 <hppavilion[1]> The third operators is -> (which is right-associative) and calls the left object's __goesto__ method
23:45:52 <int-e> fungot: ah, false alarm then? good, good.
23:45:53 <shachaf> the := bone is connected to the __assign__ bone / the :: bone is connected to the __is_type__ bone
23:45:53 <fungot> int-e: i think they're playing the fnord
23:46:02 <shachaf> Oh, that line was hppavilion[1]. I thought it was fungot.
23:46:02 <fungot> shachaf: you're not meant to be
23:46:08 <shachaf> fungot: ouch
23:46:09 <fungot> shachaf: are you on the net... bah. i worked in d.c., some people asked for it :) i'm sorry, i'm bored. want to hear
23:46:34 <hppavilion[1]> The optional 5 are :!=, :>, :<, :>=, and :<=, which are made to work like := but for things other than equality
23:46:41 <fizzie> <egal> the situation is: behind me sits a netware3 server with important data. the only client box is the 486. i cannot use the data that's on the server hd, there's not enough space to copy the data to the client hd, i cannot put an additional disk into the client because of the bios thing.
23:47:22 -!- tromp_ has joined.
23:48:20 <hppavilion[1]> The main usage cases for the first 3 are a library I'm calling "typesafe" which creates a dependent/algebraic/static typesystem for Python in pure python and a library called "constraints" which is like "typesafe" that puts constraints on values (such as a variable always being positive, or always being between 5 and 9) (this would also benefit from those optional 5)
23:49:05 <int-e> fizzie: that's some old hard- and software...
23:49:26 <fizzie> int-e: The line was from 2006. But it was pretty old even back then.
23:50:00 <int-e> mid 90s.
23:50:39 <hppavilion[1]> Typesafe can be implemented in current python, and a library similar to constraints already exits, but has some issues because either you use an ugly syntax involving method calls (x.set(5)) or you use up certain important operators (x << 5)
23:50:44 <fizzie> NetWare 3 apparenty dates to 1990, while NetWare 4 dates to 1993. Not that everyone would've been migrating their systems.
23:50:51 <oerjan> fizzie: um i didn't mean that line btw, there's one actually containing "zem".
23:51:14 <fizzie> oerjan: Oh, there, I see.
23:51:43 <fizzie> oerjan: I had actually completely forgotten zem, but I think zem's still in a closet somewhere, probably back in Finland.
23:51:56 <fizzie> I assume it'd count as even more woefully underpowered now.
23:52:17 <oerjan> hppavilion[1]: now all you have to do to have any chance of this happening is abduct guido van rossum and brainwash him. hth.
23:52:55 <fizzie> (Though slightly less so than the 486.)
23:54:20 <hppavilion[1]> oerjan: Why? xD
23:54:22 <fizzie> Huh, that's a combination of quite many lines.
23:54:28 <hppavilion[1]> oerjan: Is it because he hates static typing?
23:55:02 <oerjan> hppavilion[1]: because what you're suggesting is pretty against his python philosophy afaict.
23:55:19 <oerjan> he probably also hates static typing, i'm not sure.
23:55:21 <hppavilion[1]> oerjan: In what parts?
23:55:52 <oerjan> in the parts where you want to define operators that are synonyms for more readable features already existing.
23:56:01 <hppavilion[1]> oerjan: What about @ in 3.5?
23:56:20 <hppavilion[1]> oerjan: I'd say the operators would be more readable
23:56:40 <hppavilion[1]> oerjan: It would be an optional type system, and it has other use cases. The purpose is for people who /want/ static typing to be able to do so in a pretty, non-`if type(x) == t` way
23:56:53 <oerjan> hppavilion[1]: i don't know 3.5. i'm saying my hunch is that guido would hate it.
23:57:08 <fizzie> 2003-03-16 19:04:19 <fizzie> oh well. if it blows up, I'll let you borrow zem. zem doesn't have win98 or a floppy drive. -g
23:57:12 <fizzie> 2003-04-14 21:01:43 <fizzie> now it doesn't have a floppy drive or anything, hnggh.
23:57:15 <fizzie> 2004-10-22 20:50:03 <jonnay> But really, As much as i like lisp-me for being able to hack-on-the-toilet, as a scheme, it is woefully underpowered.
23:57:18 <fizzie> Plus apparently an entirely disconnected "anything, it is" of which there are at least two.
23:58:07 <b_jonas> ^style
23:58:07 <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
23:58:10 -!- XorSwap has quit (Quit: Leaving).
23:58:21 <oerjan> fancy
23:59:39 <fizzie> The "it" on the second line is also zem. The floppy drive (or lack of it) was the link there, I guess.
2016-03-29
00:01:09 <fizzie> I seem to have been trying to move files onto the silly thing by using gphoto2 to upload a tarball into an old digital camera that used CF cards, then plug that CF card into zem with a PCMCIA adapter. Wonder if that actually worked.
00:02:42 * oerjan vaguely recalls being paid to manage a room with a netware server at the university back in the early 90s.
00:02:49 -!- p34k has quit.
00:03:22 <oerjan> it was novell, at any rate. and in retrospect i was woefully underqualified but somehow shambled through.
00:03:51 <fizzie> We had a NetWare [some version] server at [particular kind of school but details of education systems vary so much between countries I'm not sure there's an unambiguous term].
00:04:20 <boily> who was talking about checked beans again?
00:04:41 <boily> and what's the name of that effect where you keep seeing and hearing about a thing you just learned about?
00:04:46 <fizzie> All I remember is that it was vulnerably to some really simple way of elevating your account (assuming you had one; most students didn't) to have superuser privileges.
00:04:54 <fizzie> s/ly/le/
00:05:04 <fizzie> Also something about login scripts.
00:06:05 <fizzie> There was an "edutainment" game about puberty made by some one-man software company, a point-and-click adventure with a buncha verbs in a menu, many of which weren't at all relevant gameplay-wise.
00:06:35 <fizzie> E.g. there was a "listen" command, which just played some random beeps and bloops and printed out "I hear voices, do you too?" (except in Finnish).
00:06:45 <int-e> hppavilion[1]: I don't want to know how much effort went into http://legacy.python.org/dev/peps/pep-0465/ and the surrounding discussion
00:07:01 <int-e> hppavilion[1]: (that's the one that added @ to Python)
00:07:10 <hppavilion[1]> int-e: Ah
00:07:12 <fizzie> (The Finnish translation of that idiom is literally closer to "I hear sounds", not specifically voices, which made it fit a bit better.)
00:09:01 <int-e> hppavilion[1]: anyway reading it, the main point seems to be that they managed to demonstrate that lacking such an operator leads to significant pain; "But isn't it weird to add an operator with no stdlib uses?" is particularly noteworthy ("we tried using *, and it's still painful")
00:09:11 <oerjan> boily: b_jonas and int-e. i have no idea what they were talking about. also, synchronicity is a general word but there was a more specific term that was memetic a few years ago...
00:09:42 <int-e> oerjan: could it be that there's a webcomic you don't read...
00:09:43 <hppavilion[1]> int-e: Interesting
00:10:12 <int-e> oerjan: http://questionablecontent.net/view.php?comic=3186
00:10:43 <oerjan> boily: "baader-meinhof effect". although wikipedia says that's a colloquial term for "frequency illusion".
00:10:53 <oerjan> er, *phenomenon.
00:11:57 <b_jonas> Is that the one where if you buy a car of make Foo, then suddenly it seems like everyone in the city are driving Foo cars and the streets are full of them?
00:12:18 <int-e> and they break all the time, have accidents all the time?
00:12:26 <oerjan> <fizzie> Also something about login scripts. <-- i vaguely think i maintained something like that.
00:12:34 * int-e is extrapolating.
00:15:51 <boily> oerjan: tdh, and tdh too.
00:16:07 <boily> how many people read QC in this here chännel?
00:16:31 <int-e> Approximately three?
00:17:03 <fizzie> In a former [something akin to a job; exact details too tiresome to describe] the (Windows) network environment had a login batch script, which ran some registry-editing jobs using a Windows sudo equivalent, with a hardcoded username ("sp5_update") and password (something like "ohdamn", except again in Finnish) in the script.
00:17:48 <int-e> s/\[.*\]/engagement/ ?
00:18:05 <fizzie> I had to use that account to do my job, because Photoshop's print dialog did not work if Photoshop wasn't running as an user with administrator rights.
00:18:20 <fizzie> (Computers 'r hard.)
00:19:15 <fizzie> That's a vague enough term to be applicable to almost anything.
00:19:21 <int-e> hmm, can you read the login script or did you have to read the commands in the shell window?
00:19:38 <fizzie> You could read the script, I think.
00:19:43 <oerjan> @tell rdococ <rdococ> so "programming language" is feminine and "a programming language" is masculine <-- you seem confused. anyway, "programmeringsspråk" is neuter hth
00:19:43 <lambdabot> Consider it noted.
00:19:44 <int-e> fizzie: yeah being vague was my idea.
00:20:22 <fizzie> I was about to say I think you need read privileges in order to be able to execute a batch file, but I'm sure it could've been something more complicated.
00:20:38 <fizzie> Anyway, it was just a (readable) .bat in a z:\ drive in this case, at least.
00:20:51 <int-e> I just haven't used windows much... I do remember commands scrolling by on login though.
00:21:06 <fizzie> Yes, you could also see the commands flash by in a console window as well.
00:21:16 <oerjan> <int-e> oerjan: could it be that there's a webcomic you don't read... <-- of course. afaict there are infinitely many webcomics and a finite day.
00:21:17 <fizzie> That might've been what got me curious to look for the login script in the first place.
00:21:39 <int-e> s/used/worked with/ (I have a windows installation for games...)
00:22:23 <int-e> oerjan: Oh did I forget to add a smiley?
00:22:41 -!- jaboja has joined.
00:25:13 <oerjan> fizzie: by "ohdamn" you mean "perkele", right </finnish stereotypes>
00:26:40 <fizzie> To throw aspiring computer crackers off, they had in fact avoided "real" swearwords.
00:26:46 <int-e> A stereotype is a two-channel monotype?
00:27:14 <int-e> `? stereo
00:27:18 <HackEgo> stereo? ¯\(°​_o)/¯
00:27:32 <int-e> `? stereomorphism
00:27:33 <HackEgo> stereomorphism? ¯\(°​_o)/¯
00:27:38 <b_jonas> heh
00:27:55 <b_jonas> `? stereotype
00:27:56 <HackEgo> stereotype? ¯\(°​_o)/¯
00:28:11 <b_jonas> `? stereoisomer
00:28:12 <HackEgo> stereoisomer? ¯\(°​_o)/¯
00:28:19 <b_jonas> `? stereocle
00:28:20 <HackEgo> stereocle? ¯\(°​_o)/¯
00:28:35 <oerjan> `learn A stereotype is a two-channel monotype.
00:28:35 <b_jonas> `? stereophtongue
00:28:40 <oerjan> sounds good to me.
00:28:42 <HackEgo> stereophtongue? ¯\(°​_o)/¯
00:28:44 <HackEgo> Learned 'stereotype': A stereotype is a two-channel monotype.
00:28:51 <int-e> `? zerg
00:28:52 <HackEgo> zerg? ¯\(°​_o)/¯
00:29:09 <b_jonas> `? protoss
00:29:09 <HackEgo> protoss? ¯\(°​_o)/¯
00:29:12 <b_jonas> `? terran
00:29:13 <HackEgo> terran? ¯\(°​_o)/¯
00:29:16 <oerjan> `le/rn zerg/We'll try to think of an entry here, but we don't want to rush it.
00:29:18 <b_jonas> `? ling
00:29:18 <HackEgo> Learned «zerg»
00:29:18 <HackEgo> ling? ¯\(°​_o)/¯
00:29:39 <b_jonas> `? stereastery
00:29:40 <HackEgo> stereastery? ¯\(°​_o)/¯
00:29:51 <b_jonas> `? sterester
00:29:52 <HackEgo> sterester? ¯\(°​_o)/¯
00:29:58 <b_jonas> `? sterek
00:29:59 <HackEgo> sterek? ¯\(°​_o)/¯
00:30:06 <b_jonas> `? stereey
00:30:07 <HackEgo> stereey? ¯\(°​_o)/¯
00:30:25 <b_jonas> `? sterekey
00:30:27 <HackEgo> sterekey? ¯\(°​_o)/¯
00:30:36 <b_jonas> `? steret everest
00:30:36 <HackEgo> steret everest? ¯\(°​_o)/¯
00:30:53 <b_jonas> ``` echo wisdom/ste*
00:30:54 <HackEgo> wisdom/stephen wolfram wisdom/stereotype
00:33:07 <int-e> `cat bin/``
00:33:08 <HackEgo> ​#!/bin/sh \ export LANG=C; exec bash -O extglob -c "$@" | rnooodl
00:33:12 <int-e> `cat bin/`
00:33:15 <HackEgo> ​#!/bin/bash \ TIMEFORMAT="real: %lR, user: %lU, sys: %lS" \ shopt -s extglob globstar \ eval -- "$1" | rnooodl
00:33:25 -!- Lilly_Goodman has joined.
00:33:47 -!- Lilly_Goodman has quit (Read error: Connection reset by peer).
00:34:26 <oerjan> b_jonas: i think some of those words are a bit of a sterech.
00:34:39 <oerjan> *steretch
00:34:45 <int-e> `? pun
00:34:46 <HackEgo> Puns are fun. Ask shachaf about them.
00:35:03 <b_jonas> `? pike
00:35:03 <HackEgo> pike? ¯\(°​_o)/¯
00:35:05 <b_jonas> `? python
00:35:07 <HackEgo> python? ¯\(°​_o)/¯
00:35:12 <b_jonas> `? cobol
00:35:13 <HackEgo> cobol? ¯\(°​_o)/¯
00:35:13 <oerjan> `learn_append pun But beware of Muphry adding misspellings.
00:35:16 <HackEgo> Learned 'pun': Puns are fun. Ask shachaf about them. But beware of Muphry adding misspellings.
00:35:47 <int-e> `` echo wisdom/fo*
00:35:48 <HackEgo> wisdom/foe wisdom/fomething wisdom/footnote 1 wisdom/footnote 8 wisdom/for further details wisdom/for further details. wisdom/for further details for futher details. wisdom/forth wisdom/fortran wisdom/forty
00:36:03 <int-e> `? forty
00:36:04 <HackEgo> forty means "in a fort-like manner"
00:36:06 <b_jonas> `? forth
00:36:07 <HackEgo> Since Biblical times, Forth has been the go-to language for multiplication.
00:37:08 <b_jonas> ``` echo wisdom/*lang
00:37:12 <HackEgo> wisdom/sgeolang
00:37:58 <hppavilion[1]> `? sgeolang
00:37:59 <HackEgo> Sgeolang is probably Rust ATM.
00:38:13 <hppavilion[1]> ``` echo wisdom/*lang*
00:38:16 <HackEgo> wisdom/imperative language wisdom/languabe wisdom/sgeolang
00:38:51 -!- tromp_ has quit (Remote host closed the connection).
00:39:12 -!- Lilly_Goodman has joined.
00:39:19 <b_jonas> `? nothing
00:39:20 <HackEgo> nothing? ¯\(°​_o)/¯
00:39:32 <b_jonas> `learn Nothing would have been better than to create this wisdom entry.
00:39:34 <HackEgo> Learned 'nothing': Nothing would have been better than to create this wisdom entry.
00:40:36 <b_jonas> `? this
00:40:37 <HackEgo> this is a word
00:40:40 <b_jonas> `? that
00:40:41 <HackEgo> that? ¯\(°​_o)/¯
00:40:42 <b_jonas> `? the
00:40:43 <b_jonas> `? and
00:40:44 <HackEgo> the Toe of Harriness's Enclosure
00:40:44 <HackEgo> and? ¯\(°​_o)/¯
00:41:02 <b_jonas> `? ¯\(°​_o)/¯
00:41:02 <HackEgo> ​¯\(°​_o)/¯ is a misspelling of ¯\(°_o)/¯
00:41:27 <fizzie> `` find wisdom -type f -print0 | xargs -0 grep -El ' (are|is) just ' | sed -e 's|^wisdom/||'
00:41:28 <HackEgo> quote \ monoidal category \ justice \ grammar \ brain \ monads \ chu space \ object \ syntax \ partial order \ mdude \ endofunctor \ functor \ indexed monad \ automatic squirrel feeder \ arrow \ ngram model \ character \ group \ 1 \ lens \ monad \ hallucination \ doodad \ monoids \ torus \ equal temperament \ endomorphism \ bicategory \ d-module \
00:42:08 <MDude> Wow, I'm a whole categorey of wisdom?
00:42:15 <fizzie> So many things are just some kind of other things.
00:42:30 <b_jonas> `? Zaphod Beeblebrox
00:42:31 <HackEgo> Zaphod Beeblebrox? ¯\(°​_o)/¯
00:42:35 <b_jonas> `? zaphod
00:42:36 <HackEgo> zaphod? ¯\(°​_o)/¯
00:42:38 <b_jonas> `? beeblebrox
00:42:39 <HackEgo> beeblebrox? ¯\(°​_o)/¯
00:42:46 <b_jonas> `? just
00:42:47 <HackEgo> just? ¯\(°​_o)/¯
00:42:58 <MDude> `? justice
00:42:58 <HackEgo> Justice is just behavior or treatment.
00:43:10 <fizzie> That's a good one.
00:43:56 <fizzie> Some of those are false positives.
00:44:13 <fizzie> (But many are not.)
00:44:25 <oerjan> `learn Just is just an adverb.
00:44:27 <HackEgo> Learned 'just': Just is just an adverb.
00:45:13 <fizzie> `learn Just is just a just adverb.
00:45:15 <HackEgo> Relearned 'just': Just is just a just adverb.
00:53:21 <rdococ> ha ha
00:56:41 <b_jonas> `? bicyclops
00:56:42 <HackEgo> bicyclops? ¯\(°​_o)/¯
00:57:41 <oerjan> technically cyclops are named for the shape of their eye, not its number
00:58:21 <oerjan> *+e
01:03:20 <lifthrasiir> squarops
01:03:47 <lifthrasiir> oerjan: seems that it is actually a folk etymology
01:03:58 <lifthrasiir> > This is thought to be a folk etymology, with the true etymology in Proto-Indo-European *pḱu-klōps ‎(“cattle thief”) becoming obscured after the loss of the word *peḱu-.
01:03:59 <lambdabot> <hint>:1:39: parse error on input ‘,’
01:04:03 <lifthrasiir> fuck lambdabot.
01:04:12 <oerjan> lifthrasiir: huh
01:04:18 <lifthrasiir> I'm just using a familiar markdown syntax here and there
01:08:04 <lifthrasiir> oerjan: hmm, seems that there is no widely accepted theory. anyway, under the PIE proposal the appearance of cyclops is actually retroactively influenced by the folk etymology.
01:08:14 <b_jonas> `? nobody
01:08:15 <HackEgo> nobody? ¯\(°​_o)/¯
01:08:33 <lifthrasiir> (and the cyclops itself likely had regular two eyes)
01:10:04 <b_jonas> `learn Nobody killed the cyclops Polyphemos after he tried to eat a shipful of sailors, and this percieved injustice made Poseidon so mad he swore vengeance at him and the gods couldn't calm him down for ten years.
01:10:09 <HackEgo> Learned 'nobody': Nobody killed the cyclops Polyphemos after he tried to eat a shipful of sailors, and this percieved injustice made Poseidon so mad he swore vengeance at him and the gods couldn't calm him down for ten years.
01:10:41 <b_jonas> lifthrasiir: and Polyphemos is named that because he has many eyes?
01:10:41 <oerjan> `sedlast s/percieve/perceive/
01:10:44 <HackEgo> No output.
01:10:50 <oerjan> `? nobody
01:10:51 <HackEgo> Nobody killed the cyclops Polyphemos after he tried to eat a shipful of sailors, and this perceived injustice made Poseidon so mad he swore vengeance at him and the gods couldn't calm him down for ten years.
01:11:04 <lifthrasiir> b_jonas: fine point.
01:11:07 <b_jonas> oh, thanks for the spelling correction
01:11:50 <oerjan> i before e, except after c, and a heap of other exceptions hth
01:12:33 <b_jonas> oerjan: yes, weird and either
01:12:55 <b_jonas> maybe that should specifically say Zeus and Athene instead of just the gods?
01:13:21 <b_jonas> although Hermes was there too
01:15:09 <oerjan> what about Bob
01:15:53 <oerjan> `cat bin/sedlast
01:15:53 <HackEgo> sed -i "$1" "$(lastfiles)"
01:18:37 <b_jonas> `? ring
01:18:38 <HackEgo> Addition, subtraction and multiplication have a certain ring to them.
01:18:39 <b_jonas> `? the ring
01:18:40 <HackEgo> the ring? ¯\(°​_o)/¯
01:18:46 <oerjan> `cat bin/mk
01:18:47 <HackEgo> ​[[ "$1" == ?*//* ]] || { echo usage: "mk[x]" file//contents >&2; exit 1; }; key="${1%%//*}"; value="${1#*//}"; echo "$value" > "$(echo-p "$key")" && echo "$key"
01:18:51 <b_jonas> `? one ring
01:18:53 <HackEgo> One Ring to rule them all, One Ring to find them, One Ring to bring them all and in the darkness bind them
01:19:02 <b_jonas> `? mark
01:19:03 <HackEgo> mark? ¯\(°​_o)/¯
01:19:55 <Lilly_Goodman> Hola
01:19:59 <b_jonas> `slashlearn mark/A mark of one's destiny singled out alone, fulfilled.
01:20:02 <HackEgo> Learned «mark»
01:20:22 -!- lambda-11235 has joined.
01:20:27 <b_jonas> `? sun
01:20:27 <HackEgo> The Sun *may* be retroreflectorey, it's hard to be sure.
01:20:36 <b_jonas> `? moon
01:20:38 <HackEgo> The Moon is an unprovable celestial object that is not very retroreflectorey.
01:22:38 <oerjan> a retroreflectorey moon might be hard to see from earth
01:23:57 <b_jonas> `? point
01:23:58 <HackEgo> point? ¯\(°​_o)/¯
01:24:19 <b_jonas> `? sense
01:24:20 <HackEgo> sense? ¯\(°​_o)/¯
01:27:14 <b_jonas> `? pike
01:27:15 <HackEgo> pike? ¯\(°​_o)/¯
01:27:17 -!- boily has quit (Quit: LOGARITHMIC CHICKEN).
01:27:27 -!- jaboja has quit (Ping timeout: 264 seconds).
01:27:49 <b_jonas> `learn Pike is an interpreted language that got sort of forgotten among the four big mainstream p-languages (perl, python, ruby, php).
01:27:52 <HackEgo> Learned 'pike': Pike is an interpreted language that got sort of forgotten among the four big mainstream p-languages (perl, python, ruby, php).
01:29:21 <b_jonas> `? patch
01:29:22 <HackEgo> patch? ¯\(°​_o)/¯
01:29:36 <b_jonas> `learn patch is the precursor to both perl and version control
01:29:39 <HackEgo> Learned 'patch': patch is the precursor to both perl and version control
01:29:49 <shachaf> b_jonas: That happened when Go was released, right?
01:30:05 <shachaf> go robbed pike of its rightful place
01:30:50 <b_jonas> ``` echo wisdom/*point*
01:30:51 <HackEgo> wisdom/*point*
01:32:46 <quintopia> oh new folks have found us?
01:33:37 <quintopia> oerjan: a retrofeflectorey moon would be painful to look at during the full moon. it would be like a day that didn't end
01:39:25 -!- tromp_ has joined.
01:40:56 <hppavilion[1]> b_jonas: Waaaaaaaaaaaaaai
01:40:57 <hppavilion[1]> t
01:41:23 <hppavilion[1]> b_jonas: Yep, I see what you did there
01:42:42 <oerjan> quintopia: why? it would only reflect the light towards earth that came from earth.
01:42:59 <rdococ> hmm
01:43:59 -!- tromp_ has quit (Ping timeout: 260 seconds).
01:44:10 <oerjan> `learn Sense is the ability to understand things. A person with much sense is called a sensei.
01:44:16 <HackEgo> Learned 'sense': Sense is the ability to understand things. A person with much sense is called a sensei.
01:46:03 <shachaf> oerjan++
01:46:14 <shachaf> you are truly the heart of wisdom
01:46:36 <oerjan> thanks!
01:47:08 <oerjan> `` sed -i 's/$/./' wisdom/patch
01:47:10 <HackEgo> No output.
01:47:25 <shachaf> but now i wonder how sensei relates to censorship
01:47:40 <oerjan> <quintopia> oh new folks have found us? <-- wut?
01:48:13 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
01:49:33 <oerjan> oh oops
01:49:43 <oerjan> `learn Sense is the ability to understand things. A person with much sense is called a sensei.
01:49:47 <HackEgo> Relearned 'sense': Sense is the ability to understand things. A person with much sense is called a sensei.
01:49:54 <oerjan> keep mixing up spacing rules
01:53:33 -!- hppavilion[1] has joined.
02:00:22 -!- Lilly_Goodman has quit (Read error: Connection reset by peer).
02:00:58 <oerjan> <int-e> ITWASAPREDICTIONANDITWASRIGHT!ALLHAILOERJANTHEPRESCIENTMASTEROF#ESOTERIC! <-- what now.
02:01:04 <b_jonas> `? ESRCH
02:01:06 <HackEgo> ESRCH? ¯\(°​_o)/¯
02:01:14 -!- Lilly_Goodman has joined.
02:01:25 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
02:01:57 <b_jonas> `? EINTR
02:02:00 <HackEgo> EINTR? ¯\(°​_o)/¯
02:02:01 <b_jonas> `? EPERM
02:02:02 <HackEgo> EPERM? ¯\(°​_o)/¯
02:02:03 <b_jonas> `? ENOENT
02:02:05 <HackEgo> ENOENT? ¯\(°​_o)/¯
02:02:10 <b_jonas> `? EBADF
02:02:11 <HackEgo> EBADF? ¯\(°​_o)/¯
02:03:19 <b_jonas> `? ear
02:03:21 <HackEgo> ear? ¯\(°​_o)/¯
02:07:07 <b_jonas> `? ENONET
02:07:07 <HackEgo> ENONET? ¯\(°​_o)/¯
02:07:12 <b_jonas> `? ENOTSOCK
02:07:14 <HackEgo> ENOTSOCK? ¯\(°​_o)/¯
02:07:23 <lifthrasiir> `? EIEIO
02:07:24 <HackEgo> EIEIO? ¯\(°​_o)/¯
02:07:42 <b_jonas> `? ESOCKTNOSUPPORT
02:07:43 <HackEgo> ESOCKTNOSUPPORT? ¯\(°​_o)/¯
02:07:49 <shachaf> b_jonas: have you considered `cat wisdom/{ESRCH,EINTR,EPERM,ETC}
02:08:16 <b_jonas> ``` echo wisdom/{*wh*,e*}
02:08:17 <HackEgo> wisdom/people who taneb is not wisdom/programmers knowing what they're doing wisdom/twh wisdom/twhib wisdom/whatchamacallit wisdom/who wisdom/whom wisdom/effilry wisdom/egobot wisdom/ehird wisdom/ehlist wisdom/el camino real wisdom/elendil wisdom/eliot wisdom/eliott wisdom/elliot wisdom/elliott wisdom/elrond wisdom/elronnd wisdom/emac wisdom/endofu
02:08:27 <shachaf> of course i mean `` cat
02:08:29 <shachaf> or `` grep ''
02:09:39 <b_jonas> `? EDQUOT
02:09:40 <HackEgo> EDQUOT? ¯\(°​_o)/¯
02:11:28 <b_jonas> `? double
02:11:29 <HackEgo> double? ¯\(°​_o)/¯
02:11:29 <b_jonas> `? single
02:11:30 <HackEgo> single? ¯\(°​_o)/¯
02:13:48 <b_jonas> `? float
02:13:49 <HackEgo> float? ¯\(°​_o)/¯
02:13:57 <b_jonas> `? iaq
02:13:57 <HackEgo> iaq? ¯\(°​_o)/¯
02:16:49 <oerjan> `forget metest
02:16:54 <HackEgo> Forget what?
02:18:10 <oerjan> `culprits wisdom/rdococ
02:18:14 <HackEgo> oerjan
02:18:32 <oerjan> i _guess_ it just timed out before.
02:23:25 <shachaf> `forget menot
02:23:44 <oerjan> `learn_append zork Saneb invented it.
02:23:48 <HackEgo> Learned 'zork': Zork is like York, except for the first letter. Saneb invented it.
02:23:56 <oerjan> wait
02:24:13 <shachaf> whoa whoa whoa
02:24:13 <oerjan> `sedlast s/Saneb/Uaneb/
02:24:16 <HackEgo> No output.
02:24:18 <shachaf> some sort of contravariance going on there?
02:24:21 <shachaf> or that
02:27:20 -!- hppavilion[1] has joined.
02:28:29 -!- mihow has joined.
02:33:20 <oerjan> <b_jonas> or http://www.irregularwebcomic.net/1186.html with infinitely many heads <-- now i'm disappointed that i see nothing relevant when googling "gillette toothbrush"
02:37:13 -!- Lilly_Goodman has quit (Read error: Connection reset by peer).
02:38:53 -!- Lilly_Goodman has joined.
02:40:44 <oerjan> <Taneb> So you rang the computer and plugged in your typewriter <-- my father took one home once and let me try it out this way, back in 1982 or thereabouts.
02:40:59 -!- tromp_ has joined.
02:41:07 <oerjan> (a typewriter with a modem, that is.)
02:43:58 <oerjan> it had a printer, no crt
02:45:26 -!- Lilly_Goodman has quit (Read error: Connection reset by peer).
02:45:33 -!- tromp_ has quit (Ping timeout: 244 seconds).
02:48:29 -!- Lilly_Goodman has joined.
02:49:14 <tromp> thx for the link, oerjan
02:53:22 <oerjan> oh right
02:53:52 <oerjan> you weren't speaking much so probably lambdabot didn't remind you very quickly?
02:54:31 -!- benderpc_ has joined.
02:57:27 <oerjan> tromp: ^
03:03:28 <tromp> i saw it earlier today
03:14:29 -!- ais523 has quit (Ping timeout: 250 seconds).
03:18:22 -!- mihow has quit (Quit: mihow).
03:18:48 -!- mihow has joined.
03:19:07 -!- mihow has quit (Client Quit).
03:19:31 <hppavilion[1]> zzo38: If someone made a social network you could browse from a shell, would you use it? xD
03:39:52 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
03:40:12 <zzo38> I don't use social networks
03:40:26 <zzo38> I am not really so interested in social networks, I can just use stuff like RDF instead
03:41:28 <shachaf> zzo38: You should tell that to vaporware.
03:41:53 <zzo38> Why? I think it does not concern them
03:42:05 <shachaf> Well, vaporware makes a social network.
03:49:29 -!- hppavilion[1] has joined.
03:58:35 -!- tromp_ has joined.
04:16:34 -!- Lilly_Goodman has quit (Read error: Connection reset by peer).
04:17:25 -!- Lilly_Goodman has joined.
04:21:12 <zzo38> What thing is currently wrong with TVMIDI that I have missed? (I know many things I did not put in yet, although maybe there is something I forgot, therefore I would need to be notified please.)
04:24:52 -!- tromp_ has quit (Remote host closed the connection).
04:52:46 -!- Lilly_Goodman1 has joined.
04:55:21 -!- Lilly_Goodman has quit (Read error: Connection reset by peer).
05:25:08 <HackEgo> [wiki] [[Special:Log/newusers]] create * Kaynato * New user account
05:25:26 -!- tromp_ has joined.
05:30:04 -!- tromp_ has quit (Ping timeout: 268 seconds).
05:46:05 -!- benderpc_ has quit (Changing host).
05:46:05 -!- benderpc_ has joined.
05:47:28 -!- benderpc_ has changed nick to bender|.
05:50:08 -!- lambda-11235 has quit (Quit: Bye).
06:01:00 -!- Lilly_Goodman1 has quit (Ping timeout: 246 seconds).
06:03:06 <HackEgo> [wiki] [[The Abstract Computer]] https://esolangs.org/w/index.php?diff=46674&oldid=46668 * Quintopia * (+4523) added some Post canonical systems
06:04:05 <shachaf> https://www.youtube.com/watch?v=hB6eY73sLV0
06:04:06 <HackEgo> [wiki] [[The Abstract Computer]] https://esolangs.org/w/index.php?diff=46675&oldid=46674 * Quintopia * (-4) /* The Tag */
06:05:36 -!- Lilly_Goodman has joined.
06:05:38 <HackEgo> [wiki] [[Daoyu]] N https://esolangs.org/w/index.php?oldid=46676 * Kaynato * (+5316) initial publish
06:06:21 <HackEgo> [wiki] [[Daoyu]] https://esolangs.org/w/index.php?diff=46677&oldid=46676 * Kaynato * (-16)
06:07:08 <HackEgo> [wiki] [[Special:Log/upload]] upload * Kaynato * uploaded "[[File:Daoyu Symbol Table.png]]": Symbol table for Daoyu
06:07:16 <HackEgo> [wiki] [[Special:Log/upload]] upload * Kaynato * uploaded "[[File:Daoyu Level Table.png]]": Level table for Daoyu.
06:07:31 <HackEgo> [wiki] [[Special:Log/upload]] upload * Kaynato * uploaded "[[File:Daoyu SWAPS Explanation.png]]": Explains(?) Daoyu SWAPS.
06:07:45 <HackEgo> [wiki] [[Special:Log/upload]] upload * Kaynato * uploaded "[[File:Daoyu LATER Explanation.png]]": Explains(?) Daoyu LATER.
06:07:55 <HackEgo> [wiki] [[Special:Log/upload]] upload * Kaynato * uploaded "[[File:Daoyu MERGE Explanation.png]]": Explains(?) Daoyu MERGE.
06:08:10 <HackEgo> [wiki] [[Special:Log/upload]] upload * Kaynato * uploaded "[[File:Daoyu HALVE Explanation.png]]": Explains(?) Daoyu HALVE.
06:15:30 -!- Lilly_Goodman has quit (Ping timeout: 276 seconds).
06:18:11 -!- Lilly_Goodman has joined.
06:36:19 -!- Lilly_Goodman has quit (Quit: Leaving.).
06:39:38 -!- Lilly_Goodman has joined.
07:12:11 <hppavilion[1]> Minovsky Physics is interesting
07:16:58 -!- carado has quit (Quit: Leaving).
07:20:38 -!- carado has joined.
07:36:41 -!- mroman has joined.
07:36:49 <mroman> fnǔrd.
07:46:34 -!- Lilly_Goodman has quit (Ping timeout: 240 seconds).
08:12:34 <b_jonas> `olist 1030
08:13:03 <HackEgo> olist 1030: shachaf oerjan Sgeo FireFly boily nortti b_jonas
08:14:10 <shachaf> that olist was olisted several days ago hth
08:15:05 <oerjan> darn
08:15:20 <oerjan> ol'list
08:15:56 <b_jonas> really?
08:16:05 <b_jonas> oh right
08:16:05 <b_jonas> damn
08:16:15 <b_jonas> it's just that I haven't loaded the link from this browser yet
08:16:18 <b_jonas> sorry for the false alarm
08:16:24 <b_jonas> it's indeed not a new strip
08:16:34 <b_jonas> (blame the long weekend)
08:18:04 -!- impomatic_ has joined.
08:21:00 <oerjan> a strip blip
08:24:45 <Taneb> Well
08:24:53 <Taneb> It looks like there may be a spell in IWC named after me
08:24:59 <Taneb> I need to be less impulsive on kickstarter
08:26:16 -!- ^v has quit (Ping timeout: 264 seconds).
08:26:36 <oerjan> a spell?
08:27:00 <oerjan> oh it's for the printed books?
08:27:38 <Taneb> Yeah
08:27:48 -!- ^v has joined.
08:27:58 <Taneb> One of the limited rewards is "SPELLSLINGER: A copy of the print collection book + a PDF digital copy + a set of comic postcards + Kyros learns a spell named after you."
08:32:51 -!- ^v has quit (Ping timeout: 264 seconds).
08:34:49 -!- ^v has joined.
08:44:09 <b_jonas> Taneb: um... wasn't IWC using Patreon rather than Kickstarter in first place?
08:44:30 <Taneb> b_jonas, it's kickstarting a print collection
08:45:08 <b_jonas> So those are two separate things? ok
08:45:14 <b_jonas> s/things/funds/
08:45:48 <b_jonas> But that can't work. Patreon specifically mentions book compilations.
08:46:24 <b_jonas> Ah, I see!
08:46:37 <b_jonas> The new kickstarter thing is linked from the transient news entry.
08:57:29 -!- oerjan has quit (Quit: Nite).
09:02:13 -!- carado has quit (Remote host closed the connection).
09:03:12 -!- carado has joined.
09:09:42 <mroman> Taneb: are you trying to get something funded?
09:09:50 <Taneb> mroman, yes
09:09:56 <Taneb> Hopefully not single handedly
09:11:55 <mroman> link?
09:14:57 <Taneb> https://www.kickstarter.com/projects/dmmaus/irregular-webcomic-burning-down-the-alehouse
09:19:53 <b_jonas> mroman: linked from today's transient news entry on Irregular Webcomics
09:21:11 <mroman> hm
09:21:36 <mroman> I like videos of people falling into water fountains because they're distracted by their smartphones much more.
09:21:51 <mroman> Can I fund that?
09:26:47 <b_jonas> mroman: you mean like, pay people to get distracted by smartphones and fall into fountains? or pay people to record video next to water fountains and search them for such occasions and publish them? or pay people to build more water fountains and more distracting smartphone games?
09:27:06 <b_jonas> I think you can fund smartphone games.
09:27:48 -!- Goldplay has joined.
09:29:44 -!- Goldplay has quit (Client Quit).
09:36:35 -!- augur has quit (Read error: Connection reset by peer).
09:36:55 -!- augur has joined.
09:44:31 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
10:12:35 -!- boily has joined.
10:20:19 -!- Reece` has joined.
10:44:55 -!- boily has quit (Quit: PHYLUM CHICKEN).
11:10:18 -!- puckipedia has quit (Ping timeout: 244 seconds).
11:13:04 -!- earendel has quit (Ping timeout: 264 seconds).
11:17:56 -!- puckipedia has joined.
11:41:53 -!- earendel has joined.
11:52:32 -!- copumpkin has quit (Quit: Textual IRC Client: www.textualapp.com).
11:52:51 -!- copumpkin has joined.
12:14:22 -!- vodkode_ has joined.
12:19:03 -!- Sgeo has quit (Ping timeout: 240 seconds).
13:15:46 -!- Froox has joined.
13:17:26 -!- Frooxius has quit (Ping timeout: 244 seconds).
13:19:15 -!- Frooxius has joined.
13:21:01 -!- Froox has quit (Ping timeout: 244 seconds).
13:28:28 <prooftechnique> You could fund a special interest group whose mission is to promote disinterest
13:28:51 <prooftechnique> Though I imagine it might be a victim of its own success
13:30:24 -!- spygame has joined.
14:03:16 -!- lambda-11235 has joined.
14:10:32 -!- I has joined.
14:10:55 -!- I has changed nick to Guest6809.
14:12:33 -!- J_Arcane has joined.
14:13:09 -!- p34k has joined.
14:24:54 <HackEgo> [wiki] [[Special:Log/newusers]] create * Hajo * New user account
14:30:11 <fizzie> Hm. That ^ account creation's email address confirmation message bounced, because the esolangs.org box has CaC's default reverse-DNS entry (of the form x.cloudatcost.com), and their email provider rejects if it's "a generic standard entry of your provider".
14:30:15 <fizzie> So picky.
14:35:45 <int-e> makes sense though
14:36:22 <int-e> proper providers allow user-defined reverse lookups
14:37:47 <int-e> (well, no, it really doesn't make sense... I can see how it catches many more spammers than legitimate sites though)
14:39:33 -!- J_Arcane has quit (Ping timeout: 240 seconds).
14:42:10 <fizzie> int-e: Did you have a cloud-at-no-cost box, or was it someone else? Do they let you set a PTR record? (I would hope so.)
14:42:33 <HackEgo> [wiki] [[User:Hajo]] N https://esolangs.org/w/index.php?oldid=46684 * Hajo * (+4) new
14:49:02 <int-e> fizzie: if by "no cost" you mean the one-time payment deal, I have one of those... I don't recall whether I went looking for a way to set the PTR record though. (I definitely didn't set one)
14:52:41 <fizzie> Hmm. Right, that's also what esolangs.org is on.
14:54:29 <int-e> anyway the control panel has a "reverse dns" field.
14:55:55 -!- lambda-11235 has quit (Quit: Bye).
14:59:17 <fizzie> Mhm. Well, that'd need a divine (Gregor) intervention.
14:59:42 <int-e> `? gregor
15:00:12 <HackEgo> Gregor took forty cakes. He took 40 cakes. That's as many as four tens. And that's terrible.
15:00:26 <int-e> what's the status of esolangs.org ownership?
15:00:45 <int-e> (speaking of divine intervention)
15:04:41 <int-e> Registry Expiry Date: 2016-05-24T19:21:16Z
15:05:16 <prooftechnique> Wow, how have I never heard of cloudatcost?
15:05:40 <int-e> prooftechnique: because they suck :P
15:05:59 <prooftechnique> As I have just seen with a cursory googling
15:06:05 <prooftechnique> I knew that deal was too good
15:06:46 <int-e> (I believe they don't really maintain their hardware... they definitely don't have working abuse management. The best use of them I've heard of is for Tor exit nodes :P)
15:07:49 <int-e> there's this site by an ardent fan ;-) http://www.cloudatacost.com/
15:14:23 <prooftechnique> I mean, I guess I understand the frustration, but I have to imagine their support team is an unpaid intern.
15:14:33 <fizzie> int-e: Oh, it's that soon.
15:14:35 <prooftechnique> The margins on their service must be pretty slim
15:14:41 <int-e> prooftechnique: exactly.
15:15:27 <int-e> I got my cac server for amusement value... to see how broken it would be.
15:16:10 <int-e> I wasn't disappointed... I don't get to see many read errors from storage devices these days ;-)
15:17:00 <prooftechnique> Stunning
15:26:32 -!- mroman has quit (Quit: Lost terminal).
15:34:42 <fizzie> int-e: I talked about taking ownership of the domain when it last expired, a year ago, but then didn't actually do anything.
15:37:07 <fizzie> I also had a very hypothetical thoughts of asking the channel for bitcoin donations and verifiably using those to pay for the domain, but that seems like such a hassle. Plus I had trouble finding a domain registrar that simultaneously (a) appeared not to suck, (b) accepted bitcoins and (c) had WHOIS privacy on by default instead of a pay-extra option.
15:37:14 <fizzie> Arguably (c) is part of (a).
15:41:41 <prooftechnique> I mean, Namecheap is like 3 USD a year. It's not default, but it's also not a pile of money. They at least haven't sucked for my domain registrations
15:43:51 -!- pelegreno has quit (Read error: Connection reset by peer).
15:45:06 -!- pelegreno has joined.
15:48:33 -!- pelegreno has quit (Remote host closed the connection).
15:49:45 -!- pelegreno has joined.
15:50:42 <fizzie> Well, to me Namecheap is saying £8.83/year for .org, plus £2.02/year for WhoisGuard, to a total of £10.85 ($15.49).
15:50:50 <fizzie> It's not *much* money, but it's also not "like 3 USD".
15:51:03 <prooftechnique> Oh, sorry, I meant just for the Whois
15:51:11 <prooftechnique> Sorry, should have been clearer
15:51:31 <fizzie> Oh. Right. Yeah, sure.
15:57:21 -!- bender| has quit (Quit: [Ping Pong fuck out: 69.69 seconds]).
15:59:26 <HackEgo> [wiki] [[Daoyu]] M https://esolangs.org/w/index.php?diff=46685&oldid=46677 * Kaynato * (+116) Added categories.
16:00:09 <HackEgo> [wiki] [[User:Kaynato]] N https://esolangs.org/w/index.php?oldid=46686 * Kaynato * (+57) Created page with "I make [[Daoyu]]. There will be more on this page later."
16:03:23 -!- spygame has quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client).
16:03:28 <HackEgo> [wiki] [[Daoyu]] M https://esolangs.org/w/index.php?diff=46687&oldid=46685 * Kaynato * (+399) Added some description
16:05:41 <HackEgo> [wiki] [[Daoyu]] M https://esolangs.org/w/index.php?diff=46688&oldid=46687 * Kaynato * (+354) Added some more description
16:09:14 -!- irctc131 has joined.
16:09:38 -!- irctc131 has quit (Client Quit).
16:13:38 <izabera> https://imgur.com/gallery/I7wFi oooh thisissocool
16:14:29 <prooftechnique> Whoa
16:16:49 <b_jonas> um...
16:16:53 <prooftechnique> If only someone could come up with a simpler way to compute boolean expressions. I don't mind it, but all the weights make my office so loud.
16:16:57 <b_jonas> yes, I'm pretty sure this one is new
16:17:16 <b_jonas> `olist 1031
16:17:30 <HackEgo> olist 1031: shachaf oerjan Sgeo FireFly boily nortti b_jonas
16:25:17 <FireFly> izabera: oh nice
16:25:39 -!- earendel has quit (Ping timeout: 248 seconds).
16:26:28 <int-e> izabera: how deep can one make the circuits before they require a black hole?
16:28:36 -!- Frooxius has quit (Quit: *bubbles away*).
16:28:59 -!- Frooxius has joined.
16:35:17 <HackEgo> [wiki] [[Daoyu]] M https://esolangs.org/w/index.php?diff=46689&oldid=46688 * Kaynato * (+0) Incorrect capitalization lead to incorrect category link
16:38:38 <prooftechnique> int-e: I'm pretty sure that'll be around full-adder
16:44:13 <HackEgo> [wiki] [[Special:Log/newusers]] create * Lynn * New user account
16:49:29 -!- Reece` has quit (Read error: Connection reset by peer).
16:52:21 -!- Phantom_Hoover has joined.
16:53:08 -!- Reece` has joined.
16:58:44 -!- mihow has joined.
17:02:36 -!- gremlins has joined.
17:06:38 -!- Lymee has joined.
17:07:32 -!- oren has quit (Ping timeout: 268 seconds).
17:07:33 -!- clog has quit (Ping timeout: 268 seconds).
17:07:33 -!- incomprehensibly has quit (Ping timeout: 268 seconds).
17:07:33 -!- Reece` has quit (Ping timeout: 268 seconds).
17:07:34 -!- carado has quit (Ping timeout: 268 seconds).
17:07:36 -!- jameseb has quit (Ping timeout: 268 seconds).
17:07:37 -!- staffehn_ has quit (Ping timeout: 268 seconds).
17:07:37 -!- Lymia has quit (Ping timeout: 268 seconds).
17:07:38 -!- staffehn has joined.
17:07:38 -!- oren has joined.
17:07:41 -!- Lymee has changed nick to Lymia.
17:07:44 -!- jaboja has joined.
17:08:00 -!- jameseb has joined.
17:08:04 -!- carado has joined.
17:08:05 -!- clog has joined.
17:21:31 -!- incomprehensibly has joined.
17:27:37 -!- lmt has joined.
17:27:44 <lmt> https://imgur.com/gallery/I7wFi
17:28:00 <lmt> i always said you could make an esoteric language from a box of apples and some string
17:28:07 <lmt> someone went ahead and actually did it
17:40:26 -!- hppavilion[1] has joined.
17:42:52 -!- jaboja has quit (Ping timeout: 250 seconds).
17:47:17 <int-e> deja vu
17:54:31 <zzo38> Why would you get a LeaveNotify event if the mouse button is pushed?
17:55:12 <int-e> dragging?
17:56:15 <zzo38> Without dragging
17:59:57 <zzo38> It says that it is grabbed
18:03:48 <int-e> Oh xev? apparently the mouse click is delivered to the outer window, not the inner one. Is this due to OwnerGrabButtonMask?
18:04:28 <int-e> In any case why didn't you mention that you were looking at xev output...
18:06:12 <zzo38> I was not looking at xev output and I did not put OwnerGrabButtonMask
18:06:47 <zzo38> However when I do use xev, I get different events, including KeymapNotify event whenever the button is pushed
18:06:52 -!- lmt has left.
18:09:48 <HackEgo> [wiki] [[Daoyu]] https://esolangs.org/w/index.php?diff=46690&oldid=46689 * Kaynato * (+1361) Ideas about writing
18:16:46 <zzo38> Is it supposed to do that? If so, why? The documentation can be a bit confusing in some cases
18:20:06 <zzo38> O, it says "Unless an active grab already exists or a passive grab on the button combination that was pressed already exists at a higher level in the hierarchy than where the ButtonPress occurred, an automatic active grab of the pointer takes place when a ButtonPress occurs."
18:32:14 <zzo38> It does make some sense though
18:32:59 -!- Froox has joined.
18:33:24 -!- jaboja has joined.
18:34:38 -!- Frooxius has quit (Ping timeout: 248 seconds).
18:34:49 <HackEgo> [wiki] [[Language list]] https://esolangs.org/w/index.php?diff=46691&oldid=46619 * Kaynato * (+12) Added Daoyu to Language List
18:42:58 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
18:44:54 -!- Froox has quit (Quit: *bubbles away*).
18:52:27 -!- hppavilion[1] has joined.
18:59:27 <augur> this might be of interesting to everyone here: http://www.algodoo.com/what-is-it/
18:59:53 <prooftechnique> I feel like I played that as a flash game
19:00:37 <prooftechnique> Time to make rockets fight lasers and a truck
19:02:39 <augur> noooo
19:02:51 <augur> think more on-topic!
19:03:11 <augur> think exotic mechanical computers!
19:03:13 <augur> consider! https://www.youtube.com/watch?v=YP8FjfS-f6Y
19:03:45 <prooftechnique> I think there's a reasonable argument to be made that a laser-rocket-truck fight can simulate a Turing machine
19:03:51 <augur> :P
19:04:03 <prooftechnique> That is a very cool video, though
19:06:41 -!- Frooxius has joined.
19:06:56 <augur> im going to be playing with it a bunch, and then building some actual rod logic computers :)
19:07:20 <prooftechnique> I think my favorite part of Algodoo videos so far is that they all have absolutely bonkers music backing them up
19:08:26 <augur> :)
19:14:37 -!- zzo38 has quit (Remote host closed the connection).
19:15:45 <HackEgo> [wiki] [[Hello world program in esoteric languages]] https://esolangs.org/w/index.php?diff=46692&oldid=46318 * Kaynato * (+308) Added Daoyu implementation
19:25:16 <HackEgo> [wiki] [[Daoyu]] https://esolangs.org/w/index.php?diff=46693&oldid=46690 * Kaynato * (+138) Formatting
19:25:39 -!- jaboja has quit (Ping timeout: 268 seconds).
19:27:37 <HackEgo> [wiki] [[Truth-machine]] https://esolangs.org/w/index.php?diff=46694&oldid=46407 * Kaynato * (+384) Added Daoyu implementation to /* Implementations */
19:42:12 -!- MoALTz has joined.
19:47:05 -!- vodkode_ has quit (Remote host closed the connection).
20:01:36 <Phantom_Hoover> augur, i remember this from yeeeears ago
20:01:59 <Phantom_Hoover> i don't think it was optimised enough for rod logic though...
20:14:30 <augur> Phantom_Hoover: well, it looks like it is now! :)
20:16:51 -!- jaboja has joined.
20:18:05 -!- mihow has quit (Quit: mihow).
20:29:54 -!- mihow has joined.
20:35:43 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
20:45:21 -!- hppavilion[1] has joined.
20:52:12 -!- Guest6809 has quit (Ping timeout: 260 seconds).
20:55:37 -!- J_Arcane has joined.
21:07:21 -!- gremlins has quit (Quit: Leaving).
21:11:01 -!- ais523 has joined.
21:40:24 -!- Phantom_Hoover has quit (Ping timeout: 260 seconds).
21:41:19 -!- Phantom_Hoover has joined.
21:51:10 -!- boily has joined.
21:51:49 -!- augur has quit (Quit: Leaving...).
21:53:40 <boily> `wisdom
21:53:57 <shachaf> `wisdom
21:53:58 <boily> there should be a progress bar or something...
21:54:17 <boily> hellochaf. how you doin'? nice HackEgo weather innit?
21:54:24 <shachaf> `? weather
21:54:38 <HackEgo> usb3/USB3 hosts are packaged with a full independent implementation of the older USB/USB2, going through separate pins in the same socket. It is similar to DVI, except you need a separate passive converter stub to plug VGA monitor to DVI socket, but you don't need one to plug a USB client to an USB3 host.
21:54:48 <shachaf> `culprits wisdom/usb3
21:54:55 <HackEgo> gonad/gonads are the best punctional fondlegramming squishcture.
21:54:58 <HackEgo> lambdabot: @@ @@ (@where weather) CYUL ENVA ESSB KOAK
21:55:01 <HackEgo> b_jonas b_jonas
21:55:02 <shachaf> `culprits wisdom/gonad
21:55:03 <lambdabot> CYUL 292100Z 32012G19KT 30SM FEW240 06/M11 A3002 RMK CI1 SLP170 \ ENVA 292120Z 24011KT 9999 FEW015 BKN022 05/02 Q0995 RMK WIND 670FT 26014KT \ ESSB 292150Z AUTO VRB02KT 9999 BKN082/// 02/01 Q1001 \ KOAK 292053Z 23007KT 10SM FEW010 17/03 A2988 RMK AO2 SLP117 T01720028 58009
21:55:03 <HackEgo> int-e ais523 oerjan elliott oerjan
21:56:26 <boily> I'm suffering from withdrawal. any other comics similar to GG I can binge on?
21:59:13 -!- augur has joined.
22:01:18 -!- copumpkin has quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…).
22:02:49 <int-e> Similar to GG, hmm.
22:04:24 -!- Vorpal has quit (Ping timeout: 244 seconds).
22:04:49 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
22:10:35 -!- Sgeo has joined.
22:15:37 -!- Vorpal has joined.
22:21:14 -!- Vorpal has quit (Ping timeout: 260 seconds).
22:23:05 <shachaf> `wisdom
22:23:14 <HackEgo> method/A method is a tweaked out mothod.
22:23:48 <tswett> So. Concurrency.
22:24:19 <tswett> The ideal concurrency solution—which is to say, the best imaginable solution, rather than the best possible one—is to make it so that no two processes can run simultaneously, but all processes finish as soon as they begin, making concurrency unnecessary.
22:27:15 <tswett> Another solution is the ostrich solution. Just ignore the problem.
22:27:48 <tswett> Write each process under the assumption that it and other processes will never interfere with each other.
22:29:10 <tswett> Now, why wouldn't this work for... let me just pick a random hypothetical example... a health insurance company?
22:30:13 <tswett> Well, imagine if this company had a synchronization process, which takes data from table A, processes it a little, and puts it in table B.
22:30:54 <tswett> If something were to modify a record in table A while this synchronization process is running, B might end up with a record that's half one thing, half the other thing.
22:32:24 <tswett> The nice thing, I think, is that a lot of processes are read-only. The company would obtain information about members a whole lot more often than it would modify information about members.
22:34:44 <tswett> When it comes to concurrency, you can almost just ignore all read-only processes.
22:34:58 <tswett> If a process does nothing but read, then you can just take a consistent snapshot of the database and give that to the process to chew on.
22:35:13 <tswett> Which may be easier said than done.
22:36:09 <tswett> As for process which write as well? Boy.
22:39:27 <Sgeo> tswett, I assume you've looked at Rust? You either have as many read references as you want, or only one write reference
22:40:24 <tswett> Yup.
22:40:40 <tswett> Things get interesting when you try to apply that to a database.
22:41:29 <tswett> In Rust, I don't think you can generally go and "check out" an object, so to speak, so that you have temporary write access to it.
22:41:46 <tswett> Sort of "you can't access anything except what you're given".
22:41:59 <tswett> Whereas databases tend to be "you can access everything except what someone else has taken".
22:42:54 <tswett> Now, that whole "many readers or one writer" thing is pretty ubiquitous.
22:43:23 -!- hppavilion[1] has joined.
22:43:49 <tswett> Now I'm thinkin'. Suppose that each process only writes to one table.
22:46:02 <tswett> You can do something like this:
22:46:25 <tswett> When a process begins, atomically do the following: take a snapshot of the database and lock the target table for writing.
22:46:45 <tswett> The process can read everything from the snapshot. It's a perfectly consistent state.
22:50:21 <tswett> Now, whenever a read-only process needs to happen, there's no problem. Have it read from that snapshot, too.
22:51:35 <tswett> But, uh... this is going to cause a problem whenever you want multiple read-write processes at once.
22:52:02 <tswett> The second process won't be able to begin, because in order to begin, it has to take a snapshot of the database, and it can't do that while the first process has a table locked for writing.
22:54:56 <tswett> Remind me, what's the problem with just having each process acquire all the locks it will ever need simultaneously?
23:13:59 -!- copumpkin has joined.
23:22:07 -!- oerjan has joined.
23:23:48 <boily> hellørjan.
23:26:04 <oerjan> bonightly.
23:28:54 -!- impomatic_ has quit (Quit: http://corewar.co.uk).
23:29:23 <oerjan> <b_jonas> mroman: you mean like, pay people to [...] <-- rube goldberg approves of this funding method
23:29:24 <hppavilion[1]> How does streamed audio/video work with servers??
23:29:44 <hppavilion[1]> oerjan: Full quote?
23:30:05 <oerjan> i snipped it because it's bloody long tdnh
23:30:24 <hppavilion[1]> oerjan: I wasn't online
23:30:31 <hppavilion[1]> oerjan: So I can't even search the scrollback
23:30:31 <oerjan> http://codu.org/logs/log/_esoteric/2016-03-29#092647bjonas
23:30:32 <hppavilion[1]> Wait, logs
23:30:35 <hppavilion[1]> Ty
23:30:41 <oerjan> fortunately the logs have anchors
23:30:54 <oerjan> i wasn't online either hth
23:31:48 <hppavilion[1]> oerjan: Ah, right
23:32:09 <shachaf> oerjan: i make sure to add anchors to every web application before i ship it
23:32:52 <hppavilion[1]> shachaf: Like Ging?
23:33:12 * hppavilion[1] has the sudden fear "ging" is a racial slur he's never heard of
23:33:23 <oerjan> it's slightly annoying that you cannot get to those anchors by selecting a proper link. i lose the search highlighting i already had.
23:33:39 * oerjan sinks shachaf with the saucepan ===\__/
23:33:57 * hppavilion[1] just got the pun
23:34:42 <oerjan> i also suspect that the statement may be true as a trivial quantification.
23:35:04 <shachaf> oerjan: What are you implying?
23:35:06 <oerjan> (it would be for me, anyway)
23:35:39 <oerjan> no wait, _if_ it's true, it's a trivial truth.
23:35:53 <shachaf> That's always the case.
23:36:02 <shachaf> oerjan: What do you mean, lose the search highlighting?
23:36:03 <oerjan> shachaf: i'm implying that the only way that can be true is if you have made no web applications hth
23:36:18 <hppavilion[1]> oerjan: Vacuous truth?
23:36:23 <shachaf> oerjan: What if I made web applications and added anchors?
23:36:29 <oerjan> shachaf: i always start logreading by searching for my name, and keep it highlighted.
23:36:37 <oerjan> hppavilion[1]: that's the word!
23:36:50 <shachaf> oerjan: But clicking on a thing to get an anchor doesn't unhighlight searches, does it?
23:37:03 <oerjan> shachaf: yes, because it takes you to a new page
23:37:07 <hppavilion[1]> shachaf: You didn't make EVERY web application (for most of them, you aren't allowed to touch them), therefor that statement must be false
23:37:21 <shachaf> Oh, it doesn't in Chrome but it does in Firefox. I don't know about IE.
23:37:24 <shachaf> Wait, new page?
23:37:31 <oerjan> and the anchor is only in the url of that page.
23:38:02 <oerjan> shachaf: ok maybe not new. new history entry.
23:38:02 <shachaf> I must be missing something about your logreading process.
23:38:14 <shachaf> Anyway if you used Chrome it would do what you want, I think.
23:38:38 <oerjan> ಠ_ಠ
23:38:52 <hppavilion[1]> oerjan: I take it that's the look of disapproval?
23:39:05 <shachaf> hppavilion[1]: I was only quantifying over the web applications I shipped.
23:39:12 <shachaf> And it depends on how broad "shipped" is, anyway.
23:39:23 <hppavilion[1]> \forall app in webapplications: added(shachaf, app, anchors)
23:39:34 -!- Vorpal has joined.
23:39:39 <shachaf> You're ignoring an important part of the sentence.
23:39:50 <hppavilion[1]> shachaf: Which part?
23:40:01 <hppavilion[1]> shachaf: "Before I ship it"?
23:40:03 <shachaf> oerjan can explain
23:40:20 <shachaf> pikhq: do you ship youtube and google+
23:40:28 <hppavilion[1]> shachaf: THAT'S MY JOKE
23:40:40 <hppavilion[1]> shachaf: I own the copyright to all "web application shipping" jokes
23:41:20 <oerjan> hppavilion[1]: "ging" could be short for "ginger", which i'm not sure whether is a real slur or not, but i think south park or something made it one
23:41:32 <hppavilion[1]> oerjan: Ah
23:41:43 <shachaf> hppavilion[1]: look i shipped all sorts of web applications
23:41:45 <hppavilion[1]> oerjan: "ging" is Google x Bing hth
23:41:46 <shachaf> ginseng is tg
23:43:15 <oerjan> hppavilion[1]: OKAY
23:47:42 <fizzie> I keep parsing "tg" as Turing-gomplete.
23:48:09 <oerjan> `? tg
23:48:19 <fizzie> Totally groovy.
23:48:23 * oerjan taps his foot
23:48:28 <shachaf> too good
23:48:56 <HackEgo> TG is short for Turing-Gödel, the highest possible level of difficulty for a multiplayer game.
23:49:40 <ais523> assuming that isn't just a joke, how is it defined?
23:50:06 <oerjan> 'fraid it is
23:50:12 -!- Vorpal has quit (Ping timeout: 268 seconds).
23:50:44 <ais523> oerjan: I was hoping it was something like "determining the optimal strategy requires solving the Halting Problem"
23:51:11 <oerjan> `learn_append tg At this level, it's undecidable whether you can manage to quit before losing or not.
23:51:21 <HackEgo> Learned 'tg': TG is short for Turing-Gödel, the highest possible level of difficulty for a multiplayer game. At this level, it's undecidable whether you can manage to quit before losing or not.
23:51:38 <oerjan> maybe it should say "halt" instead.
23:51:46 <oerjan> `sedlast s/quit/halt/
23:51:49 <HackEgo> No output.
23:53:35 <int-e> this sounds useful. "A Beginner's Guide to Invading Earth"
23:55:11 -!- hydraz has changed nick to everybody.
23:55:20 -!- everybody has changed nick to hydraz.
23:55:34 <shachaf> "Of legal knowledge I acquired such a grip / That they took me into the partnership. / And that junior partnership, I ween, / Was the only ship that I ever had seen."
23:56:52 <pikhq> shachaf: LOL no, I do not.
23:57:00 <pikhq> That's an anti-ship if I ever saw one.
23:57:16 -!- Vorpal has joined.
23:57:26 <pikhq> I ship Google+ and [internal social app] however!
23:57:52 <shachaf> pikhq: whoa whoa whoa, which internal social app is that?
23:59:26 <pikhq> Google's favorite for ages, straight outta Cambridge.
23:59:36 <Elronnd> `helloworldinanylanguage python
23:59:37 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: helloworldinanylanguage: not found
23:59:46 <Elronnd> Awww
23:59:49 <Elronnd> did it die?
23:59:53 <Elronnd> `ls bin
23:59:54 <HackEgo> ​` \ `` \ ^.^ \ ̊ \ \ ! \ ? \ ?? \ ¿ \ ' \ @ \ * \ ؟ \ \ \ \ 1492 \ 2014 \ 2015 \ 2016 \ 2017 \ 5quote \ 8ball \ 8-ball \ aaaaaaaaa \ addquote \ aglist \ allquotes \ analogy \ anonlog \ append \ arienvenido \ as86 \ aseen \ asm \ autowelcome \ bardsworthlist \ benvenuto \ bf \ bienvenido \ bienvenue \ blessyou \ bookofeso \ botsnack
2016-03-30
00:00:28 <\oren\> wait are there still two me's?
00:00:52 <oren> fuuuuuuuuuuuuu
00:00:54 <Elronnd> yup!
00:01:30 <shachaf> pikhq: Do you ship Google Apps and work?
00:01:33 -!- \oren\ has quit (Quit: leaving).
00:01:37 <Elronnd> I forget, how do you make the bot pastebin an output?
00:01:42 <pikhq> Well, sure.
00:01:51 -!- oren has changed nick to \oren\.
00:01:55 <\oren\> there
00:02:13 <oerjan> <int-e> there's this site by an ardent fan ;-) http://www.cloudatacost.com/ <-- . o O ( is anyone keeping esolangs.org and HackEgo backups )
00:03:27 <ais523> oerjan: I'm keeping wiki backups on occasion, but not as frequently as I should be
00:07:49 <oerjan> yay
00:08:07 <oerjan> `` ls bin/*ello*
00:08:08 <HackEgo> bin/hello \ bin/hello-world-in-any-language
00:08:12 <ais523> I'm not keeping logs backups though
00:08:16 <oerjan> Elronnd: no hth
00:08:32 <oerjan> also, `` ... | paste
00:08:52 <Elronnd> `` ls bin | paste
00:08:53 <oerjan> i don't think the logs are on the same server.
00:08:56 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/file/tip/paste/paste.20204
00:09:05 <oerjan> or are they
00:09:20 <Elronnd> `hello-world-in-any-language python
00:09:21 <HackEgo> SyntaxERR
00:09:27 <Elronnd> *there* we go
00:10:09 <\oren\> `hello-world-in-any-language perl
00:10:10 <HackEgo> Your language does not exist
00:10:16 <\oren\> `hello-world-in-any-language c
00:10:17 <HackEgo> Hello, Segfault!
00:10:27 <\oren\> `hello-world-in-any-language php
00:10:28 <HackEgo> Your language does not exist
00:10:40 <int-e> excellent answer.
00:10:49 <oerjan> a bit opinionated
00:10:59 <\oren\> `hello-world-in-any-language salmon
00:11:00 <HackEgo> Your language does not exist
00:11:05 <int-e> `hello-world-in-any-language fortran
00:11:06 <HackEgo> Your language does not exist
00:11:13 <int-e> `hello-world-in-any-language pascal
00:11:13 <HackEgo> Your language does not exist
00:11:16 <\oren\> someone needs to fill these in
00:11:17 <Elronnd> `hello-world-in-any-language brainfuck
00:11:18 <HackEgo> ERR Tape end reached
00:11:25 <int-e> `hello-world-in-any-language befunge
00:11:25 <HackEgo> Your language does not exist
00:11:31 <int-e> `hello-world-in-any-language funge98
00:11:32 <HackEgo> Your language does not exist
00:11:34 * int-e shrugs
00:11:35 <ais523> this is not a very good hello world in any language
00:11:42 <int-e> `hello-world-in-any-language french
00:11:43 <HackEgo> Your language does not exist
00:11:52 <oerjan> indeed, the simpler version was better.
00:11:59 <Elronnd> the languages are in hw/$languagename
00:12:05 <int-e> `hello-world-in-any-language kayak
00:12:06 <HackEgo> Your language does not exist
00:12:31 <\oren\> So today I found out that our internally used programming language is not the company's IP.
00:12:47 <Phantom_Hoover> `` echo "Wello!" > hw/php
00:12:49 <HackEgo> No output.
00:12:52 <\oren\> we're just the only people who've ever used it
00:12:54 <Phantom_Hoover> `hello-world-in-any-language php
00:12:55 <HackEgo> Wello!
00:12:59 <Elronnd> `` echo 'TypERR, expected "str", got "char *[]"' > hw/pascal
00:13:02 <HackEgo> No output.
00:13:34 <Elronnd> `hello-world-in-any-language pascal
00:13:36 <HackEgo> TypERR, expected "str", got "char *[]"
00:13:53 <fizzie> oerjan: There's an automatic weekly mirroring of everything onto the box to the right of my feet, an automated weekly incremental backup of *that* to the box to the left of my feet, and every now and then I swap the disk in *that* box with a copy I have in a bank vault in Finland.
00:14:04 <oerjan> Elronnd: since when is char *[] a pascal type
00:14:09 <Elronnd> it's not
00:14:14 <shachaf> fizzie: what happens when you turn around
00:14:23 <fizzie> shachaf: All the data is lost.
00:14:25 <oerjan> fizzie++
00:14:26 <shachaf> oerjan: since when is "SyntaxERR" an output printed by python
00:14:32 <\oren\> https://web.archive.org/web/20140105015657/http://salmonpl.net/
00:14:44 <fizzie> oerjan: Of course by asking about it you've pretty much assured it all goes spectacularly wrong somehow.
00:14:51 <olsner> @karma fizzie
00:14:52 <lambdabot> fizzie has a karma of 16
00:14:55 <olsner> @karma
00:14:55 <lambdabot> You have a karma of 13
00:14:57 <oerjan> AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
00:15:00 <Elronnd> @karma
00:15:00 <lambdabot> You have a karma of 0
00:15:11 <Elronnd> oerjan: ?
00:15:30 <Elronnd> `cat bin/hello
00:15:31 <HackEgo> echo Hello
00:15:38 <Elronnd> `hello, world
00:15:38 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: hello,: not found
00:15:43 <Elronnd> `hello world
00:15:44 <HackEgo> Hello
00:16:03 <\oren\> @karma
00:16:03 <lambdabot> You have a karma of 0
00:16:15 <\oren\> @jemima
00:16:15 <lambdabot> Unknown command, try @list
00:16:17 <Elronnd> @karma oren
00:16:17 <lambdabot> oren has a karma of 0
00:16:19 <Elronnd> @list
00:16:19 <lambdabot> What module? Try @listmodules for some ideas.
00:16:24 <Elronnd> @listmodules
00:16:25 <lambdabot> activity base bf check compose dice dict djinn dummy elite eval filter free fresh haddock help hoogle instances irc karma localtime metar more oeis offlineRC pl pointful poll pretty quote search slap source spell system tell ticker todo topic type undo unlambda unmtl version where
00:16:26 <oerjan> fizzie: your backup system explanation somehow manages to be simultaneously reassuring and worrying
00:16:32 <\oren\> @alarma
00:16:32 <lambdabot> You have a karma of 0
00:16:39 <\oren\> @macarena
00:16:39 <lambdabot> Unknown command, try @list
00:16:50 <fizzie> The "every now and then" is only about once a year or so (since Finland isn't so accessible), so there's quite a lot that could get lost if this place burns down *and* CloudAtCost goes under (and nobody else has a more up-to-date backup).
00:17:09 <fizzie> I think someone else than just ais523 was fetching the public dump, though.
00:17:09 <Elronnd> `karma+ \oren\
00:17:30 <Elronnd> `karma+ oren
00:17:36 <Elronnd> @karma \oren\
00:17:36 <lambdabot> \oren\ has a karma of 0
00:17:49 <HackEgo> ​\oren\ now has 1 karma.
00:17:54 <HackEgo> oren now has 1 karma.
00:18:00 <\oren\> @karma
00:18:00 <lambdabot> You have a karma of 0
00:18:05 <\oren\> BUG
00:18:11 <\oren\> `karma
00:18:18 <HackEgo> ​ has 5 karma.
00:18:42 <oerjan> <Elronnd> oerjan: ? <-- i recommend paying attention to the rest of the discussion hth (which would also have saved you the recent paste)
00:18:58 <olsner> I'm guessing the disk in the bank vault is empty, and gets regularly swapped with another empty disk
00:19:04 <olsner> meanwhile the backups are made to one of the boxes at fizzie's feet, except it hasn't actually managed to write something for several years due to a stray dry-run flag
00:19:28 <fizzie> Plausible.
00:19:56 <fizzie> The mirroring is likely to work, in the sense that I've listed the files and they look reasonable. Of course the contents could all be zeros.
00:20:46 <fizzie> Hmm. There are a number of daily fetches of the public wiki dump, from different addresses and with different user agents.
00:21:33 <fizzie> One "Wget/1.16.1 (linux-gnu)", Java versions 1.4.1_04, 1.6.0_04 and 1.8.0_71 and zsync/0.6.2.
00:22:15 <fizzie> 90-ish unique IP addresses in approximately February and March. It's a popular file.
00:22:41 <fizzie> I'm thinking the zsync at least is someone deliberately setting it up, rather than a random scraper.
00:23:26 <fizzie> (Especially since it's from the same address at approximately the same time every day.)
00:24:02 <ais523> I zsync it randomly when I remember and am on a high-bandwidth connection
00:24:52 <fizzie> The daily one comes from a hacksoc.org address.
00:25:06 <fizzie> Which is that York thing.
00:25:19 * oerjan looks askew at Taneb
00:27:25 <fizzie> The public dump doesn't include some things, like the user accounts or images, but it's probably relatively good from the "preserve the achievements of humankind" perspective.
00:29:05 <fizzie> Hm, it's "--uploads --include-files"; maybe it does in fact include images as well.
00:29:15 <fizzie> Wonder how those go in the XML. Best not to ask questions.
00:30:49 <oerjan> it's probably not a very image-heavy site
00:31:27 <oerjan> . o O ( --include-passwords )
00:32:26 <fizzie> Fun fact: the article at at exactly the halfway point of the XML dump is the one for the Thue-Morse sequence. (From an old, old version; I don't actually regularly mirror that since I mirror everything else.)
00:32:51 <Elronnd> I'm hosting a backed up copy at my server now https://em.slashem.me/esolang.xml
00:33:04 <hppavilion[1]> What is the worst possible choice for a shell prompt?
00:33:14 <oerjan> fizzie: is the second half the first in reverse twh
00:33:23 <Elronnd> hppavilion[1]: "#", when you're not root
00:33:26 <hppavilion[1]> It must be a meaningless character string of length no greater than 5, and must not be the null string
00:33:40 <ais523> hppavilion[1]: "WARNING! Doing this operation on a mounted disk can lead to disk corruption! Continue (y/n)? "
00:33:53 <ais523> hmm, that's too long
00:34:00 -!- mihow has quit (Quit: mihow).
00:34:05 <hppavilion[1]> ais523: Also, meaningful
00:34:27 <ais523> hppavilion[1]: I used "007" as part of a prompt in an INTERCAL-related project
00:34:36 <Elronnd> ais523: no, it needs to be
00:34:41 <ais523> because % is commonly used as a shell character and % is called a "double-oh-seven" by the INTERCAL docs
00:34:44 <hppavilion[1]> I think "x := " is pretty bad, because it implies that you're setting a variable
00:35:04 <Elronnd> "Assuming answer of !! to mean yes. Continuing..." and then your prompt
00:35:07 <ais523> what about four spaces?
00:35:28 <ais523> that's meaningless, nonempty, and would be very confusing
00:35:30 <hppavilion[1]> ais523: is OK
00:35:47 <hppavilion[1]> ais523: It provides visual indent from normal command prompting
00:36:07 <Elronnd> Actually, having just tried setting my prompt to four spaces, it's *very* confusing
00:36:13 <ais523> what about [%d] , where the %d is a number that increments with every command input?
00:36:14 <hppavilion[1]> Elronnd: How?
00:36:22 <ais523> that's one of the worst prompts I've seen in practice
00:36:35 <ais523> (at least, the general idea is, I'm not sure if any were that /precisely/)
00:36:36 <Elronnd> not really, actually
00:36:38 <hppavilion[1]> ais523: I'll let that through, even though it could be > 5 characters
00:36:45 <Elronnd> it's pretty alright
00:36:52 <hppavilion[1]> ais523: It does seem a little useless
00:36:56 <Elronnd> my zsh prompt includes "%h", which is how many commands have been typed
00:37:04 <Elronnd> so it does increment with every command
00:37:29 <ais523> hppavilion[1]: you could roll back round to 1 from 999, thus confusing people who expected it to be mod-1000
00:37:37 <fizzie> "In[%d]:= " so that you can pretend you're in Mathematica all the time.
00:37:47 <ais523> yes, Mathematica is one of the progams I was thinking of
00:37:49 <ais523> (perl -d was the other)
00:38:15 <fizzie> There's a Scheme like that.
00:38:30 <fizzie> Chicken Scheme's prompt is "#;%d> " with that notation.
00:38:54 <fizzie> I'm not sure if there's some syntax for referring back to previous inputs, as is the case in Mathematica.
00:39:24 -!- tromp_ has joined.
00:39:26 <ais523> fizzie: https://en.wikipedia.org/wiki/%25s is one of the more controversial disambiguation pages
00:39:46 <ais523> it doesn't look like it from looking at it
00:39:47 <Elronnd> heh
00:39:57 <ais523> but have a look at the talk page, which is much, much longer than the page istelf
00:39:59 <ais523> *itself
00:40:07 <Elronnd> yes it does
00:40:27 <Elronnd> just the URL...
00:47:43 <prooftechnique> I think the worst prompt would be a short offensive word
00:47:51 <prooftechnique> I can think of several, but it's not nice to say them in channel
00:48:03 <prooftechnique> hppavilion[1]: ^
00:48:09 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
00:48:58 <hppavilion[1]> prooftechnique: Fair enough
00:49:25 <prooftechnique> Oh, or "php> "
00:49:56 <prooftechnique> 5 characters exactly
00:50:40 <prooftechnique> Not technically correct, since php -a actually gives "php > ", but eh
00:50:48 <fizzie> First you say you're not going to say any offensive words, then you come up with that.
00:51:08 <prooftechnique> I know, I know, my filth knows no bounds
00:52:14 <hppavilion[1]> Perhaps just "$ rm "
00:52:24 <hppavilion[1]> It resembles a command
00:52:28 <hppavilion[1]> And it's scary
00:52:52 <hppavilion[1]> But it's meaningful to some people, so...
00:53:12 <prooftechnique> I guess the absolute worst command prompt is one which executes a harmful command and prints the exit code.
00:53:40 <hppavilion[1]> prooftechnique: What's The Absolute Worst harmful command though?
00:53:58 <hppavilion[1]> Probably rm -rf ~ followed by a forkbomb, but infectious
00:54:06 <prooftechnique> Like, the actual prompt says 1, but the prompt code is like "rm -rf /; echo $?"
00:54:06 <hppavilion[1]> (To both computers AND brains)
00:55:00 <prooftechnique> I do think a prompt that is just the string "rm -rf ~" would be fun for a laugh
00:57:11 <hppavilion[1]> prooftechnique: Does *nix have hidden files?
00:57:23 <prooftechnique> As a historical accident, yes
00:57:29 <hppavilion[1]> prooftechnique: Good
00:57:36 <hppavilion[1]> prooftechnique: The meanest program you could possibly write:
00:57:46 <hppavilion[1]> One with identical output to "rm -rf ~"
00:57:56 <hppavilion[1]> prooftechnique: But instead of deleting files, it hides them
00:58:05 <Elronnd> so basically
00:58:06 <prooftechnique> rm doesn't have output
00:58:15 <prooftechnique> Unless you use rm -i
00:58:17 <\oren\> my $PS1
00:58:20 <Elronnd> prooftechnique: it does if you run it with -v
00:58:20 <\oren\> \[\033[38;5;39m\]\D{%Y%b%d%a%T%Z} \W$\[\033[0m\
00:58:26 <prooftechnique> Elronnd: Oh, true
00:58:29 <Elronnd> scp -r ~ /tmp/.homedir
00:58:40 <hppavilion[1]> prooftechnique: OK, then identical to rm -rfiv ~
00:59:01 <hppavilion[1]> Wait, not v
00:59:05 <Elronnd> yes, v
00:59:05 <hppavilion[1]> v is version, isn't it
00:59:06 <Elronnd> not i
00:59:18 <prooftechnique> My fish prompt: http://sprunge.us/KWaR
00:59:33 <prooftechnique> hppavilion[1]: -f overrides -i
00:59:37 <Elronnd> i will prompt you
00:59:40 <hppavilion[1]> prooftechnique: What does -i do?
00:59:41 <Elronnd> and that isn't what you want
00:59:43 <prooftechnique> Interactive
00:59:47 <Elronnd> v will just print
00:59:50 <hppavilion[1]> prooftechnique: Oh
00:59:53 <Elronnd> and scp -r will mimic that
00:59:53 <hppavilion[1]> Elronnd: Ah
01:00:05 <hppavilion[1]> `scp
01:00:20 <Elronnd> `` rm -rf /
01:00:25 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: scp: not found
01:00:26 <HackEgo> rm: it is dangerous to operate recursively on `/' \ rm: use --no-preserve-root to override this failsafe
01:00:29 <hppavilion[1]> Elronnd: Yes, that hasn't been tried before
01:01:23 <hppavilion[1]> Elronnd: We need an `scp that is basically a massive http://www.scp-wiki.net/ reference
01:02:00 <Elronnd> I saw a /r/writingprompts post that linked there but I still don't understand
01:02:11 <Elronnd> what is scp aside from secure/ssh copy?
01:02:24 <hppavilion[1]> Elronnd: Secure Contain Protect
01:02:29 <hppavilion[1]> Elronnd: It's a 4chan thing, originally
01:02:43 <hppavilion[1]> Elronnd: It's basically psychological horror written in scientific prose
01:02:45 <Elronnd> secure containment...of what?
01:02:51 <Elronnd> ah
01:02:53 <prooftechnique> I used to have an א in my prompt, but multi-term didn't like that
01:04:10 <hppavilion[1]> Hm...
01:04:14 <hppavilion[1]> I want to make a custom shell
01:04:18 <hppavilion[1]> And I want a new syntax
01:04:39 <prooftechnique> I've been using fish for years. I think the syntax is much nicer :)
01:04:39 <boily> I have a draft text adventure game shell somewhere...
01:04:55 <Elronnd> how would that wrok?
01:04:57 <Elronnd> s/ro/or
01:04:58 <prooftechnique> Then there's this https://github.com/chrisdone/hell
01:11:25 <hppavilion[1]> Proof Golf
01:11:34 <hppavilion[1]> Prove Pythagoras in the fewest number of characters possible
01:12:52 <boily> hppavilion[1]: http://pastebin.ca/3422401
01:17:38 <hppavilion[1]> I've decided to make a golfing language whynot
01:18:03 <prooftechnique> boily: Oh, boy
01:18:15 <prooftechnique> Sorry, I mean "Oh, boily"
01:19:51 <hppavilion[1]> prooftechnique: "Oh, boyly"
01:19:58 <prooftechnique> hppavilion[1]: I can prove the Pythagorean theorem in 3 characters if I can use a picture
01:20:06 <hppavilion[1]> prooftechnique: You can't
01:20:24 <hppavilion[1]> prooftechnique: You have to use a golfing proof assistant
01:20:43 <hppavilion[1]> prooftechnique: Feel free to invent one, so long as it doesn't have a "prove pythagoras" instruction
01:21:00 <prooftechnique> Do comments count against the character count?
01:21:23 <hppavilion[1]> prooftechnique: They do not, but they're a pain in the ass for checkers. Preferably include both a commented and uncommented version.
01:21:39 <hppavilion[1]> Actually, you /may/ have a prove pythagoras instruction, but I'll also ask you to prove something else that I'm yet to come up with after, in the same assistant with /no/ changes
01:22:09 <prooftechnique> Also "t a^2 + b^2 = c^2", where t is "trust me"
01:24:05 <prooftechnique> boily: I think I'm going to reimplement this in fish. I think it's possible. I really like the idea
01:24:19 <hppavilion[1]> prooftechnique: ... dammit
01:24:40 <boily> prooftechnique: it was a hack I made for fun many years ago. I'm still fond of the descriptions :D
01:24:59 <quintopia> helloily
01:25:01 <quintopia> good night
01:25:53 <boily> quinthellopia
01:25:58 <boily> bonne nuit!
01:26:10 <prooftechnique> bonnenuitopia
01:26:18 -!- boily has quit (Quit: CANDLE CHICKEN).
01:31:03 -!- pdxleif has quit (Ping timeout: 260 seconds).
01:31:56 -!- tromp_ has quit (Remote host closed the connection).
01:32:31 -!- pdxleif has joined.
01:32:35 <prooftechnique> This %s talk page is amazing
01:34:54 -!- copumpkin has quit (Ping timeout: 260 seconds).
01:37:19 <ais523> "According to statistics, %s is the 993rd most visited page this month, on a par with World Trade Center and Hydrogen."
01:37:32 <APic> Lie, n.:
01:37:32 <APic> A very poor substitute for the truth, but the only one
01:37:33 <APic> discovered to date.
01:37:41 <APic> Good Night, Folks!
01:38:16 <ais523> night
01:46:07 <hppavilion[1]> ais523: How could a stack-based language be made type-safe?
01:46:34 <ais523> hppavilion[1]: look into row polymorphism
01:47:28 <prooftechnique> Column polymorphism probably wouldn't hurt, either
01:48:16 <hppavilion[1]> ais523: I don't get it
01:48:45 <ais523> hppavilion[1]: so the idea is you have a function that requires specific types for the top few elements of the stack, but is polymorphic on the ones below
01:49:01 <hppavilion[1]> ais523: Ah.
01:49:11 <hppavilion[1]> ais523: And you can typecheck this at compile time?
01:49:15 <hppavilion[1]> I think I see it
01:49:28 -!- copumpkin has joined.
01:49:40 <ais523> hppavilion[1]: with type annotations, probably
01:49:46 <hppavilion[1]> ais523: OK
01:49:48 <ais523> type inference is likely undecidable though
01:51:44 <hppavilion[1]> ais523: Ah :/
01:52:39 <hppavilion[1]> ais523: Is a dependently-typed shell at all a good idea? I'm sure it'd be useful for /something/
01:53:02 <ais523> hppavilion[1]: many people say powershell is a bad idea
01:53:13 <ais523> and it is much less precisely typed than a dependently typed shell would be
01:53:20 <hppavilion[1]> ais523: OK
02:02:25 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
02:03:07 <oerjan> there was this guy (c. diggins, was it?) around here and elsewhere a few years ago who tried to make a stack language with type inference. i think he got somewhat stuck with the "polymorphic on the ones below" part. it gets quite tricky if you try to give a type to something like underload's ^ which calls the function on top of the stack. and much worse if you try to call a function _twice_ with the st
02:03:13 <oerjan> ack possibly different...
02:03:40 <ais523> oerjan: I strongly suspect that it's impossible to infer for the same reason that rank-3 type inference is in general impossible
02:03:49 <ais523> it may work with explicit type annotations though
02:04:19 <oerjan> yeah if you have a general idea what your program _should_ do, you can probably annotate it enough.
02:07:14 <prooftechnique> I wonder if you could bolt a type system onto APL
02:07:34 <prooftechnique> Well, a stronger one, anyway
02:07:52 -!- Lilly_Goodman has joined.
02:09:15 -!- p34k has quit.
02:12:57 <prooftechnique> Also, stunned that Dyalog charges 1275 GBP for a 64-bit license :o
02:12:57 -!- heroux has quit (Ping timeout: 244 seconds).
02:13:24 -!- Lilly_Goodman has quit (Ping timeout: 246 seconds).
02:19:46 -!- hppavilion[1] has joined.
02:25:24 <hppavilion[1]> Hm...
02:25:33 <hppavilion[1]> Stack-Based Logic Programming?
02:25:35 -!- Lilly_Goodman has joined.
02:26:17 <hppavilion[1]> ais523: Wait, how would row polymorphism deal with loops, assuming an imperative SBL?
02:26:34 <ais523> hppavilion[1]: if the loops don't change the size of the stack (which they often don't) there's no issue
02:26:45 <ais523> if they do, they'd need to leave a predictable repeating pattern of types on the stack
02:26:53 <ais523> you might need to use some sort of polymorphic recursion technique
02:26:56 <hppavilion[1]> ais523: Ah?
02:27:15 <hppavilion[1]> ais523: So you need a functional language for row polymorphism then?
02:27:30 <ais523> how do you define "functional"?
02:27:52 <hppavilion[1]> ais523: Based on pure or mostly-pure functions
02:27:57 <hppavilion[1]> ais523: As opposed to state change
02:28:09 <hppavilion[1]> So you'd pass the stack around instead of just modifying it
02:28:17 <hppavilion[1]> It'd barely be stack based at that point though
02:31:05 -!- lambda-11235 has joined.
02:32:00 <oerjan> you don't need to pass the stack around as long as there's just one at all times.
02:44:31 <quintopia> a stack of functors
02:51:45 -!- espes__ has joined.
02:53:17 -!- Lilly_Goodman has quit (Ping timeout: 260 seconds).
02:56:00 -!- Lilly_Goodman has joined.
02:57:37 -!- heroux has joined.
03:11:36 -!- spygame has joined.
03:13:50 <hppavilion[1]> quintopia: That might actually work 0.0
03:15:40 <oerjan> naturally so
03:17:32 <hppavilion[1]> oerjan: ...
03:17:47 <hppavilion[1]> oerjan: Does λ-calculus support functors?
03:19:11 <oerjan> hppavilion[1]: not directly. also this was a category theory pun.
03:19:21 <hppavilion[1]> oerjan: Yes, I figured that
03:19:31 <oerjan> thought so.
03:19:38 <hppavilion[1]> oerjan: The instructions in a stack-o-functors language would be natural transformations, would they not?
03:20:19 <prooftechnique> Did someone say stack? https://en.wikipedia.org/wiki/Stack_(mathematics)
03:21:01 <hppavilion[1]> BAD! BAD PROOFTECHNIQUE!
03:21:17 <oerjan> hppavilion[1]: hm i think a tuple of functors can be thought of as a functor, so probably.
03:21:27 <hppavilion[1]> oerjan: Interesting
03:21:36 <oerjan> (between the corresponding tuples of categories)
03:21:36 <hppavilion[1]> oerjan: Wait, a tuple?
03:21:54 <hppavilion[1]> oerjan: Is the tuple representative of the stack?
03:22:24 <hppavilion[1]> oerjan: Oh, "stack of functors" was discussing a mathematical stack. The /fool's/ stack
03:22:26 <oerjan> not entirely, but every concrete stack is some tuple size...
03:23:03 -!- spygame has left.
03:23:08 <hppavilion[1]> oerjan: So why isn't there a λ++-calculus based on functors? Or is that stupid?
03:23:33 <prooftechnique> :t (,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)
03:23:34 <lambdabot> a -> b -> c -> d -> e -> f -> g -> h -> i -> j -> k -> l -> m -> n -> o -> p -> q -> r -> s -> t -> u -> v -> w -> x -> y -> z -> t28 -> t29 -> t30 -> t31 -> t32 -> t33 -> t34 -> t35 -> t36 -> t37 -> t38 -> t39 -> t40 -> t41 -> t42 -> t43 -> t44 -> t45 -> t46 -> t47 -> t48 -> t49 -> t50 -> t51 -> t52 -> t53 -> t54 -> t55 -> t56 -> t57 -> t58 ->
03:23:35 <lambdabot> t59 -> t60 -> t61 -> t62 -> t63 -> (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, t28, t29, t30, t31, t32, t33, t34, t35, t36, t37, t38, t39, t40, t41, t42, t43, t44, t45, t46, t47, t48, t49, t50, t51, t52, t53, t54, t55, t56, t57, t58, t59, t60, t61, t62, t63)
03:24:17 <hppavilion[1]> `scold prooftechnique
03:24:22 <oerjan> hppavilion[1]: i would not be willing to bet either way whether quintopia meant that kind of stack. in any case if he did, i'm hereby underqualified hth
03:24:32 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: scold: not found
03:24:58 <hppavilion[1]> How do I capitalize in Bash?
03:25:25 <hppavilion[1]> (Don't worry, I'm using `mkx this time)
03:25:57 <prooftechnique> I think if I go to grad school, I'm going to get way into descent theory. I think I've seen all of 5 names on those papers ever, so I don't think there'd be a bunch of competition
03:26:00 <oerjan> hppavilion[1]: all i know about lambda-calculus and CT is that supposedly, closed cartesian categories model simply typed LC. the pieces probably involve some functors.
03:26:09 <prooftechnique> hppavilion[1]: Use tr?
03:26:16 <hppavilion[1]> `` echo "{walrus^^}"
03:26:21 <HackEgo> ​{walrus^^}
03:26:28 <hppavilion[1]> `` echo "${walrus^^}"
03:26:29 <HackEgo> No output.
03:27:44 <prooftechnique> `` foo=walrus; echo "${walrus^}"
03:27:47 <HackEgo> No output.
03:27:50 <prooftechnique> `` foo=walrus; echo "${foo^}"
03:27:51 <HackEgo> Walrus
03:27:52 <prooftechnique> Whoops
03:28:15 <hppavilion[1]> `` foo=walrus; echo "${walrus^^}"
03:28:16 <HackEgo> No output.
03:28:23 <hppavilion[1]> `` foo=walrus; echo "${foo^^}"
03:28:24 <HackEgo> WALRUS
03:28:27 <hppavilion[1]> Same mistake
03:28:30 <prooftechnique> `` echo walrus | tr '[:upper:]' '[:lower:]'
03:28:31 <HackEgo> walrus
03:28:39 <hppavilion[1]> Wait, I don't need that
03:28:41 <hppavilion[1]> I'm using $1
03:28:59 <hppavilion[1]> `mkx bin/scold//echo "BAD! BAD ${1^^}!"
03:29:02 <prooftechnique> `` echo "walrus" | tr '[:upper:]' '[:lower:]'
03:29:04 <HackEgo> bin/scold
03:29:05 <HackEgo> walrus
03:29:10 <hppavilion[1]> `scold prooftechnique
03:29:10 <HackEgo> BAD! BAD PROOFTECHNIQUE!
03:29:15 <hppavilion[1]> :)
03:29:18 <prooftechnique> How nice
03:29:24 <hppavilion[1]> prooftechnique: It's very useful
03:29:38 <hppavilion[1]> prooftechnique: I wish there was a way to control HackEgo from out-of-channel for mortals
03:29:44 <prooftechnique> `` echo "walrus" | tr '[:lower:]' '[:upper:]'
03:29:45 <HackEgo> WALRUS
03:29:56 <hppavilion[1]> So we could make HackEgo yell at people without having to type the command
03:30:00 <oerjan> `? prooftechnique
03:30:01 <HackEgo> prooftechnique ? ¯\(°​_o)/¯
03:30:33 <prooftechnique> Hang on
03:30:45 <oerjan> `learn prooftechnique is inevitably on a mathematical descent.
03:30:47 <HackEgo> Learned 'prooftechnique': prooftechnique is inevitably on a mathematical descent.
03:30:55 <hppavilion[1]> `scold HackEgo
03:30:56 <HackEgo> BAD! BAD HACKEGO!
03:31:00 <hppavilion[1]> Whoops
03:31:05 <hppavilion[1]> `scold hppavilion[1]
03:31:05 <HackEgo> BAD! BAD HPPAVILION[1]!
03:31:32 <hppavilion[1]> THere
03:31:42 <prooftechnique> `learn prooftechnique né NihilistDandy He was there some time ago. Maybe he'll come back. Maybe he's a nihilist, too. (Note from the Editor: He came back, and is a nihilist.)
03:31:45 <hppavilion[1]> I successfully `scolded myself for inventing `scold
03:31:47 <HackEgo> Relearned 'prooftechnique': prooftechnique né NihilistDandy He was there some time ago. Maybe he'll come back. Maybe he's a nihilist, too. (Note from the Editor: He came back, and is a nihilist.)
03:31:57 <hppavilion[1]> prooftechnique: You aren't allowed to edit your own wisdom hth
03:32:02 <hppavilion[1]> It defeats the purpose
03:32:03 <hppavilion[1]> Observe:
03:32:12 <prooftechnique> `learn prooftechnique né NihilistDandy: He was there some time ago. Maybe he'll come back. Maybe he's a nihilist, too. (Note from the Editor: He came back, and is a nihilist.)
03:32:14 <HackEgo> Relearned 'prooftechnique': prooftechnique né NihilistDandy: He was there some time ago. Maybe he'll come back. Maybe he's a nihilist, too. (Note from the Editor: He came back, and is a nihilist.)
03:32:15 <prooftechnique> That was my old wisdom
03:32:31 -!- tromp_ has joined.
03:32:36 <prooftechnique> `quote NihilistDandy
03:32:37 <HackEgo> 363) <NihilistDandy> elliott: His mouse obeys the law of the excluded middle :/ \ 393) <NihilistDandy> MY CONTINUITY <NihilistDandy> MY FANFICTION <NihilistDandy> RUINED \ 402) <NihilistDandy> The Russian's emblem was the hammer and sickle, not the fist and other fist \ 412) <NihilistDandy> Non sequitur is my forte <NihilistDandy> On-topic discu
03:32:47 <prooftechnique> `quote prooftechnique
03:32:48 <HackEgo> 1272) <b_jonas> (make is an esoteric language) <prooftechnique> b_jonas: Most esolangs I've seen have more comprehensive docs than make
03:32:52 <hppavilion[1]> `learn hppavilion[42] is the awesomest person you will ever meet. Much awesomer than oerjan.
03:32:55 <HackEgo> Learned 'hppavilion[42]': hppavilion[42] is the awesomest person you will ever meet. Much awesomer than oerjan.
03:33:04 <hppavilion[1]> prooftechnique: ^that's why
03:33:14 <prooftechnique> I was merely restoring order.
03:33:19 <prooftechnique> You can always append to the old one
03:33:40 <hppavilion[1]> prooftechnique: Um, oerjan `?d you and HackEgo had no clue
03:34:06 <prooftechnique> I know. At some point, wisdom must have been reset. I have a github repo and everything here with proof
03:34:30 <hppavilion[1]> `? `? `?
03:34:31 <HackEgo> Yes, you're very clever
03:34:33 <prooftechnique> int-e is on it, too
03:34:34 <hppavilion[1]> :)
03:34:39 <hppavilion[1]> `? int-e
03:34:41 <HackEgo> int-e är inte svensk. Hen kommer att spränga solen.
03:35:02 <hppavilion[1]> `` ? walrus | ?
03:35:06 <HackEgo> ​? ¯\(°​_o)/¯
03:35:17 <hppavilion[1]> `? walrus
03:35:19 <HackEgo> walrus? ¯\(°​_o)/¯
03:35:27 <hppavilion[1]> `` ? walrus
03:35:31 <HackEgo> walrus? ¯\(°​_o)/¯
03:35:45 <hppavilion[1]> `` echo walrus | ?
03:35:46 <HackEgo> ​? ¯\(°​_o)/¯
03:35:49 <hppavilion[1]> Huh
03:36:02 <hppavilion[1]> I'm doing something obviously wrong, that's for sure
03:36:32 <hppavilion[1]> prooftechnique: Do you know of any completely esoteric forms of shell interaction?
03:36:48 <prooftechnique> PowerShell
03:36:58 <hppavilion[1]> prooftechnique: No.
03:37:01 -!- tromp_ has quit (Ping timeout: 252 seconds).
03:37:04 <prooftechnique> I think tcsh is a lost art, too
03:37:26 <hppavilion[1]> prooftechnique: What would be a good, strange way to interact with a shell? Perhaps some equivalent-but-totally-different equivalent to redirection?
03:38:08 <prooftechnique> No redirection. Only partial application of polyvariadic functions
03:38:20 <hppavilion[1]> prooftechnique: Oooh, partial application sounds nice
03:38:50 <hppavilion[1]> prooftechnique: Though I'd do them in an "anonymous lambda" syntax
03:39:16 <hppavilion[1]> (Wait, not anonymous, implicit)
03:39:18 <oerjan> `` foo=walrus; echo "${foo^}"
03:39:19 <HackEgo> Walrus
03:39:28 <hppavilion[1]> swapped_mv = mv \2 \1
03:39:33 <oerjan> hppavilion[1]: you need to escape ? to use it as a shell command.
03:39:36 <hppavilion[1]> (All lambdas are anonymous, duh)
03:39:41 <hppavilion[1]> oerjan: OOOOOOH
03:41:01 * oerjan has tcsh on his (ancient) nvg account. he doesn't do very esoteric things with it.
03:42:18 <oerjan> `culprits wisdom/prooftechnique
03:42:21 <HackEgo> prooftechnique prooftechnique oerjan
03:42:35 <oerjan> prooftechnique: are you _sure_ that existed before?
03:42:40 <oerjan> `? nihilistdandy
03:42:44 <HackEgo> nihilistdandy? ¯\(°​_o)/¯
03:42:55 <oerjan> `culprits wisdom/nihilistdandy
03:43:01 <HackEgo> No output.
03:43:22 <oerjan> i suppose it might have been deleted before the last repo reset
03:43:38 <oerjan> `` ls wisdom/*tech*
03:43:41 <HackEgo> wisdom/prooftechnique
03:43:47 <oerjan> `` ls wisdom/*dand*
03:43:48 <HackEgo> wisdom/danddreclist
03:44:12 <prooftechnique> The github repo I took that from was run by boily from Aug 2013 to what looks like October 2015
03:44:32 <oerjan> oh you mean the wisdom.pdf?
03:44:36 <prooftechnique> Yeah
03:45:00 <oerjan> well that's _not_ older i think.
03:45:21 <oerjan> it's based on HackEgo after all. but someone may have added something just to it.
03:45:43 <oerjan> _or_ something could have got lost to HackEgo's `revert bugs.
03:46:01 <oerjan> (but i thought those mostly _prevented_ deleting stuff)
03:46:09 <prooftechnique> Last edit on my wisdom there is Nov 6, 2013, so ¯\(°​_o)/
03:46:29 <oerjan> better ask boily.
03:47:34 <prooftechnique> `quote non sequitur
03:47:35 <HackEgo> 412) <NihilistDandy> Non sequitur is my forte <NihilistDandy> On-topic discussion is my piano <Taneb> Bowls of sugary breakfast cereal is my mezzoforte <Taneb> Full fat milk is my pianissimo <Taneb> On which note, I'm hungry
03:49:02 <prooftechnique> What's the quote append syntax, again? I should add back oerjan's addition. :D
03:49:14 -!- Lilly_Goodman has quit (Quit: Leaving.).
03:49:22 <ais523> prooftechnique: I think you have to edit the storage directly
03:49:27 <oerjan> ais523: no
03:49:50 <prooftechnique> I thought it was quote-add or something
03:50:08 <prooftechnique> Er, learn-add
03:50:15 <prooftechnique> Maybe learn+
03:50:23 <oerjan> `learn_append prooftechnique He is inevitably on a mathematical descent.
03:50:27 <HackEgo> Learned 'prooftechnique': prooftechnique né NihilistDandy: He was there some time ago. Maybe he'll come back. Maybe he's a nihilist, too. (Note from the Editor: He came back, and is a nihilist.) He is inevitably on a mathematical descent.
03:50:27 <hppavilion[1]> prooftechnique: `le/rn_append
03:50:36 <prooftechnique> There we go
03:50:45 <hppavilion[1]> le/rn_prepend
03:50:51 <prooftechnique> Tack tack :D
03:51:07 <oerjan> hppavilion[1]: you only need that if there are spaces in the file name. possibly slashes.
03:51:14 <hppavilion[1]> oerjan: Ah
03:51:30 <oerjan> `cat bin/learn_append
03:51:31 <HackEgo> ​#!/bin/bash \ topic="$(echo "$1" | lowercase | sed 's/^\(an\?\|the\) //;s/s\? .*//')" \ stuff=$(echo "$1" | cut -d' ' -f2-) \ perl -i -p -e 's/\n/ /' "wisdom/$topic" \ echo "$stuff" >>"wisdom/$topic" \ echo -n "Learned '$topic': " \ cat "wisdom/$topic"
03:51:45 <oerjan> oh slashes shouldn't be relevant.
03:51:50 <oerjan> the file already has to exist.
03:54:06 <oerjan> actually slashes might be relevant the other way, since `le/rn_append uses them as separator. (`le//rn_append should use two.)
03:55:30 <oerjan> hm time for heating pizza
03:56:36 <prooftechnique> Dropping those extraneous h's will make it 'm, time for eating pizza', t
04:01:40 -!- lambda-11235 has quit (Max SendQ exceeded).
04:02:14 -!- lambda-11235 has joined.
04:02:57 -!- copumpkin has quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…).
04:19:02 <oerjan> prooftechnique: but then it'd be frozen!
04:19:33 <prooftechnique> You raise an important point
04:28:39 <oerjan> wat, no edits in my wp watchlist
04:28:48 <oerjan> i think it's been a while since that happened
04:29:03 <oerjan> *new
04:30:47 -!- lambda-11235 has quit (Ping timeout: 268 seconds).
04:31:45 -!- lambda-11235 has joined.
04:32:05 <oerjan> oops, not to forget the pizza...
04:35:11 -!- lambda-11235 has quit (Read error: Connection reset by peer).
04:46:18 * oerjan ponders if he should have removed the pizza halfway through to fix the uneven toppings
04:46:43 <oerjan> this is pretty soaked in too much pineapple.
04:51:48 <oerjan> and only a small part seems to have any cheese.
04:55:03 -!- heroux has quit (Ping timeout: 240 seconds).
05:29:19 -!- Zoroaster has joined.
05:29:21 -!- Zoroaster has changed nick to Kaynato.
05:29:31 <Kaynato> Hello all, I have made an esolang recently
05:30:02 <Kaynato> I wrote a C compiler and interpreter. Recently I am optimising the memory allocation but the version so far should work without trouble
05:30:14 <Kaynato> Nice to meet you.
05:32:12 -!- heroux has joined.
05:32:39 <Kaynato> Hello, heroux
05:33:22 -!- tromp_ has joined.
05:37:33 -!- tromp_ has quit (Ping timeout: 244 seconds).
05:41:23 <ais523> hi Kaynato
05:41:35 <ais523> have you posted the language to the wiki? that's where most people go to look for new esolangs
05:41:51 <Kaynato> Yes! I spent a lot of effort making my page, actually. It is great to meet the administrator here :)
05:41:57 <Kaynato> Here it is: https://esolangs.org/wiki/Daoyu
05:42:45 <ais523> I'm not the only administrator :-)
05:43:31 <ais523> also I haven't been checking the wiki as much as I should recently because my RSS reader is broken
05:43:33 <ais523> so I'd missed it
05:43:52 <Kaynato> No problem, you are here after all
05:44:17 <Kaynato> I was really excited to make this esolang, actually, I don't think I've really seen anything resembling this idea before
05:44:36 <ais523> it's a lot more interesting than most people's esolangs
05:44:46 <Kaynato> Although it was a tremendous hassle to actually write anything non-trivial in this language, haha
05:45:01 <Kaynato> Half the code in the truth machine exists solely to make sure the input is ASCII 0 or 1
05:45:27 <Kaynato> The rests writes a program inside the program data to then check the last unknown bit and decode to output and loop or output and end :)
05:45:48 <Kaynato> The end mechanism is also very interesting - it deallocates the memory where the program that is running is being stored
05:46:08 <Kaynato> Which exits the execution loop out of that, and then out of the top level program
05:46:24 <Kaynato> I am unsure which paradigm this really counts as
05:46:35 <ais523> how useful is UPLEV?
05:47:01 <Kaynato> Very! It is indeed vital to the operation of the code
05:47:06 <ais523> hmm, it reminds me a bit of the sort of things people do in Befunge
05:48:00 <Kaynato> Hm, but the pointer does not change direction ever
05:48:11 <ais523> oh I see, UPLEV changes what's interpreted as IDLES so that commands like SIFTS operate on different information
05:48:30 <ais523> right, I wasn't thinking so much to do with the pointer direction as the sort of things you can do with self-modifying code
05:48:37 <Kaynato> UPLEV was a combination of "How do I loop?" and "How do I not go into an infinite DOALC explosion?"
05:48:52 <ais523> fizzie: does Befunge-98 have a mass fungespace copy fingerprint?
05:49:32 <ais523> err, fizzie's in the UK and probably won't answer questions at 6:50am
05:49:34 <Kaynato> To be fair, most of these commands were to "hopefully make this turing complete," haha
05:49:38 <Kaynato> No problem, that's fine
05:49:42 <ais523> I tend to just ask people on the offchance they're online
05:49:50 <Kaynato> It's a good strategy
05:49:51 <ais523> Kaynato: you write languages much the way I do, I think
05:49:58 <ais523> Snowflake's initial set of instructions are pretty weird
05:50:08 <ais523> but it was a case of "find way to add functionality the language needs"
05:50:19 <Kaynato> Of course! With Daoyu it was initially just a data generation language
05:50:36 <Kaynato> DOALC, SPLIT, HALVE, LATER, MERGE
05:50:45 <ais523> I think the page could be made a bit better by explaining what the data storage model is, before presenting the commands
05:50:53 <Kaynato> Of course, I was thinking about that
05:50:53 <ais523> at the moment you explain what the commands do but it's not clear what they're operating on
05:51:16 <Kaynato> I am on that right now
05:51:16 <ais523> a program is formed out of a program and data, and data is also formed out of a program and data, recursively?
05:51:54 <Kaynato> A program always owns data. Data can always become a program.
05:52:36 <Kaynato> When you load a program from the binary code, the interpreter creates data, allocates it properly, reads the code into the data, then calls EXECS from the first bit
05:59:13 <HackEgo> [wiki] [[Daoyu]] https://esolangs.org/w/index.php?diff=46695&oldid=46693 * Kaynato * (+813) More explanations
05:59:28 <Kaynato> There we go :)
06:00:23 <Kaynato> So, hmm...
06:00:29 <Kaynato> "A program is formed out of a program and data"
06:01:10 <Kaynato> When code is loaded, it is only data. EXECS can be interpreted as a function that turns data into a program - or rather, if the idea of "program" itself is thrown out
06:01:35 <Kaynato> There is only one program at all times, and that program IS the interpreter. The instruction is the data that is being read (the "program")
06:02:09 <Kaynato> Since the data all looks the same to EXECS, any data can become a program that EXECS executes.
06:02:56 <Kaynato> And EXECS can also, through data that it receives (a program), create data which also calls EXECS, and then run through it, creating data by necessity of calling EXECS.
06:03:25 <ais523> right
06:03:33 <ais523> it's the sort of loop that concatenative languages normally use
06:04:02 <ais523> I'm not sure whether your language is concatenative; it has a lot in common with something like Underload but also a lot of differences
06:08:02 <Kaynato> For example, you have numbers :)
06:08:41 <Kaynato> For a while I had been using 3$ to represent $$$ but there was really no reason to have numerals of any sort here, haha
06:08:57 <ais523> Underload doesn't have numbers either really, you represent them as programs that make copies of other programs
06:09:10 <ais523> ^ul (:::^^^)(x)~^S
06:09:10 <fungot> ...bad insn!
06:09:18 <ais523> ^ul (:::***)(x)~^S
06:09:18 <fungot> xxxx
06:09:20 <ais523> that's what I meant
06:09:25 <ais523> that's the number 4, being converted to unary
06:09:27 <Kaynato> Ah, but there is a copy function...
06:09:37 <ais523> ^ul (:::***)(:::***)*(x)~^S
06:09:37 <fungot> xxxxxxxxxxxxxxxx
06:09:40 <ais523> and that's 4 times 4
06:09:48 <Kaynato> Mhm, very nice
06:09:52 <ais523> but yes, Underload has a copy because it's meant to be pretty minimal
06:09:56 <ais523> ^ul (:::***)(:::***)^(x)~^S
06:09:56 <fungot> xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
06:10:05 <ais523> 4 to the power of 4 is, umm, 256
06:10:14 <ais523> but those are too many xes to easily count
06:10:30 <Kaynato> Mhm
06:11:01 <Kaynato> Another problem is that Daoyu does not really have a stack
06:11:23 <Kaynato> At the least, I am extremely unsure if it could "easily" produce stack-like behavior
06:11:49 <Kaynato> It seems to be a "mostly writing" type of language in which reading is extremely difficult
06:12:11 <Kaynato> Or just tedious
06:12:21 <ais523> this is common in esolangs
06:12:54 <Kaynato> To be expected, I suppose
06:13:39 <Kaynato> The program "<" loops 9 times exactly - the program "><" is an infinite loop, and the program ">$<" generally causes a memory overflow
06:14:37 <Kaynato> I find myself recently trying to make a program filter to demand ASCII digits, but I can't seem to figure out how to do it
06:15:05 <Kaynato> It was possible with the truth-machine because 0 and 1 only differ by one bit
06:15:36 <Kaynato> However, with a digit filter, I have to check certain digits only provided that other digits are in a certain pattern
06:16:46 <ais523> often I think about how a language really "wants" to do input and output
06:16:50 <Kaynato> A thought was to attach a single conditional to a "flag incrementer" for such a condition, which would permute some data outside of the ASCII input...
06:16:54 <ais523> for example it may want to read a bit at a time rather than a byte at a time
06:17:06 <Kaynato> That is possible here too
06:17:08 <ais523> in this case, part of the problem is that the input can represent any pair of commands if interpreted as commands
06:17:34 <ais523> I guess you could double the input twice so that you only have to deal with 0000 and 1111
06:17:54 <Kaynato> Hm, if one only selects 4 bits before calling INPUT, then it is truncated anyway
06:18:03 <ais523> or, hmm, does doubling even work like that?
06:18:08 <Kaynato> Doubling?
06:18:55 <ais523> err, DOALC
06:19:11 <Kaynato> DOALC always ensures that the new bits are zeros
06:19:14 <Kaynato> I should specify that
06:19:18 <ais523> right
06:19:47 <HackEgo> [wiki] [[Daoyu]] M https://esolangs.org/w/index.php?diff=46696&oldid=46695 * Kaynato * (+42) Minor clarification
06:20:10 <Kaynato> Another problem is that of binary partitions
06:20:29 <Kaynato> It is very difficult to transport data across large partitions - in the worst case, the middle of the data
06:20:53 <HackEgo> [wiki] [[Portable Minsky Machine Notation]] M https://esolangs.org/w/index.php?diff=46697&oldid=46043 * Ais523 * (+15) /* Definition */ clarify whitespace rules
06:21:05 <Kaynato> That is part of the reason I have SIFTS - so that one could write across partitions, then use SIFTS to move it all into likely a single one
06:22:47 <ais523> most of the instructions in Snowflake are designed to avoid this sort of problem
06:22:59 <ais523> e.g. one of them is to make it possible to introduce more than linearly many list wrappers per cycle
06:24:34 <Kaynato> That is an extremely interesting language
06:25:13 <ais523> I need to write an interpreter of it, make a backup copy, and experiment a bit
06:25:36 <Kaynato> It seems like it would be very fun to write, most certainly!
06:27:28 <Kaynato> Regarding this problem in Daoyu: But, since SIFTS probably(?) takes care of that problem, I suppose it would still be alright?
06:27:31 -!- bender| has joined.
06:28:17 <Kaynato> I would suppose the next important step would be to make a program that takes input, modifies some bit outside of the input data depending on some bit in the input, and moves back to its original position
06:30:01 <ais523> you could try writing a program to copy a string
06:30:26 <ais523> ^bf >,[>,]<[<]>[.>]<[<]>[.>]!this is a test
06:30:26 <fungot> this is a testthis is a test
06:30:32 <ais523> that one
06:30:41 <Kaynato> Mhm, yes
06:30:56 <Kaynato> But I haven't identified any permutation cycles yet for looping, actually, hm
06:31:00 <ais523> it's an interesting test of a language because you can't write it in a "linear" language, which is one in which data is only usable once
06:31:04 <Kaynato> I imagine that the setup would be
06:31:10 <ais523> ofc you would probably use a different algorithm to that brainfuck program
06:31:46 <Kaynato> Setup - Take input - Make looping program to copy input - Run from beginning of internal program - Terminate
06:32:53 <Kaynato> Something I should do very soon is to make a utility to print out necessary ([/!) for generation of arbitrary bit-strings
06:36:06 <Kaynato> It is interesting that "ascending and descending floors of data" which I initially specified as a whimsical solution to an edge case has become so vital
06:39:54 <ais523> that reminds me of the complexity of Snowflake's segmented transposition; there are a lot of cases I had to exclude as they'd otherwise have been irreversible (and all commands being reversible is important to Snowflake's design because it means you never lose access to functionality that existed in an older version)
06:40:10 <ais523> and creating those cases artificially is only real way to do an if statement
06:42:04 <Kaynato> Hm, and here I have to deal with the problem of intrinsically lossy commands
06:42:52 <Kaynato> But part of the design was preventing the introduction of "obvious" commands such as incrementation, assignment, plain conditional, etc.
06:43:00 <ais523> yes
06:43:05 <ais523> too many people start with those
06:43:18 <ais523> IMO, an esolang isn't a real esolang unless you have to figure out how to implement numbers for yourself
06:43:25 <Kaynato> I agree wholeheartedly
06:45:00 <Kaynato> An idea that I have been thinking of more recently is the potential in moving the data pointer into the original program data and then using EXECS
06:45:00 <lifthrasiir> it is a differently kinded esolang, to be exact
06:45:01 <b_jonas> what? you can't make categorical statements like that. there are many ways to esolangs.
06:45:06 <lifthrasiir> yeah
06:45:34 <Kaynato> Ah, ah, that is true also
06:45:47 <lifthrasiir> some can be esoteric in its intention; some in its complexity; some in the external context; some in the computational ability; some in, uh, true stupidity; etc.
06:46:04 <ais523> lifthrasiir: the truly stupid ones are clearly esoteric, but only arguably languages
06:46:16 <ais523> something like Esme qualifies as truly stupid but I'm not convinced it's actually a langugae
06:46:29 <Kaynato> And then there are the piles of BF Derivatives
06:46:33 <ais523> more likely it is a moderately well-done trolling attempt
06:46:46 <lifthrasiir> ais523: you bet. my point is that there is no such thing like "real esolang" (though I see what you really meant).
06:46:51 <ais523> then there are the BF derivatives, only a small fraction of which are interesting, but which are a good way for new people to learn how to write esocompilers
06:47:16 <Kaynato> "Real Esolang" is arguably much more dangerous than the idea of "Real Programmers / Real Languages"
06:47:38 <ais523> "real programmers" are mostly a joke, though
06:47:53 <ais523> the name's normally taken to refer to people like Mel from The Story of Mel
06:47:54 <lifthrasiir> real programmers do not use any tool. they choose the universe that would contain the desired information somehow.
06:48:13 <ais523> who do programming at a level so low that most people have problems comprehending it
06:48:23 <Kaynato> Mhm
06:48:28 <ais523> (this is sometimes exaggerated a bit, like in lifthrasiir's example)
06:48:37 <lifthrasiir> a classical joke.
06:48:43 <ais523> "real languages" is not something that I've heard of before
06:48:53 <lifthrasiir> (inspired from https://xkcd.com/378/ )
06:48:53 <Kaynato> It feels that using Daoyu is sort of grasping at that horrible, painful thing at the bottom of the world, with one's hand cut off and eyes sewn shut
06:48:56 <ais523> by saying "real esolang" I wasn't being 100% serious
06:49:17 <Kaynato> It can be said to be at a lower conceptual level than assembly, of all things, but then orthagonal
06:49:35 <ais523> especially because you can sometimes get interesting languages by starting with arithmetic (e.g. Forte) or even brainfuck (e.g. PaintFuck)
06:49:42 <Kaynato> Oh of course
06:50:22 -!- jaboja has quit (Remote host closed the connection).
06:50:49 <oerjan> <ais523> IMO, an esolang isn't a real esolang unless you have to figure out how to implement numbers for yourself <-- Fueue hth
06:50:55 <ais523> or, for that matter, JavaScript (JSFuck), although JSFuck is only really interesting in that it's possible
06:51:10 <oerjan> also FORTE
06:51:40 <ais523> I mentioned Forte already!
06:51:47 <oerjan> i was backscrolled!
06:52:00 <oerjan> how dare you contradict yourself while i'm typing!
06:52:25 <b_jonas> I must admit I'm partial for arithmetic. I like arithmetic.
06:53:35 <ais523> that said, in Forte, I'm not convinced that implementing numbers using numbers is the best idea
06:54:20 <ais523> the TCness proof uses simulated Minsky machines
06:54:48 <hppavilion[1]> I think that the Rotary Turing Machine may prove BF\(-) TC
06:55:20 <b_jonas> now I'm reminded to wikiplia, which has built in integers, functions for addition, subtraction, and equality, but not less-than comparison. the way to do less-than comparison (on not too large integers) is to subtract the two numbers, converting the result implicitly to a string substring it to take the first character, and compare that substring to "-"
06:55:24 <ais523> hppavilion[1]: BF without -, is this?
06:55:31 <hppavilion[1]> ais523: Yes
06:55:39 <hppavilion[1]> ais523: \ is stand-in for set difference
06:55:45 <ais523> that's clearly TC if you have a limited cell size, e.g. in 8-bit BF you can replace - with 255 +
06:56:00 <ais523> if you have an unlimited cell size it's more interesting
06:56:10 <b_jonas> that, or you can just do bitfuck by replacing + with 128+
06:56:15 <hppavilion[1]> ais523: But it might only prove Brainfuck with an even wrapping point TC
06:56:20 <oerjan> ais523: hey, fractran both does and doesn't fit
06:56:36 <ais523> my immediate reaction was that it was obviously sub-TC but thinking about it I'm not sure
06:57:16 <hppavilion[1]> ais523: Nowrap BF\- is probably not TC, but it might be if you allow quotient types
06:57:39 <hppavilion[1]> ais523: Basically, you could have 2-cell tuples (a, b) that represent a/b
06:57:42 <ais523> let's call this "permanent BF" because once a cell becomes nonzero, you have no way to set it back to zero
06:57:46 <hppavilion[1]> Wait, but how would you do the math?
06:57:49 <hppavilion[1]> ais523: Good idea
06:58:14 <hppavilion[1]> ais523: And Permanent BF's wimpmode has a _ ("reset to zero") instructoin
06:58:31 <ais523> no, that would make the language really different
06:58:37 <hppavilion[1]> ais523: Should we compile a (single-page) list of "Brainfuck derivatives that are actually interesting"?
06:58:39 <hppavilion[1]> ais523: Fair enough
06:58:43 <ais523> the most obvious implementation method appears to be to allocate every nth cell as a different counter, and create an increment-only Minsky machine whose instructions are "increment counter" and "compare two counters"
06:58:51 <b_jonas> hppavilion[1]: no.
06:58:58 <hppavilion[1]> b_jonas: It would only be one page
06:58:58 <b_jonas> definitely no.
06:59:04 <b_jonas> hppavilion[1]: just no.
06:59:07 <hppavilion[1]> b_jonas: In fact, we could move boolfuck and such into that page
06:59:09 <b_jonas> it would lead to too much flames.
06:59:16 <ais523> err, I mean, each of the n sets of every-nth-cell is a counter
06:59:22 <hppavilion[1]> b_jonas: Thus DECREASING the number of BF derivative pages
06:59:25 <b_jonas> hppavilion[1]: if you want, make a user subpage about brainfuck variants that _you_ think are interesting, and emphasize it's subjectiveness.
06:59:33 <b_jonas> hppavilion[1]: that's not how it works
06:59:39 <b_jonas> hppavilion[1]: think of "too many standards"
06:59:39 <ais523> you could make an objective page of "BF derivatives that are not trivial to prove TC or T-incomplete"
06:59:53 <hppavilion[1]> ais523: Yeah, that works
07:00:00 <hppavilion[1]> ais523: TiC?
07:00:05 <ais523> unTC
07:00:10 <hppavilion[1]> ais523: Yeah
07:00:55 <hppavilion[1]> ais523: "Brainfuck derivatives with nontrivial computational class proofs, and other assorted significances"?
07:01:18 <ais523> no because now it isn't objective
07:01:25 <hppavilion[1]> ais523: Yeah, fair enough
07:02:03 <hppavilion[1]> BoolFuck is probably fairly simple (not quite trivial, but not insane) to prove TC, but it's still significant because of being boolean, thus showing that any n>2 is acceptable for a cell bound
07:02:28 <hppavilion[1]> ais523: Fine, how about just the stuff before the comma?
07:02:54 <coppro> is BoolFuck just BrainFuck where every cell is either 0 or 1, and rather than +/- you have a toggle?
07:03:01 <ais523> hppavilion[1]: that might work
07:03:05 <ais523> coppro: yes
07:03:08 <ais523> I think
07:03:15 <coppro> oh it's trivially TC then
07:03:17 <ais523> many of these limited-BFs make minor changes to the set of instructions that exist
07:03:24 <ais523> like removing output
07:03:34 <ais523> or merging < and * (* is the toggle instruction)
07:03:35 <coppro> you can easily emulate arbitrarily cell-bounded BF with it
07:03:49 <hppavilion[1]> coppro: Not quite trivial, but fairly simple
07:03:56 <hppavilion[1]> By generalization
07:04:04 <Kaynato> Thinking about that, it would be possible to implement BoolFuck in Daoyu if it were not for the problem of nonlinear partitioning. Linear traversal operates at a higher level than is available
07:04:25 <hppavilion[1]> 256-wrap BF is TC, 128 is, 64 is, 32 is, 16 is, 8 is, 4 is, so why not 2? Or something along those lines
07:04:27 <Kaynato> I could change the level table to make this trivial but I am not sure if that is in the spirit of this language
07:04:40 <ais523> how easy is it to emulate unbounded BF in bounded-cell BF? I assume it's harder than the bounded-in-bounded implementations, and interpreter-bundling might even be the easiest way
07:07:22 <b_jonas> ais523: depends on how fast you want it
07:07:42 <Kaynato> I think I will set my next goal to be a string copier. It is 3 AM now, so goodnight everyone, once again thank you for being receptive and kind
07:07:58 <ais523> night Kaynato
07:08:56 <oerjan> ais523: well you basically have to use some stick-infinitely-many-cells-in-one method
07:09:04 <oerjan> wait
07:09:06 <b_jonas> ais523: and I don't think you need interpreter bundling. just treat it like a single-tape turing machine with a couple of different symbols, each cell represented by a fixed number of brainfuck cells; represent bignums on the turing machine in unary and shift the whole rest of the tape when you increment a bignum.
07:09:10 <oerjan> that's the wrong way
07:09:25 <ais523> oerjan: the other way you definitely go via Minsky machines
07:09:29 <b_jonas> ais523: that is, if you don't need efficiency, only turing-completeness, then it's easy.
07:09:46 <hppavilion[1]> ais523: What would you say the most promising path for proving Permafuck's computational class is?
07:09:58 <ais523> b_jonas: I agree that it's easy if you just care about TCness
07:10:11 <ais523> hppavilion[1]: Minsky machines
07:10:15 <hppavilion[1]> ais523: OK
07:10:33 <ais523> they're a really good model for restricted BFs because BF can implement a Minsky machine in two different ways
07:10:46 <ais523> either using single unbounded cells or a row of cells along the tape
07:11:14 <oerjan> i think BCT would also be fairly easy
07:11:38 <ais523> I think you'd have difficulty finding the left end of the queue
07:11:41 <oerjan> using two cells for each BCT cell
07:11:58 <coppro> hppavilion[1]: no, it's trivial
07:12:25 <ais523> oerjan: only two?
07:12:33 <ais523> what's your iteration command for going from the right end to the left end?
07:12:39 <coppro> every two adjacent boolfuck cells become one 4-brainfuck cell
07:12:42 <oerjan> maybe more. i wasn't thinking about getting to the end there.
07:12:45 <ais523> ooh, I think you could probably do it using five
07:12:56 <ais523> or six?
07:12:57 <oerjan> i think maybe 3?
07:13:08 <ais523> and intentionally unbalancing the loop so that you fall to an otherwise unreachable position
07:13:36 <HackEgo> [wiki] [[Brainfuck derivatives with nontrivial computational class proofs]] N https://esolangs.org/w/index.php?oldid=46698 * Hppavilion1 * (+1494) Created page (First Example: Permanent Brainfuck)
07:13:50 <coppro> replace each instruction with another instruction that works on the 2-cell
07:14:01 <coppro> to make it even easier
07:14:09 <hppavilion[1]> ais523: Are there any strict subsets of brainfuck with trivial computational class proofs?
07:14:12 <coppro> replace the two-cell with three cells, one of which just stores a "is nonzero" bit
07:14:20 * hppavilion[1] realizes his massive mistake there
07:14:31 * hppavilion[1] misspoke entirely
07:14:41 <shachaf> whoa whoa whoa, I thought you were talking about n-categories
07:14:41 <hppavilion[1]> Are there any Turing-Complete strict subsets of brainfuck?
07:14:51 <ais523> hppavilion[1]: remove , and .
07:15:02 <hppavilion[1]> ais523: Oh, right. The /useless/ instructions.
07:15:06 <hppavilion[1]> ais523: Other than that?
07:15:10 <ais523> you can remove + or - on with a bounded cell size, and remove < or > with a bounded tape length
07:15:17 <ais523> other than that you can't remove instructions without changing or adding some
07:15:20 <hppavilion[1]> ais523: But isn't that a trivial proof?
07:15:24 <coppro> permanent brainfuck is boring
07:15:26 <hppavilion[1]> Oh, I forgot to constrain "nontrivial"
07:15:28 <coppro> it can't loop
07:15:30 <ais523> (obviously if you have both a bounded cell size and a bounded tape length it's sub-TC)
07:15:32 <ais523> coppro: why not?
07:15:38 <hppavilion[1]> coppro: Yeah, I think that's the biggest problem
07:15:41 <ais523> I agree that you can't write a useful /balanced/ loop
07:15:43 <coppro> ais523: by induction
07:15:49 <ais523> but I don't see why an unbalanced loop couldn't be useful
07:16:01 <hppavilion[1]> ais523: Unbalanced loop?
07:16:11 <coppro> actually wait
07:16:13 <hppavilion[1]> ais523: Like, unbalanced brackets?
07:16:18 <ais523> hppavilion[1]: one which isn't necessarily on the same cell at the [ and the ]
07:16:23 <coppro> what's the input-output method here?
07:16:24 <coppro> that matters
07:16:24 <hppavilion[1]> ais523: Ah
07:16:28 <ais523> the simplest possible unbalanced loop is [>]
07:16:39 <hppavilion[1]> coppro: I think we ignore those
07:16:41 <ais523> coppro: assume no input, output is BF .
07:16:46 <ais523> that's the simplest model I think
07:16:53 <coppro> ais523: err, what
07:17:08 <hppavilion[1]> ais523: Or , increments the current cell by n, but that just leads to needless complication
07:17:09 <ais523> alternatively you could make output BF . but in bits
07:17:11 <coppro> I'm talking about computational complexity
07:17:17 <ais523> so that you don't have to store the value of the cell
07:17:23 <coppro> how does it receive input?
07:17:32 <hppavilion[1]> coppro: It doesn't.
07:17:35 <ais523> coppro: which language are you talking about? unbounded-cell BF without - ?
07:17:38 <hppavilion[1]> coppro: It's like a TM: no input
07:17:39 <coppro> ais523: yes
07:17:46 <ais523> you don't need input to prove TCness
07:17:53 <coppro> you don't?
07:17:56 <hppavilion[1]> coppro: No!
07:18:08 <coppro> explain
07:18:08 <hppavilion[1]> coppro: , and . are useless to brainfuck aside from practicality!
07:18:19 <hppavilion[1]> coppro: It's confusing, I know, but if you think long enough, it works
07:18:21 <coppro> oh wait
07:18:21 <coppro> durrr
07:18:23 <coppro> it's alte :(
07:18:25 <coppro> *late
07:18:32 <ais523> you were confusing with BF-completeness, I think@
07:18:35 <ais523> *think?
07:18:50 <hppavilion[1]> ais523: @ should be used in actual punctuation
07:19:01 <hppavilion[1]> I really love your hair@ <-- Sarcasm
07:19:15 <oerjan> i think that's a great idea@
07:19:22 <hppavilion[1]> oerjan: Well played.
07:19:42 <coppro> what do you mean by the output being BF, though?
07:19:46 <hppavilion[1]> I do prefer the spanish language's prefix punctuation.
07:19:57 <hppavilion[1]> coppro: It outputs /like/ in BF
07:20:23 <hppavilion[1]> coppro: I assume it only takes the low up-to 8 bits, left-padding with zeros if necessary
07:20:48 <hppavilion[1]> (alternatively, it divides it in up-to 8 bit chunks, but that's just pointless)
07:21:52 <hppavilion[1]> ais523: Hm... what other interesting BFs are there?
07:22:24 <hppavilion[1]> Random idea: [ has no behavior. All while loops become do-while loops
07:22:33 <coppro> ok so the first obvious reduction is that multiple + are idempotent
07:22:46 <coppro> hppavilion[1]: meh
07:22:46 <hppavilion[1]> Wait, I think oerjan or \oren\ published that as "noob fuck"
07:22:48 <ais523> hppavilion[1]: that's actually been named twice (by me and by oerjan), and invented many more times than that
07:23:09 <hppavilion[1]> ais523: Yes, but has it been explored in properties? Does anyone know how it works?
07:23:33 <hppavilion[1]> It seemed trivially TC at first (just undo everything after the loop so it reverts the changes), but now I'm not so sure
07:23:57 <hppavilion[1]> Because it might loop only 1 time naturally, but then 1 loop is equal to 0 loops
07:24:01 <ais523> coppro: right, + is basically "permanently set this cell to 1"
07:24:04 <hppavilion[1]> Wait, what?
07:24:37 <hppavilion[1]> That doesn't sound right...
07:25:28 <hppavilion[1]> You know, with the right knowledge, I think BF might actually be /easier/ to compile than to interpret, because the search-for-the-matching-] at every [ feels wrong to me, but just using ASM labels feels OK
07:25:32 <hppavilion[1]> It feels more ethical to compile
07:26:08 <hppavilion[1]> (Also, if you can't compile BF to at least a custom ASM, you are a n00b of programming who deserves... some suitable punishment.)
07:27:39 <ais523> it's a good project to learn on
07:27:53 <ais523> now I'm wondering if you can compile BF to x86 via string substitution
07:27:57 <ais523> the hard part would be bracket matching
07:28:22 <ais523> you can't do it in the compiler via string substitution, so you'd have to match at runtime somehow
07:28:44 <ais523> which probably either involves reading your own code to find the ], or else abstaining the loop for its first iteration
07:28:56 <coppro> mark the [ with a nop
07:29:48 <coppro> pick some variety of jump instruction in ] that is used exactly once per ]
07:29:59 <hppavilion[1]> ais523: What kind of string substitution?
07:30:06 <coppro> look backwards through the executing code, looking for the unmatched nop
07:30:07 <coppro> then jump to it
07:30:21 <hppavilion[1]> ais523: Wait, the answer is a definite yes
07:30:25 <ais523> hppavilion[1]: s/+/add 1, (%rbp)\n/g
07:30:26 <hppavilion[1]> See: Thue
07:30:50 <ais523> hppavilion[1]: no, I mean
07:30:55 <ais523> for each BF instruction
07:31:02 <ais523> expand it to a string, that is always the same for the same instruction
07:31:05 <hppavilion[1]> ais523: Oh, single-pass?
07:31:29 <ais523> like you can do a BF to C compiler via replacing "[" with "while (*p) {", "]" with "}", "+" with "(*p)++;", and so on
07:32:22 <hppavilion[1]> ais523: So the question is isomorphic to "Can you compile that subset of C with string substitution"
07:32:28 <coppro> ais523: I'm unfamiliar with one aspect of computation theroy you can maybe clear me up on
07:33:06 <coppro> if we're trying to prove that a BF-like has the same power as, say, PDAs, is there an enumeration characteriazation we can use?
07:33:06 <ais523> hppavilion[1]: err, no, because I mean you replace each character of the input with a string in the output
07:33:28 <ais523> coppro: things tend to end up not well-defined if you look at them in too much detail
07:33:45 <coppro> ais523: well then
07:33:48 <ais523> I typically use an informal "can you compile an X into a Y in such a way that the programs 'do the same thing'"
07:33:51 <coppro> seemms like a problem
07:34:04 <ais523> trying to define this more precisely is indeed a huge problem that has defined considerable portions of my life
07:34:13 <ais523> (i.e. basically all the 2,3/Wolfram stuff)
07:34:16 <coppro> yeah
07:34:26 <coppro> I knew you had some experience in the area ;)
07:34:50 -!- tromp_ has joined.
07:36:35 <hppavilion[1]> ais523: Is there a simple language similar to brainfuck that can definitely be compiled with sed?
07:36:42 <hppavilion[1]> (or sed--)
07:36:56 <hppavilion[1]> (sed-- really just has regexless s/// expressions)
07:37:12 <hppavilion[1]> (Because that's all sed is really used for in most cases anyway)
07:37:21 <ais523> hppavilion[1]: sed is TC, so…
07:37:28 <hppavilion[1]> ais523: Then sed--
07:38:01 <ais523> what are you compiling it into?
07:38:07 <hppavilion[1]> ais523: ASM
07:38:10 <hppavilion[1]> ais523: Same as you
07:38:37 <hppavilion[1]> ais523: Or did you finish that while I wasn't looking?
07:38:50 <hppavilion[1]> ais523: I'm thinking something like BF+^
07:39:05 <ais523> oh, you can compile asm into asm pretty easily :-P
07:39:15 -!- tromp_ has quit (Ping timeout: 246 seconds).
07:39:32 <hppavilion[1]> ais523: s/(.*)/\g1/
07:39:43 <hppavilion[1]> Wait, no, s/(.*)/\g<1>/
07:40:04 <hppavilion[1]> (The standard set of BF+x instructions is yet to be defined, but ^ is "Jump back by the number of characters in the current cell)
07:40:25 <hppavilion[1]> (I'm attempting to make the world's greatest BF compiler, called ABfCI
07:41:42 <hppavilion[1]> I /think/ that with unbounded cells, you can compile BF+^,v into BF fairly simply, but I'm not sure if it can be done via string substitution
07:43:44 <hppavilion[1]> Hm...
07:44:18 <hppavilion[1]> I want to use x86 as the target for ABfCI, but I'm not sure what to do with it; any time I try to read up on it I get intimidated because I'm a bit pathetic
07:45:26 <hppavilion[1]> I guess I'm going to inherit the earth, so at least I've got that going for me
08:00:04 -!- AnotherTest has joined.
08:10:38 -!- ^v has quit (Ping timeout: 248 seconds).
08:11:28 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
08:11:35 -!- ^v has joined.
08:22:28 -!- Kaynato has quit (Ping timeout: 252 seconds).
08:49:06 -!- lleu has quit (Quit: That's what she said).
08:53:54 -!- mroman has joined.
08:54:02 <mroman> Is there a blocking version of InputStream?
08:54:13 <mroman> eh wrong channel :)
08:56:03 <oerjan> mroman: itym "fnærd" hth
08:56:53 <ais523> I thought InputStream was blocking by default :-(
08:57:14 <oerjan> . o O ( just pass it to a BlockingStreamFactory )
08:58:53 <ais523> oerjan: would be more likely a BlockingFilterStream
08:59:12 <ais523> no reason to factorize when you can just use it as a constructor parameter
08:59:37 <oerjan> you seem to assume i know the difference
09:00:14 <oerjan> i mean, NOT ENTERPRISEY ENOUGH
09:22:58 -!- oerjan has quit (Quit: LNaiter).
09:40:16 <b_jonas> stupid webpages unnecessarily using crazy complicated javascript and css to try to just show some textual information that they could show on a simple static textual webpage, and messing it up so the words keeps overlapping each other or getting truncated.
09:41:35 <ais523> or break scrolling or navigation commands
09:42:38 -!- gniourf has quit (Quit: Leaving).
09:45:56 -!- gniourf has joined.
09:47:08 <fizzie> ais523: Belatedly, the TOYS fingerprint has block copy/move operations.
09:47:38 <ais523> fizzie: I was thinking about the idea of no-delta-change *funge
09:47:50 <ais523> (probably unefunge as the extra dimensions wouldn't help all that much)
09:48:12 <ais523> the idea being that you copy code ahead of the IP to run it, in the style of various esolangs (IIRC SMITH?)
09:51:30 <fizzie> Sounds feasible.
09:58:20 -!- nooga has joined.
09:58:32 <nooga> kood
10:23:57 <b_jonas> ais523: (1) how is that a fungeoid, and (2) can you at least jump, even if you can't change the delta?
10:24:20 <ais523> b_jonas: I didn't say it was a fungeoid, just a restriction of funge
10:24:31 <ais523> also I wasn't planning on having jumps either
10:24:39 <b_jonas> hmm
10:24:41 -!- boily has joined.
10:24:47 <b_jonas> you may have trouble copying commands fast enough to not run out of them then
10:25:04 <ais523> b_jonas: that's why I asked if there were any block copy fingerprints
10:25:26 <b_jonas> I see
10:26:06 <b_jonas> well if you have a block copy, then you could just always copy the next block ahead of you whenever you jump
10:26:45 <ais523> yes
10:26:55 <ais523> I guess to make it harder you could add a rule against copying over nonzero memory
10:28:56 <b_jonas> ais523: even then it's not hard
10:29:04 <ais523> indeed
10:29:50 <b_jonas> ais523: you break your code to elementary blocks (with no jumps at the middle and one jump at the end) and copy only the next one at the end of the block
10:30:22 <ais523> right, the hard part is writing conditionals, but you can do it via arithmetic
10:30:29 <ais523> computing one block or another to jump to (i.e. copy forwards)
10:30:53 <b_jonas> arithmetic? doesn't funge have easy value conditional statements?
10:32:45 <ais523> they change the delta
10:32:47 <b_jonas> yeah, doesn't matter, it has a proper value comparison function, and you can combine that with arithmetic and stack control to make a conditional
10:33:02 <ais523> ah right, it has a less-than
10:33:13 <ais523> which is basically an arithmetical < rather than a control-flow <
10:33:22 <b_jonas> yep
10:34:50 -!- Reece` has joined.
10:34:52 <b_jonas> the ` command for less-than compare, arithmetic on the stack, and the g and p commands to load and store from random memory (which together let you do stack operations too)
11:00:13 -!- lleu has joined.
11:06:04 <boily> @metar CYUL
11:06:05 <lambdabot> CYUL 301000Z 24004KT 15SM SCT240 M02/M06 A3021 RMK CI4 SLP232
11:19:16 -!- boily has quit (Quit: GERMANIC CHICKEN).
11:23:30 <mroman> ais523: InputStream is just an abstract class with a default implementation that blocks, yes.
11:23:38 <mroman> but actual implementations of InputStream can do whatever they want
11:24:02 <ais523> indeed
11:24:04 <mroman> so if you get an InputStream from somewhere, it is not guaranteed to behave in the way the default implementation does.
11:24:11 <ais523> I'd /expect/ them to make it block though
11:24:31 <ais523> because that's what the interface contract implies
11:36:22 -!- tromp_ has joined.
11:38:44 -!- earendel has joined.
11:41:33 -!- tromp_ has quit (Ping timeout: 276 seconds).
11:43:17 -!- J_Arcane_ has joined.
11:44:54 -!- J_Arcane has quit (Ping timeout: 244 seconds).
11:44:55 -!- J_Arcane_ has changed nick to J_Arcane.
11:45:19 -!- ais523 has quit.
11:51:11 <mroman> Yeah but the docs also mention that subclasses are free to do otherwise
11:51:32 <mroman> so basically unless an InputStream overrides the read method it will block
12:06:20 -!- Hoolootwo has quit (Remote host closed the connection).
12:13:01 -!- Hoolootwo has joined.
12:32:24 -!- J_Arcane has quit (Ping timeout: 268 seconds).
12:37:57 -!- idris-bot has quit (Quit: Terminated).
12:38:22 -!- idris-bot has joined.
12:48:33 -!- Sgeo has quit (Ping timeout: 240 seconds).
13:18:21 -!- augur_ has joined.
13:20:30 -!- augur has quit (Ping timeout: 248 seconds).
13:20:30 -!- dingbat has quit (Ping timeout: 248 seconds).
13:23:42 -!- mbrcknl has quit (Ping timeout: 248 seconds).
13:23:50 -!- dingbat has joined.
13:26:28 -!- mbrcknl has joined.
13:51:15 -!- meAgen has joined.
13:52:12 -!- meAgen has left.
14:00:33 -!- Guest6809 has joined.
14:02:10 -!- miko_ has joined.
14:04:45 <miko_> Hi. I'm looking for a serious, but IMHO higly esoteric language. The main feature is the lack of turing completeness, as no unbounded loops are permitted.
14:05:40 <miko_> I saw in on HN. It looked a bit like C, and was on github. It was like the serious cusin of cloop.
14:06:14 -!- Melvar has quit (Ping timeout: 260 seconds).
14:06:45 -!- idris-bot has quit (Ping timeout: 268 seconds).
14:07:29 -!- Melvar has joined.
14:10:31 <prooftechnique> miko_: http://tkatchev.bitbucket.org/tab/
14:10:33 <prooftechnique> ?
14:15:44 <miko_> prooftechnique, while that looks interesting, It wasn't that. It was simpler, and the syntax was a curly braces language. I think it was promoted under the "langsec" mantra.
14:25:20 <fizzie> miko_: Crema?
14:26:40 <miko_> Yes! Thank You!
15:14:06 -!- miko_ has quit (Ping timeout: 248 seconds).
15:14:51 -!- gremlins has joined.
15:18:54 -!- Reece` has quit (Ping timeout: 268 seconds).
15:19:34 -!- earendel has quit (Ping timeout: 240 seconds).
15:20:16 -!- jaboja has joined.
15:26:03 -!- miko_ has joined.
15:28:36 -!- nooga has quit (Quit: Lost terminal).
15:50:15 -!- Kaynato has joined.
15:59:55 -!- miko_ has quit (Quit: Verlassend).
16:06:23 -!- mroman has quit (Quit: Lost terminal).
16:08:08 -!- bender| has quit (Changing host).
16:08:08 -!- bender| has joined.
16:10:27 -!- bender| has quit (Quit: Leaving).
16:16:38 -!- Kaynato has quit (Ping timeout: 244 seconds).
16:23:52 -!- MoALTz has quit (Ping timeout: 244 seconds).
16:26:08 -!- jaboja has quit (Ping timeout: 250 seconds).
16:27:25 -!- Kaynato has joined.
16:44:52 -!- J_Arcane has joined.
17:04:37 -!- Lilly_Goodman has joined.
17:04:50 <Lilly_Goodman> Hola
17:10:37 <Elronnd> hey
17:12:40 -!- Lilly_Goodman has quit (Excess Flood).
17:13:02 -!- Lilly_Goodman has joined.
17:30:09 -!- jaboja has joined.
17:30:11 -!- hppavilion[1] has joined.
17:31:08 -!- Lilly_Goodman has quit (Ping timeout: 250 seconds).
17:31:48 -!- lambda-11235 has joined.
17:33:51 -!- Lilly_Goodman has joined.
17:40:24 -!- MoALTz has joined.
17:41:15 -!- Caesura has joined.
17:44:28 -!- Kaynato has quit (Ping timeout: 244 seconds).
17:50:37 -!- Caesura has quit (Ping timeout: 252 seconds).
17:59:10 -!- p34k has joined.
18:00:28 -!- jaboja has quit (Ping timeout: 268 seconds).
18:13:43 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
18:15:04 -!- hppavilion[1] has joined.
18:16:01 -!- Reece` has joined.
18:16:15 -!- gremlins has quit (Ping timeout: 246 seconds).
18:19:27 -!- gremlins has joined.
18:19:38 -!- J_Arcane has quit (Ping timeout: 244 seconds).
18:20:07 -!- J_Arcane has joined.
18:22:25 -!- gremlins2 has joined.
18:23:15 -!- Reece` has quit (Ping timeout: 246 seconds).
18:23:57 -!- gremlins has quit (Ping timeout: 246 seconds).
18:24:06 <prooftechnique> fizzie: Do you think crema goes well with SALSA?
18:24:07 <hppavilion[1]> I'm making a military-grade brainfuck compiler
18:25:00 <Taneb> Is it written in Ada
18:25:26 -!- bb010g has joined.
18:26:17 <hppavilion[1]> Taneb: No, but it's cross-platform
18:26:56 -!- jaboja has joined.
18:30:46 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
18:31:23 -!- hppavilion[1] has joined.
18:32:55 <hppavilion[1]> Taneb: I'm making it include a number of useful /optional/ extensions to ease programmers with its usage
18:33:05 <hppavilion[1]> Taneb: But they have to be enabled
18:34:58 -!- Caesura has joined.
18:35:37 <hppavilion[1]> Taneb: By the .conf file for that module
18:36:54 <hppavilion[1]> (Which is encoded in JSON (though maybe I'll change it to YAML))
18:39:28 -!- Phantom_Hoover has joined.
18:45:59 -!- jaboja has quit (Ping timeout: 244 seconds).
18:46:01 <prooftechnique> Okay, so where does the bureaucracy fit in?
18:47:01 <hppavilion[1]> prooftechnique: What bureaucracy? I can add that if you like.
18:47:29 <hppavilion[1]> prooftechnique: Is bureaucracy a programming pattern, or are you speaking of it in the literal sense?
18:47:43 <hppavilion[1]> If in the literal sense, I don't see how it's relevant
18:47:56 <Taneb> It's Military Standard (tm)
18:48:09 <hppavilion[1]> Taneb: Oh, yes.
18:48:36 <hppavilion[1]> Taneb: Should I add "springback points"
18:48:53 <Taneb> Springback points?
18:48:58 <hppavilion[1]> Taneb: Which would be like using CJMP on the top of the stack, but instead it moves the tape
18:49:12 <hppavilion[1]> Taneb: So you can PUSH the current tape location, then later POP it and jump back there
18:49:52 <Taneb> It's a... rather extendy extension
18:50:10 <hppavilion[1]> Taneb: It is. But it gives me a use for the stack.
18:50:17 <hppavilion[1]> Taneb: And it's fully optional
18:50:22 <hppavilion[1]> Taneb: And not hard to implement
18:50:33 <Taneb> You can use the stack for [ jumpback! I think
18:50:45 -!- XorSwap has joined.
18:50:50 <hppavilion[1]> Taneb: Yes, but I don't, because that'll make ^ confusing if I implement it
18:51:02 <hppavilion[1]> If you ^ to somewhere after the [ but before the ]
18:51:26 <hppavilion[1]> The metaphor is that you "tie a knot" on the current cell, then you later follow the string. Because programmers can't understand this stuff in the abstract, obviously.
18:51:31 <hppavilion[1]> It'd be good for pointers
18:52:29 <hppavilion[1]> Taneb: Part of the goal of ABfCI is to be usable, while still including normal bf by default
18:52:42 <hppavilion[1]> Taneb: But you have a point about being very extendy.
18:58:14 -!- Lilly_Goodman has quit (Quit: Leaving.).
19:00:30 -!- Reece` has joined.
19:02:07 -!- gremlins2 has quit (Ping timeout: 252 seconds).
19:04:19 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
19:05:17 -!- hppavilion[1] has joined.
19:09:27 -!- jaboja has joined.
19:16:25 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
19:23:06 -!- XorSwap has quit (Ping timeout: 268 seconds).
19:30:57 -!- lambda-11235 has quit (Quit: Bye).
19:36:19 -!- XorSwap has joined.
19:37:35 -!- hppavilion[1] has joined.
19:48:57 -!- jaboja has quit (Ping timeout: 250 seconds).
19:59:39 -!- mihow has joined.
20:00:22 -!- Reece has joined.
20:00:54 -!- Reece` has quit (Ping timeout: 246 seconds).
20:04:03 -!- trn has quit (Quit: quit).
20:08:01 -!- Reece` has joined.
20:09:18 -!- Reece has quit (Ping timeout: 246 seconds).
20:16:33 -!- XorSwap has quit (Ping timeout: 240 seconds).
20:25:18 -!- trn has joined.
20:35:04 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
20:35:58 -!- Zoroaster has joined.
20:38:26 -!- MoALTz has quit (Quit: Leaving).
20:38:50 -!- hppavilion[1] has joined.
20:39:06 -!- Caesura has quit (Ping timeout: 244 seconds).
20:41:42 -!- tromp_ has joined.
20:45:55 -!- tromp_ has quit (Ping timeout: 248 seconds).
20:47:57 -!- jaboja has joined.
20:51:03 -!- Reece` has quit (Ping timeout: 240 seconds).
20:52:18 -!- AnotherTest has quit (Quit: ZNC - http://znc.in).
21:00:33 -!- Coronel has joined.
21:05:03 -!- lleu has quit (Ping timeout: 240 seconds).
21:09:56 -!- Coronel has left ("Leaving").
21:13:13 <hppavilion[1]> What data model hasn't been languaged yet?
21:13:56 <hppavilion[1]> Perhaps the Real Minsky Machine?
21:14:03 <rdococ> hmm
21:14:04 <rdococ> banana
21:14:17 <hppavilion[1]> There's a special register called "am"
21:14:31 <hppavilion[1]> And when you increment or decrement a register, you're really changing by 1/am
21:14:37 <hppavilion[1]> am starts at 1 and cannot go below 0
21:14:51 <rdococ> that sounds weird
21:14:59 <rdococ> but interesting
21:15:01 <hppavilion[1]> And it is incremented/decremented normally, instead of by the 1/am (unless you're hardcore)
21:15:20 <hppavilion[1]> rdococ: It's trivially TC, but it hasn't been done before AFAIK
21:16:58 <rdococ> with just increment and decrement?
21:17:51 <int-e> perhaps s/Real/Harmonic/
21:18:12 <int-e> (since you can easily compute harmonic numbers ;-)
21:18:14 <int-e> )
21:20:47 <hppavilion[1]> int-e: Oooh :)
21:20:58 <hppavilion[1]> rdococ: Yes, it's a Minsky Machine
21:21:05 <hppavilion[1]> rdococ: It's not JUST inc/dec
21:21:11 <rdococ> what other operations?
21:21:15 <hppavilion[1]> rdococ: It's also an FSM with alternate transformations
21:21:28 <rdococ> it made me think
21:21:47 <hppavilion[1]> rdococ: A minsky machine can be thought of as an ASM with the instructions INC(reg), JMP(dest), and JZDEC(reg, dest)
21:21:51 <int-e> hppavilion[1]: now the evil version... you cannot modify am. instead, am is incremented by one after each operation.
21:21:59 <hppavilion[1]> int-e: You're a bad person
21:22:20 <hppavilion[1]> int-e: The other evil version is the one where incrementing/decrementing AM is affected by AM
21:22:24 <hppavilion[1]> rdococ: You need >= 2 registers for TCness
21:22:26 <int-e> (to simplify things, test for zero would be replaced by a comparison r < 1/am)
21:22:45 <hppavilion[1]> int-e: Why?
21:22:49 <hppavilion[1]> int-e: Oh, I see
21:23:01 <int-e> hppavilion[1]: because I imagine that hitting zero exactly will become extremely hard
21:23:04 <hppavilion[1]> int-e: This might make for a good Malbolge...
21:23:25 <hppavilion[1]> int-e: I suppose would be, as 1/x has an asymptote at 0
21:23:33 <hppavilion[1]> (An asymptote that it does /not/ cross)
21:24:16 <rdococ> hmm
21:25:23 <HackEgo> [wiki] [[User:Hppavilion1/Simple Languages]] N https://esolangs.org/w/index.php?oldid=46699 * Hppavilion1 * (+878) Switchboard
21:26:36 <hppavilion[1]> int-e: What about a Minsky Machine based on strings?
21:27:00 <hppavilion[1]> Actually, that seems fairly similar to a TM
21:27:09 <hppavilion[1]> With two registers, you can treat them both as stacks
21:27:12 <int-e> hppavilion[1]: that sounds too much like a Turing machine (since two stacks easily give you a tape)
21:27:24 <hppavilion[1]> int-e: I know
21:27:30 <hppavilion[1]> int-e: That's what I just said
21:27:48 <int-e> not before I started typing :P
21:28:18 <hppavilion[1]> int-e: A Minksy Machine with... hm... what other data types could we use?
21:30:20 <int-e> for lack of a sensible answer... how about popcorn.
21:30:37 -!- Zoroaster has quit (Ping timeout: 252 seconds).
21:31:28 <hppavilion[1]> int-e: Map Machine? An Abstract Machine that actually feels like programming?
21:31:47 <hppavilion[1]> (Because it has real variables)
21:32:00 <hppavilion[1]> int-e: Image Machine, which deals with images.
21:32:56 <hppavilion[1]> int-e: Especially useful because you can combine it with a TM or MM to make an Abstract Monitor :P
21:48:56 -!- bb010g has quit (Quit: Connection closed for inactivity).
21:49:41 <hppavilion[1]> int-e?
21:53:51 <rdococ> hmm
21:54:13 <rdococ> we could use types?
21:54:30 <rdococ> increment int
21:54:46 <hppavilion[1]> rdococ: Maybe
21:54:51 <hppavilion[1]> rdococ: Formal Proof Machine?
21:55:03 <rdococ> we could use problems
21:55:07 <hppavilion[1]> rdococ: I'd also like to see someone make a TM-like λ-calc interpretation
21:55:09 <rdococ> as in, logical problems
21:55:15 <hppavilion[1]> rdococ: Logic Machine?
21:55:29 <rdococ> increment halting problem
21:55:36 <rdococ> now it's the halting plus problem
21:55:37 <hppavilion[1]> rdococ: 42
21:55:44 <hppavilion[1]> rdococ: = 42
21:55:52 <rdococ> hmm
21:55:53 <hppavilion[1]> = 42!
21:56:05 <hppavilion[1]> = 42!
21:56:06 <rdococ> how would one describe a logical problem
21:56:35 <hppavilion[1]> rdococ: In terms of predicates and such
21:56:46 <hppavilion[1]> rdococ: But with the extra ? symbol
21:56:49 <rdococ> a logical problem might be a set of relations of variables
21:56:50 <hppavilion[1]> halts(X)?
21:57:12 <hppavilion[1]> ? is a postfix operator meaning "devise an expression to solve the previous problem"
21:57:27 <hppavilion[1]> halts(X)?? returns FALSE or something
21:57:30 <rdococ> ["y=1": ["x=0"], "y=0": ["x=1"]]
21:57:33 <rdococ> or something
21:57:43 <hppavilion[1]> rdococ: So... Table?
21:57:47 <rdococ> maybe
21:57:53 <hppavilion[1]> rdococ: Actually, that makes sense...
21:58:13 <hppavilion[1]> rdococ: I still think we need a Logic Machine or something
21:58:32 <rdococ> ["one condition": ["conditions that are only true if that condition is true"], "other condition": ["other conditions"], "unknown condition"]
21:58:42 <hppavilion[1]> rdococ: Not "only true"
21:58:52 <hppavilion[1]> rdococ: More like "are proven true"
21:59:22 <rdococ> ["x = 1": ["y = 0"], "x = 0": ["y = 1"], "x = 0"] -> "y = 1" or something?
21:59:29 <hppavilion[1]> The closed world assumption means we could interpret a logical proposition as a gate that turns on when it receives a signal and stays on forever
21:59:43 <rdococ> closed world?
21:59:58 <hppavilion[1]> rdococ: Closed World means unproven things are interpreted as FALSE
22:00:04 <hppavilion[1]> rdococ: Open World allows them to be UNDEFINED
22:00:32 <hppavilion[1]> rdococ: That's looking a lot like PROLOG
22:01:00 <rdococ> give me an example of a bit of prolog
22:01:19 <hppavilion[1]> fallible(X) :- human(X).
22:01:36 <hppavilion[1]> That means "If X is human, X is fallible"
22:01:36 <rdococ> so a human is fallible?
22:01:41 <hppavilion[1]> rdococ: Yes
22:01:41 <rdococ> right
22:01:52 <hppavilion[1]> And if you also have:
22:01:53 <hppavilion[1]> human(socrates).
22:01:54 <rdococ> ["human": ["fallible"]]
22:01:55 <hppavilion[1]> And you call
22:02:01 <hppavilion[1]> ?- fallible(socrates)
22:02:02 <lambdabot> Maybe you meant: v @ ? .
22:02:08 <hppavilion[1]> Prolog will say "yes"
22:02:17 <hppavilion[1]> lambdabot: I did not.
22:02:21 <hppavilion[1]> .walrus
22:02:45 <hppavilion[1]> rdococ: I have a more extensive example about my family tree
22:02:57 <rdococ> [human: [fallible], socrates: [human]]
22:03:15 <rdococ> contains(socrates, fallible) == true
22:03:49 -!- Guest6809 has quit (Quit: This computer has gone to sleep).
22:04:07 <myname> rdococ: that actually seems weird in the sense that predicates and instances look the same
22:04:07 <hppavilion[1]> rdococ: That works
22:04:48 <hppavilion[1]> rdococ: But your earlier ["y = 1": ["x = 1": ["y = 0"], "x = 0": ["y = 1"], "x = 0"]] would be an issue with how Logic Programming works
22:04:52 <myname> i.e. note that in prolog you cannot use fallible(human) in the same sense as fallible(X) :- human(X)
22:04:57 <hppavilion[1]> rdococ: However, that syntax might work well for type theory
22:04:58 <rdococ> interesting
22:05:13 <myname> also, if you like logic programming, have a look at curry
22:05:41 <hppavilion[1]> myname: A nice syntax would be fallible(X : human)
22:05:54 <hppavilion[1]> Which is syntactic sugar for fallible(X) :- human(X)
22:06:13 <myname> i don't think you'd need that kind of sugar
22:06:23 <hppavilion[1]> myname: It looks nice
22:06:30 <myname> it is not consistent with any syntax in prolog
22:06:47 <myname> and i find it less readable
22:06:53 <hppavilion[1]> myname: Fair enough
22:07:25 <myname> once you get that :- is an implication, prolog makes perfectly sense
22:07:36 <hppavilion[1]> rdococ: One thing prolog can't do is anonymous implication
22:07:41 <myname> that X: human syntax doesn't fit
22:07:52 <myname> also, how would you handle more complex expressions
22:08:02 <hppavilion[1]> And it has issues with anonymous predicates
22:08:22 -!- mihow has quit (Quit: mihow).
22:08:51 <hppavilion[1]> You can't do speciesHasAttr(S, A) :- species(S), (A(X) :- S(X))
22:09:18 <rdococ> is there a version with that?
22:09:38 <myname> that sounds weird in the same sense as rdococ's syntax
22:09:53 <myname> well, it's higher order
22:09:57 <hppavilion[1]> rdococ: No, because I don't think there's a known algorithm to unify those
22:10:07 <hppavilion[1]> rdococ: In fact, I would go so far as to say it's probably undecidable
22:10:20 <myname> afair it is
22:10:31 <myname> at least if you have binary relations
22:10:32 -!- tromp has quit (Quit: Konversation terminated!).
22:10:46 -!- Sgeo has joined.
22:10:47 <hppavilion[1]> myname: Yep
22:10:52 <myname> (undecidable, that is)
22:15:25 -!- mihow has joined.
22:21:17 <rdococ> hmm
22:23:57 <rdococ> father = parent and male
22:24:05 <rdococ> mother = parent and female
22:24:33 <myname> father(X, Y) :- parent(X), male(X)
22:25:13 <rdococ> son = parent(x)
22:25:25 <rdococ> or something
22:25:53 <myname> just look at prolog?
22:26:00 <myname> or, as i said, curry
22:26:14 <rdococ> parent(X, Y) :- child(Y, X)
22:26:23 <rdococ> child(Y, X) = parent(X, Y)
22:26:28 <rdococ> inverse prolog
22:27:11 <rdococ> nah
22:27:16 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
22:27:38 <rdococ> or with my syntax
22:27:43 <rdococ> [parent: [children]]
22:27:58 <rdococ> [sarah: [children: [bob]]]
22:28:00 <rdococ> or something
22:28:26 <myname> your syntax looks like a neat idea at first, but i'd say it would be just horrible to implement in
22:28:36 <myname> just take your parent: children
22:28:49 <myname> what do you do if they differ in arity?
22:28:58 <rdococ> arity?
22:29:06 <myname> number of arguments
22:29:17 <rdococ> what do you mean
22:29:21 <myname> like, parent only has one argument but children has two
22:29:57 <rdococ> so???
22:30:07 <myname> parent(X) would mean X is a parent. not telling about the kids. children(X, Y) would tell that X is the child of Y
22:30:28 <myname> how would you represent the missing information in your format of parent: children?
22:30:35 <rdococ> idk
22:30:43 <rdococ> it makes me tired just looking at it
22:31:03 <rdococ> hmm
22:31:07 <myname> go full curry :p
22:31:33 <myname> what could be wrong about a nondeterministic haskell derivate
22:31:49 -!- boily has joined.
22:31:50 <myname> x ? y = x
22:31:56 <myname> x ? y = y
22:32:05 <myname> default definition of ? in curry
22:32:13 <myname> so 0?1 is either 0 or 1
22:32:41 <myname> insert x ys = x:ys
22:32:53 <myname> insert x (y:ys) = y:insert x ys
22:33:06 <myname> will put an element randomly in a list
22:33:29 <rdococ> hmm
22:33:34 <rdococ> who needs data types
22:33:39 <rdococ> boolean = true ? false
22:33:48 <myname> permutation (x:xs) = insert x (permutation xs)
22:34:24 <rdococ> hmm
22:34:46 <rdococ> what about this
22:35:02 <myname> also: reverse f x' | f x == x' = x where x free
22:35:09 <myname> just reverses a function
22:35:31 <myname> "you want to make a parser? easy, make a print function and reverse it"
22:35:44 <rdococ> that actually works?
22:35:50 <myname> it does
22:35:56 <rdococ> what
22:36:04 <myname> last (xs ++ [e]) = e
22:36:07 <myname> also works
22:36:47 <rdococ> reverse reverse?
22:36:56 <rdococ> what happens if you reverse reverse
22:37:42 <myname> that would be: g x' | reverse x == x' where x free
22:38:05 <myname> doesn't make much sense
22:38:35 <myname> but go try it
22:41:24 <rdococ> hmm
22:41:44 <rdococ> I had this string substitution language
22:41:46 <rdococ> it went like this
22:41:53 <rdococ> true and true = true
22:41:59 <rdococ> true and $x = $x
22:42:04 <rdococ> $x and true = $x
22:42:11 <rdococ> false and $x = false
22:42:23 <rdococ> $x and $y = $y and $x
22:42:32 <rdococ> something like that
22:42:36 <myname> what is the last one for
22:42:47 <myname> the others look just like haskell
22:43:11 <myname> it's just the definition of && and ||
22:43:44 <rdococ> oh but mine was only that
22:43:56 <rdococ> no data types
22:44:08 <rdococ> just string subtitution
22:46:01 <rdococ> successor predecessor $x = $x
22:46:52 <rdococ> predecessor successor = successor predecessor
22:46:55 <rdococ> add $x $y = add (successor $x) (predecessor $y)
22:46:58 <rdococ> add $x 0 = $x
22:47:12 <rdococ> numerals in a couple of lines of code
22:49:27 <myname> still perfectly doable in haskell in the exact way
22:49:35 -!- Frooxius has quit (Quit: *bubbles away*).
22:49:45 <myname> in fact, at our university we let students do that thing
22:50:01 <myname> define natural numbers, implement addition and substraction
22:50:31 <rdococ> true
22:50:39 <rdococ> I guess mine's a stripped down version then
22:50:46 <rdococ> without data types
22:50:49 <rdococ> because
22:51:03 <myname> well, kind of
22:51:18 <myname> what you cannot do in your version is 1 and 0
22:51:25 <myname> because it doesn't match
22:51:32 <rdococ> 0 = 0
22:51:52 <rdococ> actually, no need to define 0
22:52:12 <myname> didn't say anything against it
22:52:24 <myname> i just said "1 and 0" is an alid expressioni
22:52:33 <myname> because none of your and-rules apply
22:53:09 <rdococ> data $x \= $y[] = (type $y = $x)
22:53:31 <rdococ> \=*
23:00:09 -!- jaboja has quit (Ping timeout: 276 seconds).
23:01:03 <rdococ> halts $x = huh...
23:02:52 -!- lleu has joined.
23:02:52 -!- lleu has quit (Changing host).
23:02:52 -!- lleu has joined.
23:07:31 -!- hppavilion[1] has joined.
23:07:48 <hppavilion[1]> rdococ
23:09:11 <rdococ> yeah?
23:12:29 -!- p34k has quit.
23:12:53 <hppavilion[1]> rdococ: Just alerting you to my returnedness. I was eating yogurt and thus had half access to one hand
23:13:10 <hppavilion[1]> http://dl.acm.org/citation.cfm?id=96559.96570 has &lgr; for some reason. I have no clue what that entity means
23:14:52 <hppavilion[1]> Anyone know what that means? It's not in Mathematical Operators, Miscellaneous Mathematical Symbols-A, or Miscellaneous Mathematical Symbols-B
23:15:58 -!- jaboja has joined.
23:18:34 <hppavilion[1]> Looks like it's a typo
23:18:55 <hppavilion[1]> It could be ≶ (&lg;)
23:20:04 <hppavilion[1]> Dammit, looks like the site I checked doesn't cover them all
23:20:11 <hppavilion[1]> All entities, that is
23:20:16 <hppavilion[1]> &lg; isn't listed
23:20:20 <rdococ> <>
23:20:43 <rdococ> hmm
23:20:47 <rdococ> a novel datatype
23:20:57 <rdococ> I got it!
23:21:07 <rdococ> datatype
23:21:15 <rdococ> INCR integer
23:21:23 <rdococ> integer + fraction
23:21:56 <rdococ> complex - real
23:22:43 <rdococ> x + y = z = z - y = z
23:23:08 <rdococ> egloblam
23:23:27 -!- tromp has joined.
23:23:29 <rdococ> Eglo Blam, the easiest language ever
23:24:38 <rdococ> so there is no turing complete machine with only one register?
23:24:39 <hppavilion[1]> rdococ: I vote we invent a Functor Calculus and call it the ð-calc
23:24:46 <hppavilion[1]> rdococ: There is
23:24:47 <rdococ> functor?
23:25:01 <rdococ> well there has to be
23:25:12 <hppavilion[1]> rdococ: It's called "Turing Machine with a Single Useless and Unusable Register"
23:25:16 <rdococ> lol
23:25:23 <rdococ> took the thoughts straight out of my head
23:25:44 <hppavilion[1]> rdococ: Exactly
23:25:48 <hppavilion[1]> rdococ: Wait, there is
23:25:52 <rdococ> but what if there's only that register
23:25:54 <rdococ> and nothing else
23:25:56 <hppavilion[1]> rdococ: It's a variant on the Minsky Machine
23:26:09 <rdococ> tell me more
23:26:12 <hppavilion[1]> rdococ: Then you have "An Extra Useless Register No One Wanted to Use"
23:26:18 <hppavilion[1]> rdococ: It's like a minksy machine
23:26:45 <hppavilion[1]> rdococ: But you also have cm(r, n) and cd(r, n)
23:26:52 <rdococ> cm and cd?
23:26:55 <hppavilion[1]> Where cm is constant multiply and cd is constant divide
23:27:16 <rdococ> cm(3)
23:27:26 <rdococ> incr r
23:27:30 <rdococ> cm r 23
23:27:32 <hppavilion[1]> rdococ: Oh, right, you don't need a regaddress :P
23:27:42 <rdococ> hmm
23:27:51 <hppavilion[1]> You only divide if it's divisible by that constant, and it enacts an alternate state transition on dividing
23:27:55 <hppavilion[1]> rdococ: ^important
23:28:06 <rdococ> an alternate state transition
23:28:08 <rdococ> uh
23:28:10 <hppavilion[1]> (I was trying to remember the caveat I was forgetting)
23:28:23 <hppavilion[1]> rdococ: The same way JZDEC follows an alternate state transition if r=0
23:28:34 <rdococ> to church? jk
23:29:27 <rdococ> could there be a declarative machine code?
23:29:51 <hppavilion[1]> rdococ: Yes
23:29:58 <rdococ> awesome
23:30:09 <hppavilion[1]> rdococ: TM descriptions are declarative
23:30:18 <rdococ> descriptions...
23:30:34 <rdococ> my TM brain is not so TC
23:30:44 <hppavilion[1]> rdococ: The things that describe which TM to use
23:30:57 <rdococ> hmm
23:33:29 <hppavilion[1]> rdococ: The real question is whether there could be an /interrogative/ machine code
23:39:30 <HackEgo> [wiki] [[BASICER]] N https://esolangs.org/w/index.php?oldid=46700 * Rdococ * (+1749) Introducing the Beginners' All-purpose Symbolic Instruction Code, Esoteric Revision! Which isn't Turing Complete! Yay!
23:40:06 <rdococ> or BSSIC by Beginners' Some-purpose Symbolic Instruction Code
23:40:22 <rdococ> not all purpose
23:41:33 <rdococ> omg
23:41:35 -!- XorSwap has joined.
23:41:47 <rdococ> I just realized that my other language PRINTASKSWITCHINPUTCASEXGOTOACASEYGOTOBELSEGOTOC has a dirty word in it by complete mistake
23:43:33 <coppro> that's not a dirty word
23:45:14 <hppavilion[1]> rdococ: You hadn't notice that until just now?
23:45:39 <rdococ> just noticed it
23:45:51 <hppavilion[1]> coppro: It's "got" I think
23:46:10 -!- jaboja has quit (Ping timeout: 244 seconds).
23:46:13 <hppavilion[1]> coppro: My 4th grade english teacher certainly would disagree with you
23:47:07 <coppro> what? there's nothing wrong with "asks"
23:48:22 <rdococ> uh, look after INPUT
23:48:27 <hppavilion[1]> coppro: I may have made this joke before, but who's ppro? Your dual?
23:48:30 <hppavilion[1]> rdococ: *sigh*
23:48:32 <coppro> hppavilion[1]: yes
23:48:45 <hppavilion[1]> rdococ: We were being funny
23:48:52 <rdococ> oh
23:48:57 <hppavilion[1]> coppro: No, I asked *who*
23:49:03 <rdococ> hppavilion[1], you're in an array?!
23:49:03 <hppavilion[1]> coppro: What's ppro like?
23:49:28 <hppavilion[1]> rdococ: No, hppavilion is a number and I'm calculating a range
23:49:36 <rdococ> oh
23:49:37 <hppavilion[1]> s/calculating //
23:49:57 <rdococ> hppavilion = 0
23:50:05 <hppavilion[1]> NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO-
23:50:11 -!- hppavilion[1] has quit (Quit: Leaving).
23:50:18 <rdococ> huh?
23:50:32 <rdococ> did I mess up the variable?
23:50:59 <rdococ> hppavilion = 1
23:51:17 * rdococ is concerned for a range? weird
23:51:17 -!- hppavilion[1] has joined.
23:51:34 <hppavilion[1]> rdococ: Don't do that again
23:51:36 <rdococ> hppavilion = 1
23:51:46 <hppavilion[1]> rdococ: People divide by me occasionally
23:52:06 <rdococ> what was hppavilion before I set it to 0
23:52:08 <hppavilion[1]> hppavilion = pi^(e*i)
23:52:11 <hppavilion[1]> Fixed
23:52:27 <rdococ> what would happen if I set you to 3?
23:52:35 <coppro> hppavilion[1]: I don't know
23:52:53 <rdococ> co(ppro)
23:53:09 <rdococ> coppro is a coroutine running ppro
23:53:34 <rdococ> I'm rdococ, a function removing a directory called ococ
23:53:39 <hppavilion[1]> rdococ: You could also be the coproduct of professionalism
23:53:46 <rdococ> he*
23:53:58 -!- lleu has quit (Read error: Connection reset by peer).
23:54:00 <rdococ> or you mean me?
23:54:11 <hppavilion[1]> rdococ: Whoops, coppro
23:54:45 <rdococ> oh
23:55:33 <rdococ> what about a system where computation is achieved by time travel
23:56:34 <boily> `wisdom
23:56:46 <rdococ> `? wisdom
23:56:57 <boily> `? `?
23:57:04 <rdococ> [bot: father]
23:57:09 <rdococ> now he's a deadBOT dad
23:57:33 -!- tromp has quit (Remote host closed the connection).
23:57:48 <rdococ> what about a language where programs are channels
23:58:05 <HackEgo> ​`? ¯\(°​_o)/¯
23:58:05 <HackEgo> tautology/A tautology is a tautology. Oren invented them.
23:58:05 <HackEgo> wisdom is always factually accurate, except for this entry, and uh that other one? it started with like, an ø?
23:58:31 <shachaf> `wisdom
23:58:32 <shachaf> `wisdom
23:58:33 <shachaf> `wisdom
23:58:37 <HackEgo> oklopol/oklopol "so i hear these blogs are getting popular, people like writing about their lives and shit. on this thing called the internet which is like a neural network only really stupid."
23:58:37 <HackEgo> identity function/The identity function is a mockingbird.
23:58:37 <HackEgo> 1/The 1 is just for disambiguation.
23:58:55 <boily> \oren\: he\\oren\. you invent things too?
23:59:45 <boily> I once used the loeb combinator to solve an "electric circuit" problem. the solution is quite neat ^^
23:59:52 <rdococ> `learn `? is a blue tit
23:59:55 <HackEgo> Relearned '`': `? is a blue tit
23:59:59 <rdococ> uh
2016-03-31
00:00:00 <rdococ> whoops
00:00:02 <rdococ> uh
00:00:04 <rdococ> oh no
00:00:06 <rdococ> what did I do
00:00:17 <rdococ> uh
00:00:18 <rdococ> fix it
00:00:19 <rdococ> someone
00:00:41 <rdococ> should I unlearn that?
00:01:12 <rdococ> hello?
00:01:21 -!- Lilly_Goodman has joined.
00:01:50 <shachaf> `revert
00:02:04 <HackEgo> rm: cannot remove `/home/hackbot/hackbot.hg/multibot_cmds/env/.hg/store/data/canary.orig': Is a directory \ Done.
00:02:21 <shachaf> `? `?
00:02:22 <HackEgo> ​`? ¯\(°​_o)/¯
00:02:45 <rdococ> `? `
00:02:48 <HackEgo> ​` is the prefix to greatness.
00:02:53 <rdococ> phew
00:03:26 <hppavilion[1]> rdococ: Here's an evil game idea
00:03:53 <hppavilion[1]> rdococ: There are two players running identical programs psedOSes
00:04:27 <hppavilion[1]> rdococ: The goal is to hack your enemy to the point that they're unable to play any further, and to continuously patch your computer to block incoming attacks
00:04:38 <hppavilion[1]> The code is badly-written and uncommented, and the docs are pretty poor
00:05:01 <hppavilion[1]> It's a monstrosity :)
00:05:11 <rdococ> so yo have to edit their program to do stuff?
00:05:55 <hppavilion[1]> rdococ: And your own program
00:06:00 <rdococ> and patch your own
00:06:04 <rdococ> crazy
00:06:05 <hppavilion[1]> rdococ: It's constrained by simulated compile time
00:06:17 <rdococ> but does it have to be simulated?
00:06:32 <hppavilion[1]> (Every line you add is an extra 5 seconds before the changes take hold)
00:06:36 <rdococ> do they have access to multiple programs?
00:06:40 <hppavilion[1]> rdococ: It does, if we want the computers to not die
00:06:43 <hppavilion[1]> rdococ: How so?
00:06:50 -!- Phantom_Hoover has quit (Remote host closed the connection).
00:06:57 <hppavilion[1]> rdococ: What do you mean "Multiple programs"?
00:07:14 <rdococ> you could edit one program of the other's computer, then edit another program while they're trying to patch the one you edited first
00:07:36 <hppavilion[1]> rdococ: I think you might be able to
00:07:39 -!- Lilly_Goodman has quit (Ping timeout: 264 seconds).
00:08:12 <rdococ> what about negative data
00:08:16 <hppavilion[1]> rdococ: There'd be "log::pt", which is a file documenting changes. You have to refresh it every so often.
00:08:25 <hppavilion[1]> rdococ: Oh, absolute value
00:08:32 <hppavilion[1]> Removing 10 lines is just as bad as adding 10
00:08:43 <hppavilion[1]> It wouldn't be line-by-line though, it'd be a sort of "AST measurer"
00:08:54 -!- Lilly_Goodman has joined.
00:10:25 <rdococ> why not actually simulate the program code in a sandbox environment?
00:10:37 <hppavilion[1]> rdococ: It would.
00:10:45 <rdococ> it'd be fun if each program had different languages
00:10:50 <hppavilion[1]> rdococ: YEEEEEEEEEEEEEES.
00:11:08 <hppavilion[1]> rdococ: We need to get on this
00:11:22 <rdococ> we could even have some esoteric ones
00:11:41 <hppavilion[1]> rdococ: Yes, that was a plan
00:11:44 <hppavilion[1]> (as easter eggs)
00:11:51 <hppavilion[1]> I think we should call it H4X1N470R-MP
00:12:01 <rdococ> also, hacking programming languages
00:12:13 <rdococ> what are lose conditions?
00:12:15 <hppavilion[1]> rdococ: Hacking programming languages?
00:12:22 <hppavilion[1]> rdococ: When you are no longer able to play
00:12:33 <hppavilion[1]> rdococ: Probably when all user input is disabled for the client
00:12:41 <hppavilion[1]> Well, the user-proper
00:12:49 <hppavilion[1]> Not sure how to test for that though...
00:13:25 <rdococ> hmm
00:13:47 <hppavilion[1]> rdococ: I mean, I can think of one way (recursive AST scanning), but it'd be buggy
00:23:35 <\oren\> suppose a program was defined solely by stating what it cannot do
00:25:26 <rdococ> then an empty program can solve the halting problem
00:25:40 <\oren\> or might do something elsr
00:26:01 <\oren\> an empty program is allowed to compile into any program whatsoever
00:26:51 -!- oerjan has joined.
00:28:37 <\oren\> then you have some formal language for specifying program behaviour in terms of logical statements, each of which is always required to be false.
00:30:24 <rdococ> a normal language would be one specifying true statements
00:30:43 <rdococ> right?
00:31:52 <rdococ> not exactly but
00:37:03 -!- Lilly_Goodman has quit (Ping timeout: 264 seconds).
00:37:31 <boily> HELLŒRJAN.
00:37:37 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
00:40:42 <oerjan> boħily
00:42:01 <boily> /ħ/ isn't a fun sound hth
00:44:37 -!- Sgeo_ has joined.
00:46:03 -!- Sgeo has quit (Ping timeout: 240 seconds).
00:46:31 <oerjan> boily: it's quantum!
00:47:20 <rdococ> hmm
00:47:29 <rdococ> talking about logical problems
00:48:45 -!- Sgeo__ has joined.
00:49:29 <oerjan> talking about the logical problems that don't talk about themselves
00:50:03 -!- Sgeo_ has quit (Ping timeout: 240 seconds).
00:58:16 -!- tromp_ has joined.
01:02:42 -!- tromp_ has quit (Ping timeout: 260 seconds).
01:09:10 -!- jaboja has joined.
01:13:12 -!- Lilly_Goodman has joined.
01:15:37 <rdococ> is this problem false?
01:15:47 <rdococ> normal computer: CRASH
01:16:35 <rdococ> quantum computer: There is a 60% chance that the problem is true, and a 39% chance it is false.
01:18:36 <oerjan> no
01:19:06 <rdococ> and a 1% chance that you're trying to crash me
01:20:12 <lifthrasiir> rdococ: no. this is not problem false
01:20:52 <lifthrasiir> the NLP module has learned to parse in the other way when the paradox arises
01:22:06 <rdococ> will you say no to this question?
01:22:30 <rdococ> normal computer: Fal--I mean tr--fa--tr
01:24:59 <boily> fungot: do you even paradox bro?
01:24:59 <fungot> boily: you want a high-quality fnord program in general. the general idea
01:25:16 <boily> fungot: that is enlightening. tdh.
01:25:17 <fungot> boily: this is an example from the wiki? looks suddenly sparse.) thanks for your answer. now you might have more luck rebinding space to enter when using the variable name
01:25:46 * boily rebinds the Sacrificial Space. “Fnord! Fnord! Fnord!”
01:29:57 <oerjan> `? fnord
01:30:02 <HackEgo> ​? ¯\(°​_o)/¯
01:30:40 <boily> huh. I thought we had a fnordwisdom in there.
01:30:46 <oerjan> ...
01:30:53 <boily> wait.
01:31:09 * boily facepalms
01:31:31 -!- mihow has quit (Quit: mihow).
01:31:37 <oerjan> THIS WENT BETTER THAN EXPECTED
01:32:34 <boily> embarassingly so.
01:32:51 -!- mihow has joined.
01:39:21 <quintopia> hmm
01:39:31 <quintopia> bonnenuily?
01:40:06 <boily> bontopiasoir!
01:40:13 * oerjan sits down to watch the temporal antipode effect
01:40:16 <boily> indeed. it's getting quite late, I say.
01:40:31 <quintopia> it's quite convenient
01:40:36 <quintopia> i can always know when he's going to bed
01:40:49 <rdococ> temporal antipode?
01:40:51 <rdococ> what's that
01:40:52 <boily> bonne nuitopia!
01:41:00 <oerjan> `? quintopia
01:41:03 <HackEgo> quintopia is our resident tl;dr generator. He is flooded by thundercats and thunderdogs. He is the temporal antipode of boily despite living on the same continent.
01:41:20 <quintopia> summer is only a few months away
01:41:29 <boily> speak to me of summer ♪
01:41:32 <quintopia> i'll go back in time 2 hours and overlap him a bit
01:41:38 -!- boily has quit (Quit: COMMITMENT CHICKEN).
01:41:52 <rdococ> oh I get it
01:42:00 <rdococ> wait
01:42:03 <rdococ> temporal antipode?
01:42:08 <rdococ> so opposite time?
01:42:12 <rdococ> oh
01:42:14 <rdococ> he's nocturnal
01:42:15 <rdococ> duh
01:42:31 <rdococ> even though it's 2:42 am where I am
01:42:51 <rdococ> which could be in africa
01:43:03 <oerjan> but is probably in britain
01:43:04 <rdococ> or on mars
01:43:04 -!- XorSwap has quit (Quit: Leaving).
01:43:10 <quintopia> what is rdococland?
01:43:14 <rdococ> it could be in britain too
01:43:21 <rdococ> rdococland?
01:43:33 <rdococ> good idea for a name to an esolang
01:44:06 <quintopia> yes but what real country would it be in
01:44:10 <quintopia> what city would it house
01:44:11 <rdococ> hmm
01:44:14 <rdococ> on mars
01:44:16 <rdococ> no
01:44:31 <rdococ> in magic yay world
01:44:37 <rdococ> colorful
01:45:13 <quintopia> rdococulous
01:45:37 <oerjan> fungot: is rdococ an AI or is there some other reason e's evading the question
01:45:37 <fungot> oerjan: anmaster must see.
01:45:39 <rdococ> I know it sounds duckoo but it's troo
01:45:55 <oerjan> Vorpal: fungot says you must see this hth
01:45:55 <fungot> oerjan: and no, that would explain why the video output isn't working properly
01:46:16 <rdococ> fungot: am I an AI?
01:46:16 <fungot> rdococ: sorry, didn't read properly. a question of whether the loop was loopzored", i wouldn't expect car and cdr returned copies, hmph.
01:46:41 <rdococ> fungot: I said, am I an AI emulating a human brain?
01:46:41 <fungot> rdococ: i like to use _, then __, then ___, et cetera; and no record type descriptor operations such as vector-ref vector-set!.
01:46:47 <rdococ> ...
01:46:48 <quintopia> what country do you currently reside, person currently to emself as rdococ?
01:46:57 <rdococ> rdococland
01:47:23 <rdococ> I told you, I reside in an esolang
01:47:30 <quintopia> i'll just pretend you live in the same country as the server you are connected to for ease
01:47:43 <rdococ> what server am I connected to
01:47:53 <quintopia> adams (budapest)
01:48:08 <oerjan> rdococ: shouldn't that be an esoland, really
01:48:13 <rdococ> oerjan: lol
01:48:18 <quintopia> speak to me of esolangs
01:48:36 <rdococ> see? I'm not from britain at all. I'm from rdococland.
01:48:45 <rdococ> the esoland
01:49:00 <oerjan> @time rdococ
01:49:01 <quintopia> which is located in budapest
01:49:12 <oerjan> hmph
01:49:14 <rdococ> it is?
01:49:17 <rdococ> I thought it was on mars
01:49:40 <rdococ> sorry, there are still a few bugs in me
01:49:48 <oerjan> no, on mars you find london and o'wobble. that's what i recall from Blackadder, anyway.
01:49:59 <rdococ> what?
01:50:15 <oerjan> it may have been the very last downer episode
01:50:30 <oerjan> he tries to get himself certified insane
01:50:47 <oerjan> by claiming he's from mars
01:51:12 <oerjan> alas, his superior is too smart/stupid
01:51:42 -!- Lilly_Goodman has quit (Ping timeout: 244 seconds).
01:52:53 -!- oerjan has set topic: Note: people with cloaks will be treated as if they're from Budapest | The international hub of esoteric programming language and font design | http://codu.org/logs/_esoteric/ http://tunes.org/~nef/logs/esoteric/?C=M;O=D | The kitten typesetting channel.
01:52:59 <quintopia> oerjan: is your palmaris longus present/discernible?
01:53:27 <oerjan> ironically, b_jonas doesn't have a cloak
01:53:42 <rdococ> huh
01:53:43 <rdococ> weird
01:54:43 -!- Lilly_Goodman has joined.
01:55:03 <oerjan> quintopia: is it that big vertical one on the wikipedia picture? if so, yes
01:55:35 <lifthrasiir> https://twitter.com/johnregehr/status/715089198819241984
01:55:42 <oerjan> if i flex my hand just right, anyway
01:57:26 <quintopia> right on
02:14:38 <Lilly_Goodman> HOla necesito una mega ayuda
02:15:17 <quintopia> Lilly_Goodman: nosotros no ayudamos en espanol
02:16:03 <Lilly_Goodman> quintopia es que quiero saber como decir la hora en ingles
02:16:31 <quintopia> the time
02:17:33 <izabera> google translate
02:17:54 <quintopia> tu eres en el canal incorrecto, sabes?
02:19:15 <quintopia> !bienvenido Lilly_Goodman
02:19:24 <quintopia> does that not work
02:19:30 <oerjan> `
02:19:45 <oerjan> quintopia: we've tried long ago
02:20:04 <Lilly_Goodman> quintopia quiero decir en ingles... son las nueve y media
02:20:09 <Lilly_Goodman> quintopia gracias
02:21:35 <quintopia> Lilly_Goodman: ir a un canal de habla espanola por favor
02:23:11 <quintopia> and it is nowhere near 9:30 here
02:23:59 <rdococ> ir a what
02:25:00 -!- Lilly_Goodman has quit (Ping timeout: 250 seconds).
02:26:14 -!- Kaynato has joined.
02:29:07 -!- Lilly_Goodman has joined.
02:31:01 <Lilly_Goodman> hola alguien me ayuda a decir que son las nueve y media... en ingles???????????
02:33:30 <rdococ> hola a what
02:33:38 -!- ChanServ has set channel mode: +o oerjan.
02:33:59 <rdococ> +oerjan
02:34:36 <Lilly_Goodman> ayuda
02:34:44 -!- oerjan has set channel mode: +b *!*canaima@*.dyn.movilnet.com.ve.
02:34:44 -!- oerjan has kicked Lilly_Goodman Tomar una pista.
02:35:06 -!- oerjan has set channel mode: -o oerjan.
02:35:36 <izabera> rude
02:35:44 <oerjan> izabera: she(?)'s been refusing to take a hint for over a week
02:36:49 <izabera> that doesn't make it less rude
02:37:18 <rdococ> -.-
02:37:27 <rdococ> why so many non english stuff
02:37:33 <oerjan> unless you're referring to "Tomar una pista" which i have no idea what means except it's what G.T. gives for "take a hint"
02:37:56 <izabera> i meant the ban
02:38:04 <rdococ> my brssim of dddipr rexhsaiuxzsted
02:38:40 <oerjan> izabera: i've been tempted for a week. she _refuses_ to speak in english, or to go anywhere people can understand her.
02:39:06 <rdococ> does she speak C?
02:39:07 <oerjan> (well, she apparently doesn't know english well enough.)
02:39:17 <rdococ> or Prolog?
02:39:48 <rdococ> ?- pun(programmingLanguage, linguisticLanguage)
02:39:48 <lambdabot> Maybe you meant: v @ ? .
02:39:58 <oerjan> also, those who _have_ tried to speak in spanish (mostly with G.T. which is horrible) have not been able to get any indication she's interested in our actual channel _topics_.
02:40:19 <rdococ> does she even know what this channel is about?
02:40:56 <oerjan> rdococ: well she's seen our `bienvenido message in spanish. i'm not sure she's at the point where she understands what it means.
02:41:52 <rdococ> haha "people with cloaks will be treated as if they're from Budapest"
02:42:13 <rdococ> oerjan: sounds like she uses google translate
02:43:20 <oerjan> izabera: she's either a strange troll or too maladapted for us to handle. i'm not sure.
02:43:37 <oerjan> rdococ: are you saying her spanish isn't right?
02:43:53 <rdococ> I was thinking she's faking it to be honest
02:44:08 <rdococ> since she didn't get the bienvenido message
02:44:13 <oerjan> rdococ: she hails from a venezuelan ip so it seemed logical it is her native language.
02:44:23 <rdococ> k
02:44:50 <oerjan> rdococ: could be though. however i meant "didn't get" as in pays no attention to it, as if she doesn't know what programming means.
02:45:09 <rdococ> hmm
02:45:10 <rdococ> okay
02:45:17 <rdococ> `? rdococ
02:45:19 <HackEgo> RDOCOCLIKESTOMAKELANGUAGESLIKETHIS
02:45:32 <rdococ> `learn rdococ Apparently from Budapest, but probably not.
02:45:38 <HackEgo> Relearned 'rdococ': rdococ Apparently from Budapest, but probably not.
02:45:57 <rdococ> `learn rdococ is apparently from Budapest, but probably not.
02:45:59 <HackEgo> Relearned 'rdococ': rdococ is apparently from Budapest, but probably not.
02:46:35 <rdococ> hmm
02:46:45 <rdococ> is there a programming paradigm that has not been done yet
02:47:00 <rdococ> oh what about
02:47:03 <rdococ> program-oriented
02:47:17 <rdococ> PrOgram-Oriented
02:47:57 <oerjan> paradigm-oriented, clearly.
02:48:07 <oerjan> (unless Oz is that)
02:48:10 <rdococ> how would that even work
02:48:14 <oerjan> i dunno
02:49:29 <oerjan> izabera: also, she said she had been banned from #canaima-social(?) so she's presumably grating even to those who _do_ understand her.
02:49:50 <izabera> i've been banned from a dozen channels
02:50:02 <rdococ> I think I have been banned from a few
02:50:07 <oerjan> >_>
02:50:12 <oerjan> OKAY
02:50:19 <rdococ> whut
02:51:28 <oerjan> ok i get it, getting banned is no proof of anythin (except maybe that you're weird but we all are here.)
02:51:32 <oerjan> *+g
02:52:26 <oerjan> or that they're shit channels.
02:53:51 <rdococ> defocus is a shit channel?
02:54:03 <oerjan> THOSE WERE ALTERNATIVES
02:54:20 <rdococ> oh my god -.-
02:54:26 <rdococ> I'm weird?
02:54:31 * oerjan perhaps shouldn't do joke shouting at this point
02:54:41 <oerjan> rdococ: like a platypus hth
02:54:53 <rdococ> what? I knew you weren't really angry
02:55:04 <oerjan> good, good
02:55:13 <rdococ> BUT I'M WEIRD?
02:55:19 <rdococ> Yay!
02:56:03 * rdococ yawns
02:56:03 <oerjan> yw
02:56:51 <HackEgo> [wiki] [[User:Rdococ]] M https://esolangs.org/w/index.php?diff=46701&oldid=46670 * Rdococ * (+14) yay added BASICER to my list
02:57:46 <rdococ> what do you think of BASICER?
02:58:10 -!- tromp_ has joined.
03:00:03 -!- lambda-11235 has joined.
03:03:15 -!- tromp_ has quit (Ping timeout: 276 seconds).
03:03:31 -!- heroux has quit (Ping timeout: 248 seconds).
03:03:41 <prooftechnique> I like the idea of a bas icer. Is that like a cake decorator who only does single layer cakes?
03:04:21 <Kaynato> rdococ: I am curious, what paradigm is Daoyu
03:04:24 -!- heroux has joined.
03:05:41 <rdococ> kaynato: dunno
03:05:51 <rdococ> proof: no, basicer
03:05:59 <rdococ> prooftechnique: my esolang
03:06:17 <prooftechnique> I know, I was making a very oblique joke
03:06:28 <prooftechnique> *hth
03:06:44 <rdococ> ha ha
03:06:46 <rdococ> base icer
03:07:04 <prooftechnique> I was thinking like bas relief, but yeah, the principle is the same
03:07:52 <Kaynato> Have I gotten a chance to show you the language I have made?
03:08:04 <rdococ> what is it?
03:08:15 <oerjan> BASRELIEF, the language you go to when you're just too fed up with BASIC
03:09:02 <Kaynato> Daoyu: https://esolangs.org/wiki/Daoyu
03:09:12 <prooftechnique> I'm trying to think of a way to implement conditionals with only GOTO just to make BASICER complete :D
03:09:28 <oerjan> prooftechnique: computed goto?
03:10:09 <prooftechnique> I don't think BASICER's goto can do that.
03:10:11 <oerjan> GOTO 100*(a>b)+200
03:10:13 <oerjan> ok
03:10:50 -!- tromp_ has joined.
03:11:23 <rdococ> wut
03:11:38 <prooftechnique> I guess they kind of already exist, if you take the user as an oracle
03:12:01 <rdococ> there are no variables, how do you expect conditionals
03:12:08 <oerjan> arthur-merlin model, with the user as merlin
03:13:56 <oerjan> *protocol
03:14:23 <Kaynato> @rdococ: is there a possibility you can help me with some C memory problems?
03:14:23 <lambdabot> Unknown command, try @list
03:14:38 <rdococ> why are you asking me
03:15:09 <Kaynato> You seem to be an experienced authority figure
03:15:16 <rdococ> I do?
03:15:28 <Kaynato> I...suppose?
03:15:41 <rdococ> :s
03:16:14 <rdococ> well, I'm about to fall asleep, and I don't know all that much, ask someone else
03:16:50 <Kaynato> Alright, thanks
03:16:53 <rdococ> but thanks for the compliment
03:17:31 <rdococ> channel.Sleep(awkward silence)
03:17:35 <oerjan> *chirp*
03:18:58 <oerjan> i'm sure there's some authority on C here.
03:19:08 <oerjan> i mean, there are IOCCC winners here.
03:19:26 <oerjan> this may or may not help in this case.
03:19:38 * oerjan pokes tromp_ and Gregor
03:19:55 <oerjan> (the latter only out of principle)
03:20:28 <oerjan> (and i'm not sure the former appreciates it either)
03:20:36 * rdococ snores loudly
03:20:52 <prooftechnique> Most surprisingly portable is a great honor
03:24:56 -!- shikhin has quit (Read error: Connection reset by peer).
03:25:24 -!- fungot has quit (Ping timeout: 246 seconds).
03:25:45 -!- sewilton has quit (Ping timeout: 246 seconds).
03:27:43 -!- Lymia has quit (Ping timeout: 246 seconds).
03:27:43 -!- fractal has quit (Ping timeout: 246 seconds).
03:27:43 -!- dingbat has quit (Ping timeout: 246 seconds).
03:28:54 -!- incomprehensibly has quit (Ping timeout: 246 seconds).
03:32:03 -!- jameseb has quit (Ping timeout: 246 seconds).
03:32:03 -!- nitrix has quit (Ping timeout: 246 seconds).
03:32:03 -!- glogbot has quit (Ping timeout: 246 seconds).
03:32:09 -!- esowiki has joined.
03:32:13 -!- esowiki has joined.
03:32:14 -!- esowiki has joined.
03:33:09 -!- esowiki has joined.
03:33:13 -!- esowiki has joined.
03:33:14 -!- esowiki has joined.
03:34:09 -!- esowiki has joined.
03:34:11 -!- glogbot has joined.
03:34:13 -!- esowiki has joined.
03:34:14 -!- esowiki has joined.
03:34:56 -!- sewilton_ has changed nick to sewilton.
03:35:27 -!- dingbat_ has changed nick to dingbat.
03:35:34 -!- tromp_ has quit.
03:36:13 <prooftechnique> ack
03:36:16 -!- nitrix- has quit (Changing host).
03:36:16 -!- nitrix- has joined.
03:36:20 -!- nitrix- has changed nick to nitrix.
03:36:31 -!- incomprehensibly has joined.
03:37:52 -!- tromp has joined.
03:39:05 -!- tromp has quit (Remote host closed the connection).
03:39:53 -!- tromp has joined.
03:47:35 <HackEgo> [wiki] [[Special:Log/newusers]] create * Kc kennylau * New user account
03:47:46 <HackEgo> [wiki] [[///]] https://esolangs.org/w/index.php?diff=46702&oldid=40418 * Kc kennylau * (+4) /* Binary to unary conversion */
04:01:19 <HackEgo> [wiki] [[Binary to unary conversion]] N https://esolangs.org/w/index.php?oldid=46703 * Kc kennylau * (+1729) Created page with "A '''binary to unary conversion''' program is a program that can convert a given number in binary form to a unary form. It is mainly used to showcase [[Markov algorithm]] ([ht..."
04:01:21 <HackEgo> [wiki] [[Retina]] https://esolangs.org/w/index.php?diff=46704&oldid=45838 * Kc kennylau * (+110)
04:01:59 <HackEgo> [wiki] [[Binary to unary conversion]] https://esolangs.org/w/index.php?diff=46705&oldid=46703 * Kc kennylau * (+28)
04:02:57 <HackEgo> [wiki] [[Binary to unary conversion]] https://esolangs.org/w/index.php?diff=46706&oldid=46705 * Kc kennylau * (+92) /* Retina */
04:03:17 <HackEgo> [wiki] [[Retina]] https://esolangs.org/w/index.php?diff=46707&oldid=46704 * Kc kennylau * (+103)
04:07:03 -!- tromp has quit (Ping timeout: 244 seconds).
04:28:33 -!- Kaynato has quit (Ping timeout: 240 seconds).
04:32:35 -!- mihow has quit (Quit: mihow).
04:47:00 <oerjan> @tell hppavilion[1] <hppavilion[1]> http://dl.acm.org/citation.cfm?id=96559.96570 has &lgr; for some reason. I have no clue what that entity means <-- it's a lambda hth
04:47:00 <lambdabot> Consider it noted.
04:51:06 <oerjan> @tell rdococ <rdococ> so there is no turing complete machine with only one register? <-- fractran.
04:51:06 <lambdabot> Consider it noted.
05:01:18 -!- ais523 has joined.
05:03:48 -!- fractal has joined.
05:04:32 -!- tromp has joined.
05:09:22 -!- lambda-11235 has quit (Quit: Bye).
05:23:14 -!- tromp has quit (Ping timeout: 260 seconds).
05:23:49 <ais523> https://api.left-pad.io/?str=test&len=12&ch=%22
05:23:55 <ais523> it got fixed :-D
05:32:29 <Sgeo__> ais523, that's clearly a semver violation, they should put a version number somewhere. I suggest in the domain name just after .io
05:32:58 <ais523> is it a semver violation if you don't /have/ a version number?
05:37:07 <coppro> is it a semver violation if you use one of the noncompliant examples from the spec?
05:37:19 <lifthrasiir> ais523: api.0.1.left-pad.io
05:37:27 <lifthrasiir> note that it is for the version 1.0
06:20:01 -!- tromp has joined.
06:22:28 -!- hppavilion[1] has joined.
06:26:27 -!- tromp has quit (Ping timeout: 260 seconds).
06:27:25 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
06:40:02 -!- tromp has joined.
06:45:45 -!- tromp has quit (Ping timeout: 268 seconds).
06:51:57 -!- lleu has joined.
08:21:49 -!- J_Arcane has quit (Ping timeout: 252 seconds).
08:42:08 -!- tromp has joined.
08:47:33 -!- tromp has quit (Ping timeout: 240 seconds).
08:49:42 -!- Effilry has changed nick to FireFly.
09:00:05 -!- ais523 has quit.
09:15:11 <b_jonas> brilliant! the ziped multiple html download of the POSIX spec from opengroup.org is so posixy it has two filenames that are equal case insensitively (_exit.html and _Exit.html) so you can't extract all of it on non-unixy file systems.
09:27:06 <oerjan> b_jonas: they may very well have the same contents, too
09:27:24 <oerjan> http://pubs.opengroup.org/onlinepubs/009695399/functions/exit.html describes those and exit
09:29:14 <oerjan> `fetch http://pubs.opengroup.org/onlinepubs/009695399/functions/_exit.html
09:30:01 <HackEgo> 2016-03-31 09:29:34 URL:http://pubs.opengroup.org/onlinepubs/009695399/functions/_exit.html [25309/25309] -> "_exit.html" [1]
09:30:01 * oerjan emulates fred astaire
09:30:05 <oerjan> `fetch http://pubs.opengroup.org/onlinepubs/009695399/functions/_Exit.html
09:30:08 <HackEgo> 2016-03-31 09:29:49 URL:http://pubs.opengroup.org/onlinepubs/009695399/functions/_Exit.html [25309/25309] -> "_Exit.html" [1]
09:30:24 <oerjan> `` diff _?xit.html
09:30:36 <HackEgo> No output.
09:30:39 <oerjan> `` diff _?xit.html
09:30:42 <HackEgo> No output.
09:30:49 <oerjan> b_jonas: yep
09:31:01 <oerjan> `` rm -v _?xit.html
09:31:03 <HackEgo> removed `_exit.html' \ removed `_Exit.html'
09:36:00 -!- jaboja has joined.
09:41:53 -!- jaboja has quit (Ping timeout: 244 seconds).
10:00:34 -!- jaboja has joined.
10:06:27 * oerjan thinks today's mezzacotta comic is strangely coherent.
10:09:14 <oerjan> i would recommend it to fungot, but e's not heeeeeeeeeeeeeAAAAA
10:26:19 <myname> mezzacotta?
10:28:51 <oerjan> http://www.mezzacotta.net/
10:38:32 -!- oerjan has quit (Quit: Later).
10:44:07 -!- tromp has joined.
10:46:15 -!- boily has joined.
10:49:46 -!- tromp has quit (Ping timeout: 252 seconds).
10:51:11 <myname> doesn't look that impressive
11:04:22 -!- jaboja has quit (Remote host closed the connection).
11:12:16 -!- dingbat has quit (Quit: Connection closed for inactivity).
11:20:16 -!- ^v has quit (Ping timeout: 264 seconds).
11:22:00 -!- boily has quit (Quit: ALMOST CHICKEN).
11:22:50 -!- ^v has joined.
11:22:51 -!- Deewiant has quit (Ping timeout: 244 seconds).
11:23:28 -!- Deewiant has joined.
11:46:32 <HackEgo> [wiki] [[Special:Log/newusers]] create * Midnightas * New user account
11:52:08 -!- Reece` has joined.
11:56:11 <HackEgo> [wiki] [[Pylongolf]] N https://esolangs.org/w/index.php?oldid=46708 * Midnightas * (+451) Created page with "= Pylongolf = Pylongolf is a simple stack-based language created by [http://midnightasgames.ga MidnightasGames]. == Adding to stack == Adding to the stack works differently t..."
11:56:25 -!- jameseb- has changed nick to jameseb.
12:05:22 -!- augur_ has quit (Read error: Connection reset by peer).
12:05:42 -!- augur has joined.
12:23:07 -!- ak48 has joined.
12:24:50 -!- ak48 has quit (Quit: node-irc says goodbye).
12:26:01 -!- Sgeo__ has quit (Ping timeout: 252 seconds).
12:29:25 -!- AnotherTest has joined.
12:40:03 -!- ^v has quit (Ping timeout: 248 seconds).
12:40:17 -!- augur has quit (Read error: Connection reset by peer).
12:40:55 -!- augur has joined.
12:41:03 -!- augur has quit (Read error: Connection reset by peer).
12:41:46 -!- augur has joined.
12:46:13 -!- tromp has joined.
12:46:57 -!- ^v has joined.
12:51:37 -!- tromp has quit (Ping timeout: 250 seconds).
13:09:34 <rdococ> am I the only one who didn't make a brain**** derivative when I first joined?
13:35:29 -!- Guest6809 has joined.
13:41:19 -!- p34k has joined.
13:48:41 <myname> no
13:48:53 <myname> i didn't do it either
13:50:48 -!- lambda-11235 has joined.
13:51:32 <b_jonas> rdococ: I still have to resist it VERY hard, because there's a good one I know but I want to make sure it's never made. I'll have to figure out how to do it elegantly without brainfuck, but I haven't yet.
13:53:03 <b_jonas> I'll probably have to adapt it to underload if possible.
14:04:34 <prooftechnique> rdococ: I have not made any esolangs, yet :v
14:06:34 <myname> did you made... any prooving technique
14:11:42 <prooftechnique> The only technique you need is "trust me" :D
14:18:56 <b_jonas> oh, the jedi trick?
14:19:17 <b_jonas> prooftechnique: but what do you do with those users who are immune to mind tricks?
14:19:48 <b_jonas> I bet we have some of those on this channel
14:20:42 <prooftechnique> Then you just invoke descent theory and everyone gives up
14:29:15 <HackEgo> [wiki] [[Evil]] https://esolangs.org/w/index.php?diff=46709&oldid=30837 * Kc kennylau * (+165)
14:35:24 <b_jonas> Question. On windows 10, how do I configure the system to not turn off the monitor so quickly when on the lock screen?
14:35:35 <HackEgo> [wiki] [[Evil]] https://esolangs.org/w/index.php?diff=46710&oldid=46709 * Kc kennylau * (+105) /* 0 to 255 using only a, e, u, z (To be completed) */
14:36:15 -!- J_Arcane has joined.
14:36:46 <b_jonas> I tried to change the "Power Options" in control panel, but that only lets me change how quickly the monitor turns off when the login isn't locked.
14:39:01 <b_jonas> Ah, I see
14:39:26 <b_jonas> I tried a google search, and I found some webpages mentioning strange registry entries.
14:39:48 <b_jonas> Although most of them are about Windows 8 and they don't seem directly applicable.
14:42:21 -!- spiette has joined.
14:42:46 <b_jonas> also found another webpage with a different solution that might work: https://support.microsoft.com/en-us/kb/2835052
14:43:32 <rdococ> hmm
14:45:15 <rdococ> I have trouble trying to turn up the brightness on my monitor
14:45:26 <rdococ> no matter what setting I set, it always looks the same
14:48:16 -!- tromp has joined.
14:50:01 -!- lambda-11235 has quit (Quit: Bye).
14:54:34 -!- tromp has quit (Ping timeout: 240 seconds).
14:57:02 -!- bender| has joined.
15:04:40 -!- Kaynato has joined.
15:06:53 <rdococ> is there a number system where 1/0 = infinity?
15:07:41 -!- AnotherTest has quit (Ping timeout: 250 seconds).
15:09:56 <jameseb> rdococ: not if you want the field axioms to be satisfied, I think
15:13:07 <rdococ> hmm
15:13:52 <rdococ> (x/y)*y = x
15:13:54 <rdococ> so
15:14:02 <rdococ> (x/0)*0 = x
15:14:15 <rdococ> x/y = x * (1/y)
15:14:24 <rdococ> that means x/0 = x * (1/0)
15:14:42 <rdococ> well, there will have to be multiple infinities
15:17:23 -!- Reece` has quit (Read error: Connection reset by peer).
15:22:32 -!- ^v has quit (Ping timeout: 260 seconds).
15:23:16 <rdococ> I always wondered why people keep talking about pi
15:23:22 <rdococ> I prefer the square root of 2
15:23:37 <rdococ> it is the everything number
15:24:36 <rdococ> or i
15:24:41 <rdococ> because it's the number of my dreams
15:25:41 -!- ^v has joined.
15:32:04 <rdococ> I want to make a mathematical system which doesn't calculate things normally so I can do square root of -1 without adding a special case
15:33:25 <rdococ> which I could do
15:33:34 <rdococ> in string substitution
15:33:53 <rdococ> sqrt ($x * $x) = $x
15:34:17 <rdococ> sqrt($x) * sqrt($x) = $x
15:34:20 <rdococ> I think
15:35:46 <rdococ> hmm
15:35:54 <rdococ> how would I make a super-turing complete programming language
15:39:39 <int-e> adding an oracle is the standard way of doing that
15:40:15 <int-e> if f(x) does not terminate then ...
15:40:51 <rdococ> but can we break that does not terminate super-complete instruction into smaller ones?
15:41:26 <rdococ> for example, are there other problems that turing complete machines can't solve?
15:42:44 <int-e> Well, most subsets of the natural numbers are uncomputable... so yes.
15:42:51 <int-e> The tricky bit is to define one.
15:43:35 <rdococ> well
15:43:38 <rdococ> the issue is
15:43:50 <rdococ> in any system that sounds logical
15:45:24 <int-e> Would an oracle for the n-th digit of the halting probability (for, say, binary lambda calculus) solve the halting problem... I'm afraid it does?
15:48:44 <rdococ> hmm
15:49:31 <rdococ> how do we divide the halting problem into smaller instructions? basically, a super turing complete language where you need more than one instruction to solve the problem
15:51:50 <rdococ> infact, why not just specify that it computes everything in a finite time
15:51:55 <rdococ> then it's super-turing complete
15:53:56 <int-e> "everything"
15:56:09 <rdococ> yes
15:56:31 <rdococ> programs that don't halt halt anyway
15:56:38 * int-e is actually hoping for a concrete definition of an oracle that's not computable but cannot solve the halting problem for TMs.
15:56:53 * rdococ wonders what an oracle is
15:57:23 <int-e> an external entity that answers interesting questions.
15:58:08 <rdococ> are you sure that the halting problem is even well defined?
15:59:34 <int-e> They're used in computability theory and also in complexity theory. For example a SAT oracle would take a boolean formula and immediately say whether it's satisfiable or not. So people talk about complexities relative to an oracle... P^{NP} would contain problems that can be solved in polynomial time and a polynomial number of queries to an NP oracle (which you can think of as a SAT oracle...
15:59:40 <int-e> ...because SAT is NP-complete).
16:00:16 <int-e> rdococ: yes, it is well-defined for Turing machines.
16:00:29 <rdococ> hmmm
16:00:55 <rdococ> hey, turing complete machines can solve it for finite state machines
16:03:11 <int-e> the "if f(x) halts" construct is not well-defined if you allow recursion, due to its circularity... f := loop while f halts.
16:03:39 <b_jonas> I don't understand this. In the rust standard library, why is std::process::Command.spawn not an unsafe function, when it starts a process with an arbitrary executable and so can indirectly cause arbitrary memory access on your process too.
16:04:24 <int-e> now who would do such things... :P
16:05:01 <int-e> also, what distinguishes the spawned processes from any other processes that are already running on the system?
16:05:15 <int-e> by that reasoning, all code is unsafe.
16:05:37 <int-e> (which is quite close to the truth, but not a useful distinction to make... lacking the distinction)
16:05:56 <b_jonas> int-e: sure, if you run unsafe code _once_, and it's not actually safe, then you can get undefined behavior _later_.
16:06:12 <b_jonas> but the point is that running only safe code shouldn't be able to do thtat
16:06:24 <int-e> b_jonas: note that I don't know what kind of safety Rust is trying to model
16:06:34 <b_jonas> so opening files or starting processes should count as unsafe
16:06:42 <b_jonas> int-e: that is described in the rust book and manuals
16:06:47 * int-e doesn't even know this with complete certainty for Haskell... where he's a bit of an expert.
16:06:47 <b_jonas> the safety model that is
16:07:13 <b_jonas> well, haskell is sort of different
16:08:15 <rdococ> function f() { while f halts { } }
16:08:20 <rdococ> does the function halt?
16:08:26 <rdococ> the function halts if it does not halt
16:08:34 <int-e> b_jonas: I was merely trying to clarify that I was voicing an opinion not based on fact but at best on common sense.
16:09:05 <rdococ> hmm
16:09:08 <rdococ> so what about this
16:09:09 <int-e> rdococ: I think I just wrote that, with slightly different syntaxc
16:09:10 <int-e> x
16:09:26 <rdococ> make evaluation not go through the whole thing, but just one step - for example
16:09:41 <rdococ> evaluate((3 + 2) + 1) = 5 + 1
16:09:43 <rdococ> not 6
16:10:13 <rdococ> hmm
16:10:52 <rdococ> pairs of functions that cancel each other
16:11:06 <rdococ> successor(predecessor(x)) = predecessor(successor(x)) = x
16:11:22 <rdococ> sqrt(x^2) = sqrt(x)^2 = x
16:11:59 <int-e> sqrt(x^2) = |x|
16:12:26 <rdococ> sqrt(-1^2) = 1
16:12:27 <rdococ> true
16:12:40 <int-e> > -1^2
16:12:41 <lambdabot> -1
16:12:48 <int-e> > (-1)^2
16:12:49 <lambdabot> 1
16:13:46 <rdococ> x * sqrt(y) = sqrt((x^2) * y)
16:13:49 <rdococ> right?
16:13:56 <int-e> if x >= 0
16:14:02 <rdococ> hmm
16:14:29 <int-e> (or y = 0)
16:14:37 <rdococ> so it works if y < 0?
16:14:49 -!- J_Arcane has quit (Ping timeout: 252 seconds).
16:14:58 <rdococ> 1 * sqrt(-1) = sqrt((1^2) * -1)
16:15:10 <int-e> it gets messy if you allow complex numbers
16:15:58 <rdococ> we could make a computer system that treats impossible numbers as if they were normal - basically a way to check if expressions evaluate to the same value without evaluating them
16:16:17 <rdococ> brb
16:18:09 <int-e> Because of branches... and arbkitrary choices for "principal values". (The same is true for real numbers, but there the mess can be reduced to just discussing signs.)
16:18:10 -!- bender| has quit (Read error: Connection reset by peer).
16:18:30 <int-e> `? arbkitrary
16:19:03 <HackEgo> arbkitrary? ¯\(°​_o)/¯
16:23:25 <b_jonas> fungot, are you arbkitary?
16:27:08 <rdococ> i^2 = j^2 = k^2 means i = j???
16:27:11 <rdococ> = k???
16:27:30 <coppro> no
16:27:59 <int-e> rdococ: are you looking at quaternions?
16:28:36 <rdococ> maybe
16:28:48 <rdococ> but it breaks rules I find comfortable
16:29:08 <coppro> rdococ: it's no different than 1^2 = (-1)^2
16:29:20 <rdococ> oh
16:29:21 <rdococ> okay
16:29:23 <rdococ> that makes sense
16:29:37 <int-e> rdococ: if so, note that multiplication there isn't even commutative, so (i-j)(i+j) = i^2 + ij - ji - j^2 != i^2 - j^2... so i^2 = j^2 does not even imply i = j or i = -j.
16:30:20 <int-e> (but the distributive laws continue to hold)
16:32:48 <int-e> (in fact, i^2 + ij - ji - j^2 = 2k whereas i^2 - j^2 = 0)
16:41:20 <\oren\> urgh slow compiling
16:42:01 <rdococ> :/
16:42:48 <\oren\> c++ seems to compile mmuch slower than an equivalent loc of c
16:43:25 -!- ais523 has joined.
16:43:32 <coppro> it does
16:43:36 <\oren\> i wonder how D and rust compare
16:43:49 <coppro> C++ needs to do semantic analysis during the parisng
16:43:51 <coppro> *parsing
16:44:04 <int-e> and expand templates during compilation
16:44:08 <rdococ> there's C, D, is there E?
16:44:16 <b_jonas> \oren\: you know there are compiler options to modify how quickly you compile, and in particular with gcc, -O (same as -O1) is great for improving compilation speed compared to -O2 (which does more optimizations)
16:44:21 <b_jonas> right?
16:44:21 <Kaynato> Could I ask for some c help?
16:44:25 <coppro> Kaynato: you can try ;)
16:44:32 <rdococ> I know there's F, perhaps G, idk about H or I, there is J, idk about K...well yet anyway
16:44:44 <b_jonas> also, don't use ancient versions of compilers, because some of those really are slow
16:44:51 <coppro> ^
16:45:02 <Kaynato> Ok, my program is crashing unexpectedly on typical input only of one sort
16:45:14 <b_jonas> rdococ: there are languages for every ascii letter, probably more than one language for half of them
16:45:15 <int-e> there's Lazy K.
16:45:18 <Kaynato> If I alter the input with inconsequential anything, it doesn't crash
16:45:24 <rdococ> okay
16:45:28 <rdococ> what about Unicode letters
16:45:29 <Kaynato> If I put it in gdb, it doesn't crash
16:45:36 <b_jonas> rdococ: and there is a quite famous apl-like called K, and there was some crazy language called E somewhere
16:45:39 <coppro> Kaynato: you have undefined behaviour somewhere, probably
16:45:50 <Kaynato> Sometimes it just crashes
16:45:54 <coppro> Kaynato: start by turning off optimizations
16:45:56 <Kaynato> Other times calloc doesn't want to allocate 4 bytes
16:46:05 <coppro> possibly run with ubsan
16:46:07 <\oren\> uninitialized varriables?
16:46:07 <coppro> or valgrind
16:46:20 <Kaynato> Optimizations are off, I am compiling for gdb
16:46:55 <Kaynato> All variables areinitialized
16:47:12 <coppro> use valgrind or ubsan
16:47:44 <rdococ> okay
16:47:45 <rdococ> what about this
16:47:46 <rdococ> ©
16:47:50 <\oren\> also check for division by zero
16:47:55 <rdococ> circle with a c in it
16:48:14 <Kaynato> I am using windows
16:48:39 <coppro> rdococ: it's the name of a programming language specialized for use in the entertainment industry
16:49:04 <Kaynato> Can I run valgrind on windows?
16:49:14 <ais523> I doubt it
16:49:16 <coppro> yeah
16:49:18 <ais523> even if you could, it only runs Linux binaries
16:49:19 <coppro> ubsan should work though
16:49:29 <ais523> msan is Valgrind-like and probably works on Windows
16:49:43 <ais523> (and msan and ubsan complement each other, they catch different classes of bugs)
16:49:45 <\oren\> which compiler are you using?
16:49:56 <Kaynato> gcc
16:50:04 <Kaynato> Ah, chrome's crashed
16:51:06 <int-e> at some point you should start ruling out hardware problems, not sure whether you've reached it yet
16:51:35 -!- tromp has joined.
16:51:58 -!- dingbat has joined.
16:52:24 <b_jonas> ouch... faulty RAM sucks
16:52:33 <b_jonas> it's hard to debug
16:53:02 <b_jonas> (but chrome crashing doesn't mean that much)
16:53:24 <b_jonas> Kaynato: check if maybe your system's memory use is so high that programs run out of memory.
16:53:35 <Kaynato> it is not
16:53:44 <int-e> it's not the most likely of causes... and it tends to produce intermittend rather than reproducible errors anyway
16:53:49 <b_jonas> or if the program you're running is allocating too much memory which is how it runs out.
16:53:52 <Kaynato> I mean, I can run this and have it allocate even a few mb
16:53:54 <b_jonas> int-e: yep
16:54:00 <Kaynato> it's just on this specific program that calloc fails for some reason
16:54:03 <int-e> intermittent
16:54:39 <b_jonas> Kaynato: usually that's just a memory corruption bug elsewhere in the program, eg. indexing past an array or using a stale or uninitialized pointer
16:55:04 <b_jonas> like a pointer to a freed object
16:55:53 -!- tromp has quit (Ping timeout: 244 seconds).
16:56:00 <Kaynato> it's really strange, I'm using really simple code and it causes this, while complex code doesn't
16:56:12 <Kaynato> I'll make a simpler example to see if the error is triggered
16:56:41 <Kaynato> Ok, so I can run the output file just fine
16:56:52 <Kaynato> But on the default of compile-interpret, it breaks
16:58:58 -!- hppavilion[1] has joined.
16:59:15 -!- mihow has joined.
17:01:06 <ais523> sounds like you have a memory corruption bug somewhere
17:01:19 <b_jonas> yep
17:01:46 <Kaynato> how do I run ubsan?
17:07:09 <ais523> Kaynato: try -fsanitize=address -fsanitize=undefined when compiling with gcc (you'll need a recent version of gcc)
17:07:23 <ais523> that'll turn on asan (which I called msan earlier due to misremembering the name) and ubsan
17:08:07 <ais523> then run your proram as normal
17:09:26 <ais523> I'm not sure if this works on Windows yet; hopefully it does though
17:10:19 -!- Kaynato has quit (Ping timeout: 244 seconds).
17:10:32 <ais523> oh, Kaynato probably didn't see my reply :-(
17:10:39 <rdococ> hmm
17:10:53 <rdococ> if I were to make an infinity, it would be a neutral number like 0
17:11:01 <rdococ> okay, if you call it a number
17:11:34 -!- Kaynato has joined.
17:12:35 <ais523> <ais523> Kaynato: try -fsanitize=address -fsanitize=undefined when compiling with<ais523> then run your proram as normal gcc (you'll need a recent version of gcc) <ais523> that'll turn on asan (which I called msan earlier due to misremembering the name) and ubsan <ais523> I'm not sure if this works on Windows yet; hopefully it does though
17:13:19 -!- lambda-11235 has joined.
17:13:27 <rdococ> infinity is basically the 0 that's 1/0
17:13:40 <rdococ> infinity is like a second 0
17:14:24 <Kaynato> Projective number line?
17:14:30 <rdococ> I heard of this projective circle thing that goes from 0 -> 1 -> 2 -> 3 -> infinity -> -3 -> -2 -> -1 -> 0
17:15:24 <ais523> rdococ: right, that's basically projective geometry
17:15:28 <ais523> it works in more dimensions than just 1D
17:15:47 <ais523> and has some other fun properties, e.g. going past infinity and back from the other side makes an object into a mirror image of itself
17:16:21 <rdococ> so you can have complex projective numbers and cool extra transformations?
17:17:47 <ais523> perhaps
17:18:01 <ais523> I'm not sure if it works with complex numbers rather than just x/y coordinates, but it probably does
17:18:06 <ais523> or, wait, no
17:18:08 <ais523> it isn't an x/y
17:18:13 <ais523> because infinity is a point, not a line
17:18:27 <ais523> err, no it is a line
17:18:28 <ais523> I think
17:18:30 <ais523> I'm confused
17:18:38 <rdococ> hmm
17:18:48 <rdococ> x/y is the same thing as the complex plane
17:18:53 <rdococ> at least I think it is
17:18:55 <ais523> in 2D projective geometry, there is one "point at infinity" for each angle a line can have
17:19:09 <ais523> two parallel lines intersect at the point at infinity for their angle
17:19:16 <ais523> so there is a line at infinity that contains all the points at infinity
17:19:20 <rdococ> can a triangle have one angle in infinity?
17:20:16 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
17:20:38 <Kaynato> An angle of infinity is not particularly meaningful
17:20:58 <Kaynato> Oh, misread
17:20:59 <Kaynato> Sorry
17:21:39 <Kaynato> ais523: Riemann sphere is the likely one you are thinking about for complex numbers
17:21:52 <ais523> could be
17:22:07 <ais523> I'm not an expert on projective geometry, I've hardly even seen references to it
17:22:35 <ais523> rdococ: I don't see why you couldn't have a triangle formed out of two crossing lines, with the third at infinity
17:23:32 <rdococ> sleepy
17:32:05 <int-e> ais523: because there's a whole line at infinity, and the two intersecting lines will intersect that one in different points.
17:32:46 <ais523> int-e: yes, thus forming a triangle
17:33:02 <ais523> one of the sides runs from one of the relevant points-at-infinity to the other
17:33:15 <int-e> ais523: oh, it wasn't clear that the line at infinity would be one of the sides
17:33:16 <ais523> the other two run from the points-at-infinity to a single point in "finite space"
17:33:20 <int-e> ais523: that's fine then
17:35:26 <int-e> oh, another parsing failure...
17:35:53 -!- oerjan has joined.
17:36:19 -!- lleu has quit (Quit: That's what she said).
17:39:33 <oerjan> @tell myname <myname> doesn't look that impressive <-- what do you mean, not impressive? all the panels share a theme despite not being just repetition of each other! (ok so the point is that it's usually far worse hth)
17:39:33 <lambdabot> Consider it noted.
17:41:14 <ais523> oerjan: this is a mezzacotta comic?
17:41:25 <oerjan> ais523: yeah
17:41:28 <oerjan> today's
17:41:56 <ais523> that's actually… mildly funny, at least
17:42:04 <ais523> you are right, it is unusually good for mezzacotta
17:42:14 * ais523 bakes it
17:42:51 <oerjan> yay
17:45:18 -!- Frooxius has joined.
17:45:54 -!- spiette has quit (Quit: :qa!).
17:46:58 <lambda-11235> An old stack based language I wrote a long time ago, https://github.com/lambda-11235/tstk.
17:47:20 <oerjan> <rdococ> am I the only one who didn't make a brain**** derivative when I first joined? <-- technically, have i ever? the one i added recently already existed with a different name.
17:48:32 <lambda-11235> If anyone's interested in looking at it.
17:48:46 <oerjan> i've certainly implemented a few, though. although i don't think i implemented brainfuck _itself_ until i did it in Fueue.
17:50:02 <ais523> oerjan: did you invent small-finite-tape BF?
17:50:10 <ais523> like, with a single-digit length?
17:51:10 <oerjan> lambda-11235: why does github show README.html unrendered...
17:51:30 <ais523> oerjan: because it's not a Markdown file and github doesn't render anything but markdown
17:51:33 -!- zadock has joined.
17:51:57 <oerjan> ais523: cannot imagine so, there was already a proof by someone else that 5 were enough after all.
17:52:13 <lambda-11235> oerjan: I wrote it a long time ago, and for some reason I decided to use html for the README.
17:52:39 <lambda-11235> That was long before I joined GitHub.
17:52:46 -!- tromp has joined.
17:52:47 <oerjan> hm
17:53:10 <ais523> b
17:53:15 <ais523> bleh
17:53:21 <ais523> backspace is next to return, as usual
17:53:29 <APic> B-)
17:53:43 <ais523> hmm, why am I apologising for my typos, I used to just send them to #esoteric without caring
17:53:49 <ais523> presumably I'm on better behaviour than normal
17:53:53 <lambda-11235> oerjan: Write a program to convert html to markdown, and call it markup.
17:53:58 <oerjan> ais523: and you invented reversible brainfuck before i needed it for jolverine
17:54:08 <ais523> oerjan: I didn't realise you needed it
17:54:27 <oerjan> lambda-11235: doesn't pandoc do that? maybe it only goes the other way.
17:54:52 * oerjan doesn't really know pandoc
17:55:06 <ais523> now you're making me want to work on rtfm again
17:55:16 <oerjan> ais523: jolverine is reversible and has a tape, so it seemed like the obvious thing to try...
17:55:29 <oerjan> (for the TC proof)
17:55:32 <ais523> (the basic idea is that it statistically analyzes text documents to work out what notation they use for headings, titles, etc., then converts into other formats)
17:55:42 <oerjan> and then i had to prove rev. bf TC first
17:55:43 <ais523> (I haven't even really started it yet, though)
17:57:06 <ais523> you know, looking at that page
17:57:15 <ais523> in retrospect I should probably define , to add the input to the current cell
17:57:22 <ais523> rather than crash the program if the current cell is nonzero
17:57:45 <oerjan> <ais523> presumably I'm on better behaviour than normal <-- hasn't that day passed
17:57:51 <oerjan> `? ais523
17:57:52 <lambda-11235> oerjan: Hold on, converting and tidying up the markdown.
17:57:55 <ais523> oerjan: it was earlier this month
17:57:57 -!- tromp has quit (Ping timeout: 246 seconds).
17:58:04 <ais523> however, I am sometimes well-behaved on other days too
17:58:04 <HackEgo> Agent “Iä” Smith is an alien with a strange allergy to avian body covering, which he is trying to retroactively prevent from ever evolving. On the 3rd of March, he's lawful good.
17:58:19 <oerjan> shocking
17:59:33 <oerjan> ais523: next you need to merge rtfm with aimake hth
17:59:50 <ais523> oerjan: it'd be possible
18:00:01 <ais523> aimake uses POD for documentation atm (both its own and that of programs it's installing)
18:00:32 <ais523> but that's partly because it ships with Perl, and partly because it's one of the few formats that has all the features that documentation really needs (the other is info and everyone hates info)
18:01:59 -!- idris-bot has joined.
18:02:11 <oerjan> i recall they changed the doc format for ghc last year.
18:02:35 <oerjan> although the new one _did_ lose a few features (deep nesting, i think)
18:02:51 <oerjan> but it was still considered a win.
18:03:02 <ais523> oh, hmm, asan and msan both exist and do different things, and valgrind does both those things
18:03:15 <ais523> (asan = check for addressability, msan = check for definedness)
18:05:23 <oerjan> from DocBook to ReStructuredText https://ghc.haskell.org/trac/ghc/wiki/UsersGuide/MoveFromDocBook
18:08:01 <oerjan> hm, email from norwegian tax authorities
18:09:23 <ais523> oerjan: well at least you're actually norwegian, so it makes more sense that you receive the email than that, say, I do
18:09:49 <oerjan> the spam filter marked it as possibly spam :P
18:09:56 <oerjan> but there's no link in it so...
18:11:29 -!- shikhin_ has changed nick to shikhin.
18:11:32 <oerjan> ais523: it's an email everyone gets, that the tax forms are ready
18:13:09 <oerjan> (everyone they've got email for, that is. i _almost_ managed to not use the official login long enough that they stopped considering my email valid)
18:13:58 -!- spiette has joined.
18:14:47 <lambda-11235> oerjan: Converted to markdown. How's that?
18:15:10 <oerjan> yay
18:16:07 <ais523> markdown annoys me
18:16:51 <ais523> there are three jobs you really want for a format like that: a) capable of representing arbitrary formatting; b) looks like a regular unformatted text file; c) easy for someone unfamiliar with the format to edit
18:16:57 <ais523> and it pretty much fails at all three
18:18:27 <oerjan> that's what they call an excellent compromise hth
18:20:08 <ais523> I've been considering making my own, going all-in on b) and only aiming for the other two to the extend they don't interfere
18:20:24 <ais523> was considering going so far as to allow people to write directives as sequences of spaces and tabs at the end of lines, Whitespace-style
18:25:36 <int-e> schlock in a holding cell, what did I miss?
18:25:37 <lambda-11235> ais523: I would want something that goes for a. A kinda of markup language that's turing complete with arbitrary drawing capabilities.
18:25:42 <b_jonas> ais523: I don't think perldoc has all the features that documentation needs. there's one feature I'm really missing
18:26:05 <ais523> lambda-11235: like HTML+JS, but less insane?
18:26:07 <ais523> b_jonas: go on
18:26:22 <int-e> (probably have to wait for the next strip for an explanation... sigh)
18:27:01 <b_jonas> well, at least with the current perldoc interpreters. it's possible that it could be fixed in the future by changing those.
18:27:11 <lambda-11235> ais523: I considered that, but yes, it needs to be more sane, and prettier to look at.
18:27:15 <ais523> b_jonas: you still haven't told me what the feature /is/
18:27:54 <lambda-11235> Like LaTeX, but easier to program and do graphics in.
18:28:04 <b_jonas> you know how perl has =begin and =for directives to put renderer-specific parts in a perldoc, so you can say something like eg. =for *HTML \n <img href="someimage.png"> to embed an image in HTML output
18:28:15 <ais523> yes
18:28:20 <ais523> =for aimake manualsection 6
18:28:37 <b_jonas> The feature I'm missing is the same thing in negative, so that you can easily put fallbacks for other renderers
18:29:04 <b_jonas> it's possible to do this for some renderers by putting the fallback text unconditionally and using some renderer-specific method to hide that text
18:29:04 <ais523> a "=for everythingelse"?
18:29:11 <b_jonas> ais523: no, more like a =for !HTML
18:29:26 <ais523> that wouldn't be useful unless you could hide from two or more renderers at once
18:29:32 <b_jonas> ais523: you can with =begin
18:29:40 <b_jonas> ais523: non-starred =being blocks can be nested
18:29:56 <b_jonas> obviously =for !HTML is the wrong syntax for it, because it's not backwards compatible
18:30:05 <int-e> `? markdown
18:30:13 <HackEgo> markdown? ¯\(°​_o)/¯
18:30:35 <int-e> `le/rn markdown/What will your markdown flavor be today?
18:30:46 <HackEgo> Learned «markdown»
18:30:48 -!- zadock has quit (Ping timeout: 276 seconds).
18:30:55 <b_jonas> we could use something like =for begin !\nHTML\n\n ... \n\n=for end !
18:31:08 <b_jonas> which would be ignored by existing renderers
18:31:19 <b_jonas> so the text inside would be kept
18:31:58 <b_jonas> you can still do specific hacks like =for HTML\n<!-- comment the fallback text (let's hope the HTML renderer doesn't emit a comment itself)\n\n
18:32:42 -!- lambda-11235 has quit (Ping timeout: 260 seconds).
18:33:07 <int-e> `le/rn markdown/The markdown flavor of the day is raspberry.
18:33:13 -!- hppavilion[1] has joined.
18:33:18 <HackEgo> Relearned «markdown»
18:33:54 <oerjan> `` ls wisdom/password
18:33:56 <HackEgo> wisdom/password
18:33:57 <oerjan> er
18:34:02 <oerjan> `` ls -l wisdom/password
18:34:03 <HackEgo> ​-rw-r--r-- 1 5000 0 39 Mar 5 17:33 wisdom/password
18:34:14 <ais523> `? password
18:34:15 <HackEgo> The password of the month is qjkxbmwvz
18:34:19 <b_jonas> although it'd probably rather have to be \n\n=for *begin !\nHTML\n\n ... \n\n=for *end !\n\n with a star because it's a paragraph of non-pod content
18:34:24 <oerjan> a bit early to change.
18:34:39 <ais523> oerjan: is this related to our spam filter?
18:34:54 <oerjan> ais523: almost certainly not.
18:34:59 <ais523> ah right
18:35:07 <ais523> on another site I use which has a wiki
18:35:18 <ais523> they put a password on their main site, behind a login
18:35:25 <ais523> as in, the site stated the password
18:35:36 <ais523> and the wiki CAPTCHA asked for it
18:36:00 <ais523> I was thinking that if we had real spambot trouble on the wiki we could make it ask for a wisdom entry
18:36:06 <ais523> so that people would have to come onto IRC to sign up
18:36:07 <b_jonas> Can I ask about web development here?
18:36:10 <ais523> (the CAPTCHA seems to be holding atm)
18:36:18 <ais523> b_jonas: it really depends on what the question is, I imagine
18:36:36 <oerjan> ais523: the CAPTCHA wasn't holding a while ago, but the filters did.
18:36:36 <b_jonas> nah, I should try to search first because they're FAQs
18:37:27 * oerjan checks the abuselog
18:37:51 <oerjan> ais523: captcha still not holding
18:38:24 <oerjan> although i suspect fizzie hasn't tried changing it since he realized they were just solving them fast
18:38:55 <ais523> huh, one of those is a new spambot from the edits, just seems to be caught into an old filter
18:39:08 <ais523> in particular, it is trying to vandalize legitimate users' userpages
18:39:26 <ais523> but still doesn't know how to newline
18:40:07 <oerjan> yeah
18:40:18 <ais523> I'm glad we have AbuseFilter, that's a huge amount of spam we'd have to clear up manually otherwise
18:41:26 <ais523> you know, it's almost worth blocking 91.200.12.0/24 at this point
18:41:32 <ais523> lots of spam is coming from that range
18:42:26 <ais523> remarks: The pool is used other Department! remarks: In case of questions related to SPAM, HACKING, SECURITY remarks: Please contact directly abuse@vhoster.net
18:42:51 -!- zadock has joined.
18:42:56 <b_jonas> ais523: if you block it, the spam will come from other ranges you don't know about, so it's not worth blocking until they actually make edits
18:43:18 <ais523> b_jonas: they're making a ton, they're just all getting caught in the filter
18:43:19 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
18:43:23 <ais523> the block would help prevent them spamming up the spam filter :-P
18:43:42 -!- zadock has quit (Remote host closed the connection).
18:44:11 -!- MoALTz has joined.
18:44:32 <b_jonas> ais523: right
18:44:55 <oerjan> ais523: btw i lost patience and banned Lilly_Goodman earlier, izabera thought it was rude though.
18:44:57 <int-e> the first page holds 2 weeks of edits...
18:45:08 <APic> ais523: /me would put „CRACKING“ or „BLACK-HAT-HACKING“ there instead of „HACKING“ ;)
18:45:15 <ais523> oerjan: on the wiki or IRC? I don't recognise the name
18:45:21 <ais523> APic: I didn't write it
18:45:36 <ais523> that also isn't the only error
18:45:39 <ais523> the grammar is not very good
18:45:49 <APic> Ok
18:46:39 <oerjan> irc
18:46:46 -!- hppavilion[1] has joined.
18:46:51 <int-e> ukraine, eh
18:47:01 <APic> IRC > *
18:47:18 <oerjan> ais523: you accidentally avoided seeing em active, i guess
18:47:40 <oerjan> it was one of the canaima users, just one who refused to accept that we didn't speak spanish
18:47:55 <ais523> canaima?
18:48:12 <oerjan> and who showed no indication of grasping what the channel was about
18:48:12 <hppavilion[1]> ais523: It's a gaming platform, I think
18:48:28 <oerjan> ais523: the venezuelan OS that sends us all the spanish-speakers
18:48:29 <hppavilion[1]> oerjan: Lily_Goodman still logs in every so often
18:48:42 <ais523> oerjan: why is a venezuelan OS pointing spanish speakers at this channel?
18:48:46 <hppavilion[1]> oerjan: I've tried to get her to leave, but she doesn't seem to understand
18:48:56 <hppavilion[1]> ais523: I assume "esoteric" is a word in other languages
18:48:59 <hppavilion[1]> @messages-lud
18:48:59 <lambdabot> oerjan said 14h 1m 58s ago: <hppavilion[1]> http://dl.acm.org/citation.cfm?id=96559.96570 has &lgr; for some reason. I have no clue what that entity means <-- it's a lambda hth
18:49:09 <hppavilion[1]> oerjan: OOOOOOOOOOH!
18:49:18 <ais523> @messages-quiet
18:49:18 <lambdabot> Unknown command, try @list
18:49:20 <ais523> oh good
18:49:25 <oerjan> ais523: my latest theory is that it's just because #esoteric comes just before #espana alphabetically
18:50:04 <oerjan> ais523: @messages alone is quiet
18:50:15 <ais523> oerjan: I was testing the parser, not the functionality
18:50:26 <ais523> I don't actually have any messages right now
18:50:33 <oerjan> so perhaps people search for channels starting with #esp and it just shows up in the same window
18:50:36 <b_jonas> oerjan: oh, we could solve that by setting up a channel between the two
18:50:51 <hppavilion[1]> b_jonas: We should do that
18:51:13 <oerjan> (this theory improves on the old one in that it doesn't require the canaima OS to include us erroneously)
18:51:13 <int-e> to be fair, extra-sensual phenomena are kinda esoteric
18:51:24 <int-e> or is that sensory
18:51:34 <oerjan> b_jonas: well, they might still have a channel list, so it might not be picked up
18:52:03 -!- AnotherTest has joined.
18:52:15 <b_jonas> oerjan: sadly it's not so simple. there are channels between, including #esperanto and #esprima and others, but they're not very popular
18:52:23 <b_jonas> so we have to set up a POPULAR channel in between
18:52:28 <hppavilion[1]> b_jonas: Dammit
18:52:31 <b_jonas> one that search bots rate high
18:52:55 <hppavilion[1]> b_jonas: But not as high as #esoteri
18:52:56 <hppavilion[1]> c
18:53:11 <b_jonas> oerjan: do you know what client they use? webchat or not, and which webchat?
18:53:32 <oerjan> btw s/OS/linux distribution/
18:53:54 <ais523> b_jonas: those aren't in between
18:54:06 <ais523> "esperanto" comes after "espana" and afet "esoteric"
18:54:09 <ais523> *after
18:54:30 <ais523> however, #esoteric-offtopic is between #esoteric and #espana
18:54:42 <ais523> wait, it doesn't exist
18:54:45 <ais523> #esoteric-blah then?
18:54:47 <hppavilion[1]> https://en.wikipedia.org/wiki/Canaima_%28operating_system%29
18:55:19 <b_jonas> ais523: #esp8266 then
18:55:22 <b_jonas> and you're right
18:55:22 <oerjan> btw the automatic ban irssi chose is wide enough that it _might_ block a large number of canaima users. i'm not sure whether that is a bad thing at this point.
18:55:25 <ais523> I was last there in 2014
18:55:32 <b_jonas> although that could depend on the locale
18:56:18 <hppavilion[1]> The Venezuelan Government prioritizes FOSS in their administration
18:56:23 * hppavilion[1] is moving to Venezuela now
18:57:39 <b_jonas> hppavilion[1]: that's usually just a lie they tell in the news meaning that they don't want to pay money for the MS Office licenses this year but also don't help the administration people or bosses in any way for what they should do if they don't get licenses
18:57:51 <b_jonas> (or at least that's how it works here)
18:58:19 <hppavilion[1]> b_jonas: Yes, but the official story is comforting enough
18:58:26 <oerjan> <hppavilion[1]> ais523: I assume "esoteric" is a word in other languages <-- it's greek, so has been borrowed a lot. spanish seems to have it as esotéric{o,a}s?.
18:58:59 <ais523> hppavilion[1]: the Venezuelan economy is in shambles
18:59:04 <ais523> they basically based the whole thing around oil
18:59:09 <hppavilion[1]> Iceweasel. Iceweasel is a thing.
18:59:18 <ais523> then when the oil price collapsed they became a lot poorer
18:59:21 <hppavilion[1]> I'm making a browser called WaterOwl or something.
18:59:33 <hppavilion[1]> ais523: They still use Linux in government, so...
18:59:45 <hppavilion[1]> I mean, we have shitty Ubuntu laptops at my local High School
18:59:51 <hppavilion[1]> s/laptops/netbooks/
19:00:30 <oerjan> <ais523> oerjan: I was testing the parser, not the functionality <-- afaik it will recognize either (1) a prefix of a unique command, or otherwise (2) edit distance <= 2 with unique best hit.
19:00:57 <b_jonas> oerjan: but wait, if they don't have canaima installed, then what sets their irc username to canaima?
19:01:32 <hppavilion[1]> b_jonas: They actually use canaima
19:01:47 <b_jonas> oerjan: although the two explanations aren't exclusive, they can use canaima but also look in some channel list
19:01:48 -!- Phantom_Hoover has joined.
19:02:16 -!- dingbat has quit (Quit: Connection closed for inactivity).
19:02:23 <oerjan> <b_jonas> oerjan: do you know what client they use? webchat or not, and which webchat? <-- gah i checked but i've forgot
19:03:07 <b_jonas> oerjan: wait... what if their software lists channels from some centralized canaima irc client list of most popular channels, so it's just a random channel that is popular among canaima irc users because the previous users clicked on that channel too, and that irc client is so bad that no sane person uses it
19:03:49 <b_jonas> oerjan: also worth checking when they join is what other channels they're joined to
19:04:36 <b_jonas> shouldn't we have the wiki url in the channel topic?
19:06:56 <rdococ> we should take a vote on what everyone thinks is the "circle constant"
19:07:35 <hppavilion[1]> rdococ: Like pi vs. tau?
19:07:40 <hppavilion[1]> rdococ: It's pau.
19:07:44 <rdococ> hppa: well, you can pick any number
19:07:48 <hppavilion[1]> rdococ: Oh
19:07:49 <hppavilion[1]> rdococ: i
19:07:55 <rdococ> I choose i, or square root of 2
19:07:57 <hppavilion[1]> (pii?)
19:08:03 <hppavilion[1]> rdococ: sqrt(i)
19:08:09 <oerjan> i'm with hppavilion[1] on i.
19:08:31 <hppavilion[1]> rdococ: I'm attempting to make a shell
19:08:32 <rdococ> the square root of i? I think it's, um,
19:08:39 <oerjan> because e^(ix) gives a circle q.e.d.
19:08:53 <hppavilion[1]> oerjan: Good point
19:08:56 <rdococ> it's crazy how e is related to circles...what is e even defined as?!
19:09:05 <hppavilion[1]> rdococ: It's the root of the natural logarithm
19:09:11 -!- Kaynato has quit (Ping timeout: 244 seconds).
19:09:15 <hppavilion[1]> rdococ: ln(x) = log[e](x)
19:09:23 <ais523> oerjan: was checking logs, she was here yesterday but before that wasn't here for over a week
19:09:25 <rdococ> why is it?
19:09:28 <oerjan> b_jonas: someone snipped all the urls except the log ones a while ago
19:09:33 <hppavilion[1]> rdococ: Because euler says so
19:09:39 <ais523> so it's not a case of being persistent, but rather of checking back every now and then to see if the channel is Spanish again yet
19:09:45 <rdococ> pi is the area of a unit circle, tau is the --wait, do we even need a circle constant?
19:09:50 <b_jonas> oerjan: well the log url definitely has to be there
19:10:01 <hppavilion[1]> rdococ: You can use e^(ix) to prove that i^i is real
19:10:03 <oerjan> ais523: right, she went away for easter.
19:10:17 <hppavilion[1]> e^(ix) = -1
19:10:18 <b_jonas> (plus we should put both urls in a CHANSERV #esoteric PROPERTY SET too)
19:10:20 <hppavilion[1]> Wait, no
19:10:21 <b_jonas> (just in case)
19:10:43 <rdococ> e^i*pi = -1
19:10:45 <hppavilion[1]> e^(iπ) = -1
19:10:50 <rdococ> hmm
19:11:05 <hppavilion[1]> rdococ: The general form is e^(ix) = cos(x)+isin(x)
19:11:25 -!- Kaynato has joined.
19:11:27 <rdococ> how on earth do you get cosine and sine from e?
19:11:32 <ais523> what's ln i anyway
19:11:43 -!- b_jonas has set topic: The international hub of esoteric programming language and kitten typesetting | logs: http://codu.org/logs/_esoteric/ http://tunes.org/~nef/logs/esoteric/?C=M;O=D | http://esolangs.org/ | Note: people with cloaks will be treated as if they're from Budapest.
19:11:54 <hppavilion[1]> Wait, hm...
19:11:58 <rdococ> e^(ix) = e^(sqrt(-1)x)
19:12:10 <ais523> rdococ: multiplying by e^i is basically a rotation of 1 radian
19:12:16 <rdococ> ik
19:12:21 <ais523> thus e^it describes a circle
19:12:21 <hppavilion[1]> rdococ: So e^(ix) where x=π/2 is cos(π/2)+sin(π/2)
19:12:27 <hppavilion[1]> s/sin/isin/
19:12:31 <ais523> if you take the x and y coordinates of a circle you get sin and cos
19:12:37 <rdococ> I know
19:12:43 <rdococ> but where does e come into it?
19:12:45 <oerjan> > sqrt (0 :+ 1)
19:12:46 <lambdabot> 0.7071067811865476 :+ 0.7071067811865475
19:12:56 <rdococ> put it this way, why is x^i so special when it comes to e?
19:12:56 <ais523> rdococ: it's more in reverse, e is defined as the number that makes this work
19:12:58 <hppavilion[1]> > cos(pi/2)
19:13:00 <lambdabot> 6.123233995736766e-17
19:13:03 <rdococ> it is?
19:13:08 <hppavilion[1]> We can assume that's 0 because rounding erros
19:13:12 <hppavilion[1]> > sin(pi/2)
19:13:14 <lambdabot> 1.0
19:13:25 <hppavilion[1]> so e^(i(π/2)) = i
19:13:26 <rdococ> how would exponentation do that
19:13:29 <hppavilion[1]> If we raise both sides to i
19:13:35 <rdococ> actually, who needs angles
19:13:50 <ais523> rdococ: well you know how the derivative of e^x is e^x?
19:13:56 <rdococ> I want 1/sqrt(2) + i/sqrt(2) of that pie
19:14:04 <hppavilion[1]> We get (e^iπ/2)^i = e^((i^2)(-π/2)) = e^(-π/2)
19:14:11 <ais523> without any scaling, like you get if you use a number other than e?
19:14:12 <rdococ> the derivative of e^x is e^x? wow
19:14:16 <hppavilion[1]> That's equal to i^i
19:14:18 <hppavilion[1]> Therefor
19:14:18 <ais523> the derivative of sin x is cos x
19:14:24 <rdococ> right
19:14:25 <hppavilion[1]> Since e^(-π/2) is clearly real
19:14:26 <ais523> so the fourth derivative of sin x is sin x
19:14:27 <int-e> rdococ: only with respect to x
19:14:28 <hppavilion[1]> i^i is also real
19:14:31 <hppavilion[1]> Q.E.D
19:14:40 <ais523> this means that repeatedly differentiating a sin or cos doesn't change the magnitude of the answer
19:14:41 <rdococ> the fourth derivative of sin x is sin x, right...?
19:14:53 <rdococ> hmm
19:14:55 <ais523> same with e^x, and with no other base of an exponential
19:15:01 <rdococ> interesting
19:15:10 <b_jonas> ais523 or oerjan: can you put the three urls into a chanserv property, eg. /quote CHANSERV :#esoteric SET PROPERTY LOGS http://codu.org/logs/_esoteric/ http://tunes.org/~nef/logs/esoteric/?C=M;O=D
19:15:12 <ais523> so really you have to end up with e in the base if you implement sin and cos in terms of exponentials, otherwise they'd be changing the magnitude
19:15:20 <ais523> b_jonas: that's two URLs
19:15:21 <hppavilion[1]> rdococ: Are you impressed?
19:15:22 <ais523> :-P
19:15:26 <rdococ> um
19:15:34 <ais523> also nobody bothers to check chanserv properties
19:15:35 <hppavilion[1]> rdococ: Or must I retype it?
19:15:38 <rdococ> so why does e^i do what it does?
19:15:39 <ais523> it needs to be in the topic or the join message
19:15:49 <rdococ> I'm more confused about exponentiation by i
19:15:51 <b_jonas> ais523: the third is to a separate property: /quote CHANSERV :#esoteric SET PROPERTY WEB http://esolangs.org/
19:16:07 <b_jonas> ais523: "nobody bothers to check chanserv properties" => that's exactly why they're esoteric
19:16:11 <int-e> the wisdom link is gone too
19:16:38 <b_jonas> `? logs
19:16:48 <HackEgo> I think you might mean !logs
19:16:56 <rdococ> um
19:17:04 <b_jonas> !logs
19:17:24 <ais523> how do you even read channel properties anway?
19:17:27 -!- lambda-11235 has joined.
19:17:34 <b_jonas> ais523: CHANSERV INFO #esoteric
19:17:38 <ais523> oh, c/s taxonomy
19:17:45 <ais523> */cs taxonomy
19:17:57 <ais523> anyway there doesn't seem to be a standard for channel properties
19:19:44 <oerjan> <ais523> same with e^x, and with no other base of an exponential <-- (1/e)^x hth
19:19:50 <hppavilion[1]> rdococ
19:19:51 <hppavilion[1]> e^(πi) = -1 -- Known
19:19:52 <hppavilion[1]> e^(ix) = cos(x)+isin(x) -- General Form
19:19:52 <hppavilion[1]> e^(i(π/2)) = cos(π/2)+isin(π/2) -- Plugging in
19:19:52 <hppavilion[1]> cos(π/2) = 0 -- The calculator says so, kind of
19:19:52 <hppavilion[1]> isin(π/2) = i -- Calculator again
19:19:53 <hppavilion[1]> e^(iπ/2) = i -- The above math
19:19:54 <b_jonas> ais523: yes, they're free-form
19:19:55 <hppavilion[1]> e^(iπ/2)^i = i^i -- Raise both sides to i
19:19:57 <hppavilion[1]> e^((i^2)π/2) -- (x^y)^z = x^(yz)
19:19:59 <hppavilion[1]> e^(-π/2) = i^i -- i^2 = -1
19:20:01 <hppavilion[1]> e^(-π/2) is real -- Some math I don't know how to explain
19:20:03 <hppavilion[1]> Therefor, i^i is real -- Equality works that way
19:20:05 <hppavilion[1]> Q.E.D
19:20:07 <hppavilion[1]> (Sorry for that, should've pastebinned)
19:20:10 <hppavilion[1]> (I forgot until after I hit <enter>)
19:20:14 <ais523> hppavilion[1]: or used #esoteric-blah
19:20:18 <ais523> that's what it was for, originally
19:20:19 <hppavilion[1]> ais523: Good point
19:20:26 <ais523> things that produce a lot of text/spam
19:20:31 <ais523> either pastes or commands
19:20:36 <b_jonas> hmm, maybe I should set chanserv property to the channels I lead before asking for it. although on those channels I just keep the info in the TOPIC, unlike here
19:21:06 <hppavilion[1]> rdococ: There. That's called math
19:21:08 <hppavilion[1]> (Mostly)
19:21:27 <ais523> oerjan: doesn't that differentiate to -(1/e)^x ?
19:21:35 <ais523> not 100% sure, I'm not that good at doing calculus in my head
19:21:42 <rdococ> um
19:21:48 <ais523> oh I see, I said "magnitude"
19:21:54 <ais523> and you're nitpicking on that :-D
19:21:59 <rdococ> you're just doing math
19:22:12 -!- evalj has joined.
19:22:39 <ais523> hi evalj
19:22:47 <ais523> ) "hi evalj"
19:22:54 <ais523> ^prefixes
19:23:04 <ais523> where's fungot?
19:23:08 <ais523> evalj: hepl
19:23:09 <evalj> ais523: |value error: hepl
19:23:11 <ais523> evalj: help
19:23:11 <evalj> ais523: |value error: help
19:23:23 <b_jonas> no help
19:23:34 <b_jonas> ] '] is it''s short prefix I think'
19:23:34 <evalj> b_jonas: ] is it's short prefix I think
19:23:50 <b_jonas> evalj, help: would be how you invoke such a command
19:23:55 <b_jonas> but there's no help command I think
19:23:57 <b_jonas> evalj, source:
19:23:57 <evalj> b_jonas, jevalbot source is http://www.math.bme.hu/~ambrus/pu/jevalbot.tgz
19:24:29 <b_jonas> because "evalj: help" would be interpreted as the default command (evaluate J in session) with argument "help" which is a J statement
19:25:00 <ais523> ugh, now I remember a language or language parody in which writing "help" gave the response "there is no help for you"
19:25:08 <ais523> but can't remember the name of the language or alleged language
19:25:52 <oerjan> <ais523> and you're nitpicking on that :-D <-- actually i was just nitpicking on the f'''' = f case. if you consider magnitude in general you might also take e^(x*e^(ia)), a real.
19:26:30 <ais523> oerjan: there is definitely more than one f for which f''''=f, though
19:26:35 <b_jonas> ais523: I think that's a text adventure (colossal-cave-like)
19:26:55 <ais523> it's an obvious enough joke that maybe it's happened in multiple places
19:27:00 <b_jonas> although that would have to say something like "nobody can hear as you scream for help"
19:27:08 <b_jonas> or something like that
19:27:17 <b_jonas> "You call for help but nobody comes."
19:27:21 <ais523> hmm, now I have the idea for a dudley's dungeon comic
19:27:51 <oerjan> ais523: well yes, f''''=f is a linear combination of those with a = n*pi/2
19:28:39 <ais523> well, f(x) = sin x gives you f''''=f
19:28:43 <ais523> how does that fit into this framework?
19:29:06 <oerjan> sin x = (e^(ix) - e^(-ix))/(2i)
19:29:17 <oerjan> iirc
19:29:43 <oerjan> and a similar expression for cos
19:30:53 <b_jonas> ] 0j1^0j1
19:30:54 <evalj> b_jonas: 0.20788
19:30:58 <b_jonas> looks real
19:31:03 <b_jonas> ] ^0j1
19:31:03 <evalj> b_jonas: 0.540302j0.841471
19:31:03 <ais523> oerjan: oh, I missed the linear combination thing
19:31:37 <oerjan> aww, i was hoping i'd blown your mind :P
19:33:27 * oerjan aims it at rdococ instead.
19:34:20 <oerjan> rdococ: btw ais523 alluded to a more general derivative. (a^x)' = ln a * (a^x), where ln a is the natural logarithm. so putting ln a = 1 gives you e there.
19:35:28 <oerjan> also ln x itself has a nice such property: (ln x)' = 1/x
19:36:07 <oerjan> (you could use that property to unravel all the other definitions, if you don't like to define e^x with an infinite series as is the usual alternative.)
19:36:33 <b_jonas> oerjan: so basically you define ln(x) as a simple integral?
19:36:38 <oerjan> b_jonas: yeah
19:36:52 <b_jonas> unlike e^x which you try to define as a differential equation or something
19:37:55 <oerjan> i am a bit partial to starting with (ln x)' = 1/x since that was the first method i learned.
19:42:23 <b_jonas> oerjan: I think the problem is that if you try to define e^x from a differntial equation, then you have to prove somehow that the differential equation has a solution, and probably also that it's unique, and that requires higher calculus, and might even end up being circular if you're not careful.
19:43:33 <b_jonas> oerjan: so I think it's better to take the power series e^x = sum_(0<=n) x^n/n!, prove that that converges everywhere, then prove that e^(xy) = e^x*e^y
19:44:45 <oerjan> b_jonas: you can also prove that ln has an inverse.
19:45:00 <b_jonas> and then from that prove that e^x is the limit of e^q where q is rational and goes to x and e^q is defined as rational power with repeated multiplications and square roots which you first have to prove as well-defined and monotonous
19:45:10 <oerjan> (monotone continuous function)
19:45:46 <b_jonas> s/square//
19:46:21 <b_jonas> That is, you define power in three ways, one for integer exponents, one for rational exponents and positive base with roots, and one for reals with power series, prove their nice properties (well-definedness and monotonity and identities) separately, then prove they're the same.
19:46:32 <oerjan> um your last line seems rather redundant with "e^x is continuous"
19:46:37 <b_jonas> But I think the linear differential equation has to enter it until much later.
19:46:45 <oerjan> (it was your last line when i started typing)
19:47:10 <b_jonas> oerjan: sure, you have to prove e^x is continuous, but you also have to prove that it equals to the other definition of e^q for rational q
19:47:15 <b_jonas> those two together mean it's the limit
19:48:09 <b_jonas> You can actually do that even before you define function limits, as long as you've defined series limits, because monotonous function with no jumps is an easier case
19:48:26 <b_jonas> you can just prove that e^x the unique _monotonous_ function that extends e^q
19:48:53 <oerjan> i'm really saying that you can shortcut much of the "prove their nice properties separately" by just proving e^x is nice enough and use that to investigate the others.
19:49:39 <b_jonas> oerjan: yes, of course, but you need to prove at least something like e^(x+y)=(e^x)(e^y) specifically to be able to prove it's a power function
19:54:52 -!- tromp has joined.
19:57:18 -!- lambda-11235 has quit (Read error: Connection reset by peer).
19:59:51 -!- tromp has quit (Ping timeout: 276 seconds).
20:05:03 -!- Kaynato has quit (Ping timeout: 240 seconds).
20:05:23 -!- fucrktheyhw has joined.
20:07:41 -!- oerjan has quit (Quit: Nite).
20:15:00 -!- fucrktheyhw has left.
20:27:43 -!- m0li has joined.
20:35:18 <ais523> `unidecode 💯
20:35:36 <rdococ> hmm
20:35:39 <HackEgo> U+1F4AF HUNDRED POINTS SYMBOL \ UTF-8: f0 9f 92 af UTF-16BE: d83ddcaf Decimal: &#128175; \ 💯 \ Category: So (Symbol, Other) \ Bidi: ON (Other Neutrals)
20:35:55 <ais523> `unicode U+1F4AE
20:35:56 <HackEgo> ​💮
20:35:59 <ais523> `unicode U+1F4AD
20:36:00 <HackEgo> ​💭
20:36:03 <ais523> `unicode U+1F4B0
20:36:04 <HackEgo> ​💰
20:36:07 <ais523> hmm
20:36:19 <rdococ> the symbols don't show up to me
20:36:28 <lynn> They are emoji!
20:36:35 <rdococ> okay
20:36:47 <rdococ> so what does this look like? :)
20:36:50 <shachaf> hynn
20:37:16 <lynn> 100 points, flower, thought bubble, money bag
20:37:34 <lynn> Hichaf
20:39:10 <ais523> I should probably give up on assuming any sort of logical pattern to the way emoji are organized
20:39:44 <prooftechnique> 🎩
20:40:28 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
20:55:41 <rdococ> what if you have 100 flowers in a thought bubble while you're holding a money bag in real life?
20:56:18 <rdococ> perfectly logical
20:58:05 <ais523> I was hoping there'd be points symbols for numbers other than 100
21:16:48 -!- AnotherTest has quit (Ping timeout: 244 seconds).
21:23:26 -!- Kaynato has joined.
21:42:26 -!- Guest6809 has quit (Quit: This computer has gone to sleep).
21:55:54 -!- tromp has joined.
22:00:29 <fizzie> Ut.
22:01:05 -!- fungot has joined.
22:01:11 <fizzie> Had disconnected.
22:01:13 -!- tromp has quit (Ping timeout: 244 seconds).
22:01:47 <shachaf> fungot: hungot
22:01:47 <fungot> shachaf: but it's ok... i have no idea how to find online help) and m-x ( execute command). you would see them as a countable set of countable sets? couldn't you just execute a move?
22:01:51 -!- hppavilion[1] has joined.
22:01:54 <fizzie> Also, exciting: they want me to decide who the next Mayor of London will be.
22:01:57 <fizzie> (Well, along with some other folks, I guess.)
22:02:17 <shachaf> fizzie: You're deciding about the Mayor of London and also about some other folks?
22:02:45 <shachaf> too much power
22:03:58 <fizzie> Yes, something about a London Assembly of London.
22:04:30 <shachaf> `? fizzie
22:04:37 <HackEgo> fizzie is not fnord with a monad but the king of #esoteric, see http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/src/fizziecoin.jpg
22:06:26 <hppavilion[1]> I had an idea for a useful tool in CASes
22:06:43 <hppavilion[1]> It's probably done in every CAS, now that I think about it, but there's no standard
22:08:00 <hppavilion[1]> I'm calling it formugex
22:08:25 <hppavilion[1]> It's like regex, but it's for matching categories (the informal kind) of mathematical formula, rather than strings fitting a particular pattern
22:09:29 -!- spiette has quit (Ping timeout: 260 seconds).
22:17:38 -!- boily has joined.
22:20:04 <boily> `wisdom
22:20:06 <HackEgo> tomfoolery/tomfoolery is always factually inaccurate. always.
22:20:33 <ais523> You have chosen to open: fizziecoin.jpg which is: 23600 File (225 kB) from: http://codu.org What should Firefox do with this file? Open with: gedit
22:20:40 * ais523 cancels
22:21:15 <shachaf> ais523: I don't understand why browsers don't have an option to override content-type when it's application/octet-stream.
22:21:30 <ais523> that's not application/octet stream, though
22:21:32 <fizzie> It's actually Content-Type: application/binary.
22:21:33 <ais523> assuming it's an actual jpeg
22:21:34 <shachaf> Most often I want it to be text/plain but sometimes other things.
22:21:38 <shachaf> Well, application/binary too.
22:21:42 <ais523> fizzie: is that a real content-type?
22:21:49 <shachaf> In fact I always want this option. But I especially want it in the download dialog.
22:21:56 <boily> his523. it's a real JPG! it's the fizziecoin!
22:22:12 <fizzie> ais523: I don't see it in http://www.iana.org/assignments/media-types/media-types.xhtml
22:22:19 <ais523> should be an "open in browser" option too
22:23:15 <shachaf> Yes, that's what I mean.
22:23:35 <shachaf> I guess allowing people to specify text/html can be problematic for XSSish reasons, maybe.
22:23:42 <prooftechnique> You can set that in Firefox
22:23:48 <prooftechnique> I think Safari, too
22:24:22 <ais523> Wikipedia refuses to serve anything as text/plain because IE is stupid
22:24:25 <prooftechnique> Well, hmm, maybe not quite that straightforwardly
22:24:44 <ais523> it uses made-up content types instead like text/text or text/x-wiki if you try to force it to
22:24:58 <fizzie> hgweb used to guess content types from extension.
22:25:02 <ais523> the normal recommendation is to use text/css instead, which most browsers render like they /should/ render text/plain
22:25:04 <fizzie> They changed it for XSSish reasons.
22:25:23 <fizzie> (I mean, it served .html files as text/html and all that.)
22:25:41 <prooftechnique> Wiki looks fine in lynx, anyway
22:26:04 <shachaf> boily: q: what content type does tra1n use?
22:26:05 <fizzie> Chromium just downloads the coin.
22:26:14 <shachaf> boily: a: text/PLAAAAANE
22:26:31 <boily> hellochaf. AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmapoleAAAAAAAAAAAAAAAAAARGH!
22:26:33 <fizzie> "Content-Type: application/binary" + "Content-Disposition: inline" is kind of a strange combination, though.
22:26:45 <fizzie> "Inline this unspecified binary blob."
22:28:08 -!- jaboja has joined.
22:28:22 <ais523> it's more like saying "inline this unspecified bnry blob", it's a word that's sort-of like the correct one but isn't actually a real word
22:29:37 <shachaf> application/heptet-stream
22:33:02 -!- jaboja has quit (Ping timeout: 260 seconds).
22:39:49 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
22:42:15 -!- ais523 has quit.
23:09:39 -!- FreeFull has quit (Ping timeout: 276 seconds).
23:09:57 -!- FreeFull has joined.
23:17:19 -!- hppavilion[1] has joined.
23:18:07 <boily> `wisdom
23:18:11 <HackEgo> glogbot/glogbot is a snitch, don't trust it.
23:21:21 -!- evalj has quit (Remote host closed the connection).
23:25:36 <shachaf> `wisdom
23:25:38 <HackEgo> persistence/Taneb invented persistence long ago, and it's been around ever since.
23:27:06 <int-e> . o O ( persistence is a property of properties of term rewriting systems )
23:28:27 <hppavilion[1]> https://www.quora.com/Which-is-the-most-unpleasant-programming-language-that-you-have-written-in is a godsend to #esoteric
23:31:56 <boily> aubergine is quite nice this time of the year. you should program in it.
23:32:37 -!- Lyka has joined.
23:33:09 <int-e> "Sure, there is a way to write $LANGUAGE the right way, but nobody does it." -- this seems applicable to many languages...
23:33:17 <Lyka> hi
23:33:38 <boily> Hellyka!
23:34:15 <int-e> (my ideas include mundane languages like PHP and JavaScript)
23:34:29 <Lyka> http://pastebin.com/CXrgJHdf
23:34:42 <Lyka> http://pastebin.com/S76vsBj9
23:36:05 <Lyka> examples of my current useless language
23:37:15 <hppavilion[1]> I'm going to answer it (I'm choosing Befunge) and point people to this channel with the promise of fungot
23:37:15 <fungot> hppavilion[1]: this is general discussion
23:37:29 <hppavilion[1]> fungot: Fair enough
23:37:29 <fungot> hppavilion[1]: but that's just me. dunno about converting linefeeds on windows.
23:37:53 <boily> Lyka: CISC architectures are nice. were you inspired by PDP assembly?
23:37:56 <hppavilion[1]> fizzie: Is fungot generated or hand-written?
23:37:56 <fungot> hppavilion[1]: you can also use recursions. the only shortcomings that i'm aware of
23:38:05 <Lyka> what is fungot?
23:38:05 <fungot> Lyka: i think i have read the pdf, or 138 in the pdf
23:38:13 <hppavilion[1]> Lyka: Our friendly neighborhood bot
23:38:25 <boily> there's one fungot, and your fungot is fungot.
23:38:26 <hppavilion[1]> Lyka: Hyerintelligent, written in Befunge.
23:38:26 <fungot> boily: fnord iood helo' as the first example on the scheme-style page. i fnord 3 hours.
23:38:40 <boily> sometimes, he gets a little bit loopy...
23:38:50 <hppavilion[1]> boily: That's called "being hyperintelligent"
23:38:52 <fizzie> Hand-written.
23:39:02 <hppavilion[1]> fizzie: Awesome; that means I can mention that in my answer
23:39:15 <boily> fungot also tries to become sentient, but we're keeping him in check.
23:39:15 <fungot> boily: you have to resort to calling him. brr. that draft is chilly.
23:39:25 <fizzie> Well, I mean. The code is. Those babble models are "generated".
23:39:27 <boily> fungot: not chilly, only humid. it's getting warm here!
23:39:27 <fungot> boily: gah! what's with all the stuff
23:39:43 <hppavilion[1]> fizzie: What's the algorithm it uses to figure out how to talk?
23:39:46 <boily> fungot: it's spring. the seasun of puddles and mud and squirrels.
23:39:46 <fungot> boily: what is the value of x
23:39:50 <hppavilion[1]> Was it markov sequences?
23:40:04 <boily> fungot: 0 when not on the stack, otherwise whatever you paid for it when casting it.
23:40:06 <Lyka> boily: i once saw a refeerence sheet for 8051 asm.
23:40:06 <hppavilion[1]> fizzie: I figured as such
23:41:20 <Lyka> the goal is that every command+argument structure is 16 bytes
23:42:05 <boily> very CISCy.
23:42:35 <hppavilion[1]> fizzie: Describe writing fungot's core by hand
23:42:35 <fungot> hppavilion[1]: it's probably actually worth 50e still since it looks, not to mention the pain that writing anything nontrivial in
23:42:45 <hppavilion[1]> Was it pleasant or agony?
23:43:11 <Lyka> what is CISC?
23:43:46 <boily> Complex Instruction Set Computer. it was the fashion for mainframes to have as many different instructions they could manage to cram in.
23:44:04 <boily> then RISC happened, and now we're somewhere in the middle with current architectures.
23:44:09 <boily> (R for Reduced)
23:45:35 <coppro> basically the way that a CISC worked is that they started to combine multiple instructions into one for efficiency reasons
23:45:43 * zgrep waits for EISC to happen, Esoteric Instruction Set Computer
23:46:01 * boily proudly touts the virtues of his aubergine ^^
23:46:02 <coppro> like having a variation of the add instruction that loads an operand directly from memory to avoid you having to load it yourself
23:47:51 <coppro> that's a super simple example, but if you look at a modern one like x86, it's extremely complex
23:47:55 <coppro> lots of ways to do the same thing
23:48:21 <hppavilion[1]> zgrep: You can write one
23:48:27 <hppavilion[1]> |C|ISC
23:48:45 <hppavilion[1]> (Or, if you prefer, #CISC)
23:48:57 <hppavilion[1]> A Complex-numbered Instruction Set Computer
23:49:28 <coppro> AIUI, as the processors got better at optimizing and eventually started moving to things like microcode, they realized that the pipelining characteristics and relative code simplicity of splitting things back out seemed like a better approach
23:49:43 <coppro> the idea being that the processor could do the optimization that the compiler does in a CISC
23:49:57 <coppro> so they gave you lots of registers to work with, but comparatively few instructions
23:49:59 <zgrep> hppavilion[1]: I could, but [insert bad excuse here].
23:50:06 <coppro> the modern stuff is somewhere in the middle
23:50:10 <hppavilion[1]> zgrep: *Fine*
23:50:21 <hppavilion[1]> zgrep: I take it you don't want normal memory?
23:51:21 <boily> RISC was the élément déclencheur for rigorous pipelining and orthogonality. but we still like some microcode happening in there, so middle ground seems to be the best course.
23:51:43 <coppro> yeah
23:51:52 <boily> also, I hope to see the day were x86 disappears in purifying fire >:D
23:52:02 <zgrep> coppro: The modern stuff is also (il)logically backwards compatible, I think.
23:52:27 <boily> the Magic Blue Smoke Shall be Released, and Congeal Back into the Most Perfect Design Mankind can Dream of!
23:52:42 <hppavilion[1]> zgrep: RSSB and SUBLEQ are EISCs
23:53:07 <zgrep> boily: That seems like an advertisement for recreational drug use.
23:53:27 <int-e> The idea of letting the compiler do all the optimizations just hasn't worked out, I think... dynamically you get more freedom because you know actual addresses, which allows moving, say, reads before writes even when a compiler couldn't.
23:54:14 <hppavilion[1]> zgrep: Yes, it's much better to force everyone to compile their applications 50 times for all the currently-in-use computers, /then/ to force users to learn enough to know what their computer's IS is so they can find the right executable in a massive list of executables with names that are probably just hexadecimal serial numbers :P
23:54:16 -!- Sgeo__ has joined.
23:54:47 <int-e> @google EPIC computing
23:54:48 <lambdabot> https://en.wikipedia.org/wiki/Explicitly_parallel_instruction_computing
23:55:02 <int-e> EPIC failure. :P
23:55:41 <hppavilion[1]> zgrep: What would you want to see in an EISC?
23:57:48 <rdococ> EISC?
23:57:56 <hppavilion[1]> rdococ: Esoteric Instruction Set Computer
23:57:57 -!- tromp has joined.
23:58:03 <hppavilion[1]> rdococ: Say, what programming languages do you use?
23:58:08 <rdococ> um
23:58:27 <rdococ> Lua, but I use it in the context of my favourite games website, Roblox
23:58:31 -!- tromp has quit (Remote host closed the connection).
23:58:44 <zgrep> hppavilion[1]: Technically, that's more so having a general agreed standard than backwards compatibility, but I see your point.
23:58:46 <hppavilion[1]> https://www.fanfiction.net/u/7096153/rdococ ...
23:58:48 -!- tromp has joined.
23:58:51 <int-e> hppavilion[1]: some (CISC) instruction to heat the processor to a specified temperature would be useful for cooking
23:58:55 <rdococ> I've tried a browser implementation of BASIC.
23:59:00 <hppavilion[1]> rdococ: Python and VB
23:59:12 <hppavilion[1]> int-e: Good, good
23:59:13 <rdococ> (no, not that I've tried to implement it, but that I've used an implementation)
23:59:29 <hppavilion[1]> rdococ: As in a web browser implemented in BASIC?
23:59:47 <rdococ> no, the other way round
23:59:54 <rdococ> BASIC in a browser
23:59:59 <hppavilion[1]> rdococ: Ah
←2016-02 2016-03 2016-04→ ↑2016 ↑all