←2014-09-27 2014-09-28 2014-09-29→ ↑2014 ↑all
00:00:12 -!- shikhin has quit (Ping timeout: 244 seconds).
00:02:29 <zzo38> I can see how a universal set would do that, but I thought there is no such things as a universal set.
00:02:47 <GeekDude> A set cannot contain itself
00:03:12 <GeekDude> the consequences is that universal set would not be, by definition, a set
00:03:53 <Bike> http://en.wikipedia.org/wiki/Aczel%27s_anti-foundation_axiom
00:03:56 -!- dmstor has joined.
00:04:40 -!- dmstor has left.
00:06:06 <Bike> to be fair, i've only seen an attempt at actually using it in a really shitty biology paper.
00:07:04 <GeekDude> I don't deal with sets so much
00:07:16 <GeekDude> But I can do Array = [], Array[Array] := Array
00:07:30 <GeekDude> er, Array := [], Array[Array] := Array
00:07:34 <GeekDude> missed a : on the first one
00:07:48 <GeekDude> ( := is the assignment operator in the language I am using for this demonstration)
00:07:49 <idris-bot> Command "=" not permitted.
00:17:33 <Melvar> GeekDude: Not in the usual set theories, but this was a set theory with such a universal set. It was probably NFU.
00:19:09 <GeekDude> NFU?
00:19:44 <Melvar> Apparently this stands for “New Foundations with Urelements”. See https://en.wikipedia.org/wiki/New_Foundations .
00:20:46 -!- AndoDaan has quit (Ping timeout: 276 seconds).
00:21:00 <GeekDude> My brain is frying here
00:21:14 <GeekDude> I'm not too well versed in set theory
00:21:18 <GeekDude> of any kind
00:23:13 <Melvar> I brought it up because there was already talking about the fact that if you take a different foundation, different axioms, you can get very different properties from what you’re used to. So I decided to give another example I’d heard of.
00:31:08 <GeekDude> I need to write a simple PRNG, and am limited to only using integers between negative and positive 524287
00:32:13 <GeekDude> A linear congruential generator sounds like it could work
00:32:29 <GeekDude> with a small multiplier and increment
00:34:15 <Bike> yeah, that should be easy.
00:34:59 <GeekDude> 724 for the modulus, that's roughly the square root of the max int limit
00:35:24 <GeekDude> then perhaps something like 483 for the multiplier
00:35:35 <GeekDude> and 238 for the increment
00:35:41 <GeekDude> unless I'm completely misunderstanding the point
00:36:16 <GeekDude> I could stuff a larger range of values in there I guess
00:36:33 <Bike> hopefully you are not using this for crypto
00:36:37 <GeekDude> nooooo way
00:36:47 <Bike> who gives a damn then
00:36:58 <GeekDude> I need values that look vaguely random
00:37:15 <Bike> i had a school project last week where i got entropy by counting up until the user hit a button, #yolo
00:37:22 <GeekDude> lol
00:37:42 <GeekDude> no clock value you could mooch off?
00:39:15 <Bike> that's basically what i was doing. didn't feel adventurous enough to figure out how to get at the oscillators directly
00:39:59 <GeekDude> I've heard a last ditch effort for medium quality entropy is to ask the user to mash the keyboard
00:41:23 <pikhq> That's practically begging for bad entropy.
00:41:40 <GeekDude> lol
00:41:46 <GeekDude> you need high quality users
00:41:55 <GeekDude> and maybe a blindfold
00:41:56 <Bike> type without rhythm so as not to attract the worm.
00:42:01 <pikhq> Ah, "values that look vaguely random" though.
00:42:29 <pikhq> I hear the low bit of rdtsc is good enough.
00:43:42 <GeekDude> rdtsc?
00:44:01 <Bike> cycle counter on x86.
00:44:26 <GeekDude> I'm not even close to using x86 though
00:44:44 <pikhq> Well then, that's a terrible idea.
00:44:49 <GeekDude> I'm using BASIC on a 3ds
00:45:05 <pikhq> ... For a class project.
00:45:12 <zzo38> Is it SmileBASIC?
00:45:14 <pikhq> BASIC. On a 3DS.
00:45:16 <pikhq> Kay then.
00:45:26 <GeekDude> zzo38: yes it is
00:45:29 <Bike> the class project was me, geekdude might be doing some other shite
00:45:35 <zzo38> I know you can run SmileBASIC on 3DS, but it isn't really like BASIC; there are many differences too.
00:45:38 <pikhq> Bike: Oic
00:45:48 <GeekDude> ¯\_(ツ)_/¯ all the variants have their giant quirks
00:45:52 <Bike> me, i was doing a simon says game. security, of course, is paramount
00:46:20 <pikhq> Of course.
00:46:29 <pikhq> Someone might use it to choose passwords, or crypto keys.
00:46:46 <GeekDude> I'm doing fractal trees
00:46:53 <GeekDude> well, not really fractal
00:46:59 <Bike> there was actually that pretty funny deniable encryption thing, but it used a game more like DDR
00:47:01 <GeekDude> recursive trees
00:47:21 <pikhq> If it's self-similar it's fractal.
00:47:30 <Bike> ARM has a cycle counter register, looks like
00:47:37 <Bike> i imagine something is accessible on the 3ds
00:47:55 <pikhq> I just about guarantee that SmileBASIC does not expose that though.
00:47:55 <GeekDude> The branches resemble eachother in that they each have two sub branches (although at psuedo-random angles)
00:48:02 <Bike> so that's uh, four bytes of entropy, hooray
00:48:03 <GeekDude> pikhq: sadly not
00:48:18 <Bike> do like old dos basic, just write instructions into the memory space
00:48:23 <Bike> as previously mentioned, #yolo
00:48:38 <pikhq> Bike: If SmileBASIC works like that then some hackers are gonna be very happy.
00:48:57 <Bike> oh, this is an official product.
00:49:01 <GeekDude> 'tis
00:49:02 <pikhq> Yes.
00:49:12 <GeekDude> there's a new version coming out very soon to the US
00:49:14 <GeekDude> should be loads better
00:49:17 <Bike> i know some emulator people now so i just assume all game systems are cracked.
00:49:20 <GeekDude> and it will support 3d output
00:49:25 <pikhq> It's, uh, the BASIC variant in the PetiteComputer thing?
00:49:33 <GeekDude> yeah, Petit computer
00:49:44 <pikhq> Sadly not really. The DSi is only tenuously cracked, and the 3DS is utterly uncracked at this point.
00:49:50 <Bike> "Also, you can utilize data in your program from the built-in accelerometer, gyro-sensor, microphone and the circle pad. Get the most out of potential of Nintendo 3DS!"
00:49:53 <pikhq> *And* it's got fucking region locking!
00:49:56 <Bike> Sounds like entropy to meeeee
00:50:03 <GeekDude> Bike: that's in the new version though
00:50:06 <GeekDude> not released to the US yet
00:50:16 <pikhq> And the DSi and 3DS are region locked.
00:50:17 <Bike> i live on the edge
00:50:18 <GeekDude> I'm using the DSi version
00:50:21 <pikhq> Because Nintendo hates people.
00:50:25 <Bike> ..........of the US and europe
00:50:41 <zzo38> I would think it would be better to do differently, if instead it has a Forth interpreter built-in (rather than being external software), with a virtual machine that you can access the full address space of (you don't need to access address space outside of the VM)
00:50:50 <Bike> i wonder how good the accelerometer is. i tried my phone's and it was one hell of a hot mess
00:50:51 <zzo38> The original Nintendo DS is not region locked.
00:50:54 <GeekDude> pikhq: I think this is more of a SmileBoom thing, they have to translate everything into english, and make sure it still works
00:51:17 <pikhq> GeekDude: The thing is, though, if the platform weren't region locked you could at least *run* foreign software.
00:51:19 <GeekDude> then they plug their PRNG into a countdown timer
00:51:26 <pikhq> It might not be in a language you speak, but still.
00:51:40 <zzo38> I do have one foreign game card on my Nintendo DS
00:52:14 <Bike> http://smilebasic.com/en/image/ss-story-help-4.png wow, it's like i'm really on my TI
00:52:37 <GeekDude> I get "TIME$" and "DATE$" as my only two time sensitive inputs
00:52:46 <mauris> Bike: it looks like a shitty dos game
00:52:58 <mauris> that amazing font!!!
00:53:06 <zzo38> I still write games on DOS sometimes
00:53:18 <GeekDude> I'm doing this http://i.imgur.com/ryhFSIA.jpg
00:53:28 <GeekDude> but imagine green and brown, and more branches
00:53:42 <Bike> oh, it's like an l system.
00:53:46 <Bike> or... something.
00:53:47 <GeekDude> it actually is
00:53:52 <GeekDude> I've implemented an L system
00:54:05 <Bike> #nailed it
00:54:19 <GeekDude> though, two of the operations include "and add a random number"
00:54:31 <GeekDude> so YMMV as to reproducability
00:54:31 <Bike> nuthin wrong with a lil stochasticism.
00:55:29 <GeekDude> RAND = (433*RAND + 238) % 724
00:55:33 <GeekDude> woo, 'random'
00:55:46 <Bike> nsa gonna hack ur l system
00:56:23 <mauris> idgi. wouldn't that have a period of at most 724
00:56:37 <GeekDude> lol
00:56:52 <GeekDude> I said 'vaguely random'
00:57:05 <Bike> no, that's true, you might as well use the largest modulus you can.
00:57:13 <GeekDude> ¯\_(ツ)_/¯
00:57:23 <GeekDude> I'm not sure how stack overflow is handled
00:57:29 <GeekDude> it says values larger than the max limit are "ignored"
00:57:32 <Bike> stack??
00:57:41 <GeekDude> There is not stack
00:57:43 <GeekDude> no*
00:57:52 <GeekDude> er
00:57:54 <Bike> you just said stack overflow, did you mean numeric overflow.
00:57:55 <GeekDude> integer overflow*
00:58:12 <Bike> right, well, just find a prime around 500000 and call it good.
00:58:17 <GeekDude> My head is on slightly crooked
00:58:29 <GeekDude> "Ok google, closest prime to five hundred thousand"
00:58:41 <Bike> er... well i don't remember the requirements... they're on wikipedia.
00:58:58 <Bike> http://www.wolframalpha.com/input/?i=prime+near+50000 the future is great
00:59:49 * GeekDude needs to test integer overflow first
01:00:09 <GeekDude> ah
01:00:17 <GeekDude> seems to just print "overflow" and ignore the command
01:00:41 <GeekDude> I need to do two commands then I think
01:00:49 <GeekDude> one to multiply and the other to do other things
01:02:02 <GeekDude> RAND = 483 * RAND:RAND = (RAND + 238) % (LIMIT - 238)
01:02:07 <GeekDude> that would work I think
01:02:15 <GeekDude> : is the command delimiter thing
01:02:18 <GeekDude> like ; in C++
01:02:47 <mauris> what's LIMIT?
01:02:58 <GeekDude> the maximum integer size
01:03:06 <zzo38> In BASIC a colon can be used for multiple commands in one line; otherwise line breaks delimit multiple commands.
01:03:07 <GeekDude> in this case, roundabout 524287
01:03:25 <GeekDude> hey zzo38, I'm starting up a SmileBASIC channel if you wanna join
01:03:28 <zzo38> It is different than in C and C++, where a semicolon marks the end of a statement, regardless of line breaks
01:03:37 <GeekDude> well, a new SmileBASIC channel
01:03:43 <GeekDude> the other one was on EFNet and only had 2 people
01:03:45 <zzo38> GeekDude: I saw your invitation, and no I don't have any Nintendo 3DS
01:03:47 <GeekDude> me and <other person>
01:03:49 <GeekDude> aww
01:04:00 <GeekDude> Where'd you learn about SmileBASIC?
01:04:05 <GeekDude> or was that just google talking
01:05:10 <mauris> i think every random number you generate will be 1 (mod 3)
01:05:27 <zzo38> I like to program Famicom though
01:05:52 -!- AndoDaan has joined.
01:05:53 <zzo38> I did learn about SmileBASIC from a message on NESdev I think.
01:06:00 <zzo38> I do not remember.
01:06:22 <mauris> because 3 | 524287 - 238, and 3 | 483, so your formula mod 3 becomes just (0r + 1) = 1
01:07:15 <GeekDude> I'm not sure I'm following
01:09:24 <GeekDude> 256 * 1024 is the max integer limit
01:09:28 <GeekDude> er
01:09:31 <GeekDude> 512 * 1024
01:09:51 <GeekDude> so if I use a multiplier just below 512, I can use a max of just around 1024
01:11:32 -!- copumpkin has quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…).
01:13:12 <GeekDude> IF RAND<1024 THEN RAND=RAND*503
01:13:12 <GeekDude> RAND=(RAND+9203)%1024
01:13:22 <GeekDude> That should be overflow free, and users primes for both M and C
01:13:29 <GeekDude> er, a and c
01:13:34 <GeekDude> m is 1024
01:14:04 <GeekDude> multiples of two for m is standard
01:18:19 <GeekDude> this seems to be working fairly okay
01:18:58 <GeekDude> There is an actual PRNG on here, but I can't seed it
01:19:01 <zzo38> Famicom even has two game pads, microphone, keyboard, drawing tablet, light gun, tape recording, stereovision, dance mat, and more other things.
01:20:11 <GeekDude> What's up with the connector port on the bottom?
01:20:26 <GeekDude> at least, on the USA NES
01:20:36 <pikhq> The NES connector port was going to be used for the NES disk drive, but they never released that.
01:20:48 <zzo38> It connects also to the cartridge port and a few other things; it isn't very useful.
01:21:17 <zzo38> And not all versions of NES even have such a port anyways.
01:21:33 <pikhq> Perhaps the most useful thing to do with it would be to jumper the cartridge port lines and the sound lines, and then mod a Famicom adapter to put the sound lines on those pins.
01:22:11 <pikhq> (the Famicom had a sound line on the cartridge port; on the NES, this was moved to the expansion port. Unfortunately, Famicom games *actually used* the sound line.)
01:22:49 <GeekDude> Sound input, output, or both?
01:23:32 <pikhq> Output.
01:23:53 <GeekDude> and the famicom games used this for... ?
01:23:54 <zzo38> Actually, the Famicom has both.
01:23:57 <GeekDude> I can't think of a goo use case
01:24:01 <GeekDude> good*
01:24:10 <pikhq> Better synthesizers on the cartridge.
01:24:20 <pikhq> The FDS itself used this feature.
01:24:26 <GeekDude> If you decide the output, can't you just use local feedback?
01:24:26 <zzo38> The audio goes through the cartridge; usually it is just a wire or mixed with extra audio on the cartridge, and another pin goes that to TV set.
01:25:02 <pikhq> zzo38: Ah.
01:25:09 <pikhq> I thhought it was mixed in the console.
01:25:59 -!- tromp_ has joined.
01:26:12 <pikhq> But yeah. The Famicom sound hardware was somewhat limited, and having an extra synth on the cartridge bought you a lot of extra power.
01:26:50 <pikhq> Least it's not as limited as the poor 2600 was.
01:28:02 <GeekDude> I still think super famicom was where it was at
01:28:23 -!- tromp__ has quit (Ping timeout: 240 seconds).
01:28:27 <pikhq> It was overall a pretty awesome system. Crazy to emulate though.
01:29:11 <pikhq> Cartridges on there can bus master.
01:30:06 <pikhq> Emulating heterogenous multiprocessing like that is such a pain.
01:30:33 <Bike> opencl to the rescue
01:31:02 <zzo38> I don't like Super Famicom; I like Famicom.
01:31:14 <pikhq> Bike: Doesn't help that much here.
01:31:36 <pikhq> It's shared memory heterogenous multiprocessing.
01:32:04 <pikhq> This is about where most people start sobbing.
01:32:20 <zzo38> Famicom is faster than Commodore 64, too.
01:33:18 <pikhq> By about 700kHz, sure.
01:33:52 <zzo38> I am even writing a Z-machine interpreter on Famicom. I designed a custom mapper for this purpose; I have the description of it if you want it.
01:34:02 <pikhq> Spiffy.
01:34:22 <pikhq> That's almost as awesome as the SCUMM interpreter on Famicom.
01:34:24 <zzo38> Infocom never did, but they did it on Commodore 64. However, looking at their codes they did many things slow.
01:36:30 <zzo38> The mapper I use is pretty unusual (although it can be made using a few 74xx series): For one thing, the story file is stored on a separate ROM chip, which is bankswitched two bytes at a time, and the 64K RAM in the cartridge is bankswitched one byte at a time. For another, the registers overlap mirrors of the Famicom's internal RAM.
01:37:01 <GeekDude> pikhq: famicom SCUMM interpreter?
01:37:06 <GeekDude> how's the audio?
01:38:08 <pikhq> Only thing that uses it is the official port of Maniac Mansion, so a bit hard to judge. :)
01:38:27 <zzo38> (I don't know any other mapper with such small bank sizes, or with registers overlapping the mirrors of internal RAM.)
01:50:08 <GeekDude> hmm
01:50:18 <GeekDude> My random number generator, expectedly, is quite bad
01:50:26 <GeekDude> a small seed starts off with a small input
01:50:32 <GeekDude> er, small starting random values
02:14:01 -!- Sorella has quit (Ping timeout: 244 seconds).
02:30:25 <zzo38> Another possible random number generator is ARCFOUR, which is what SQLite uses.
02:32:50 <GeekDude> Finally found some good values for my random
02:34:09 <GeekDude> IF RAND < 515 THEN RAND = RAND * 1018
02:34:10 <GeekDude> RAND = (RAND + 1018) % 515
02:34:27 <GeekDude> gives pretty good results
02:34:40 <GeekDude> though...
02:34:46 <GeekDude> now that I think about it it's always less than 515
02:35:19 <GeekDude> actually, I think I have an overflow opportunity here too
02:35:25 <GeekDude> I might try choosing a slightly lower coprime pair
02:35:32 <GeekDude> or a slightly lower multiplier
02:36:10 -!- tromp__ has joined.
02:37:53 -!- SvenGek has quit (Quit: [Quit: [Quit: SvenGek] [Quit: SvenGek]]).
02:38:27 -!- tromp_ has quit (Ping timeout: 258 seconds).
02:40:15 <GeekDude> ah
02:40:18 <GeekDude> nope, I'm good
02:41:03 <GeekDude> 1018+514*1018 == 524270, which is less than 524287
02:44:23 <Sgeo> What's the feature known to be introduced in new NetHack/
02:46:14 -!- boily has joined.
03:02:07 -!- AndoDaan has left.
03:03:48 <mauris> Sgeo, you can offer the amulet to moloch now or something
03:12:28 <Sgeo> That can't be a win, can it
03:12:42 <Sgeo> What happens?
03:30:12 -!- coppro has quit (Ping timeout: 258 seconds).
03:30:55 -!- coppro has joined.
03:32:17 <zzo38> How can you win an infinite collection of envelopes (the first containing $1, the second having $2, the third having $3, the fourth having $4, etc) from "Let's Make a Deal"?
03:34:15 <GeekDude> you can't, there isn't an infinite number of envelopes to win
03:34:26 <GeekDude> or would that be an arent
03:34:28 <GeekDude> anyways, https://db.tt/NPeEG7ml
03:34:56 <boily> what's an arent?
03:34:57 <GeekDude> And the output, http://i.imgur.com/unpvLzV.jpg
03:35:53 <GeekDude> night all
03:36:09 <boily> GoodnightkDude!
03:36:11 <zzo38> Where would you keep all of them? In a black hole? Possibly it won't fit even in a black hole. Also, they would add up to a negative number.
03:36:47 <boily> wasn't there a "proof" out there about adding up all the positive integers equals -1/12?
03:36:50 <Bike> i'm not sure the world financial system is down with ramanujan summation.
03:36:57 <zzo38> Yes, I have seen that
03:37:03 <zzo38> That it add up to -1/12
03:37:25 <zzo38> Bike: But the world financial system is not infinite.
03:37:28 <Bike> ramanujan and... i think cesaro? give you -1/12
03:37:57 <Bike> oh, no it's not cesaro summable.
03:38:07 <shachaf> Isn't that the one where you take averages?
03:38:16 <shachaf> Yes.
03:38:27 -!- GeekDude has quit (Quit: {{{}}{{{}}{{}}}{{}}} (www.adiirc.com)).
03:38:33 <boily> I say all positive numbers are, on average, about five.
03:38:45 <boily> (trust me, I'm an engineer.)
03:38:48 <zzo38> I don't think so.
03:39:18 <Bike> you know what's weird? the erdos-kac theorem
03:39:54 -!- mauris has quit (Ping timeout: 246 seconds).
03:40:08 <Bike> wikipedia even says "randomly chosen large integer".
03:41:54 <boily> that is strangely fascinating.
03:42:17 <Bike> eh, any integer is gonna be about five anyway.
03:43:36 <boily> that's what I said, but zzo38 is being mean. *pfbfbfbfbt*
03:43:53 <Bike> c'mon zzo, they're an engineer! they know all about numbers. and five.
03:45:30 <Bike> me, i've never even seen a number in person, to be perfectly honest
03:45:45 <zzo38> Being an engineer is not quite good enough
03:46:08 <zzo38> It also mean, you need to be mathematician, and you also need to prove it, too.
03:46:29 <boily> IANAMAA.
03:47:13 <Bike> http://existentialcomics.com/comic/36
03:47:40 -!- AndoDaan has joined.
03:48:39 <boily> Bike: :D
03:51:30 <boily> 'night all!
03:51:45 -!- boily has quit (Quit: CHILLING CHICKEN).
04:01:25 <Sgeo> "P.S. I can't end the post without sharing my favorite self-reproducing program: the one-line shell script #!/bin/cat."
04:02:21 -!- copumpkin has joined.
04:03:31 <pikhq> Sgeo: Sadly, not a shell script and won't work on all POSIX systems.
04:03:45 <pikhq> However, this one will: cat "$0"
04:07:42 <Sgeo> Can't tell anything about a .zip file until the entire .zip file is loaded, but can quickly make changes
04:08:15 <Sgeo> Although, the latter seems irrelevent... a central header should be sufficient these days, right? Since central footer mostly makes using floppies easier?
04:10:21 <zzo38> Puting the list at the end may also make it easier to write through a pipe in some cases (although might be more difficult to read), and possibly for cheating at Day of Zeux.
04:11:50 <pikhq> The footer of the .zip file is strictly necessary.
04:12:19 <pikhq> That's the only part of the file that most anything looks at first.
04:12:42 <Sgeo> Day of Zeux?
04:13:04 <pikhq> Wait, .zip the Z-Machine format?
04:13:08 -!- Sorella has joined.
04:13:13 <Sgeo> I meant sufficient in the sense of, if .zip were redesigned with modern requirements in mind, would we still want to place the directory data in the footer
04:13:46 <zzo38> The extension .zip (sometimes also .dat) is also used for Z-machine files, although this is not recommended due to confusion with ZIP archive files.
04:13:47 <pikhq> Oh. Yes. We would not do so at all.
04:13:58 -!- Sorella has quit (Changing host).
04:13:58 -!- Sorella has joined.
04:14:14 <pikhq> As evidenced by how ZIP is nearly unique in that property. :)
04:15:15 * Sgeo goes to read the DEFLATE spec
04:15:45 <pikhq> DEFLATE is a moronic and insane file format with equal parts weird microoptimization and utterly pointless redundancy.
04:16:40 <pikhq> Frankly, I'm pretty sure Phil Katz was drunk when he made it.
04:17:11 <zzo38> Is ZPAQ better then?
04:18:18 <pikhq> From what I know, it's a bit absurd in the sheer flexibility of the format, but it sure seems better designed.
04:19:05 <Sgeo> o.O
04:19:28 <pikhq> (for those who don't know, ZPAQ is literally a compression format that specifies a VM for decompression algorithms.)
04:19:43 <Sgeo> Ooh that sounds fun
04:20:07 <Sgeo> I'm going to go read that instead even if no one uses it
04:20:46 <pikhq> Yep. It's not a common format, but it's certainly a unique design for a format.
04:21:35 <zzo38> I don't entirely like all the way that the VM in ZPAQ works; it requires more than one VM as well as a few other things. What I think would be good way, is the archive file is a memory image for a "Decompression Computer"; the decompression program then loads te memory image and emulates the Decompression Computer. The data on the output port is then treated as a tape archive.
04:22:56 <pikhq> But yeah. ZIP was devised by an alcoholic and it shows. :(
04:24:34 <zzo38> O, and I would then have Huffman-encoded instructions, and many of the instructions implement important parts of decompression algorithms and other high-level stuff too; it is a very CISC computer.
04:26:33 <zzo38> Also the output has to be made, it be set to go to a buffer or to stdout. (It could also have stdin, which is going to be used for encryption.)
04:48:02 -!- weissschloss has quit (Remote host closed the connection).
04:49:13 <Sgeo> pikhq: Looks like adding data can get corrupted if there's a hash collision in SHA1?
04:50:49 <Sgeo> ^^probably not relevent
04:52:10 -!- weissschloss has joined.
04:52:25 <Sgeo> Although SHA1 is disliked these days, isn't it?
04:53:24 <pikhq> Yes, there's theoretical exploits against it that weaken its collision resistance.
04:54:11 <zzo38> GNU C is getting a bit slow even when I didn't turn on the optimization
04:54:18 <pikhq> Though strictly speaking it's not attackable in practice yet to our knowledge, it's to the point that you should really move away from it *now* so you don't get caught with your pants down.
04:54:52 <zzo38> Is it necessary to tell it to turn off the optimizations?
04:55:12 <Sgeo> pikhq: is ZPAQ updatable to make dedup reliant on SHA-256 instead?
04:55:17 <pikhq> I do not know.
04:56:07 <Sgeo> :( at C++ API... so many lesser known programming languages can talk to C but not C++
04:57:27 <zzo38> Can you use it in C++ if you use a extern "C" block to load them?
04:58:44 <zzo38> "time gcc -g -O0 -o nanozil nanozil.c" says it is 15 seconds
05:00:00 <Sgeo> pikhq: so... this model stuff... would it make sense to, say, make a specialized Brainfuck model to compress more easily brainfuck code?
05:00:18 <Sgeo> Which presumably could then be decompressed with any compliant ZPAQ decompressor
05:00:50 <zzo38> Sgeo: Things like these are some of things I have wanted to do, too
05:04:09 <Sgeo> "To mark the end of the data, each decoded byte
05:04:10 <Sgeo> is preceded by a EOS (end of segment) bit, which is 1 after the last byte, coded with p1 very near 0. "
05:04:31 <Sgeo> So, is it possible that a model that makes a strong prediction but gets it wrong confuses the decompressor?
05:08:25 <zzo38> Clearly, the optimization I have implemented is broken.
05:11:03 <zzo38> This is the input file: http://sprunge.us/JIdV This is output with optimization turned off: http://sprunge.us/TPAM This is output with optimization turned on: http://sprunge.us/SXPa
05:13:07 -!- Guest15560 has quit (Ping timeout: 245 seconds).
05:17:05 <zzo38> I suppose it is to be expected; I didn't test it until now.
05:17:49 <zzo38> Can you help me to fix it?
05:23:39 <zzo38> I added #ifndef OMIT_OPTIMIZATIONS and -DOMIT_OPTIMIZATIONS for now; it causes GCC to run much faster now.
05:26:13 -!- AndoDaan_ has joined.
05:29:09 -!- AndoDaan has quit (Ping timeout: 260 seconds).
05:30:15 -!- conehead has joined.
05:39:45 -!- conehead has quit (Quit: Computer has gone to sleep).
05:51:58 -!- augur has quit (Quit: Leaving...).
05:55:15 -!- conehead has joined.
06:04:19 <Sgeo> I should stop being surprised when this Celtic music sometimes sounds Enya-esque
06:07:15 -!- shikhin has joined.
06:07:21 -!- shikhin has quit (Client Quit).
06:07:39 -!- shikhin has joined.
06:15:50 -!- augur has joined.
06:23:14 -!- password2 has joined.
06:27:33 -!- Patashu_ has joined.
06:27:34 -!- Patashu has quit (Disconnected by services).
06:27:39 -!- Patashu_ has changed nick to Patashu.
07:04:42 -!- Lymia has quit (Remote host closed the connection).
07:04:48 <zemhill> web.test: points 2.17, score 22.16, rank 14/47
07:05:52 <quintopia> is that a way to submit programs via the web
07:06:09 <AndoDaan_> Yeah, http://zem.fi/bfjoust/ at the bottom
07:06:21 <AndoDaan_> I just made a mistake submitting it for real.
07:07:10 <zemhill> web.test: points -46.00, score 0.00, rank 47/47 (-33)
07:08:16 -!- password2 has quit (Quit: Leaving).
07:08:51 <AndoDaan_> !bfjoust BeatYouMate >(-)*6>(+)*7>-(+)*17>(-)*12>(+)*8>(-)*7>(+)*8>(+)*3>[(-)*7[+]]>>[(+)*7[-]]>>([(+)*14[-]]>)*3([(-)*14[+]]>)*3[(-)*7[+]]>>[(+)*8[-]]>>([(+)*14[-]]>)*3[(-)*14[+]]>[(+)*14[-]]>[(-)*16[+]]>[(-)*7[+]]
07:08:51 <zemhill> AndoDaan_.BeatYouMate: points 2.38, score 22.40, rank 13/47
07:09:03 -!- password2 has joined.
07:11:46 <AndoDaan_> !bfjoust BeatYouMate <><
07:11:46 <zemhill> AndoDaan_.BeatYouMate: points -46.00, score 0.00, rank 47/47 (-34)
07:11:55 -!- AndoDaan_ has changed nick to AndoDaan.
07:11:59 <AndoDaan> !bfjoust BeatYouMate >(-)*6>(+)*7>-(+)*17>(-)*12>(+)*8>(-)*7>(+)*8>(+)*3>[(-)*7[+]]>>[(+)*7[-]]>>([(+)*14[-]]>)*3([(-)*14[+]]>)*3[(-)*7[+]]>>[(+)*8[-]]>>([(+)*14[-]]>)*3[(-)*14[+]]>[(+)*14[-]]>[(-)*16[+]]>[(-)*7[+]]
07:11:59 <zemhill> AndoDaan.BeatYouMate: points 2.95, score 22.58, rank 13/47 (+26)
07:13:24 <zemhill> web.DeadFish: points -46.00, score 0.00, rank 47/47
07:14:03 <password2> oh jousting
07:14:12 <AndoDaan> Indeed.
07:17:09 <quintopia> penile jousting
07:25:11 -!- Tod-Autojoined has changed nick to TodPunk.
07:30:59 -!- oerjan has quit (Quit: More like piscile).
07:48:50 -!- conehead has quit (Quit: Computer has gone to sleep).
07:54:53 <Sgeo> "Every compressor that can compress any input must also expand some of its input. However, the expansion never needs to be more than one symbol. Any compression algorithm can be modified by adding one bit to indicate that the rest of the data is stored uncompressed."
07:55:01 <Sgeo> I wonder how many people fail to consider that last part
08:29:21 <HackEgo> [wiki] [[Special:Log/newusers]] create * MaurineWooten * New user account
08:41:38 -!- drdanmaku has quit (Quit: Connection closed for inactivity).
08:48:36 -!- shikhin has quit (Quit: Lost terminal).
08:49:07 -!- shikhin has joined.
09:04:48 <quintopia> Sgeo: i would imagine that any compression algorithm worth its salt would include that logic, or something equivalent to it?
09:05:54 <b_jonas> quintopia: most compression algorithms include similar logic, but not exactly that strict, so they might expand strings by slightly more than one symbol
09:08:38 <quintopia> b_jonas: depends on how you define symbol :P but yeah, I'd expect them to at least expand no input by more than a constant
09:09:09 <b_jonas> quintopia: they don't usually do that, because they want a streamable compression (with very large buffer),
09:09:37 <b_jonas> so eg. if the first gigabyte of the input is uncompressible, they write that first gigabyte uncompressed with a length marker before reading the second gigabyte
09:09:44 <b_jonas> so you get expansion by a small constant factor
09:10:06 <b_jonas> they don't want to have to read the whole input to decide whether to use a constant long marker marking that all the data is uncompressible
09:10:29 <quintopia> b_jonas: not all compressed data needs to be streamed. for streamable data, i expect each encoded unit to expand by no more than a constant
09:11:19 <b_jonas> sure, not all, but all the compression methods for very long input are. there's methods for limited sized inputs, where obviously the input extends only by a constant for any encoder with finite state.
09:13:12 <b_jonas> in practice, the important part is that the compression doesn't expand the input by too much
09:14:36 <b_jonas> also note that some compressions, such as gzip (zlib with the gzip header), are defined as concatenatable: if you concatenate two compressed outputs, you can decompress them as the catenation of the two inputs. that already precludes the compressor being able to compress with just a constant marker at the end, because after such marker it couldn't find where you concatenate the next gzip file.
09:14:48 <b_jonas> presumably this was useful for casette tapes.
09:20:21 <quintopia> it doesn't preclude that each of the two parts that were concatenated has only a constant tag
09:26:16 <b_jonas> quintopia: it does
09:26:39 <b_jonas> quintopia: if there's a constant tag that quotes all the rest of the file, then you can't recognize where that file ends and the next compressed one starts
09:27:15 <b_jonas> quintopia: this works even if the form of the constant length quote tag varies as long as you can quote any input with a constant length prefix tag
09:41:33 -!- impomatic_ has joined.
09:56:55 -!- Phantom_Hoover has joined.
10:16:48 -!- Lymia has joined.
10:16:50 <Lymia> Opps!
10:29:46 <fizzie> IDSPISPOPD
11:06:56 -!- Sorella has quit (Ping timeout: 260 seconds).
11:21:55 -!- evalj has joined.
11:56:55 -!- shikhout has joined.
12:00:13 -!- shikhin has quit (Ping timeout: 260 seconds).
12:14:22 -!- password2 has quit (Ping timeout: 240 seconds).
12:20:47 -!- GeekDude has joined.
12:46:12 <quintopia> b_jonas: not if the constant tag encodes the length of the file
12:46:27 -!- AndoDaan_ has joined.
12:47:14 <b_jonas> quintopia: sure, but then it's no longer constant
12:47:27 <quintopia> b_jonas: with the qualification of course that "any length" is upper bounded by a constant
12:48:21 -!- AndoDaan has quit (Ping timeout: 246 seconds).
12:48:23 <b_jonas> yeah
12:51:28 -!- AndoDaan_ has quit (Read error: Connection reset by peer).
12:51:47 -!- AndoDaan has joined.
12:53:50 -!- boily has joined.
13:00:17 -!- Patashu has quit (Ping timeout: 245 seconds).
13:02:28 <fizzie> Best webdesign: phone number form can't be tabbed out or moved within with cursor keys (part of input validation, apparently) and the submit button fires a jQuery $.ajax request with only a "success" handler, which proceeds to fail (20-second timeout) and leave the page to a "please wait" + spinning thing mode.
13:04:08 <b_jonas> fizzie: yeah, typical
13:04:31 -!- FreeFull has quit (Quit: BBL).
13:07:37 -!- Sorella has joined.
13:08:29 -!- Sorella has quit (Changing host).
13:08:29 -!- Sorella has joined.
13:09:07 <GeekDude> lol
13:09:22 <GeekDude> Why would you need jquery to submit a form?
13:10:45 <HackEgo> [wiki] [[Special:Log/newusers]] create * MarylinYagan * New user account
13:11:18 <GeekDude> HackEgo: help
13:11:24 <GeekDude> pfft
13:14:46 <fizzie> It's one of those multi-step "wizard"-style forms, except it's just the one page and they move from step to step with scripts that do ajax requests and populate the later steps based on the results, then animate fancy side-swipe things to move to the next step.
13:15:01 <GeekDude> T_T
13:15:56 * GeekDude wonders if you could do it with a complicated css script that relies on the status of check boxes to hide or show other elements
13:20:37 <b_jonas> fizzie: stupid
13:20:50 <Taneb> GeekDude, my guess? "Yes, but don't"
13:20:57 <GeekDude> lol
13:21:02 <GeekDude> I want to do it for the lulz
13:21:05 <Taneb> Which, this being #esoteric and me being me, I'll give it a go this evening probably
13:21:13 <GeekDude> I don't know enough CSS though
13:22:36 <Taneb> GeekDude, can you send me a @tell to remind me? I'm heading out now
13:22:41 <GeekDude> uhh
13:22:44 <GeekDude> I can send youa mmemo
13:22:46 <GeekDude> memo*
13:22:49 <GeekDude> with memoserv
13:22:57 <Taneb> Or a tell with lambdabot
13:23:03 <Taneb> @tell GeekDude like this
13:23:04 <lambdabot> Consider it noted.
13:23:05 <GeekDude> I don't know these bots
13:23:17 <GeekDude> ah
13:23:18 <GeekDude> okay
13:23:55 <GeekDude> @tell Taneb GeekDude wonders if you could do it with a complicated css script that relies on the status of check boxes to hide or show other elements
13:23:55 <lambdabot> Consider it noted.
13:46:52 -!- Sorella has quit (Ping timeout: 245 seconds).
13:47:06 -!- AndoDaan_ has joined.
13:47:54 -!- AndoDaan has quit (Ping timeout: 244 seconds).
13:48:52 -!- AndoDaan_ has changed nick to AndoDaan.
13:50:19 <boily> GeekDude: the bots are our leaders.
13:50:23 <boily> @metar CYUL
13:50:24 <lambdabot> CYUL 281300Z 25010KT 15SM FEW240 18/15 A3013 RMK CI1 CI TR SLP202 DENSITY ALT 200FT
13:51:00 <GeekDude> I lead a guy on for a minute or two by copy and pasting into my IRC client. He though he had shell access on my bot
13:51:26 -!- paul2520 has joined.
13:52:47 -!- password2 has joined.
13:54:39 <GeekDude> hunter2?
13:56:37 -!- GeekDude has quit (Quit: {{{}}{{{}}{{}}}{{}}} (www.adiirc.com)).
13:58:41 -!- GeekDude has joined.
14:05:22 <HackEgo> [wiki] [[Object oriented thue]] http://esolangs.org/w/index.php?diff=40548&oldid=40515 * 4D enthusiast * (+139) /* stdio */ Simplified escpe codes, and made the description mroe explicit
14:09:29 -!- GeekDude has quit (Quit: {{{}}{{{}}{{}}}{{}}} (www.adiirc.com)).
14:11:12 <int-e> @metar LOWI
14:11:13 <lambdabot> LOWI 281350Z VRB03KT CAVOK 25/13 Q1024 NOSIG
14:13:13 -!- password2 has quit (Ping timeout: 244 seconds).
14:15:53 -!- GeekDude has joined.
14:22:14 <boily> @metar FLKK
14:22:15 <lambdabot> No result.
14:23:27 <boily> @metar FBSK
14:23:28 <lambdabot> FBSK 281400Z 04011KT CAVOK 33/00 Q1011 NOSIG
14:23:40 <boily> ah, there's at least one!
14:23:53 <boily> (also, 33/00? what the fungot is that?)
14:23:53 <fungot> boily: trouble with memory. i see things i never knew. my father secured me a place in an upper room of sabin's tavern near the docks along the southerly part of the strictly imaginative writing of the middle ages, and the
14:24:11 <boily> fungot: ah, trouble with water memory. I see.
14:24:11 <fungot> boily: millennially fnord substance and a very much smaller polyhedron of unknown colours and rapidly shifting surface angles seemed to take place. yet some quality about it disturbed me almost as poignantly as its noxious cause i beheld in the misty sky above the waves.
14:24:42 -!- sebbu has changed nick to sebb.
14:24:44 <boily> fungot: trouble with fnord substance pollution causes botswana's relative humidity to drop.
14:24:44 <fungot> boily: worst of all, the victim was a writer and painter wholly devoted to this form is the living writer fnord level, whose very brief episodes have lent themselves so readily to theatrical fnord in the form of charles le sorcier!'
14:24:59 <GeekDude> fungot: I can see clearly now the rain is gone
14:24:59 <fungot> GeekDude: then, in the great mausoleum he built near the church as in the macabre posthumous novel dr. grimshawe's secret. i looked down upon the calm placid face lined with sorrow, stood by as i shouted my demands to be laid within the tomb, near the gate of deeper slumber.
14:25:08 -!- sebb has changed nick to sebbu.
14:40:13 -!- SvenGek has joined.
14:41:38 -!- GeekDude has quit (Quit: {{{}}{{{}}{{}}}{{}}} (www.adiirc.com)).
14:43:22 -!- scounder_ has changed nick to scounder.
14:43:34 -!- scounder has quit (Changing host).
14:43:35 -!- scounder has joined.
14:46:55 <fizzie> @metar EFHK
14:46:56 <lambdabot> EFHK 281420Z 21014KT 9999 FEW045 BKN200 15/10 Q1009 NOSIG
14:47:23 <fizzie> Better than the 01/M01 from the beginning of the week, at least.
14:54:52 -!- boily has quit (Quit: APERIODIC CHICKEN).
14:58:10 -!- AndoDaan has quit (Ping timeout: 250 seconds).
14:59:06 -!- AndoDaan has joined.
15:14:44 -!- GeekDude has joined.
15:14:47 -!- evalj has quit (Ping timeout: 245 seconds).
15:27:15 -!- Phantom_Hoover has quit (Remote host closed the connection).
15:34:19 <HackEgo> [wiki] [[Mang]] N http://esolangs.org/w/index.php?oldid=40549 * 204.88.29.130 * (+1432) create page
15:46:01 -!- Sorella has joined.
15:46:49 -!- Sorella has quit (Changing host).
15:46:49 -!- Sorella has joined.
15:49:53 <Taneb> @messages-loud
15:49:53 <lambdabot> GeekDude said 2h 25m 58s ago: GeekDude wonders if you could do it with a complicated css script that relies on the status of check boxes to hide or show other elements
15:53:19 <GeekDude> hi
15:54:46 <myname> so... mang is multitape-brainfuck?
15:56:43 <fizzie> I thought it was a "2D program, single tape for data" from the description.
15:57:21 <fizzie> But it's a bit vague.
15:57:56 <fizzie> Then again, I don't know at all what 04/05 would be in that case.
15:59:17 <myname> there should be something like voting how interesting a language is with an ordered list of results
16:01:15 <GeekDude> piet is the most abstract language ever invented
16:01:33 <SvenGek> Is it turing complete?
16:01:33 <myname> don't think so
16:02:13 <GeekDude> It's a stack based language
16:02:29 <GeekDude> and you have the normal push, pop, add, mul, div, etc
16:04:22 <fizzie> There's an arbitrary-depth "roll" in Piet.
16:05:01 <GeekDude> So fun
16:05:06 <fizzie> For a bignum variant, I'd say odds are good.
16:05:42 <b_jonas> fizzie: arbitrary depth roll should be enough even without bignums I guess (as long as you have integers large enough to index the store)
16:10:00 <fizzie> "The maximum size of integers is notionally infinite, though implementations may implement a finite maximum integer size."
16:10:10 <fizzie> It's the usual vague esolang spec.
16:12:19 <b_jonas> yeah, well, do you expect to have computer implementations with truly unbounded integer size? a opposed to just really large integer size with several gigabytes of data?
16:13:43 <fizzie> No, but putting a sentence like that in is an open call to get implementations with, say, 32-bit integers.
16:14:31 <b_jonas> sure
16:14:56 <b_jonas> or 28 bit ones if the language has data types other the integers too
16:15:04 <b_jonas> so that it keeps some bits for tags
16:15:24 <b_jonas> or 8 bit integers on a brainfuck-based interpreter
16:16:06 <b_jonas> you probably can't go under 5 bits because you need character input and output
16:20:36 <fizzie> ^style fisher
16:20:36 <fungot> Selected style: fisher (Fisher corpus of transcribed telephone conversations)
16:20:37 <fizzie> fungot: What's up?
16:20:38 <fungot> fizzie: i live near a hospital now
16:20:58 <fizzie> fungot: What, have you moved out? I thought you were still in the next room there, and there's no hospital very near.
16:20:59 <fungot> fizzie: um i don't think it's such a waste of time and it's not so easy to talk about um
16:21:22 <fizzie> fungot: I didn't say it was. But you might've told me you've moved!
16:21:22 <fungot> fizzie: mm uh we had decided early on two months after that sigh i dunno i don't see too much
16:22:12 -!- AndoDaan has quit (Ping timeout: 246 seconds).
16:31:44 <SvenGek> Btw, there's no formal proof that piet is Turing complete
16:32:01 <SvenGek> according to esolangs.org (it is thought to be however)
16:32:38 <coppro> it's TC
16:33:01 <coppro> it has stack rotation and that's enough
16:39:05 <Taneb> SvenGek, someone wrote a brainfuck -> Piet compiler
16:39:52 <Taneb> http://www.matthias-ernst.eu/pietbrainfuck.html
16:42:51 <SvenGek> wow
16:43:16 <SvenGek> and that's the smoking gun then
16:44:05 <Bike> http://www.matthias-ernst.eu/pietbf/c8a92dcd9db101e8eed806df37b061a9.gif here's dbfi. mystery solved.
16:44:16 <Bike> can't say it looks very exciting.
16:46:23 <fizzie> The bottom bit is not too bad.
16:47:27 <SvenGek> Reminds me of this other project I saw recently
16:47:47 <SvenGek> Awis, which is a BF compiler written in BF
16:47:59 <fizzie> Don't you mean "awib"?
16:48:02 <SvenGek> yeah
16:48:10 <SvenGek> I'm still amazed by it
16:48:48 <Bike> fizzie: yeah it's a constant interpreter and the program's up top. so kind of a boring compiler...
16:48:49 <fizzie> The polyglot-ness was fun.
16:48:59 <SvenGek> Do you know of any other "big" projects written in esoteric languages?
16:49:07 <fizzie> fungot's biggish for a Befunge program.
16:49:07 <fungot> fizzie: it was also the same thing
16:49:18 <fizzie> ^source
16:49:18 <fungot> https://github.com/fis/fungot/blob/master/fungot.b98
16:49:24 <fizzie> It's not "big" in absolute terms, though.
16:49:51 <b_jonas> SvenGek: some of the ICFP and IOCCC stuff probably counts
16:50:15 <b_jonas> SvenGek: some ICFP contests, including this year's, define an esoteric language or two, and ask for a submission in that language
16:51:09 <SvenGek> Lol, that's pretty cool ^-^
16:56:17 <GeekDude> SvenGek: Does Minecraft's redstone count as a language? or are NOT gates discounted
16:57:07 <myname> is dwarf fortress considered an esolang? :p
16:58:28 <GeekDude> iirc someone implemented GoL in GoL
16:58:52 <Bike> game of life?
16:59:08 <GeekDude> yeah
16:59:11 <J_Arcane> There are turing complete GoL rulesets.
16:59:14 <Bike> https://www.youtube.com/watch?v=xP5-iIeKXE8
16:59:27 <fizzie> We have the http://esolangs.org/wiki/EsoInterpreters page if you're "into" that sort of stuff.
17:01:39 -!- FreeFull has joined.
17:03:05 <Bike> rule seven: it's easy to be turing complete
17:06:16 -!- FreeFull has quit (Ping timeout: 260 seconds).
17:07:03 <b_jonas> myname: yes
17:07:15 <b_jonas> myname: and so is Openttd
17:08:23 <GeekDude> pokemon yellow is turing complete
17:10:36 <pikhq> Accidental TC kinda just happens.
17:11:54 -!- GeekDude has quit (Quit: {{{}}{{{}}{{}}}{{}}} (www.adiirc.com)).
17:14:22 -!- FreeFull has joined.
17:16:02 <SvenGek> wat
17:18:22 -!- evalj has joined.
17:19:37 <Bike> pokemon yellow is a cheat, since it breaks out into the obviously TC processor.
17:19:51 <Bike> you might be able to do an ingame computer with inventory management. would be boring tho.
17:23:28 -!- augur has quit (Read error: Connection reset by peer).
17:23:46 -!- augur has joined.
17:26:27 <SvenGek> But... Magic: The Gathering TCness isn't a cheat
17:27:19 <Bike> sure
17:37:52 <quintopia> i wish my brain were turing-complete
17:37:56 <quintopia> that'd be pretty cool
17:39:32 -!- GeekDude has joined.
17:40:16 -!- AndoDaan has joined.
17:41:06 <GeekDude> fizzie: I think the piet BF interpreter needs to be added that list
17:45:26 <HackEgo> [wiki] [[EsoInterpreters]] http://esolangs.org/w/index.php?diff=40550&oldid=37503 * Fizzie * (+529) /* Main table */ Link the brainfuck interpreter in Piet.
17:45:40 <fizzie> There.
17:47:35 -!- copumpkin has quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…).
17:50:02 <quintopia> fizzie: are you trying to make a complete table, or ...well what's your purpose?
17:50:54 <fizzie> It's not my page. But I guess the table is there to encourage people to fill in the blanks.
17:52:52 -!- augur has quit (Read error: Connection reset by peer).
17:52:59 -!- augur has joined.
17:53:05 <b_jonas> what do the strikeouts mean?
17:53:09 <quintopia> i wonder what "part of cycle" means
17:53:37 <b_jonas> quintopia: part of a cycle means it is an edge of a directed cycle in the digraph of interpreters among languages,
17:53:58 <b_jonas> so it can probably be used indirectly with the interpreters on the other edges to self-interpret a language
17:54:13 <fizzie> I'm pretty sure there are some X's that could be parts of some cycles, though I haven't checked.
17:55:17 <HackEgo> [wiki] [[BF Joust]] http://esolangs.org/w/index.php?diff=40551&oldid=39371 * Fizzie * (+657) Update to reflect current reality.
17:55:36 <quintopia> b_jonas: that was my guess
17:56:09 <fizzie> And I think the strikeouts are broken links.
17:57:36 -!- shikhin has joined.
17:58:17 <fizzie> Well, maybe there are no more cycles in the table, as it stands.
17:59:00 <HackEgo> [wiki] [[EsoInterpreters]] http://esolangs.org/w/index.php?diff=40552&oldid=40550 * Quintopia * (+548) ais523's BCT->ResPlicate compiler (unsure whether to include oerjan's ResPairate-2 there or on its own line)
18:00:57 -!- shikhout has quit (Ping timeout: 260 seconds).
18:01:07 <b_jonas> I know this is not a really well-defined question, but has anyone ever written a language, probably a forth-like or smalltalk-like or lisp-like, where not only the parser but also the memory allocator (cons) and garbage collector is implemented mostly in that same language (possibly with a little help from some primitives used only in those functions)?
18:02:48 <Bike> I've heard T implemented its GC in itself.
18:02:57 <b_jonas> what's "T"?
18:02:58 <Bike> http://en.wikipedia.org/wiki/T_%28programming_language%29 that is
18:03:13 <Bike> Oh, and maru, duh.
18:03:33 <Bike> Probably most forths? I thought primitive memory was like half the point of forth.
18:03:57 <Bike> does forth even have gc...?
18:04:17 <b_jonas> Bike: the parser, sure, but I don't know whether they implement an allocator/gc in forth itself, or in machine code
18:05:10 <b_jonas> ok, thanks
18:05:39 <b_jonas> I was thinking on how possible this would be to do. I might try to implement one at some point.
18:05:49 <Bike> http://galileo.phys.virginia.edu/classes/551.jvn.fall01/primer.htm#memory yeah, i don't think forth even uses automatic memory managemetn.
18:06:20 <b_jonas> Bike: does it at least have a malloc and free?
18:06:35 <Bike> this is basically like malloc.
18:06:53 <Bike> though i'm wondering about freeing. malloc is a pretty fucking complex function, this just says it's incrementing a pointer...
18:07:07 <b_jonas> yep, if you don't want to free ever it's much easier
18:07:36 <b_jonas> (or if you have a compacting garbage collector, but then everything else other than allocation becomes more complicated)
18:07:38 <Bike> http://lars.nocrew.org/dpans/dpans14.htm#14.6.1.1605 well, there you go.
18:08:05 <Bike> it even has realloc.
18:08:08 <b_jonas> ah, that one has a malloc-free
18:08:10 <b_jonas> nice
18:09:16 <Bike> it's an optional module. looks like the "core" words are just a pointer to open memory, jesus.
18:09:21 <b_jonas> of course I might still try to implement something in an interpreter I make of course
18:09:24 <Bike> C is way more high level than forth, clearly
18:09:31 <fizzie> I think (not 100% on this) that the gforth memory allocation words just call C library's malloc/realloc/free.
18:09:43 <b_jonas> fizzie: might depend on which forth
18:09:49 <b_jonas> like, forth from which decade
18:09:56 <fizzie> That's why I said "gforth".
18:10:03 <Bike> yeah, this is ansi i'm looking at.
18:10:03 <b_jonas> ah, gforth
18:10:07 <fizzie> Oh, that's not the gforth manual.
18:10:12 <fizzie> It looked so similar. :p
18:10:13 <Bike> where the primitives for memory allocation seem to be += and sbrk :p
18:10:33 <b_jonas> and @ and ! yeah
18:10:35 <fizzie> Yes, that sounds right.
18:11:27 <Bike> gonna bring this up next time someone tells me about using c for being Close To The Metal
18:11:52 <fizzie> "create x 10 cells allot" and so on.
18:11:56 <Melvar> Bike: To the best of my understanding, in original-sort-of forth everything is a machine word. So it’s more like B than C I would think.
18:12:05 <Bike> yeah.
18:13:39 <Bike> as for smalltalk, in -80 you had a defined VM, so probably they wrote the basic stuff in something "low level" like that
18:15:09 <b_jonas> Bike: I'm not sure, but I think they wrote the gc in machine language for that. maybe not.
18:16:59 -!- drdanmaku has joined.
18:18:08 <elliott_> b_jonas: does C count? :p
18:18:21 <b_jonas> elliott_: yes, I guess it does
18:18:35 <b_jonas> I wanted more sort of a forth/smalltalk-like interpreter though
18:19:36 <elliott_> doing GC in the language itself is "easy" enough -- expose an allocator, expose the stack so you can walk it for roots, and have a way to trace the children of an object (lisp satisfies this with a finite set of types just by casing on them), and have a free function
18:19:43 <elliott_> and then wrap cons so it GCs if allocation fails, say
18:19:49 <J_Arcane> PLAI has a sublanguage/library for writing garbage collectors.
18:19:51 <fizzie> I'm sure you could find a Forth implementation of the allocate/free words.
18:20:13 <b_jonas> elliott_: yes, but you also have to make sure not to use more allocation during executing all that than you can clean up for,
18:20:31 <b_jonas> but at the same time not just call into machine language to do all the work.
18:20:59 <b_jonas> and the point is, you'd implement the free and malloc functions in the language too, using @ and ! and sbrk
18:21:05 <b_jonas> (and mmap and whatever)
18:21:30 <fizzie> Having a "low-level" subset language is prettu popular.
18:21:49 <elliott_> b_jonas: that applies in any language
18:21:56 <b_jonas> elliott_: sure
18:21:58 <elliott_> b_jonas: just preallocate a bunch of cons cells to use for the GC ahead of time :p
18:22:14 <elliott_> and yeah, you can do malloc and free too.
18:22:43 <elliott_> just more fiddly.
18:22:44 <b_jonas> I might try to implement something like this once
18:25:22 <mroman_> yay
18:25:24 <mroman_> I'm in the top 5
18:25:25 <mroman_> :D
18:26:04 <mroman_> but large_decoy seems to have lost plenty of points
18:26:05 <b_jonas> mroman_: in what? bfjoust?
18:26:10 <mroman_> b_jonas: yes
18:26:31 <b_jonas> great
18:26:37 <b_jonas> is ais the only one above you?
18:26:48 <mroman_> ais, quintopia und Lymia
18:26:52 <b_jonas> ugh
18:26:54 <b_jonas> that's worse
18:27:08 -!- tromp_ has joined.
18:27:14 <mroman_> why?
18:27:18 <mroman_> Because they're good?
18:27:35 <b_jonas> no, I mean now you can't just distract ais to get to the top
18:29:14 <mroman_> although on a lose-win basis Lymia isn't beter
18:29:49 -!- tromp__ has quit (Ping timeout: 260 seconds).
18:30:03 <mroman_> also Lymia.nyuroki doesn't stand a chance against cupnoodles :)
18:30:18 <mroman_> cupnoodles wins 38/40
18:31:28 <mroman_> nyuroki hangs on more decoys I guess
18:33:38 <mroman_> on short tapes it just looses because cupnoodles rushes straight to the flag
18:33:48 <mroman_> whereas nyuroki is busy setting up decoys
18:33:53 -!- tromp__ has joined.
18:34:10 <mroman_> nyuroki only wins on tape length 14
18:35:27 <mroman_> a zero cycle ] would btw make offset clears rather useless I guess
18:35:32 <mroman_> since you don't have to pay for it anymore
18:35:38 -!- tromp_ has quit (Ping timeout: 258 seconds).
18:36:31 <mroman_> ah right
18:36:43 <mroman_> I leave the tape at tape length 14
18:37:02 <mroman_> !bfjoust cupnoodles (>)*9([(+)*9[-]]>)*4(-<-)*4(<-<+)*4<-(>(+)*20>(-)*20)*4(>)*5(>[(+)*8[-].]>[(-)*8[+].])*-1
18:37:02 <zemhill> mroman_.cupnoodles: points 11.69, score 35.43, rank 5/47 (--)
18:37:07 <mroman_> !bfjoust cupnoodles (>)*9([(+)*9[-]]>)*4(-<-)*4(<-<+)*4<-(>(+)*20>(-)*20)*4(>)*4(>[(+)*8[-].]>[(-)*8[+].])*-1
18:37:09 <zemhill> mroman_.cupnoodles: points 10.24, score 33.30, rank 5/47 (--)
18:37:14 <mroman_> !bfjoust cupnoodles (>)*9([(+)*9[-]]>)*4(-<-)*4(<-<+)*4<-(>(+)*20>(-)*20)*4(>)*6(>[(+)*8[-].]>[(-)*8[+].])*-1
18:37:14 <zemhill> mroman_.cupnoodles: points 12.36, score 36.59, rank 4/47 (+1)
18:37:20 <mroman_> !bfjoust cupnoodles (>)*9([(+)*9[-]]>)*4(-<-)*4(<-<+)*4<-(>(+)*20>(-)*20)*4(>)*7(>[(+)*8[-].]>[(-)*8[+].])*-1
18:37:21 <zemhill> mroman_.cupnoodles: points 10.81, score 34.25, rank 5/47 (-1)
18:37:25 <mroman_> !bfjoust cupnoodles (>)*9([(+)*9[-]]>)*4(-<-)*4(<-<+)*4<-(>(+)*20>(-)*20)*4(>)*6(>[(+)*8[-].]>[(-)*8[+].])*-1
18:37:25 <zemhill> mroman_.cupnoodles: points 12.36, score 36.59, rank 4/47 (+1)
18:37:59 <mroman_> I guess growth can suck it
18:38:21 -!- idris-bot has quit (Quit: Terminated).
18:38:48 <mroman_> !bfjoust cupnoodles (>)*9([(+)*9[-]]>)*4(-<-)*4(<-<+)*4<-(>(+)*20>(-)*20)*4(>)*6(>[(+)*9[-].]>[(-)*9[+].])*-1
18:38:49 <zemhill> mroman_.cupnoodles: points 11.71, score 35.53, rank 4/47 (--)
18:38:56 <mroman_> !bfjoust cupnoodles (>)*9([(+)*9[-]]>)*4(-<-)*4(<-<+)*4<-(>(+)*20>(-)*20)*4(>)*6(>[(+)*7[-].]>[(-)*7[+].])*-1
18:38:57 <zemhill> mroman_.cupnoodles: points 11.60, score 35.47, rank 4/47 (--)
18:39:04 -!- Melvar has quit (Quit: WeeChat 0.4.3).
18:39:09 <mroman_> !bfjoust cupnoodles (>)*9([(+)*9[-]]>)*5(-<-)*4(<-<+)*4<-(>(+)*20>(-)*20)*4(>)*6(>[(+)*8[-].]>[(-)*8[+].])*-1
18:39:10 <zemhill> mroman_.cupnoodles: points 11.10, score 34.49, rank 5/47 (-1)
18:39:15 <mroman_> !bfjoust cupnoodles (>)*9([(+)*9[-]]>)*5(-<-)*4(<-<+)*4<-(>(+)*20>(-)*20)*3(>)*6(>[(+)*8[-].]>[(-)*8[+].])*-1
18:39:16 <zemhill> mroman_.cupnoodles: points 8.43, score 30.32, rank 7/47 (-2)
18:39:20 <mroman_> !bfjoust cupnoodles (>)*9([(+)*9[-]]>)*5(-<-)*4(<-<+)*4<-(>(+)*20>(-)*20)*4(>)*6(>[(+)*8[-].]>[(-)*8[+].])*-1
18:39:20 <zemhill> mroman_.cupnoodles: points 11.10, score 34.49, rank 5/47 (+2)
18:39:28 <mroman_> !bfjoust cupnoodles (>)*9([(+)*9[-]]>)*4(-<-)*4(<-<+)*4<-(>(+)*20>(-)*20)*4(>)*6(>[(+)*8[-].]>[(-)*8[+].])*-1
18:39:29 <zemhill> mroman_.cupnoodles: points 12.36, score 36.59, rank 4/47 (+1)
18:39:37 <mroman_> !bfjoust cupnoodles (>)*9([(+)*9[-]]>)*4(-<-)*4(<--<+)*4<-(>(+)*20>(-)*20)*4(>)*6(>[(+)*8[-].]>[(-)*8[+].])*-1
18:39:38 <zemhill> mroman_.cupnoodles: points 12.07, score 36.12, rank 4/47 (--)
18:39:47 <mroman_> !bfjoust cupnoodles (>)*9([(+)*9[-]]>)*4(-<-)*4(<-<+)*4<-(>(+)*21>(-)*20)*4(>)*6(>[(+)*8[-].]>[(-)*8[+].])*-1
18:39:48 <zemhill> mroman_.cupnoodles: points 12.17, score 36.36, rank 4/47 (--)
18:39:53 <mroman_> !bfjoust cupnoodles (>)*9([(+)*9[-]]>)*4(-<-)*4(<-<+)*4<-(>(+)*21>(-)*21)*4(>)*6(>[(+)*8[-].]>[(-)*8[+].])*-1
18:39:54 <zemhill> mroman_.cupnoodles: points 11.95, score 35.93, rank 4/47 (--)
18:39:58 <mroman_> !bfjoust cupnoodles (>)*9([(+)*9[-]]>)*4(-<-)*4(<-<+)*4<-(>(+)*21>(-)*20)*4(>)*6(>[(+)*8[-].]>[(-)*8[+].])*-1
18:39:59 <zemhill> mroman_.cupnoodles: points 12.17, score 36.36, rank 4/47 (--)
18:40:13 <mroman_> !bfjoust cupnoodles (>)*9([(+)*9[-]]>)*4(-<-)*4(<-<+)*4<-(>(+)*19>(-)*19)*4(>)*6(>[(+)*8[-].]>[(-)*8[+].])*-1
18:40:13 <zemhill> mroman_.cupnoodles: points 11.10, score 34.68, rank 5/47 (-1)
18:40:22 <mroman_> !bfjoust cupnoodles (>)*9([(+)*9[-]]>)*4(-<-)*4(<-<+)*4<-(>(+)*20>(-)*20)*4(>)*6(>[(+)*8[-].]>[(-)*8[+].])*-1
18:40:22 <zemhill> mroman_.cupnoodles: points 12.36, score 36.59, rank 4/47 (+1)
18:42:09 -!- conehead has joined.
18:42:15 -!- conehead has quit (Changing host).
18:42:15 -!- conehead has joined.
18:43:24 -!- Melvar has joined.
18:45:38 -!- Sprocklem has joined.
18:47:36 -!- idris-bot has joined.
18:58:00 <HackEgo> [wiki] [[BF Joust]] http://esolangs.org/w/index.php?diff=40553&oldid=40551 * Quintopia * (-8) changed the tenses to read like history
19:04:57 <HackEgo> [wiki] [[BF Joust strategies]] http://esolangs.org/w/index.php?diff=40554&oldid=40529 * Quintopia * (+220) /* 2014 */ NPOV to match the style of the rest of the page.
19:09:07 <mroman_> !bfjoust cupnoodles (>)*9([(+)*4[-]]>)*4(-<-)*4(<-<+)*4<-(>(+)*20>(-)*20)*4(>)*6(>[(+)*8[-].]>[(-)*8[+].])*-1
19:09:08 <zemhill> mroman_.cupnoodles: points 12.29, score 36.31, rank 4/47 (--)
19:09:11 <fizzie> "title: THE JAVELINISTS" "artist: A MINDLESS ROBOT DRONE" heh, I wonder what set these.
19:09:16 <mroman_> !bfjoust cupnoodles (>)*9([(+)*8[-]]>)*4(-<-)*4(<-<+)*4<-(>(+)*20>(-)*20)*4(>)*6(>[(+)*8[-].]>[(-)*8[+].])*-1
19:09:16 <zemhill> mroman_.cupnoodles: points 12.21, score 36.31, rank 4/47 (--)
19:09:23 <mroman_> !bfjoust cupnoodles (>)*9([(+)*10[-]]>)*4(-<-)*4(<-<+)*4<-(>(+)*20>(-)*20)*4(>)*6(>[(+)*8[-].]>[(-)*8[+].])*-1
19:09:24 <zemhill> mroman_.cupnoodles: points 12.17, score 36.26, rank 4/47 (--)
19:09:25 <fizzie> Those were in a .mp3 file that contained a nonsense Finnish sentence, synthesized.
19:09:42 <mroman_> !bfjoust cupnoodles (>)*9([(+)*9[-].]>)*4(-<-)*4(<-<+)*4<-(>(+)*20>(-)*20)*4(>)*6(>[(+)*8[-].]>[(-)*8[+].])*-1
19:09:42 <zemhill> mroman_.cupnoodles: points 12.00, score 36.03, rank 4/47 (--)
19:09:49 <mroman_> !bfjoust cupnoodles (>)*9([(+)*9[-.]]>)*4(-<-)*4(<-<+)*4<-(>(+)*20>(-)*20)*4(>)*6(>[(+)*8[-].]>[(-)*8[+].])*-1
19:09:50 <zemhill> mroman_.cupnoodles: points 10.31, score 33.67, rank 5/47 (-1)
19:10:09 <mroman_> !bfjoust cupnoodles (>)*9([(+)*9[-]]>)*4(-<-)*4(<-<+)*4<-(>(+)*20>(-)*20)*4(>)*6(>[(+)*8[-].]>[(-)*8[+]])*-1
19:10:09 <zemhill> mroman_.cupnoodles: points 12.17, score 36.17, rank 4/47 (+1)
19:10:18 <mroman_> !bfjoust cupnoodles (>)*9([(+)*8[-]]>)*4(-<-)*4(<-<+)*4<-(>(+)*20>(-)*20)*4(>)*6(>[(+)*8[-].]>[(-)*8[+].])*-1
19:10:19 <zemhill> mroman_.cupnoodles: points 12.21, score 36.31, rank 4/47 (--)
19:10:25 <mroman_> !bfjoust cupnoodles (>)*9([(+)*8[-]]>)*4(-<-)*4(<-<+)*4<-(>(+)*20>(-)*20)*4(>)*6(>[(+)*8[-]]>[(-)*8[+]])*-1
19:10:26 <zemhill> mroman_.cupnoodles: points 11.67, score 35.23, rank 5/47 (-1)
19:10:29 <mroman_> !bfjoust cupnoodles (>)*9([(+)*8[-]]>)*4(-<-)*4(<-<+)*4<-(>(+)*20>(-)*20)*4(>)*6(>[(+)*8[-]]>[(-)*8[+]])*-1
19:10:29 <zemhill> mroman_.cupnoodles: points 11.67, score 35.23, rank 5/47 (--)
19:10:32 <mroman_> !bfjoust cupnoodles (>)*9([(+)*8[-]]>)*4(-<-)*4(<-<+)*4<-(>(+)*20>(-)*20)*4(>)*6(>[(+)*8[-]]>[(-)*8[+].])*-1
19:10:33 <zemhill> mroman_.cupnoodles: points 12.12, score 36.04, rank 4/47 (+1)
19:10:36 <mroman_> !bfjoust cupnoodles (>)*9([(+)*8[-]]>)*4(-<-)*4(<-<+)*4<-(>(+)*20>(-)*20)*4(>)*6(>[(+)*8[-].]>[(-)*8[+].])*-1
19:10:36 <zemhill> mroman_.cupnoodles: points 12.21, score 36.31, rank 4/47 (--)
19:10:58 <mroman_> !bfjoust cupnoodles (>)*9([(-)*8[+]]>)*4(-<-)*4(<-<+)*4<-(>(+)*20>(-)*20)*4(>)*6(>[(+)*8[-].]>[(-)*8[+].])*-1
19:10:58 <zemhill> mroman_.cupnoodles: points 12.17, score 36.21, rank 4/47 (--)
19:11:21 <mroman_> !bfjoust cupnoodles (>)*9([(+)*8[-]]>[(-)*8[+]]>)*2(-<-)*4(<-<+)*4<-(>(+)*20>(-)*20)*4(>)*6(>[(+)*8[-].]>[(-)*8[+].])*-1
19:11:21 <zemhill> mroman_.cupnoodles: points 12.07, score 35.98, rank 4/47 (--)
19:11:24 <mroman_> !bfjoust cupnoodles (>)*9([(-)*8[+]]>)*4(-<-)*4(<-<+)*4<-(>(+)*20>(-)*20)*4(>)*6(>[(+)*8[-].]>[(-)*8[+].])*-1
19:11:24 <zemhill> mroman_.cupnoodles: points 12.17, score 36.21, rank 4/47 (--)
19:11:27 <mroman_> damnit it
19:11:52 <mroman_> !bfjoust cupnoodles (>)*9([(-)*8[+]]>)*4(-<-)*4(<-<+)*4(>(+)*20>(-)*20)*4(>)*6(>[(+)*8[-].]>[(-)*8[+].])*-1
19:11:53 <zemhill> mroman_.cupnoodles: points 10.36, score 33.62, rank 5/47 (-1)
19:12:01 <fizzie> I cringe while thinking of the poor repository, every time I see these walls of parameter tunings. (Not that it's probably any sort of real problem.)
19:12:10 <mroman_> !bfjoust cupnoodles (>)*9([(-)*8[+]]>)*4(-<-)*4(<-<+)*4<--(>(+)*20>(-)*20)*4(>)*6(>[(+)*8[-].]>[(-)*8[+].])*-1
19:12:11 <zemhill> mroman_.cupnoodles: points 12.29, score 36.46, rank 4/47 (+1)
19:12:19 <mroman_> !bfjoust cupnoodles (>)*9([(-)*8[+]]>)*4(-<-)*4(<-<+)*4<---(>(+)*20>(-)*20)*4(>)*6(>[(+)*8[-].]>[(-)*8[+].])*-1
19:12:19 <zemhill> mroman_.cupnoodles: points 12.26, score 36.46, rank 4/47 (--)
19:12:25 <mroman_> !bfjoust cupnoodles (>)*9([(-)*8[+]]>)*4(-<-)*4(<-<+)*4<----(>(+)*20>(-)*20)*4(>)*6(>[(+)*8[-].]>[(-)*8[+].])*-1
19:12:25 <zemhill> mroman_.cupnoodles: points 11.69, score 35.39, rank 5/47 (-1)
19:12:31 <mroman_> !bfjoust cupnoodles (>)*9([(-)*8[+]]>)*4(-<-)*4(<-<+)*4<--(>(+)*20>(-)*20)*4(>)*6(>[(+)*8[-].]>[(-)*8[+].])*-1
19:12:31 <zemhill> mroman_.cupnoodles: points 12.29, score 36.46, rank 4/47 (+1)
19:12:34 <quintopia> fizzie: face it. people just don't seem to care about !bftest
19:12:43 <mroman_> !bftest
19:12:43 <zemhill> mroman_: "!bftest progname code". See http://zem.fi/bfjoust/ for documentation.
19:12:43 <fizzie> That seems to be the case.
19:12:48 <mroman_> oh
19:12:57 <mroman_> !bftest cupnoodles (>)*9([(-)*8[+]]>)*4(-<-)*4(<-<+)*4<--(>(+)*20>(-)*20)*4(>)*6(>[(+)*8[-].]>[(-)*8[+].])*-1
19:12:57 <zemhill> mroman_.cupnoodles: points 12.29, score 36.46, rank 4/47 (--)
19:13:09 <mroman_> !bftest cupnoodles (>)*9([(-)*8[+]]>)*4(-<-)*4(<-<+)*4<--(>(+)*20>(-)*20)*4(>)*6(>[(+)*7[-].]>[(-)*9[+].])*-1
19:13:09 <zemhill> mroman_.cupnoodles: points 11.93, score 35.86, rank 4/47 (--)
19:13:10 -!- AnotherTest has joined.
19:13:17 <mroman_> !bftest cupnoodles (>)*9([(-)*8[+]]>)*4(-<-)*4(<-<+)*4<--(>(+)*20>(-)*20)*4(>)*6(>[(+)*9[-].]>[(-)*7[+].])*-1
19:13:17 <zemhill> mroman_.cupnoodles: points 11.86, score 35.66, rank 4/47 (--)
19:13:21 <mroman_> ok
19:13:33 <fizzie> It's exactly the same, except it doesn't change anything permanently, so if you find something good, you'll still want to submit it for reals.
19:13:40 <HackEgo> [wiki] [[Special:Log/newusers]] create * JanetteFreud * New user account
19:13:46 <mroman_> what...
19:13:49 <quintopia> fuck. spam bot.
19:13:52 <mroman_> It does not look BF Jousty enough
19:15:13 <elliott_> fizzie: it could git commit --amend if the last !bfjoust was for that program and in the last minute or two
19:15:52 <fizzie> I guess. Though it's pushed immediately to the web, and I'm sure lots of people keep cloning/pulling the repository every second.
19:17:27 <fizzie> I doubt it's really any sort of performance problem for these oneliners. Was just thinking that only recording somehow "significant" changes would be a boon for BF Joust archeologists that analyze it in the 3000s.
19:18:09 <quintopia> they're smart enough to figure it out, i bet
19:19:56 <mroman_> yeah
19:19:59 <mroman_> It's the 3000s alright.
19:20:06 <mroman_> Give the future some credit.
19:20:35 <J_Arcane> Hmm. Cheap out on a Palauan domain or just buy the bloody .com and blow half my discretionary ... ?
19:21:11 <quintopia> really?
19:21:19 <quintopia> domains aren't that expensive
19:21:20 * J_Arcane is being somewhat facetious.
19:21:41 <J_Arcane> Also, I only budget about $20 for a silly project like this, so I'm not necessarily exaggerating.
19:24:28 <fizzie> Are Palauan domains cheaper, then?
19:24:47 <quintopia> what project?
19:25:57 <mroman_> !bfjoust cupnoodles (>)*9([(-)*8[+]]+>)*4(<)*4(<-<+)*4<--(>(+)*20>(-)*20)*4(>)*6(>[(+)*8[-].]>[(-)*8[+].])*-1
19:25:58 <zemhill> mroman_.cupnoodles: points 12.45, score 36.25, rank 3/47 (+1)
19:26:40 <mroman_> now I only have ais and lymia before me
19:26:48 <J_Arcane> fizzie: €3.13 a year on Namecheap.
19:27:41 <mroman_> fizzie: How comes that if I sumbit my rank 3 program
19:27:45 <mroman_> it only gets me to rank 6?
19:28:00 <mroman_> (submit as test)
19:28:02 <mroman_> (not for real)
19:28:18 <mroman_> !bfjoust cupnoodles (>)*9([(-)*8[+]]++>)*4(<)*4(<-<+)*4<--(>(+)*20>(-)*20)*4(>)*6(>[(+)*8[-].]>[(-)*8[+].])*-1
19:28:19 <zemhill> mroman_.cupnoodles: points 11.50, score 34.94, rank 4/47 (-1)
19:28:25 <mroman_> !bfjoust cupnoodles (>)*9([(-)*8[+]]+>)*4(<)*4(<-<+)*4<--(>(+)*20>(-)*20)*4(>)*6(>[(+)*8[-].]>[(-)*8[+].])*-1
19:28:25 <zemhill> mroman_.cupnoodles: points 12.45, score 36.30, rank 3/47 (+1)
19:29:02 <mroman_> !bfjoust cupnoodles (>)*9([(-)*8[+].]+>)*4(<)*4(<-<+)*4<--(>(+)*20>(-)*20)*4(>)*6(>[(+)*8[-].]>[(-)*8[+].])*-1
19:29:02 <zemhill> mroman_.cupnoodles: points 12.60, score 36.59, rank 3/47 (--)
19:29:18 <fizzie> If you submit as a test over the web, it will be replacing a different program than if you do it over IRC (since the name is different), which means the competitors are not the same.
19:29:22 <mroman_> !bfjoust cupnoodles (>)*9([(-)*8[+].]+>)*4(<)*8<--(>(+)*20>(-)*20)*4(>)*6(>[(+)*8[-].]>[(-)*8[+].])*-1
19:29:22 <zemhill> mroman_.cupnoodles: points 3.88, score 24.95, rank 11/47 (-8)
19:29:26 <mroman_> !bfjoust cupnoodles (>)*9([(-)*8[+].]+>)*4(<)*4(<-<+)*4<--(>(+)*20>(-)*20)*4(>)*6(>[(+)*8[-].]>[(-)*8[+].])*-1
19:29:26 <zemhill> mroman_.cupnoodles: points 12.60, score 36.56, rank 3/47 (+8)
19:30:01 <mroman_> !bftest cupnoodles (>)*9([(-)*8[+].]+>)*4(<)*4(<-<+)*4<--(>(+)*20>(-)*20)*4(>)*6(>[(+)*8[-].]>[(-)*8[+].])*-1
19:30:01 <zemhill> mroman_.cupnoodles: points 12.60, score 36.58, rank 3/47 (--)
19:30:05 <mroman_> !bftest cupnoodles (>)*9([(-)*8[+].]+>)*4(<)*4(<-<+)*4<--(>(+)*20>(-)*20)*4(>)*5(>[(+)*8[-].]>[(-)*8[+].])*-1
19:30:05 <zemhill> mroman_.cupnoodles: points 11.50, score 34.69, rank 5/47 (-2)
19:30:09 <mroman_> !bftest cupnoodles (>)*9([(-)*8[+].]+>)*4(<)*4(<-<+)*4<--(>(+)*20>(-)*20)*4(>)*7(>[(+)*8[-].]>[(-)*8[+].])*-1
19:30:09 <zemhill> mroman_.cupnoodles: points 10.98, score 33.93, rank 5/47 (-2)
19:30:12 <mroman_> !bftest cupnoodles (>)*9([(-)*8[+].]+>)*4(<)*4(<-<+)*4<--(>(+)*20>(-)*20)*4(>)*6(>[(+)*8[-].]>[(-)*8[+].])*-1
19:30:13 <zemhill> mroman_.cupnoodles: points 12.60, score 36.58, rank 3/47 (--)
19:30:26 <mroman_> !bftest cupnoodles (>)*9([(-)*8[+].]+>)*4(<)*4(<--<+)*4<--(>(+)*20>(-)*20)*4(>)*6(>[(+)*8[-].]>[(-)*8[+].])*-1
19:30:26 <zemhill> mroman_.cupnoodles: points 12.38, score 36.65, rank 3/47 (--)
19:30:34 <mroman_> !bftest cupnoodles (>)*9([(-)*8[+].]+>)*4(<)*4(<--<++)*4<--(>(+)*20>(-)*20)*4(>)*6(>[(+)*8[-].]>[(-)*8[+].])*-1
19:30:34 <zemhill> mroman_.cupnoodles: points 12.14, score 35.96, rank 3/47 (--)
19:30:42 <mroman_> !bftest cupnoodles (>)*9([(-)*8[+].]+>)*4(<)*4(<--<+)*4<-(>(+)*20>(-)*20)*4(>)*6(>[(+)*8[-].]>[(-)*8[+].])*-1
19:30:42 <zemhill> mroman_.cupnoodles: points 12.36, score 36.33, rank 3/47 (--)
19:30:48 <mroman_> !bftest cupnoodles (>)*9([(-)*8[+].]+>)*4(<)*4(<--<+)*4<---(>(+)*20>(-)*20)*4(>)*6(>[(+)*8[-].]>[(-)*8[+].])*-1
19:30:48 <zemhill> mroman_.cupnoodles: points 12.29, score 36.28, rank 3/47 (--)
19:30:53 <mroman_> !bftest cupnoodles (>)*9([(-)*8[+].]+>)*4(<)*4(<--<+)*4<--(>(+)*20>(-)*20)*4(>)*6(>[(+)*8[-].]>[(-)*8[+].])*-1
19:30:53 <zemhill> mroman_.cupnoodles: points 12.38, score 36.42, rank 3/47 (--)
19:31:15 <mroman_> !bfjoust cupnoodles (>)*9([(-)*8[+].]+>)*4(<)*4(<--<++)*4<--(>(+)*20>(-)*20)*4(>)*6(>[(+)*8[-].]>[(-)*8[+].])*-1
19:31:15 <zemhill> mroman_.cupnoodles: points 12.14, score 35.96, rank 3/47 (--)
19:31:18 <mroman_> oh well.
19:31:28 <mroman_> I don't think I'll get it into major programs :(
19:33:05 -!- ais523 has joined.
19:33:16 <mroman_> ais523: I hate preparation
19:34:41 -!- FreeFull has quit (Ping timeout: 272 seconds).
19:35:11 <ais523> mroman_: trying to beat it, you mean?
19:35:29 <mroman_> No. I just hate it out of hatred.
19:35:34 <fizzie> Perhaps it was a general statement about the concept of preparing for something.
19:35:50 <mroman_> but it was aimed at ais523.preperation
19:35:56 <mroman_> *preparation
19:37:15 <mroman_> see
19:37:22 <mroman_> large_decoy just moved 34 ranks upwards
19:37:26 <mroman_> forwhatever reason
19:38:08 <mroman_> and athena moved down hard
19:38:17 <HackEgo> [wiki] [[Special:Log/newusers]] create * AudraGottschalk * New user account
19:39:16 <myname> how many "real" accounts are there that never were here?
19:39:38 <mroman_> Why not implement IRC confirmation
19:39:42 <mroman_> rather than captcha
19:39:48 <mroman_> it's called two-factor-spam-protect
19:39:52 <mroman_> captcha + token over IRC
19:40:01 <myname> mroman_: that's exactly my idea
19:40:33 <mroman_> not that it would be impossible to write an ircbot for that to continue spamming
19:40:34 <fizzie> I don't think we want to make use of freenode a requirement for getting an esowiki account.
19:40:55 <fizzie> Even though it'd probably be very efficient.
19:41:15 <mroman_> meh
19:41:19 <myname> mroman_: well, i do think these spam accounts aren't really aimed at esolangs.org rather than any mediawiki
19:41:24 <mroman_> You can access it neatly through the webchat
19:41:52 <fizzie> Not if you have, say, philosophical objections about the network.
19:41:54 <mroman_> but didn't somebody add those stupid questions?
19:42:04 <mroman_> like "In which year was fukyobrainz invented"?
19:42:35 <mroman_> `learn fukyobrainz is yet another brainfuck derivative however with identical instructions.
19:42:37 <HackEgo> I knew that.
19:42:42 <myname> "what is the current featured language"
19:43:10 <mroman_> The real challenge is to decide whether it's a brainfuck or fukyobrainz program
19:43:18 <mroman_> studies show it might be impossible.
19:43:24 <ais523> mroman_: AFAICT, every now and then the spammers hire a human to teach the spambots all the CAPTCHA answers
19:43:30 <elliott_> the solution is to just give fizzie more captchas.
19:43:52 <myname> mroman_: make fukyobrainz needing a ; at the end of every line but the last
19:43:56 <elliott_> ideally someone would just download an XML wiki dump, and generate a billion <language> was created in what year? questions
19:44:03 <elliott_> in the localsettings.php format
19:44:06 <elliott_> and then give them to fizzie
19:44:24 -!- AndoDaan has quit (Ping timeout: 244 seconds).
19:44:25 <elliott_> is the captcha used when signing up logged? that'd make it obvious which ones to delete
19:44:37 <b_jonas> elliott_: you don't need a full wiki dump for that, just the yearh categories
19:44:45 <elliott_> b_jonas: true
19:44:49 <myname> there used to be a site which only had "insert 'php' here" as a captcha
19:44:52 <elliott_> b_jonas: you want to only include pages in Category:Languages, though
19:44:54 <myname> worked pretty well
19:45:09 <elliott_> b_jonas: but you kind of want to base it on the actual articles, because making people scroll down to the yearcats to sign up is mean
19:45:34 <mroman_> "insert a bfjoust program capable of entering the hill"
19:45:38 <mroman_> best captcha .
19:45:40 <b_jonas> mroman_: hehe
19:45:48 <b_jonas> but then they'd just copy ais's program
19:45:52 <myname> you could ask "name one of your favorite esolangs"
19:46:08 <fizzie> Oh, I didn't even realize I'm involved in the captcha-setting process, I was assuming they could be changed inside the wiki somehow.
19:46:22 <b_jonas> myname: no, we want to involve new people who don't yet have one
19:46:32 <b_jonas> plus we don't have a way to check that
19:46:38 <b_jonas> we don't have articles on all esolangs yet
19:46:44 <mroman_> we don't?
19:46:51 <ais523> I doubt even I could get on the hill in one attempt, without using an existing program
19:46:56 <b_jonas> mroman_: I have like five todo listed on my user page
19:47:10 <myname> go for it
19:47:20 <ais523> the hill's so good nowadays
19:47:20 <b_jonas> http://esolangs.org/wiki/User:B_jonas
19:47:50 <ais523> there's plenty of vaporware esolangs by me that don't have articles
19:47:57 <ais523> due to being vaporware
19:48:03 <b_jonas> how about “write a program printing the sequence of prime numbers in unary in brainfuck”
19:48:15 <myname> lol
19:48:23 <b_jonas> we just have to interpret them and check the first few thousand characters of output
19:48:37 <b_jonas> though... if they write something that takes like double exponential space and time, we might not be able to
19:48:43 <b_jonas> so better give a restriction on time and space
19:48:57 <elliott_> fizzie: they're just hardcoded in LocalSettings.php.
19:49:09 <elliott_> fizzie: you could even programmatically generate them, though they'd have to persist across the two requests
19:49:20 <mroman_> openttd signals?
19:49:24 <myname> b_jonas: ++++++[>++++++++<-]>[.]
19:49:27 <mroman_> there's an esolang based on that?
19:49:34 <b_jonas> mroman_: they're an esolang as is
19:49:36 <myname> you didn't say anything about seperators
19:49:36 <elliott_> fizzie: (and also doing expensive things in LocalSettings.php is a poor idea, obviously.)
19:49:51 <myname> oh, add a +
19:50:04 <fizzie> I wonder how much current crop of bots rely on the field element names.
19:50:09 <b_jonas> mroman_: they have only a few primitives, but capable of much more than those were desigend for, that's certainly a mark of a esolang in my book
19:50:13 <b_jonas> mroman_: just ask zzo
19:50:22 <mroman_> I'd rather not :)
19:50:24 <elliott_> fizzie: I think mediawiki randomises them? maybe it doesn't
19:50:39 <fizzie> The captcha input box is just called "wpCaptchaWord".
19:50:44 <b_jonas> (you need railways and trains and maybe bridges and tunnels besides signals obviously)
19:50:45 <mroman_> hm
19:50:47 <fizzie> But they could easily go by document structure.
19:50:54 <mroman_> randomising POST/GET params would probably help
19:51:13 <mroman_> also you could insert fake ones
19:51:16 <b_jonas> mroman_: no. spammers probably take those from the html anyway, to attack multiple webpages
19:51:33 <mroman_> like
19:51:48 <mroman_> just add some forms
19:51:51 <mroman_> and hide them with css
19:52:06 <fizzie> I've seen the "don't fill anything here" approach in a couple of places.
19:52:13 <mroman_> (and screw people who don't have css support)
19:52:29 <b_jonas> mroman_: these days luckily you can hide stuff with a html5 attribute as well as css
19:52:34 <J_Arcane> sorry, missed a question; quintopia: This is the project. https://github.com/jarcane/HateStack
19:52:49 <b_jonas> though I'm not sure how many browsers eat the html5 attribute, you can use both that and a css rule
19:53:04 <b_jonas> it's very useful because it stops hidden stuff from showing up before the css has a chance to load
19:53:41 <b_jonas> `perl -e$==0,(1x$_)=~/^(|()1(?1)(?1)\2)$(?{$=++})^/,print$=,$"for 0..13
19:53:44 <HackEgo> 1 1 2 5 14 42 132 429 1430 4862 16796 58786 208012 742900
19:53:51 <mroman_> what's that?
19:53:58 <b_jonas> Catalan numbers
19:54:00 <mroman_> @oeis 1,2,5,14,42,132
19:54:02 <lambdabot> Catalan numbers: C(n) = binomial(2n,n)/(n+1) = (2n)!/(n!(n+1)!). Also called...
19:54:03 <b_jonas> variant of http://www.perlmonks.com/?node_id=813859
19:54:19 <b_jonas> parent node has code for fibonacci
19:54:32 <ais523> you can golf that down one character using print"$= " rather than print$=,$"
19:54:40 <ais523> unless $, has been set, and I don't think it has been
19:54:52 <ais523> `perl -e$==0,(1x$_)=~/^(|()1(?1)(?1)\2)$(?{$=++})^/,print"$= "for 0..13
19:54:53 <b_jonas> ais523: the original obfu uses the -l switch instead to print newlines
19:54:56 <HackEgo> 1 1 2 5 14 42 132 429 1430 4862 16796 58786 208012 742900
19:55:08 <b_jonas> `perl -le$==0,(1x$_)=~/^(|()1(?1)(?1)\2)$(?{$=++})^/,print$=for 0..13
19:55:12 <HackEgo> 1 \ 1 \ 2 \ 5 \ 14 \ 42 \ 132 \ 429 \ 1430 \ 4862 \ 16796 \ 58786 \ 208012 \ 742900
19:55:16 <ais523> right
19:55:25 <b_jonas> that doesn't look so good on irc so I wanted a quick fix
19:55:30 <b_jonas> but you're right, that's one shorter
19:56:40 <b_jonas> one shorter as in http://www.xkcd.com/670/
19:57:29 <mroman_> `?brainfuck
19:57:29 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: ?brainfuck: not found
19:57:31 <mroman_> `? brainfuck
19:57:32 <HackEgo> brainfuck is the integral of the family of terrible esolangs.
19:57:38 <mroman_> ha
19:57:46 <mroman_> `? brainfuck_derivative
19:57:47 <HackEgo> brainfuck_derivative? ¯\(°​_o)/¯
19:57:50 <mroman_> `? brainfuck derivative
19:57:51 <HackEgo> brainfuck derivative? ¯\(°​_o)/¯
19:58:11 <mroman_> hm
19:58:13 <mroman_> can you do that?
19:58:16 <mroman_> `learn "a b" is ab
19:58:18 <HackEgo> I knew that.
19:58:19 <mroman_> `? a b
19:58:20 <HackEgo> a b? ¯\(°​_o)/¯
19:58:23 <mroman_> `? "a b"
19:58:25 <HackEgo> ​"a b"? ¯\(°​_o)/¯
19:58:27 <mroman_> hm
19:58:31 <mroman_> `? "
19:58:32 <HackEgo> ​"? ¯\(°​_o)/¯
19:58:34 <mroman_> `? "a
19:58:35 <HackEgo> ​"a b" is ab
19:58:37 <mroman_> lol
19:58:38 <mroman_> ok
19:58:43 <mroman_> `forget "a
19:58:44 <HackEgo> Forget what?
19:58:46 <b_jonas> `perl -e$==1,(1x$_)=~/(^)(1|11\1)*(?{$=++})^/,print"$= "for 0..20 # Fibonacci
19:58:47 <HackEgo> 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 10946 17711 28657
19:59:27 <b_jonas> does this one fit in a line for HackEgo?
19:59:43 <b_jonas> `perl -esub h($){($_=$_[0]=pack b208,0 .unpack b362,$_[0])=~tr/\0-\c?/\0/;tr/\0/\377/c;$_}do{$y=$r;$v=join$r='',a..z;$r^=h$r&"\217"x26^h$v&$y for 0..6;$r^=$_ x26}for"k6sNP2B}({ambrusLB%Ox)Z]n0*zf\0I3"=~/./g;print$r
19:59:44 <HackEgo> Just another Perl hacker,
19:59:45 <mroman_> `? password
19:59:45 <HackEgo> password? ¯\(°​_o)/¯
19:59:50 <b_jonas> it does fit, great
20:00:27 <mroman_> `? Burlesque
20:00:43 <mroman_> ok
20:00:47 <HackEgo> burlesque is only the sexiest language on earth.
20:01:05 <mroman_> Ah right. I secretly added that a while ago.
20:02:07 <mroman_> http://esolangs.org/wiki/EsoInterpreters
20:02:14 <mroman_> ^- yeah. This is utterly incomplete :D
20:02:19 -!- FreeFull has joined.
20:02:27 <mroman_> but it would be really huge if it were complete.
20:03:51 <mroman_> !blsq "abcdefgh"0 0 8rn10.+si
20:03:51 <blsqbot> "cfgdbbgebd"
20:03:56 <mroman_> !blsq "abcdefgh"1 0 8rn10.+si
20:03:56 <blsqbot> "fhecebcbhh"
20:04:09 <mroman_> !blsq @AZr\1 0 8rn10.+si
20:04:10 <blsqbot> "FHECEBCBHH"
20:04:17 <mroman_> !blsq @AZr\1 0 26rn10.+si
20:04:17 <blsqbot> "XQELEKCTHZ"
20:04:24 <mroman_> !blsq @AZr\1 0 26rn16.+si
20:04:25 <blsqbot> "XQELEKCTHZVBDBQR"
20:04:58 <mroman_> `learn password is XQELEKCTHZVBDBQR
20:05:00 <HackEgo> I knew that.
20:05:14 <mroman_> (Most likely the password to life, the universe and all that)
20:06:26 <mroman_> how unsafe is unsafePeformIO randomRIO
20:06:29 <b_jonas> what does that do? random generates
20:06:31 <b_jonas> ?
20:06:37 <mroman_> rn is random integers
20:06:50 <mroman_> <seed> <lower bound> <higher bound>
20:06:56 <mroman_> !blsq 0 0 10rn10.+
20:06:57 <blsqbot> {7 10 2 4 3 1 8 4 4 0}
20:07:01 <b_jonas> [ ?16$26
20:07:06 <b_jonas> ] ?16$26
20:07:06 <mroman_> (and it yields an infinite amount of random numbers)
20:07:07 <evalj> b_jonas: 19 17 21 16 24 21 17 14 5 22 23 23 10 9 9 20
20:07:17 <mroman_> that's why 10.+ (.+ for lists is take)
20:07:23 <mroman_> !blsq 0 0 10rn10.+
20:07:24 <blsqbot> {7 10 2 4 3 1 8 4 4 0}
20:07:36 <b_jonas> ] u:65+?16$26
20:07:37 <evalj> b_jonas: WKUEHQXADALXNIUX
20:07:44 <mroman_> however, System.Random isn't consistent over plattforms
20:07:58 <mroman_> I recently discovered that Burlesque on anagol yields different numbers
20:10:21 <fizzie> `perl -eprint int(rand 100), " " for (1..10)
20:10:22 <HackEgo> 33 35 90 18 93 19 93 89 23 5
20:10:23 <fizzie> `perl -eprint int(rand 100), " " for (1..10)
20:10:29 <HackEgo> 71 97 74 98 81 74 13 29 32 73
20:10:30 <fizzie> Seeded automatically, I guess.
20:11:26 <b_jonas> yes, perl is
20:11:45 <mroman_> Can't have auto-seed without IO
20:11:53 <b_jonas> (but it doesn't use a very good random generator, or too much seed space)
20:11:59 <mroman_> > mkStdGen 0
20:12:01 <b_jonas> mroman_: you could have the bot auto-seed the program
20:12:01 <lambdabot> 1 1
20:12:15 <b_jonas> the environment the bot provides could pass a seed when it evals a line for you
20:12:20 <mroman_> > randomRs 0 10 (mkStdGen 0)
20:12:22 <lambdabot> Couldn't match expected type ‘System.Random.StdGen -> t’
20:12:22 <lambdabot> with actual type ‘[a0]’
20:12:27 <mroman_> @type randomRs
20:12:28 <lambdabot> (Random a, RandomGen g) => (a, a) -> g -> [a]
20:12:42 <mroman_> > take 5 $ randomRs (0,10) (mkStdGen 0)
20:12:44 <lambdabot> [0,3,6,8,7]
20:12:49 <b_jonas> the jevalbot actually seeds the random generator, though you could do that directly inside the jeval prompt by hand too, so it's just convenience
20:12:50 <mroman_> !blsq 0 0 10rn5.+
20:12:51 <blsqbot> {7 10 2 4 3}
20:13:01 <mroman_> hm
20:13:06 <mroman_> lambdabot yields different numbers as well
20:13:31 <fizzie> What's up with hackage's every-now-and-then broken documentation? E.g. http://hackage.haskell.org/package/random-1.1 is gone; have to look at 1.0.1.3 instead.
20:13:49 <mroman_> I've noticed that too
20:13:54 <mroman_> recent packages usually have no doc
20:14:45 <fizzie> I guess it's recent, 12 days ago.
20:15:49 -!- FreeFull has quit (Ping timeout: 260 seconds).
20:20:55 -!- Sorella has quit (Ping timeout: 272 seconds).
20:34:28 -!- shikhin has quit (Ping timeout: 272 seconds).
20:35:57 -!- dianne has quit (Disconnected by services).
20:36:05 -!- dianne has joined.
20:38:02 -!- shikhin has joined.
20:52:25 -!- SvenGek has quit (Quit: bye).
20:52:36 -!- GeekDude has changed nick to GeekAfk.
21:01:39 -!- Patashu has joined.
21:06:54 -!- Sorella has joined.
21:07:43 -!- Sorella has quit (Changing host).
21:07:44 -!- Sorella has joined.
21:13:57 -!- GeekAfk has quit (Quit: {{{}}{{{}}{{}}}{{}}} (www.adiirc.com)).
21:19:18 -!- AnotherTest has quit (Remote host closed the connection).
21:20:58 -!- Phantom_Hoover has joined.
21:24:22 -!- Patashu has quit (Ping timeout: 240 seconds).
21:43:08 -!- oerjan has joined.
22:04:42 -!- Vorpal has quit (Quit: ZNC - http://znc.sourceforge.net).
22:15:09 -!- Frooxius has quit (Quit: *bubbles away*).
22:19:24 -!- perrier has joined.
22:20:19 -!- perrier has quit (Remote host closed the connection).
22:20:25 -!- TieSoul_ has quit (Read error: Connection reset by peer).
22:21:31 -!- perrier has joined.
22:48:32 -!- drlemon has quit (Remote host closed the connection).
22:59:51 -!- evalj has quit (Remote host closed the connection).
23:02:42 <oerjan> <elliott_> ideally someone would just download an XML wiki dump, and generate a billion <language> was created in what year? questions <-- i'll point out that if ais523's theory of "occasionally hiring a human to break CAPTCHAs" is correct, we _don't_ want to use all of the CAPTCHAs simultaneously; rather we'd rotate to a new subset whenever the spam starts picking up.
23:03:18 <elliott_> oerjan: yeah. if you have hundreds, though, I doubt they'd bother cracking every single one.
23:03:29 <elliott_> especially since there's no real way to know when you're "done" or not other than refreshing a bunch.
23:03:45 <elliott_> I suspect they just occasionally get someone to solve one or two of them.
23:03:50 <elliott_> that's all they need
23:03:55 <elliott_> you can refresh until you get a captcha you know
23:04:00 <oerjan> hm right
23:04:20 <elliott_> which is why logging the ones used for registration would be useful
23:04:20 <oerjan> in which case we can have just _one_ captcha in each bunch :P
23:04:30 <ais523> I like CLC-INTERCAL's CAPTCHA
23:04:31 <elliott_> true
23:04:36 <elliott_> we could try that
23:04:39 <ais523> it asks you to evaluate some INTERCAL
23:04:50 <elliott_> more captchas feels intuitively better but I suppose there is no inherent reason for that
23:04:51 <ais523> but it has a link to the relevant page of the manual, which is rigged to have the CAPTCHA you were just asked as an example
23:05:21 <oerjan> although i guess forcing them to refresh a lot before hitting the right one might slow them down...
23:05:33 <oerjan> so ideally we'd probably want your logging.
23:06:38 -!- GeekAfk has joined.
23:06:46 <oerjan> and then just replace the one used with the next in the unused queue
23:09:49 <oerjan> hm i guess if your suspicion they only solve one or two is right, there isn't really any point in having an unused queue, as long as there are plenty left.
23:10:32 <oerjan> because it would be too expensive for the spammers to pay someone to solve a lot of the captchas.
23:11:28 <oerjan> i guess i'm coming around to completely agreeing with elliott_ here
23:11:57 <elliott_> well, throttling them to only solve one per batch seems reasonable
23:12:48 <elliott_> I think we should have one simple CAPTCHA and replace it when they figure it out. the "slowdown" from making them refresh until they find a captcha they know wouldn't matter; it might matter if they skipped that registration attempt altogether and forgot about it if they didn't know the captcha but frankly spam that registers users doesn't seem to be very fast or common.
23:12:57 <oerjan> we might want to do some logging first to get data on how many they actually _are_ solving at once.
23:13:14 <elliott_> it takes them months to start registering after rotating the captchas
23:13:20 <elliott_> so I think we've already given it more thought than it warrants.
23:14:15 <oerjan> hm i guess you're right the spam isn't frequent enough that refreshing is a real issue
23:14:44 <ais523> note that these are the spambots that haven't figured out newlines yet
23:15:04 <ais523> which strongly implies that they aren't targeting our spam filter in particular
23:15:25 <oerjan> well unless they actually _are_ dropping the attempt until next time they come around, in which case they might not be refreshing and we are lucky that they only have solved one CAPTCHA or so
23:16:05 <oerjan> maybe we need to log refreshings too :P
23:18:56 <elliott_> I really don't think it would be that bad even if they knew every captcha.
23:19:10 <elliott_> 90% of spam is anonymous stuff that's being caught just fine.
23:19:11 <oerjan> ais523: that's true, but there would still be different behavior whether they're doing (1) try registering with the CAPTCHA, once, then move on to next victim; or (2) try registering with the CAPTCHA, refresh several times at once before giving up and moving on
23:19:25 <ais523> yes
23:19:32 <elliott_> I suspect it's (1).
23:19:34 <oerjan> if they're doing (1) then having very few captchas would greatly help them.
23:19:35 <ais523> elliott_: it spams the new user log
23:19:38 <ais523> (1) is believable, though
23:19:57 <elliott_> ais523: yes, but it's okay to have a few new users every few months
23:20:02 <elliott_> we just need to rotate out the captcha when it happens
23:20:15 -!- GeekAfk has changed nick to GeekDude.
23:20:57 <oerjan> (as in, if we had just one CAPTCHAs and (1) then the spammers might manage to completely flood recent changes with new registrations before we get around to stopping them)
23:21:19 <oerjan> of course they could easily achieve this by doing (2) instead
23:21:53 <quintopia> in either case (1) or (2), having hundreds of CAPTCHAs would cut back on the number of successes
23:24:11 <ais523> there are online BF interpreters, right? could we link to one?
23:24:19 <elliott_> here's the #1 reason to use one captcha: ais523 is more likely to give fizzie one captcha when registrations start happening than we are to figure out how to track down what captchas were used to remove them
23:24:19 <ais523> and give people some BF to run and type in the answer?
23:24:33 <elliott_> all this effort devoted to it is a waste.
23:24:39 <ais523> we could use a script to generate thousands of captchas like that
23:25:49 <quintopia> yeah i think elliott_ is right, provisionally.
23:26:20 <quintopia> which is to say: we revise the plan if they are managing to get in every week
23:26:34 <ais523> I like this BF CAPTCHA idea
23:26:39 <elliott_> fizzie: Q: In which year was 0x29A created? A: 2004
23:26:43 <elliott_> fizzie: please replace the existing captchas with this
23:26:49 <oerjan> the main reason i feel like logging is a good idea is that we'd then know without too many more attempts why our plan fails when it does
23:26:55 <elliott_> fizzie: unless that exact captcha is in the comments, in which case, heh
23:27:05 <elliott_> (I just pulled up Special:Random a few times.)
23:27:54 <oerjan> elliott_: i note one thing though: if all our CAPTCHAs keep being year numbers we'd eventually be vulnerable to a spammer who doesn't actually read the questions...
23:27:55 <quintopia> ais523: if you manage to find an online interp that takes code in its links so that the registerer doesn't have to do quite so much work, it is a good way of generating captchas.
23:28:17 <elliott_> oerjan: you know what'll be a problem before that?
23:28:27 <elliott_> in like 20 years, all of ais523's spam blocks are going to start getting undone in a trickle
23:28:28 <oerjan> elliott_: universe heat death hth
23:28:37 <oerjan> ah.
23:28:42 <elliott_> when you solve that you can spend this much time worrying about captchas
23:28:47 <ais523> elliott_: I doubt they'll still be trying after 24 years
23:28:52 <ais523> and if they are, we can just block again
23:28:57 <oerjan> elliott_: i'm sure we can programmatically prolong them
23:29:34 <quintopia> no i think elliott's onto something here. if we know the heat death is coming, why are we not working on the problem now?
23:30:34 <elliott_> here's the biggest problem: nobody will care about esolangs when we're all wireheads
23:30:55 <quintopia> the heat death of the universe is an existential threat. why is there no international organization dedicated to trying to prevent it?
23:32:13 <elliott_> I'm sure it's on some singularitarians' agenda.
23:32:43 <oerjan> quintopia: because we expect technological and scientific progress to get sufficiently far in a few centuries that it would be useless to start _now_ on planning against something which our current theories say is impossible to avoid
23:33:11 <quintopia> oerjan: those advances will come from what we do _now_. why procrastinate?
23:33:50 <ais523> quintopia: you can help by trying to make the world more efficient
23:34:00 <ais523> so that the needed scientific and technological advances come sooner
23:34:02 <quintopia> ais523: okay let's start with not wasting time on captchas
23:34:12 <oerjan> quintopia: because we're not at the point where we can distinguish "what we need to do to prevent heat death" from "what we need to do to achieve general scientific progress, at least in physics"
23:34:28 <ais523> quintopia: "wasting" time on captchas now saves time wasted clearing up after spambots later
23:34:29 <quintopia> oerjan: then that's something we can work on!
23:34:38 <oerjan> quintopia: and people do!
23:35:37 <quintopia> oerjan: i've yet to see an organization whose stated purpose is "figuring out which direction to advance science and technology in order to find out how to prevent maxentropy"
23:36:46 -!- callforjudgement has joined.
23:37:12 -!- ais523 has quit (Disconnected by services).
23:37:16 -!- callforjudgement has changed nick to ais523.
23:38:02 <oerjan> quintopia: that's because we're busy at "figuring out how not to destroy ourselves long before we reach a level where we'd have a *chance* at figuring out how to prevent maxentropy". also, i should eat.
23:38:51 -!- Sprocklem has quit (Ping timeout: 258 seconds).
23:38:52 <oerjan> wait that's wrong.
23:39:17 <oerjan> we might very well have a chance, it just takes a surprise discovery in physics.
23:39:54 <oerjan> what we don't have is the _necessity_.
23:40:52 <ais523> <LibreSSL devs> Here's a problem. You want to create a variable the same size as socklen_t. One fairly obvious solution would be to declare a variable of type socklen_t. That's not how OpenSSL does things, however. Instead, let's create a union of a couple different ints, call accept(), then inspect the different union members to determine which ones were overwritten by the kernel. Oh, and don't forget to check for big endian versus little endian.
23:41:17 <ais523> also, after the heat death, doesn't entropy start decreasing as some of the homogenous cloud of mildly warm iron atoms end up expanding beyond the edge of the observable universe?
23:41:19 <oerjan> as in, the universe won't die in the < million years it will take us to either solve the problems we cause ourselves, or die.
23:43:21 <Bike> you know, the second law doesn't state entropy always rises, just that it lowering is exponentially unlikely. what's to protect from!
23:50:39 <zzo38> Why does OpenSSL do such stupid way?
23:51:19 <pikhq> OpenSSL is a "fun way to learn C".
23:51:19 <oerjan> ais523: i don't think the second law says anything about entropy in the _observable_ universe.
23:51:44 <ais523> oerjan: in that case, is it possible to keep going indefinitely via shipping off entropy past the edge of the observable universe?
23:51:50 <oerjan> however, i'd interpret that as entropy _density_ decreasing, not entropy itself.
23:52:13 <Bike> you can't ship things out of the observable universe...
23:52:24 <oerjan> Bike: actually you can.
23:52:43 <Bike> but you'd have to move stuff faster than you can see it.
23:52:47 <Bike> and that's pretty fast.
23:52:54 <ais523> speed of light is plenty fast enough, isn't it?
23:53:17 <ais523> ofc, then you have another problem, whereby the observable universe runs out of energy
23:53:24 <ais523> because I don't think it's possible to get energy in from outside
23:53:50 <oerjan> Bike: you just need to move it far enough away that the universe's general expansion takes over.
23:54:22 <oerjan> there are stars leaving our observable universe as we speak, probably.
23:55:52 <oerjan> ais523: the lack of energy means that the _maximal_ entropy density also decreases, i think
23:56:25 <oerjan> so entropy / maximal entropy for the energy remaining might still be increasing even if something leaves the OU
23:56:28 <ais523> let's hope we find a way around both the first and second laws of thermodynamics, then
23:56:38 <ais523> vacuum energy seems promising
23:57:46 <Phantom_Hoover> i would like to point out that the expansion of the universe already violates conservation of energy
23:57:55 -!- shikhout has joined.
23:58:25 <ais523> Phantom_Hoover: hmm, in that you could, say, take two weights, place them very far apart with an elastic band stretched between them?
23:58:30 <Sgeo> pikhq: eh? What, did someone suggest they were writing OpenSSL code in order to learn C?
23:58:47 <ais523> I'm not sure how you could get the energy out afterwards, though
23:58:48 <pikhq> Sgeo: *That's a quote from the guy who wrote it initially*.
23:58:48 <Phantom_Hoover> the example i read was a photon being redshifted and losing energy into nothing
23:58:52 <Sgeo> Been a while since I looked at OpenSSL Rampage
23:58:54 <Sgeo> pikhq: o.O
23:59:42 <Phantom_Hoover> but the real justification was that the expansion isn't time-symmetric and so noether's law doesn't apply
←2014-09-27 2014-09-28 2014-09-29→ ↑2014 ↑all