←2014-10-26 2014-10-27 2014-10-28→ ↑2014 ↑all
00:01:37 -!- copumpkin has quit (Ping timeout: 260 seconds).
00:16:31 -!- Phantom_Hoover has quit (Remote host closed the connection).
00:19:23 -!- MoALTz has quit (Quit: Leaving).
00:40:26 <oerjan> @tell fizzie <fizzie> There are some "standard" languages/systems for showing TC-ness. BCT, Brainfuck and Unlambda (well, S and K), perhaps? And maybe the two-counter Minsky machine. <-- i've also had some luck with the underload :()^ fragment
00:40:26 <lambdabot> Consider it noted.
00:40:43 <oerjan> after i first proved that it was TC
00:41:51 <Taneb> That was what you used for Fueue initially, right?
00:42:00 <oerjan> yes
00:42:40 <oerjan> and also i got FALSE as a corollary, since it has those commands
00:43:21 <oerjan> oh and i implemented _all_ of underload in emmental.
00:45:30 <oerjan> that was a fun way of doing it, each character (with a few control char exceptions for temporary storage) were rewritten to implement themselves as underload commands, in three different modes
00:45:35 <oerjan> *was
00:47:42 <oerjan> direct execution mode, quoting mode (started by '(' and halted by ')') and printing mode (used by S so that printing string was simply running it as commands in that mode)
00:48:01 <oerjan> *a string
00:48:02 <zzo38> Figuring out what shift codes to use isn't the only thing needed to compress Z-machine text. There is also figuring out how to fill up the frequent words table, and doing suffix optimization.
01:31:36 -!- Tod-Autojoined has joined.
01:32:06 -!- TodPunk has quit (Read error: Connection reset by peer).
01:44:12 -!- Tod-Autojoined has changed nick to TodPunk.
01:54:11 -!- contrapumpkin has quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…).
02:00:20 -!- copumpkin has joined.
02:04:07 -!- boily has quit (Quit: INSUBSTANTIAL CHICKEN).
02:05:23 <Sgeo> zzo38: do you like NES songs, or am I imagining that you're the sort of person who would like those?
02:06:06 <Sgeo> https://www.reddit.com/r/gravityfalls/comments/2kdre0/since_people_are_liking_gravity_falls_8bit/
02:08:47 <zzo38> Sgeo: I have a .NSF music playing right now in my computer, and I have also made some such music files myself too.
02:09:37 <Sgeo> zzo38: see my link for a particular theme that someone made an nsf version of
02:10:00 <zzo38> OK I will look
02:11:57 <zzo38> OK I downloaded this file, but why shouldn't you just make a direct link?
02:13:37 <zzo38> It is good
02:15:33 <Sgeo> :) didn't think of making a direct link
02:16:47 <zzo38> oerjan: Do you have any idea of how I can automatically fill up the frequent words table?
02:27:34 <oerjan> sounds like you'd need to calculate word frequencies of actual use...
02:28:22 <zzo38> They don't necessarily have to be single words though; they can be any string.
02:29:12 <zzo38> If they are in that table, then any non-fword string that contains them can use only two Z-characters to reference something in the frequent words table (shift state is irrelevant).
02:44:15 -!- Frooxius has quit (Read error: Connection reset by peer).
02:44:59 -!- Frooxius has joined.
02:47:34 -!- Frooxius has quit (Client Quit).
02:49:37 -!- Frooxius has joined.
02:51:14 -!- copumpkin has quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…).
02:52:00 -!- Frooxius has quit (Client Quit).
02:53:30 -!- Frooxius has joined.
02:55:49 -!- Sgeo has changed nick to BillCipher.
02:55:53 -!- BillCipher has changed nick to Sgeo.
02:55:57 <Sgeo> Blah, registered
02:57:15 <zzo38> Sgeo: O, and if you want to see other .NSF musics, you can look at Famicompo; they have a lot.
03:11:43 -!- ais523 has quit (Read error: Connection reset by peer).
03:12:00 -!- ais523 has joined.
03:15:35 -!- ais523 has quit (Client Quit).
03:16:01 -!- ais523 has joined.
03:16:55 -!- MDude has changed nick to MDud.
03:16:58 -!- MDud has changed nick to MDude.
03:19:57 -!- aloril has quit (Remote host closed the connection).
03:31:45 <Sgeo> It seems to me that although Scala often looks like you're defining custom syntax, it's possible to use the same stuff as a normal function call, meaning that other languages would be able to use even the DSLy things that Scala lets you define, which is kind of cool
03:32:23 <Sgeo> Hmm, maybe not so much with implicits
03:33:41 <zzo38> oerjan: Another thing that complicates it is length of words, shift states, and profitability. There are at most 96 fwords, although some of them may be manually defined or dynamically set up, or possibly some slots might be unused. You might also see my "Tricky Document" for a few details.
03:35:22 <oerjan> mhm
03:40:39 <zzo38> http://zzo38computer.org/zmachine/doc/tricky.txt
03:55:35 <oerjan> @ask int-e ok how the hell did you and henkma find essentially the same insanely clever trick for swap the characters (and it's not _much_ of a cheat, it only requires the word to be at least 4 chars long...)
03:55:35 <lambdabot> Consider it noted.
03:57:34 -!- aloril has joined.
04:11:30 -!- ais523 has quit.
04:13:25 -!- ais523 has joined.
04:17:34 <zzo38> Do you think it is a bit strange that optimizing a SET instruction in XZIP and YZIP sometimes requires factorization of numbers?
04:20:31 <zzo38> (But only if the number you want to set it to is bigger than 510)
04:21:17 <zzo38> I have once seen a document that used the phrase "almost bigger than" to mean "greater than or equal to".
04:35:16 <Sgeo> Not a native English speaker?
04:37:07 <zzo38> I think the document was probably written by Chinese people, since it was a document about use of Chinese typing on Linux, and it is a part of a book which also contains a lot of other documents relating to Linux.
04:47:02 -!- copumpkin has joined.
04:48:06 <zzo38> Infocom somehow designed the Z-machine in such a way that a lot of optimizations and other tricks are possible that Infocom has probably never even considered by themself.
04:55:07 -!- password2 has joined.
05:04:31 <elliott> oerjan: heh what is the trick?
05:08:16 <Sgeo> The Scala community is kind of scary https://www.reddit.com/r/scala/comments/1g50g5/announcing_lift_25/
05:11:43 <J_Arcane> "create a new CSS output class for simulating microelectrical systems" WHY
05:11:51 <J_Arcane> https://wiki.mozilla.org/Fxos_on_RaspberryPi
05:13:32 <zzo38> I am guessing that they might want to program the GPIO by the use of CSS for some strange reasons?
05:13:50 <zzo38> It doesn't make much sense to me.
05:14:39 <J_Arcane> this is what comes of the web-everything world. :P
05:15:42 <zzo38> There are a lot of ways to program the GPIO in RaspberryPi, in most of the provided programming languages including shell scripts and Mathematica.
05:28:21 <oerjan> elliott: http://golf.shinh.org/reveal.rb?Swap+The+Characters/henkma_1414152474&hs
05:42:29 -!- MDream has joined.
05:45:52 -!- MDude has quit (Ping timeout: 240 seconds).
05:57:54 -!- password2 has quit (Ping timeout: 265 seconds).
06:14:42 <drdanmaku> J_Arcane: yeah, this sentence doesn't actually seem coherent to me: "DOM/CSS would enable programmers to develop robotics etc. by building a declarative model of a reactive system"
06:15:12 <drdanmaku> i seriously doubt the document object model is up to that taks
06:15:14 <drdanmaku> task, even
06:15:18 <zzo38> I also don't see how CSS can possibly help.
06:15:37 <zzo38> (Or how DOM can possibly help, either.)
06:20:00 <Bike> to clothe the robot.
06:36:46 <zzo38> Did you see this "Tricky Document"?
06:47:16 <fizzie> oerjan: I had already written "or perhaps minimized Underload" in my input line, but then thought it might just confuse matters.
06:49:02 <oerjan> GOOD, GOOD
06:53:37 <fizzie> Also: crafty Haskell character-swapping trick is crafty.
06:58:27 <ais523> o
07:00:03 <fizzie> http://golf.shinh.org/reveal.rb?Swap+The+Characters/tails_1414358976&sed was also very clever.
07:02:07 <fizzie> It works like http://sprunge.us/fCXR (where X denotes \x09 and spaces converted to _ for visibility); I just had something far more explicit about swapping two letters.
07:03:33 <oerjan> fizzie: huh that looks like they're using sed as if it were thue
07:05:21 <ais523> thue with backreferences would probably be a lot easier to write
07:05:30 <ais523> and possibly more powerful in the computational class sense?
07:05:41 <ais523> hmm, actually, I have a new definition, not sure what to call it yet
07:05:47 <fizzie> http://golf.shinh.org/reveal.rb?Swap+The+Characters/teebee_1413233661&sed was basically what I wrote, except I didn't know you can have an empty label name like that, and "t" will then jump to that instead of end-of-script.
07:06:00 <ais523> "if a problem can be solved in language A in O(P) for any function P, it can also be solved in O(P) in language B"
07:07:16 <ais523> sort-of similar to "this language has a nonzero eigeneratio", but between languages rather than within one
07:13:16 <zzo38> I looked at BANCStar and BANCNova stuff, and believe it contains some mistakes. From the PDF as well as the code at http://reocities.com/ResearchTriangle/station/2266/tarpit/bancstar.html I can figure some things they didn't mention. I believe that instruction 8550 is a kind of computed GOTO to an absolute address. Instruction 8400 then seems to mean to store the address of the instruction after the next one into variables numbered 1908 and 1909.
07:13:26 <zzo38> There also seems to be several other built-in variables with special purposes.
07:18:38 -!- ais523 has quit (Remote host closed the connection).
07:18:40 -!- callforjudgement has joined.
07:18:49 -!- callforjudgement has quit (Changing host).
07:18:49 -!- callforjudgement has joined.
07:19:16 <zzo38> And I think they are actually PC color codes and not ANSI color codes?
07:26:12 <b_jonas> with bits 0 and 2 swapped?
07:26:14 <oerjan> oh hum, empty label you say?
07:26:31 <b_jonas> isn't there also a third scheme also by the way?
07:28:21 <oerjan> fizzie: thanks for saving me 2 chars on http://golf.shinh.org/p.rb?Asteriks+and+Obeliks+FIXED :P
07:30:56 <zzo38> Possibly some of the date operations in BANCStar such as "Future date 360" might have something to do with https://en.wikipedia.org/wiki/Day_count_convention
07:33:27 <HackEgo> [wiki] [[BANCStar]] http://esolangs.org/w/index.php?diff=40697&oldid=40658 * Zzo38 * (+332)
07:34:03 <b_jonas> zzo38: quite likely. I think the rules for paying social security here are a fixed sum for full month, or, for a partial month, 1/30 of that sum for each day.
07:38:22 <b_jonas> there's all kind of crazy rules and conventions that are not even properly documented, so only people working in the same area know about them (or even they don't)
07:39:08 -!- scarf has joined.
07:39:11 -!- callforjudgement has quit (Read error: Connection reset by peer).
07:39:50 <zzo38> It also kind of looks like it may have been meant to be useful for coding manually, considering how powers of ten are commonly used in the instruction encodings, the text rather than binary format, and other things.
07:40:17 <b_jonas> yeah
07:40:27 <b_jonas> ironic
07:41:16 <zzo38> The screen generator might just have been something they added afterward, because they did not want to release it as it is.
07:41:53 <b_jonas> mind you, I'm the kind of person who spends time automating lots of things that were supposed to be useful manually
07:42:27 <zzo38> Even if it useful manually doesn't necessarily mean it won't be useful automatically, too.
07:42:37 <b_jonas> sure
07:42:43 -!- scarf has changed nick to ais523.
07:43:04 <b_jonas> and of course that's the general direction computing stuff evolves in time
07:43:14 <b_jonas> people used to write lots of machine code or assembly manually
07:43:32 <zzo38> I still do sometimes
07:43:41 <b_jonas> sure,
07:43:47 <zzo38> Such as when writing program for Famicom
07:43:51 <b_jonas> but still people automate it much more these days
07:44:03 <b_jonas> with C compilers and even more complicated compilers
07:44:10 <b_jonas> optimizing ones
07:44:35 <zzo38> Even optimizing ones sometimes omit some optimizations that can be done manually
07:44:51 <b_jonas> of course
07:45:42 <zzo38> If I want to write a program to target a specific computer (or VM) then assembly language can be used; it is useful for such a situation.
07:46:00 <b_jonas> the general idea is that you write the source code in a sane way, then if the result doesn't have enough performance, you find the bottlenecks, and optimize those either at source level or replacing some of the parts with more nonportable stuff or straight assembly
07:46:48 <b_jonas> but even if I never write straight assembly, it's worth to understand how the computer works at low level to know how to write good programs in source form
07:47:05 <zzo38> But, different computers can work in different way.
07:47:26 <b_jonas> it's just that sometimes I think we're overdoing that, trying to teach too much of the low-level stuff to the young students and scaring them away
07:47:34 <Lymia> [lymia@localhost ~/.steam/steam/SteamApps/common/Sid Meier's Civilization V]$ strings Civ5XP | grep XMLSerializer
07:47:34 <Lymia> _ZN8Database13XMLSerializer14LoadFromMemoryEPKwPcj
07:47:34 <Lymia> _ZN8Database13XMLSerializer17InsertOrIgnoreRowERNS_13FXmlTraverserERNS_12ResultsCacheEPKcj
07:47:36 <Lymia> Someone dun goofed.
07:47:37 <b_jonas> I think we should try to teach more of the high-level stuff first
07:47:49 <b_jonas> at least to our mathematicians
07:47:57 <ais523> b_jonas: I'm tired, and somehow thought you were teaching your students BANCstar
07:48:12 <zzo38> I don't know entirely, but I think we can learn all of them.
07:48:17 <b_jonas> uh... no
07:48:19 <ais523> Lymia: why is mangled function names coming up in strings surprising?
07:48:39 <Lymia> ais523, because this is full symbol information.
07:48:41 <b_jonas> though if we got an interpreter for it, we could try :-)
07:49:32 <zzo38> Program can also be written targeting a VM, too; even I write programs for Famicom even though I do not actually have a Famicom.
07:49:56 <Lymia> "Database::XMLSerializer::InsertOrIgnoreRow(Database::FXmlTraverser&, Database::ResultsCache&, char const*, unsigned int)" < AFAIK, this is not in any public .h file, even in the headers given for modders.
07:50:34 <HackEgo> [wiki] [[Special:Log/newusers]] create * Dynamicdispatch * New user account
07:55:59 <oerjan> i smell an OO esolang in the works
07:56:51 <fizzie> Lymia: Google finds it in https://github.com/Gedemon/Civ5-DLL/blob/master/CvGameDatabase/include/XmlSerializer.h but maybe that's just someone's reverse-engineering.
07:56:53 <ais523> or particularly creative spam
07:56:56 <ais523> or both simultaneously
07:56:58 <oerjan> or that.
07:57:47 <oerjan> http://xkcd.com/632/
07:58:12 <Lymia> "FGXModelComponentBuilder_Granny<CvLeaderHeadFallbackRendererContext<CvLeaderHeadBuilderContext> >::ExtendSurfaceFromModel(FGXModelComponentBuilder_Granny<CvLeaderHeadFallbackRendererContext<CvLeaderHeadBuilderContext> >::FGXModelMeshData&, unsigned int)"
07:58:14 <Lymia> Or this for sure.
07:58:40 <fizzie> "_Granny"?
07:58:55 <Lymia> I have no idea.
07:59:00 <visy_> laff @ _Granny
07:59:02 <Lymia> I just looked for a random renderer symbol
07:59:41 <fizzie> I guess it could be a "code name" for one of the leaderpeople or whatever Civ V has.
07:59:45 <ais523> fwiw, I ship NH4 with debug symbols
07:59:46 <oerjan> the grandmother of all ModelComponentBuilders
07:59:50 <ais523> I think, it's hard to tell on Windows
08:00:34 <Lymia> LeaderHead is what they call the civilization diplomacy screen, I know that.
08:01:43 <Lymia> But _Granny i have no idea
08:02:22 <fizzie> Well, is there an old female leader-head?
08:02:33 <Lymia> Apparently it's what they call some rendering SDK component? "Port/SDKs/Granny/source/granny_mesh.cpp" shows up in strings
08:03:37 <fizzie> There's a "Granny Editor for Civ 5", so I guess it's something more general then.
08:03:40 <fizzie> Curious name, though.
08:04:10 <fizzie> "Gra" from "graphics", perhaps.
08:04:54 <fizzie> http://www.radgametools.com/granny.html oh
08:19:39 -!- MDude has joined.
08:21:38 -!- Yonkie has joined.
08:23:52 -!- MDream has quit (Ping timeout: 265 seconds).
08:26:01 <mroman> !blsq_uptime
08:26:01 <blsqbot> 5d 12m 42s
08:26:41 <oerjan> >_> <_<
08:26:46 <oerjan> needs more crashing
08:27:04 <mroman> sometimes it ping timeouts
08:27:25 <mroman> but you're welcome to try to crash it
08:27:33 <mroman> as long as you don't damage the underlying server
08:27:36 <mroman> that wouldn't be so nice
08:28:08 * oerjan has forgotten how it was crashed last time, anyhow
08:28:23 <mroman> oerjan: by making it print "hi there\rQUIT :quit"
08:28:30 <oerjan> ah right
08:28:36 <oerjan> i remembered it was hilarious
08:28:38 <mroman> because lines was based on \r\n
08:28:46 <mroman> and I didn't know IRC accepts \r as a newline
08:30:32 -!- Yonkie has changed nick to yurichev.
08:35:19 -!- callforjudgement has joined.
08:35:28 -!- ais523 has quit (Remote host closed the connection).
08:35:42 <mroman> http://webpolicy.org/2014/10/24/how-verizons-advertising-header-works/
08:35:53 -!- callforjudgement has changed nick to ais523.
08:38:12 -!- heroux_ has quit (Ping timeout: 245 seconds).
08:38:18 -!- heroux has quit (Ping timeout: 244 seconds).
08:50:42 -!- heroux has joined.
08:50:53 -!- heroux_ has joined.
09:07:31 -!- oerjan has quit (Quit: leaving).
09:15:58 <HackEgo> [wiki] [[Musical notes]] http://esolangs.org/w/index.php?diff=40698&oldid=40691 * TomPN * (+165) /* Line functions */
09:17:12 -!- j-bot has quit (Remote host closed the connection).
09:34:33 <Taneb> I am having a sudden crisis of faith.
09:34:49 <Taneb> What is the imperfect first person of to be?#
09:35:34 -!- callforjudgement has joined.
09:37:02 <fizzie> Was?
09:37:35 <fizzie> "Imperfect meanings in English are expressed in different ways depending on whether the event is continuous or habitual. -- However certain verbs that express state rather than action do not mark the progressive aspect (see Uses of English verb forms: Progressive); in these cases the simple past tense is used instead: "He was hungry"; "We knew what to do next."" (Wikipedia)
09:37:53 <Taneb> fizzie, OK
09:38:02 <Taneb> My phone doesn't want to admit that is a word
09:38:16 -!- ais523 has quit (Ping timeout: 250 seconds).
09:38:20 <callforjudgement> nick ais523
09:38:24 -!- callforjudgement has changed nick to ais523.
09:38:27 <Taneb> Oh wait
09:38:35 <Taneb> It's set to italian for some reason
09:38:43 <ais523> fizzie: and because of that, "was being" is typically only used to construct passives
09:38:59 <ais523> presumably it's used for passives because it would be unused otherwise?
09:39:55 <fizzie> Sorry, I thought about "was" too much and now it lost all meaning.
09:40:14 <elliott> ais523: you can probably revert that revert now that TomPN has edited without replying to the talk page message :p
09:40:38 <ais523> elliott: right, I'd prefer someone else to do it because appearances, though
09:40:39 <ais523> also I forgot
09:40:47 <elliott> right, well, see, you're involved and I'm not
09:40:54 <elliott> therefore you do it :p
09:41:25 <ais523> elliott: but everything I've learned from Wikipedia says otherwise
09:41:53 <fizzie> I'm a bit suspicious of that edit, since you still can't nest loops, and I'm not sure whether "the cell -- serves as a loop counter" means it's the (varying) value of the cell, or its initial value at the begin loop instruction.
09:42:08 <elliott> oh, that edit was attempting to make it more TC?
09:42:11 <elliott> I didn't really read it <_<
09:42:37 <ais523> well it's capable of reading memory now
09:42:46 <ais523> not sure if it's capable of /usefully/ reading memory
09:42:48 <b_jonas> it's edited? let me look
09:42:50 <ais523> but TCness is a very low bar
09:43:07 <ais523> oh no, still always halts
09:43:10 <b_jonas> TCness isn't even the goal
09:43:16 <b_jonas> at least not always
09:43:19 <b_jonas> let me see what he changed
09:43:32 <ais523> b_jonas: sure, http://esolangs.org/wiki/Splinter is an interesting, intentionally-sub-TC language
09:44:24 <b_jonas> ah, he's edited half an hour ago
09:44:36 <b_jonas> then we can still hope he'll read my message and try to understadn it
09:44:44 <ais523> did you send it to user talk?
09:45:00 <ais523> ah yes
09:45:50 <ais523> ever since Wikipedia got rid of the Orange Bar of Doom, it's needed to use smaller wikis like Esolang to survive
09:46:04 <b_jonas> "If X is zero, the cell affected by the most recent increase, decrease or input command serves as a loop counter. When the loop counter reaches zero, the loop stops." wait, so he tries to make this something like the bf left bracket command?
09:46:29 <ais523> (although they did make its replacement also orange, after a relatively large petition, i.e. 100+)
09:46:47 <ais523> it's not a while loop, though
09:46:50 <b_jonas> I think it's like the left bracket now, except it may choose a cell different from the one under the finger
09:46:53 <b_jonas> but I think it's a while loop
09:46:53 <ais523> it's a primitive recursive loop
09:46:58 <b_jonas> I think it re-reads the counter
09:47:01 <b_jonas> "reaches zero"
09:47:06 <b_jonas> I think that's trying to be like brainfuck
09:47:10 <b_jonas> you have to decrease explicitly
09:47:23 <ais523> oh, right, not automatically changing
09:47:31 <ais523> it's a counter that might not actually count
09:47:35 <ais523> just like the instruction tape that holds data
09:47:36 <b_jonas> I admit the description is still unclear
09:47:40 <b_jonas> so I might be misinterpreting it
09:47:42 <b_jonas> but it's a good start
09:48:36 <ais523> OK, so now it's basically BF with max nesting depth 1
09:48:41 <ais523> which has definitely been posted before
09:48:49 <ais523> and which I think is generally believed sub-TC (not proven, though)
09:49:16 <b_jonas> oh, he still has loops not nestable
09:49:25 <b_jonas> I'd say wait a bit more, he may edit still
09:49:30 <fizzie> Oh, my interpretation was that it automatically decrements by one, but you can also modify the value.
09:49:41 <ais523> mine was that it looks at the value at the start of the loop, and loops that many times
09:49:46 <ais523> this is worse than agora :-(
09:49:50 <fizzie> That was my second guess.
09:50:00 <b_jonas> heh
09:50:30 <fizzie> Also I'm uncertain on whether the cell it looks at (if it's not read only at start) changes if you do an "increase, decrease or input command" within the loop to some other cell.
09:50:57 <b_jonas> fizzie: I think it changes, but I'm not sure
09:51:03 <fizzie> As in, whether you can write the equivalent of ,[>,] with it.
09:52:06 <b_jonas> no nested loops still sucks
09:52:11 <b_jonas> you can't easily make conditionals
09:52:45 <b_jonas> it might be possible if the data tape overlaps with the counter part (tenor or note value) of the instructions, but I'm not sure that's enough
09:53:35 <b_jonas> have you figured out yet how the example program is supposed tow ork?
09:54:32 <b_jonas> wait wait, another change
09:54:37 <b_jonas> where's the announcer bot?
09:54:45 <b_jonas> hmm no, not another
09:54:47 <b_jonas> that's the same change
09:54:50 <b_jonas> sorry, false alarm
09:54:51 <fizzie> I think it's supposed to have E instead of C in the example program.
09:55:30 <fizzie> As in, "+++++ +++++++ ." is a brainfuck program that "adds 5 and 7 together".
09:55:40 <b_jonas> right
09:55:47 <b_jonas> ok, that's possible
09:57:14 <ais523> well, if you can only read a finite number of cells ever
09:57:19 <ais523> that's pretty limited
09:57:31 <ais523> actually, isn't that already the case with one-loop BF?
09:57:36 <ais523> you have an entropy rule
09:57:46 <ais523> for each loop, either it's balanced and thus is an FSM
09:58:11 <ais523> or it's unbalanced, and thus runs off the end of the area of the tape that's been previously touched (or else provably enters an infinite loop)
09:58:16 <ais523> thus, one-loop BF is sub-TC
09:58:22 <ais523> err, one-nest
09:58:33 <ais523> it wouldn't surprise me if two-nest were TC, though, especially with bignums
09:59:57 <b_jonas> ais523: why can't it do useful stuff if it's unbalanced?
10:00:10 -!- impomatic_ has quit (Ping timeout: 256 seconds).
10:00:14 <b_jonas> each iteration can still share some cells with the previous iteration
10:00:36 <ais523> b_jonas: if it's one-nest, basically because it can only read each cell once, and that just gives a continue/don't continue indication
10:00:51 <ais523> and in particular, eventually it'll end up beyond the initialized area
10:01:01 <ais523> like, only a finite number of cells can have changed before the loop starts
10:01:04 <ais523> eventually, you get pat them
10:01:10 <ais523> now you're limited to infinite loop or exiting the loop
10:01:16 <ais523> and either is irreversible
10:01:33 <ais523> thus, any one-nest BF program can be proved either to halt, or to not halt
10:01:39 <ais523> thus, one-nest BF is sub-TC
10:02:28 <b_jonas> oh wait
10:02:55 <b_jonas> you're saying that the value of the new cells can't depend on the value of the cells inherited from previous iterations?
10:04:15 <b_jonas> ok, that sounds right
10:05:01 <b_jonas> though it could still be interesting if there's an input statement in the loop and it could run some interesting finite state manchine on the input
10:06:36 <fizzie> I'm a bit curious about the reasons for forbidding the nesting of loops in this one.
10:06:53 <ais523> implementation difficulty?
10:08:54 <b_jonas> maybe it should allow nesting, but only loops of shorter note values can occurr inside a loop?
10:09:49 <ais523> well, real music allows nested loops
10:09:57 <ais523> basically because it has a goto
10:10:01 <ais523> but a one-shot goto
10:10:09 <ais523> like DO COME FROM (4) ONCE in INTERCAL
10:11:23 <b_jonas> are real music loops bounded?
10:12:00 <ais523> it's very rare for them to repeat more than twice (even rarer to repeat /less/ than twice…)
10:12:16 <ais523> although there is syntax for it, it's typically only used in highly repetitive songs
10:13:19 <ais523> I admit that I've never played an infinitely long song
10:13:24 <ais523> so I don't know if there's syntax for that
10:17:18 <b_jonas> No, I'm quite sure there are types of musics where three encores is normal,
10:17:34 <b_jonas> and I didn't ask for infinitely long, only potentially unbounded length,
10:18:05 <fizzie> That reminds one immediately of the well-known http://www.cs.utexas.edu/users/arvindn/misc/knuth_song_complexity.pdf
10:18:20 <b_jonas> fizzie: yes, exactly (and I think there's a sequel)
10:18:29 <fizzie> I seem to recall so too.
10:20:55 <b_jonas> encores can be conditional loops, right?
10:20:59 <ais523> b_jonas: well, most songs are also deterministic
10:21:03 <ais523> encores tend not to be notated
10:21:07 <b_jonas> they might be bounded though
10:21:08 <b_jonas> yeah
10:21:26 <b_jonas> or when they are, they aren't really encores, they're just called that
10:23:35 -!- boily has joined.
10:24:25 <ais523> fizzie: I've seen that paper before, but I'm reading it anyway
10:25:05 <ais523> actually, what's more surprising is that he actually got it published in a well-known journal
10:25:15 <ais523> would be interesting to see the peer reviews
10:26:10 <b_jonas> ais523: it does say "special section". it might not be a peer-reviewed article.
10:26:21 <ais523> ah right
10:26:35 <ais523> the "we normally wouldn't publish this, but you can't exactly say no to Knuth" section?
10:28:08 <b_jonas> ais523: no, I think more like "any letters at the journal editor's whim, as long as it's less than 20% of the size of the printed journal, and the authors can't count it as an article for grant or cv purposes"
10:28:20 <ais523> right
10:29:14 <b_jonas> let's see what http://en.wikipedia.org/wiki/The_Complexity_of_Songs says
10:30:59 <ais523> it calls it a journal article, without qualification
10:33:03 <b_jonas> I guess to know for sure you'd have to get the journal, but I don't much care
10:33:04 <fizzie> Heh.
10:33:16 <fizzie> Opening the Table of Contents for the journal issue in question crashes my Chrome.
10:33:26 <b_jonas> hmm, "előnyom" is a real word? it looks riddiculous. some mathematicians invent the craziest words.
10:34:41 <ais523> it looks a little more sensible if you assume it's Hungarian
10:34:45 -!- Jafet has joined.
10:34:50 <b_jonas> it is definitely Hungarian
10:34:58 <b_jonas> it's in a Hungarian sentence
10:35:44 <b_jonas> "A GL(n) Hecke-Maass-csúcsformákra vonatkozó sup-norma szubkonvexitási probléma az előnyom-formula és egy jól megválasztott amplifikáció után egy egyszerűen megfogalmazható és önmagában is érdekes mátrix-leszámolási problémára vezet: arra, hogy egy szép (prímekkel paraméterezett) számelméleti tulajdonsággal bíró egész mátrixból nincs túl sok." -- totally something only a mathematician would write, and even they would wr
10:35:57 <ais523> you were cut off; "even they would wr"
10:36:06 <b_jonas> and even they would write it only in an abstract
10:36:17 <fizzie> Other CACM "special section" work seems rather serious, at least.
10:37:08 <ais523> http://web.archive.org/web/20010317221900/http://web14.compaq.com/falco/detail.asp?FAQnum=FAQ2859
10:37:26 <ais523> hmm, that snapshot dates from 2001; apparently the page dates from 1999
10:37:29 <ais523> that is worryingly recent
10:37:40 <ais523> or, alternatively, worryingly far back, depending on your point of view
10:39:24 <fizzie> "The Communications magazine consists primarily of six main editorial sections: News, Viewpoints, Practice, Review Articles, Contributed Articles, and Research Highlights. -- the selection criteria and editorial process for articles varies by section --"
10:41:18 <fizzie> Only some of the sections involve peer review, so there's quite a lot of non-peer-reviewed material in Communications.
10:42:06 <fizzie> Also there's nowadays a "Last Byte" section that "consists of lighter-fare content that will appear as both regularly appearing columns, such as Q&As, futurist articles dealing with computing, and mathematical puzzles for those who like a good challenge", that's probably the sort of section the song paper was in.
10:44:27 <b_jonas> we should use ".bf" as a filename extension for both brainfuck and befunge
10:45:19 <ais523> b_jonas: I normally use .pro for Prolog, but I used .pl for violin
10:45:27 <ais523> because extension clashes seemed appropriate
10:46:05 <b_jonas> I was thinking I should just use ".pm" for perl, but never got into the habit
10:46:13 <b_jonas> as in, ".pm" for perl programs too
10:48:26 <b_jonas> what's violin?
10:49:31 <ais523> reverse assignment calculator for INTERCAL
10:49:42 <ais523> also known as the only program that can successfully figure out what an INTERCAL calculate statement does
10:49:46 <ais523> in the corner cases
10:50:02 <ais523> (although if the case has enough corners, it runs out of memory or just sits there for longer than you're prepared to wait)
10:50:19 <b_jonas> ok
10:50:38 <ais523> there's a better description in the docs
10:50:44 <ais523> which are on usenet, in a sharball
10:50:49 <ais523> for old time's sake
11:04:17 -!- scounder has quit (Ping timeout: 260 seconds).
11:09:54 -!- impomatic_ has changed nick to impomatic.
11:24:37 -!- boily has quit (Quit: PHASING CHICKEN).
11:24:42 <ais523> what's a good place to talk about chown(2) giveaway?
11:25:01 <ais523> (in particular, is here appropriate? it's on-common-topic-spectrum, but I'm not sure if anyone cares)
11:26:55 <b_jonas> ais523: um... dunno, maybe a channel for the operating system where you want to do that
11:27:24 <ais523> well the basic concepts transcend OS
11:27:33 <ais523> in particular, there's a time where I would have needed to do that at work
11:27:48 <ais523> I managed to go an entire year via recycling existing files that already had the right permissions, but it was crzy
11:27:50 <ais523> *crazy
11:27:59 <ais523> OTOH, it's considered a security loophole, and I understand some of the reasons why
11:28:12 <fizzie> I seem to recall some talk about that being a quota-evasion trick somewhere.
11:28:21 <ais523> so I was wondering, if you could only chown() away files that you'd have write access to after the chown, would it be exploitable?
11:28:30 <ais523> fizzie: oh, quota, interesting
11:28:57 <ais523> I was thinking of the exploit where you screw around with symlinks so that a path is insecure, but chown them to the person you're attacking just before they check
11:29:11 <b_jonas> ais523: I'm saying OS channel because even though just plain chown giveaway might not be possible, there might be some OS-dependent (or even dependent on stuff more detailed than the OS) stuff that could help you in what you want
11:29:14 <ais523> so that software they run thinks it's set up intentionally
11:29:37 <fizzie> "System III and System V allow a user to give away files; that is, the owner of a file may change its user ID to anything. This is a serious problem for implementations that are intended to meet government security regulations. Version 7 and 4.3 BSD permit only the superuser to change the user ID of a file. Some government agencies (usually not ones concerned directly with security) find this ...
11:29:43 <fizzie> ... limitation too confining. This volume of POSIX.1-2008 uses may to permit secure implementations while not disallowing System V."
11:30:03 <fizzie> The "some government agencies" part sounds like a dig.
11:31:23 <b_jonas> ais523: if you want to chown large files (or something else that's not so easy to just recreate as a copy by the dest user), could you try to use a demon running as root that you can ask to chown giveaway files only in some particular directory?
11:31:37 <ais523> it'd be nice if someone documented what the security implications actually /were/
11:31:47 <ais523> I can't find anything in a search, but then I websearch so rarely I'm pretty bad at it
11:31:56 <ais523> b_jonas: I wasn't a sysadmin, in this case
11:31:58 <b_jonas> ais523: I haven't really met this problem, I usually just copied files so the copy is created by the destination user
11:32:09 <b_jonas> ais523: sure, but ask a sysadmin
11:32:10 <ais523> actually, all I needed for this was setgid giveaway
11:32:18 <ais523> so I could have asked for a setgid directory to create files in
11:32:54 <ais523> (the specific problem: I need to create files that I can edit and that the web server can read, but shouldn't have permissions to read everything that the web server can)
11:33:49 <fizzie> Sounds like a problem that's solvable by adding an additional group, and making both you and the web server have that as one of the supplementary groups.
11:33:59 <b_jonas> ais523: could you just create a separate group used only for this task and have both you and the webserver be in that group?
11:34:35 <b_jonas> ais523: alternately, add a demon for the web server that you can ask to create those files; or add a demon for your username that the webserver user can run and read your files to copy them
11:34:41 <ais523> fizzie: b_jonas: basically I'm looking for a situation that doesn't require changing /etc/passwd or /etc/group, which are presumably working up to this point
11:34:45 <ais523> or /etc/init.d
11:35:16 <Jafet> We solve this by running multiple web servers.
11:35:19 <b_jonas> ais523: well, I think you need to change _something_ to allow this. it could be sudoers or something.
11:35:34 <ais523> b_jonas: right
11:36:03 <ais523> with a rule of "you can chown/chgrp giveaway files as long as you would maintain write access to them afterwards", all the exploits I can think of fail, yet I could give the webserver its files just fine
11:36:28 <ais523> (basically, the reasoning is that any checks that would be fooled by apparently owning the file, won't be fooled if someone else can write it)
11:36:35 <b_jonas> ais523: that still probably allows quota exploits at least, mind you, just linking other users' files also does that
11:36:50 <b_jonas> and I think it has other problem stoo
11:36:51 <b_jonas> let me think
11:37:06 <fizzie> ais523: Alternatively, POSIX ACLs.
11:37:16 <fizzie> "setfacl -m u:webserveruser:r your.file" or some such.
11:37:21 <b_jonas> ais523: doesn't that have the problem that you can accidentally create files you can't delete?
11:37:25 <ais523> from the Agora point of view, chown giveaway's exploitable because you could use it to push someone else overquota
11:37:41 <ais523> b_jonas: I did that a couple of days ago, on Windows
11:37:50 <ais523> Windows ACLs are a mess in all sorts of ways
11:37:57 <b_jonas> yes, you mentioned that
11:38:06 <Jafet> Windows is already perfectly happy to do that on your behalf
11:38:21 <b_jonas> also, can I assume that you can't give away files with the setuid or setgid bit set, right?
11:38:27 <ais523> b_jonas: I didn't mention it here
11:38:39 <ais523> and it's normally assumed that giving away a file clears the sgid/suid bits
11:38:44 <b_jonas> ok
11:38:46 <b_jonas> let me think
11:38:51 <ais523> anyway, here's the thing that really confused me
11:38:58 <fizzie> Giving an additional user ACL read permissions won't affect ownership, so is generally allowed.
11:38:59 <ais523> I had a perfectly normal .png file
11:39:06 <elliott> ais523: on BSD, you wouldn't need a setgid directory
11:39:09 <elliott> (all directories are setgid)
11:39:09 <b_jonas> ais523: would this apply only to regular files?
11:39:18 <ais523> with read permission to the file, my program couldn't read it, nor could Windows' image viewer thing
11:39:24 <ais523> with read+execute permission, now it reads fine
11:39:34 <ais523> and sure enough, almost all files have read+execute in default permissions
11:39:47 <ais523> so what I don't get is, why is the execute permission required for reading?
11:39:50 <b_jonas> ais523: on what file system?
11:40:03 <ais523> whatever ships with windows 8.1, presumably ntfs
11:40:09 <b_jonas> ntfs
11:40:09 <b_jonas> hmm
11:40:29 <b_jonas> and you didn't change the perm of the directory, right?
11:40:42 <elliott> windows has execute permissions?
11:40:44 <ais523> directory perms were default for ProgramData
11:40:49 <ais523> elliott: it has like 17 permissions for each file
11:41:02 <ais523> many of which seem to be misnamed or mislabeled
11:41:11 <ais523> and you set them via a sort-of bitfield that makes no sense
11:41:48 <fizzie> Actually, I think I used ACLs for something involving a somewhat similar web server thing. I think it was a directory I wanted to let the web server write to, without making it globally writable, and we didn't share any groups.
11:43:08 -!- scounder has joined.
11:43:11 <fizzie> Right, there it is; the "queue" directory has an extra u:apache:rwx entry.
11:43:42 <elliott> groups are a little sad.
11:44:18 <fizzie> ls shows "non-standard" ACLs as a '+' after the regular ?rwxrwxrwx permissions line.
11:46:05 <ais523> I find POSIX permissions are normally flexible enough to handle any setup you want, in an esolangy sort of way
11:46:16 <ais523> as in, there's some sequence of actions you can do, but it's often convoluted and makes no sense
11:46:52 <fizzie> ACL's are arguably part of "POSIX permissions", since they're in POSIX and they're about permissions.
11:47:24 <b_jonas> ais523: yeah, that's true for some other parts of unix too
11:47:32 <ais523> also Windows
11:47:58 <ais523> fizzie: the Cygwin people have a long article about mapping POSIX octal permissions to Windows permissions
11:48:13 <ais523> and in particular, how they handle the case of u-w,g+w
11:48:28 <ais523> which apparently can be represented with Windows ACLs, but breaks if the GUI tools are allowed to even look at them
11:48:50 <b_jonas> like, terminals and job control has rules that try to magically do the correct thing in various strange cases too, but they're hard to understand, as a result people don't understand it and don't know how they should write their programs such that they Just Work without having to do anything special.
11:49:35 <b_jonas> heh
11:52:10 <ais523> job control normally does Just Work, though
11:52:24 <ais523> except when you do something silly like install handlerse for /all/ signals
11:52:34 <ais523> except for whitelisted ones
11:53:27 <b_jonas> ais523: yes, or when they cargo cult random sequence of syscalls into a perl script to "demonize" the program, and keep the terminal open
11:54:02 <ais523> I think you missed an 'a' there, but it's funnier that way
11:54:22 <b_jonas> nah, I don't care about "demon" vs "daemon"
11:55:26 <b_jonas> and I remember someone caught a nasty bug some months ago when some early process at starting X called sigprocmask with memory junk (looked like a pointer) in the signal set and forgot to change it back before forking all the application programs,
11:55:30 <b_jonas> which then caused random bugs in all programs
11:55:56 <b_jonas> unix's "most process state is inherited" can be nasty when there's a bug like that
11:56:39 <Melvar> (Given the original desired setup I thought it surely can be done with selinux.)
12:04:33 <elliott> ais523: u-w,g+w seems kind of incoherent to me
12:04:54 <ais523> elliott: yeah, it's bizarre
12:05:04 <ais523> but apparently the cygwin people cared enough about compatibility that they wanted to make it work
12:05:26 <ais523> even though probably nobody has found an actual application for it ever
12:05:30 <elliott> is there ever a good reason to not enforce owner < group < world?
12:05:42 <elliott> like, is there a reasonable use-case for permissions that violate that?
12:05:50 <ais523> I guess if you had a "banned users" group
12:06:14 <ais523> ah, here we go: https://cygwin.com/cygwin-ug-net/ntsec.html
12:06:42 <fizzie> u-w,g+w: when you don't trust yourself, but want other people to be able to edit the file.
12:08:59 <ais523> cygwin's example is rw-r-xrw-
12:09:05 <ais523> which is pretty crazy as perms go
12:10:40 <ais523> actually, their implementation of setuid(2) is even crazier
12:11:27 <b_jonas> for obfu purposes, I guess such things could occurr if you store status in perm bits, and your programs check them implicitly when some operation files with EACCESS
12:11:51 <fizzie> We don't have per-user groups on these computers; my primary group is 70000 "Domain Users".
12:11:58 <ais523> when you reach the point of "requires permissions that SYSTEM doesn't have" you know you're in trouble
12:12:35 <ais523> Windows' high-level permissions are such a mess
12:12:49 <ais523> especially when you start seeing TrustedInstaller with lower perms than, say, Administrator
12:13:07 <fizzie> At the civil service place I was in, I used to have to start Photoshop (or some other Adobe tool) as a special "service pack 4 updater" user in order to be able to print, otherwise there was some permissions problem in bringing up the print dialog.
12:13:19 <fizzie> Only applied to some particular pieces of software.
12:13:26 <fizzie> I don't know how they had managed to configure that.
12:15:43 <b_jonas> fizzie: ouch
12:17:42 <fizzie> I dug out the password for that account -- which was something like "oh crap" in Finnish -- from the login scripts, which used some Windows "su" tool to execute a few set-up-registry-items commands under that account.
12:17:46 <fizzie> It was a bit of a mess.
12:20:26 <fizzie> (It wasn't "runas", it was something you could provide the password on the command line.)
12:21:28 -!- callforjudgement has joined.
12:23:09 -!- ais523 has quit (Ping timeout: 245 seconds).
12:43:24 -!- shikhin has joined.
13:00:33 -!- Phantom_Hoover has joined.
13:15:26 -!- Slereah_ has joined.
13:17:15 -!- Slereah has quit (Ping timeout: 265 seconds).
13:18:43 <mroman> fizzie: You're not supposed to look at windows login scripts
13:18:53 <mroman> they contain sensitive informations users aren't supposed to see
13:19:11 -!- drdanmaku has quit (Quit: Connection closed for inactivity).
13:32:53 -!- Sprocklem has quit (Ping timeout: 240 seconds).
13:34:18 <fizzie> It seemed easier than trying to deal with the bureaucracy.
13:34:46 <fizzie> Also it's hard to not notice command prompt windows that flash briefly on every login, and print messages about su and regedit and such.
14:04:28 -!- `^_^v has joined.
14:13:20 -!- callforjudgement has quit (Read error: Connection reset by peer).
14:13:32 -!- callforjudgement has joined.
14:14:16 -!- callforjudgement has changed nick to ais523.
14:23:52 -!- Sprocklem has joined.
14:24:19 -!- Sprocklem has changed nick to Guest63006.
14:24:56 -!- Guest63006 has quit (Client Quit).
14:25:07 -!- Sprocklem_ has joined.
14:25:30 -!- Sprocklem_ has changed nick to Sprocklem.
14:29:11 -!- mihow has joined.
14:52:22 -!- callforjudgement has joined.
14:52:28 -!- ais523 has quit (Read error: Connection reset by peer).
14:52:31 -!- callforjudgement has changed nick to ais523.
14:58:06 -!- callforjudgement has joined.
14:58:14 -!- ais523 has quit (Disconnected by services).
14:58:15 -!- callforjudgement has changed nick to ais523.
15:01:00 -!- ais523 has quit (Remote host closed the connection).
15:01:08 -!- ais523 has joined.
15:29:26 -!- impomatic_ has joined.
15:32:21 -!- nycs has joined.
15:34:29 -!- `^_^v has quit (Ping timeout: 256 seconds).
15:55:37 -!- nycs has quit (Ping timeout: 244 seconds).
16:03:05 -!- nycs has joined.
16:05:31 -!- Sprocklem has quit (Ping timeout: 265 seconds).
16:08:58 -!- callforjudgement has joined.
16:08:58 -!- ais523 has quit (Read error: Connection reset by peer).
16:09:54 -!- callforjudgement has changed nick to ais523.
16:34:46 -!- callforjudgement has joined.
16:34:46 -!- ais523 has quit (Read error: Connection reset by peer).
16:35:15 -!- drdanmaku has joined.
16:40:51 -!- callforjudgement has changed nick to ais523.
16:53:58 <Taneb> I... am not the best at translating Haskell -> Racket
16:58:56 <Taneb> What ought to be a prime sieve seems to be the identity function
17:00:35 <fizzie> It's an inclusive prime sieve that doesn't want to hurt any number's feelings, no matter how composite they might be.
17:01:15 <Taneb> Heh
17:01:53 <int-e> let me guess, it returns every number that is divisible by 1 and itself?
17:02:56 <ais523> "Maths made difficult" defines primes as integers with exactly four integral factors
17:03:10 <Taneb> 1, -1, x, and -x?
17:03:20 <ais523> Taneb: yep
17:03:37 <ais523> this neatly excludes 1 and -1 because they only have two integral factors each
17:04:07 <Taneb> What about -2?
17:05:34 <Slereah_> Are there any with 3?
17:06:24 <Taneb> Slereah_, I don't think so
17:06:50 <int-e> @tell oerjan I can't answer your question. But perhaps you'll enjoy the 4 different 85 character versions in http://sprunge.us/QHXf?hs
17:06:50 <lambdabot> Consider it noted.
17:07:00 <Taneb> Slereah_, I don't think there are any with an odd number
17:07:10 <Taneb> (because if x|y, -x|y)
17:07:54 <Slereah_> What about zeroooo
17:08:05 <Slereah_> It has aleph naught divisors!
17:09:26 <Taneb> Aleph naught is even.
17:09:49 <int-e> how do you define "even"?
17:10:43 <int-e> N is in bijection with N + N (disjoint union), but also in bijection with N + N + {1}, so one could say that its cardinality is both odd and even.
17:11:47 <int-e> I would prefer to restrict the notion to integers.
17:13:01 <Taneb> Even numbers = {x \elem integers, 2|x}
17:13:24 <Taneb> By which logic, I suppose aleph naught is not even
17:13:43 <Taneb> ais523, I need to get me a copy of that book
17:13:53 <int-e> (In general, to rings with a surjective homomorphism to Z/2Z.)
17:14:13 <int-e> bonus points if that homomorphism is unique.
17:14:34 -!- ais523 has quit (Read error: Connection reset by peer).
17:14:48 -!- ais523 has joined.
17:16:31 -!- ais523 has quit (Read error: Connection reset by peer).
17:16:39 -!- ais523 has joined.
17:26:33 -!- Wooble has joined.
17:32:22 -!- FreeFull has quit (Quit: BBL).
17:47:23 <HackEgo> [wiki] [[Brainfuck implementations]] http://esolangs.org/w/index.php?diff=40699&oldid=40660 * Rdebath * (+64) Link to bins zip
18:06:39 -!- shikhout has joined.
18:10:09 -!- shikhin has quit (Ping timeout: 265 seconds).
18:39:27 -!- Sprocklem has joined.
18:47:34 -!- shikhout has changed nick to shikhin.
19:08:20 <impomatic_> There's a Core War tournament this week if anyone fancies a go :-) corewar.co.uk/halloween2014.htm
19:10:03 <ais523> hmm, I had an interesting core war idea a while ago
19:10:09 <ais523> but now I can't remember what it was
19:10:23 <ais523> something to do with multiple threads that repaired each other and just tried to survive
19:10:37 <impomatic_> Oh, a self-repairing warrior. :-)
19:12:02 <ais523> yes
19:12:10 <ais523> most/all of the obvious ideas will have been tried by now
19:12:20 <ais523> oh, no, I remember what it was
19:12:24 <ais523> it was a paper-like program
19:12:36 <ais523> only it intentionally forkbombs itself in order to prevent the opponent using anti-paper tactics
19:12:36 <impomatic_> "I will close by suggesting that the winner of next year's tournament will be a self-repairing program." - A. K. DEWDNEY, The Core War Newsletter (March 1987)
19:12:40 <ais523> hundreds of threads on each copy
19:12:57 <ais523> probably wouldn't work, though
19:13:48 <impomatic_> It's worth trying.
19:14:14 <impomatic_> Not everything has been discovered. There are new ideas being tried out all the time.
19:14:33 <ais523> just like in BF Joust, I guess
19:14:52 <impomatic_> And there are combinations of known strategies which haven't been tried, but might work really well together.
19:16:52 <ais523> one thing I noticed is that many of my best BF Joust programs recently work by deceiving the opponent as to their strategy
19:17:09 <ais523> omnipotence, for instance, is a defence program disguised as a fast rush against most opponents (and an actual fast rush against pokes)
19:22:37 -!- Slereah_ has quit (Read error: Connection reset by peer).
19:23:17 -!- MoALTz has joined.
19:32:10 <impomatic_> I've also been trying to track down a couple of historic robot programming games. Robot Arena for the Research Machines 380Z and Robot for the SOL-20
19:38:12 -!- Bicyclidine has joined.
19:43:15 -!- drdanmaku has quit (Ping timeout: 244 seconds).
19:43:44 <J_Arcane> huh. http://soft-dev.org/pubs/html/diekmann_tratt__eco_a_language_composition_editor/
19:44:57 -!- drdanmaku has joined.
19:58:04 <fizzie> As a prime example of paying attention to the important part, I'm annoyed because all the "ff"s, "ffi"s and "fi"s of that document have been turned into ligatures, and render in a much darker type than the rest of the body text.
19:58:34 <fizzie> "sufficient" and so on.
19:58:58 <fizzie> (Not sure why it renders badly.)
19:59:16 <Phantom_Hoover> sufficient?
19:59:23 <Phantom_Hoover> oh, wait, nvm
19:59:49 -!- Bicyclidine has quit (Ping timeout: 255 seconds).
20:05:24 <zzo38> 2600 uses ligatures even in fixpitch text and I want to send a postcard to them to tell them not to do that please.
20:06:52 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds).
20:10:43 -!- Bicyclidine has joined.
20:18:16 -!- TieSoul has left.
20:27:48 -!- ais523 has quit (Remote host closed the connection).
20:28:03 -!- ais523 has joined.
20:42:21 -!- FreeFull has joined.
20:49:43 -!- Bicyclidine has quit (Ping timeout: 265 seconds).
20:58:46 -!- Phantom_Hoover has joined.
20:58:53 -!- Phantom_Hoover has quit (Changing host).
20:58:53 -!- Phantom_Hoover has joined.
21:01:38 -!- MoALTz has quit (Quit: Leaving).
21:01:42 <Taneb> What's the largest brainfuck program people know?
21:02:36 <b_jonas> Taneb: dunno, but it's easy to create large ones
21:02:54 <b_jonas> by padding small ones
21:05:04 <Taneb> b_jonas, that's kind of cheating
21:05:12 <Taneb> Although the problem is ill specified
21:07:24 <int-e> Lost Kingdom, perhaps?
21:07:35 -!- AnotherTest has joined.
21:09:00 <fizzie> Lost Kingdom would've been my guess too.
21:09:04 <int-e> or do you disallow programs that were compiled from a more highlevel language?
21:11:55 <fizzie> awib's relatively long, as far as handwritten programs go. It's not *giant*, though.
21:12:22 <fizzie> And it does use a "preprocessor", but that preprocessor pretty much just removes comments and implements an "include" mechanism for splitting to multiple files.
21:15:38 <fizzie> How coincidental, looks like an awib 0.4 just came out in like two weeks ago.
21:15:43 <zzo38> I want to implement Diehard tests into Z-machine codes.
21:18:13 <zzo38> Information I have found in Wikipedia and that stuff doesn't seem to mention implementation details?
21:18:30 <int-e> Hehe. "Extending the brainfuck language is like bolting parts to a skateboard in an attempt to build a pickup truck."
21:19:59 <Bike> i saw a design thing once that implied exactly that for real trucks
21:21:16 -!- Sprocklem has quit (Ping timeout: 255 seconds).
21:23:45 -!- ais523 has quit (Read error: Connection reset by peer).
21:24:03 -!- ais523 has joined.
21:33:38 -!- Frooxius has quit (Quit: *bubbles away*).
21:37:02 -!- Frooxius has joined.
22:05:10 -!- Sprocklem has joined.
22:07:34 -!- Phantom__Hoover has joined.
22:07:52 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds).
22:17:02 -!- AnotherTest has quit (Remote host closed the connection).
22:17:39 -!- boily has joined.
22:24:22 <Sgeo> Is it dangerous if everyone stands on one side of an airplane?
22:24:26 <Sgeo> I tried googling to no avail
22:25:02 <int-e> hmm
22:25:44 <int-e> Not helpful. "To ensure the aircraft is safe to fly, the center of gravity must fall within specified limits established by the aircraft manufacturer."
22:28:42 <coppro> if everyone stands at the front, probably
22:28:45 <coppro> side, not sure
22:29:04 <Sgeo> I'm thinking of chartered flight to see a solar eclipse, not sure how safe that would be
22:29:14 <Sgeo> I assume everyone would be standing on a side to see it
22:31:17 <boily> I want to see people all stacked in an airplane's side. a feat to behold!
22:32:17 <Sgeo> Bluh, is it even possible to write an identity /function/ in Scala? [Different from an identity /method/]
22:32:57 <boily> is Scala like Java, where everything is a method?
22:33:54 <Sgeo> Scala has first class functions. However, Scala functions seem limited relative to Scala methods
22:34:14 <Sgeo> Methods can have any number of parameter lists, functions have one (or more? but not 0. At least according to some article)
22:34:21 <Sgeo> Functions can't accept implicit arguments
22:34:22 <Sgeo> etc. etc.
22:34:31 * boily is confused. “functions are first class, but they aren't...”
22:34:57 <Sgeo> You can't pass around methods, but you can pass around functions.
22:38:25 <Sgeo> How much of this because of the desire for easy Java interop?
22:39:19 -!- oerjan has joined.
22:40:15 <int-e> Sgeo: http://avherald.com/h?article=43015f1b ... very small plane though
22:40:15 <oerjan> @messages-
22:40:15 <lambdabot> int-e said 5h 33m 24s ago: I can't answer your question. But perhaps you'll enjoy the 4 different 85 character versions in http://sprunge.us/QHXf?hs
22:41:42 <Sgeo> I don't think a solar eclipse plane would be that large, owuld it?
22:41:58 <int-e> Sgeo: I came via https://aviation.stackexchange.com/questions/2507/can-passenger-movement-in-an-airliner-make-it-stall
22:42:05 <Sgeo> Ah
22:42:25 <int-e> from what I'm reading, larger planes can actually compensate for this, for example by redistributing fuel.
22:43:51 -!- mihow has quit (Quit: mihow).
22:44:10 <oerjan> int-e: i got an 81 solution that resembles your last ones but i didn't bother to submit it m@main=getLine>>=putStrLn.foldl1(flip$map.g).words>>m;g[e,f]c|e==c=f|f==c=e|1>0=c
22:44:15 <Sgeo> I have no idea if this is a larger plane or a smaller plane
22:44:52 <int-e> and obviously takeoff and landing are more critical than normal flight.
22:45:20 <Sgeo> THat makes me feel better
22:45:43 <int-e> oerjan: ah.
22:46:15 <int-e> oerjan: I recall thinking about using 'cycle' much earlier but didn't get it to work.
22:46:38 <oerjan> ok so you and henkma apparently thought of it independently :)
22:47:20 <int-e> and then it was only a small step from there to the cheating solution.
22:48:40 <int-e> oerjan: It's funny though. I never thought adding a 'flip' could be worthwhile.
22:49:10 <oerjan> i wavered back and forth several times on whether to fold over entire words or single characters, essentially
22:50:28 <int-e> Oh I didn't try that; using foldl1 was just too attractive.
22:51:01 -!- ais523 has quit.
22:53:50 <oerjan> hm maybe "folding over single characters" isn't the right term, i mean that foldl1(flip$map.g) thing as opposed to foldl1(#) with # handling an entire word with a list comprehension or the like
22:54:59 <int-e> oerjan: actually the 'cycle' idea resulted from thinking about piecing together [d] and filter (/=d) b parts so that the right elements would line up. doing it with ++ was too long, but a regular pattern could work...
22:55:49 <int-e> oerjan: oh. well, you can see from my 9th solution that I didn't think it benefitial to inline the (?) then.
22:55:50 <oerjan> although my _very_ first version actually did fold over single characters entirely, it was m@main=getLine>>=a.words>>m;a(t:s)=putStrLn[foldl(#)c s|c<-t];c#l|[e]<-filter(/=c)l=e|1>0=c
22:57:08 <oerjan> well one of the things i've learned while golfing is that it can depend a lot on circumstances whether it pays to inline a function or not, as long as it has only one equation.
22:57:20 <int-e> oerjan: so you were using filter from the beginning, essentially ... I took a while to find it.
22:57:29 <oerjan> heh
22:58:14 <oerjan> and that was something i _removed_ for my own shortest version.
22:58:23 <oerjan> back and forth :)
22:58:31 <int-e> oerjan: to repeat myself, I never thought that adding 'flip' could pay off.
23:04:41 <oerjan> i remember comparing things like (flip$map.(#)) vs. (?);x?y=map(y#)x and (\x y->map(y#)x)
23:06:04 <oerjan> the latter two are equally good
23:06:21 <int-e> intuition is such an unreliable beast
23:06:59 <oerjan> and a function instead of f loses by 1 character, the kind of thing that depends a lot on spacing possibilities
23:07:05 <oerjan> *instead of ?
23:48:09 -!- boily has quit (Quit: GUGUGUGUGUGUGUGU CHICKEN).
←2014-10-26 2014-10-27 2014-10-28→ ↑2014 ↑all