←2015-11-01 2015-11-02 2015-11-03→ ↑2015 ↑all
00:02:57 -!- adu has quit (Quit: adu).
00:11:55 <HackEgo> [wiki] [[Canonical ingredients-oriented language]] N http://esolangs.org/w/index.php?oldid=45053 * Hppavilion1 * (+726) Created Page
00:22:39 <HackEgo> [wiki] [[Canonical ingredients-oriented language]] http://esolangs.org/w/index.php?diff=45054&oldid=45053 * Hppavilion1 * (+452) MOAR things
00:23:00 <HackEgo> [wiki] [[Canonical ingredients-oriented language]] M http://esolangs.org/w/index.php?diff=45055&oldid=45054 * Hppavilion1 * (+1) Fixed a break in the grammar block
00:27:36 -!- variable has joined.
00:33:09 <hppavilion[1]> Hm...
00:33:18 <hppavilion[1]> An interesting data structure would be the 2D stack or queue
00:38:33 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
00:44:12 <tswett> That would be interesting.
00:44:34 <tswett> I guess you'd push or pop an entire row or column at once. That's one way of doing it, at least.
00:50:46 <zzo38> I think the type line normally makes it a Nightmare or Horror. But, Demon is a different type it is not the same thing, so no it does not count
00:51:10 <zzo38> (Except for cards that have both types, whether implicitly or explicitly)
00:58:53 <hppavilion[1]> tswett: One idea is that, when you dequeue an item from a 2-Queue, you dequeue a queue, dequeue an item from that queue called i, enqueue the queue you dequeued, and return i
00:59:13 <hppavilion[1]> And enqueueing would dequeue a queue, enqueue an item into it, then enqueue the new queue
01:00:48 <hppavilion[1]> Even better, you have the "Exchange queue", on which there is an additional operation (possibly with enqueue and dequeue removed): It is of the form x -> x, and it takes one argument. It equeues an item then dequeues an item and returns it
01:01:08 <hppavilion[1]> A 2-exchange queue kind of rolls each time and is in the shape of a squeare
01:01:10 <hppavilion[1]> *square
01:08:32 <HackEgo> [wiki] [[Pantheon]] http://esolangs.org/w/index.php?diff=45056&oldid=45052 * Hppavilion1 * (+87) Clarification
01:12:06 <tswett> I definitely like your first idea. That sounds pretty interesting.
01:13:47 -!- boily has joined.
01:15:48 <tswett> Let's see. I think I want the organization of my program to be like so: the effects of an event are determined, then the event occurs, then the effects of another event are determined, and so forth.
01:16:16 <tswett> An "event" is the enstacking of a spell or ability, the resolution of a spell or ability, a special action, a state-based action, or a turn-based action.
01:19:15 <tswett> Then the main loop is pretty easy to describe.
01:19:56 <tswett> If a turn-based action is due, it happens, then the loop starts over. Otherwise, state-based actions are checked; if one of them is due, it happens, then the loop starts over.
01:20:58 <tswett> Otherwise, if there are triggered abilities that need to be enstacked, then... all of them go on the stack simultaneously, is that right? Then a player receives priority.
01:21:59 <tswett> Otherwise, a spell or ability resolves, then a player receives priority...
01:22:07 <tswett> That's definitely not completely accurate.
01:26:37 <boily> apparently, the 15.10 upgrade is quite hefty. will ubuntupdate that some time this week...
01:27:47 <boily> @massages-loud
01:27:47 <lambdabot> quintopia said 3h 11m 55s ago: you always leave just a scant few hours before i arrive. and you never have any massages.
01:27:51 <tswett> Okay, I think I know exactly what the loop looks like.
01:33:11 <tswett> 1. If there are any state-based actions that need to happen, then one of them happens, and then repeat step 1. 2. If there are any triggered abilities that need to go on the stack, then all of them go on the stack. 3. A player receives priority; they may cast a spell, activate an ability, take a special action, or pass. 4. If they did not pass, return to step 1. 5. Otherwise, if a player needs to receive priority, return to step 3. 6. Otherwise,
01:33:11 <tswett> proceed to the next step. A turn-based action occurs, if applicable. 7. Return to step 1.
01:37:53 <tswett> Does that sound right?
01:44:14 <zzo38> If there is more than one triggered ability that are different, the controller has to decide the order, and also the target, I think
01:44:51 <tswett> I think every player chooses the order to enstack their own triggered abilities. in APNAP order.
01:45:01 <zzo38> Yes
01:45:41 <tswett> An interesting side effect of this is that the NAP's triggered abilities are faster than the AP's.
01:46:20 <zzo38> Yes, if they occur at the same time between getting priority
01:46:42 <zzo38> Maybe puzzles can be made that can involve such things
01:49:28 -!- mauris has quit (Ping timeout: 246 seconds).
01:59:33 -!- JesseH has quit (Read error: Connection reset by peer).
02:01:07 <\oren\> Can you end a game by creating an infinite loop of state-based effects?
02:03:40 <tswett> If you manage to create an infinite loop of state-based actions, the game ends in a draw, assuming the actions don't allow players to make choices.
02:03:44 -!- adu has joined.
02:03:50 <tswett> I don't know if it's actually possible to create an infinite loop of state-based actions, though.
02:04:18 <tswett> I think I know how I'm gonna have my game handle mandatory infinite loops.
02:05:09 <tswett> If the Main Loop happens 1,000 times without a player receiving priority, the game is assumed to be in an infinite loop and it's stopped.
02:06:20 <tswett> All right, what did I get wrong on *this* test?
02:07:08 <tswett> Miracle is a triggered ability, not a static ability. So... I guess the way that that works must be that when you draw the card with Miracle, it's in your hand, but it still must be kept revealed so it can be identified as the card that was drawn?
02:08:26 -!- boily has quit (Quit: INSUFLATED CHICKEN).
02:10:00 <tswett> Activating a permanent's ability is not "tapping the permanent for mana" unless the activation cost includes the tap symbol, even if you tap the permanent to pay the cost.
02:10:37 -!- coppro has changed nick to Silo.
02:10:48 -!- Silo has changed nick to coppro.
02:11:20 -!- Frooxius has quit (Read error: Connection reset by peer).
02:11:43 -!- Frooxius has joined.
02:23:39 <zzo38> Miracle is a static ability linked to a triggered ability.
02:25:22 <adu> ah MTG
02:30:27 <nchambers> oh man I had the best magic deck build, and then they came out with commons that were twice as strong as my cards
02:30:36 <Sgeo> lifthrasiir, you do Rust?
02:30:46 <Sgeo> Oh is your .zip lib maintained?
02:30:48 <lifthrasiir> Sgeo:yes.
02:30:59 <lifthrasiir> oh, sorry, anymore :(
02:31:06 <tswett> *nod*
02:31:41 <tswett> So yeah. When you reveal the card, it's technically still in your hand, but you have to keep it revealed until it leaves your hand or the triggered ability leaves the stack.
02:31:44 <tswett> By the way...
02:31:51 <tswett> Booyah, I got 100% on that Easy Practice exam.
02:32:21 <Sgeo> Maybe I should just use Python for this
02:33:50 <Sgeo> Or Perl6 if it was 6.chrismas
02:37:18 <zzo38> In older rules there were interrupts and a lot of convoluted stuff having to do with them; mana abilities were interrupts and could be responded to by other interrupts; instants could only be countered while on the "call stack" (anything on the call stack can be responded to only by interrupts), but then moves to the main stack instead of resolving immediately
02:39:55 -!- variable has changed nick to function.
02:40:19 * adu <3 Perl6
02:40:40 * adu <3 Rust
02:42:23 * adu does not like Python very much
02:47:03 -!- function has quit (Quit: 1 found in /dev/zero).
02:47:34 <adu> Sgeo: actually, funny enough, I was writing a Rust grammar in Perl6 earlier
02:48:15 <Sgeo> I think I like the error handling of Rust better (explicit better than implicit), but Perl6 Failures do remind me a bit of the Rust way (except with implicit handling)
02:49:53 <adu> I think Rust will replace C++, and Perl6 will replace Regex and Antlr
03:07:38 <zgrep> adu: I don't see perl6 replacing a parser generator...
03:13:29 <adu> zgrep: I see your point
03:13:44 <zzo38> When I purchased this computer they recommended that I do not upgrade Ubuntu; do you know why? (It is the OEM version, if that matters here at all)
03:14:13 <zgrep> Nor do I see perl5 regex, with it's perl6-specific things, replacing the more-or-less simple rules that are considered to more-or-less be regular expressions.
03:14:46 <adu> Ubuntu LTS 12 and LTS 14 are very different
03:15:08 <zzo38> What differences are they? Is it a different package manager?
03:15:24 <adu> zzo38: same, apt
03:15:50 <adu> but the differences I've encountered just dealing with python and sysadmin stuff could fill a small book
03:15:54 <zgrep> I see three reasons. 1) They installed some stuff and want you to keep it. 2) Newer stuff does things the computer doesn't support 3) They're afraid of new things and/or were simply told to say that to stop unruly customers from doing unruly things with their Ubuntu.
03:17:03 <zzo38> I uninstalled most of the stuff that it came with, and installed many other packages, in some cases having to add additional packages that were not already listed in the package manager
03:18:03 <adu> One trivial example is /etc/motd, LTS 12 writes the dynamic version to /run/motd, and symlinks /etc/motd to it, but LTS 14 writes the dynamic version to /run/motd.dynamic, with an extra line in /etc/pam.d/login for motd and motd.dynamic
03:18:56 <adu> 14 makes more sense, because motd has historically been static, so it should be the dynamic version that has the non-standard name
03:18:58 <zzo38> I also happen to know that this company will not preinstall any nonfree software (although it comes with a paper that explains how to install Flash if you need it, they refuse to preinstall Flash; I did not install it though)
03:19:48 <adu> zzo38: but that's just one difference I've noticed
03:20:15 <zzo38> As far as I know, I have no nonfree native-code programs installed
03:20:59 <adu> zzo38: http://serverfault.com/questions/606089/would-it-be-advised-to-use-ubuntu-14-04-lts-over-12-04-lts
03:23:26 <adu> zzo38: also, I believe in 12 you have to add ifup ifdown scripts to /etc/network/interfaces, but with 14 you can use /etc/network/ifdown.d/*
03:28:56 <zzo38> The man pages seem to explain how message of the day works in Debian anyways, and how to force it to be static and other stuff related to it
03:29:58 <adu> zzo38: most of what I've noticed is that config files moved
03:31:39 <\oren\> Every god damn anime has an episode where they make chocolate
03:32:41 <zzo38> \oren\: Are you sure?
03:32:56 -!- hppavilion[2] has joined.
03:32:57 -!- hppavilion[1] has quit (Ping timeout: 255 seconds).
03:34:11 <adu> any science geeks here?
03:34:42 <adu> any one who likes music?
03:34:56 <zzo38> What kind of music and what kind of science?
03:35:00 <adu> http://melodysheep.bandcamp.com/album/symphony-of-science-collectors-edition
03:35:16 <adu> My ears are very happy right now
03:35:53 <\oren\> zzo38: I'm pretty sure. almost every one I've watched has had one.
03:36:53 <zzo38> I think there is no make chocolate in Akagi and Kaiji anime
03:38:06 <zzo38> adu: I do study science sometimes (especially physics, but others too), and I do have music and also I made up some of my own music file too but also other music.
03:42:52 <adu> zzo38: I like particle physics
03:43:37 <adu> zzo38: partly because I'm convinced that the weak and strong forces are framed incorrectly, and so I read particle data until I can come up with a better theory
03:45:01 <\oren\> zzo38: Good point. I guess the phenomenon must be limited to anime that feature cute girls.
03:45:15 <adu> but I'm not the only one, Faynman also said something similar, that we know QED (EM) to like 40 decimal places, and we know QCD (weak and strong) to like 2 decimal places
03:45:34 <\oren\> (There are no cute girls in kaiji or akagi, as far as I recall[C)
03:46:35 <\oren\> actually, I don't recall there being any women at all in akagi.
03:49:56 <\oren\> apparently the world of yakuza and crazy gamblers is a man's world
03:50:15 <zzo38> Yes, you can try to see if there is a better theory, I know there are some other unsolve problem in the physics too, such as quantum gravity, I think?
03:50:30 -!- aretecode has quit (Ping timeout: 260 seconds).
03:50:36 <zzo38> \oren\: I think I read it is because Fukumoto is not very good at draw women, so usually he does not
03:50:53 <\oren\> ah. that makes sense
03:53:24 <zzo38> But, is there any more Famicom programmers in here?
03:56:47 <adu> zzo38: nope
03:56:59 <adu> zzo38: quantum gravity was based on the graviton
03:57:23 <zzo38> I know that
03:57:44 <adu> zzo38: but the graviton and the Higgs particle are mutually exclusive theories, they can't both be true, and so since the Higgs boson was discovered, it means that quantum gravity is false
03:57:59 <hppavilion[2]> How about...
03:58:06 <hppavilion[2]> Instead of "Everything is an object"
03:58:12 <hppavilion[2]> We do "Everything is a class"
03:58:28 <adu> hppavilion[2]: but what happens when you instantiate a class?
03:58:38 <zzo38> O, I didn't know it is mutually exclusive
03:58:43 -!- JesseH has joined.
03:58:49 <hppavilion[2]> adu: You get a new class
03:58:58 * adu *mind blown*
04:01:09 -!- ^v has joined.
04:05:02 -!- hppavilion[2] has changed nick to hppavilion[1].
04:05:42 <hppavilion[1]> So basically, everything is a (meta-)*class
04:08:47 <adu> sounds like OMG
04:08:54 <adu> OMG = Object Management Group
04:09:42 <adu> they have these 3 things called CWM, UML, and MOF, and if you read their object models they're almost word for word the same
04:10:15 <adu> except CWM is full of models, UML is full of metamodels, and MOF is full of metametamodels
04:12:33 -!- hppavilion[1] has quit (Ping timeout: 255 seconds).
04:43:26 -!- adu has quit (Quit: adu).
04:49:27 -!- Wright has quit (Ping timeout: 250 seconds).
04:50:02 <zgrep> I fail to see that much of a difference between: everything's a type, everything's an object, and everything's a class...
04:55:57 <newsham> everything's a type?
05:03:53 <\oren\> there isn't a difference. if everything is the same then everything is the same
05:04:08 <\oren\> err... that isn't what I mean
05:04:19 <zzo38> But it can depend how its functioning is working too
05:05:18 <\oren\> I mean, if everything is the same 'thing', then that 'thing' must be usable like a function or a class or an object
05:08:36 <zzo38> I think in Python a class can be used like a function; I had to fix a hard drive wiping program in Python to do some additional things, and the tasks were implemented as function that return process objects; this one was different, and since I knew from some program I have seen before that a class can be use as function, I did the same thing here
05:17:04 -!- doesthiswork has quit (Quit: Leaving.).
05:18:03 -!- doesthiswork has joined.
05:21:41 -!- zgrep has quit (Quit: ZNC 1.6.1 - http://znc.in).
05:22:18 -!- doesthiswork has quit (Ping timeout: 240 seconds).
05:22:37 -!- zgrep has joined.
05:50:52 -!- hppavilion[1] has joined.
06:00:25 -!- ^v has quit (Ping timeout: 246 seconds).
06:04:46 -!- JesseH has quit (Ping timeout: 244 seconds).
06:20:28 -!- nitrix-or-treat has changed nick to nitrix.
07:34:09 -!- hppavilion[1] has quit (Ping timeout: 255 seconds).
07:40:42 -!- zgrep_ has joined.
07:40:59 -!- zgrep has quit (Ping timeout: 240 seconds).
07:41:21 -!- zgrep_ has changed nick to zgrep.
07:45:33 -!- zadock has joined.
07:49:31 -!- Patashu has joined.
08:48:00 -!- AnotherTest has joined.
09:00:34 -!- GoToTell has joined.
09:09:17 -!- jaboja has joined.
09:23:51 -!- AnotherTest has quit (Ping timeout: 265 seconds).
09:25:18 -!- sebbu has quit (Quit: reboot).
09:36:31 <Jafet> Before long, tswett will end up implementing a ZFC logic checker to determine that some axiomatisation of the game rules has a computable model
09:36:56 <Jafet> Hmm, there is https://github.com/magefree/mage
09:46:01 -!- jaboja has quit (Remote host closed the connection).
09:54:25 -!- AnotherTest has joined.
09:57:44 -!- mauris has joined.
10:00:51 -!- J_Arcane has quit (Ping timeout: 255 seconds).
10:10:56 -!- oerjan has joined.
10:23:47 -!- sebbu has joined.
10:35:03 -!- sebbu has quit (Ping timeout: 255 seconds).
10:45:35 <izabera> http://archive.defense.gov/home/features/video/player.aspx?dQw4w9WgXcQ
11:01:54 -!- sebbu has joined.
11:04:27 -!- password2 has joined.
11:04:38 <password2> Hi
11:04:57 <oerjan> `relcome password2
11:05:08 <HackEgo> password2: 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.)
11:05:18 <password2> I have not seen that in a while
11:05:34 <oerjan> me neither
11:06:46 <password2> I have a random question about your wiki, How many active user do you guys have?
11:07:18 <password2> I'm trying to prove a point to my manager that mediawiki is not solely for large communities
11:09:12 <password2> if you guys don't mind me asking
11:10:22 <izabera> git also works for personal projects but it was designed for the linux kernel
11:10:25 <oerjan> https://esolangs.org/wiki/Special:ActiveUsers has a list which seems to go 30 days back
11:10:31 <izabera> same thing as mediawiki
11:10:59 * oerjan counts 39
11:11:26 <password2> oh , duh , i do have access to view it
11:11:58 <password2> i have not been on there activily since 2014
11:12:06 <oerjan> good, i wasn't sure
11:12:25 <password2> thy
11:12:57 * oerjan counts 20 with more than 2 actions
11:14:45 <password2> what does the 'Display users starting at' field do?
11:14:55 <password2> or what does it expect as an input?
11:15:48 -!- boily has joined.
11:16:09 <oerjan> any word, and then it starts there alphabetically
11:16:09 <password2> oh nvm
11:16:21 <oerjan> doesn't make much sense when the whole page isn't split up
11:16:24 <password2> thats a random feature
11:16:50 <oerjan> no it's not. there are some special pages that are far larger and you need to use that to see anything
11:16:58 <password2> would be more usefull to be able to set time frame and # of actions
11:17:03 <oerjan> (other than the first subframe)
11:17:11 <oerjan> that's true
11:17:25 <password2> i can see that it could be usefull
11:17:38 <password2> but is pagination so hard to do?
11:20:18 <password2> anyway , thanx for the info
11:20:23 <oerjan> you mean an actual table of subpages?
11:21:05 <oerjan> i imagine if this is designed for wikipedia, it would be far too resource-heavy
11:21:25 <oerjan> also then it would change every second
11:21:53 <password2> and the current one does not?
11:22:05 <password2> maybe I'm just too much of a fanboy for datatables
11:22:14 <oerjan> well it wouldn't have to update the page list constantly
11:22:19 <oerjan> er *it would
11:23:08 <oerjan> i suppose it could decide the boundaries a bit less frequently
11:23:30 <oerjan> in any case, it's not like we look at that list often.
11:23:35 <oerjan> (well i don't)
11:23:39 -!- heroux has joined.
11:23:52 <oerjan> the whole user list is mostly spammers :P
11:23:55 <GoToTell> Question: has anyone done any work with Cellular Automatons using multiple rules? Like, either two CA rules alternating after each time step, or two CA rules applied to different regions of the same cell state space.
11:25:27 <oerjan> GoToTell: probably, although isn't the first equivalent to a cellular automaton with bigger time step and neighborhood
11:25:51 <int-e> and the second one to a CA with twice the number of states (using one "bit" to encode the regions)
11:25:54 <GoToTell> I was thinking more states.
11:26:36 <GoToTell> Right.
11:26:40 <int-e> and yeah, the first one can also be done with twice the number of states. (In both cases you get some garbage behaviour)
11:27:02 <GoToTell> Garbage behaviour?
11:28:08 <int-e> well, there are configurations that don't correspond to the right regions in the second case, and configurations that have "out of sync" (wrt. to odd/even generations) cells in the first case.
11:28:08 <oerjan> GoToTell: the margolus neighboorhood CAs are a bit like this, anyway.
11:28:26 <oerjan> https://en.wikipedia.org/wiki/Block_cellular_automaton
11:30:16 -!- mroman has joined.
11:30:25 <mroman> https://esolangs.org/wiki/ESO_Sockets
11:30:34 <mroman> ^- this really does not contain any useful information o_O
11:31:22 <oerjan> OKAY
11:31:49 -!- heroux has quit (Ping timeout: 244 seconds).
11:32:17 <oerjan> i guess hppavilion moved on before he got to put anything in
11:32:31 <GoToTell> Ah. Interesting, thanks.
11:32:35 <mroman> Yeah, I saw it just has one edit, and that's the create edit.
11:34:17 <mroman> I know I have done that as well. Create pages of WIPs
11:35:02 <mroman> but generally they shouldn't be there unless there's some substantial work to show.
11:36:39 <oerjan> anyway, my esolangs backlog means i haven't got to that page yet. maybe i'll delete it then.
11:37:21 -!- Melvar` has changed nick to Melvar.
11:38:19 <mroman> Designing and implementing an esolang is rather a trivial task so at least if people do it and want to make the language known to others it should at least contain some reasonable documentation.
11:38:37 <mroman> That's only my opinion of course.
11:38:54 <oerjan> i don't think that was meant to be an esolang, more part of hppavilion's "esoteric concepts" series
11:39:19 <mroman> The EsoSocket is not a language, yes.
11:39:59 <mroman> I know from my past how these things happens :)
11:40:18 <mroman> You have some idea, make an esowiki article (to make it known) but in the end you just end up cluttering :)
11:41:57 <mroman> There are articles without enough documentation to write an interpreter for it.
11:42:08 <password2> only thing I have made thats to do with esolangs is bf^
11:42:43 <mroman> Some of them were created by me
11:42:47 <mroman> like https://esolangs.org/wiki/Stlisp
11:42:53 <mroman> granted, there was an interpreter in C++ back then
11:42:55 <mroman> but not anymore
11:43:07 <mroman> and the page doesn't contain enough information to rewrite the interpreter like it was back then.
11:43:51 <mroman> that makes it a question whether the article should continue to exist or not
11:44:48 <mroman> https://esolangs.org/wiki/Stlang <- same thing
11:46:26 <mroman> If I could delete them I probably would have done that already :D
11:49:07 -!- heroux has joined.
11:49:35 <HackEgo> [wiki] [[Special:Log/newusers]] create * Mroman * New user account
11:50:30 <HackEgo> [wiki] [[User:Mroman]] N http://esolangs.org/w/index.php?oldid=45057 * Mroman * (+125) Created page with "The almost living re-incarnation of [[User:Feuermonster]], same person, different account. (E-Mail-Account has been lost :()."
11:51:01 <mroman> eh. why did it capitalize the m :(
11:52:04 <HackEgo> [wiki] [[Burlesque]] http://esolangs.org/w/index.php?diff=45058&oldid=44537 * Mroman * (+38) /* Links */ added link to github repos
11:52:24 <mroman> (I'm tired of having to answer the captchas everytime :D)
11:53:07 <fizzie> I'm the nonstandard "Fizzie" on the wiki, too.
11:53:10 <fizzie> Re capitalization.
11:53:12 <fizzie> Re capitalism.
11:59:18 <oerjan> mroman: you can use the {{lowercase}} template hth
12:01:02 -!- jaboja has joined.
12:01:46 -!- zadock has quit (Quit: Leaving).
12:04:25 -!- Patashu has quit (Ping timeout: 240 seconds).
12:05:04 <b_jonas> mroman: the default mode for mediawiki is that it capitalizes the first character of every page title, sadly. this can be turned off, and probably should have for esowiki, but it's probably too late now.
12:06:59 <b_jonas> mroman: on the other hand, even if the wiki had been set case insensitive, people would still give names to their esolangs that isn't valid as a page title, so it's probably just the frequency of that problem that changes.
12:11:36 -!- mauris_ has joined.
12:11:46 -!- mauris has quit (Ping timeout: 246 seconds).
12:21:24 -!- boily has quit (Quit: LETHARGIC CHICKEN).
12:36:16 -!- AnotherTest has quit (Ping timeout: 246 seconds).
12:37:24 <mroman> What's the minimum bound for the length of a brainfuck program producing a text of length N?
12:38:15 <Taneb> Small
12:38:51 <mroman> There's afaik no brainfuck constant larger than 18?
12:39:17 <mroman> so with the dot
12:39:18 <mroman> 19*N
12:39:27 <mroman> that's the most trivial minimum bound
12:39:34 <mroman> but it can probably be done much shorter.
12:40:18 <Taneb> It can be done in N+1 if you don't care about "real" output
12:40:25 <Taneb> That is, +.........................
12:42:16 <mroman> well I'm assuming the text is arbitrarily random enough
12:44:12 <mroman> also you need to skip to a zero cell first.
12:44:17 <mroman> so 19 is probably not enough
12:52:12 <oerjan> are we talking _exactly_ length N, because if so it has to be of order O(log N) for most N, if only larger than N then it's uncomputable.
12:52:29 <oerjan> oh wait
12:52:35 <oerjan> text of length N
12:53:43 <oerjan> anyway, for some texts it has to be on the same order as the text itself
12:53:59 <oerjan> while for some texts it's uncomputable.
12:54:13 <fizzie> mroman: The brainfuck constants expect different numbers of zero scratch cells, you can't just concatenate them to change the value in the current cell.
12:54:19 <oerjan> well i guess it's usually uncomputable
12:54:19 <fizzie> (Re the 19*N bound.)
13:00:34 <oerjan> step 1: encode the bits as + = 0, > = 1. step 2: encode the length somehow, so you can get back to the beginning. step 3: run a decoding and printing program.
13:01:32 <oerjan> from this i conclude that you can do it in 8*length + O(1).
13:01:37 <oerjan> hm
13:01:48 <oerjan> make that 8*length + O(log length).
13:02:08 -!- Froox has joined.
13:03:10 <oerjan> you can shorten it by using -, but then you get a more complex coding
13:04:37 -!- Frooxius has quit (Ping timeout: 246 seconds).
13:08:14 <mauris_> you can prefix the program with -> and just scroll back looking for a 255 on the tape, not very complex
13:10:30 <mauris_> i doubt you can do better than 8*N+O(1) asymptotically!
13:11:00 <b_jonas> oerjan: are you sure you can read such a dense thing, with every cell used, with a brainfuck program?
13:12:29 -!- Frooxius has joined.
13:13:35 <oerjan> b_jonas: i don't see why not, you have plenty of room to the right.
13:13:36 -!- Froox has quit (Ping timeout: 244 seconds).
13:14:12 <oerjan> mauris_: i expect you can do better by using - more.
13:14:25 <oerjan> and who knows what madness you can get out of []
13:15:19 <oerjan> + followed by >, > followed by + or -, - followed by >.
13:15:22 <oerjan> er
13:15:44 <oerjan> * + followed by > or +, > followed by >, + or -, - followed by > or -.
13:16:17 <mroman> fizzie: Yes, that's why you need to skip to the right
13:16:38 <mroman> one or more cells
13:16:47 <mroman> not all constants seem to terminate on the right-most cell they use
13:17:09 <oerjan> of course you are limited to no more than 128 + or - in a row, with 8 bit cells
13:17:40 <oerjan> but i don't think this affects the overall much
13:18:00 <oerjan> hm
13:18:25 <oerjan> you can think of that as +/-, >+ and >-
13:18:41 <oerjan> oh wait hm
13:19:04 <oerjan> nah that just makes it more complicated
13:19:32 <mauris_> hmm... what is the very best you could possibly do? there are 2^(8N) possible texts of length N and 8 possible instructions per byte of code so you take the log8 of that and get (8/3)*N
13:19:47 <oerjan> [[1,1,0],[1,1,1], [0,1,1]] is the transition matrix, i think it's basically the norm of that.
13:20:10 -!- Froox has joined.
13:20:16 <oerjan> mauris_: there are several pairs of instructions that cancel each other, so you cannot quite get that
13:20:23 <mauris_> right
13:21:24 <mauris_> i meant, the very worst you can't do, or something
13:22:08 -!- Frooxius has quit (Ping timeout: 265 seconds).
13:23:36 <oerjan> > let m (p,r,m) = (p+r,p+r+m,r+m); (p,r,m) = iterate m (1,0,0) !! 1000 in map (logBase 2) [p,r,m]
13:23:38 <lambdabot> Conflicting definitions for ‘m’
13:23:38 <lambdabot> Bound at: <interactive>:1:5
13:23:38 <lambdabot> <interactive>:1:39
13:23:46 <oerjan> oops
13:23:55 <oerjan> > let mat (p,r,m) = (p+r,p+r+m,r+m); (p,r,m) = iterate mat (1,0,0) !! 1000 in map (logBase 2) [p,r,m]
13:23:57 <lambdabot> [Infinity,Infinity,Infinity]
13:24:01 <mauris_> nice
13:24:14 -!- lleu has quit (Quit: That's what she said).
13:24:14 <oerjan> > let mat (p,r,m) = (p+r,p+r+m,r+m); (p,r,m) = iterate mat (1,0,0) !! n; m = 100 in map (logBase 2) [p,r,m] / n
13:24:15 <lambdabot> Conflicting definitions for ‘m’
13:24:16 <lambdabot> Bound at: <interactive>:1:41
13:24:16 <lambdabot> <interactive>:1:72
13:24:27 <oerjan> > let mat (p,r,m) = (p+r,p+r+m,r+m); (p,r,m) = iterate mat (1,0,0) !! n; n = 100 in map (logBase 2) [p,r,m] / n
13:24:29 <lambdabot> No instance for (Show b0)
13:24:29 <lambdabot> arising from a use of ‘show_M226665793838954151314277’
13:24:29 <lambdabot> The type variable ‘b0’ is ambiguous
13:24:33 <oerjan> wtf
13:24:58 <oerjan> > let mat (p,r,m) = (p+r,p+r+m,r+m); (p,r,m) = iterate mat (1,0,0) !! n; n = 100 in map ((/fromIntegral n) . logBase 2) [p,r,m]
13:25:00 <lambdabot> [1.2515533031636121,1.2565533031636122,1.2515533031636121]
13:25:05 <oerjan> there you go.
13:25:34 <oerjan> so about 1.25 bits per character +,> or -
13:28:26 <oerjan> > let n = 500; mat (p,r,m) = (p+r,p+r+m,r+m); (p,r,m) = iterate mat (1,0,0) !! n in map ((/fromIntegral n) . logBase 2) [p,r,m]
13:28:28 <lambdabot> [1.2675533031636121,1.2685533031636118,1.2675533031636121]
13:28:47 <Taneb> `? d-module
13:28:59 <HackEgo> D-modules are just modules over the ring of differential operators. Taneb invented them.
13:29:09 <Taneb> `? module
13:29:10 <HackEgo> module? ¯\(°​_o)/¯
13:30:10 -!- Frooxius has joined.
13:30:52 <Taneb> (actually learning about modules RIGHT NOW)
13:31:00 <Taneb> `algebraic number theory
13:31:01 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: algebraic: not found
13:31:04 <Taneb> `? algebraic number theory
13:31:05 <HackEgo> algebraic number theory? ¯\(°​_o)/¯
13:31:48 -!- Froox has quit (Ping timeout: 265 seconds).
13:34:51 <oerjan> `learn A module is like a vector space, except with a ring instead of a field.
13:34:54 <HackEgo> Learned 'module': A module is like a vector space, except with a ring instead of a field.
13:35:19 <Taneb> `? ring
13:35:20 <HackEgo> Addition, subtraction and multiplication have a certain ring to them.
13:35:21 <mauris_> `? vector space
13:35:22 <HackEgo> vector space? ¯\(°​_o)/¯
13:35:30 <Taneb> `? differential operators
13:35:31 <HackEgo> differential operators? ¯\(°​_o)/¯
13:35:36 <Taneb> Same, HackEgo. Same.
13:36:06 <b_jonas> `? lie algebra
13:36:07 <HackEgo> lie algebra? ¯\(°​_o)/¯
13:36:08 <b_jonas> `? lie-algebra
13:36:09 <HackEgo> lie-algebra? ¯\(°​_o)/¯
13:36:09 <oerjan> `le/rn vector space/A vector space is just a module over a field.
13:36:12 <b_jonas> `? lie-group
13:36:13 <HackEgo> Learned «vector space»
13:36:13 <HackEgo> lie-group? ¯\(°​_o)/¯
13:36:15 <b_jonas> `? lie group
13:36:16 <HackEgo> lie group? ¯\(°​_o)/¯
13:36:49 <b_jonas> `? Haar measure
13:36:50 <HackEgo> Haar measure? ¯\(°​_o)/¯
13:37:23 <mauris_> `le/rn Haar measure/A Haar measure is what Dutch people use to find out how long their hair is.
13:37:25 <HackEgo> Learned «haar measure»
13:38:22 <GoToTell> Or how long 'she' is.
13:38:37 <GoToTell> Well, 'hers'.
13:38:40 <oerjan> `le/rn algebraic number theory/Algebraic number theory was invented by Fermat to prove his theorem, but he didn't have room to write it down.
13:38:42 <HackEgo> Learned «algebraic number theory»
13:39:22 <Taneb> Algebraic Number Theory is either Algebraic Number Theory or Algebraic Number Theory, or possibly both.
13:39:28 <Taneb> One of my seminar leaders told me so
13:41:05 <oerjan> Taneb: i think it's mostly the former hth
13:41:14 <Taneb> That's what he said too
13:42:04 <GoToTell> Could it be neither?
13:42:09 -!- AnotherTest has joined.
13:42:13 <Taneb> No
13:42:30 <GoToTell> Phew.
13:42:38 <b_jonas> `? category
13:42:39 <HackEgo> A category is an enriched category where the enriching category is the category of classes.
13:42:41 <b_jonas> `? bicategory
13:42:42 <HackEgo> Bicategories are just categories where composition is only associative up to an isomorphism.
13:42:42 -!- mauris_ has quit (Ping timeout: 255 seconds).
13:42:42 <Taneb> (the two were actually different)
13:42:54 <Taneb> HackEgo: is that true?
13:43:11 <b_jonas> `? tricategory
13:43:12 <HackEgo> tricategory? ¯\(°​_o)/¯
13:43:18 <b_jonas> `? cocategory
13:43:19 <HackEgo> cocategory? ¯\(°​_o)/¯
13:43:21 <b_jonas> `? comorphism
13:43:21 <HackEgo> comorphism? ¯\(°​_o)/¯
13:43:25 <b_jonas> `? bimorphism
13:43:25 <HackEgo> bimorphism? ¯\(°​_o)/¯
13:44:11 <password2> ?.
13:44:11 <lambdabot> Not enough arguments to @.
13:44:25 <password2> '? .
13:45:18 <oerjan> `le/rn lie algebra/A Lie algebra is what you get if you take the region infinitesimally close to the identity of a Lie group and blow it up to normal size.
13:45:22 <b_jonas> `? infinitesimal generator
13:45:23 <HackEgo> Learned «lie algebra»
13:45:24 <HackEgo> infinitesimal generator? ¯\(°​_o)/¯
13:46:20 <b_jonas> `? lie bracket
13:46:21 <HackEgo> lie bracket? ¯\(°​_o)/¯
13:46:45 <b_jonas> `? homotopy group
13:46:46 <HackEgo> homotopy group? ¯\(°​_o)/¯
13:46:54 <b_jonas> `? compact
13:46:55 <HackEgo> compact? ¯\(°​_o)/¯
13:46:57 <b_jonas> `? complex
13:46:58 <HackEgo> complex? ¯\(°​_o)/¯
13:47:02 <b_jonas> `? manifold
13:47:03 <HackEgo> manifold? ¯\(°​_o)/¯
13:47:04 <b_jonas> `? variety
13:47:05 <HackEgo> variety? ¯\(°​_o)/¯
13:47:06 <b_jonas> `? fungot
13:47:06 <fungot> b_jonas: jsr vector ;alter system bus. only through ex- perimentation on your commodore music synthesizer inside your commodore 64, but not where you wish to have any keys been typed as spaces were inserted.
13:47:08 <HackEgo> fungot is our beloved channel mascot and voice of reason.
13:49:46 <GoToTell> fungot, who is HackEgo?
13:49:46 <fungot> GoToTell: 10 print"type 2 numbers" or variables. begin by asking the user program must jmp ( 300) points to the lower 8 bits wide. on cassette, anywhere from 1-25. depending on whether the resulting number only of identical bits in the
13:50:22 <b_jonas> `? varifold
13:50:23 <HackEgo> varifold? ¯\(°​_o)/¯
13:50:25 <b_jonas> `? maniety
13:50:26 <HackEgo> maniety? ¯\(°​_o)/¯
13:50:31 <b_jonas> `coins
13:50:40 <b_jonas> `? vla
13:51:00 <HackEgo> vla? ¯\(°​_o)/¯
13:51:05 <HackEgo> singcoin norfulcoin guycoin totcoin bf-rlecoin undexcoin bubcoin piazecoin spearcoin rdinatiocoin grulieathmanicacoin vercoin bincoin ///coin antumcoin (())coin methacoin networkcoin arcemcoin udvcoin
13:52:06 <oerjan> `le/rn lie bracket/Politicians try to stay within the lie bracket: Not so many lies that voters cannot stand it, but not so few that they think you have nothing to give them.
13:52:09 <HackEgo> Learned «lie bracket»
13:52:52 <b_jonas> `? ub
13:52:53 <HackEgo> ub is a saner hub.
13:53:01 <int-e> wat.
13:53:55 <int-e> `welcome ub
13:53:56 <HackEgo> ub: 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.)
13:54:03 <oerjan> `culprits wisdom/ub
13:54:04 <int-e> `elcome ub
13:54:05 <HackEgo> b: elcome o he nternational ub or soteric rogramming anguage esign nd eployment! or ore nformation, heck ut ur iki: <ttp://solangs.rg/>. (or he ther ind f soterica, ry #soteric n Fnet r ALnet.)
13:54:06 <HackEgo> oerjan elliott ais523 ais523 boily
13:54:14 <oerjan> still wat.
13:54:28 <int-e> heck ut ur iki
13:55:50 <int-e> fungot: what would an insane hub be?
13:55:50 <fungot> int-e: there are comparison instructions, and is located in bits 2 to a variable name must appear where shown in appendix e gives you more flexibility and your program would list the token, to allow the program below uses this space is printed in the
13:56:29 <Taneb> int-e: hhub
13:56:37 <oerjan> ooh boolean google doodle
13:57:39 <oerjan> right, this is going to use my CPU all day, isn't it
13:58:23 <int-e> and it's not even javascript... must be CSS3 transitions.
14:01:29 <fizzie> Hm, is there more to it than the animated gif at https://www.google.co.uk/logos/doodles/2015/george-booles-200th-birthday-5636122663190528.2-hp.gif ?
14:02:21 <mroman> hm.
14:02:32 <mroman> my program has found 213 optimal deadfish constants :D
14:05:29 -!- adu has joined.
14:05:39 <int-e> fizzie: oh old-school...
14:06:57 <oerjan> oh, maybe it's just that.
14:07:07 <oerjan> mroman: fancy
14:07:52 <oerjan> for deadfish, that seems solvable in general.
14:08:20 <oerjan> i think we may have discussed it at one point.
14:10:14 <oerjan> there's never any point in incrementing or decrementing so many times that you could reach more than half-way to the next square, because then it's better to go there before squaring.
14:10:41 <oerjan> (except possibly around 256)
14:13:58 -!- `^_^ has joined.
14:14:02 -!- `^_^ has changed nick to `^_^v.
14:14:31 -!- doesthiswork has joined.
14:16:53 -!- J_Arcane has joined.
14:17:01 -!- adu has quit (Quit: adu).
14:21:30 -!- Froox has joined.
14:23:31 -!- Frooxius has quit (Ping timeout: 265 seconds).
14:33:01 -!- GoToTell has quit (Quit: HydraIRC -> http://www.hydrairc.com <- Po-ta-to, boil em, mash em, stick em in a stew.).
14:43:34 <mroman> I'm hoping to find the next missing constants within this workday :)
14:45:58 <mroman> The longest so far is iissdddsdddddddddo
14:46:05 <mroman> (length 18, number 160)
14:54:00 <mroman> but I doubt that I'll find them this way
14:54:17 <mroman> nearest square to 250 is for example 15*15
14:54:26 <mroman> which is 25 away from 250
14:54:29 <mroman> so
14:54:39 <mroman> there need to be at least 25 increments
14:55:14 <mroman> iiiisds(i)*25 is most likely the shortest one to produce 250.
14:55:32 <mroman> you can't overshoot 255
14:55:39 <mroman> because d checks for 256
14:55:54 <mroman> (i.e. if something is 256 it gets reset to zero)
14:56:04 <mroman> so overshooting 255 and doing decrements is not possible
14:56:19 <mroman> the only way is to try to get to the nearest square
14:58:59 <oerjan> mroman: i suspect the shortest constant is always the most obvious candidate
15:00:06 <oerjan> and only around 256 is that not simply the closest one
15:00:14 <oerjan> *closest square
15:00:22 <oerjan> hm
15:00:46 <oerjan> i _suppose_ it could be two candidates, when the distance is close to equal
15:01:19 <oerjan> > sqrt 160
15:01:21 <lambdabot> 12.649110640673518
15:01:53 <oerjan> > (160 - 12^2, 13^2 - 160)
15:01:54 <lambdabot> (16,9)
15:03:21 <oerjan> oh and of course the shortest ways of getting two that are one apart cannot differ by more than 1
15:03:39 <oerjan> so there's no need to consider 12 there
15:03:57 <oerjan> > (4^2 - 13, 13 - 3^2)
15:03:59 <lambdabot> (3,4)
15:04:10 <oerjan> _that_ looks close enough to be dubious
15:04:43 <oerjan> except, only enough to get two equal candidates
15:04:58 <oerjan> so we only need 4
15:05:27 <oerjan> isssdddsddddddddd
15:05:41 <oerjan> which is the same you found
15:05:52 <fizzie> oerjan: 1^2 is 2 now?
15:06:01 <oerjan> oops
15:06:09 <oerjan> *iisssdddsddddddddd
15:06:19 <oerjan> oops
15:06:27 <oerjan> *iissdddsddddddddd
15:06:57 <oerjan> now going by 3 instead
15:07:21 <oerjan> iiisiiiisddddddddd is slightly longer
15:07:50 <oerjan> oh hm
15:08:00 <oerjan> consecutive squares are even and odd
15:08:10 <oerjan> so there's _never_ an exact midpoint.
15:08:52 <oerjan> which means you always go to the closest one. there _might_ be a different one that ties, but never a better one.
15:09:45 <oerjan> oh. again, exceptions near 256^2, possibly.
15:10:39 <oerjan> well, that's just because 256^2 is excluded.
15:11:10 <oerjan> > (255^2 + 257^2)/2
15:11:12 <lambdabot> 65537.0
15:11:43 <oerjan> and you cannot cross over, hm
15:11:58 <oerjan> i guess this requires looking at what the actual lengths of 255 and 257 are.
15:12:19 <oerjan> > 255 - 15^2
15:12:21 <lambdabot> 30
15:12:37 <oerjan> > (17^2 - 257)
15:12:38 <lambdabot> 32
15:13:18 <oerjan> 15 and 17 are so close to 16 they're obviously iissd and iissi respectively
15:13:49 <oerjan> so 257 is two longer than 255.
15:15:46 <oerjan> which means 65537 should go via 255^2, 65538 doesn't matter which way.
15:16:12 <oerjan> and the rest go to the closest one.
15:18:14 * oerjan suddenly wonders if he just destroyed mroman's fun
15:23:23 <mroman> oerjan: http://codepad.org/Q1I5Cz2y
15:24:04 <oerjan> mroman: 3 should be iii
15:24:09 <mroman> yeah
15:24:12 <mroman> there's some bug :(
15:25:02 <oerjan> hm maybe it's because 1^2 is i rather than is, so the basic rules breaks for 3
15:25:08 <oerjan> *-s
15:26:42 <oerjan> because 1^2 and 2^2 have more than 1 difference in length
15:28:01 -!- edwardk_ has joined.
15:30:33 -!- mroman_ has joined.
15:30:54 <mroman_> oh
15:30:54 <mroman_> dc
15:30:54 -!- erdic_ has joined.
15:31:04 -!- nycs has joined.
15:31:07 <mroman_> http://codepad.org/ttmTweG5 <- if that didn't come through
15:31:37 <mroman_> You need at most 36 chars to reach any df number 0-255
15:32:54 <mroman_> oerjan: I've bruteforced 213 of them for comparison.
15:33:03 <int-e> this is such a brutal way of installing gentoo: http://pastebin.com/raw.php?i=yKL5wc3W (the link appears in http://www.twitch.tv/twitchinstallsarchlinux/v/23578745 "Twitch installs Arch Linux")
15:33:12 <mroman_> but the whole set was generated by using the fact that there's no better way than to get to the closest square
15:33:22 <mroman_> and then use recursion
15:33:47 <mroman_> 255 -> closest square 225 -> 15 -> closest square 16 -> 4 -> 2
15:33:48 <int-e> ah, inc/dec/squaring... this is rather tame.
15:34:58 <oerjan> mroman_: yeah. as i predicted, there are some possible ties.
15:35:18 -!- `^_^v has quit (*.net *.split).
15:35:18 -!- mroman has quit (*.net *.split).
15:35:19 -!- mbrcknl has quit (*.net *.split).
15:35:19 -!- glowcoil has quit (*.net *.split).
15:35:19 -!- edwardk has quit (*.net *.split).
15:35:19 -!- sewilton has quit (*.net *.split).
15:35:19 -!- cnr has quit (*.net *.split).
15:35:19 -!- izabera has quit (*.net *.split).
15:35:20 -!- erdic has quit (*.net *.split).
15:35:20 -!- Jafet has quit (*.net *.split).
15:35:20 -!- zemhill has quit (*.net *.split).
15:35:25 -!- erdic_ has changed nick to erdic.
15:36:00 -!- izabera has joined.
15:36:00 -!- izabera has quit (Changing host).
15:36:00 -!- izabera has joined.
15:37:45 <int-e> oerjan: right, iisiii and iiisdd both produce 7
15:38:29 -!- Jafet has joined.
15:38:47 -!- password2 has quit (Ping timeout: 244 seconds).
15:38:57 -!- JesseH has joined.
15:39:22 -!- edwardk_ has changed nick to edwardk.
15:39:23 <oerjan> and above 255, and remembering that 256 and 256^2 are not useful squares, only 65537 needs care to pick the lower one.
15:39:41 <oerjan> i think.
15:39:50 -!- doesthiswork has quit (Quit: Leaving.).
15:40:18 <mroman_> Shall I put it under Deadfish/Constants?
15:40:24 <oerjan> why not
15:40:25 <mroman_> Deadfish is already a large article :)
15:40:36 <mroman_> mabye we should create Deadfish/Implementations someday :D
15:41:12 <oerjan> i'm afraid that would somewhat discourage new ones
15:41:38 <oerjan> assuming people find the Deadfish page, see all the implementations, and decide to make one
15:42:14 <HackEgo> [wiki] [[Deadfish/Constants]] N http://esolangs.org/w/index.php?oldid=45059 * Mroman * (+5334) + list of df constants
15:42:52 <oerjan> hm
15:43:13 <HackEgo> [wiki] [[Deadfish]] http://esolangs.org/w/index.php?diff=45060&oldid=44740 * Mroman * (+83) /* See also */ link to deadfish/constants
15:44:33 -!- glowcoil has joined.
15:45:44 <mroman_> You didn't destroy my fun. I was busy writing the generator :D
15:45:47 <oerjan> mroman_: we could say that there are a finite list of numbers for which the best strategy is _not_ going to closest square, and recursing.
15:45:57 <mroman_> yeah
15:45:59 <mroman_> 1..3
15:46:05 <mroman_> well
15:46:09 <mroman_> technically only 3?
15:46:16 <oerjan> 1 and 3 maybe
15:46:25 <int-e> Fun... so except for 3 and 4, consecutive deadfish numbers have different parity.
15:46:28 <mroman_> well 1 is a square
15:46:31 <mroman_> so
15:46:40 <oerjan> yes, but you don't want to recurse :P
15:46:43 <mroman_> oh
15:46:45 <mroman_> yeah :)
15:47:19 <oerjan> > ((15^2 + 16^2)/2, (16^2 + 17^2)/2)
15:47:21 <lambdabot> (240.5,272.5)
15:47:40 <oerjan> 241 to 272, because you cannot use 256.
15:48:24 <oerjan> > ((255^2 + 256^2)/2, (256^2 + 257^2)/2)
15:48:25 <lambdabot> (65280.5,65792.5)
15:48:41 <oerjan> and 65281 to 65792.
15:48:49 <Taneb> > (15 * 15, 17 * 17)
15:48:51 <lambdabot> (225,289)
15:48:58 <HackEgo> [wiki] [[Deadfish/Constants]] http://esolangs.org/w/index.php?diff=45061&oldid=45059 * Mroman * (+198) + added remark about numbers 0..3
15:49:13 <Taneb> You can sometimes take a shortcut by starting with a d to get 255, I think?
15:49:21 <oerjan> Taneb: no.
15:49:24 <mroman_> -1 becomes 0
15:49:43 <Taneb> Oh
15:50:00 -!- sewilton has joined.
15:50:05 <mroman_> 256 and -1 become 0
15:50:05 <Taneb> > (225 + 289) / 2
15:50:07 <lambdabot> 257.0
15:50:12 -!- conehead has joined.
15:50:12 -!- conehead has quit (Changing host).
15:50:12 -!- conehead has joined.
15:55:00 -!- GoToTell has joined.
15:59:34 <HackEgo> [wiki] [[Deadfish/Constants]] http://esolangs.org/w/index.php?diff=45062&oldid=45061 * Oerjan * (+379) Larger numbers, and some clarification
16:07:23 -!- mbrcknl has joined.
16:08:10 <mroman_> what's missing is "shortest way to reach 0 again" :D
16:08:35 <mroman_> but since it's not a true module
16:08:46 <mroman_> *modulo
16:08:57 <mroman_> there's no wrap around from squaring 17
16:09:05 <mroman_> > (17*17) `mod` 256
16:09:06 <lambdabot> 33
16:09:13 <mroman_> hm
16:09:18 <mroman_> > (33*33) `mod` 256
16:09:20 <lambdabot> 65
16:09:25 <mroman_> > (65*65) `mod` 256
16:09:27 <lambdabot> 129
16:09:32 <mroman_> > (129*129) `mod` 256
16:09:33 <lambdabot> 1
16:09:35 <mroman_> so
16:09:35 <fizzie> You've discovered a pattern!
16:09:37 <mroman_> !
16:09:44 <mroman_> true
16:09:51 <mroman_> if it would wrap
16:09:59 <mroman_> 17ssssd would be 0
16:10:05 <mroman_> instead of doing 17 decrements
16:10:26 <mroman_> fizzie: well now we know the order of 17 in Zmod256
16:10:39 <mroman_> which is 4
16:10:41 <mroman_> apparentely
16:11:03 <fizzie> Surely that would be from 17^n, not repeated squaring?
16:11:05 <mroman_> but it's funny that it results in (2^n)+1
16:11:12 <mroman_> fizzie: probably
16:11:27 <mroman_> my discrete math times are way behind me
16:12:18 <mroman_> let's call it square order
16:12:23 <mroman_> the square order of 17 in Zmod256 is 4
16:12:26 <mroman_> :D
16:12:35 <mroman_> (I have no idea if there already is a name for that)
16:12:44 <mroman_> fixpoint?
16:12:48 <mroman_> what was a fixpoint again
16:12:57 <mroman_> f(x)=f(x)?
16:13:06 <mroman_> no wait... that's always the case
16:13:27 <mroman_> f(x)=x
16:13:48 <mroman_> @type until
16:13:49 <lambdabot> (a -> Bool) -> (a -> a) -> a -> a
16:14:28 <Taneb> > until (\_->True) id ()
16:14:30 <lambdabot> ()
16:14:31 <mroman_> > until ((1==).`mod`256) (*) $ 17
16:14:32 <lambdabot> <hint>:1:14: parse error on input ‘`’
16:14:39 <mroman_> > until ((1==).(`mod`256)) (*) $ 17
16:14:41 <lambdabot> Occurs check: cannot construct the infinite type: a ~ a -> a
16:14:41 <lambdabot> Expected type: (a -> a) -> a -> a
16:14:41 <lambdabot> Actual type: a -> a -> a
16:14:49 <mroman_> damn
16:15:01 <mroman_> > until (\c -> c `mod` 256 == 1) (\a -> a*a) $ 17
16:15:05 <lambdabot> 48661191875666868481
16:15:15 <Taneb> > until ((1==).(`mod`256)) (join (*)) 17
16:15:17 <lambdabot> 48661191875666868481
16:15:28 <Taneb> WELL
16:15:30 <mroman_> WELL
16:15:41 <mroman_> > logBase 17 48661191875666868481
16:15:43 <lambdabot> 16.0
16:15:50 <mroman_> hm
16:15:58 <mroman_> > logBase (17*17) 48661191875666868481
16:16:00 <lambdabot> 8.0
16:16:12 <mroman_> jesus I suck at math
16:18:21 -!- AnotherTest has quit (Ping timeout: 252 seconds).
16:18:55 <fizzie> You can motivate that it must be 2^n+1 from them bits, given that Z/256Z is them low bits. You start from 10001, and because the high bits don't fit, that squared is (10000+1)*(10000+1) = 10000*1 + 1*10000 + 1*1 = 100001, and then you do the same again to lengthen the worm.
16:20:22 <mroman_> you need at most 10 squarings
16:20:24 <mroman_> to reach 1
16:20:29 <mroman_> except for even numbers
16:20:31 <mroman_> which never reach 1
16:21:06 <oerjan> the euler totient function of 256 is 128 = 2^7.
16:21:29 <oerjan> so you in fact need at most 7.
16:21:54 <mroman_> if it's even you'd need to square it at max three times to reach zero
16:22:15 <mroman_> so ideally if it's odd you decrement it, then do the squaring
16:22:16 <mroman_> that's faster
16:22:52 <oerjan> or increment, one of them might be faster.
16:23:10 <oerjan> (the one which is divisible by 4)
16:23:57 <mroman_> hm
16:23:58 <mroman_> or!
16:24:02 <mroman_> hm
16:24:59 <oerjan> as for deadfish itself, i think we've shown that if we're between 17 and 255 we want to go to either 16 by decrementing or 256 by incrementing. squaring always loses.
16:25:18 <oerjan> > 17^2 - 256
16:25:20 <lambdabot> 33
16:25:40 <oerjan> and if we're above 256 there's nothing to do but decrement.
16:26:54 <oerjan> > 5^2 - 16
16:26:56 <lambdabot> 9
16:27:06 <oerjan> > 256 - 15^2
16:27:08 <lambdabot> 31
16:27:25 <oerjan> it's pretty clear we don't want to square between 5 and 15, either.
16:28:29 <oerjan> 1: d, 2: dd, 3: ddd or iss, 4:ss
16:29:42 <mroman_> 5:dss
16:30:13 <oerjan> so we want to reach eiterh 0,4,16 or 256 by decrementing.
16:30:16 <oerjan> *either
16:30:20 -!- `^_^ has joined.
16:30:29 <oerjan> *or incrementing
16:30:55 <mroman_> yes
16:31:08 <mroman_> > (256-16 / 2)
16:31:10 <lambdabot> 248.0
16:31:16 <mroman_> what
16:31:21 <mroman_> > (256-16) / 2
16:31:23 <lambdabot> 120.0
16:31:30 -!- nycs has quit (Ping timeout: 240 seconds).
16:31:35 <mroman_> so worst case you need like uhm 120 instructions to reach zero
16:32:01 <oerjan> 121.
16:32:20 <mroman_> if it's 136 you do 120 increments
16:32:46 <oerjan> if it's 135 you can do 119 decrements but you still have to square twice
16:32:53 <mroman_> if it's 135 you do 119 increments
16:32:54 <mroman_> to get 16
16:32:57 <mroman_> and then square once
16:33:01 <oerjan> oh once
16:33:01 <mroman_> *decrements
16:33:09 <mroman_> 16 only needs a square once
16:33:13 <oerjan> OKAY
16:34:02 <mroman_> So at worst you need 157*N instructions to produce any text with Deadfish
16:37:59 <oerjan> hm this would be a graph distance problem
16:39:16 -!- AnotherTest has joined.
16:43:09 <Taneb> Yay domain antirestriction
16:45:03 -!- mauris_ has joined.
16:45:51 <int-e> hmm, how about this, sssssisssssd
16:46:07 <int-e> or, actually, sssssdsssss
16:46:11 -!- jaboja has quit (Read error: Connection reset by peer).
16:46:25 <int-e> (is relying on 32 bit ints okay?)
16:46:28 <zzo38> Do you like my kind of idea of a kind of package manager, some things it involves are: Packages are represented as RDF nodes, and the goal of the package manager is: The set of installed packages should be the minimal but best set of packages that meet dependency requirements and includes the system root package.
16:46:47 <mroman_> Still on the RDF-fetish streak?
16:47:31 <int-e> and actually, since phi(2^k) = 2^(k-1), sssssd should be enough...
16:48:24 <int-e> hmm, no...
16:48:53 <zzo38> mroman_: Doesn't answer my question. It does not have to be RDF, but this kind of directed graph seem a good way to represent these kind of data, so that is what it can be.
16:49:33 <int-e> ah, that would be sssssssssssssssssssssssssssssssd.... so not worth it.
16:51:31 <int-e> however, if you know the starting number, one of sssss or dsssss will always work.
16:52:16 <oerjan> sssss, issss or dssss, i think
16:52:19 <int-e> or one of sssss, dssss, issss
16:52:25 <oerjan> ha
16:52:28 <int-e> ... stop following my thoughts, it's creepy.
16:52:40 <oerjan> it's been a while since last time, hasn't it
16:52:55 <int-e> true.
16:53:08 -!- atrapado has joined.
16:53:15 <oerjan> besides, i already mentioned choosing between i and d to get divisibility by 4 above
16:53:54 <int-e> I'm not aware of having seen that... but the subconscious is a devious beast.
16:54:08 <oerjan> spoooky
17:04:00 -!- drdanmaku has joined.
17:05:07 -!- drdanmaku has quit (Client Quit).
17:10:07 -!- bb010g has quit (Quit: Connection closed for inactivity).
17:16:43 <mroman_> `? RDF
17:16:45 <HackEgo> RDF is something zzo38 knows about.
17:16:50 <mroman_> Richard Dean Flanderson?
17:16:59 <mroman_> Rich Document Format
17:17:14 <mroman_> `culprit RDF
17:17:15 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: culprit: not found
17:17:43 <mroman_> `run find ./ | grep culprit
17:17:53 <HackEgo> ​./bin/culprits-c \ ./bin/culprits \ ./.hg/store/data/bin/culprits.i \ ./.hg/store/data/bin/culprits-c.i \ ./.hg/store/data/wisdom/culprit.i \ ./wisdom/culprit
17:17:57 <mroman_> `culprits rdf
17:18:01 <HackEgo> No output.
17:18:02 <mroman_> `culprits wisdom/rdf
17:18:04 <HackEgo> oren
17:18:20 <zzo38> RDF is a kind of directed-graphs
17:18:41 <mroman_> I roughly know what it is.
17:18:46 <mroman_> I just have never seen it being used.
17:19:58 <zzo38> I have seen a few FOAF and others, and I also have this: http://zzo38computer.org/my_foaf.ttl
17:20:15 <zzo38> (I also wrote a SQLite extension that can be used to parse this file)
17:20:47 <mroman_> Is that a time-to-live file?
17:21:10 <mroman_> ah. Turtle
17:23:34 <zzo38> `danddreclist 70
17:23:36 <HackEgo> danddreclist 70: shachaf nooodl boily \ http://zzo38computer.org/dnd/recording/level20.tex
17:26:49 <mroman_> int-e: Oh... btw. Does your vServer have firewall rules?
17:27:34 <mroman_> In case I want to experiment with Esopreter :)
17:29:48 <mroman_> (http://esosc.mroman.ch/ESOSC-2015-D8.TXT would require outbound http(s) connections)
17:29:49 <int-e> there are no such rules atm... but in principle, there's iptables support.
17:30:15 <mroman_> Wait... you have ACCEPT * policies o_O?
17:31:03 <mroman_> usually the only outbound connections I'd allow are the ones that connect to ssh/http ports and have state established
17:31:06 <int-e> I have not configured a package filter.
17:31:19 -!- oerjan has quit (Quit: OKAY *).
17:31:33 <mroman_> because otherwise somebody could easily open a remote shell/remotely download stuff once he finds an exploitable vulnerability somewhere
17:31:39 <int-e> given the running services, there doesn't seem to be any point to it.
17:32:52 <int-e> really. there's ssh and http which I want to be remotely accessible, and there's an SMTP server that only listens locally. That's it.
17:33:09 <mroman_> Yeah, but what if somebody exploits the webserver somehow
17:33:55 <mroman_> anywho...
17:33:59 <mroman_> Do you have unlimited traffic?
17:34:32 <mroman_> (Not that I intend to use much traffic.)
17:34:54 <mroman_> But the general idea of esopreter is to have hosts that provide some languages and a central host that uses these hosts
17:35:05 <mroman_> i.e. a golfing site for esoteric programming languages
17:35:21 <mroman_> then if somebody creates a new language he can host it himself somewhere and you just need to add the URL to the central host
17:35:24 <mroman_> and it'll work
17:35:26 -!- zzo38 has quit (Remote host closed the connection).
17:35:49 <mroman_> assuming that language hosts are honest people and don't cheat by just sending the output for the most recent golf challenge or something like that
17:38:17 <int-e> it says 500G monthly transfer, not sure what happens afterwards
17:39:04 <mroman_> usually you'll pay per gig that exceeds the limit
17:39:13 <mroman_> but you said this was a one time pay
17:39:14 <mroman_> so :D
17:39:24 <mroman_> I have no idea.
17:39:38 <mroman_> but nvm. that's stage 2 anyway
17:39:51 <mroman_> stage 1 is to provide a website with javascript that makes the requests
17:40:08 <mroman_> so it run's through the visitor's browser
17:40:46 <mroman_> stage 2 would be to actually build a golfing site :)
17:41:07 <mroman_> (in which case the server would need to do the request to verify the outputs of the program against the expected output)
17:41:40 <mroman_> unless we use a public/private key infrastructure :D
17:41:55 <mroman_> then the esopreter hosts could sign the output with a private key
17:42:23 <mroman_> and the user submits the signature to the golfing site which then verifies it using the hosts private key
17:50:33 <int-e> ok, they say they'll bill me $0.01 per GB if I go over 500GB... at 100MBit that's firmly in the acceptable risk category for me.
17:51:07 <mroman_> Well I doubt burlesque.cgi will generate more than 500GB :D
17:51:47 <mroman_> but if it does feel free to stop it :)
17:52:01 -!- mroman_ has quit (Quit: gotta go).
17:54:45 <int-e> Oh I was considering the case that somebody hacks the server and manages to use all the bandwidth. That'll be about $10 a day, so it bears watching out for but won't impover me on the spot.
17:55:57 <int-e> impoverish
17:56:15 <int-e> I like languages with regular grammars. Unfortunately, English is not one of those.
18:03:01 <izabera> regular is a hard constraint
18:05:15 <int-e> oerjan: look at this shiny code for 0 -> 255: +++^-^^^++^^^-
18:10:23 <int-e> (where + = i, - = d, ^ = s)
18:13:03 <izabera> iiisdsssiissd
18:13:14 <izabera> what does that mean D:
18:13:32 <int-e> we were discussion deadfish
18:13:36 <int-e> *discussing
18:15:02 <int-e> it's related to http://esolangs.org/wiki/Deadfish/Constants
18:15:38 <int-e> also my program is wrong... the 256 that is produced there shouldn't survive.
18:43:00 <int-e> ugh I hope that wasp eater isn't going to suffocate on that waffle.
18:50:25 -!- ^v has joined.
19:20:19 -!- lleu has joined.
19:24:50 -!- aretecode has joined.
19:26:57 -!- Phantom_Hoover has joined.
19:29:24 -!- mihow has joined.
19:30:16 <GoToTell> "Esoteric programming languages, a form of mathematical recreation in which programmers work out how to achieve basic programming constructs in an extremely difficult but mathematically Turing-equivalent language."
19:30:37 <GoToTell> That's how we would define Esoteric Programming, right?
19:31:39 <izabera> tc isn't a requirement
19:32:56 <izabera> also i wouldn't put that much focus on the math aspect
19:36:51 -!- zzo38 has joined.
19:38:25 <HackEgo> [wiki] [[User:Bexandre/SpeedPL]] http://esolangs.org/w/index.php?diff=45063&oldid=45036 * Bexandre * (+193)
19:38:51 <HackEgo> [wiki] [[User:Bexandre/SpeedPL]] http://esolangs.org/w/index.php?diff=45064&oldid=45063 * Bexandre * (+55)
19:39:22 <quintopia> I'd go with "Esoteric programming languages is a form of mathematical recreation in which people create or modify programming languages"
19:39:36 <quintopia> if you start getting into purpose, you inevitably exclude something
19:39:39 <HackEgo> [wiki] [[User:Bexandre/SpeedPL]] http://esolangs.org/w/index.php?diff=45065&oldid=45064 * Bexandre * (+55) /* Syntax */
19:39:49 <quintopia> even saying "programming languages" might even be misleading
19:40:32 <quintopia> "Esoteric programming languages is a form of mathematical recreation in which people do stuff, usually involving computers"
19:40:44 <quintopia> nailed it
19:41:17 -!- mauris has joined.
19:41:33 <zzo38> These cable box are not very good, they are forced to use their on-screen-display and cannot use MIDI.
19:41:39 <GoToTell> Stuff like "Clue". Esoteric, but probably not programmable.
19:44:27 -!- mauris_ has quit (Ping timeout: 265 seconds).
20:10:33 -!- Patashu has joined.
20:26:26 <zzo38> I would think domain-specific would be better way implementing Magic: the Gathering card and also other similar card game which can include Pokemon card and others too. :spell-ability [:do [:draw 3; :who [:target :player]]; :display "Target player draws 3 cards."]
20:28:33 <b_jonas> `` date
20:28:34 <HackEgo> Mon Nov 2 20:28:09 UTC 2015
20:30:33 -!- zzo38 has quit (Remote host closed the connection).
20:33:09 <b_jonas> what kind of syntax is that? it's not s-expressions, not smalltalk-like, not C-like, not logo-like
20:36:33 <Taneb> Woah woah woah it's almost Tanebiversary
20:36:41 <izabera> what is that
20:36:45 <Taneb> My birthday
20:36:56 <Taneb> In 3 and a half hours
20:37:59 <izabera> a very merry unbirthday for now
20:42:25 -!- Patashu has quit (Ping timeout: 240 seconds).
21:06:35 <b_jonas> just how many more black-white zombie soldiers does this game need
21:06:46 <b_jonas> wasn't that one in Invasion enough?
21:07:08 <b_jonas> what next, will they be printing flying merfolk elves again?
21:09:23 -!- atrapado has quit (Quit: Leaving).
21:17:22 -!- hppavilion[1] has joined.
21:22:12 -!- hppavilion[2] has joined.
21:23:03 -!- hppavilion[1] has quit (Ping timeout: 265 seconds).
21:23:38 -!- JesseH has quit (Read error: Connection reset by peer).
21:32:26 -!- JesseH has joined.
21:36:36 -!- Mallow has joined.
21:36:39 <Mallow> hola!
22:08:53 -!- sebbu has quit (Ping timeout: 252 seconds).
22:12:22 -!- JesseH has quit (Ping timeout: 246 seconds).
22:13:42 -!- `^_^ has quit (Quit: This computer has gone to sleep).
22:19:25 -!- AnotherTest has quit (Ping timeout: 240 seconds).
22:20:44 -!- Mallow has quit (Quit: KVIrc 4.2.0 Equilibrium http://www.kvirc.net/).
22:20:51 <HackEgo> [wiki] [[Special:Log/move]] move * Bexandre * moved [[User:Bexandre/SpeedPL]] to [[User:Bexandre/Attic]]
22:21:32 <HackEgo> [wiki] [[User:Bexandre]] http://esolangs.org/w/index.php?diff=45068&oldid=45006 * Bexandre * (-4)
22:24:26 -!- hppavilion[2] has quit (Ping timeout: 265 seconds).
22:27:50 -!- AnotherTest has joined.
22:29:32 -!- hppavilion[2] has joined.
22:32:39 -!- AnotherTest has quit (Client Quit).
22:36:26 -!- adu has joined.
22:39:23 -!- oerjan has joined.
22:51:30 -!- hppavilion[2] has quit (Ping timeout: 265 seconds).
22:55:42 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
23:01:40 -!- Phantom_Hoover has joined.
23:04:58 -!- boily has joined.
23:06:13 -!- hppavilion[2] has joined.
23:12:09 -!- JesseH has joined.
23:14:24 -!- Wright has joined.
23:20:05 -!- atehwa has quit (Ping timeout: 240 seconds).
23:21:12 -!- atehwa has joined.
23:28:56 -!- zzo38 has joined.
23:32:35 -!- hppavilion[2] has quit (Ping timeout: 265 seconds).
23:40:19 -!- mauris has quit (Ping timeout: 265 seconds).
23:44:52 -!- lleu has quit (Read error: Connection reset by peer).
23:52:54 -!- boily has quit (Quit: HOMERUN CHICKEN).
23:53:53 -!- hppavilion[2] has joined.
←2015-11-01 2015-11-02 2015-11-03→ ↑2015 ↑all