←2017-04-17 2017-04-18 2017-04-19→ ↑2017 ↑all
00:00:30 <rdococ> So "because I want to make a game about a chicken"?
00:00:51 <rdococ> or am I misunderstanding it?
00:00:57 <callforjudgement> that could work too
00:01:09 <callforjudgement> actually implementing such a language would be hard
00:01:21 <callforjudgement> perhaps it'd work more like a library
00:01:34 <hppavilion[1]> I calculated that, if you're talking about the class of simple (id est no-carried-values) logic gates of the form I -> O, where I and O are sequences of nonzero natural numbers (I mean, they could be 0, but makes things kind of boring), there are product(I) * product(O)^len(I) possible logic gates (including degenerate cases)
00:01:34 <rdococ> it sounds like AGI to me
00:01:45 <callforjudgement> you specify that you want to make a game about chickens, and have to provide the details yourself, but you get a DSL with a game engine and some chicken-based primitives
00:01:58 <hppavilion[1]> [took me a while, because I had to go find the ∏ symbol and then decided not to use it)
00:02:03 <rdococ> ah
00:02:18 <rdococ> I think there are already languages which allow you to specify DSLs to program in
00:02:43 <hppavilion[1]> Whoops, started that parenthetical with a ‹[› and ended with a ‹)›. Let's just say that my statement was a half-open interval and leave it at that.
00:02:57 <callforjudgement> rdococ: yep, but normally you have to write them from scratch
00:03:03 <callforjudgement> some sort of DSL combinator seems potentially useful?
00:03:39 <hppavilion[1]> Hm...
00:03:45 <rdococ> So...
00:04:03 <rdococ> A standard programming language with libraries?
00:04:29 <callforjudgement> I guess that's the closest we have right now
00:04:39 <callforjudgement> but some way for the libraries to compose themselves into more useful forms would be nice
00:04:41 <callforjudgement> writing glue code sucks
00:04:53 <rdococ> True.
00:05:37 <rdococ> How about a language written in such a way that libraries written in that language are easily composable?
00:06:09 <callforjudgement> even in large library collections that you'd think would be integrated, like the Java API or Win32, the different parts tend to not work together well
00:06:13 <rdococ> I had the idea of a programming language in which subroutines could have 'synonyms', which would be alternate names for the function.
00:06:16 <callforjudgement> so designing a composable library system seems like it might be really useful
00:07:10 <rdococ> So, say, in terms of trigonometry, you could write asin(x), asine(x), arcsin(x) or arcsine(x) and get the same result.
00:08:00 <rdococ> This would allow for some other library requiring the trigonometry library would be able to use any trigonometry library that implemented synonyms.
00:08:57 <callforjudgement> rdococ: hmm, one thing I thought of was that the OO concept of interfaces should have a namespace for the individual functions
00:09:15 <callforjudgement> so that you can comply with two different interfaces even if they have a naming clash
00:09:17 <rdococ> Additionally, libraries in the code would be renameable.
00:09:43 <callforjudgement> I guess at a much higher level, some sort of type-based duck typing would be nice, though
00:10:02 <callforjudgement> functions could describe a list of properties they have, and then somehow we figure out if a type complies with an interface by inspecting them
00:10:54 <hppavilion[1]> callforjudgement: Do you have any ideas how I can calculate the number of non-degenerate (g)logic gates [see above] with a given... configuration?
00:11:18 <callforjudgement> hppavilion[1]: well, normally a logic gate is defined by its truth table
00:11:26 <callforjudgement> and truth tables tend to be fairly easy to enumerate
00:11:29 <hppavilion[1]> callforjudgement: Yeah, of course
00:11:52 <hppavilion[1]> Oh, found https://math.stackexchange.com/questions/281845/number-of-non-degenerate-boolean-functions#281855 which should be a pretty good starting point
00:12:33 <hppavilion[1]> Ah, there's some binomial coefficienting involved, at least in the boolean case
00:13:27 <hppavilion[1]> ...wait, I don't just want to know how many there are, I'll probably also want a way to decide whether a *given* gate is degenerate
00:13:40 <rdococ> hm.
00:13:54 <rdococ> the problem with a sound chip with no audio ram is that it'd just be the PC speaker.
00:14:05 <rdococ> right?
00:14:05 <rdococ> nah
00:14:07 <rdococ> I'm dumb
00:21:12 -!- oerjan has joined.
00:24:07 <oerjan> @messages-told
00:24:07 <lambdabot> ais523 asked 6h 43m 19s ago: Do you know where the content formerly hosted on oerjan.nvg.org is now? I'm interested in your Shove interpreter
00:24:38 <callforjudgement> hmm, you already replied on Stack Exchange
00:24:46 <oerjan> oh you're there.
00:24:52 <oerjan> anyway, nvg is back up now.
00:25:27 <shachaf> nathan van goorn
00:27:17 <oerjan> callforjudgement: nvg is student run so when something like this happens during easter break, it can take a while to get fixed.
00:27:34 <callforjudgement> ah right
00:36:13 -!- Simm has quit (Ping timeout: 240 seconds).
00:37:48 <rdococ> fourier series requires the ability to produce an inverted sine wave for the symmetric triangle wave, yes?
00:38:25 <rdococ> or at least the ability to change the phase
00:40:22 <izabera> in js, can you detect if i'm trying to take a screenshot of the page?
00:40:43 <izabera> or maybe in flash
00:40:49 <izabera> idk something that runs in a modern browser
00:40:57 <rdococ> why tho?
00:41:21 <izabera> because i'm about to take a test and they're claiming that they can detect it
00:41:53 <rdococ> does your browser have dev. tools?
00:42:09 <izabera> it's the latest chromium
00:42:36 <rdococ> maybe inspect the page?
00:42:51 <rdococ> oh
00:42:58 <rdococ> if it's in flash that won't work
00:43:04 -!- moonythedwarf has quit (Remote host closed the connection).
00:43:23 <izabera> even if it's js, it's probably gonna be a minified unreadable blob
00:44:23 <rdococ> oh
00:44:25 <rdococ> Teriyaki has audio
00:44:26 <rdococ> :c
00:45:09 <callforjudgement> izabera: you might be able to detect the input that the user uses to take the screenshot, even if you can't detect the screenshot itself
00:45:27 <callforjudgement> there are web pages which can figure out that you're planning to close the tab by the way you move your mouse
00:46:23 <izabera> even changing tab or window is forbidden
00:46:39 <izabera> to bypass such restriction one must be a true hacker
00:46:51 <izabera> or a laptop owner
00:47:08 <rdococ> I'd like to see an example... not a malicious one ofc
00:52:47 <callforjudgement> I suggest simply not trying to cheat
00:52:59 -!- Cale has quit (Ping timeout: 240 seconds).
00:53:13 <callforjudgement> I was invigilating an exam on computers a while back; we had a few technical measures to catch cheating, but mostly we enforced the rules via shoulder-surfing
00:59:34 <oerjan> that must be hard on the shoulders.
01:02:54 <orby_> oerjan: whaaaat's happening?
01:04:13 <izabera> callforjudgement: i'm on my bed at home and it's 2am
01:04:27 <izabera> they'll have a hard time shoulder surfing
01:04:45 <callforjudgement> take a photo of the screen if you really want a screenshot
01:04:55 <callforjudgement> unless they've activated the webcam, that's going to be hard to detect
01:06:15 <oerjan> orby_: why would anything be happening? what do you know? you cannot prove i did anything!
01:06:18 -!- Cale has joined.
01:07:19 <rdococ> Hm.
01:07:43 <oerjan> > [x:[y]|x<-"hm....."|y<-"testing"]
01:07:45 <lambdabot> ["ht","me",".s",".t",".i",".n",".g"]
01:07:52 <oerjan> fancy
01:09:28 <callforjudgement> > [x,y|x<-"hm....."|y<-"testing"]
01:09:30 <lambdabot> <hint>:1:5: error: parse error on input ‘|’
01:09:39 <callforjudgement> > [(x,y)|x<-"hm....."|y<-"testing"]
01:09:41 <lambdabot> [('h','t'),('m','e'),('.','s'),('.','t'),('.','i'),('.','n'),('.','g')]
01:09:48 <callforjudgement> somehow that feels more elegant
01:10:54 <shachaf> Than what?
01:11:37 <shachaf> > over (partsOf (each.each)) reverse [(x,y)|x<-"hm....."|y<-"testing"]
01:11:39 <lambdabot> [('g','.'),('n','.'),('i','.'),('t','.'),('s','.'),('e','m'),('t','h')]
01:12:03 <callforjudgement> shachaf: constructing 2-element lists
01:13:05 <shachaf> > over (partsOf (each.each)) reverse ("better","examples")
01:13:07 <lambdabot> ("selpma","xeretteb")
01:15:11 <rdococ> I'm working on something
01:15:19 <rdococ> hm.
01:16:43 -!- Guest4945 has joined.
01:17:31 <shachaf> callforjudgement: I think it depends on what you want.
01:17:53 <shachaf> > transpose [[x,y]|x<-"hm....."|y<-"testing"]
01:17:55 <lambdabot> ["hm.....","testing"]
01:18:01 <shachaf> > transpose ["hm.....","testing"]
01:18:03 <lambdabot> ["ht","me",".s",".t",".i",".n",".g"]
01:18:21 <oerjan> i was just noticing someone on PPCG said lambdabot supported parallel list comprehensions, and wanted to check.
01:18:21 <shachaf> > transposeOf each ("hm.....","testing")
01:18:24 <lambdabot> [('h','t'),('m','e'),('.','s'),('.','t'),('.','i'),('.','n'),('.','g')]
01:18:34 <shachaf> whoa, transposeOf each
01:18:35 <shachaf> p. fancy
01:19:38 <callforjudgement> :t transposeOf
01:19:40 <lambdabot> LensLike ZipList s t [a] a -> s -> [t]
01:19:47 <oerjan> > transposeOf _1 ("hm.....","testing")
01:19:49 <lambdabot> [('h',"testing"),('m',"testing"),('.',"testing"),('.',"testing"),('.',"testi...
01:21:21 <orby_> oerjan: exactly
01:21:21 <oerjan> > transposeOf _1 ["hm.....","testing"]
01:21:23 <lambdabot> error:
01:21:23 <lambdabot> • Ambiguous type variable ‘t0’ arising from a use of ‘show_M435504326564...
01:21:23 <lambdabot> prevents the constraint ‘(Show t0)’ from being solved.
01:21:32 <oerjan> > transposeOf each ["hm.....","testing"]
01:21:34 <lambdabot> ["ht","me",".s",".t",".i",".n",".g"]
01:22:03 <shachaf> note that transposeOf each /= transpose hth
01:22:24 <oerjan> shocking
01:22:58 <orby_> what would a programming language and / or OS based on the tenets of anarchism look like?
01:23:27 <orby_> an OS is easier to imagine, as processes are kind of like citizens
01:23:40 <callforjudgement> a language would need to have no syntax rules, at least
01:23:42 <callforjudgement> all programs are valid
01:23:47 <callforjudgement> and may not always mean the same thing
01:23:55 <callforjudgement> presumably it would have a number of highly independent threads
01:24:07 <orby_> yes, I like this, all programs are valid
01:24:56 <orby_> I think there wouldn't be a clear seperation between the interpreter / compiler and the source
01:25:19 <orby_> interpreters are authoritarian
01:25:42 <orby_> the program should be able to alter the behavior of the interpreter
01:26:55 <orby_> or to think of it another way, the program should have authority over how it is interpreted
01:28:49 <orby_> Well, from the perspective the program shouldn't be interpreted at all, it should interpret itself. Though I have no idea what that means practically.
01:28:53 <orby_> *that
01:31:30 <HackEgo> [wiki] [[Khartridge]] N https://esolangs.org/w/index.php?oldid=51759 * Rdococ * (+1029) Esoteric physical media
01:32:13 -!- Guest4945 has quit (Quit: zzzzzzz).
01:33:39 <orby_> hmmm
01:35:16 <orby_> what if we used the metaphor of a program as an association of individuals and instructions as individuals
01:37:17 <callforjudgement> <orby_> Well, from the perspective the program shouldn't be interpreted at all, it should interpret itself. Though I have no idea what that means practically. ← I tried to work it out once, it was one of the main themes of Feather
01:37:38 <orby_> callforjudgement: oooh, that sounds like fun
01:38:18 <callforjudgement> it was less fun than it sounded :-(
01:38:27 <callforjudgement> I'm still pretty sure it can be made to work
01:38:29 <callforjudgement> but I couldn't manage it
01:39:28 <orby_> neat, just read the page
01:40:52 <orby_> maybe the tenets of anarchism can better be realised by applying them to the relationships between the instructions. example: flow control is authoritarian because it denies an instruction the right to execute
01:41:31 <orby_> scoping also introduces heirarchy
01:41:38 <callforjudgement> one language idea I've had is a language which is likely to continue running fine after minor changes to the code
01:41:46 <rdococ> . o O ( did anybody take a look at the Khartridge article? )
01:41:47 <callforjudgement> because all the instructions work independently of each otehr
01:42:04 <rdococ> actually
01:42:09 <rdococ> it would be better in a console I think
01:42:25 <orby_> callforjudgement: I've thought about that before too, although in the slightly different form of programs that tend toward a solution and are tolerant of bugs and minor issues
01:42:34 <orby_> rdococ: I did, neat idea :)
01:42:43 <rdococ> yay
01:42:53 <callforjudgement> rdococ: you might want to look into FPGA coprocessors
01:43:07 <callforjudgement> which might or might not be the next big thing
01:43:09 <rdococ> . o O ( so many things to look into )
01:43:55 <rdococ> I was also working on a highly abstract language where real numbers would be represented by lazy infinite series
01:43:58 <rdococ> do you want to see that?
01:44:17 <orby_> in an anarchistic programming model, I think there wouldn't be an instruction pointer at all, as it implies some centralized authority doling out execution cycles
01:44:27 <orby_> rdococ: shoot a link
01:44:43 <orby_> all instructions should execute simultaneously
01:44:45 <rdococ> link to the Khartridge or to my idea for a highly abstract language?
01:44:56 <orby_> abstract language, already read khartridge
01:45:07 <rdococ> ah, I haven't made an article on it yet.
01:45:17 <orby_> gotcha
01:45:19 <hppavilion[1]> Hm
01:45:28 <hppavilion[1]> callforjudgement: I *think* I found a recursive solution
01:45:30 -!- sleffy has quit (Ping timeout: 240 seconds).
01:45:50 <rdococ> (Something else cool about the Khartridge is that an ACE exploit lasts forever unless you let the battery run out.)
01:46:11 <callforjudgement> it's not even just ACE at that point
01:46:19 <callforjudgement> it's more arbitrary firmware reconfiguration
01:46:32 <rdococ> True.
01:46:45 <orby_> hppavilion[1]: to the self interpretation idea?
01:46:55 <hppavilion[1]> orby_: Huh? No
01:47:06 <orby_> oh, haha, too many ideas floating around
01:47:21 <hppavilion[1]> orby_: To counting the number of degenerate vs. non-degenerate (g)logic gates of a given configuration
01:47:41 <Jafet> people who want to design “extremely high level declarative languages” may want to look at https://www.microsoft.com/en-us/research/wp-content/uploads/2016/12/popl10_synthesis.pdf
01:47:45 <orby_> I do not know what this is. What is (g)logic?
01:49:14 <hppavilion[1]> orby_: I had to invent half the words
01:49:30 <orby_> hppavilion[1]: fun :)
01:50:04 <hppavilion[1]> orby_: Basically, I generalized the concept of "logic gate" to apply to any number of inputs and outputs of any number of options on each
01:50:06 * rdococ tries to DDG how large the ROM of Pokemon Red has
01:50:08 <rdococ> s/has/is
01:50:35 <rdococ> o-o
01:50:42 <orby_> hppavilion[1]: I think they call those circuits ;)
01:50:47 <hppavilion[1]> orby_: So, like, something that takes two 2-option inputs and one 3-option input to give you a 7-option output is a (g)logic gate
01:50:59 <hppavilion[1]> orby_: Usually circuits are purely binary inputs and outputs
01:50:59 <orby_> cool cool, I'm with you
01:51:12 <orby_> I'm just teasing :)
01:51:19 <rdococ> apparently it's 224K
01:51:23 <rdococ> KB or Kb, idk
01:52:31 <rdococ> I'll get to work on the extremely abstract language, I guess.
01:52:38 <rdococ> (Specification of it, anyway.)
01:52:41 <orby_> hppavilion[1]: is it not possible to reduce a (g)logic gate to an equivalent in traditional logic gates?
01:52:49 <hppavilion[1]> orby_: According to the math I've been working out, there are 13841287201 different gates of that class I (the [2:2,3 | 7] class); 237265 of them are degenerate forms and 13841049936 are nondegenerate
01:53:06 <orby_> how do you define degenerate and nondegenerate?
01:53:32 <hppavilion[1]> orby_: The same way as in normal logic gates; a gate is degenerate if some of its inputs have no bearing on the result
01:53:48 <orby_> got it. I was not familiar with that term.
01:54:38 <hppavilion[1]> orby_: So in a normal context, the dyadic/boolean gate (ab : 00 -> 1; 01 -> 0; 10 -> 1; 11 -> 0) is degenerate since it's just ~b with an extra input
01:54:47 <hppavilion[1]> (just in case you were missing something)
01:55:01 <orby_> I'm with you, thanks for the example
01:55:05 <hppavilion[1]> yw
01:56:23 <orby_> have you played with allowing the options to go to infinity?
01:56:44 <orby_> I wonder if you get useful convergence in the behavior as the number of options gets big
01:57:02 <orby_> a la fuzzy logic
01:58:35 <orby_> I guess that's getting into functional analysis
01:59:48 <rdococ> well
01:59:53 <rdococ> hm
02:01:34 <rdococ> huh
02:01:35 <rdococ> odd
02:01:38 <orby_> does anyone know if there are any languages on the wiki that don't use an instruction pointer (either 1D or 2D?)
02:01:47 <rdococ> µ appears like M in the wiki heading font
02:01:53 <orby_> by which I mean, neither a 1d nor 2d instruction pointer
02:02:06 <orby_> rdococ: that's a bummer
02:02:12 <rdococ> ikr
02:03:48 <rdococ> Wait
02:03:52 <rdococ> it's only capital µ
02:03:57 <oerjan> rdococ: use the {{lowercase}} template hth
02:04:02 <rdococ> ah
02:09:29 -!- Xx_Good_Boy_xX has joined.
02:09:52 <HackEgo> [wiki] [[Template:Lowercase]] https://esolangs.org/w/index.php?diff=51760&oldid=30191 * Oerjan * (+137) Add usage note
02:11:06 <HackEgo> [wiki] [[Template:Lowercase]] https://esolangs.org/w/index.php?diff=51761&oldid=51760 * Oerjan * (-1) rm newlines
02:11:44 <oerjan> hm perhaps that didn't matter.
02:12:09 -!- Xx_Good_Boy_xX has left.
02:12:36 <HackEgo> [wiki] [[Template:Lowercase]] https://esolangs.org/w/index.php?diff=51762&oldid=51761 * Oerjan * (-136) Testing
02:12:41 <orby_> fyi https://en.wikipedia.org/wiki/Dataflow is one way to get around using an instruction pointer, didn't really think about it that way
02:12:50 <oerjan> oh it does, hmph
02:13:25 <callforjudgement> oerjan: ooh, I misread the domain name and thought that was an esolang
02:13:33 <callforjudgement> *orby_:
02:14:29 <oerjan> callforjudgement: gah, do you know how to put <noinclude> in a template so it doesn't add a newline?
02:14:55 <callforjudgement> oerjan: deleting the newlines around the <noinclude> itself works in some cases
02:15:00 <callforjudgement> maybe not all though?
02:16:08 <oerjan> i already tried that
02:16:21 <oerjan> although only the one _before_...
02:17:03 <callforjudgement> you might need to delete newlines after the </noinclude> too
02:17:26 <oerjan> i thought it did
02:17:49 <HackEgo> [wiki] [[Template:Lowercase]] https://esolangs.org/w/index.php?diff=51763&oldid=51762 * Oerjan * (+136) Try again
02:18:01 <oerjan> oh now it worked.
02:18:07 <oerjan> callforjudgement: thanks
02:18:30 <orby_> callforjudgement: no, not an esolang... yet! a better page for dataflow programming https://en.wikipedia.org/wiki/Dataflow_programming
02:18:39 <rdococ> Is there a mathematical algorithm to determine if two infinite series converge to the same value?
02:18:59 <oerjan> orby_: do you consider e.g. /// to have an instruction pointer? it always executes the first command, then deletes it from the program.
02:19:18 <callforjudgement> rdococ: I can't think of a reliable way apart from taking limits of each
02:19:34 <callforjudgement> asking whether they converge to /each other/ is probably more interesting, because it's more general
02:19:37 <orby_> oerjan: hmm, I would say it is still sequential and thus more or less has an ip, even though there isn't flow control
02:19:57 <rdococ> callforjudgement: Perhaps?
02:20:01 <callforjudgement> what about But Is It Art? that's one of the least IPful languages I've written
02:20:23 <orby_> callforjudgement: let me read that one again
02:21:48 <orby_> ok, I remember it now. yeah, I'd say that's squarely outside of the realm of sequential languages
02:22:28 <oerjan> rdococ: given that it's undecidable whether an infinite series _converges_, it's also undecidable whether two converge to the same thing. (well, essentially.)
02:22:36 <orby_> I really like this dataflow programming model for an anarchistic programming language as it models each command as a node in a graph, which seems more egalitarian to me than the traitional sequential model
02:23:34 <rdococ> oerjan, even through judicious application of algebra?
02:23:45 <oerjan> orby_: cellular automata would also count, no?
02:24:03 <oerjan> rdococ: certainly.
02:24:14 <callforjudgement> rdococ: although note that just because it's undecidable in general doesn't mean that it isn't often decidable in practice
02:24:26 <rdococ> ik
02:24:27 <orby_> oerjan: yeah, cellular automata definitely count
02:24:35 <orby_> "Where a linear program[clarification needed] can be imagined as a single worker moving between tasks (operations), a dataflow program is more like a series of workers on an assembly line, each doing a specific task whenever materials are available."
02:24:48 <callforjudgement> a good parallel (although not exactly the same) is that the majority of NP-complete problems tend to be fairly easy if given random problems
02:24:49 <oerjan> orby_: oh, also eodermdrome
02:24:49 <orby_> man, if that doesn't sound like anarchism I don't know what does
02:24:54 <callforjudgement> and only become difficult when you compile into them
02:25:14 <callforjudgement> come to think of it, eodermdrome and BIIA? have quite a few similarities
02:25:46 <orby_> oerjan: checking out eodermdrome now
02:26:15 <Jafet> orby: most cellular automata, term rewriting (lambda calculus) and graph rewriting languages (G-machine, eodermdrome), pretty much all of circuit theory
02:26:41 <rdococ> How about generalized continued fractions, oerjan?
02:27:06 <orby_> hmm, eodermdrome is not exactly what I am looking for, as it does model the state as a graph, but the instructions are still executed sequentially
02:27:09 <Jafet> concurrent actor models, etc.
02:27:25 <orby_> yeah, concurrent actor models are more along the lines of what I am think
02:27:30 <orby_> *thinking
02:28:03 <callforjudgement> eodermdrome really doesn't depend much on evaluation order
02:28:13 <callforjudgement> nor does thue (where the evaluation order is nondeterministic)
02:28:57 <oerjan> orby_: the instructions aren't necessarily executed sequentially, although some implementations may choose to use the first matching one.
02:29:07 <orby_> callforjudgement: when you say much, do you mean not at all, or only a little? I haven't read into enough detail to understand it
02:29:13 <Jafet> computational salmon migration models…
02:30:03 <callforjudgement> orby_: "If no command in the program has its prerequisites met, the program will exit; otherwise, an unspecified command whose prerequisites are met will be run (this means that an interpreter can always choose the first, or the last, or a random command, or use any other method to determine which command runs, if more than one can run)."
02:30:23 <callforjudgement> also, most eodermdrome programs are written in such a way that the order in which commands run isn't relevant at all
02:30:41 <Jafet> “most eodermdrome programs”
02:30:43 <orby_> hmm, let me look at this again in more detail... that sounds closer to what I'm thinking than I thought on first glance
02:31:12 <oerjan> Jafet: :P
02:31:30 <callforjudgement> Jafet: you can understand hypothetically how a language works
02:31:34 <callforjudgement> even if nobody actually uses it
02:32:07 <callforjudgement> and it looks like it's used occasionally: https://codegolf.stackexchange.com/a/67507/62131
02:33:55 <orby_> callforjudgement: Ahh, I have a clearer idea of how it works now. Yes, this is the spirit I'm looking for. Really cool idea, even if "is capable of executing a couple of commands per second" is a little prohibitive ;)
02:34:27 <Jafet> well, real eodermdrome programs are going to be deterministic or nearly so, if only because it's painful to design them in more interesting ways
02:34:40 <callforjudgement> Jafet: you get multithreading for free in this sort of design
02:35:10 <Jafet> only if the implementation supports it properly though
02:35:26 <callforjudgement> well I mean semantically
02:35:36 <callforjudgement> the compiler might or might not be able to optimize it, but probably not
02:35:36 <orby_> "In terms of encoding, a dataflow program might be implemented as a hash table, with uniquely identified inputs as the keys, used to look up pointers to the instructions."
02:36:12 <orby_> sounds pretty egalitarian to me :)
02:36:19 <Jafet> the obvious optimisation of checking the most recently changed part of the graph first would starve other “threads” without explicit synchronisation
02:36:39 <alercah> callforjudgement: oh, eodermdrome is cool; have you read much on graph grammars?
02:36:56 <callforjudgement> alercah: no, but I assume they're inspired by the same basic idea
02:37:01 <callforjudgement> I've seen some eodermdrome-like constructions
02:37:07 <callforjudgement> but they normally rely on distinguished nodes
02:38:02 <alercah> callforjudgement: my masters thesis did a bunch of work with hyperedge replacement grammars
02:38:22 <alercah> although the modern formulation does not actually refer to hyperedges
02:38:31 <oerjan> callforjudgement: hm that stackexchange eodermdrome program is misunderstanding how the language works, it will print _many_ hello worlds.
02:39:14 <callforjudgement> oh, in that case it may be worth dropping a comment and asking the author to request it
02:39:16 <oerjan> or wait
02:39:23 <callforjudgement> *to correct it
02:39:37 <oerjan> it actually works, but it doesn't match al, it matches og
02:39:55 <callforjudgement> oh, because that's the only degree-1 node?
02:39:58 <oerjan> yeah
02:39:58 <callforjudgement> neat
02:40:50 <alercah> callforjudgement: tl;dr, productions are of the form {label} -> hypergraph with an ordered tuple of distinguished nodes, called external nodes
02:41:07 <callforjudgement> how does a hypergraph differ from a graph?
02:41:15 <alercah> an edge can connect to multiple nodes
02:41:22 <alercah> *hyperedge
02:41:37 <alercah> in this case, a hyperedge has an ordering of nodes as well
02:41:48 <callforjudgement> oerjan: do you want to drop a clarifying comment or shall I?
02:41:55 <oerjan> i'm writing it
02:41:59 <callforjudgement> OK
02:42:16 <alercah> then if e is a hyperedge labeled A with k nodes, then you can use the production A -> H to replace e with H, identifying the neighbours of e with the external vertices of H in order
02:42:22 <callforjudgement> alercah: I assume it can connect to less than 2 nodes, too?
02:42:46 <callforjudgement> also that construction reminds me of a CFG
02:42:54 <callforjudgement> as opposed to Eodermdrome, which is definitely context-sensitive
02:43:13 <oerjan> callforjudgement: done
02:43:17 <alercah> callforjudgement: yes
02:43:30 <alercah> callforjudgement: it is equivalent to a CFG over a specific type of graph algebra, yes
02:44:12 <alercah> well, to a particular kind of equation system; a CFG is such an equation system over a free monoid
02:46:17 <alercah> callforjudgement: hmm I think eodermdrome suffers a restriction that HR also has, namely that any given program can only generate graphs of finite treewith
02:46:20 <alercah> *treewidth
02:46:26 <alercah> *bounded
02:46:56 <callforjudgement> how's treewidth defined?
02:47:47 <alercah> https://en.wikipedia.org/wiki/Treewidth
02:49:23 <alercah> the reason is that a command with k open vertices will create a graph where they form a cutset, so the treewidth of the result is max(tw(rest of graph), tw(replacement graph), k)
02:51:14 <alercah> tw(replacement graph) and k are fixed by the rule, and tw(rest of graph) is bounded inductively
02:51:46 <callforjudgement> yep, I think that works
02:52:18 <callforjudgement> I don't find treewidth a very intuitive concept, but using the clique definition, I can see how a cutset would prevent a new clique forming
02:54:35 <alercah> the way that I tend to think about it is "if you zoom out, how tree-like can you make it"
02:55:04 <alercah> or I guess how far you need to zoom to get a tree
02:55:09 <Jafet> the treewidth bound should give a O(2^26 n) (or maybe n^2) algorithm to implement eodermdrome, but I never bothered to look into it
02:55:41 <alercah> ^ yeah, the treewidth bound means that implementing it is fixed-parameter tractable
02:55:47 <callforjudgement> that's not the first time I've seen an "O"(2²⁶n) solution to something
02:55:47 <alercah> which is actually quite interesting!
02:55:50 <Jafet> there's also a randomised colouring algorithm that should work in O(e^26 n) expected time or so
02:56:08 <alercah> Jafet: that's just linear, no?
02:56:16 <callforjudgement> they're both linear
02:56:27 <alercah> yeah
02:56:32 <callforjudgement> we need a notation that's like big-O notation but somehow conveys the approximate magnitude of the constant factor
02:56:37 <callforjudgement> that's why I put the O in quotes
02:56:47 <callforjudgement> it's fairly clear what it means, yet really hard to define
02:56:52 <Jafet> callforjudgement: that's what fixed-parameter complexity addresses
02:56:59 <Jafet> here k=26 is the fixed parameter
02:57:12 <callforjudgement> Jafet: right, I thought the definition would be along those lines
02:57:30 <hppavilion[1]> rdococ: You're the one who contemplated a BUT gate- p BUT q?
02:57:31 <callforjudgement> it's hard to imagine an eodermdrome interpreter that inherently cares about the number 26
02:57:37 <hppavilion[1]> (ntbcw a BUTT gate)
02:57:41 <callforjudgement> hppavilion[1]: TriINTERCAL has one of those
02:57:47 <hppavilion[1]> callforjudgement: Does it now?
02:57:54 <rdococ> How does it work, callforjudgement
02:57:54 <callforjudgement> yep
02:57:54 <rdococ> ?
02:58:01 <hppavilion[1]> callforjudgement: Good to know
02:58:21 <hppavilion[1]> Because I think that the dyadic/boolean gate 0010 is a good candidate for p BUT q
02:58:22 <alercah> Jafet: err, not quite
02:58:23 <callforjudgement> rdococ: hppavilion[1]: http://c.intercal.org.uk/manual/qk5q4hrh.htm#TriINTERCAL
02:58:23 <hppavilion[1]> rdococ: ^
02:58:31 <Jafet> more precisely, k is the size of the graph you are matchin
02:58:38 <callforjudgement> see the second bullet point
02:58:38 <alercah> fixed-parameter tractability means that there is some variable parameter that you can fix that makes the problem tractable
02:58:52 <alercah> it doesn't mean the problem is tractable in the general case
02:59:06 <alercah> but if you limit to, say, input graphs of size k, then it might be tractable
02:59:10 <alercah> (tractable = polytime)
03:00:17 -!- callforjudgement has quit.
03:06:40 <orby_> ho hum
03:06:47 -!- orby_ has quit (Quit: Page closed).
03:07:10 -!- orby has joined.
03:07:15 <orby> I return!
03:07:33 <orby> I thought to myself, my the channel got suddenly quiet. Then I realised I had disconnected...
03:07:45 <alercah> that would do it
03:09:11 <rdococ> lol
03:09:27 <rdococ> To be fair, nobody did talk while you were gone :P
03:09:40 <oerjan> shocking
03:09:51 <orby> I wonder how long I was disconnected
03:10:28 <oerjan> a minute or two
03:10:41 * oerjan doesn't have seconds in his client.
03:11:00 <hppavilion[1]> orby: 23 seconds
03:11:21 <orby> thank you
03:11:30 <orby> I need to get a real irc client for windows
03:11:38 <rdococ> lol
03:11:40 <rdococ> agred
03:11:52 <hppavilion[1]> orby: Exactly. My client has ρs precision.
03:12:03 <orby> that sounds lovely
03:12:15 <hppavilion[1]> It's so precise they needed to invent a new prefix for it, and they didn't have any latin letters left
03:12:28 <hppavilion[1]> orby: To be clear, that's a greek letter rho, not a p like 'pico'
03:12:50 <rdococ> why'd they make it look like pico then?
03:13:04 <hppavilion[1]> rdococ: Poor planning on SI's part.
03:13:17 <orby> that's interesting. what does the rho prefix stand for?
03:13:35 <orby> rather, what order of magnitude?
03:13:36 <hppavilion[1]> orby: ρ stands for ρho
03:13:53 <hppavilion[1]> orby: Oh, 10^-ε_0
03:14:14 <orby> I am not familiar with your notation
03:14:26 <orby> what is -epsilon_0?
03:14:41 <hppavilion[1]> orby: well, - is a minus sign
03:14:49 <orby> thanks :)
03:15:19 <hppavilion[1]> orby: ε_0 is an ordinal; see <https://en.wikipedia.org/wiki/Epsilon_numbers_%28mathematics%29>
03:15:42 <rdococ> Tasty ordinals
03:16:14 <orby> I get it! A joke!
03:16:33 <Jafet> is that the same quantity as 2^-ε_0?
03:16:42 <hppavilion[1]> rdococ: They've never been very good at abbreviations, given that they added the usually-impossible-to-type, sometimes-difficult-to-transmit, a-bit-weird-to-write, impossible-to-think-about-without-going-insane-from-knowledge-man-was-not-meant-to-know μ as a frequently-needed prefix symbol.
03:17:08 <hppavilion[1]> Jafet: You would think so, but you'd be wrong, since this is base ω and that isn't a normal 10.
03:17:19 <hppavilion[1]> :P
03:17:28 <hppavilion[1]> Jafet: ...so... uh... yeah.
03:17:36 <hppavilion[1]> I guess that doesn't really change anything
03:17:38 <Jafet> I thought that 10 was the same in every base
03:17:55 -!- sleffy has joined.
03:18:16 <hppavilion[1]> Jafet: Nope.
03:18:46 <hppavilion[1]> Jafet: In German Military bases, for example, they call it "Zehn"
03:23:05 <Jafet> and not „Zehn“?
03:23:16 <hppavilion[1]> Jafet: Correct.
03:25:32 -!- jameseb has quit (Ping timeout: 255 seconds).
03:25:46 -!- sleffy has quit (Ping timeout: 240 seconds).
03:26:40 <oerjan> `? thought
03:26:41 <HackEgo> ​. o O ( Why are they asking me for what a thought is? )
03:26:50 <oerjan> `slwd thought//s,for ,,
03:26:53 <HackEgo> thought//. o O ( Why are they asking me what a thought is? )
03:27:19 -!- Lord_of_Life has quit (Ping timeout: 240 seconds).
03:27:47 -!- sleffy has joined.
03:27:57 <HackEgo> [wiki] [[CompressedFuck]] M https://esolangs.org/w/index.php?diff=51764&oldid=45695 * Fractalwizz * (+140) Added Interpreter Link
03:28:19 -!- zgrepc has quit (Ping timeout: 240 seconds).
03:32:21 -!- jameseb has joined.
03:33:15 -!- Lord_of_Life has joined.
03:34:13 -!- zgrepc has joined.
03:35:14 <oerjan> i see it is time to retire from HackEgo again.
03:36:46 -!- Zarutian has quit (Quit: Zarutian).
03:37:36 <oerjan> chatter29 was not doing again.
03:37:40 -!- augur has joined.
03:38:36 <oerjan> `dowg fsm
03:38:45 <HackEgo> 10739:2017-04-16 <int-̈e> revert \ 10738:2017-04-16 <Remavas-Hëx> le//rn FSM//A flying spaghetti monster that always consume all of its "input" and outputs *something* \ 5949:2015-08-30 <oerjän> learn An FSM is a state machine with noodly appendages.
03:38:56 <oerjan> whew
03:39:03 <oerjan> int-e++
03:42:20 <HackEgo> [wiki] [[Eodermdrome]] https://esolangs.org/w/index.php?diff=51765&oldid=42057 * Jafetish * (+208) /* Implementation */
03:43:05 -!- dingbat has joined.
03:43:41 <oerjan> Jafet: did you test the BCT interpreter twh
03:44:16 <Jafet> it's the program we both used to test our interpreters hth
03:44:21 <oerjan> i vaguely recall someone did once
03:44:24 <oerjan> aha
03:46:00 <HackEgo> [wiki] [[Eodermdrome]] https://esolangs.org/w/index.php?diff=51766&oldid=51765 * Oerjan * (-40) /* Computational class */ It's been tested now
03:55:31 -!- Sgeo_ has joined.
03:56:06 -!- Sgeo__ has joined.
03:59:34 -!- Sgeo has quit (Ping timeout: 268 seconds).
04:00:18 -!- Sgeo_ has quit (Ping timeout: 260 seconds).
04:06:35 <Soni> why's there not a page about sed programming
04:06:43 <Soni> like tetris in sed or gzip in sed
04:07:21 <Soni> because, while sed is a normal tool, writing a fully functional tetris implementation in it is not normal
04:07:29 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
04:08:02 -!- hppavilion[1] has joined.
04:08:32 <oerjan> Soni: a bit tricky to get keyboard input, i think
04:09:02 <Soni> stdin
04:09:31 <oerjan> Soni: sed can only take whole lines as input
04:10:48 <oerjan> also, a bit tricky to do anything when the user is _not_ giving input.
04:11:07 <Soni> that's why you need to press return every time you give it input
04:11:24 <Soni> (or when you *don't* give it any input)
04:14:19 <rdococ> þo
04:14:20 <rdococ> þm
04:14:22 <rdococ> hi
04:16:06 <oerjan> sounds like a good tetris ui
04:17:23 <Jafet> after all, tetris can only take whole lines as output
04:20:27 -!- augur has quit (Remote host closed the connection).
04:39:34 <shachaf> zzo38: Do you play bridge?
05:21:44 <oerjan> @tell moonythedwarf <moonythedwarf> quinor, besides, we can revert your shit as long as you dont chmod 000 everything. <-- that bug was fixed hth
05:21:44 <lambdabot> Consider it noted.
05:24:05 <rdococ> `? dowg
05:24:06 <HackEgo> A dowg is a wise dog.
05:24:12 <rdococ> `tomfoolery dog
05:24:13 <HackEgo> I must confess, I know not of what you are speaking.
05:24:14 <rdococ> `tomfoolery dowg
05:24:15 <HackEgo> I must confess, I know not of what you are speaking.
05:24:19 <rdococ> `tomfoolery `dowg
05:24:19 <HackEgo> I must confess, I know not of what you are speaking.
05:24:22 <rdococ> `tomfoolery tomfoolery
05:24:23 <HackEgo> tomfoolery is wisdom
05:24:32 <rdococ> `tomfoolery wisdom
05:24:33 <HackEgo> wisdom is tomfoolery
05:24:38 <rdococ> `wisdom tomfoolery
05:24:39 <HackEgo> tomfoolery//tomfoolery is always factually inaccurate. always.
05:24:46 <rdococ> `wisdom wisdom
05:24:48 <HackEgo> fourth wisdom//.wisdoms other the all upon builds wisdom fourth The
05:25:05 <rdococ> `? fifth wisdom
05:25:06 <HackEgo> fifth wisdom? ¯\(°​_o)/¯
05:25:08 <rdococ> `? first wisdom
05:25:09 <HackEgo> first wisdom? ¯\(°​_o)/¯
05:25:15 <rdococ> `? wisdom wisdom
05:25:16 <HackEgo> wisdom wisdom? ¯\(°​_o)/¯
05:25:23 <rdococ> ...
05:25:24 <rdococ> `? sed
05:25:25 <HackEgo> sed? ¯\(°​_o)/¯
05:25:36 <rdococ> `? teriyaki
05:25:37 <HackEgo> teriyaki? ¯\(°​_o)/¯
05:29:16 <oerjan> @tell moonythedwarf <moonythedwarf> also, quinor, if you need the full output, redirect output to a file, and then `paste <filename> for a link to it <-- | paste is better for command output hth
05:29:16 <lambdabot> Consider it noted.
05:32:39 <rdococ> . o O ( If the opposite of goto is comefrom, what is the opposite of return? )
05:38:48 <oerjan> return is to go to somewhere you have been, so the opposite is to come from a place you'll be
05:39:24 <oerjan> callfrom, i guess
05:41:04 <Soni> the opposite of return is setjmp
05:41:18 <Soni> the opposite of call is longjmp
05:41:23 <Soni> or however you use those things
05:43:47 <rdococ> k
05:45:52 <rdococ> . o O ( opposite of variables )
05:50:39 <oerjan> `` ls -l /usr/bin/passwd
05:50:40 <HackEgo> ​-rwsr-xr-x 1 0 0 54192 Feb 24 08:09 /usr/bin/passwd
06:01:15 -!- misterhitla has quit (Quit: Leaving).
06:01:28 -!- misterhitla has joined.
06:13:22 -!- orby has quit (Ping timeout: 260 seconds).
06:19:33 <rdococ> so how is quartersquare related to A1?
06:23:00 -!- augur has joined.
06:25:59 <rdococ> augur!
06:26:11 <rdococ> ata
06:26:13 <augur> rdococ!
06:29:31 <rdococ> yaya!
06:37:44 <rdococ> Btw: I'll be recreating the dead article K as an esolang.
06:38:09 <rdococ> It was gonna be called µ, but it will have a special K constructor, so I decided, why not call it K?
06:45:36 <oerjan> `unidecode K
06:45:37 <HackEgo> ​[U+004B LATIN CAPITAL LETTER K]
06:45:42 <oerjan> 'K
06:49:43 <rdococ> heh
06:49:57 -!- FreeFull has quit.
06:50:17 <HackEgo> [wiki] [[K]] N https://esolangs.org/w/index.php?oldid=51767 * Rdococ * (+2048) Real numbers & the K construct.
06:50:27 <rdococ> still in progress
06:52:42 <hppavilion[1]> I have a new extremely geeky insult.
06:52:43 <hppavilion[1]> "Your family's so redneck, a DAG is insufficient to describe your pedigree"
06:52:56 <rdococ> o-o
06:53:03 -!- augur has quit (Remote host closed the connection).
06:53:13 <hppavilion[1]> rdococ: Yes.
06:53:29 <rdococ> apparently there's a problem with my formatting
06:53:55 <hppavilion[1]> rdococ: What is a K constructor?
06:55:25 <rdococ> a K constructor takes two infinite lists and returns a real number whose generalized continued fraction is based on the two lists
06:55:45 <rdococ> actually, the real number is stored as the continued fraction, but meh
06:56:48 <rdococ> hm
06:56:50 <rdococ> how to escape {}?
06:57:10 <HackEgo> [wiki] [[K]] M https://esolangs.org/w/index.php?diff=51768&oldid=51767 * Rdococ * (+9)
06:57:59 <HackEgo> [wiki] [[User:Rdococ]] https://esolangs.org/w/index.php?diff=51769&oldid=51722 * Rdococ * (+70) /* My hopefully better esoteric languages (2017 CE - infinity CE) */ added K
06:58:00 <rdococ> wow
06:58:06 <rdococ> I like the letter K
06:58:19 <rdococ> hppavilion[1], see Khartridge on esolangs.org
06:58:42 -!- MoALTz has joined.
06:59:46 <HackEgo> [wiki] [[User:Rdococ]] https://esolangs.org/w/index.php?diff=51770&oldid=51769 * Rdococ * (+207) Added the Khartridge
07:00:38 <rdococ> take a looksy
07:00:40 <rdococ> yaysy
07:05:23 -!- hppavilion[1] has quit (Ping timeout: 260 seconds).
07:06:35 -!- hppavilion[1] has joined.
07:07:01 <hppavilion[1]> rdococ: Another thing you might find interesting: Toying with the underlying data model of a language
07:07:11 <rdococ> ?
07:07:29 <rdococ> K uses two lazy infinite lists to store real numbers in memory :P
07:07:50 <hppavilion[1]> rdococ: Most normal languages us a map with identifiers as the key-type as their data model
07:08:04 <rdococ> you mean variables?
07:08:11 <hppavilion[1]> rdococ: Yes, but hush for now
07:08:18 <rdococ> ?
07:10:24 <hppavilion[1]> rdococ: Languages like Forth, Underload, and Befunge use stacks (though befunge also invokes the grid) as the underlying data model, languages like brainfuck use a tape, Fueue uses a Queue
07:10:37 <rdococ> ik
07:10:47 <hppavilion[1]> rdococ: yk?
07:10:52 <rdococ> yes
07:11:07 <hppavilion[1]> rdococ: But do you get what I mean by "underlying data model" now?
07:11:12 <hppavilion[1]> (Most register machines use an array)
07:11:16 <rdococ> I knew in the first place but okay
07:11:29 <hppavilion[1]> rdococ: It was just terminology definitions :P
07:11:39 <rdococ> no, I knew that term :P
07:11:47 <rdococ> I was just confused by 'identifiers' tbh
07:11:49 <rdococ> but I got it
07:12:04 <hppavilion[1]> rdococ: I'm not sure if I invented the term or it already existed :P
07:12:14 <hppavilion[1]> rdococ: Oh, I see. "you mean variables"
07:12:23 * rdococ is confused
07:12:29 <hppavilion[1]> rdococ: Yes and no; variables are what identifiers refer to.
07:12:43 <rdococ> No, that's not what I meant.
07:12:47 <hppavilion[1]> An identifier is a name given to a variable
07:12:48 <hppavilion[1]> Oh
07:12:56 <rdococ> I know an identifier and a variable are different.
07:13:05 <hppavilion[1]> rdococ: OK, I see
07:13:13 <rdococ> I was just asking whether you meant the concept of variables when you mentioned a map with identifiers as the key-type.
07:13:18 <hppavilion[1]> Yeah
07:13:20 <hppavilion[1]> OH! Yes.
07:13:23 <hppavilion[1]> That's what it is.
07:13:30 <rdococ> ik
07:13:34 <rdococ> :P
07:16:42 <hppavilion[1]> rdococ: But a fun esodea is to mess with the underlying data model in strange ways; like, what if you used a reflective/bidirectional/whatever map instead of a normal one?
07:17:01 <pikhq> https://www.youtube.com/watch?v=uNjxe8ShM-8
07:17:11 <pikhq> I would like to be on-topic for once.
07:17:15 <rdococ> Bidirectional?
07:18:28 <pikhq> (Powerpoint is Turing-complete)
07:19:03 <zzo38> Yes, I think I saw in the SIGBOVIK report about how they made Turing-complete with Powerpoint
07:20:38 <hppavilion[1]> rdococ: A map that goes both ways.
07:21:43 <rdococ> hppavilion[1]: ah
07:21:57 <rdococ> so x -> 3 and 3 -> x?
07:23:51 <rdococ> pikhq: I love that video so much
07:24:19 <rdococ> lole
07:24:26 <hppavilion[1]> rdococ: Yeah, or even better, x -> y and y -> x
07:24:37 <hppavilion[1]> But no actual values there; the information is just in the relations
07:24:41 <rdococ> hppavilion[1]: so x == y
07:24:54 <hppavilion[1]> rdococ: Perhaps
07:25:46 <rdococ> hppavilion[1]: it does kinda sound like variables without values
07:25:58 <rdococ> and just equivalence to other variables instead
07:26:22 <rdococ> How about an inverted map? x -> y means y -> ¬x
07:26:28 <rdococ> and ¬x -> ¬y and ¬y -> x
07:26:33 <rdococ> like the imaginary unit
07:26:58 <hppavilion[1]> rdococ: ...huh?
07:27:47 <hppavilion[1]> I need to ensleepen
07:27:49 -!- hppavilion[1] has quit (Quit: HRII'FHALMA MNAHN'K'YARNAK NGAH NILGH'RI'BTHNKNYTH).
07:28:38 -!- MDead has joined.
07:29:01 <Jafet> I wonder if the current topic is something to hang on to
07:30:22 * rdococ hangs ont oti
07:32:30 -!- MDude has quit (Ping timeout: 240 seconds).
07:32:33 -!- MDead has changed nick to MDude.
07:35:56 -!- sleffy has quit (Ping timeout: 252 seconds).
07:40:00 -!- sleffy has joined.
07:45:32 <rdococ> nyeeh
07:50:46 <HackEgo> [wiki] [[K]] https://esolangs.org/w/index.php?diff=51771&oldid=51768 * Rdococ * (+88) /* Overview */
07:55:42 <HackEgo> [wiki] [[K]] M https://esolangs.org/w/index.php?diff=51772&oldid=51771 * Rdococ * (+1) /* Overview */
08:08:48 -!- Simm has joined.
08:10:38 -!- sleffy has quit (Ping timeout: 240 seconds).
08:13:14 <Nistur> mornin' all
08:15:36 <rdococ> NISTUR!
08:15:45 <rdococ> `? k
08:15:46 <HackEgo> K K K Ken
08:15:48 <rdococ> `? khompiler
08:15:50 <HackEgo> khompiler? ¯\(°​_o)/¯
08:15:54 <rdococ> `? khartridge
08:15:55 <HackEgo> khartridge? ¯\(°​_o)/¯
08:16:00 <rdococ> hm
08:16:02 <rdococ> `? brainfuck
08:16:04 <HackEgo> brainfuck is the integral of the family of terrible esolangs. The name is a euphemism for "beef". bf -c -t "+>+++++>+++" | mklang --array
08:17:28 <Nistur> RDOCOC! hello?
08:18:25 <rdococ> NISTUR! HELLO!
08:19:16 * Nistur nods
08:19:35 <rdococ> hm
08:20:07 <Nistur> I get the feeling that I might get looked down on here if I mention I've been playing with brainfuck? :P I gather it's the most boring and overused esolang, right?
08:20:53 <rdococ> nah
08:21:07 <rdococ> it's not the most boring and overused esolang.
08:21:15 <rdococ> its derivatives are a whole spectrum of crap tho.
08:21:37 <Nistur> ahh, so I don't have to claw back acceptence by saying I wrote a bf compiler in 8080 assembler? :P
08:21:44 <rdococ> sounds nice
08:21:44 <zzo38> Yes, mostly.
08:21:52 <zzo38> If you want to write a bf compiler in 8080 assembler that is OK.
08:22:11 <rdococ> of course, there are good bf derivatives. BitChanger comes to mind.
08:22:32 <rdococ> also, how about the picofuck project?
08:23:52 <Nistur> I got inspired before christmas by Hackaday's 1kB challenge... I wanted to try to write soemthing for some microcontroller in 1kB... so I decided that, as I'd written a 8080 emulator, I'd try and write something in bf for that... so the limit was 256B for the compiler, and 768B for the bf program... but I have no idea what program I'll write yet (also, I'm looooooong past the 1kB challenge end... but I
08:23:58 <Nistur> was never intending to enter)
08:25:12 <Nistur> I've got an (almost) complete compiler in 252B... it doesn't do input... adding non-blocking input back in would add 11B... blocking input would take... probably 20B more
08:26:32 <rdococ> btw: does the picofuck project allow nested loops, zzo38?
08:29:29 <HackEgo> [wiki] [[Khartridge]] M https://esolangs.org/w/index.php?diff=51773&oldid=51759 * Rdococ * (-6)
08:33:29 -!- AnotherTest has joined.
08:33:38 <rdococ> AnotherTest!
08:33:41 <rdococ> Yay!
08:49:05 <rdococ> AnotherTest!
08:54:51 <oerjan> Nistur: you might get more room for the bf program if you pack the commands into 3 bits
08:55:26 <Nistur> oerjan: yes... but then I'd have more space in the compiler as I'd have to decode it
08:55:31 <Nistur> I was considering that
08:56:34 <Nistur> I could probably do 4-bits quite easily... but then I couldn't just basically (in theory) burn some bf code to a chip
08:56:48 <oerjan> rdococ: you can definitely nest the picofuck commands.
08:57:22 <Nistur> https://github.com/nistur/8080bf/blob/master/src/bfc.asm <-- that's the compiler right now :)
08:58:58 <Nistur> https://github.com/nistur/8080bf/blob/master/src/hello2.asm <-- and I 'borrowed' some bf code from... I think from the esolangs wiki for that one... I don't actually have to assemble that, it just ends up as the bf with a $ on the end, padded to whatever I set MAXSIZE as... so I _could_ just use a plaintext file... but this way I get dynamic padding so *shrug*
08:59:31 <Nistur> also, I need to add attribution to the bf samples I've got there. I didn't actually mean to submit them -_- I don't like adding other people's work to my repositories
09:06:25 <rdococ> oerjan: I mean, is it treated like a while loop or like separate instructions?
09:07:40 <oerjan> rdococ: it depends what RBF commands it expands to
09:08:31 <rdococ> ah
09:08:34 <rdococ> that's what I meant
09:08:43 <rdococ> wait
09:08:45 <rdococ> I meant nanofuck
09:08:54 <oerjan> oh
09:09:03 <rdococ> idk, too many tiny fucks
09:10:27 <oerjan> right, nanofuck { and } nest like brackets
09:11:07 <oerjan> i'm not sure that we have any other than pico- and nano-
09:11:42 <oerjan> well with SI prefixes. there are smallfuck and tinybf.
09:14:09 <rdococ> plancofuck
09:14:14 <rdococ> one instruction
09:16:40 <oerjan> TRICKY
09:19:55 <rdococ> not if you cheat
09:20:24 <rdococ> have a list of instructions, say RBF instructions
09:20:38 <Nistur> https://en.wikipedia.org/wiki/One_instruction_set_computer <-- if you can have a single instruction set CPU... surely you could just replicate that with a *fuck?
09:20:57 <rdococ> and have each occurrence of the single instruction execute one of them based on IP modulo :P
09:22:06 <Nistur> trying to figure out how it'd have to work... as you only have the one cell to work with
09:23:21 <rdococ> ah
09:23:36 <rdococ> you can't turn an OISC into a OIfuck because OISCs often have parameters
09:23:40 <rdococ> BF instructions can't
09:24:29 <Nistur> yeah
09:24:36 <Nistur> I realise this
09:24:47 <Nistur> if you could initialise the tape beforehand it could work
09:24:54 * rdococ especially likes the toga computer one
09:26:58 <oerjan> rdococ: for that ip modulo thing to work, you'd need to be able to _not_ put the instruction at some positions ... but then you really have two instructions.
09:27:18 <rdococ> oerjan, not if you enable comments
09:28:01 <rdococ> oerjan, the number of programs is countably infinite. just have one number for each program and use the one instruction that many times.
09:28:21 <fizzie> That's just Unary.
09:28:24 <fizzie> https://esolangs.org/wiki/Unary
09:28:27 <rdococ> true.
09:28:52 <oerjan> rdococ: see the intro to https://esolangs.org/wiki/1L
09:29:16 <oerjan> rdococ: and then EOF is your other symbol hth
09:30:09 <rdococ> a language where eof is the only symbol
09:30:35 <oerjan> also, that modulo thing sounds like https://esolangs.org/wiki/Turning_tarpit
09:30:49 <rdococ> so more symbols than Unnecessary but fewer than Unary
09:31:31 <rdococ> I'm working on esoteric nonlangs at the moment
09:31:35 <rdococ> because esolangs are overrated :P
09:32:12 <oerjan> OKAY
09:32:17 -!- oerjan has quit (Quit: Nite).
09:36:21 <rdococ> hm
09:36:34 <rdococ> does rapidly alternating sound to achieve chords work well with sine waves?
09:40:14 <Jafet> you mean FM synthesis?
09:45:46 <rdococ> yes
09:46:41 <rdococ> I was wondering if I could use that in conjunction with the Fourier series to generate something reasonably close to any sound through one channel
09:48:33 -!- ybden has changed nick to bendy.
10:06:17 <rdococ> ah
10:06:17 <rdococ> https://en.wikipedia.org/wiki/Arpeggio
10:33:10 <FireFly> https://www.reddit.com/r/AskComputerScience/comments/660rwn/help_with_understanding_esoteric_languages/ ← so this thread might be of interest to this channel
10:35:48 -!- kiki` has quit (Quit: Connection closed for inactivity).
11:25:03 <zzo38> OK, now I read that
11:33:21 -!- boily has joined.
11:39:42 <boily> `wisdom
11:39:44 <HackEgo> monad//Monads are just monoids in the category of endofunctors.
12:12:01 -!- Phantom_Hoover has joined.
12:12:01 -!- Phantom_Hoover has quit (Changing host).
12:12:01 -!- Phantom_Hoover has joined.
12:13:45 -!- Phantom_Hoover has quit (Client Quit).
12:27:34 -!- boily has quit (Quit: IMAGINARY CHICKEN).
12:49:55 -!- AnotherTest has quit (Ping timeout: 255 seconds).
13:08:28 -!- AnotherTest has joined.
13:11:01 -!- ais523 has joined.
13:13:51 <alercah> whoa UK election
13:16:10 <alercah> ais523: what did you do
13:16:39 <ais523> me personally? not very much that's relevant
13:16:51 <ais523> other than voting Remain, I guess
13:17:07 <ais523> but I'm actually surprised this didn't happen earlier
13:17:45 <ais523> I was expecting it to happen before the Article 50 trigger, rather than afterwards
13:17:53 <ais523> (doing it afterwards rather makes a mockery of the stated timing for it)
13:19:14 <ais523> there are a lot of potential outcomes here, though (and the fact that the Conservatives have enough votes for it – they do, according to all media reports – implies that at least one of the parties is overestimating their chances for how the election will go)
13:20:30 <ais523> we're in a weird spot at the moment where the majority of political parties are much lower on credibility than they normally are
13:29:51 <b_jonas> huhwhat
13:32:29 <ais523> b_jonas: it was a complete surprise, especially because the government said that the timing for article 50 was based on getting everything done before the next election
13:32:42 <ais523> having a snap general election kind-of tears the nation's attention in multiple directions at once
13:34:36 -!- erkin has joined.
13:34:41 <b_jonas> ais523: yes, that's a bit strange. you usually want new general elections only if the parliment is in a stalemate where they can't elect a proper government.
13:36:11 <alercah> It's a bit weird to have done it after, I agree, but it makes sense politically
13:36:31 <alercah> May never had an electoral mandate; this would give her one to implement Brexit as she wants
13:36:40 <alercah> And the opposition clearly think they can sink her
13:36:43 <ais523> well, in this case, we have an unelected prime minister with a very shaky majority (the Conservatives collectively only have a few votes above what they need to force through laws, but the individual Conservatives who hold those votes don't agree on everything, so a rebellion of a small number of MPs can defeat the government)
13:37:00 <alercah> I mean, the reason for doing it after Article 50 is very clear, it's to prevent the election from being a second referendum
13:37:06 <ais523> alercah: I've seen the theory that Labour MPs are agreeing to it to get rid of Corbyn
13:37:18 <alercah> ais523: heh, possible!
13:37:36 <alercah> on the basis that nobody can stop Brexit now that A50 has been triggered
13:37:52 <ais523> it's believed that in practice reversing Brexit would be fairly simple
13:38:09 <ais523> you could almost certainly get the EU to change their rules to allow it to be halted, if Britain had the desire to halt it
13:38:30 <alercah> yeah, likely
13:38:44 <ais523> and that is, if it isn't reversible at the moment (according to the person who wrote the text of A50, it was meant to be; the article itself doesn't state an opinion)
13:38:46 <b_jonas> alercah: our traidtion established by the three times it's happened is that it doesn't matter if the new minister-president doesn't have a "mandate" from an election, he gets the mandate from the parliment anyway, because in the elections you choose representatives to the parliment, not a government directly
13:39:06 <alercah> b_jonas: while that's true from a legal point of view, poitically it's very different
13:39:11 <ais523> b_jonas: that's the rule here as well
13:39:25 <alercah> it is far easier for a government to act when it has a fresh electoral mandate
13:39:37 <b_jonas> politically, for the parlimentary elections, the parties do campaign by stating what government they want and who they'll put as the prime minister, but that doesn't matter, because those parties also campaign by claiming a lot of other lies
13:39:37 <ais523> most Brits concede that Theresa May has a right to be PM – mostly because she was the only Conservative willing to do the job – but are mildly annoyed at how things worked out
13:39:38 <alercah> *politically
13:39:54 <b_jonas> I don't know why a prime minsiter would be any different from other hollow election promises
13:40:11 <ais523> in the UK parties don't normally even promise a specific prime minister
13:40:20 <ais523> it's just normally obvious who it will be (the leader of the party in question)
13:40:50 <ais523> alercah: did you see the time when the SNP attempted to become the official opposition party? that was hilarious
13:40:54 <ais523> and I have to concede they had a point
13:41:20 <ais523> (basically, it was a time of huge front-bench Labour rebellion against Corbyn, and Sturgeon claimed she had more support than Corbyn did among MPs)
13:41:33 <b_jonas> alercah: "on the basis that nobody can stop Brexit now that A50 has been triggered" => I still don't buy this. the rule about article 50 is that Brexit is now the default if there's no strong agreement among the EU members and Britain in two years. They're still expected to do talks and agree on some saner method, which _probably_ involves a Brexit, but with lots of special rules, but could be a non-Brexit if politically advantageous.
13:43:51 <alercah> ais523: hahaha
13:44:03 <b_jonas> \ They're still expected to do talks and agree on some saner method, which _probably_ involves a Brexit, but with lots of special rules, but could be a non-Brexit if politically advantageous.
13:44:07 <alercah> b_jonas: yes, it's true
13:44:21 <ais523> alercah: the Speaker eventually decided that the rules didn't work like that, but he apparently took the request fairly seriously
13:45:37 <alercah> ais523: as he should!
13:45:59 <ais523> indeed
13:48:35 -!- idris-bot has joined.
14:06:15 -!- moony has joined.
14:06:23 -!- int-e has quit (Ping timeout: 260 seconds).
14:06:40 <moony> I decided to try making a golfing language, using as many unicode characters as possible (which opens up about 16k commands as a possibility)
14:06:52 -!- Zarutian has joined.
14:07:05 -!- int-e has joined.
14:07:09 -!- Zarutian has quit (Read error: Connection reset by peer).
14:07:36 <ais523> moony: note that that's not a great way to score points on PPCG, they count programs in bytes (in any encodin the language supports)
14:08:58 -!- Zarutian has joined.
14:09:06 <moony> Yea, i know. Im taking stack overflow golf in mind (which often does counting in characters)
14:09:22 <b_jonas> moony: maybe look at http://esolangs.org/wiki/Sclipting
14:09:59 <b_jonas> (not that I endorse this, but if you want to make a golfing language, look at the precedents)
14:10:19 <ais523> moony: it only counts in characters if you have a 256-byte character set, at least nowadays
14:10:23 <ais523> err, 256-entry character set
14:10:27 <ais523> (or less)
14:11:10 <moony> mk
14:11:57 <b_jonas> `quote
14:12:00 <b_jonas> `scheme
14:12:03 <HackEgo> Choose Your Champion
14:12:03 <HackEgo> 250) <oklopol> quintopia: no i'm not laughing at you, i'm laughing because *you're stupid* <oklopol> i mean <oklopol> with you
14:25:37 <ais523> anyone know why https://esolangs.org/wiki/Category:2017 is missing a ton of entries logged out, but not while logged in?
14:27:44 <b_jonas> fizzie: ^
14:28:23 <b_jonas> ais523: can reproduce, dunno
14:28:53 <fizzie> Huh.
14:29:34 <fizzie> That's odd.
14:29:46 <fizzie> I'm guessing maybe some sort of a caching thing.
14:29:48 <Jafet> the logged-out version is cached from january
14:29:59 <Jafet> Cached time: 20170129015828
14:30:22 <Jafet> I don't know if this is supposed to clarify anything
14:31:04 <fizzie> I think we've had some problems with category page caching before.
14:31:12 <fizzie> Unfortunately I don't remember the details.
14:31:53 <fizzie> https://www.mediawiki.org/wiki/Manual:File_cache "Category and image description pages aren't purged from file cache. For example, adding or removing a page from a category doesn't update the category page, causing not logged in users to not see the changes in the category page. This is a known limitation. See task T26575"
14:32:02 <fizzie> Yeah, it was that thing.
14:32:20 <Jafet> moony: there's Sclipting
14:33:07 <fizzie> https://phabricator.wikimedia.org/T26575 open since 2010.
14:33:22 <b_jonas> Jafet: YES! that's what I said too
14:33:29 <Jafet> are you sure? maybe you're viewing a cached version
14:33:37 <int-e> does https://esolangs.org/wiki/Category:2017?action=purge work with sufficient privileges?
14:33:57 <int-e> (not a solution, obviously, but may reduce the embarrassment a bit)
14:34:29 <b_jonas> int-e: no, I tried
14:34:44 <b_jonas> I'd say we should blame cloudfare
14:34:59 <fizzie> Even though we're not using it?
14:35:48 <fizzie> There's a maintenance PHP script I run when I upgrade versions which purges all cached stuff.
14:35:59 <ais523> int-e: I tried too, it doens't help
14:36:13 <fizzie> I last did this in Jan 28th, which is probably why the cached copy is from Jan 29th.
14:36:32 <b_jonas> :-(
14:36:38 <ais523> and the 2017 category is the most obvious
14:36:48 <ais523> because the older year categories don't change much and the nonyear categories are too large
14:37:23 <fizzie> I could rerun rebuildFileCache.php every now and then, I guess.
14:37:28 <Bowserinator> @part
14:37:28 <lambdabot> Not enough privileges
14:37:43 <int-e> @slap Bowserinator
14:37:43 * lambdabot karate-chops Bowserinator into two equally sized halves
14:39:00 <Jafet> b_jonas: 是hocking
14:39:30 <Bowserinator> wat
14:40:41 <Jafet> I wonder why mediawiki even maintains two cached versions
14:41:18 <b_jonas> two?
14:41:34 <b_jonas> oh, you mean one for logged in and one for logged out users?
14:41:39 <b_jonas> are you sure the former is cached?
14:42:01 <fizzie> There is no (FileCache) cache for logged-in users.
14:42:54 <fizzie> I wonder if I can just remove the cached .html files. Presumably.
14:42:58 <Jafet> “Cached time: 20170418133312”
14:43:30 <fizzie> That looks to have worked.
14:43:31 <b_jonas> sorry, luckily I'm a bit ignorant about the internals of mediawiki
14:43:57 <Jafet> also the “Cache expiry”, whose value is 86400, would seem to have not been implemented
14:44:36 <fizzie> Jafet: FileCache doesn't have expiration, no.
14:45:07 <Jafet> is the cache actually necessary?
14:45:12 -!- `^_^v has joined.
14:45:53 <fizzie> I don't know about "necessary", I haven't really touched the existing setup.
14:46:10 <fizzie> I do think most browsing happens non-logged-in, though, so presumably it's doing something.
14:46:44 <b_jonas> and mediawiki rendering is expensive
14:47:58 <int-e> I expect it'll help if the wiki is ever brought up on a popular reddit thread... which isn't impossible.
14:48:26 <int-e> (I almost wrote "slashdot"
14:48:27 <int-e> )
14:48:54 <fizzie> Anyhow, the "Cached time:" for logged-in users probably has something to do with the memcached thing.
14:49:32 <fizzie> AIUI, $wgUseFileCache = true is pretty much separate from $wgMainCacheType = CACHE_MEMCACHED, both of which we do.
14:50:35 <fizzie> The former caches the full sent-to-browser HTML output on disk, and only applies to logged-out users.
14:51:24 <fizzie> The latter I believe is a more of an object cache.
14:51:30 <b_jonas> fizzie: and action=purged applies to the latter?
14:51:51 <b_jonas> um
14:51:58 <b_jonas> action=purge
14:52:37 <fizzie> Well, I don't know. The file cache docs do mention action=purge, but it didn't seem to do anything.
14:52:43 -!- AnotherTest has quit (Ping timeout: 240 seconds).
14:53:43 -!- AnotherTest has joined.
14:59:10 <HackEgo> [wiki] [[Trajedy]] https://esolangs.org/w/index.php?diff=51774&oldid=51291 * Ais523 * (+2) links to userpages must be marked (Esolang policy); if you want to change your username, let me know
14:59:27 <ais523> Jafet: ^
15:00:14 <Jafet> sure
15:00:35 <Jafet> (I'm fine with that edit)
15:01:43 -!- atslash has joined.
15:01:55 <ais523> what's the "sure" referring to?
15:03:15 <Jafet> the thing I added after it
15:03:20 -!- Zarutian has quit (Quit: Zarutian).
15:04:27 <ais523> right
15:05:58 <Jafet> if you're doing maintenance, I suggest looking at the backlog of https://esolangs.org/wiki/Esolang_talk:Categorization
15:08:08 <ais523> it's not clear whether there is a backlog there, as it's not clear what the process is when someone makes a category proposal and then nothing happens
15:08:53 <ais523> if someone wanted to make the musical esolang category, I wouldn't stop them though
15:09:00 <ais523> it seems like there's enough consensus
15:10:15 <Jafet> perhaps the first backlog is the lack of a process
15:11:19 <ais523> this is a common problem in Esolang
15:11:32 <ais523> (the opposite issue is that when there /is/ a process, nobody wants to put in the effort to go through with it)
15:12:45 <Jafet> well, I suspect that people think there is a process proscribing them from just adding new cats
15:16:43 <ais523> the rule is that you don't create new categories without agreement; and this is a descriptive rule rather than a prescriptive rule (i.e. people who did it had a tendency to get banned, back when graue was in charge, so we added the rule to try to reduce the frequency with which that happened)
15:16:57 <ais523> I assume that if there /is/ agreement, therefore, you can add them
15:21:18 -!- augur has joined.
15:23:14 -!- augur_ has joined.
15:26:26 -!- augur has quit (Ping timeout: 255 seconds).
15:34:09 <b_jonas> ais523: exactly, now nobody creates new categories because that note discourages them, and this too is descriptive, not prescriptive, that is, it's still allowed to create new categories
15:34:36 <ais523> yep
15:34:52 <ais523> that said, the number of categories we currently have is fairly large already
15:35:03 <ais523> so there being a bit of a higher bar to making them probably isn't that much of a big deal
15:35:36 <b_jonas> ais523: yeah. if I ever get around to create the articles in my TODO, then we'll have six articles related to IOCCC, so then I'll create an IOCCC category
15:36:03 <ais523> that might be better as a list than a category
15:36:03 <b_jonas> but categorization isn't that important on this small wiki anyway
15:36:12 <b_jonas> esolangs defy categorization by nature
15:36:23 <ais523> like, a See Also on an article about the IOCCC
15:36:32 <b_jonas> perhaps
15:37:24 <b_jonas> and "IOCCC" is easily searchable anyway, so we might not need a category
15:40:16 <b_jonas> ais523: when you weren't here, I mentioned that a lot of people on PPCG seem to have created all sorts of esolangs, of the more useful kind that can be used to write actual programs for golf challenges (not necessarily golf solutions, just solutions that can be written by a human and executed by an interpreter successfully),
15:40:43 <ais523> I'm not sure that golflangs even are esolangs
15:40:51 <b_jonas> and that some of those languages are probably interesting and would be worth an entry on esolang and we don't know about them because there's too few overlap between the two communities.
15:40:53 <ais523> although I think it's appropriate for esolangs.org to cover thejm
15:41:18 <ais523> TIO uses a split between "practical languages" and "recreational languages" (the latter category includes both golflangs and esolangs)
15:41:21 <b_jonas> ais523: they need not be golflangs. I'd count even something like brainfuck, because people try to golf in it, even when they know very well that the result will be longer than if they just wrote something in perl.
15:41:57 <ais523> well, I guess there's Brain-Flak (and maybe JSFuck) as massively verbose languages which people try to golf in
15:41:58 <b_jonas> ais523: I'm not specifically interested in the golflangs here, I'm just saying they're not very theoretical languages that can't even be implemented for theory reasons, or ones in which nobody will write programs
15:42:13 <ais523> well, right, PPCG care a lot about languages having interpreters
15:42:20 -!- augur_ has quit (Ping timeout: 240 seconds).
15:42:23 <ais523> whereas on esolangs.org the specification is much more important
15:42:34 <ais523> on PPCG, a language doesn't even exist if the interpreter doesn't work (and can't legally be used even if you fix it)
15:43:23 <b_jonas> ais523: sure, and people don't submit entries if they can't write them
15:45:17 <b_jonas> ais523: so I was looking at Hello, World https://codegolf.stackexchange.com/questions/55422/hello-world , which is clearly a bad question to look at, because it has answers in languages nobody would use for almost any other task
15:45:43 <ais523> yep, it's a catalogue question, and those are frowned on at PPCG
15:45:51 <ais523> they want a few but creating new ones tends to get you shouted at
15:46:02 <b_jonas> and as usual on long SE threads, people answer it without reading existing answers, so it has actual fucking duplicates,
15:46:38 <b_jonas> but it has an interesting non-duplicate which surprised me, namely that there are two languages called Hodor that are apparently unrelated to each other
15:46:51 <b_jonas> (it does have real dups too, mind you)
15:47:00 <ais523> there's a JS program in the question that lists all the answers in alphabetical order by language
15:47:04 <ais523> that should make dupe checking fairly easy
15:47:44 <b_jonas> so anyway, that's the wrong question to look at. what I'd be more interested in is what languages there are that more than one people regularly use to write programs on PPCG, and that we don't know about
15:47:50 <b_jonas> because we should know about such languages
15:48:12 <b_jonas> some of them might turn out to be interesting (some might not of course, but I let's not bash Java now)
15:48:32 <ais523> Java is interesting IMO
15:48:41 <ais523> not sure it's well-designed, but its shortcomings are interesting to think about
15:49:38 <b_jonas> and Java is worth at least knowing about just for its cultural significance, just like BF is, no matter how good or bad or uninteresting languges they are
15:55:38 <HackEgo> [wiki] [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=51775&oldid=51751 * D2alphame * (+372) /* Introductions */
15:56:39 <Taneb> I should probably actually learn Java at some point
15:56:58 <shachaf> Why?
15:57:22 <Taneb> So I can say I dislike it with a clean conscience
15:58:25 <moony> heh
15:58:49 <moony> i tried it. i disliked it. i tried haskell, i liked it, but it was too much math for me. i tried rust, i liked it, i stuck with it.
16:00:17 <b_jonas> I read about Java at one point. That was long ago, and Java has changed since. It seemed... bland to me. As in, it was a language that was made to be uncontroversial, taking the then known wisdom about interpreters and stuff, and building a language
16:00:31 <b_jonas> that has the things a language clearly should have, and avoiding most of the more experimental crazy stuff.
16:00:49 <b_jonas> It sort of seems like scheme in that respect, but a decade or two later.
16:05:05 <b_jonas> but I hear java has changed a bit since, though probably not as much as PHP
16:05:21 <ais523> Java's backwards compatibility is really something of an anchor on it at this point
16:05:55 <ais523> also, its standard library doesn't have much of a unified vision
16:06:08 <ais523> it acts like a collection of unrelated libraries from different vendors
16:09:56 <b_jonas> ais523: backwards compatbility => that's true to a lot of software, not just Java, and I think it's part of the uncontroversial wisdom. everyone knows that a programming language should be backwards compatible, so that you have to spend less time on fixing bitrot of old and well working libraries. that's why we still have Fortran compilers, even if we know the problems with fortran.
16:10:08 <HackEgo> [wiki] [[User:D2alphame]] N https://esolangs.org/w/index.php?oldid=51776 * D2alphame * (+282) Created page with "==D2alphame== Programmer, chess player, cuber, checkers player, mathematically-minded, Nigerian, analytical, Nihongo no gakusei. I love programming! See my [https://github.com..."
16:10:24 <b_jonas> "standard library doesn't have much of a unified vision" => don't all sufficiently old languages get that eventually?
16:10:58 <b_jonas> because of back compat, the library can only grow, not shrink, and it gets added parts that were only de facto standard because programs depend on half-ready extensions
16:11:11 <ais523> there are some changes which wouldn't make any negative difference to 99.9% of programs and yet would make any programs easier to write
16:12:15 <ais523> a simple example would be changing Object#getClass from a method on Object only that returns Class<?>, to a method on every class that returns Class<? extends that class>
16:12:26 <b_jonas> ais523: what effect would it have on those very few programs that it could change? proper error messages about incompatibility, or undebuggable random "segfaults"?
16:12:35 <ais523> this would make the type system accept some things that are obviously safe but don't currently correctly type
16:12:51 <ais523> and I don't think you'd even notice it unless you were really trying hard to contrive a situation where it matters
16:13:18 <ais523> I guess it could screw up overload resolution if you had some really specific overloads?
16:13:28 <ais523> not even sure on that though
16:13:28 <b_jonas> because undebuggable segfaults at remote parts of the program in very contreived cases is what stops some of the "improvements" that seem reasonable
16:13:36 <b_jonas> outside of Java-land that is
16:14:00 <ais523> Java never segfaults, barring buggy libraries and extensions
16:14:13 <b_jonas> ais523: yeah, I know, which is why I used quotes
16:14:13 <ais523> the equivalence is random ClassCastExceptions
16:14:18 <ais523> which tend to be much more debuggable
16:14:22 <ais523> *equivalent
16:14:30 <b_jonas> ais523: anyway, could this be solved by adding a new method rather than changing getClass instead?
16:14:46 <ais523> you can't pick any possible name for it that doesn't potentially clash with some method that already exists
16:14:53 <ais523> Java's namespacing is fairly poor
16:15:37 <ais523> it's easy enough to write a static method to replicate the functionality, though (although doing so requires a cast that the compiler can't prove safe, it actually is safe, so you can just suppress the warning)
16:18:42 <b_jonas> ok
16:33:56 -!- sleffy has joined.
16:37:14 -!- augur has joined.
16:46:26 -!- S1 has joined.
16:53:43 -!- S1 has changed nick to Herbstkind.
17:17:22 -!- atslash has quit (Ping timeout: 258 seconds).
17:18:02 -!- bendy has changed nick to ybden.
17:18:15 -!- atslash has joined.
17:20:31 -!- FreeFull has joined.
17:28:00 -!- `^_^v has quit (Quit: Leaving).
17:28:10 -!- `^_^v has joined.
17:35:53 <\oren\> Is there a polite way to say "I'm not moving to a potential war zone are you mental?!"
17:38:20 <b_jonas> \oren\: um, if I'm representative, I'm not sure this channel of nerds is good at helping you in diplomatic ways to phrase stuff in formal letters
17:39:31 <b_jonas> \oren\: but if I was asked to take up a job in Israel, and wanted to say that politely, I could refer to that I have an aged grandmother and other family who binds me to here and I don't want to get too far from them when they are in need, and I think you can say that even if it's not quite honest
17:39:52 <b_jonas> only I'm not sure how risky it is to say that if you do want to move to America for a job
17:42:23 <b_jonas> but ask someone who's better at not saying stupid things than me
17:44:35 <\oren\> I see...
18:02:54 -!- hppavilion[1] has joined.
18:03:13 <hppavilion[1]> ...
18:03:45 <hppavilion[1]> I'm reading sheet music, and I'm pretty sure this chord has an acúte accent
18:04:02 <hppavilion[1]> *ácute
18:06:30 <hppavilion[1]> (not to be confused with a gràve, a dőuble acute, a dȍuble grave, a line̍ above, or a do̎uble line above)
18:06:50 <b_jonas> hppavilion[1]: don't they use such things as intonation marks with sometimes multiple meanings depending on who writes them?
18:07:11 <hppavilion[1]> (Or, if you're particularly dull, a diæ̈resis or a tidlė)
18:07:15 <hppavilion[1]> b_jonas: Maybe?
18:07:24 <hppavilion[1]> b_jonas: I really just need to know how to put it in Lilypond
18:09:33 <hppavilion[1]> Maybe like a Caesura?
18:10:06 <b_jonas> hppavilion[1]: as in https://en.wikipedia.org/wiki/Accent_(music)
18:10:38 -!- AnotherTest has quit (Ping timeout: 240 seconds).
18:10:42 <hppavilion[1]> b_jonas: Yeah, but I can't find the one I'm seeing
18:12:18 <b_jonas> hppavilion[1]: do you know its meaning?
18:12:23 <hppavilion[1]> b_jonas: http://www.everyonepiano.com/pianomusic/005/0004121/0004121-w-b-1.png, measures 25 and 26 (go by the numbers above the first measure of each line) in the bass... stave?
18:12:25 <hppavilion[1]> b_jonas: Nope
18:13:31 <b_jonas> wait, I think that one is something different, not an articulation mark... though I don't recall what it is
18:13:39 <b_jonas> it looks like a bare bar
18:13:42 <b_jonas> let me try to find what it is
18:14:12 <b_jonas> s/bar/beam/
18:14:36 <b_jonas> I seem to remember I've seen something like that
18:16:22 <b_jonas> hpp: can it be this notation: https://en.wikipedia.org/wiki/Tremolo
18:16:43 -!- sleffy has quit (Ping timeout: 240 seconds).
18:17:06 <b_jonas> though I think that's always two or more beams, so it might not match
18:17:19 <b_jonas> hmm no, apparently it can be one beam
18:29:13 -!- hppavilion[1] has quit (Ping timeout: 240 seconds).
18:31:14 -!- hppavilion[1] has joined.
18:37:38 -!- otherbot has joined.
18:42:11 <\oren\> Oh hey, the facebook killer shot himself
18:42:23 -!- atslash has quit (Read error: Connection reset by peer).
18:47:34 <shachaf> Aha: https://www.mercurial-scm.org/wiki/4.0sprint
18:47:48 -!- atslash has joined.
18:57:20 <\oren\> TESLA FREIGHT TRUCK YAS
18:57:37 -!- Zarutian has joined.
18:59:13 <\oren\> ELECTRIC LORRY!
19:03:10 -!- dingbat has quit (Quit: Connection closed for inactivity).
19:03:58 -!- nycs has joined.
19:04:37 <hppavilion[1]> OK, what the hell
19:04:42 <hppavilion[1]> Were there only 4 people in history?
19:05:08 <hppavilion[1]> Because Mary Shelley was inspired to write The Modern Prometheus after hearing her husband speak to Lord Byron about Galvanism
19:06:13 <hppavilion[1]> Lord Byron being another famous author (writing exempli gratia Don Juan and Epitaph to a Dog) who was ALSO the father of Ada Lovelace
19:06:30 -!- `^_^v has quit (Ping timeout: 240 seconds).
19:11:30 -!- MiningMarsh has joined.
19:15:08 <Taneb> hppavilion[1], a lot of people became famous because of their connections
19:15:12 <Taneb> And the Bryons were rich
19:22:01 -!- Herbstkind has quit (Quit: Leaving).
19:26:19 -!- atslash has quit (Read error: Connection reset by peer).
19:26:42 <moony> `relcome MiningMarsh
19:26:45 <HackEgo> MiningMarsh: 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:26:48 <moony> (have you been here before?)
19:28:47 -!- hppavilion[1] has quit (Ping timeout: 260 seconds).
19:37:13 -!- augur has quit (Remote host closed the connection).
19:37:49 -!- augur has joined.
19:38:17 <b_jonas> oh, great!
19:38:58 <b_jonas> so... I'm clearly stupid for not having noticed this before, but apparently sometime between windows 7 and now, MS has fixed these stupid ribbon bars so that the tooltip of buttons on them now do show the shortcut key for the command
19:39:32 <b_jonas> the old behavior of not showing the shortcut key anywhere was so stupid, it meant only old people like me could navigate programs, because we could guess what the shortcuts are from the time when they showed up in pulldown menus
19:40:05 <b_jonas> and even I often couldn't guess
19:40:22 -!- AnotherTest has joined.
19:41:14 -!- hppavilion[1] has joined.
19:42:29 -!- augur has quit (Ping timeout: 255 seconds).
19:46:09 -!- MiningMarsh has quit (Ping timeout: 268 seconds).
19:54:04 -!- atslash has joined.
19:56:15 -!- MiningMarsh has joined.
19:56:30 -!- MiningMarsh has changed nick to MinMar.
20:02:03 -!- nycs has quit (Quit: This computer has gone to sleep).
20:02:56 -!- `^_^v has joined.
20:05:08 -!- MinMar has quit (Ping timeout: 260 seconds).
20:07:10 -!- erkin has quit (Quit: Ouch! Got SIGABRT, dying...).
20:08:30 -!- hppavilion[1] has quit (Ping timeout: 240 seconds).
20:18:03 -!- hppavilion[1] has joined.
20:22:28 <HackEgo> [wiki] [[Jot]] https://esolangs.org/w/index.php?diff=51777&oldid=47168 * Hppavilion1 * (+58) Pronunciation
20:23:00 <fizzie> "Ladies and gentlemen, a good service is operating on all London Underground lines. All other lines are operating a good service."
20:23:00 <shachaf> Did you remove the e from "Goedel" on purpose?
20:23:10 <shachaf> I don't think this "presumably" is really the right tone for this wiki.
20:23:22 <shachaf> Maybe if you want to have a conversation about it you can do it in the talk page.
20:24:05 <shachaf> fizzie: wrong channel hth
20:25:00 <shachaf> hppavilion[1]: The above is for you.
20:26:33 <fizzie> shachaf: I wasn't sure if it was amusing enough for the right channel, and the bar's lower here.
20:26:48 <shachaf> Is it really?
20:27:02 <hppavilion[1]> shachaf: I added a diæresis, but it was combining, so if your font sucks it might not render
20:27:04 <shachaf> It's more on-topic than the current conversation in that channel.
20:27:30 <shachaf> p. sure you didn't hth
20:27:44 <HackEgo> [wiki] [[Jot]] M https://esolangs.org/w/index.php?diff=51778&oldid=51777 * Hppavilion1 * (+1) Fixed diacritic. Happy, shachaf?
20:27:54 <shachaf> No, I was doing my best to keep my name off that wiki.
20:28:04 <shachaf> And now it's there and won't ever go away.
20:28:06 <hppavilion[1]> :(
20:28:07 <shachaf> I'm pretty irritated.
20:28:16 <hppavilion[1]> *sigh* of course
20:28:23 <hppavilion[1]> shachaf: Sorry.
20:28:36 -!- minmar has joined.
20:28:54 -!- minmar has changed nick to MinMarsh.
20:29:20 <shachaf> Also you should get rid of or fix that pronunciation parenthetical.
20:29:24 <shachaf> As mentioned above.
20:30:03 <shachaf> I suspect your pronunciation is just wrong, too, but I don't know.
20:32:09 <HackEgo> [wiki] [[Jot]] https://esolangs.org/w/index.php?diff=51779&oldid=51778 * Hppavilion1 * (-25) Dropped 'presumably', added other possible pronunciation at Voldemort's behest.
20:33:23 <shachaf> I think you should remove the whole thing. Why are you an authority on how to pronounce this name?
20:33:31 <shachaf> I would pronounce it like the English word "jot".
20:40:53 * rdococ 's favourite pronunciation is /jot/
20:42:13 -!- hppavilion[1] has quit (Ping timeout: 240 seconds).
20:46:07 <\oren\> shachaf: wait why wouldn't you want 'shachaf' to be on the wiki? i mean, the wiki links to the logs for this channel which obviously contain <shachaf> over and over for literally years
20:46:16 <rdococ> ...
20:46:25 <shachaf> But that's not in the wiki.
20:46:38 <\oren\> uhhhhhhhh what
20:46:42 <rdococ> why does it matter anyway?
20:46:47 <shachaf> That's in the logs.
20:46:55 <rdococ> it's not like your mention in the wiki is going to jump out and kill you
20:46:58 <shachaf> \oren\: did you fix your build system yet twh
20:47:04 <\oren\> no
20:47:18 <shachaf> why not
20:47:21 <shachaf> it's holding you back
20:47:53 <ais523> shachaf: I can do a history delete on the wiki if necessary
20:48:01 <rdococ> -_-
20:48:27 <rdococ> nothing is necessary
20:48:30 <ais523> well, no
20:48:38 <ais523> but I've never had the opportunity to do this before
20:48:44 <HackEgo> [wiki] [[Special:Log/delete]] revision * Ais523 * Ais523 changed visibility of a revision on page [[Jot]]: edit summary hidden: Inappropriate comment or personal information
20:49:09 <ais523> there, I hid the edit summary
20:49:25 <shachaf> Oh man, I was going to say it isn't necessary.
20:49:42 <shachaf> Now the fact that I've made you go to the trouble of doing it means I'll be even less likely to sign up for the wiki in the future.
20:49:47 <shachaf> In order to reduce cognitive dissonance.
20:49:54 <int-e> ais523: now just wait for the cache to expire...
20:50:06 <shachaf> I still see the edit in https://esolangs.org/w/index.php?title=Jot&action=history
20:50:10 <shachaf> I guess it's just a cache?
20:50:22 * rdococ facepalms extremely hard
20:50:24 <int-e> shachaf: yes, I only see it when not logged in
20:50:36 <ais523> you could sign up under a pseudonym
20:50:51 <ais523> I'm lagging again, aren't I?
20:51:16 <rdococ> ...
20:51:22 <ais523> I'm lagging again, aren't I?
20:51:36 <shachaf> 12:50 <ais523> I'm lagging again, aren't I?
20:51:36 <shachaf> 12:51 <rdococ> ...
20:51:36 <shachaf> 12:51 <ais523> I'm lagging again, aren't I?
20:51:41 <rdococ> ...
20:51:44 <pikhq> ...
20:51:47 <\oren\> sign up as "fashach"
20:51:48 <ais523> [CTCP] Received CTCP-PING reply from ais523: 62 seconds.
20:51:49 <shachaf> I didn't answer your question because I don't know how to answer.
20:52:05 <shachaf> fashachism
20:52:06 <rdococ> * Ping reply from ais523: 0.703 second(s)
20:52:11 <\oren\> sign up as "fatchash"
20:52:14 <rdococ> "faschach"
20:52:32 <rdococ> "fæschætch"
20:52:42 <rdococ> "phaschatsch"
20:52:45 <ais523> shachaf: it's OK, I mostly only asked the question for its side effects and was planning to discard the return value
20:52:56 <shachaf> I see.
20:53:27 <\oren\> oh wait shachaf means something right...
20:53:57 <shachaf> In elementary school people would distort my name as "fachash".
20:54:15 <rdococ> again, "Phaschatsch".
20:54:32 <shachaf> Can you just stop it, rdococ?
20:54:45 <rdococ> you're right. I'm worthless here.
20:54:46 -!- rdococ has left ("Leaving").
20:54:51 <moony> haha
20:54:57 <myname> fachschaft
20:55:00 <\oren\> shachaf: ok what about "PkMnWingull87" noone will suspect a thing
20:55:31 <shachaf> `` echo PkMnWingull87 | base64 -d 2>/dev/null
20:55:32 <HackEgo> ​>C'Z)àºY|
20:55:44 <ais523> now I'm wondering if the PK and MN digraphs are in Unicode
20:56:04 <ais523> if they aren't, how are we going to convert files stored in Pokémon's internal text file format for archival?
20:56:05 <\oren\> I should totally add those to my font
20:56:17 <zzo38> Easy; don't use Unicode.
20:56:23 <\oren\> ais523: I'll message the Unicode mailing list
20:56:28 <myname> oren should totally propose those
20:56:39 <ais523> we should make sure they aren't there first
20:56:41 <ais523> stranger things have happened
20:56:42 <zzo38> (Alternatively, use private use codes. Or, better, don't use Unicode, but provide a mapping to Unicode with \oren\'s font!)
20:56:49 <int-e> Huh, I didn't know that Phil Katz died in 2000
20:57:01 <ais523> this sort of reasoning is basically how emoji ended up in Unicode, after all
20:57:59 <\oren\> myname: I'll write an email later once I've taken a full enventory of the characters needed
20:58:28 <zzo38> I could add such digraphs into the UTCE document though I suppose. (It also includes a partial Unicode mapping, but only for characters that actually exist in Unicode.)
20:58:36 <shachaf> `? inventory
20:58:38 <HackEgo> An inventory is a collection of inventions.
20:59:26 -!- MinMarsh has quit (Ping timeout: 245 seconds).
21:00:18 -!- rdococ has joined.
21:00:58 -!- sleffy has joined.
21:02:47 <rdococ> COME FROM freenode;
21:02:57 <\oren\> iirc, the ones that aren't in unicode include Pk, Mn, Po, Ke, the P with two strokes used for the games' currency,
21:10:11 -!- ais523 has quit (Remote host closed the connection).
21:10:34 -!- ais523 has joined.
21:13:40 -!- hppavilion[1] has joined.
21:15:11 -!- sleffy has quit (Ping timeout: 260 seconds).
21:16:20 -!- moony has quit (Remote host closed the connection).
21:17:12 -!- sleffy has joined.
21:22:30 -!- lambdabot has quit (Ping timeout: 240 seconds).
21:24:48 -!- erkin has joined.
21:25:16 <rdococ> well, I'll be busy creating more stupid crap.
21:25:30 <rdococ> what kind of stupid crap do people want me to create tonight?
21:28:11 <ais523> write a language which is easy to disguise as something else
21:28:18 <ais523> my experience on PPCG is that we can /always/ do with more of those
21:28:25 <ais523> assuming they're implemented
21:28:27 <ais523> even if they're fairly stupid
21:28:42 <ais523> (we've been resorting to plumbing the depths of BF derivatives on occasion…)
21:31:03 <Jafet> fortunately they're in no short supply
21:32:49 -!- contrapumpkin has quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…).
21:34:54 <int-e> . o O ( Universal brainfuck reads the first 8 characters of a program, which it interprets as [>+,.-<] in that order. The remainder of the program is interpreted as a brainfuck program using that encoding. Any valid brainfuck program can be turned into a valid universal brainfuck program by prepending [>+,.-<] though that transformation will not preserve quines. )
21:35:30 <zzo38> So that I can know for in future, is there a command in vim to exchange a character with the next one?
21:35:45 <int-e> something like this should be useful for all those challenges that constrain the usable chracter set. You can apply a similar idea to some two symbol language, I'm sure.
21:35:46 <shachaf> zzo38: People say to use xp
21:35:54 <shachaf> zzo38: But that will overwrite your deletion buffer thing.
21:36:26 <Jafet> lots of existing programs are laid out as some kind of ascii art, someone should define a semantics for those
21:36:38 <ais523> Jafet: you won't believe how long it took us to find an Alphuck interpreter that worked well enough to be usable, and even then it probably didn't implement the spec correctly
21:36:50 <ais523> and Alphuck is one of the most derivative BF derivatives I've ever seen
21:37:54 <Jafet> couldn't you “find” one in about five minutes?
21:39:55 <zzo38> shachaf: Yes, that works; I did not think of that. Although you are also correct it also will overwrite the deletion buffer
21:40:04 <ais523> Jafet: nah, it turns out that most BF derivatives don't actually work
21:40:52 <int-e> I suspect many golfed brainfuck interpreters exploit the actual character codes in some way. For example +/- can be implemented using data[p] += 44-c, where c is the character read.
21:41:24 <zzo38> Yes, there are stuff you can do like that, by taking advantage of the ASCII codes
21:42:13 <int-e> so just taking any brainfuck implementation and adapting it may be harder than you think.
21:42:39 <int-e> otoh, there's some reference implementations... the bfgolf series had one if I recall correctly.
21:42:49 <ais523> and many BF derivatives mess up things like comments
21:43:00 <ais523> it's surprising how many BF derivatives add an explicit comment symbol
21:43:42 <zzo38> Also some implementation use ! to separate the program from input, but I think ] could be used for that purpose, for compatibility with programs that use ! for comments.
21:47:20 <int-e> putting ] right after the program (read from a file) was one of my favorite brainfuck interpreter golfing tricks.
21:51:04 <rdococ> I haven't created a BF derivative. does that make me slightly less crap in your eyes?
21:54:08 <ais523> that's two less than me!
21:54:29 <ais523> really, putting in the effort to do something interesting is all that really matters, even if you don't succeed
21:54:42 <ais523> because there are so many potential ideas out there that we need lots of people to help find them
21:57:04 <rdococ> true
21:57:21 <rdococ> hm
21:57:37 <rdococ> I bet someone's thought of using generalized continued fractions to represent real numbers in memory before
21:58:03 <rdococ> of course, I picked continued fractions over general infinite series because they're easier to apply algebra to
21:58:27 <ais523> computable reals normally use some sort of hyperbinary
21:58:34 <rdococ> hyperbinary?
21:58:35 <ais523> continued fractions is an interesting alternative
21:58:45 <ais523> rdococ: it's like binary but 2 is a legal digit too
21:58:48 <rdococ> ah
21:58:56 <ais523> (you can also do it with -1, that's more common when doing computable reals)
21:59:04 <rdococ> wouldn't they be redundant though?
21:59:15 <rdococ> I mean, surely "0.2" in binary is just "1"
21:59:29 <rdococ> because it's two halves
22:00:14 <rdococ> it's the same kind of binary as that chance of binary question
22:00:21 <rdococ> 02 == 10
22:00:32 <rdococ> I'm still interested though
22:05:07 -!- hppavilion[1] has quit (Ping timeout: 260 seconds).
22:05:09 <HackEgo> [wiki] [[K]] https://esolangs.org/w/index.php?diff=51780&oldid=51772 * Rdococ * (+4) /* Overview */ Modified the K construct
22:05:35 <rdococ> ais523: you can use the K construct in K to define pi. in fact, the example does.
22:06:42 <rdococ> also, the ?: conditional is right-associative so "a<2 ? 0 : a<4 ? 1 : 2" is "a<2 ? 0 : (a<4 ? 1 : 2)", much more useful than the alternative
22:08:27 <HackEgo> [wiki] [[K]] M https://esolangs.org/w/index.php?diff=51781&oldid=51780 * Rdococ * (-2) /* Overview */ Modified spacing in the example
22:23:34 -!- hppavilion[1] has joined.
22:24:29 <int-e> rdococ: yes having 3 binary digits is redundant, but it solves the problem of what digit to produce after 0. if you have a number that is very close to 1/2: you produce 0.10000 and if the number is less than 1/2 after all, you can still express that using a -1 digit.
22:25:17 <rdococ> so 0.10000... is slightly less than 0.1?
22:25:25 <rdococ> where 1 is -1
22:25:54 <hppavilion[1]> Hm
22:26:09 <int-e> actually let me use +,0,- for the digits. 0.+0000000000- is slightly less than 1/2.
22:26:32 <rdococ> 0.0+++++++++++ is the same thing
22:26:36 <hppavilion[1]> I've heard that you can distinguish the abbreviation for SI kilobytes from that of true ~scotsmen~ kilobytes because the former is "kB" and the latter is "KB"
22:26:51 <int-e> rdococ: sure, there's redundancy
22:26:51 <shachaf> Speaking of which, the other day someone mentioned https://en.wikipedia.org/wiki/Conway_base_13_function
22:26:53 <rdococ> hppavilion[1], depends which one is true
22:27:06 <rdococ> is the true one 1000 or 1024?
22:27:08 <int-e> rdococ: in general, equality of computable reals cannot be established!
22:27:30 <int-e> (i.e. the problem whether two computable real numbers are equal is undecidable)
22:27:39 <rdococ> int-e: perhaps
22:27:42 <hppavilion[1]> rdococ: Implicitly, true kilobytes are the ones that aren't SI
22:28:05 <rdococ> hppavilion[1]: that's basically a tautology, I was talking about which ones are 1024 bytes and which ones are 1000.
22:28:28 <rdococ> s/basically a tautology/trivial/
22:28:48 <hppavilion[1]> rdococ: SI kilobytes are 1000 bytes. True kilobytes are, as implied by "can distinguish <a> from <b> by...", the ones that aren't SI
22:29:29 <rdococ> ty.
22:29:35 <rdococ> that was the information I was looking for
22:29:49 <myname> i prefer kibibytes vs kil8bytes over "true" and "si"
22:30:25 <shachaf> K is not a good prefix for 1024
22:30:25 <myname> also, the prefix for kibibytes is kiB
22:30:29 <hppavilion[1]> Therefor, true kilobytes are something other than 1000 bytes, and since 1024 is the most common one that isn't 1000, True Kilobytes are likely 1024
22:30:32 <rdococ> Potedecabyte?
22:30:42 <hppavilion[1]> shachaf: It is not, but that's pretty common
22:30:43 <rdococ> latin for power, latin for ten, and byte :P
22:30:43 <shachaf> myname: Isn't it KiB?
22:30:51 <shachaf> No, it's not common either.
22:31:05 <myname> shachaf: the should the k be uppercase there?
22:31:06 <shachaf> People use the prefix "K" to mean the same thing as "k".
22:31:24 <myname> kiB, MiB, GiB, TiB
22:31:36 <fizzie> It is "KiB", although I don't think it should be.
22:32:08 <myname> hppavilion[1]: talking such nonsense immediately exposes you as an american :p
22:32:19 <shachaf> Anyway network bandwidth is often measures in e.g. kbHz
22:32:24 <shachaf> Or is it KibHz?
22:32:25 <rdococ> Clearly the true KBs should be called "decem secundum virtutem Dei" :P
22:32:27 <shachaf> I'm not sure now.
22:32:46 <rdococ> Okay, wait
22:32:58 <rdococ> Google translates English "kilobyte" into Latin "megabyte">
22:33:06 <hppavilion[1]> shachaf: Windows, an OS with 90% of the world's PC market share, indicates file sizes with "KB"(, "MB", "GB", "TB", ...) and counts as 1024.
22:33:06 <rdococ> consistently, too
22:33:13 <hppavilion[1]> Therefor, it's pretty common
22:33:19 <int-e> > 'µ' == 'µ'
22:33:22 <hppavilion[1]> (or, well, an OS /family/)
22:33:31 <shachaf> Yes, but it doesn't use "k" to mean 1000.
22:33:32 <myname> hppavilion[1]: being common has nothing to do with being right
22:33:40 <shachaf> You're mixing up two unrelated things.
22:33:49 <hppavilion[1]> myname: But I wasn't saying it was right, I was saying it's common.
22:33:52 <int-e> hmmmm, what happened to it
22:33:54 <hppavilion[1]> shachaf: Oh, yes, I see.
22:34:04 <rdococ> I'm pretty sure Windows uses 1000...
22:34:15 <myname> it doesn't
22:34:20 <rdococ> huh.
22:34:37 <myname> if it would, people would not wonder about hdd sizes
22:34:52 <rdococ> I don't think people know what a byte is, myname.
22:35:09 <myname> they don't need to
22:35:13 <rdococ> Nevermind a bit.
22:35:21 <fizzie> I believe there's a couple of contexts that use MB for 1000*1024 bytes.
22:35:37 <rdococ> Seriously?
22:35:41 <myname> there is the famous 3.5" floppy
22:35:57 <myname> that hast 1.44 kilokibibytes capacity
22:36:18 <rdococ> From now on, I'm referring to kibibytes as duadecabytes.
22:36:26 <rdococ> "2^10 bytes"
22:36:42 <int-e> "Access to this virtual server has been restricted. The node is currently under maintenance. Please try again later"... huh.
22:36:42 <rdococ> (Or maybe bidecabytes.)
22:36:43 <myname> it's also a great example of why 1024 is a stupid number for that
22:36:45 <fizzie> Yes, a common 3.5" floppy size is 1440 KiB, which often gets referred to as "1.44 MB".
22:36:45 -!- HackEgo has quit (Ping timeout: 240 seconds).
22:36:58 <fizzie> In packaging, for example.
22:37:11 <shachaf> rdococ: Saying that you're worthless as a defense against other people calling you worthless is not a good strategy.
22:37:11 <rdococ> That's ridiculous.
22:37:27 <rdococ> shachaf: Agreed. But I have nothing else.
22:37:37 <hppavilion[1]> shachaf: (k|Ki?)[Bb]⋅Hz is a unit of data flow rate, is it not?
22:37:44 <shachaf> Better to just not say anything.
22:37:52 <rdococ> I understand that I'm hard to deal with, but I can't help being here.
22:38:05 <rdococ> So I try to cope.
22:38:07 <shachaf> I'm sure you can help being here. But my objection isn't to you being here.
22:38:11 <myname> shachaf: that'd my default strategy, damn
22:38:36 <shachaf> Yes, Hz is sometimes written as ps
22:38:48 <rdococ> shachaf: On the plus side, what I said was an esoteric username. :P
22:38:48 -!- HackEgo has joined.
22:39:05 <shachaf> myname: http://slbkbs.org/kj-volunteers.txt hth
22:39:12 <hppavilion[1]> (Answer: Yes, but it's a little weird to think about)
22:39:25 <shachaf> Hmm, that's not the excerpt I was thinking of but it's similar.
22:41:45 <myname> i don't get it
22:41:56 <shachaf> Maybe only the beginning is similar.
22:41:57 <shachaf> Never mind.
22:41:58 <int-e> "emergency hardware maintenance", well just peachy.
22:42:11 <shachaf> gotta maintain your emergency hardware
22:42:17 <shachaf> just in case there's an emergency sometime
22:42:24 <hppavilion[1]> <shachaf> rdococ: Saying that you're worthless as a defense against other people calling you worthless is not a good strategy. <-- OK, did I miss something? Where did rdococ say that??
22:42:31 <shachaf> Multiple times.
22:42:34 <hppavilion[1]> Did a message get dropped or something
22:42:52 <rdococ> hppavilion[1], it's fine.
22:43:07 <rdococ> also, esolangs.org doesn't seem to be loading.
22:43:13 <hppavilion[1]> rdococ: No, not because I really care, just because it's weird that I can't seem to find the context
22:43:28 <rdococ> ik.
22:43:59 <rdococ> I can't seem to connect to esolangs.org.
22:44:26 <hppavilion[1]> rdococ: Same here
22:45:22 <int-e> Well, nothing I can do about it now... let's hope lambdabot recovers by itself (it really should provided the VM data remains intact).
22:45:34 <shachaf> int-e: You could move it to another machine.
22:45:46 <hppavilion[1]> Honestly, I think that even using 2^10 (or really, 2^13 if you count bitwise) as a mile marker for data is still too arbitrary
22:46:16 <ais523> I can connect to esolangs.org but I don't get a response
22:46:18 <rdococ> hppavilion[1]: Perhaps, but it is double 512.
22:46:32 <hppavilion[1]> rdococ: 2^9. Also arbitrary.
22:46:39 <rdococ> hppavilion[1]: And that's double 2^8.
22:46:47 <int-e> shachaf: perhaps, but sleep takes priority.
22:47:04 <hppavilion[1]> rdococ: 2^8 or 2^16 make more logical markers IMO, or maybe 2^12 if we need something in that range
22:47:06 <shachaf> int-e: Did you jam any good jams lately?
22:47:16 <rdococ> hppavilion[1]: What should we call them then?
22:47:24 <rdococ> Bytebytes?
22:47:25 <shachaf> But 8 is just 2^3
22:47:26 <hppavilion[1]> rdococ: GOOD QUESTION
22:47:28 <rdococ> Octabytes.
22:47:41 <int-e> I finished thimbleweed park, I think that's basically the only gaming achievement for the past month.
22:47:48 <shachaf> Oh, I finished that too.
22:47:52 <hppavilion[1]> rdococ: I've heard that there are other food-related metaphors for data
22:48:01 <int-e> I did need a walkthrough at one point though.
22:48:03 <hppavilion[1]> 4 bits is a n[iy]bble, 2 bits is a crumb
22:48:08 <rdococ> hppavilion[1]: Nibbles
22:48:22 <rdococ> A nybble could be 8*4 bytes.
22:48:39 <rdococ> Or would they be nybles?
22:50:33 <rdococ> 2^(2^3)
22:51:08 -!- sleffy has quit (Ping timeout: 252 seconds).
22:51:09 <rdococ> or 8 bytes should be 1 cookie
22:51:29 -!- AnotherTest has quit (Quit: ZNC - http://znc.in).
22:52:29 <rdococ> or 64 bits = 8 bytes = 1 hexabit, for 2^6 = 64
22:52:43 -!- orby has joined.
22:52:47 <orby> howdy!
22:52:49 -!- sleffy has joined.
22:53:01 <orby> sleffy: hello
22:53:09 <sleffy> 'ello.
22:53:44 <rdococ> 8 bits = 1 byte = 1 tribit, 64 bits = 8 bytes = 1 hexabit, 512 bits = 8 hexabits = 1 nonabit?
22:54:59 <HackEgo> [wiki] [[User:Serprex]] M https://esolangs.org/w/index.php?diff=51782&oldid=51648 * Serprex * (+88) 26647
22:57:18 <hppavilion[1]> rdococ: A tribit has to be 3 bits hth.
22:57:41 <rdococ> hppavilion[1]: better: it's 2^3 bits :P
22:57:52 <rdococ> Of course, I'm aiming for esoteric here now
22:57:52 <hppavilion[1]> rdococ: I got that, but it's still stupid.
22:58:02 <hppavilion[1]> That's not esoteric, that's just confusing.
22:59:16 <hppavilion[1]> Think about all the major esolangs: brainfuck, the Fungeoids, Thue, Underload, Unlambda, and Malbolge
22:59:26 <rdococ> The esoteria isn't in that it's confusing, it's in that "Xbits" referring to "2^x bits" is an unusual naming scheme...
22:59:36 <rdococ> sure, it's confusing, but it's unusual
22:59:39 <rdococ> nvm...
22:59:53 <rdococ> hppavilion[1]: I can't replicate them, you know that.
23:00:05 <hppavilion[1]> rdococ: I know, I can't either, I'm just using them as an example
23:00:12 <hppavilion[1]> 2/3 of them are very straightforward to understand, if a bit difficult to use
23:00:15 <rdococ> I want to be creative, but I don't know how to.
23:00:27 <hppavilion[1]> rdococ: I think that's what life is.
23:00:39 <hppavilion[1]> Unlambda isn't as easy to understand (since you need to know Combinatory Logic), but it isn't complicated
23:01:07 <rdococ> I still think you calling my idea "stupid" was a little uncalled for :/
23:01:16 <rdococ> think about this: it's not a BF derivative.
23:01:26 <rdococ> actually, it's not an esolang.
23:01:32 <rdococ> ..nvm.
23:01:44 <rdococ> I'm sorry.
23:01:45 <hppavilion[1]> rdococ: Sorry, it's just not a very good scheme :/
23:02:05 <rdococ> would it be better if I tried to make it clearer?
23:02:11 <hppavilion[1]> Malbolge is pretty much impossible to understand for a human mind, but it's still easy to understand in a rather Hofstadterian way: you get that it's really complicated and hard (if not impossible) for a human brain to understand
23:02:39 <hppavilion[1]> rdococ: Have you ever seen LOLCODE? That's what you want to avoid: don't just use crazy names for normal concepts
23:02:39 -!- `^_^v has quit (Quit: This computer has gone to sleep).
23:02:58 <rdococ> hppavilion[1]: True, but that's going to be extremely hard in what is basically an esoteric naming scheme.
23:03:35 <rdococ> hppavilion[1]: At least my names weren't just messed up versions of the originals.
23:04:37 <hppavilion[1]> If you can create a program that takes an esolang candidate and- without much difficulty (exempli gratia lexer, simplified string manipulation, reconcatenate)- turns it into a rather typical language that wouldn't count as an esolang, then it's not an esolang
23:04:37 <hppavilion[1]> I have to walk now
23:04:37 <hppavilion[1]> Bye
23:04:37 -!- hppavilion[1] has quit (Quit: HRII'FHALMA MNAHN'K'YARNAK NGAH NILGH'RI'BTHNKNYTH).
23:11:32 -!- MoALTz has quit (Quit: Leaving).
23:13:19 <Soni> can you write a brainfuck to x86 compiler in brainfuck?
23:13:28 <rdococ> yes
23:13:30 <rdococ> BF is TC
23:13:45 <rdococ> if you don't have a cell number & a cell size limit
23:13:46 <Soni> can you compile a brainfuck to x86 compiler in a brainfuck to x86 compiler?
23:14:01 <rdococ> no, a compiler isn't a language
23:14:09 <rdococ> oh
23:14:09 <rdococ> wait
23:14:10 <rdococ> yes
23:14:11 <rdococ> sorry
23:14:12 <rdococ> misread
23:14:17 <ais523> Soni: have you seen AWIB?
23:14:25 <Soni> AWIB?
23:14:32 <ais523> http://esolangs.org/wiki/Awib
23:14:55 <ais523> you don't even need to resort to "it's TC so it can be done in theory", it's been done in practice
23:15:56 <Soni> so brainfuck is self-hosting, yes?
23:16:09 <Soni> or w/e it's called
23:16:23 <ais523> being self-hosting is only a property of a language-implementation pair
23:16:25 <ais523> awib is self-hosting
23:16:31 <ais523> brainfuck is just a language
23:16:46 <ais523> you can say "brainfuck is capable of self-hosting", but then all IO-complete languages are
23:17:54 <Soni> can you write a sed compiler (yes, compiler, not interpreter) in sed?
23:18:59 <ais523> yes, although it would be an utterly frustrating thing to do
23:19:20 <ais523> languages that low-level don't really like compiling regexes
23:19:32 <\oren\> Rio de Janiero is great, but I don't like having Jesus looking over my shoulder all the time
23:20:01 <ais523> think of it this way: you can write a BF interpreter in sed, right? so you can write a sed compiler in BF, and then hardcode that program inro the BF-interpeter-in-sed
23:20:02 <ais523> *into
23:20:19 <ais523> people don't normally refer to this sort of arrangement when they talk about "self-hosting" because it's a) a pain to maintain, and b) really inefficient
23:20:30 <ais523> but it does work, and it's often the only real way to get anything done in esolangs
23:20:50 <\oren\> wrong window
23:22:27 <Soni> ok
23:26:30 <rdococ> hm
23:26:39 <rdococ> how about a language that's just a truth table?
23:26:48 <rdococ> bi
23:26:49 <rdococ> no
23:26:50 <rdococ> that's dumv
23:26:51 <rdococ> dumb
23:31:15 -!- lambdabot has joined.
23:45:29 -!- sleffy has quit (Ping timeout: 255 seconds).
23:51:16 <HackEgo> [wiki] [[Rule]] N https://esolangs.org/w/index.php?oldid=51783 * Rdococ * (+1482) Created page with "'''Rule''' is a slide-rule-based esoteric programming language by [[User:Rdococ]]. == Overview == Rule's main esoteric gimmick is that it operates on a slide rule with multip..."
23:51:44 <HackEgo> [wiki] [[Rule]] M https://esolangs.org/w/index.php?diff=51784&oldid=51783 * Rdococ * (+0) /* Examples */
23:52:41 -!- sleffy has joined.
23:53:03 <HackEgo> [wiki] [[Rule]] https://esolangs.org/w/index.php?diff=51785&oldid=51784 * Rdococ * (+145) squaring
23:53:34 <rdococ> so whaja think?
23:54:03 <HackEgo> [wiki] [[User:Rdococ]] https://esolangs.org/w/index.php?diff=51786&oldid=51770 * Rdococ * (+80) /* My hopefully better esoteric languages (2017 CE - infinity CE) */
←2017-04-17 2017-04-18 2017-04-19→ ↑2017 ↑all