00:05:50 -!- not^v has joined.
00:07:13 <elliott> define side-effect-free stateless dynamic-extent
00:07:13 <elliott> primitive-cast-machine-word-as-single-float
00:07:13 <elliott> => (f :: <raw-single-float>)
00:07:22 <elliott> "side-effect-free", really.
00:08:17 <int-e> oerjan: you said 45/46 characters for substrings once, did you ever improve that?
00:09:34 <int-e> I know I shouldn't ask
00:09:52 <int-e> but I'm stuck with 3 fairly different 124 character versions :)
00:11:40 <int-e> (with two completely different approaches to substrings)
00:12:45 -!- not^v has quit (Quit: http://i.imgur.com/Akc6r.gif).
00:14:36 <b_jonas> vanila: I recommend this old classic book: Alfred V. Aho, Jeffrey D. Ullman, ''The Theory of Parsing, Translation and Compiling'', (1972) Prentice-Hall.
00:16:42 <int-e> > undefined^0 -- also didn't help me
00:44:12 -!- Bicyclidine has joined.
00:52:25 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds).
00:54:26 -!- Bicyclid1ne has joined.
00:54:48 -!- Bicyclidine has quit (Read error: Connection reset by peer).
01:11:28 -!- impomatic_ has quit (Ping timeout: 240 seconds).
01:47:46 -!- shikhout has joined.
01:49:56 -!- oerjan has quit (Quit: leaving).
01:51:18 -!- shikhin has quit (Ping timeout: 265 seconds).
02:10:52 <int-e> uh oh, GG (I'm late reading the Wednesday comic) is heading towards another fatal convergence.
02:32:13 -!- adu has quit (Quit: adu).
02:32:53 -!- kline has quit (Ping timeout: 245 seconds).
02:37:31 <zzo38> What is the proper filename extension for troff files?
02:38:20 <vanila> there is a many gigabyte download archive of many gopher sites
02:39:26 <zzo38> vanila: I cannot easily download really large files on my computer.
02:40:58 -!- drdanmaku has quit (Quit: Connection closed for inactivity).
02:41:02 -!- adu has joined.
02:50:55 -!- nys has quit (Quit: quit).
03:28:29 -!- adu has quit (Quit: adu).
03:29:51 -!- Bicyclid1ne has quit (Ping timeout: 264 seconds).
03:31:13 -!- hjulle has quit (Ping timeout: 245 seconds).
03:34:07 -!- tromp_ has quit.
03:36:11 -!- adu has joined.
03:39:25 -!- bb010g_ has changed nick to bb010g.
03:41:10 -!- Sprocklem has joined.
04:08:14 -!- MoALTz_ has joined.
04:10:52 -!- MoALTz has quit (Ping timeout: 255 seconds).
04:26:14 -!- shikhout has quit (Ping timeout: 244 seconds).
04:44:40 -!- tromp_ has joined.
04:45:22 -!- DTSCode has joined.
05:20:29 -!- password2 has quit (Ping timeout: 240 seconds).
05:26:20 -!- MDude has changed nick to MDream.
05:45:55 -!- adu has quit (Quit: adu).
05:46:15 -!- vanila has quit (Quit: Leaving).
05:47:54 <Sgeo> http://www.unicode.org/announcements/tn-punycode-spoofing.png
05:48:18 <Sgeo> Actually, not sure how that's really a spoofing hole, unless users don't notice the xn--... wouldn't browsers hilight that tooo
05:49:33 -!- tromp_ has quit (Remote host closed the connection).
05:54:05 <DTSCode> i found a subreddit filled with smart people
05:56:23 <DTSCode> reddit.com/r/mehttp://www.reddit.com/r/menlaughingwithsalad/
05:56:35 <DTSCode> http://www.reddit.com/r/menlaughingwithsalad/
06:01:48 <zzo38> I know you can tell it to always display punycode (I have that setting activated on my own computer).
06:04:51 <zzo38> And, I can see the "xn--" easily enough.
06:07:10 <zzo38> What is the meaning of the Unicode characters they represent? If someone can make up a meaning with kanji and also a meaning with the punycode text, then it can be a possibly interesting idea, too.
06:13:19 <Sgeo> coppro: but people would then be dumb enough to fall for nx--blahblahblah.com too
06:13:25 <Sgeo> No punycode trickery needed
06:13:42 <Sgeo> Although maybe, say, a site that looks visually like cnn in unicode and ... can't guarantee that I guess
06:21:20 -!- MoALTz__ has joined.
06:23:49 -!- MoALTz_ has quit (Read error: Connection reset by peer).
06:31:41 -!- copumpkin has quit.
06:32:15 -!- copumpkin has joined.
06:32:58 <HackEgo> slist: Taneb atriq Ngevd Fiora Sgeo ThatOtherPerson alot
06:37:15 -!- MoALTz__ has quit (Quit: Leaving).
06:40:43 <lambdabot> benmachine says: adoption by lots of people may stunt progress of haskell, but it will probably help the progress of people
06:40:48 <HackEgo> 182) <zzo38> I have plans to make the computer and one day I will do it!! (I have access to barter some people might help with these things) It is many difference from other computer. \ 318) <elliott_> `addquote <olsner> two quotes about quotes about django <olsner> I guess the worst part is that I appear in all three hackego quotes about django
06:40:52 <HackEgo> 182) <zzo38> I have plans to make the computer and one day I will do it!! (I have access to barter some people might help with these things) It is many difference from other computer. \ 318) <elliott_> `addquote <olsner> two quotes about quotes about django <olsner> I guess the worst part is that I appear in all three hackego quotes about django
06:41:47 <zzo38> Can you tell it to print only the numbers? It might help if there is too much?
06:50:05 -!- tromp_ has joined.
06:55:11 -!- tromp_ has quit (Ping timeout: 272 seconds).
07:09:05 <zzo38> Do any other alphabets contain homographs of "xn"?
07:09:50 -!- impomatic_ has joined.
07:12:58 <quintopia> zzo38: what computer were you talking about
07:13:16 <zzo38> I do not remember.
07:26:18 <zzo38> I have found that a homograph of "xn" appears only to exist in italics.
07:29:51 <fizzie> int-e: Heh, we didn't quite have identical dc tetration solutions (my "?3-d" to get 2 2 or 0 0 vs. your "4?5/" to get 4 0 or 4 1).
07:33:02 <zzo38> I wanted to see if it is possible to make a domain name that looks like "xn--" but actually isn't.
07:33:41 <zzo38> If you are allowed to mix up different languages then it is possible, but I wanted to see if it can use with only one language.
07:38:25 <HackEgo> [wiki] [[Befunge]] http://esolangs.org/w/index.php?diff=40794&oldid=40282 * 194.132.104.253 * (+24) /* Befunge-98 and beyond */ Fix broken link to Funge-98 spec.
07:41:18 <HackEgo> [wiki] [[Befunge]] http://esolangs.org/w/index.php?diff=40795&oldid=40794 * 194.132.104.253 * (+57) /* External resources */ There should probably still be a link to the general funge-98 stuff at catseye.
07:47:55 -!- DTSCode has changed nick to dTSCode.
07:51:44 -!- tromp_ has joined.
07:55:59 -!- tromp_ has quit (Ping timeout: 240 seconds).
08:16:44 <HackEgo> [wiki] [[Brainfuck]] http://esolangs.org/w/index.php?diff=40796&oldid=40661 * 117.80.69.146 * (-11) One of the alternative names censors precisely the non-offensive part
09:07:48 <quintopia> yeah, i always though b****fuck was the more reasonable way to censor it
09:09:30 -!- Sgeo has changed nick to WickedWitch.
09:09:49 <HackEgo> [wiki] [[Brainfuck]] http://esolangs.org/w/index.php?diff=40797&oldid=40796 * Quintopia * (+11) Undo revision 40796 by [[Special:Contributions/117.80.69.146|117.80.69.146]] ([[User talk:117.80.69.146|talk]]) (that's the joke)
09:10:06 <mroman> everytime I read the word fuck I write the FCC to tell them about it.
09:10:45 -!- WickedWitch has changed nick to Sgeo.
09:30:38 <int-e> dc allows digits A..F to be used in base 10.
09:37:11 -!- lambdabot has quit (Ping timeout: 260 seconds).
09:42:35 <fizzie> Yes, but the exponent is still 10. It's kind of funny that way.
09:43:03 <fizzie> I think we talked about this on-channel at some point.
09:43:57 -!- erdic has quit (Ping timeout: 255 seconds).
09:49:21 -!- erdic has joined.
09:51:22 -!- tromp_ has joined.
09:56:24 -!- tromp_ has quit (Ping timeout: 264 seconds).
09:58:17 <int-e> spaces in dc code make me sad.
09:59:43 <int-e> (I have a 2 32^ in there. If I ever find switching to input base 16 useful, I'll replaced it by 4I^)
10:09:01 -!- lambdabot has joined.
10:13:31 <int-e> ok, this time it was an actual server reboot.
10:15:22 <int-e> "Rebooting ... after a kernel panic." NICE.
10:33:36 <int-e> The bad news is that this probably affects @tell again.
11:00:17 -!- Phantom_Hoover has joined.
11:00:27 -!- oerjan has joined.
11:14:49 <oerjan> <int-e> uh oh, GG (I'm late reading the Wednesday comic) is heading towards another fatal convergence. <-- i have a vague feeling brother ulm is headed for a redemption by death experience...
11:15:09 -!- boily has joined.
11:20:02 <oerjan> no whatif this week. also what _is_ the official update time for that?
11:20:41 <fizzie> I don't know why I think that.
11:20:51 <oerjan> i thought it was tuesday once, but nowadays i don't see it until friday (although i don't check on thursdays because there's no ordinary xkcd then)
11:21:24 <fizzie> The recent dates given in http://what-if.xkcd.com/archive/ seem rather weekendy.
11:21:36 <oerjan> ooh there's an archive?
11:21:39 <fizzie> (And the image for the latest is broken.)
11:21:57 <fizzie> Must be new, I remember having to browse it with the prev/next buttons.
11:23:29 <fizzie> Well. For October, Oct 1, 8 and 15 there are Wednesdays, Oct 23 and 30 are Thursdays.
11:24:02 <fizzie> September has two Wednesdays, one skipped week and one Tuesday.
11:28:17 <oerjan> everything in june, july and august is wednesday except june 3
11:28:49 <fizzie> Median says Wednesday, then.
11:40:43 -!- tromp_ has joined.
11:44:58 -!- tromp_ has quit (Ping timeout: 250 seconds).
12:08:28 -!- b_jonas has quit (Quit: Reconnecting).
12:08:34 -!- b_jonas has joined.
12:15:30 -!- boily has quit (Quit: SOLYPTIC CHICKEN).
12:37:19 -!- FreeFull has quit (Ping timeout: 260 seconds).
12:39:14 -!- FreeFull has joined.
12:58:28 -!- FreeFull has quit (Ping timeout: 244 seconds).
13:08:05 -!- Phantom_Hoover has quit (Ping timeout: 256 seconds).
13:26:48 -!- sidfarkus has joined.
13:29:19 -!- FreeFull has joined.
13:29:30 -!- tromp_ has joined.
13:33:55 -!- tromp_ has quit (Ping timeout: 244 seconds).
13:37:34 <fizzie> Today's spam topic: "Start recovering from google Panda today".
13:38:02 <fizzie> Apparently "With Penguin and panda, it's important to have Backlinks from websites that have the proper metrics."
13:38:27 <fizzie> It's advertising some sort of SEO thing, but I'm not sure if "penguin" and "panda" are some particular terms of the trade, or just referring to the animals.
13:40:03 -!- hjulle has joined.
13:51:28 -!- tromp_ has joined.
13:51:53 <b_jonas> I've again found that C++ with its templates is a very powerful language and lets you write seriously twisted crazy code even without preprocessor magic
13:53:00 <b_jonas> so I should continue trying hard to keep some of those crazy ideas away from my co-worker who would use them if he knew about them.
13:54:23 -!- tromp_ has quit (Read error: Connection reset by peer).
13:54:38 -!- tromp_ has joined.
14:00:40 -!- sidfarkus has quit (Quit: Page closed).
14:40:02 -!- MDream has changed nick to MDude.
14:59:40 -!- copumpkin has quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…).
15:01:59 <mroman> is there a replace overlapping thing?
15:02:11 <mroman> "aaa".replace("aa","b")
15:02:16 <mroman> will either be "ba" or "ab"
15:02:39 <mroman> for some values of should be
15:04:43 <Jafet> What should 'abab'.replace('(ab)*', '\1') be
15:06:18 <Jafet> (Make it [\1] to distinguish between more things)
15:06:49 <fizzie> Or how about 'aba'.replace('(a(?ba)?)', 'x')? Which ones of the matches "(a)ba", "(aba)" and "ab(a)" it matches, and how are the x's marged?
15:06:59 <fizzie> That was trying to be (?:ba) inside.
15:07:23 <fizzie> And without the outer ()s perhaps, since I didn't use them for anything. (I got a bit mixed up.)
15:08:15 <Jafet> Also, why do you want this thing
15:08:24 <Jafet> (The overlap, not the bus)
15:12:13 -!- drdanmaku has joined.
15:12:33 -!- `^_^v has joined.
15:15:29 -!- perrier has joined.
15:41:13 -!- dTSCode has changed nick to DTSCode.
15:58:39 -!- impomatic_ has quit (Ping timeout: 256 seconds).
15:58:47 -!- oerjan has quit (Quit: Gah noise).
16:02:54 -!- DTSCode has changed nick to dTSCode.
16:02:57 <b_jonas> hehe, "replace overlapping"... do you mean replace and then search again from the second char of replacement?
16:06:40 -!- mihow has joined.
16:24:14 -!- CakeMEat has joined.
16:28:03 <Taneb> ...what do you need help with?
16:28:40 <CakeMEat> I've been trying to code a hyper threaded outside event but every time i run it, It crashes my python compiler for the constant string
16:29:20 <Taneb> Someone else may be able to help you
16:29:28 <Taneb> Have you asked in a Python channel?
16:30:07 <CakeMEat> Im just changing through the channels looking for help
16:31:16 <CakeMEat> Btw do you know where to find an easy program for brainfuck
16:31:35 <CakeMEat> thats all i should need and ill be on my way
16:35:19 -!- impomatic_ has joined.
16:39:06 <Taneb> Do you mean something easy to implement in brainfuck?
16:39:37 <Bike> `! bf_txtgen hello world eaters
16:39:42 <HackEgo> 122 +++++++++++++++[>++>+++++++>++++++++>+<<<<-]>>-.---.+++++++..+++.<++.>>-.<.>-----.<---.--------.<.>+.----.>++.<++++.>--.+. [613]
16:58:58 <FireFly> `` ls -l $(which \`) $(which \!)
16:58:58 <HackEgo> -rwxr-xr-x 1 5000 0 18 Sep 12 13:29 /hackenv/bin/` \ lrwxrwxrwx 1 5000 0 6 Sep 25 13:38 /hackenv/bin/! -> interp
16:59:17 <HackEgo> #!/bin/sh \ CMD=`echo "$1" | cut -d' ' -f1` \ ARG=`echo "$1" | cut -d' ' -f2-` \ exec ibin/$CMD "$ARG"
16:59:56 <FireFly> Oh, `! uses the interpreters directory
17:07:01 -!- MoALTz has joined.
17:13:38 -!- CakeMEat has quit (Ping timeout: 246 seconds).
17:35:45 -!- AnotherTest has joined.
17:40:26 -!- Phantom_Hoover has joined.
17:44:57 -!- FreeFull has quit (Quit: BBL).
17:55:06 -!- vanila has joined.
17:55:37 -!- impomatic_ has quit (Ping timeout: 265 seconds).
17:55:39 -!- dTSCode has changed nick to DTSCOde.
17:58:00 -!- DTSCOde has quit (Read error: Connection reset by peer).
17:59:18 -!- DTSCode has joined.
18:42:02 -!- DTSCode has quit (Read error: Connection reset by peer).
18:57:48 -!- impomatic_ has joined.
19:02:15 -!- kline has joined.
19:02:33 <mroman> 400kbps is really slow o_O
19:16:38 <fizzie> 56kbps used to be really fast.
19:18:07 <mroman> before games required 150MB updates EVERY DAY
19:18:52 <mroman> didn't think of that :(
19:23:14 <fizzie> I had the front half as pejbcj.+ for a long time before realizing .+ doesn't care.
19:24:06 <FireFly> I should learn that, if only for anagolf
19:24:42 -!- shikhin has joined.
19:31:40 <mroman> FireFly: it is burlesque
19:32:20 <HackEgo> [wiki] [[Brainfuck]] http://esolangs.org/w/index.php?diff=40798&oldid=40797 * GermanyBoy * (+556)
19:32:26 -!- ruur has joined.
19:33:28 <ruur> : <Taneb> Do you mean something easy to implement in brainfuck? ( Yeah thats what i meant )
19:41:31 -!- MoALTz has quit (Read error: Connection reset by peer).
19:42:32 -!- MoALTz has joined.
19:44:56 -!- AnotherTest has quit (Ping timeout: 245 seconds).
19:47:48 -!- shikhout has joined.
19:50:46 -!- shikhin has quit (Ping timeout: 245 seconds).
19:54:12 <ruur> Is there a bot here¿
19:55:21 <HackEgo> Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: <http://esolangs.org/>. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
19:55:43 <Bike> hm forget the key
19:56:25 <Bike> also the logbots
19:56:29 <Bike> and a few people with macros
19:56:37 <shachaf> how could you forget fungot
19:56:38 <fungot> shachaf: " and didna ye get the rings, ladye, tied wi' a frown upon her brow: " o fnord to me. i'll make him believe uggug to be a cupboard divided in the same condition as with no. fnord find it partly ' empty', to settle the fact that there is a more curious idea yet," said bruno.
19:56:41 <HackEgo> Bot prefixes: fungot ^, HackEgo `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, idris-bot ( , jconn ) , blsqbot !
19:57:25 <fungot> Available: agora alice* c64 ct darwin discworld enron europarl ff7 fisher fungot homestuck ic irc iwcs jargon lovecraft nethack oots pa qwantz sms speeches ss wp youtube
19:57:32 <ruur> lambdabot? ive heard of that one
19:58:08 <ruur> Ill go ask sorch brb
20:00:18 -!- ruur has quit.
20:00:53 -!- Primal has joined.
20:01:13 <mroman> FireFly: there are two tutorials available
20:01:28 <mroman> and some anagol submissions are public to learn from of course
20:01:33 <mroman> and I provide free Burlesque support and training over IRC ;)
20:01:47 <mroman> and there's even a Bot here
20:01:48 <int-e> ok, I've dealt with the spaces in my dc program ... []sp...2 32^ now is 2[]sp32^.
20:01:58 <int-e> space filler, so to say
20:02:59 <Primal> It didnt work with spaces?
20:03:31 <int-e> I'm golfing. Those spaces take up ... well ... space, without any use.
20:07:40 <FireFly> Are you golfing.. in space?
20:09:20 -!- Primal has quit (Ping timeout: 246 seconds).
20:10:05 -!- MeerLin has joined.
20:10:40 <int-e> http://golf.shinh.org/p.rb?Wow ... this problem is stupid but once you figure out the C version many other languages actually become somewhat interesting.
20:11:46 -!- MeerLin has left.
20:11:53 -!- `^_^v has quit (Quit: This computer has gone to sleep).
20:13:43 -!- `^_^v has joined.
20:15:47 <fizzie> I took a cursory look (read: checked the distribution of bytes), and did not figure anything out.
20:18:35 <int-e> try a more stupid approach
20:20:50 -!- shikhout has changed nick to shikhin.
20:22:58 <fizzie> It really is the stupid thing I thought of first but didn't want to bother verifying.
20:23:06 <fizzie> Well, that's the boringest.
20:23:34 <fizzie> I'm going to end up with a space in it, that doesn't sound nice.
20:23:48 <fizzie> (Or did you get rid of it?)
20:27:31 <fizzie> First I'll catch some free points.
20:27:39 <fizzie> But maybe I'll think about other languages.
20:27:58 <int-e> so you got rid of the space.
20:30:31 <fizzie> No, I mean, the dc solution.
20:30:38 <fizzie> I think you complained about a space in it, earlier.
20:31:16 <int-e> in the dc version.
20:38:45 -!- Bicyclidine has joined.
20:50:23 <int-e> fizzie: I just missed opportunities to replace spaces by sequences that don't alter the stack
21:08:08 -!- nys has joined.
21:18:05 -!- skarn has quit (Ping timeout: 265 seconds).
21:21:25 -!- idris-bot has quit (Quit: Terminated).
21:21:46 -!- Melvar has quit (Quit: WeeChat 1.0.1).
21:26:55 -!- Melvar has joined.
21:30:01 -!- Primal has joined.
21:30:26 <Primal> visuospatial syntax is funny
21:33:07 <HackEgo> [wiki] [[SELECT.]] http://esolangs.org/w/index.php?diff=40799&oldid=40145 * Por gammer * (+491) Changed behaviour of initialized constant to avoid certain problems, minor correction, added new "COLOR." command as suggested by [[User:Quintopia|Quintopia]], specified the use of principal branch for logarithms, changed spacing
21:33:13 -!- FreeFull has joined.
21:33:15 <blsqbot> Ain't nobody got time fo' dat!
21:35:23 -!- idris-bot has joined.
21:36:00 <HackEgo> [wiki] [[SELECT.]] M http://esolangs.org/w/index.php?diff=40800&oldid=40799 * Por gammer * (+21) /* Constants */
21:36:05 <nys> an estoric occasion
21:42:31 <Primal> int-e i used that [] thing you were using to fill spaces and its very efficient as i have found out
21:43:38 <fizzie> int-e: Oh, I didn't at all notice that you explained about the spaces already. Sorry for being so confusing.
21:45:17 <Primal> I just found out how to crash every program on my computer through my terminal by accident ;-;
21:48:15 -!- `^_^v has quit (Quit: This computer has gone to sleep).
21:48:18 <Primal> ok nvm that [] does not help me at all to confusing
21:48:50 <Primal> I'll just get confused when ever i use a variable thats the same as that so ill look for something else
21:49:30 -!- `^_^v has joined.
21:56:25 -!- skarn has joined.
21:56:32 <elliott> fizzie: Panda was some announced google algorithm change.
21:59:54 -!- Primal has quit (Quit: Page closed).
22:01:35 <zzo38> Might some data compress better if it is unhuffed at first before being huffed (possibly with back-referencing in between)?
22:03:47 -!- nys has quit (Ping timeout: 250 seconds).
22:04:30 <elliott> vanila: I don't know the specifics. just random ranking algorithm changes to fix $alleged_problem that they announced and caused SEO people anguish with
22:04:54 -!- Bicyclidine has quit (Ping timeout: 244 seconds).
22:05:06 <HackEgo> [wiki] [[SELECT.]] http://esolangs.org/w/index.php?diff=40801&oldid=40800 * Por gammer * (-47) /* Constants */
22:05:27 <vanila> I think back reference then huffman is better
22:07:21 <elliott> vanila: (um, assuming you were replying to me)
22:07:55 <vanila> now I want to implement compression
22:08:59 <zzo38> Back-referencing and then Huffman is the DEFLATE algorithm.
22:10:02 <HackEgo> [wiki] [[SELECT.]] http://esolangs.org/w/index.php?diff=40802&oldid=40801 * Por gammer * (-11) /* Commands */ minor correction
22:10:23 -!- Bicyclidine has joined.
22:11:07 -!- impomatic_ has quit (Read error: Connection reset by peer).
22:11:27 -!- impomatic_ has joined.
22:11:38 <vanila> im writing it in haskell
22:11:50 <vanila> did you see the zip quine
22:12:28 <elliott> I wrote an arithmetic coder in haskell once.
22:12:43 -!- Patashu has joined.
22:12:58 <vanila> arithmetic coding is so cool
22:12:59 <HackEgo> [wiki] [[SELECT.]] http://esolangs.org/w/index.php?diff=40803&oldid=40802 * Por gammer * (+83) /* Commands */ clarification
22:13:07 <vanila> im trying just backrefs because I did huffman in th past
22:13:13 <zzo38> I did see the ZIP quine, as well as a few related things
22:13:26 <zzo38> I did make Huffman in Haskell once too
22:14:59 <elliott> I've never done huffman, yeah. jumped in the deep end
22:15:23 -!- nys has joined.
22:20:11 <HackEgo> [wiki] [[SELECT.]] M http://esolangs.org/w/index.php?diff=40804&oldid=40803 * Por gammer * (+17) /* Commands */
22:22:02 <vanila> http://lpaste.net/113910
22:22:22 <vanila> building this data structure so find the backrefs
22:23:15 <elliott> I wonder what kind of lookup structure you ideally want for deflate
22:23:32 <elliott> I guess just a fixed-size array since there's usually a limit to backreferences.
22:24:04 <elliott> oh I see what you do there
22:25:05 <elliott> "moooovieiuuuviei" is a good string.
22:26:16 <int-e> more fun: deflate [Emit 'f', Emit 'o', Backref 1 6]
22:27:05 <HackEgo> [wiki] [[SELECT.]] M http://esolangs.org/w/index.php?diff=40805&oldid=40804 * Por gammer * (+0) /* Commands */
22:27:33 <elliott> you should allow a negative length going backwards, what could go wrong?
22:28:11 <int-e> It doesn't add much: Backref n (-k) ==> Backref (n+k) k
22:28:37 <int-e> (modulo off-by-one ambiguities in the interpretation of "going backwards")
22:29:42 <int-e> elliott: btw I think it's better to have the "idx" field relative to the current position.
22:30:55 <elliott> vanila: would something like this work
22:30:56 <elliott> backref idx len (i,r) | i >= idx + len = (i+len, ref++r) where r = take len . drop idx $ r
22:30:59 <elliott> run k = r where (_,r) = k (0,r)
22:31:01 <elliott> -- then run (emit 'f' >>> emit 'o' >>> emit 'o' >>> backref 0 3)
22:31:16 <elliott> int-e: I like how we're both talking to each other as if it's the other's program and not vanila's.
22:32:03 <elliott> int-e: I don't understand how it doesn't add much. I mean it would read len characters backwards from the starting offset
22:32:04 <int-e> "vanila" is not even in my terminal window anymore ...
22:32:16 <elliott> so you'd get free reverses.
22:32:22 <elliott> it's a ridiculous idea though.
22:32:38 <vanila> I wonder if i should use relative indices
22:32:47 <int-e> elliott: well you left that open to interpretation.
22:32:54 <elliott> vanila: it's more efficient to when you consider that you have to code the offsets/lengths
22:33:08 <elliott> since generally the structure is small-scale
22:33:09 <vanila> right now im just trying to design a good data structure to let me find backrefs when compressing
22:33:17 <elliott> and you don't want the integers to increase as the text gets longer
22:33:39 <elliott> (plus then you get to optimisations like discarding the backreference buffer after a while, etc.)
22:36:50 <int-e> vanila: I'd look at rolling hashes and suffix tries.
22:37:40 -!- nys has quit (Ping timeout: 244 seconds).
22:42:15 <int-e> http://cbloomrants.blogspot.co.at/2012/09/09-24-12-lz-string-matcher-decision-tree.html
22:43:06 <Sgeo> Saw an interesting point that Rust's safety isn't zero cost in the sense that since it constrains the way code can be written, code might need to be written in a suboptimal way that reflects as a runtime cost
22:44:57 <int-e> Hmm I forgot about suffix array.
22:45:32 -!- Bicyclidine has quit (Ping timeout: 255 seconds).
22:48:53 <vanila> should i represent binary numbers like 01101 as 011110111
22:49:45 <vanila> 0 is a 0, 11 is a 1, 10 is a stop
22:50:27 <vanila> otherwise i have to use a fixed length (limiting me to compress smaller files and wastig sometimes)
22:50:29 -!- nys has joined.
22:50:38 <elliott> vanila: you could use an um, what's it called
22:51:02 <Sgeo> What about PSOX LNUMS? >.>
22:51:21 <elliott> that's good for compression taking it as "n bytes back" I think
22:51:28 <elliott> since patterns tend to be closer than further away
22:53:55 -!- boily has joined.
22:54:39 <elliott> vanila: I think that generally nobody uses an *unbounded*-size structure for either compression or decompression though
22:54:54 <elliott> since using terabytes of RAM to compress large files isn't great
22:55:04 <elliott> and worse for decompression :p
22:55:32 <vanila> I thought I could implement decopressiogn by seeking around in the file and copying parts
22:55:36 <vanila> so it would use more disk than ram
22:55:57 <elliott> you'd definitely want an SSD at least I think :p
22:56:01 <vanila> I just didnt like to use something like 30 bit numbers to represnt indexes and length
23:04:30 -!- `^_^v has quit (Quit: This computer has gone to sleep).
23:06:02 <int-e> vanila: http://lpaste.net/113910#a113911
23:07:16 <vanila> I don't think my compressor will take advantage of that crazy stuff but it's really good
23:07:31 -!- Bicyclidine has joined.
23:07:43 <int-e> it gives you RLE "for free"
23:07:59 <vanila> that's a nifty insight
23:21:23 -!- adu has joined.
23:22:27 <lambdabot> CYUL 072300Z 31009G19KT 15SM SCT040 BKN052 03/M05 A2980 RMK SC4SC2 SLP093
23:22:34 <lambdabot> ENVA 072250Z 11010KT 070V140 CAVOK 06/M03 Q1001 RMK WIND 670FT 16025G38KT
23:22:49 <boily> yé.... colder than norway...
23:22:59 <elliott> int-e: although, it's a bit more expensive than traditional RLE
23:23:09 <elliott> since you have to encode len*repetitions rather than just repetitions
23:23:12 <int-e> elliott: I added quotes for a reason :)
23:23:51 <zzo38> What filename extension should be used for troff documents?
23:23:53 <elliott> order now and get RLE absolutely FREE*
23:23:58 <int-e> elliott: hmm? what do you mean by len*repetitions - the len is the number of repetitions. you can device a special short encoding for offset 1, if you like.
23:24:09 <elliott> int-e: oh, I assume you meant RLE of substrings
23:24:29 <elliott> for instance you could say (1*a, 3*bc, 1*d) is traditional RLE for abcbcbcd.
23:24:53 <elliott> here it'd have to be ("abc", 2 back for 6, "d")
23:25:27 <elliott> (1*a, 1000*bc, 1*d) vs. ("abc", 2 back for 2000, "d")
23:25:35 -!- Bicyclid1ne has joined.
23:25:45 <int-e> I see what you mean. Yes, that's right.
23:25:52 <elliott> (which is more expensive than it looks if your integer encoding grows more than decimal :p)
23:26:23 <elliott> (or if the string you're repeating is particularly long)
23:26:25 <int-e> otoh you can encode "bcbcbcb" as ("bc", 2 back for 5).
23:26:53 -!- nys has quit (Ping timeout: 256 seconds).
23:27:01 <elliott> good for encoding fungot messages
23:27:01 <fungot> elliott: " here!" cried bruno. " and what does it mean?' the frog muttered. ' vexes it, you know." he went on in a careless tone. ' to be called an fnord very!'
23:27:38 <elliott> didn't there used to be "<fungot> [...] that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can't" in the qdb.
23:27:38 <fungot> elliott: alice didn't want to begin another argument, so she said nothing.
23:27:39 <fungot> boily: ' i know what you'd like!' the knight said in an anxious tone: ' only she must help us to dress up, you dear old thing!"
23:27:40 <HackEgo> Sir Fungellot cannot be stopped by that sword alone!
23:28:41 -!- Bicyclidine has quit (Ping timeout: 264 seconds).
23:29:03 <vanila> I finished writing compressor
23:30:20 <vanila> it compresses its own source code by half
23:33:04 <int-e> `` perl -e '$,=$/; print grep /(.{100,})\1/,<>' < quotes
23:33:05 <HackEgo> <fungot> itidus21: hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey
23:34:55 <zzo38> I have also tried making compression for specific kind of game level data and stuff.
23:35:04 <int-e> (why is there no pcregrep...)
23:35:15 -!- mihow has quit (Quit: mihow).
23:35:57 <int-e> `` grep -e '(.{100,})\1' quotes
23:35:57 <HackEgo> grep: Invalid back reference
23:36:36 <int-e> `` grep -E '(.{100,})\1' quotes
23:36:38 <HackEgo> <fungot> itidus21: hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey
23:37:24 <boily> indeed, but E involves less headaches, I think.
23:39:24 <int-e> Phew. "The POSIX standard does not define backreferences."
23:39:36 <vanila> I can compress those heys
23:40:05 <int-e> vanila: hey, hey, that's good, hey!
23:40:24 <vanila> i posed the code if anyone wants to see just reload
23:40:37 <boily> I too can compress them, with a combine harvester.
23:40:38 <vanila> i used the most naive slow implementation
23:40:54 <zzo38> For example what I did for sokoban game is, first the grid is rotated and/or flipped in order to improve the compression; second it RLEs the raster of the walls, and then RLEs the raster of targets (skipping all walls in the raster), and then writes out the sequence of how many candidate cells there are for boxes before the actual position of each box (skipping walls, player, and places where it would get stuck), and then the resulting data is huff
23:41:02 <int-e> Hay is also easily compressible. (Why am I thinking of that?)
23:41:13 <zzo38> There probably are additional steps which could be made in order to improve it even more, though.
23:41:55 <vanila> zzo38, wont this sort of thing have diminishing returns if you compress a large number of levels?
23:42:11 <vanila> I mean, general compression scheme may be more important that something data specific?
23:42:18 <boily> int-e: re. combine harvester hth
23:42:49 <boily> (subliminally implanting bad puns into the Minds of people on #esoteric. muah ah ah.)
23:42:51 <zzo38> vanila: I do not entirely understand what you mean. Each level is compressed individually because they need to be accessed individually.
23:45:33 <int-e> vanila: preprocessing to better expose redundancies can be helpful no matter what the backend general compressor is. (As an example, executable compressors for x86 will often have a preprocessor that looks for call and jmp statements with relative addresses and make those absolute. Crazy, but it helps the compression.)
23:46:42 <int-e> But I'm not sure about things like RLE.
23:48:09 <elliott> int-e: well, unless your backend general compressor is, like, an artihmetic coder doing solomonoff induction. :p
23:48:35 <vanila> my compression "langauge" just has two instructions: Emit char and Backref pos, len
23:48:57 <vanila> could you create a more computationaly powerful language & compressor that takes advantage of it?
23:49:51 <zzo38> There is possibly kind of preprocessing that can be performed; for example ZPAQ allows it, and then the program to reverse the preprocessing is stored inside of the compressed file.
23:50:11 <zzo38> But it only allows a single program though, and not a pipeline of filters.
23:50:30 <elliott> not off the top of my head.
23:53:46 <int-e> Tricky. A lot of compressors can be expressed in terms of Emit/BackRef, but the actual compression happens by predicting the probabilities of those symbols (i.e. the encoding is not fixed, but chosen dynamically. Huffman is just the beginning.)
23:54:11 <Bicyclid1ne> my new FPS is compressed using solomonoff AIXI techniques, here it is for download: "g"
23:54:11 <zzo38> Yes, predictive compression; I have worked with predictive compressions too.
23:54:28 <elliott> Bicyclid1ne: that must be one really simple FPS
23:54:55 <elliott> reminds me of wolfenstein 4k
23:55:05 <elliott> that thing was so cool in 2004.
23:55:05 <vanila> http://www.reddit.com/r/ggggg
23:57:35 <vanila> any ideas for a more advanced VM to use for compression?
23:57:59 <vanila> not turing complete, something I can implement
23:58:02 <int-e> vanila: something simple: to help predictions (Huffman), there's often some code included to reset the symbol statistics. This can be useful when files with completely different characteristics are concatenated.
23:58:15 <elliott> vanila: I think zip/rar do fancier things
23:58:17 <vanila> oh that is a nice approach
23:58:19 <elliott> that let you do the quining
23:58:32 <vanila> I remember adaptive huffman, building and changing the tree as it goes
23:58:43 <vanila> adding resets to that could improve a lot..
23:58:48 <elliott> adaptive arithmetic coding is fun
23:58:48 <int-e> vanila: more generally you can switch between predictors. it's a matter of computational power to make good choices there.
23:59:21 -!- Bicyclid1ne has quit (Ping timeout: 258 seconds).