00:00:10 <boily> the most common meaning of fr:salon: is en:"living room".
00:00:17 * boily lends quintopia his mapole
00:00:27 <quintopia> i don't even remember what it looks like
00:00:34 <HackEgo> A mapole is a thwackamacallit built from maple according to Canadian standards. The army version includes a spork, a corkscrew and a moose whistle. A regulatory mapole measures 6' by 12 kg, ±0.5 inHg.
00:00:44 <quintopia> is it like =================================
00:01:15 <boily> mostly, with a =====-_-´ bit for ærodynamism.
00:01:33 <quintopia> shachaf =======================(((j==
00:01:43 <boily> but yeah, yesterday I animated Pingo Pingo, while today I did Zombie 15.
00:01:49 <shachaf> something may have happened to your mapole
00:01:57 <shachaf> hopefully boily doesn't notice
00:01:59 <boily> (those were the special events)
00:02:31 <shachaf> boily: i played a board game called shachaf of nottingjam a few weeks ago
00:03:27 <boily> somewhat like a DM. setup, explanations, entertainment, catching thrown and shot game pieces...
00:03:50 <quintopia> i don't know either of those games
00:03:59 <quintopia> and i think there are WAY TOO MANY zombie games
00:04:15 <boily> also it happened that those two games had a timed soundtrack, so I had to play it on a speaker and stuff.
00:04:16 <shachaf> i think most zombie games are in the "way too many" category
00:04:22 <shachaf> apparently that's how zombies work?
00:04:43 <boily> Zombie 15 is incredible: you have 15 minutes to get through a scenario, without dying too much.
00:05:00 <quintopia> i know a gmae where you put a soundtrack on shuffle and it times itself
00:05:48 <quintopia> i like this idea of a 15 minute game
00:06:04 <quintopia> because zombicide's "UP TO 6 HOURS" is not fun nono
00:06:23 <boily> I can't play Zombicide with my friends. they don't let me :/
00:06:44 <quintopia> i can't because i will hate everyone if i do.
00:07:03 <quintopia> WHY ARE YOU TAKING SO LONG TO DECIDE WHAT TO DO JUST DO SOMETHING LETS FINISH THIS DAMN GAME
00:07:15 <quintopia> also i don't know that i've ever seen anyone lose.
00:07:47 <boily> I add challenge to the game ^^
00:08:55 <quintopia> i might play with you then. people take it way too seriously
00:09:15 <boily> a coop has to be dramatic.
00:09:31 <boily> the only one I play full lawful good is Red November, because fungot is it hard.
00:09:40 <boily> fizzie: FUNGOOOOOOOOOOOOOOOOOOOOOOT!
00:11:14 -!- ent0nces has quit.
00:12:43 <shachaf> boily: how pooched are you
00:13:40 <boily> shachaf: my feet are pooched. I saw a mastiff today. some passerbys at the event had dogs.
00:15:08 <boily> I don't think so. poodles, labradors, the aforementioned mastiff, but no newfie pooches.
00:16:03 <shachaf> you mastiff not noticed them
00:18:20 <\oren\> OK! i've now made a program that fixes all the bullshit that fontforge screws up when it generates my font!
00:18:53 <\oren\> http://www.orenwatson.be/ttfcorrect.htm
00:21:30 <\oren\> however, I still can't get chrome to display my font without blurring it
00:22:13 <\oren\> I need to add more comments to this code
00:23:35 -!- mauris has quit (Ping timeout: 264 seconds).
00:23:57 -!- hppavilion[1] has quit (Ping timeout: 272 seconds).
00:26:22 <\oren\> Ok, apparently my font doesn't work well with "DirectWrite", some new chrom font renedering algortihm
00:27:51 <shachaf> DirectWrite is a Windows thing.
00:29:54 <\oren\> Well only chrome uses it then
00:30:36 <\oren\> hold on I'll screenshoot it
00:33:50 <\oren\> http://www.orenwatson.be/goddamnchrome.png
00:34:05 <\oren\> see, only chrome is blurry
00:34:31 <boily> my eyes. they are not happy.
00:34:38 <\oren\> specifically, only chrome, and only the white text on chrome
00:35:13 <\oren\> the blue text is not nearly as blurred
00:35:47 <\oren\> firefox displays pixel-perfect with no blurring
00:35:59 <\oren\> as does my temrinal program
00:55:40 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
01:01:37 * lifthrasiir wonders if it is a perfect timing for tsukkomi
01:03:57 <\oren\> I wonder if chrome pays attention to embedded bitmaps in a ttf
01:05:58 <\oren\> even god damn IE doesn't use this stupid directwrite bullshit
01:06:10 -!- boily has quit (Quit: PUGILISTIC CHICKEN).
01:13:29 -!- hppavilion[1] has joined.
01:34:26 -!- hppavilion[1] has quit (Ping timeout: 240 seconds).
01:52:40 <lifthrasiir> made some convenience pixel codes for marking pixels (rather than subpixels)
01:53:14 <lifthrasiir> so that, there are now two codes for upper-left half-triangles, one filled in 1:1 scale and one empty.
01:53:34 <lifthrasiir> I've updated font-sample.html to show both versions
01:58:25 <lifthrasiir> \oren\: http://cosmic.mearie.org/2015/11/font/font.txt
01:59:37 <\oren\> that looks very similar to the format that GNU unifont was made with
02:04:24 -!- infinitymaster has joined.
02:29:52 <\oren\> appently not, it uses only on (#) and off (-) for each pixel
02:35:53 <lifthrasiir> \oren\: my code has half triangles (/ \) and quad triangles (d b 9 P < > ^ v etc.) as well
02:36:08 <lifthrasiir> for the smoother glyph in the large rendering
02:52:17 <FireFly> lifthrasiir: do you have any sample text rendered with this?
02:55:36 <FireFly> How do the "glyph X = Y" lines work? it looks like !'s get replaced with the Y glyph or something; is that it?
02:56:01 <FireFly> Ah.. for colour purposes I suppose
02:58:12 <lifthrasiir> FireFly: combining glyphs. ! is a placeholder for hints, but I want to verify that ! is actually overwritten by other glyphs in the future.
03:03:32 -!- infinitymaster has quit (Remote host closed the connection).
03:09:32 -!- infinitymaster has joined.
03:43:31 <\oren\> I added small glagolitic ⰰⰱⰲⰳⰴⰵⰶⰷⰸⰹⰺⰻⰼⰽⰾⰿⱀⱁⱂⱃⱄⱅⱆⱇⱈⱉⱊⱋⱌⱍⱎⱏⱐⱑⱒⱓⱔⱕⱖⱗⱘⱙⱚⱛⱜⱝⱞ
03:54:43 <HackEgo> [wiki] [[Purple]] http://esolangs.org/w/index.php?diff=45596&oldid=45595 * Quintopia * (-7) /* Python 2 */ More golfing!
04:02:31 <zzo38> Maybe a program can also be made that can convert such format that has the triangles and so on into TFM/PK as well (although TFM requires that metrics depend only on the low 8-bits of the character code, but PK supports up to 32-bit character codes); kerning and ligatures are also supported in this case. Other formats such as WalText2 possibly it would also be possible to make compiler into TFM/PK
04:05:13 <\oren\> lifthrasiir: your capital Y is one pixel too wide
04:05:54 <lifthrasiir> I'm aware, the odd-width glyph is quite hard to deal with
04:06:44 <zzo38> Does your format have ligature/kerning?
04:09:10 <\oren\> the overall aspect ratio is 8:16 which is the same as GNU unifont, but less than my font which is 9:16
04:11:16 <zzo38> My DVIPBM program does not need TeX or METAFONT at all. If you make your own typesetting software and/or font software, it can use that just fine. It will work with any resolution even with non-square pixels, and any paper size. And, if your printer driver does not support PBM, you can use ImageMagick or other software to conver it. I expect it to work just fine with troff although I have not tested this.
04:12:34 <\oren\> 8:16 does have the advantage that double-width characters will be perfect squares at 16:16
04:12:50 <\oren\> whereas mine are 18:16
04:13:12 <zzo38> Yes, you have that advantage if you are trying to make square characters
04:16:07 <HackEgo> [wiki] [[Purple]] http://esolangs.org/w/index.php?diff=45597&oldid=45596 * Quintopia * (+2) /* Python 2 */ More golfing!
04:47:37 <HackEgo> [wiki] [[Dimensions]] http://esolangs.org/w/index.php?diff=45598&oldid=41742 * Quintopia * (-159) removed the languages that weren't actually related to Dimensions
05:30:51 <FreeFull> zzo38: What if I have only a teletype?
05:45:55 <zzo38> That depends what you are trying to do with it.
05:55:54 -!- infinitymaster has quit (Remote host closed the connection).
06:06:44 -!- variable has joined.
06:07:37 -!- infinitymaster has joined.
06:20:13 <HackEgo> [wiki] [[L]] N http://esolangs.org/w/index.php?oldid=45599 * Phase * (+1529) Created page with "'''L''' is an esoteric language made by [[User:Phase|Phase]] that only uses <code>l</code> and <code>\n</code>. * <code>l</code> increments the accumulator by one * <code>\n<..."
06:28:14 <HackEgo> [wiki] [[L]] http://esolangs.org/w/index.php?diff=45600&oldid=45599 * Phase * (+207)
07:14:41 -!- Patashu has joined.
07:15:59 -!- variable has quit (Quit: 1 found in /dev/zero).
07:42:17 <HackEgo> danddreclist 71: shachaf nooodl boily \ http://zzo38computer.org/dnd/recording/level20.tex
07:53:28 -!- J_A_Work has joined.
07:53:43 -!- J_A_Work has quit (Client Quit).
07:57:25 -!- por has joined.
07:57:33 <HackEgo> [wiki] [[Purple]] http://esolangs.org/w/index.php?diff=45601&oldid=45597 * Quintopia * (-3) /* Python 2 */ Moregolfy!
07:58:11 <por> was wisdom.pdf created with latex?
07:58:48 <por> oops spoke too soon! i just read that is was.
08:05:30 -!- MoALTz has quit (Ping timeout: 240 seconds).
08:08:05 <zzo38> And, level20.dvi was created with Plain TeX.
08:08:36 -!- zadock has joined.
08:10:13 -!- bb010g has quit (Quit: Connection closed for inactivity).
08:10:18 <zzo38> I don't know; I think often (not always) is written like that
08:19:15 -!- Lord_of_Life has quit (Ping timeout: 240 seconds).
08:24:56 -!- zadock has quit (Quit: Leaving).
08:28:16 -!- infinitymaster has quit (Quit: Leaving...).
08:28:54 -!- Lord_of_Life has joined.
08:29:13 <por> zzo38: level20.dvi?
08:30:37 -!- AnotherTest has joined.
08:31:37 -!- fungot has joined.
08:41:39 <zzo38> I just updated it a few minutes ago even. It is http://zzo38computer.org/dnd/recording/level20.dvi and the source-codes also available, with level20.tex in same directory. There is the notice of updating on this IRC
08:42:23 <zzo38> I wrote that as well as the macro package to go with it (which I also wrote, and is also available in the same directory). They are all public domain.
08:43:27 <zzo38> If you look at all of the logs, you can see a lot of stuff being discussing in this IRC.
08:53:58 <zzo38> Do you use TeX for anything?
09:11:25 -!- MoALTz has joined.
09:16:23 -!- MoALTz has quit (Ping timeout: 264 seconds).
09:19:10 -!- AnotherTest has quit (Ping timeout: 240 seconds).
09:24:24 <HackEgo> [wiki] [[Platts]] http://esolangs.org/w/index.php?diff=45602&oldid=37783 * Quintopia * (-4) /* Examples */ bugfix
09:24:34 -!- oerjan has joined.
09:27:41 <HackEgo> [wiki] [[Platts]] http://esolangs.org/w/index.php?diff=45603&oldid=45602 * Quintopia * (+0) /* Examples */ bugfix
09:28:36 <HackEgo> [wiki] [[Platts]] http://esolangs.org/w/index.php?diff=45604&oldid=45603 * Quintopia * (+4) Undo revision 45602 by [[Special:Contributions/Quintopia|Quintopia]] ([[User talk:Quintopia|talk]])
09:28:59 <HackEgo> [wiki] [[Platts]] http://esolangs.org/w/index.php?diff=45605&oldid=45604 * Quintopia * (+0) Undo revision 45603 by [[Special:Contributions/Quintopia|Quintopia]] ([[User talk:Quintopia|talk]])
09:34:28 <HackEgo> [wiki] [[Platts]] http://esolangs.org/w/index.php?diff=45606&oldid=45605 * Quintopia * (+2252) implementation
09:36:49 <HackEgo> [wiki] [[Platts]] http://esolangs.org/w/index.php?diff=45607&oldid=45606 * Quintopia * (+58) /* Syntax */ Expanded allowed symbols to match implementation
10:00:18 -!- por has quit (Read error: Connection reset by peer).
10:30:19 <HackEgo> Runs arbitrary code in GNU/Linux. Type "`<command>", or "`run <command>" for full shell commands. "`fetch <URL>" downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert <rev>" can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/
10:33:01 <b_jonas> Why does "Consume Spirit" say "Spend only black mana on X." rather than "Spend only black mana on {X}."? In both the oracle text and the M12 printed text.
10:34:22 <b_jonas> Hmm, the M12 version has new flavor text, from Sorin, compared to the 10E version I have.
10:35:41 <HackEgo> patching file 'wisdom/hppavilion[1]'
10:36:10 <oerjan> general principle: if you change a wisdom without checking if there is one there first, i may revert it hth
10:36:24 <oerjan> (i may still do it if you do, but less likely.)
10:37:10 <HackEgo> hppavilion[1] se describe en las notas al pie. ¿Porqué no los dos? Nadie lo sabe.
10:37:36 <oerjan> `` sed -i 's/^/zzo38cards are at /' wisdom/zzo38cards
10:38:00 <oerjan> `` mv wisdom/zzo38card{s,}
10:38:30 <oerjan> also if your wisdom is not a complete sentence i may edit it.
10:39:07 <HackEgo> zzo38cards are at http://zzo38computer.org/textfile/miscellaneous/magic_card/cards.txt
10:39:21 <HackEgo> gentlebeing/A gentlebeing is a gender and species neutral gentleman.
10:39:56 <oerjan> `` sed -i 's/$/./' wisdom/vi
10:40:35 <FireFly> I really like small, domain-specific languages like lifthrasiir's text-based font description language up there
10:40:56 <oerjan> `` sed -i 's/$/./' wisdom/'imperative language'
10:42:00 <oerjan> `` sed -i 's/e/E/' wisdom/erudecorp
10:43:03 <oerjan> `` echo '' >>wisdom/'imperative language'
10:43:33 <HackEgo> precious/precious? That doesn't ring a bell. ¯\(°_o)/¯
10:45:57 <HackEgo> ls: cannot access interp/l*t: No such file or directory
10:46:02 <HackEgo> ls: cannot access interps/l*t: No such file or directory
10:46:54 <HackEgo> Learned '1337': 1337 15 50 905
10:47:58 <FireFly> There's some nonexistent command that occasionally gets corrected into @leet, but I forget what it was
10:48:21 <FireFly> well, that always gets corrected, but that people occasionally attempt
10:48:36 <b_jonas> fungot, how do you think I should refactor this code
10:48:36 <fungot> b_jonas: hey pitecus and jivera: orbit and twobit are perfect for that.
10:48:52 <b_jonas> fungot: a jivera? is that like a zubera?
10:48:52 <fungot> b_jonas: run the scheme system copies the expression for later
10:48:58 <FireFly> Apparently you should refactor your code into urbit
10:49:02 <b_jonas> oh, that might work. thanks, fungot.
10:49:03 <fungot> b_jonas: modulo 9, 9 is a free smalltalk. unfortunately, the worst amiga game i've seen it already, though; we've got both a profiler and a fnord fnord fnord x 2 y
10:49:32 <FireFly> `learn 9 is a free smalltalk
10:49:44 <HackEgo> Learned '9': 9 is a free smalltalk
10:50:47 <oerjan> `` sed -i 's/$/./' wisdom/9
10:52:07 <oerjan> it briefly existed again some months ago
10:52:14 <oerjan> but int-e disabled it again.
10:53:39 <b_jonas> It seems I missed more than one M:tG rules update bulletins. I'll have to go back to reread them carefully.
10:54:52 <FireFly> lifthrasiir: I'm not a fan of 6-dot braille not being consistent with 8-dot braille.. in part because I like to abuse braille as pixels, but also because I imagine it'd be bad for actual braille lettering
10:55:48 <oerjan> `` ls wisdom/hppavilion[1]
10:56:33 <HackEgo> wisdom/hppavilion1 \ wisdom/hppavilion[1]
10:57:09 <HackEgo> /home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: rfw: not found
10:59:54 <HackEgo> higgledy piggledy / hp pavilion / doesn't like jokes that are / written in text; // uncontroversially, / one in a million is / roughly the chance they won't / be left perplexed
11:01:30 <oerjan> i was wondering why boily's edit did nothing.
11:03:14 <HackEgo> Your famous evil overlord oerjan is a lazy expert in future computation. Also an antediluvian Norwegian who hates Roald Dahl. He can never remember the word "amortized" so he put it here for convenience.
11:03:21 <HackEgo> Ørjan is oerjan's good twin. He's banned in the IRC RFC for being an invalid character. Sometimes he publishes papers.
11:04:05 <FireFly> That's twice the amount of wisdom I have
11:04:26 <FireFly> and it isn't even fun wisdom :(
11:04:34 <HackEgo> FireFly was a short-running but well-loved sci-fi TV series released in 2003, starring Nathan Fillion and directed and written by Joss Whedon.
11:04:58 <FireFly> oh wow, someone remembered my altnick
11:08:03 <oerjan> `learn Effilry is eemnoos how ahs got it all deorst otu.
11:08:06 <HackEgo> Learned 'effilry': Effilry is eemnoos how ahs got it all deorst otu.
11:09:08 <HackEgo> wisdom/macabre \ wisdom/madness \ wisdom/magic \ wisdom/mapole \ wisdom/marmite \ wisdom/mathematimu \ wisdom/maths \ wisdom/mauke \ wisdom/mauris \ wisdom/maybe
11:09:14 <HackEgo> The magic was in you all along.
11:09:36 <HackEgo> the Toe of Harriness's Enclosure
11:10:09 <HackEgo> mauke is a Master Archer. Caution! He can shoot your PRIVMSG with creative arrows!
11:11:15 <HackEgo> A mathematimu is a quantum of mathematics. If you observe it, its codepoint can change.
11:11:18 <b_jonas> `learn The Daystar is an unscientific myth of a bright orb glowing in the sky outside only at the times you're in your office.
11:11:21 <HackEgo> Learned 'daystar': The Daystar is an unscientific myth of a bright orb glowing in the sky outside only at the times you're in your office.
11:12:26 <oerjan> `learn Rainbows are spectral creatures said to be powered by the Daystar.
11:12:29 <HackEgo> Learned 'rainbow': Rainbows are spectral creatures said to be powered by the Daystar.
11:13:25 <b_jonas> FireFly: right, for that we need a bot that can list entries from the comprehensive rules and oracle
11:14:34 <HackEgo> russell's teapot? ¯\(°_o)/¯
11:14:55 <b_jonas> `learn IPU is an invisible pink unicorn.
11:14:57 <HackEgo> Learned 'ipu': IPU is an invisible pink unicorn.
11:15:32 -!- mroman has joined.
11:17:56 <oerjan> `le/rn russell's teapot/Russell's Teapot / Short and stout / Orbits near Mars / Or thereabout.
11:17:58 <HackEgo> Learned «russell's teapot»
11:19:27 <Taneb> If you see us/Let us know/If you don't/What does that show?
11:20:23 <FireFly> IPU is an incredibly pompous unicorn
11:20:33 <oerjan> `le/rn russell's teapot/Russell's Teapot / Short and stout / Orbits near Mars / Or thereabout. / If you see it / Let us know / If you don't / What does that show?
11:20:36 <HackEgo> Learned «russell's teapot»
11:21:15 <oerjan> Taneb: wait is that a pre-existing rhyme
11:22:07 <Taneb> Aaaah I can't remember the second verse to I'm a little teapot
11:23:44 <Taneb> I think it has the lyrics scream and shout
11:24:04 <HackEgo> danddreclist/http://zzo38computer.org/dnd/recording/level20.tex (the precompiled .dvi is also available)
11:28:05 <myname> zzo38: what do these tex commands do? does it keep track of stuff and rules or the like?
11:29:47 <b_jonas> myname: they track the character sheets for example
11:31:16 <myname> like, you can do \charactersheet{Also} and it will give you a sheet?
11:34:23 <oerjan> Taneb: are you sure not confusing it with "When in danger / or in doubt / run in circles / scream and shout"
11:34:27 <b_jonas> by the way, the winners of the 24th ioccc were announced in october, but I somehow missed that
11:35:29 -!- boily has joined.
11:51:20 -!- Frooxius has quit (Ping timeout: 276 seconds).
11:51:58 <FireFly> Endoh managed to win with three programs, not bad
11:58:00 -!- Frooxius has joined.
11:58:10 -!- Patashu has quit (Ping timeout: 260 seconds).
12:02:50 -!- idris-bot has joined.
12:25:06 -!- Froox has joined.
12:28:50 <b_jonas> ImageMagick's plans for the future version 7 are quite ambitious. basically they want the program to do everything.
12:28:54 -!- Frooxius has quit (Ping timeout: 255 seconds).
12:30:29 <b_jonas> Apparently they want to do operations in such generality over any color space as gimp 3.
12:33:19 -!- boily has quit (Quit: SIMPLEX CHICKEN).
12:41:59 <FireFly> Although it's a pity the work has to be duplicated
12:42:32 <FireFly> Perhaps it would be better if there could be a command-line frontend akin to imagemagick's for GIMP operations
12:43:59 <oerjan> oops i think mr. ishiguro did a _big_ mistake over in freefall
12:44:28 <b_jonas> FireFly: um, there's the python interface, the perl interface, the guile interface, for gimp. you can use those from command-line as perl one-liners.
12:44:51 <b_jonas> fungot, are you a vampire?
12:44:51 <fungot> b_jonas: it's actually why i tend to have a large fnord file, but not any haiku that i can
12:47:24 <b_jonas> fungot, are you the immortal kind of vampire who when killed just turns gaseous and flees back to his coffin to heal unless killed by a silver bullet, a stake through your heart, bright light, garlic, holy water, chainsaw, fire, a rooster, with holy wafers in your mouth sewn closed, or in your bat form?
12:48:07 <FireFly> I'm curious too. Well, fungot, are you?
12:48:07 <fungot> FireFly: and my fnord account :) built a binary search tree
12:48:25 <FireFly> I'm not sure how to interpret that
12:58:33 <int-e> wow, updated already?
12:59:06 <int-e> fungot: let's build a binary decision diagram instead
12:59:06 <fungot> int-e: can i have your new browser anmaster i call it event-based declarative language for making bot ai's for a game, and how
12:59:18 <oerjan> int-e: it's been updating early for weeks
12:59:46 <lifthrasiir> FireFly: a fair point. the braille pattern is too large to fit with others, but I initially wanted to make (much widely used) 6-dot brailles good looking when mixed with normal text. probably not a wise decision though...
13:00:59 <int-e> oerjan: I didn't realize it was *that* early
13:03:06 <Taneb> int-e: I've been reading it when I wake up
13:03:33 <oerjan> i only checked just now, but other days it's been up at like 7 am
13:04:51 <Taneb> It was up before quarter to 10 GMT this morning
13:06:18 <b_jonas> hah, "Javascript is required for optimal experience." -- ok, so it's not actually required, only recommended.
13:07:04 <Taneb> b_jonas: if you need optimal experience, JavaScript is required
13:07:15 <int-e> better than google
13:07:15 <Taneb> So it's teeeeeeechnically correct
13:07:31 <int-e> "When you have eliminated the JavaScript, whatever remains must be an empty page."
13:42:03 <myname> has anybody here ever written something in curry?
13:53:42 <b_jonas> Wait, so IPF is another name for the Itanium aka IA64 architecture?
13:59:55 -!- oerjan has quit (Quit: Later).
14:18:55 -!- J_Arcane has quit (Ping timeout: 265 seconds).
14:28:55 -!- J_Arcane has joined.
14:31:11 <mroman> I wish there were something between Java and JavaScript.
14:35:33 <mroman> Because I like neither of the two.
14:35:43 <mroman> I don't like Java because it limits my expressive mental power.
14:35:51 <mroman> and I don't like JavaScript because I don't like it.
14:35:59 <izabera> would you like scriptjava?
14:36:33 <mroman> If it supports functional programming with type inference, operator overloading etc. then yes
14:40:00 <b_jonas> mroman: um, maybe you want haskell?
14:40:04 <Taneb> What does the Japanese in the topic mean?
14:42:16 <HackEgo> [U+30A6 KATAKANA LETTER U] [U+30D5 KATAKANA LETTER HU]
14:44:00 <mroman> but SPJ disappoints me
14:44:03 <mroman> He's working at Microsoft
14:44:10 <mroman> but IE still doesn't support Haskell native
14:44:23 <mroman> that's kind of a bummer
14:44:26 <FireFly> It doesn't support VB anymore either, so
14:44:38 <mroman> Yeah, they got cold feet.
14:44:57 <FireFly> I guess at this point you'd almost expect them to support TypeScript natively, but I don't think they do that either?
14:45:00 <mroman> and lots of companies wont use newer IE versions because of that
14:45:09 <mroman> because they're still running websites with client side VB
14:45:49 <mroman> like book keeping/time keeping software :)
14:47:14 <mroman> and of course, using old versions of office
14:47:26 <mroman> due to plugin compatibility issues
14:49:48 <mroman> I was told off for using divs rather than tables after the intranet site look broken on the new IE
14:50:02 <mroman> while making it look good on the new IE I just switched to using divs :)
14:50:09 <mroman> that was a few years ago though
15:06:59 -!- Welo has joined.
15:26:56 -!- AnotherTest has joined.
15:32:00 <HackEgo> [wiki] [[FiM++]] http://esolangs.org/w/index.php?diff=45608&oldid=36952 * 192.127.94.7 * (+0) /* Syntax */ replaced one of the colons with a semicolon
16:00:14 -!- spiette has joined.
16:23:03 <mroman> gcc's stack-protector-all is killing me
16:23:17 <mroman> it produces unfavorable stack layouts
16:23:25 <mroman> the stack cannary isn't the problem
16:23:29 <mroman> the problem is the stack layout it chooses
16:23:41 <mroman> usually the stack layout is ARGS -> EIP -> EBP -> LOCALS
16:24:04 <mroman> with just the stack cannary it'd be ARGS -> EIP -> EBP -> CANNARY -> LOCALS
16:24:08 <mroman> that wouldn't be a big deal.
16:24:19 <mroman> but it actually rearranges mixes args and locals etc.
16:24:52 <mroman> and that's really unfavorable
16:25:13 <mroman> because you'd want esp to point to your buffer somehow so you can set up a rop chain
16:26:05 <mroman> but the stack layout with stack-protector-all makes it hard to gain control over esp
16:26:40 <mroman> which is what you need to provide arguments to functions you're going to call and setup a chain of functions
16:28:42 <mroman> 0x08048597 : add esp, 0x54 ; pop ebx ; pop ebp ; ret
16:28:50 <mroman> which means you need these kind of gadgets
16:28:54 <mroman> but 0x54 is too much in this case :(
16:29:23 <mroman> (you need to find a gadget that alters esp in a way so it points into your buffer)
16:36:04 <lifthrasiir> http://cosmic.mearie.org/2015/11/font/sample 542 glyphs so far.
16:39:13 <mroman> exploiting security vulnerabilities in brainfuck programs
16:39:32 <mroman> You can make them print to stdout whatever the f*ck you want using that security vulnerability
16:44:28 <b_jonas> mroman: by taking over the interpreter that doesn't check tape head underflow or overflow
16:45:09 <mroman> or by assuming that bf programs use NUL-Terminated strings as well .
16:45:20 <b_jonas> or maybe has some more complicated bug, in an optimized interpreter
17:02:48 -!- MoALTz has joined.
17:04:16 <b_jonas> Wait, I don't understand this. If the demigods only vote in case of a tie, then how did Hermod expect to cast a protest vote while also thinking there would not be enough aye votes.
17:07:47 -!- AnotherTest has quit (Ping timeout: 272 seconds).
17:19:34 -!- J_Arcane has quit (Ping timeout: 276 seconds).
17:28:59 -!- AnotherTest has joined.
17:33:27 -!- hppavilion[1] has joined.
17:37:38 -!- ais523 has joined.
17:37:50 <hppavilion[1]> I need an identifier for the "0" function. Essentially, 0:x::1:I where I is the identity function
17:38:59 <hppavilion[1]> I /could/ just use 0, but that gets confusing because most numeric functions have a domain of only the reals and functions. S (for "Self") already means successor. Z might work.
17:46:32 <FreeFull> "This pangram contains four As, one B, two Cs, one D, thirty Es, six Fs, five Gs, seven Hs, eleven Is, one J, one K, two Ls, two Ms, eighteen Ns, fifteen Os, two Ps, one Q, five Rs, twenty-seven Ss, eighteen Ts, two Us, seven Vs, eight Ws, two Xs, three Ys, & one Z."
17:46:58 <FreeFull> I wonder how much finangling was needed to produce this sentence
17:50:20 <hppavilion[1]> Though I'm doing some shady math, so it isn't too meaningful
17:53:13 -!- hppavilion[2] has joined.
17:54:29 -!- J_Arcane has joined.
17:56:25 -!- hppavilion[1] has quit (Ping timeout: 265 seconds).
18:00:46 -!- hppavilion[2] has quit (Ping timeout: 265 seconds).
18:01:43 -!- hppavilion[1] has joined.
18:10:21 <HackEgo> [wiki] [[Special:Log/delete]] delete * Ais523 * deleted "[[Apollo]]": XNR left behind after aborted attempt to move to mainspace
18:10:55 -!- hppavilion[1] has quit (Ping timeout: 265 seconds).
18:11:25 <HackEgo> [wiki] [[Special:Log/delete]] delete * Ais523 * deleted "[[User:Esowiki201529A/test link]]": copyright violation
18:12:37 -!- hppavilion[1] has joined.
18:13:04 <HackEgo> [wiki] [[Special:Log/block]] block * Ais523 * blocked [[User:103.3.98.227]] with an expiry time of 1 week (anonymous users only, account creation disabled): copyright violation, possibly spamming, more likely human than spambot
18:14:12 <b_jonas> ais523: this is a month old news, so you might have seen it: The winners of the 24th IOCCC have been announced. http://www.ioccc.org/2015/whowon.html
18:14:48 <HackEgo> [wiki] [[User talk:103.3.98.227]] N http://esolangs.org/w/index.php?oldid=45609 * Ais523 * (+503) block notice
18:17:18 -!- mroman has quit (Quit: Lost terminal).
18:18:10 -!- hppavilion[1] has quit (Ping timeout: 265 seconds).
18:27:45 <b_jonas> zzo38: ok, crazy idea. name: Fallen Behind. mc: 1BB. type: Enchantment. text: At the beginning of each end step, destroy all permanents that have been tapped and controlled by the active player continuously since the beginning of the turn. For each permanent destroyed this way, put a 2/2 black Zombie creature token onto the battlefield.
18:30:54 <b_jonas> The relative phrase should be rephrased somehow to make it better.
18:36:56 -!- ais523 has quit.
18:37:39 -!- ais523 has joined.
18:45:48 -!- hppavilion[1] has joined.
18:49:15 <ais523> hppavilion[1]: I deleted the redirect you left behind at [[Apollo]] for yo
18:49:33 -!- MoALTz has quit (Quit: Leaving).
18:49:51 <ais523> not accidentally, as a non-admin you have no means not to
18:54:54 -!- hppavilion[1] has quit (Ping timeout: 265 seconds).
18:56:05 <b_jonas> ais523: meanwhile, I also wanted to ask you about something
18:56:32 <ais523> b_jonas: which reminds me
18:56:47 <ais523> I'm now pretty sure Three Star Programmer is TC; I have a plan for compiling cyclic tag into it
18:57:10 <b_jonas> great, that would be interesting
18:59:23 <b_jonas> So I want to ask about ayacc and yacc stuff.
19:00:19 -!- MoALTz has joined.
19:00:32 <b_jonas> I'd like to know how we can prove with a computer that an ambiguous ayacc grammar is ambiguous only in ways that we like. There are two specific cases I want to bring up.
19:01:12 <b_jonas> The first is when the language has some infix operators, with precedences and associativity declared with the directives.
19:02:00 <b_jonas> These are supposedly disambiguated by parenthesis. Is there some way that we could make the computer verify us that all relevant expressions can indeed be parenthisized?
19:02:13 <b_jonas> This surely needs some extra annotations in the grammar, but even still I'm not sure how we could do it.
19:02:20 <b_jonas> It might even need changes in ayacc.
19:02:49 <ais523> b_jonas: isn't it known that it's impossible to tell whether a language is ambiguous or not?
19:03:07 <b_jonas> I don't want it to be that general
19:03:15 <b_jonas> I just want a particular way to prove that the language is not ambiguous
19:03:38 <b_jonas> ayacc already has such a way: if the language has no shift-reduce and reduce-reduce conflicts as a lalr(1) grammar, it's unambiguous
19:04:13 <b_jonas> But in some well-behaved cases we can prove it, say if the precedences resolve all those conflicts.
19:04:25 <b_jonas> I don't ONLY need that the grammar is unambiguous
19:05:15 <b_jonas> but also that for any syntax tree that the ambiguous version (without precedences) could nondeterministically output, there's some input for which the deterministic version (with precedences) outputs the same syntax tree,
19:05:40 <b_jonas> and you can get this input easily from the syntax tree by undoing the rules and adding parenthesis to some places where it's necessary.
19:05:55 <int-e> Hmm you could write a pretty-printer for the AST and prove you can parse the original AST back.
19:06:14 <ais523> that's an interesting direction to go down
19:06:15 <b_jonas> We could annotate rules that we want to treat as behaving like parenthesis.
19:06:51 <ais523> hmm, is a grammar always unambiguous if every production starts with ( and ends with ), with those characters otherwise unused?
19:07:10 <ais523> err, no, you also need to avoid having two rules that tr
19:07:18 <ais523> *that trigger on the same input sequence directly
19:07:24 <int-e> (I'm trying to get there conceptually... this doesn't mean that there has to be an *actual* pretty printer at any point)
19:07:25 <b_jonas> ais523: this seems important to me because in some real languages like C++ it gets quite difficult to see that while the crazy syntax quirks make you rephrase some things you want to write, but you can always rephrase, and there's a mechanical way to do that.
19:07:38 <ais523> as in, a := ( b ) | ( c ); b := ( d ); c := ( d )
19:08:07 <b_jonas> ais523: of course not. there can still be simple reduce-reduce ambiguities
19:08:25 <ais523> right, that's the same thing I suggested there
19:08:39 <ais523> it /does/ make the shape of the parse tree unambiguous, though
19:08:48 <ais523> only ambiguity is as to which type of node a particular node is
19:09:13 <b_jonas> I mean, C++ grammar is _crazy_
19:09:40 <b_jonas> but at least many people who have an eye for things like this stare at it a lot, which helps.
19:10:24 <b_jonas> However, I'd like a mechanical way to be able to prove things like this, which doesn't depend on a committee happening to squint at the grammar the right way and not finding any problems.
19:16:33 -!- hppavilion[1] has joined.
19:18:11 <b_jonas> So if a grammar uses infixes and precedences, then ayacc can already prove that the language with precedences in unambiguous.
19:18:16 <b_jonas> But it can't prove that it's expressive enough.
19:19:17 <b_jonas> Let me mention another case. Suppose that instead of precedences, you have prefix operators that take a variable number of arguments (the last argument is optional or can be repeated),
19:19:44 <ais523> this sounds like an esolang already :-D
19:19:46 <b_jonas> and to make the grammar unambiguous, there's an optional matching terminator you can put after the expression to close the innermost expressions of certain kind.
19:20:01 <b_jonas> it's C, with its if-else ambiguity
19:20:27 <b_jonas> obviously it can also be an esolang, because esolangs can do such things too
19:20:34 <b_jonas> but it's very much a real problem
19:20:51 <b_jonas> oh right, C doesn't have just a matching terminator
19:20:56 <ais523> that if-else ambiguity is really common, and also quite hard to fix in yacc
19:21:09 <ais523> (although ayacc will output a message telling you what you have to do, it's not at all obvious why it works)
19:21:46 <ais523> also, how do you write an ambiguous try-catch? try foo(); try bar(); catch (x) { ... } ?
19:21:48 <ais523> that doesn't seem very useful
19:21:52 <ais523> even if it is technically ambiguous
19:22:14 <b_jonas> ais523: try try foo catch(x) bar catch(y) bar catch(z) bar catch(w) bar
19:22:40 <ais523> gah, that line of code is painful to read
19:23:16 <b_jonas> ais523: yes, especially as it's not even clear that the first "try" is part of the code. sorry.
19:23:57 -!- hppavilion[1] has quit (Ping timeout: 272 seconds).
19:24:02 <b_jonas> So in this case what I think I can do is to have a grammar that has alternatives for certain rules with equivalent semantics (say with or without the terminator), and use a preprocessor to create a variant of the grammar with the more concise equivalents stripped, and then use ayacc to prove that the variant is unambiguous.
19:24:27 <b_jonas> That is, prove that if you always have to write else; after every if statement without an else, then it's unambiguous
19:24:41 <b_jonas> or always have to write endif after an if, in a non-C language
19:26:59 <b_jonas> At first stage, I'd like a system where if I understand why the language can express everything I want to express, and a precise method for how to parenthisize a syntax tree to express it, then
19:28:26 <b_jonas> I should have a way to annotate (1) how syntax trees are equivalent to others semantically, (2) how I'm ok if some syntax trees are unexpressible because they're meaningless anyway even if it seems from the nondeterministic grammar that they should be possible, and (3) why the language is expressive;
19:28:50 <b_jonas> and then the computer should be able to check that if it trusts me about (1) and (2) then (3) is really a proof that the syntax is expressive.
19:29:31 <b_jonas> At second stage, I'd like the computer to tell me why my proof in (3) doesn't work, eg. give counterexamples, similarly to how ayacc helps tell why a lalr(1) grammar has conflicts.
19:29:45 <myname> http://wogcc.state.wy.us/SundryPassWord.cfm
19:30:31 <b_jonas> At zeroth stage, I'd like to know what the heck to search for to find scientific research papers about this.
19:31:06 -!- hppavilion[1] has joined.
19:31:09 <b_jonas> Maybe I should ask zeroth stage on TCS stack exchange.
19:31:24 <b_jonas> But first I'll wait if you have anything in minid.;
19:31:34 <ais523> it's possible that even this is uncomputable
19:31:42 <ais523> if it isn't, I don't really have ideas on where to start
19:31:45 <b_jonas> I don't need to always be able to prove it.
19:31:58 <b_jonas> I just need a particular restricted set of grammars and annotations that work for some grammars.
19:32:11 <b_jonas> I don't need this to work for every crazy language.
19:32:23 <b_jonas> Just, you know, many real world crazy languages.
19:32:34 <b_jonas> I mean, in many case my problem in first place is that the language isn't even LR.
19:33:48 <ais523> yacc input is LR(2) (but not LR(1)), which is one of my favourite parser facts
19:34:31 <b_jonas> And C (after preprocessing) requires you to track which names are typenames in what scopes.
19:34:33 <ais523> it's one of my favourite parser facts, so I'm not surprised I mentioned it earlier
19:34:46 <b_jonas> Which gets way more complicated in C++ by the way.
19:35:01 <b_jonas> The grammar of C++ is horrible. It has so many corners.
19:35:03 <FreeFull> Use Rust, it's easy to parse =P
19:35:36 -!- Phantom_Hoover has joined.
19:37:31 <hppavilion[1]> 3 is a function here, equal to x*3, so I must be able to do f**g
19:37:50 <b_jonas> There are some horrible kludges that handle some underlying ambiguities, some right in the lexer; and there's multiple ambiguities that the programmers themselves have to be aware of because they come up in real world code and can't be fixed because of compatibility.
19:38:08 <ais523> hppavilion[1]: well in Underload and Underlambda, numbers are defined as the matching exponentiation functions
19:38:39 <hppavilion[1]> ais523: OK. Well for mine, it makes more sense that they're multiplication
19:38:39 <ais523> e.g. (a)3^, or "a to the power 3", is a compose a compose a (i.e. aaa in Underload/Underlambda syntax)
19:38:49 <b_jonas> FreeFull: nah, there are no languages that are good and simple, only ones that are too young yet to be complicated. this applies to syntax too.
19:38:59 <ais523> so your "there should be a way to exponentiate one function with another" is just application (multiplication is composition)
19:39:07 <hppavilion[1]> I also found that f(g)=f . g, so that might be helpful
19:39:27 <FreeFull> b_jonas: C started out with a good deal of "complicated"
19:39:59 <FreeFull> I mean specifically Rust can be parsed with an LR(1) grammar
19:40:11 <b_jonas> ais523: I don't think unlambda or underload specifically favors that particular numeric representations. It's not like there are library functions using them or something.
19:40:25 <ais523> b_jonas: underlambda does have library functions
19:40:38 <ais523> they're meant to be general-purpose but specifically favour that numeric representation
19:40:47 <ais523> underload doesn't, and in fact some people use other numeric representations
19:40:50 <ais523> like the string-of-colons one
19:41:30 <ais523> (that one can be added easily enough, but other operations are awkward)
19:42:50 <hppavilion[1]> perhaps f**g is equal to f composed with itself g(1) times?
19:43:16 <ais523> what if g(1) isn't an integer?
19:43:24 <ais523> what if g doesn't even take integer arguments?
19:44:06 <shachaf> Have you seen the Haskell type "Hyper a b = Hyper b a -> b"?
19:44:14 <shachaf> I.e. Hyper a b = (Hyper a b -> a) -> b
19:44:24 <shachaf> It's interesting because it can exist in Haskell but not in set theory.
19:44:36 -!- Welo has quit (Quit: Leaving).
19:45:01 <shachaf> Apparently Hyper Bool Bool ~~ Nat, i.e. the naturals are isomorphic to their own double powerset.
19:45:12 <ais523> shachaf: one of your sets of as and bs is backwards, which?
19:45:16 <ais523> (as in, your two lines don't match)
19:45:42 <Taneb> ais523, the second line is double-backwards
19:45:44 <shachaf> Hyper a b = Hyper b a -> b = (Hyper a b -> a) -> b
19:45:59 <ais523> second line is iterated
19:46:30 <ais523> are the reals isomorphic to their own powerset? IIRC yes?
19:46:45 <shachaf> Nothing is isomorphic to its own powerset in set theory.
19:46:46 <int-e> newtype Foo = Foo (Foo -> Foo) is also fun
19:47:01 <shachaf> int-e: That uses negative recursion, though.
19:47:10 <shachaf> Well, I guess Hyper does too.
19:47:20 <shachaf> I was just thinking that it preserves variances.
19:47:21 <int-e> shachaf: yes, but it's still fine in Haskell, and it's inhabited nevertheless
19:47:37 <ais523> you can merge an countable number of reals into one real
19:47:42 <ais523> but you can't merge an uncountable number of reals into one real
19:48:28 <b_jonas> um, is that certain? how do you prove that?
19:48:32 <int-e> shachaf: yeah Hyper is a proper bifunctor
19:48:42 <b_jonas> I haven't heared of that theorem.
19:48:50 <shachaf> Well, it's a bifunctor, but not an instance of the Haskell class Bifunctor.
19:48:58 <b_jonas> I know you can't merge a continuum many reals to a real of course.
19:49:24 <zzo38> I think I read somewhere about "Honalee algorithm" which can generate the parser for LR(anything)
19:49:51 <b_jonas> I have a crazy card idea for you.
19:50:33 <int-e> shachaf: The Foo thing is basically what you need for untyped lambda calculus; you can have abs :: (Foo -> Foo) -> Foo; abs = Foo, and app :: Foo -> Foo -> Foo; app (Foo f) x = f x, and you can express closed lambda terms, say, abs (\x -> app x x)
19:51:03 <zzo38> b_jonas: What idea?
19:51:14 <b_jonas> name: Fallen Behind. mc: 1BB. type: Enchantment. text: At the beginning of each end step, destroy all permanents that have been tapped and controlled by the active player continuously since the beginning of the turn. For each permanent destroyed this way, put a 2/2 black Zombie creature token onto the battlefield.
19:51:25 <b_jonas> (only, that ability should be rephrased somehow so it's easier to read.)
19:51:32 <int-e> (using higher order abstract syntax)
19:51:36 <shachaf> int-e: Yes, and you can cause nontermination.
19:51:43 <int-e> shachaf: of course.
19:52:31 <shachaf> Anyway usually people talk about the untyped lambda calculus as a CCC with that isomorphism.
19:52:42 <b_jonas> The easiest way to use this is with sleep/thirst effects. That requires you to use an additional color, which can be blue or possible white or green.
19:52:58 <b_jonas> I tried to make this hard by requiring double black mana, so it's harder to abuse.
19:53:28 <int-e> app (abs (\x -> app x x)) (abs (\x -> app x x)) `seq` () -- *twiddles thumbs*
19:53:50 <b_jonas> There's a strange card in TSP that lets you use it in mono-black, but even then I think it's not overpwoered.
19:54:11 <int-e> Hmm, I should perhaps use an infix operator for app.
19:54:50 <shachaf> int-e: I'd guess that that causes inliner problems, like the usual definition of Y with Rec?
19:54:50 <zzo38> I think that card is OK.
19:54:53 <lambdabot> \f -> (\x -> f (outR x x)) (InR (\x -> f (outR x x)))
19:55:01 <hppavilion[1]> OK, so what would f**I be, where I is the identity function?
19:55:24 <int-e> shachaf: Probably, but I'm running it in ghci without optimization.
19:55:50 <int-e> hppavilion[1]: I is 1 as a Church numeral
19:56:05 <b_jonas> At first I tried to make an instant that _untaps_ permanents like that, but that can't work: either it's overpowered combined with the right cards, or it's so overpriced it's useless, so it doesn't encourage using it in an interesting way.
19:56:19 <shachaf> int-e: "I am 1 as a Church numeral" hth
19:56:21 <hppavilion[1]> int-e: THat's what I was thinking, but I want to allow more than just church numerals
19:56:32 <int-e> shachaf: it didn't
19:57:01 <b_jonas> But destroying it makes sense in black, because (1) black can destroy tapped creatures anyway, although this one also destroys artifacts, (2) doesn't let you abuse cards where "doesn't untap" is a drawback.
19:57:12 <b_jonas> And black likes to make zombies this way.
19:57:41 <b_jonas> It still mustn't be too cheap because then you could get a lot of zombies for cheap.
19:58:05 -!- ais523 has quit.
19:59:07 <b_jonas> By the way, what do people informally call "doesn't untap during its controller's untap step" these days? Is it thirst, or sleep?
19:59:28 <int-e> . o O ( cumulative upkeep: sacrifice a zombie )
20:01:18 <b_jonas> If you are really black, you can use it on your own permanents that have a "doesn't untap" drawback, such as tempest dual lands or Giant Oyster.
20:02:58 <b_jonas> zzo38: do you know which strange black card from TSP lets you use this in a mono-black deck? although still not in a way that's overpowered.
20:03:00 <zzo38> Yes, it has many of those kind of uses; it works on any player's permanents whether you or opponent
20:03:18 -!- ais523 has joined.
20:03:28 <zzo38> b_jonas: I don't know, but I will try to look
20:03:30 <b_jonas> Yes, it deliberately kills your own stuff, that just makes it blacker.
20:05:04 <int-e> . o O ( The gathering channel )
20:05:08 <b_jonas> int-e: why bother? the Stasis already has a cumulative upkeep. Winter Orb doesn't
20:05:26 <b_jonas> Hmm, Winter Orb actually might be somewhat crazy with this.
20:05:54 <b_jonas> It will kill the opponent's lands in a completely one-sided way.
20:06:32 -!- mauris has joined.
20:06:34 <shachaf> "Cumulative upkeep: Put an age counter on this permanent."
20:07:12 <b_jonas> Still, that would require you to assemble a 3-combo, with 2 cards very specific, and spend 7 (or maybe 6) mana on it, so in a format with Winter Orb it's probably easily ok to destroy all lands of the opponent for that price.
20:07:23 -!- Patashu has joined.
20:08:09 <int-e> shachaf: card name: methuselah
20:08:41 -!- MoALTz has quit (Quit: Leaving).
20:09:07 <b_jonas> Heck, I think if you're playing Legacy and spend 6 mana on those 3 cards to destroy all but one of the opponent's lands, then the opponent will calmly play a second land next turn and kill you and think you were going easy on him.
20:09:31 <b_jonas> Or is it only Vintage that's so crazy?
20:10:41 <b_jonas> I mean, Winter Orb already denies the opponent the use of those lands, so destroying them isn't too much extra.
20:10:54 <zzo38> I found Mana Skimmer in Time Spiral
20:18:50 <hppavilion[1]> What kinds of weird mathematical objects could we have?
20:19:39 <b_jonas> ais523: maybe the technique where (I modify the grammar by splitting and deleting rules, prove that everything accepted by the new grammar is accepted by the original with the same semantics, and the modified grammar is ayacc unambiguous) covers enough that I could use it for enough cases,
20:20:12 <b_jonas> in which case maybe I should write a preprocessor that helps verify the modification by generating the two grammars from a common input.
20:20:19 <b_jonas> I'll have to think about how much this covers.
20:25:57 <b_jonas> ais523: Ok, this gives me a lot to think about. Thanks for being a teddy bear for this, and good night.
20:29:50 <hppavilion[1]> Perhaps ≔ is assignment and ≡ is reactive assignment?
20:46:53 <zzo38> I would want to see a SQLite extension to access Gatherer, and I want a filterable "last updated time" field to be added. Such a field makes it easy to make backups
20:48:07 <zzo38> However, I think the virtual table capabilities of SQLite are currently too weak for some purposes.
20:51:30 <ais523> hppavilion[1]: with two inputs?
20:51:46 <ais523> you have nine possible combinations of trits coming in on the inputs, each of which can produce one of three outputs
20:52:01 <hppavilion[1]> OK, that should be enough for me to figure it out xD
20:52:02 <ais523> giving you 9**3 possibilities
20:52:20 <ais523> although it's too late for me to do maths in my head really
20:52:28 <ais523> (at least, and be confident about being correct)
20:53:19 <hppavilion[1]> ais523: Have any ideas about what I should do for esonums?
20:53:41 <ais523> hppavilion[1]: my creative process for esolangs is very different from yours
20:54:01 <ais523> you think "I need an esoteric version of «somethign I already know»", look for something similar, move on
20:54:20 <ais523> I think along the lines of "here are some interesting primitives, how much can I do with /just/ those"?
20:54:27 <ais523> then try to take the language to its logical conclusion
20:54:37 <ais523> something like http://esolangs.org/wiki/Snowflake is another example along similar lines
20:54:46 <ais523> the original concept was a language that changes over time as you run programs in it
20:55:11 <ais523> then I realized it needed to be reversible, because otherwise you couldn't guarantee that your program could keep running forever as the language might lose computational power over time
20:55:45 -!- AnotherTest has quit (Ping timeout: 244 seconds).
20:55:48 <Taneb> A lot of my ideas are "What if THIS IDEA was SLIGHTLY DIFFERENT"
20:56:00 <ais523> infinite loops aren't reverisble, but I needed a lot of power in one "main loop" iteration, because otherwise you couldn't "keep up" with changes to the language
20:56:08 <ais523> so then I ended up having to add SIMD parallelism
20:56:15 <quintopia> Taneb: me too. i'm already ready to invent another auberginoid :P
20:56:25 <Taneb> Like, Fueue started as a queue-based Underload, Real Fast Nora's Hair Salon 3: Shear Disaster Download started as functional BIT
20:56:34 <ais523> and then it was a case of finding primitives that fit into this kind of highly specific paradigm
20:57:48 <quintopia> i need to try that method at some poinnt
20:57:55 <hppavilion[1]> What I want to do is create something similar to numbers, but entirely different. Then, I want to start taking stuff from different branches of mathematics (like order theory) and roll it in
20:58:15 <ais523> hppavilion[1]: IMO an esolang is a failure if the spec has to assume the existence of numbers to work
20:58:23 <quintopia> mine tend to be like "here's a list of three or four goals to achieve...fill in the details"
20:58:25 <ais523> ideally you should be able to implement them in terms of something else
20:58:55 <hppavilion[1]> ais523: Mine isn't so much an esolang as the mathematics of aliens
20:59:00 <ais523> actually Three Star Programmer wasn't so hard to work out; the key idea was to never read from odd-numbered tape elements but only beyond a certain point
20:59:07 <quintopia> ais523: this is why you're the guy that did the thing once.
20:59:29 <ais523> quintopia: that was more being an undergraduate with a ton of spare time during the summer holidays
20:59:43 <ais523> they were surprised an undergraduate did it, my reaction was more "well who else would waste twomonths on this?"
21:02:45 <quintopia> ais523: its not enough to have the time. you also have to be comfortable analyzing computational models that don't involve numbers as primitives
21:03:04 <hppavilion[1]> Tree order theory? One where numbers are on a tree instead of a line?
21:03:38 <ais523> quintopia: why would having numbers as primitives even help? :-D
21:04:12 <quintopia> ais523: it sure seems to help the thousands of CS undergrads that do pretty much all their algorithmic work with them
21:04:32 <ais523> most algorithms I know either don't use numbers, or use them to keep track of which order things are in
21:04:43 <ais523> there are a few exceptions where you have to count something
21:05:22 <quintopia> ais523: keeping track of the order things are in, or even just doing basic arithmetic, is actually quite common!
21:05:41 <quintopia> ais523: but speaking of languages without numbers, i finally got around to implementing Platts last night
21:05:43 <ais523> right, but keeping track of an order can be done with a ton of primitives
21:05:52 <ais523> you don't have to use numbers, they're just normally convenient
21:06:52 <quintopia> then i will rephrase: you ave to have overwhelming amounts of time to deal with the added inconvenience of a lack of numbers, and also not be supremely annoyed by that lack
21:07:20 <quintopia> (try to put yourself in the shoes of the average joe for a moment)
21:08:20 <ais523> quintopia: well, suppose you start by trying to implement cyclic tag
21:08:23 <ais523> which is an excellent default
21:08:34 <ais523> how do numbers help? the language doesn't have much to do with numbers in the first place
21:08:50 <ais523> pointers help, and some languages let you use numbers as pointers
21:09:13 <ais523> but it's only coincidence that you're using numbers for that rather than, say, chains of tape elements in brainfuck
21:10:23 <quintopia> see already you're not putting yourself in the shoes of the average joe. no average joe would say "cyclic tag is an excellent default". The average joe would say "Java" or "Python" or "C#" or "C++"
21:10:31 -!- MoALTz has joined.
21:10:35 -!- Welo has joined.
21:12:25 <mauris> the average joe would go "wow jeez tapes and symbols" shortly but adapt to the simplistic nature of things pretty easily, i feel
21:12:53 <mauris> (and then give up and say "this thing is way, way too simple to compute anything" instead of persevering and proving the thingy)
21:13:07 <quintopia> the average joe would say "wow jeezz tapes and symbols. weird, but i have a project due, so i'll just forget it"
21:13:18 <mauris> quintopia: yeah, exactly
21:14:02 -!- AnotherTest has joined.
21:14:15 <ais523> quintopia: well you wouldn't expect someone to solve the problem if they were starting from a completely inappropriate starting point
21:14:25 <ais523> although, I started by trying to prove it Turing-incomplete
21:14:41 <ais523> and then analysed why the proofs weren't working to figure out what approach to take
21:15:22 <mauris> quintopia: but people in my "computability + automata + turing machines + whatever" course seemed not immediately frustrated with how simple automata/TMs are, when having to design them; then again, the things they had to design or the properties they had to reason about were much simpler
21:16:15 <hppavilion[1]> Relatively ordered set? One where some objects have positions relative to others, but there's no overarching order (or if there is, it's expressed by rules)
21:16:40 <ais523> well esodesign and esoprogramming aren't quite the same skill, although there's a lot of overlap
21:16:41 <mauris> hppavilion[1]: that's a poset! https://en.wikipedia.org/wiki/Partially_ordered_set
21:17:10 <ais523> esodesign's a bit like game design; you're making a puzzle to solve, and need to understand how people will/can go about solving it
21:17:26 <ais523> the difference is that it's up to you how easy or difficult to make it, it's OK if you don't expect the puzzle to be solved ever
21:17:39 <ais523> because there's no implicit "this is solvable" warranty
21:18:17 <mauris> i've always been bad at coming up with the "puzzles" because i'm also really bad at solving them
21:19:09 <ais523> hmm, "start with the solution and work backwards" is a common advice for that in game design, but it doesn't really work with esolangs
21:19:14 <mauris> i suppose you have to aim nicely between "trivially powerful" and "too simple to do anything", but from my perspective, everything is either one of those things
21:19:39 <hppavilion[1]> I worked on Arithmetic of the Functia and it was really fun, so now I'm looking for something fun like that to work on. That's why I attempted to make Esonums
21:19:42 <mauris> i dunno, i feel like lots of esolangs might have started as: "i want a programming language in which programming in it involves..."
21:21:44 <mauris> the "solution" is that technique. and a well-designed esolang obscures this technique to make itself look useless
21:21:48 <mauris> ais523: have you seen http://codegolf.stackexchange.com/questions/61804/create-a-programming-language-that-only-appears-to-be-unusable ?
21:22:13 <ais523> no, I don't follow PPCG, and generally rely on people linking it to me
21:22:25 <ais523> some of the threads there are brilliant and really worth reading but most are just bad
21:22:35 <ais523> so thanks for linking me to the interesting ones :-)
21:22:38 <mauris> they gamified esolang creation in exactly the way you described!
21:22:57 <ais523> indeed, although their languages also have to take input
21:23:01 <quintopia> there's also a thread about "create an esolang that's good at matching 2D patterns"
21:23:04 <mauris> i had a good idea, but no time to implement it
21:25:00 <quintopia> there's also a thread on meta that seems targeted toward pretty much replicatng the Language list
21:25:34 <ais523> heh, I noticed that the first one was based on some sort of cube with partial rotations (Rubik's cube style) before the author mentioned it
21:25:41 <quintopia> which functional language has the shortest procedural interpreter?
21:25:56 <hppavilion[1]> I can't do Functia Matrices because I don't yet have function addition
21:27:32 <ais523> quintopia: that's one well-definition
21:28:07 <ais523> the Underlambda definition is along the lines of (f+g)(x) = f(x) composed with g(x)
21:28:17 <hppavilion[1]> Oh, it looks like that's poplular, but that won't work
21:28:24 <ais523> although it's more precise because it allows for the possibility that f and g might take weird numbers of arguments
21:28:48 <hppavilion[1]> ais523: Should I use underlambda's definition? That might be good
21:29:22 <ais523> hppavilion[1]: well in Underlamda, function application is exponentiation, and composition is multiplication, so we have x**(f+g) = x**f * x**g
21:29:37 <ais523> the definition of addition follows logically from that of multiplication and exponentiation
21:29:49 <ais523> (which is the reverse of the way most people define it, but…)
21:30:42 <quintopia> ais523: he was using composition=multiplication before
21:31:07 <ais523> quintopia: I thought he was using application=multiplication?
21:31:34 <quintopia> maybe i'm confused of the differene
21:31:35 <ais523> or, hmm, I don't actually know what pronoun to use for hppavilion[1], was juts copying yours
21:34:21 <zzo38> I have made computer puzzle games that are programmed to start with final position and work backward to create the puzzle by using seeded pseudorandom numbers
21:34:24 -!- hppavilion[1] has quit (Ping timeout: 265 seconds).
21:36:16 <ais523> haha, one of them is actually a game and not a language, if you win the game then the interpreter calculates and prints the expected output itself
21:38:32 <ais523> indeed, it was mostly a protest against a mistake in the challenge spec
21:38:41 <ais523> I wonder if Three Star Programmer predates or postdates that contest?
21:39:02 <ais523> certainly, a version that took input would postdate because I haven't figured out how to do input in a way that remotely fits the spirit of the language yet
21:41:33 <ais523> quintopia: in what, mauris's link? third-largest number in the input
21:44:42 <quintopia> I should enter Purple in the contest
21:54:21 -!- J_Arcane_ has joined.
21:56:29 -!- J_Arcane has quit (Ping timeout: 276 seconds).
21:56:30 -!- J_Arcane_ has changed nick to J_Arcane.
22:05:04 -!- ^v has joined.
22:09:22 <HackEgo> [wiki] [[TOGA computer]] http://esolangs.org/w/index.php?diff=45610&oldid=39598 * Ais523 * (-33) you can't call something TC if it only has finite memory, and this definitely only has finite memory
22:11:29 <HackEgo> [wiki] [[OISC]] http://esolangs.org/w/index.php?diff=45611&oldid=45317 * Ais523 * (+1783) /* List of OISCs */ an OISC can be described via its instruction + its memory mapping and addressing behaviour, so may as well put that information here rather than forcing people to read the individual pages
22:11:39 <ais523> there, been meaning to do that for a few days now
22:11:51 <ais523> two of them are redlinks so I couldn't check
22:12:13 <ais523> also it surprises me how simple Three Star Programmer is compared to the others
22:12:16 <ais523> I thought it'd be more complex
22:13:08 <ais523> it certainly doesn't work much like the others
22:13:23 <ais523> e.g. only finitely many addresses can be read infinitely many times, the rest of memory can only be read finitely many times each
22:16:40 <ais523> actually I'm currently trying to work out how to write a hello world in Three Star Programmer that isn't obnoxiously long
22:17:11 <ais523> I suspect I'll have to use multiple nested loops in order to avoid having to unary the entire ASCII space for every character
22:21:16 -!- hppavilion[1] has joined.
22:23:54 <ais523> btw, my notes on compiling cyclic tag to three star programmer are here: http://nethack4.org/pastebin/cytag-to-3*.pl
22:24:03 <ais523> it should be pretty easy to write the compiler based on that
22:24:09 <ais523> /testing/ it is another matter, though
22:25:10 -!- spiette has quit (Ping timeout: 240 seconds).
22:27:34 <ais523> you'd want a better 3* interpreter, and probably some way to get the construction to produce output (which makes it substantially more complex)
22:28:03 -!- hppavilion[1] has quit (Ping timeout: 265 seconds).
22:34:15 -!- ^v has quit (Ping timeout: 260 seconds).
22:35:45 -!- Welo has quit (Quit: Leaving).
22:37:36 -!- AnotherTest has quit (Quit: ZNC - http://znc.in).
22:52:25 -!- ais523 has quit.
22:59:02 -!- bb010g has joined.
22:59:45 -!- heroux has quit (Ping timeout: 244 seconds).
23:00:39 -!- heroux has joined.
23:02:47 -!- MoALTz has quit (Read error: Connection reset by peer).
23:03:32 -!- MoALTz has joined.
23:03:53 -!- hppavilion[1] has joined.
23:06:59 -!- ^v has joined.
23:07:59 -!- heroux has quit (Ping timeout: 246 seconds).
23:08:50 -!- heroux has joined.
23:17:21 -!- hppavilion[1] has quit (Ping timeout: 265 seconds).
23:17:33 -!- AAA_ has joined.
23:17:52 -!- AAA_ has quit (Client Quit).
23:28:31 -!- Patashu has quit (Remote host closed the connection).
23:28:43 -!- Patashu has joined.
23:46:39 -!- hppavilion[1] has joined.
23:47:58 <hppavilion[1]> "A character encoding in every way worse than unicode, except for a few niche uses"
23:51:06 -!- mauris has quit (Ping timeout: 255 seconds).
23:52:43 <hppavilion[1]> It wouldn't have the linguistic benefits (e.g. supporting every language ever) of unicode, but it would have some benefits for characters like mathematical operators and arrows
23:53:06 <hppavilion[1]> Specifically, that they're generated semantically instead of being a big lookup table
23:54:58 <hppavilion[1]> For example, if there were a typable language for generating SCEML documents, you could type \(COMB:SUBSET, RING) to generate the open subset operator
23:55:14 <hppavilion[1]> And that would become a list of codepoints with a semantic meaning