00:13:22 -!- kwertii has joined.
00:45:00 <MizardX> Heh. Even though I use base64 encoding, I still get over 100x compression: http://www.vjn.fi/pb/p523415122.txt :)
01:32:27 -!- oerjan has quit ("His brain, perhaps?").
01:33:54 <MizardX> three images, each 288x288x32 bits long
01:43:40 -!- AnMaster has quit (Connection timed out).
01:44:49 <MizardX> Simplest would be to run the script. They are image-components used to generate block-pieces that could be used in a tetris-game or other game with rectalinear blocks.
01:46:08 -!- AnMaster has joined.
02:11:21 -!- kwertii has quit ("bye").
02:25:35 -!- olsner has quit ("Leaving").
02:37:16 -!- kwertii has joined.
03:12:53 -!- Sgeo has joined.
03:13:24 -!- kwertii has quit ("bye").
03:14:32 -!- decipher has quit (Read error: 60 (Operation timed out)).
03:14:40 -!- sebbu2 has joined.
03:18:09 -!- decipher has joined.
03:19:41 -!- sebbu has quit (Read error: 60 (Operation timed out)).
03:19:42 -!- sebbu2 has changed nick to sebbu.
04:14:49 -!- GreaseMonkey has joined.
05:35:19 -!- Asztal has quit (Read error: 104 (Connection reset by peer)).
05:35:45 -!- Asztal has joined.
06:00:21 -!- Sgeo has quit (Remote closed the connection).
06:38:45 -!- sebbu has quit (Read error: 60 (Operation timed out)).
07:11:11 -!- olsner has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:21:56 -!- kar8nga has joined.
09:01:59 -!- kar8nga has quit (Read error: 110 (Connection timed out)).
09:24:36 -!- GreaseMonkey has quit ("You only need one wheel. Bikers are just greedy.").
09:47:06 -!- sebbu has joined.
09:52:52 -!- Corun has quit ("This computer has gone to sleep").
10:10:09 -!- olsner has quit ("Leaving").
11:40:11 -!- jix has joined.
11:40:17 -!- jix has quit (Remote closed the connection).
11:41:03 -!- LolaCaida has joined.
11:41:04 -!- jix has joined.
11:41:35 -!- LolaCaida has left (?).
11:43:41 -!- LolaCL has quit (Read error: 110 (Connection timed out)).
11:48:34 -!- Sgeo has joined.
11:54:21 <oklopol> p-adic analysis <<< i kinda lolled when reading this as p-dantic analysis
11:54:27 <oklopol> that might be a fun subject
11:56:36 <Slereah-> "One of my students once asked me what the p-adic norm measures. I told him it measures the p-ness of a rational number."
12:01:09 <Slereah-> I think one of my favorite quote is "Now that I'm going to have a second prosthetic leg, I could be seven feet tall if I wanted to be."
12:03:41 -!- oerjan has joined.
12:06:47 -!- jix has quit ("Computer has gone to sleep").
12:35:55 <pikhq> Bleck. I managed to stay up until about 6... At this point, there's basically little point in me going to sleep.
12:37:01 <oerjan> you could pretend - TO BE A VAMPIRE
12:38:14 <pikhq> Well, I *am* a creature of the night.
12:38:33 <pikhq> Especially on weekends, where I typically go to sleep a little bit after sunrise.
12:41:04 -!- jix has joined.
12:59:22 -!- jix has quit ("Computer has gone to sleep").
13:11:57 -!- kar8nga has joined.
13:44:16 -!- Sgeo has quit (Remote closed the connection).
13:45:49 -!- Slereah- has quit (Read error: 145 (Connection timed out)).
14:01:32 -!- zuff has changed nick to ehird.
14:02:06 -!- ehird has changed nick to zuff.
14:34:50 -!- KingOfKarlsruhe has joined.
14:38:20 -!- sebbu has quit ("reboot").
14:47:33 -!- zuff has changed nick to ehird.
14:47:55 -!- ehird has changed nick to zuff.
14:48:16 -!- ais523_ has joined.
14:55:01 <pikhq> Sleep is for mere mortals.
14:55:26 <zuff> I am a mere mortal.
14:55:43 -!- sebbu has joined.
14:55:43 <pikhq> Therefore, you are denied the joys that come from not sleeping.
14:56:01 <pikhq> oerjan: Is that kinda like a were-mortal?
14:56:16 <ais523_> pikhq: I've had stupid sleep patterns over the last few days
14:56:29 <ais523_> I slept from 10am to 7pm last Sunday
14:56:36 <pikhq> I've had stupid sleep patterns for the past week.
14:56:37 <ais523_> and not at all Saturday evening
14:56:45 <pikhq> And managed to sleep through most all of my classes.
14:57:08 <ais523_> it was weird, actually; I dreamed that the real life courts were called in to settle a dispute in a Nomic because it became relevant somehow
14:57:09 <zuff> i still find it hilarious that damien conway of perligata fame came in here instead of ##c by the most unlikely typo ever yesterday (i grepped, he's never been here before) and promptly left when he realised XD
14:57:34 <zuff> Yeah. This'un: http://en.wikipedia.org/wiki/Damian_Conway
14:57:43 <ais523_> and TAEB had become a physical robot and was zooming around, someone had given it a high-power welding laser and it was fixing cracks in metal window frames
14:57:56 <pikhq> Not as cool as who I was thinking of.
14:58:04 <oerjan> pikhq: no, not that conway. _that_ would have been impressive.
14:58:11 <zuff> I did say Damian.
14:58:14 <ais523_> but how does someone manage to typo #esoteric rather than ##c?
14:58:22 <zuff> ais523_: I have no effing idea.
14:58:25 <ais523_> must have been a misclick on a list of IRC channels
14:58:29 <ais523_> that's the only thing I can think of
14:58:35 <ais523_> maybe he /whoised one of us
14:58:36 <zuff> e isn't exactly close to c
14:58:40 <oerjan> i have a pet theory that psygnisfive is really David Madore.
14:58:43 <ais523_> thought "ah, I want to visit ##c"
14:58:51 <zuff> ais523_: he asked a question
14:58:51 <ais523_> tried to click on it and hit #esoteric which was next to it in the channel list
14:58:57 <zuff> so he probably only started an irc client to go there and ask it
14:59:02 <zuff> he was in no other channels, i checked
14:59:11 <oerjan> darn i've mixed up the evidence
14:59:34 <ais523_> I think he'd probably find it very amusing that we think of him mostly for Perligata
15:00:09 <zuff> i asked him where he meant to go in /msg and he said ##c, then I said as a side-note that we like perligata in #esoteric
15:00:13 <zuff> (his reply was "ok")
15:00:24 <zuff> (translation: "you're all bonkers")
15:01:13 <pikhq> We are, indeed, bonkers. But that's beside the point.
15:01:28 <zuff> http://search.cpan.org/~dconway/Quantum-Superpositions-1.03/lib/Quantum/Superpositions.pm i actually expected this to exist when I started programming
15:01:31 <zuff> I always wished I could do:
15:01:36 <zuff> if (a == (1 || 2 || 3))
15:01:41 <zuff> as in, "if a is one of 1, 2, 3"
15:01:49 <zuff> that's if ($a == any(1,2,3)) with that
15:01:55 <oerjan> zuff: i think Icon has something like that
15:02:02 <zuff> oklopol: i never said it was unique
15:02:03 <pikhq> Unfortunately, I've not been doing much esoteric programming of late...
15:02:07 <zuff> but it was just so expected
15:02:21 <pikhq> Instead, I've been doing CS homework in a slightly obfuscated style, making graders hate me.
15:02:22 <zuff> ais523_: that's a bad idiom, though
15:02:31 <zuff> it doesn't reflect what it actually is saying
15:02:34 <oklopol> zuff: and i never said it wasn't unique! in fact i meant something between sarcasm and not sarcasm that made that somehow relevant.
15:02:44 <zuff> Python's syntax for that, "a in [1,2,3]" is marginally better in that respect.
15:02:54 <ais523_> zuff: maybe, I'm actually thinking of that statement as creating the any(1,2,3) though
15:03:03 <ais523_> so you'd say member(Superposition,[1,2,3])
15:03:09 <ais523_> then on the next line A = Superposition
15:03:15 <zuff> read the docs :P
15:03:17 <ais523_> except I collapsed it for efficiency and shortness
15:03:34 <ais523_> I don't think you can do that in Python...
15:03:35 <oerjan> oklopol: you meant a superposition, obviously :D
15:03:52 <ais523_> at least, not as in b in [1,2,3]\n<insert spaces here>a = b
15:04:01 <zuff> ais523_: you can write Quantum::Superposition in Python, almost surely.
15:04:14 <ais523_> <insert spaces here> because it's impossible to write a snippet of Python without either knowing its context, or oepying
15:04:21 <ais523_> zuff: yes, but that's cheating, you're overloading =
15:04:29 <zuff> ais523_: you write python at 0-indent
15:04:39 <zuff> that's just organizational structure
15:04:40 <ais523_> sorry, been using single-equals-for-equality langs too much recently
15:04:56 <zuff> Quantum::Superpositions overloads ==
15:05:05 <ais523_> the Prolog program works without overloads
15:05:16 <ais523_> IIRC you can overload = in Prolog, doing so would be crazy though
15:05:26 <ais523_> it's quite easy to overload fail by mistake to make it succeed
15:05:39 <ais523_> I've never tried to run a program that does that, though
15:05:43 <ais523_> probably luckily for my sanity
15:09:00 <oerjan> you have sanity? i'm afraid we must kickban you.
15:09:10 <ais523_> well, I'm leaving now anyway
15:09:16 <zuff> YOU CANNOT ESCAPE
15:09:22 -!- ais523_ has quit ("http://www.mibbit.com ajax IRC Client").
15:15:28 -!- kar8nga has left (?).
15:19:52 <zuff> http://uk.youtube.com/watch?v=TswTenrEwwM
15:31:48 -!- oerjan has quit ("leaving").
16:01:33 -!- KingOfKarlsruhe has quit (Remote closed the connection).
16:16:37 <ais523> zuff: by the way, I just tried to unsubscribe from one of the Wolfram mailing lists
16:16:50 <ais523> which I don't think I deliberately subscribed to, it was some automatic subscription for some reason
16:17:00 <ais523> and got "please allow 2 business days for your request to be processed"
16:17:18 * ais523 wonders why a mailing list would need time to process unsubscription requests, do they do it manually?
16:17:28 <zuff> probably, just like the mathematica trials
16:17:50 <ais523> I've maintained a mailing list before now by hand
16:18:00 <ais523> but unsubscription requests effectively took effect immediately
16:18:07 <ais523> because I checked for them before sending out messages
16:18:08 <zuff> [[speaking of which, mathematica 7 has found its way onto the torrent sites, but only the windows version...]]
16:18:12 <ais523> which was also done by hand
16:18:49 <oklopol> AND YOU SAY WINDOWS ISN'T GREAT!
16:19:20 <ais523> my trial version of Mathematica was the Windows version, btw
16:19:32 <ais523> partly because that was the only OS I had access to at the time
16:19:38 <zuff> to be honest, I'm not sure I _want_ to try and run mathematica on here
16:19:41 <zuff> how much memory does it use?
16:19:49 <zuff> I'll bet more than Photoshop, and damn is that thing slow.
16:19:56 <ais523> it used lots when running something complex
16:20:03 <ais523> to the point that it was hard to get into the GUI to kill the process
16:20:07 <zuff> Photoshop consistently uses, like, 200 MB.
16:20:13 <ais523> (either Mathematica's process-kill GUI, or Windows')
16:29:44 <zuff> I should write something in Perl.
16:29:51 <zuff> Just to kill myself.
16:30:07 <ais523> I don't think there's an ACME::Suicide yet, by the way
16:30:19 <ais523> but I suggest not thinking about Mathematica, your life will seem happier almost instantly
16:30:24 <zuff> Also, Acme/Suicide.pm is a link to Editor/PerlEmacs.pm.
16:31:24 <zuff> ais523: That is the result of someone selling their soul to satan in return for a copy of emacs written in perl.
16:31:56 <zuff> http://guyro.typepad.com/blog/2008/12/google-i.html
16:32:33 <zuff> [[Only that Google used Python for its robots. ]] <- um, no.
16:59:35 -!- jix has joined.
16:59:39 -!- jix has quit (Remote closed the connection).
16:59:59 -!- jix has joined.
17:00:03 -!- jix has quit (Remote closed the connection).
17:00:25 -!- jix has joined.
17:03:29 <AnMaster> ais523, see /msg when you get back
17:03:52 <zuff> AnMaster: his bouncer tells him of private messages.
17:03:58 <zuff> please don't tell the channel about private messages...
17:07:44 <AnMaster> zuff, true, the issue was I wrote them yesterday evening and he haven't noticed them, he doesn't seem to read the stored messages unless you ask him
17:08:09 <zuff> he reads mine, maybe he just has nothing to say?
17:08:10 <AnMaster> (it was about some errors in the ick manual
17:08:27 <zuff> the highlight in-channel is the same as the highlight from -psyBNC's private message
17:08:55 * zuff watches a car evolve (http://www.wreck.devisland.net/ga/, flash)
17:09:28 <zuff> Dammit, you're breeding the wrong ones! Stupid evolution!
17:10:01 <AnMaster> car evolution? sounds interesting enough to make the complex stuff needed to reach flash
17:10:17 <zuff> AnMaster: what? I meant it's coded in flash
17:10:30 <zuff> (disclaimer: if that was a joke, i ignored it because it's the least funny thing ever)
17:10:55 -!- Slereah_ has joined.
17:10:56 <AnMaster> I just don't have flash on this computer
17:10:58 <zuff> it's a bunch of polygons :P
17:11:02 <AnMaster> but the title was interesting enough
17:11:11 <AnMaster> that I'll ssh over and X forward
17:11:29 <zuff> AnMaster: might be a bit resource intensive; unless your ssh connection is really fast :P
17:11:51 <zuff> C'mon little car
17:11:52 <zuff> You can do i t
17:12:36 <ais523> <AnMaster> zuff, true, the issue was I wrote them yesterday evening and he haven't noticed them, he doesn't seem to read the stored messages unless you ask him <--- ironically, that's normally true, except I decided to read my PMs just before I noticed you said that
17:12:37 <zuff> that is a good one
17:12:58 <zuff> I /playprivatelog, /eraseprivatelog all the time
17:13:03 <zuff> I should probably put it on startup
17:13:07 <zuff> I know why its not playing back
17:13:15 <zuff> I haven't got the command in the limechat startup
17:13:20 <AnMaster> zuff, it only evolves bad cars?
17:13:29 <zuff> AnMaster: no, it evolves good ones
17:13:33 <zuff> but it's frustrating :P
17:14:15 <AnMaster> it doesn't seem to learn at all
17:14:22 <zuff> AnMaster: define "learn"
17:14:28 <zuff> it produces random mutations then breeds the best ones every 20 iterations
17:14:40 <zuff> not exactly a fast process
17:14:42 <zuff> but it's improving
17:14:49 <AnMaster> zuff, the most successful wins, it seems to generate old ones again very often
17:15:00 <AnMaster> probably some parameters need to be tuned
17:15:03 <zuff> AnMaster: that'll just be because there aren't many really good ones
17:15:14 <AnMaster> what is the graph in the upper right part?
17:15:15 <zuff> remember that it doesn't breed each step
17:15:17 <zuff> you just get random 20
17:15:19 <zuff> then it breeds
17:15:21 <zuff> AnMaster: performance
17:15:31 <zuff> ideally, it'd be an upwards slope
17:15:37 <AnMaster> zuff, the green and black lines?
17:15:45 <zuff> i think the green = avg performance
17:15:47 <zuff> and black = best
17:16:01 <zuff> so the average performance is slightly improving, and the best performance kind of fluctuates wildly
17:16:05 <AnMaster> well what are the red circles? the blue are the wheels I understand that
17:16:14 <zuff> AnMaster: red circles make the car die when they hit the ground
17:16:20 <zuff> also, stopping the car makes it die
17:16:27 <zuff> blue circles are wheels, the rest is just connecting lines
17:16:34 <zuff> ais523: not a game
17:16:35 <zuff> http://www.wreck.devisland.net/ga/
17:16:42 <zuff> it's a car, evolving
17:16:43 <oklopol> AnMaster: all that would become clear if you'd just waited the minute it takes to evolve a car that somewhat works.
17:16:49 <AnMaster> grr, it seems to eat a lot of ram?
17:16:53 <zuff> oklopol: many minutes :P
17:16:57 <zuff> AnMaster: unsurprising
17:17:04 <AnMaster> zuff, OOM killer killed firefox
17:17:16 <zuff> the oom killer is batshit insane
17:17:20 <ais523> the OOM killer is likely sensible in that case
17:17:26 <AnMaster> zuff, the system has 256 MB RAM
17:17:27 <ais523> after all, firefox does use a lot of memory...
17:17:29 <oklopol> would be fun to have a game where you competed with evolution in a task like that
17:17:35 <zuff> AnMaster: 256 MB? ummmmm duh
17:17:39 <zuff> oklopol: agreed
17:17:43 <AnMaster> zuff, yes that system that has firefox + flash
17:17:51 <zuff> although i'd kick evolution's ass, it's not an efficient procss
17:17:57 <oklopol> you see terrain, then have a few minutes to build a vehicle to get to the goal, before your evolution opponent does it
17:18:07 <oklopol> and you could watch it go right next to you
17:18:24 <zuff> http://rogeralsing.com/2008/12/07/genetic-programming-evolution-of-mona-lisa/ evolving mona lisa dna
17:18:30 <ais523> I've used systems with 256 MB RAM, before
17:18:39 <ais523> haven't tried to run Firefox on them, though, nor would I if I were paying attention
17:19:49 <ais523> incidentally, I was reading through a flamewar between two Linux devs on a similar subject
17:19:56 <zuff> yes, it was on reddit
17:20:01 <ais523> which was whether to swap things out of memory and use the rest for disk space, or not
17:20:04 <zuff> as far as i know os x has no oom killer
17:20:22 <ais523> I wonder if Windows has one, it's quite hard to tell
17:20:25 <zuff> i'm happy with my system crashing and burning if i try and use more memory than it has, i mean, that's reasonable
17:20:28 <zuff> just don't do that
17:20:54 <ais523> well, it's one echo to a proc file to turn off overcommit and therefore the OOM killer
17:21:01 <AnMaster> ais523, iirc I read that linux prefering disk cache over userspace data caused issues for youtube's database servers
17:21:04 <zuff> should be default :P
17:21:16 <zuff> i wonder how much hd space youtube has
17:21:18 <zuff> probably like 100 TB
17:21:31 <zuff> 1TB is cheap-ass
17:21:35 <zuff> I bet youtube have like a petabyte
17:21:57 <AnMaster> zuff, well these days iirc they use that google stuff since google bought them.
17:22:28 <zuff> googlefs and bigtable and stuff, prolly
17:22:29 <AnMaster> in any case it was likely a bit less back then
17:22:40 <zuff> it's weird to think youtube started in 2005
17:22:42 <AnMaster> zuff, yes the same article said they were using that nowdays iirc
17:22:44 <zuff> it seems way more established
17:22:58 <zuff> also, I'm gonna genetically generate me some stuffs
17:23:23 <zuff> i'll start off by genetically generating hello world as a string :P
17:23:30 <zuff> not exactly hard
17:23:35 <AnMaster> genetically generated algorithms sounds interesting
17:23:36 <ais523> zuff: depends on the language
17:23:42 <ais523> they tried that for Malbolge, and it took ages
17:23:45 <AnMaster> if you got nothing like it to start with
17:23:47 <zuff> AnMaster: not algorithms
17:23:50 <ais523> even then, the case was wrong when it finished
17:23:52 <zuff> http://rogeralsing.com/2008/12/07/genetic-programming-evolution-of-mona-lisa/ was just evolving polygons
17:24:01 <AnMaster> zuff, well, wouldn't it be possible for algorithms?
17:24:02 <zuff> ais523: that was generating a hello world program
17:24:11 <zuff> i'm just going to evolve strings to it :P
17:24:18 <zuff> also that was on 256MB windows nt machines
17:24:21 <zuff> as it was in 2000
17:24:24 <ais523> well, generating a hello world program in Text is pretty easy
17:24:28 <zuff> it'd probably only take a few hours today
17:24:34 <AnMaster> I remember reading about someone genetically generating a circuit to do some task
17:24:43 <AnMaster> iirc checking freqs of input signal
17:24:48 <AnMaster> and generating either on or off
17:24:49 <ais523> hmm... how many programming languages are self-double-quining?
17:25:01 <ais523> as in, if you feed a program's result to an interpreter, you always get the original program back?
17:25:14 <ais523> you could do that and still be TC, I think, although not BF-complete as you couldn't produce arbitrary output
17:25:18 <zuff> mutations: remove random char from string, add random char to random part of string
17:25:45 <AnMaster> zuff, will probably work quite well, but what do you use to define "fitness"
17:25:54 <zuff> AnMaster: hamming distance?
17:26:24 <zuff> for variable length
17:26:36 <AnMaster> you won't always generate the right length?
17:26:37 <oklopol> that mona lisa is not evolution
17:26:45 <zuff> AnMaster: nope
17:26:47 <oklopol> stochastic hill-climbing search
17:27:09 <ais523> oklopol: stochastic searches are no fun in the cases where hill-climbing actually works
17:27:34 <ais523> oklopol: well, if there's more than one hill
17:27:38 <ais523> then you often end up at the wrong one
17:27:46 <ais523> you can do fun stuff like annealing to get around that problem
17:27:59 <oklopol> err sure, but i still don't understand your point
17:28:14 <oklopol> what do you mean they're no fun
17:28:32 <oklopol> wait no oh, i'm still not sure :)
17:29:30 <zuff> hee hee this will be such fun
17:30:20 <AnMaster> how do you evolve algorithms? It sounds like an interesting idea
17:30:34 <ais523> AnMaster: tweak parameters for them at random
17:30:36 <zuff> AnMaster: just like you evolve anything else, but invent a DSL of some sort to represent just your domain
17:30:40 <zuff> or what ais523 said :P
17:30:47 <ais523> although I agree, evolving the whole algorithm is more interesting than just evolving parameters in it
17:30:55 <AnMaster> ais523, indeed that was what I meant
17:31:19 <AnMaster> zuff, also what is "DSL" in this context, it is not a distro, nor a type of internet connection
17:31:28 <zuff> domain specific language
17:31:45 <oklopol> i find the whole idea of evolving algorithms stupid
17:31:56 <oklopol> you can't create an algorithm by slowly converging to it
17:32:36 <AnMaster> what ais523 said is just evolving fudge factors
17:32:54 <oklopol> creating an algorithm is about splitting the task into subtasks, "abstraction", that isn't really what evolution does.
17:33:03 <oklopol> in fact quite the opposite
17:33:51 <zuff> about to evolve hello world!
17:34:25 <oklopol> well. evolution gets closer than, say, simple mutation, because you can evolve parts of the algorithm separately; the problem is there's no way to do a sensible enough fitness function that would actually let that happen.
17:34:31 <AnMaster> oklopol, I remember reading about evolving a circuit...
17:34:43 -!- Slereah_ has quit (Read error: 113 (No route to host)).
17:34:43 <oklopol> evolving what about it exactly?
17:35:01 <ais523> oh, there was a case where someone got a standard combinatorial logic chip
17:35:07 <AnMaster> oklopol, iirc it was like this:
17:35:08 <ais523> no time-dependent hardware on it at all
17:35:19 <ais523> it had programmable connections between all the and and or gates in it
17:35:39 <ais523> and someone decided to evolve an algorithm to tell the difference between a 10 Hz signal and a 1 kHz signal
17:35:55 <ais523> despite this task being impossible in theory, they managed to evolve an algo that worked
17:35:58 <AnMaster> input was a tone, task output +1V if input is 50 Hz
17:36:16 -!- Slereah- has joined.
17:36:19 <AnMaster> don't remember more details than that
17:36:22 <ais523> but nobody could figure out how it worked, there were something like 4 components that didn't connect to anything but the circuit stopped working anyway if they were removed
17:36:34 <oklopol> ais523: okay that's effing freky
17:36:34 <AnMaster> I *think* I read about it in some popular science book
17:36:43 <oklopol> but i can imagine something like that working
17:37:03 <oklopol> you can very clearly see how much wrong it goes
17:37:10 <ais523> yes, clearly it exploited things about the gates which worked in practice but not in theory
17:37:27 <oklopol> yes. that's very impressive, but doesn't really attack my argument
17:37:51 <zuff> It's up to 'Hlwo'.
17:37:57 <zuff> And iterations have slowed to a crawl.
17:38:06 <AnMaster> ais523, ah the same one as I said
17:38:19 <zuff> I think I may have some optimization to do lest I afll asleep.
17:38:26 <zuff> Or maybe I should iterate, say, 10 times instead of 100.
17:38:38 <zuff> Or maybe just get a faster levenshtein
17:38:40 <AnMaster> ais523, also iirc those other 4 components worked due to induction
17:38:41 <zuff> It's slooooooow
17:38:44 <oklopol> also a hello world might work. but that's only because ehird did the abstraction part by telling it "h" is a subtask of "hello world"
17:38:56 <oklopol> i'm assuming that's the fitness
17:39:02 <zuff> I just linked to that article
17:39:18 <zuff> oklopol: fitness is just levenshtein
17:39:36 <ais523> zuff: you linked to a mona lisa article twice, afaict
17:40:01 <oklopol> zuff: yes. doesn't change the fact you told it levenshtein is good. my point is in algorithms, the only problem is the abstraction, and evolution doesn't attack that.
17:40:23 <zuff> http://www.cs.nyu.edu/courses/fall08/G22.2965-001/geneticalgex
17:40:49 <zuff> hmm i'm just going to tell it to avoid non-printables
17:40:53 <zuff> it's not even interesting to watch it fuck with them
17:41:04 <zuff> avoid = don't use at all
17:47:26 <zuff> oklopol: get current, 100 random mutations, pick the one with the least levenshtein distance to the target, make that the current one
17:47:28 <zuff> repeat until equal
17:47:31 <zuff> so, yes, evolution
17:47:44 <zuff> mutation = delete random char, or, insert random printable ascii char at random point
17:47:48 <zuff> starts off with null string
17:49:57 <zuff> god this levenshtein is so sloooooow
17:50:02 <zuff> neeed optimized c version
17:50:11 <zuff> hey AnMaster, write a micro-optimized levenshtein distance function in c
17:52:31 <zuff> really fast up to about iter 4-5
17:52:38 <zuff> at which point it takes up to a minute per iteration
17:52:42 <zuff> and gets wildly slower each time
17:52:49 <zuff> AnMaster: levenshtein is a really slow algo, i think
17:52:52 <AnMaster> oh I guess it finds no better one?
17:52:57 <zuff> just levenshtein
17:52:59 <zuff> runs really slowly
17:53:06 <zuff> really really really, because it's a naive recursive python impl
17:53:16 <zuff> thus why I need to hook into a microoptimized C version
17:54:01 <AnMaster> http://en.wikibooks.org/wiki/Algorithm_implementation/Strings/Levenshtein_distance
17:54:13 <zuff> i'm using the python version from it
17:54:20 <zuff> but the emphasis is on the algorithm there
17:54:22 <zuff> not the implementation
17:54:36 <zuff> i.e. they're all naive and slooooow
17:54:43 <oklopol> zuff: that's not evolution.
17:54:54 <oklopol> that's stochastic hill climbing
17:55:02 <zuff> oklopol: how is it not "evolution"?
17:55:10 <zuff> it's evolving a string and picking the best one
17:55:32 <oklopol> okay yeah i guess "evolution" doesn't mean anything
17:55:35 <oklopol> but it's not a genetic algorithm
17:55:51 * zuff makes a simpler version
17:55:55 <zuff> "do one mutation, if it's better, use it"
17:56:17 <oklopol> well. guess it could be called "genetic", if you call asexual ones that... but that's really abusing terminology imo
17:56:34 <AnMaster> zuff, what about actually generating the same length every time? And using hamming distance
17:56:46 <zuff> AnMaster: that would be cheating
17:57:03 <AnMaster> true, but levenshtein looks quite complex
17:57:21 <zuff> if not a: return len(b)
17:57:21 <zuff> if not b: return len(a)
17:57:23 <zuff> return min( int(a[0] != b[0]) + levenshtein(a[1:], b[1:]), 1 + levenshtein(a[1:], b), 1 + levenshtein(a, b[1:])
17:57:28 <zuff> that's not hard
17:57:30 <zuff> admittedly it's dogslow
17:57:34 <AnMaster> zuff, in any case google to see if there is a better implementation?
17:57:46 <zuff> i did, the python extension was a 404
18:00:23 <zuff> So, when is a GA "real"? Hill climbing is a (1+1) selection strategy in GA speak. Even random search can be considered a GA, called (1,1) in GA speak.
18:00:23 <zuff> GAs are more about the genomes and the mutations than about N > 1 populations.
18:00:29 <zuff> people who use big words think i'm right
18:04:49 <MizardX> You need to either use dynamic programming, or caching to calculate the levenstein distance. Otherwise you end up with an exponential time complexity.
18:05:17 <zuff> http://www.reddit.com/r/hurts_my_eyes/ AAAAAAAAAAAAAAAAAAAAGH
18:05:28 <zuff> MizardX: how would caching help?
18:05:58 <MizardX> It eliminates common sub-nodes
18:06:08 <zuff> MizardX: i mean, what would i cache?
18:06:13 -!- ineiros has quit ("leaving").
18:06:29 <MizardX> (a,b) -> resulting distance
18:06:45 -!- ineiros has joined.
18:07:15 <zuff> MizardX: well i guess, i doubt there's that much repetition?
18:09:38 <MizardX> (a,b) -> { (a[1:], b) -> { (a[2:],b), (a[2:],b[1:]), (a[1:],b[1:]) }, (a[1:],b[1:]) -> { (a[2:],b[1:]), (a[2:],b[2:]), (a[1:],b[2:]) }, (a,b[1:]) -> {(a[1:],b[1:]), (a[1:],b[2:]), (a, b[2:])} }
18:11:00 <zuff> MizardX: the problem is that lists aren't hashable, so I'm thinkin' there'll be some overhead :P
18:12:07 <zuff> MizardX: btw, b is always hello world
18:12:12 <zuff> I'm sure I can optimize for that
18:12:26 <MizardX> substrings of "hello world"
18:12:47 <zuff> ok, let's try this
18:12:48 <MizardX> You could store it as an integer
18:13:06 <zuff> IndexError: list index out of range
18:13:09 <ais523> zuff: what do you mean, lists aren't hashable
18:13:17 <zuff> ais523: python.
18:13:21 <zuff> since they're mutable.
18:13:28 <ais523> zuff: that's just a failing of the language
18:13:38 <zuff> we all know you hate python ais523
18:13:40 <ais523> you can hash it yourself, instead
18:13:55 <ais523> I mean, just because something isn't easy in a particular language doesn't mean it isn't possible...
18:13:59 <zuff> but i happen to be more interested than coding this than hearing about how python is awful because of the WHITESPACE
18:14:08 <zuff> and i know i can
18:14:10 <zuff> i'm talking about speed here
18:14:17 <zuff> since, you know, i'm optimizing
18:17:42 <zuff> http://www.reddit.com/r/hurts_my_eyes/ has broken my eyes
18:17:55 <ais523> zuff: well, why did you visit a site with a name like that?
18:18:05 <zuff> it was linked to on reddit :P
18:18:12 <zuff> it's awful, and i love it
18:18:15 <zuff> and it's awful and aaaaaaargh my eyes
18:18:40 <zuff> ais523: turn on css.
18:19:04 <zuff> then kill yourself
18:19:09 <zuff> for maximum ouch, use a mouse
18:19:57 * zuff blinks and nothing changes
18:20:05 <zuff> it has invaded my skull oh god
18:20:07 <ais523> zuff: I haven't actually visited it
18:20:13 <ais523> with disclaimers like that, I'd be insane
18:20:29 <zuff> ais523: it should be okay if you're not epileptic and have eyse made of steel
18:20:59 <MizardX> zuff: http://www.vjn.fi/pb/p613543526.txt
18:21:52 <zuff> admittedly, it got really good then effed it up
18:21:57 <zuff> but it's hovering 6-7
18:22:30 <zuff> MizardX: gonna install yers
18:22:43 <zuff> i expect fireworks
18:23:48 <MizardX> hmm... maybe should replace the "return na - x" and "return nb - y" with "ret = na - x" and "ret = nb - y"
18:24:37 <zuff> less try thissss
18:25:22 <zuff> MizardX: yours is broken-ass
18:25:27 <zuff> it selects the null string every time
18:25:53 <MizardX> >>> levenshtein("","hello world")
18:26:47 <zuff> MizardX: ok, yours fails for lists
18:26:50 <zuff> does it only work on strings?
18:27:05 <zuff> I use ['a','b','c'] for easy mutation
18:27:13 <MizardX> >>> levenshtein([1,2,3],[2,3])
18:27:16 <zuff> i don't have to, neat
18:27:18 <ais523> but "abc" is ['a','b','c']
18:27:27 <ais523> at least in Prolog, that catches me out a lot
18:27:31 <ais523> different sorts of quotes FTW
18:27:32 <zuff> not in python.
18:28:02 <MizardX> strings are lists of one-length strings
18:28:12 <zuff> MizardX: not in python
18:28:20 <zuff> that's how they behave
18:28:22 <zuff> but that's just not true
18:29:32 <zuff> MizardX: yours definitely behaves differently
18:29:35 <ais523> 'abc' or just abc is the string
18:29:43 <ais523> presumably that's the same in Erlang too?
18:29:44 <zuff> MizardX: levenshtein is an operation on more than just lengths you know
18:29:45 <AnMaster> ais523, ah that doesn't eixist
18:29:56 <ais523> AnMaster: atom = string in Prolog
18:30:02 <AnMaster> Abc is a variable but 'Abc' is an atom
18:30:13 <AnMaster> ais523, atom != string in erlang
18:30:20 <ais523> barewords are atoms if they start lowercase or variables if they start uppercase
18:30:24 <ais523> single quotes can atomise anything
18:30:27 <zuff> MizardX: i'm putting the cache out of the function ofc
18:30:30 <zuff> to cache future calls
18:30:31 <AnMaster> string is a list that happens to contain numbers that are printable
18:30:37 <zuff> surely that's sane?
18:30:42 <ais523> also, most punctuation marks and punctuation mark combinations are atoms
18:31:17 <ais523> gprolog's nice enough to give compiler warnings about accidentally redefining things like - or / for that reason
18:31:21 <ais523> although not fail, apparently
18:31:37 <ais523> it's so easy to write a :- stuff. fail. rather than a :- stuff, fail.
18:31:40 <AnMaster> ais523, examples of such punct mark strings?
18:31:44 <ais523> and the first redefines fail to be true
18:31:51 <ais523> AnMaster: you can write, say, 4/6.
18:31:58 <ais523> that's equivalent to '/'(4,6).
18:32:02 <ais523> and defines a predicate called /
18:32:23 <ais523> the only punctuation mark that has to be quoted to use it as an atom is ,
18:32:35 <AnMaster> ais523, so I guess it isn't an atom when free standing in erlang
18:32:54 <ais523> and tbh, I'm not entirely sure why gprolog needs comma to be quoted
18:33:22 <AnMaster> ais523, well I tried some punctuation, none of them are atoms
18:33:32 <AnMaster> in fact if I don't quite the atom . isn't even valid inside
18:34:05 <AnMaster> in the last one it seems to be valid but undocumented
18:34:20 <MizardX> zuff: The cache is only relevant for the exact same strings, so storing it for future calls isn't going to help.
18:34:37 <ais523> AnMaster: . is handled specially by Prolog, due to being used as part of syntactic sugar
18:34:40 <zuff> MizardX: Are you sure? The same substrings will be found in later calls.
18:34:46 <zuff> So they should be cached.
18:34:59 <zuff> MizardX: Since the mutations only change one char.
18:35:02 <ais523> and . followed by whitespace is an entirely different punctuation mark
18:35:04 <AnMaster> ais523, well the docs says . isn't valid in an unquoted atom
18:35:06 <zuff> So caching them would be _very_ productive.
18:35:13 <AnMaster> in fact the only valid non-alphanumeric is _
18:35:28 <AnMaster> however it appears . is valid in the middle in some cases
18:35:30 <ais523> AnMaster: heh, that's a variable not an atom in Prolog, and in Erlang too presumably
18:36:08 <MizardX> zuff: Then you would need to use strings as keys, which would slow down the process. The cache would also get very large.
18:36:31 <AnMaster> ais523, "<ais523> also, most punctuation marks and punctuation mark combinations are atoms"
18:36:39 <zuff> MizardX: The slowdown - would it be slower than your version? I think not. Also, large is okay.
18:36:44 <AnMaster> no such are atoms when freestanding
18:36:50 <zuff> My strings do one of two things to the current mutation:
18:36:52 <zuff> Add a char, or remove a char.
18:36:59 <zuff> I don't have to calculate the full levenshtein each time, do i?
18:37:14 <AnMaster> ais523, anyway one thing I really dislike with erlang is the very very bad utf8 support. it seems to use latin1
18:37:17 <zuff> I mean, I know the levenshtein of the previous mutation.
18:37:25 <zuff> So surely I can calculate it for my trivial mutations?
18:37:58 <ais523> AnMaster: no idea what gprolog does with UTF-8 input, my guess would be store the individual bytes of the input raw
18:38:34 <AnMaster> ais523, same for erlang sadly, and then refuse to believe that list happens to be a string
18:39:22 <AnMaster> ais523, how do you write a char in prolog?
18:39:41 <ais523> normally you use either a one-element string '\a'
18:40:06 <AnMaster> $\a doesn't work however *tries to figure out why*
18:41:31 <AnMaster> but then erlang decides it isn't a string
18:41:51 <zuff> MizardX: Do you agree?
18:42:13 <AnMaster> zuff, what if that cause a length change?
18:42:19 <zuff> AnMaster: Of course it does
18:42:24 <MizardX> zuff: Maybe. I'm trying to test it.
18:42:28 <zuff> It either increases length by one or decreases by one.
18:42:42 <AnMaster> zuff, not just replaces existing char sometimes?
18:43:03 <zuff> Replacing an existing character happens if a generation removes a char, then another one adds one.
18:43:09 <zuff> It's simpler this way.
18:45:02 * zuff considers mechanical turk evolution.
18:45:07 <zuff> that is, to evolve subjective things.
18:45:33 <zuff> Just present the turkers with "Which of these (looks better/travels faster/etc)?"
18:45:38 <AnMaster> mechanical turk? hm wasn't that some old automaton or something?
18:45:51 <zuff> AnMaster: That's where the name comes from.
18:45:54 <zuff> It's an Amazon service.
18:46:01 <zuff> Basically, menial labor, over the internet. :P
18:46:34 <zuff> The "turkers" (people who are bored and want a little cash) get to choose a task set by whoever, and then fill it in (e.g. "which of these results is most relevant for the term X" or whatever)
18:46:42 <zuff> and get moolah from the person/corp setting the task.
18:46:50 <zuff> (if the response is accepted)
18:47:10 <zuff> it's got a big turker and task-setter userbase so it's been used a lot recently.
18:47:30 <AnMaster> I fail to see why the name is relevant?
18:47:38 <zuff> AnMaster: the mechanical turk was a hoax:
18:47:43 <zuff> it was presented as a chess-playing automaton
18:47:45 <zuff> but someone was inside it
18:48:03 <AnMaster> well, the website is a hoax? you don't get your money?
18:48:13 <zuff> but it lets you do subjective computing
18:48:17 <zuff> as if it was just regular computing
18:48:26 <zuff> i.e. it acts just like regular computation, but there's people behind it
18:48:37 <zuff> https://www.mturk.com:443/
18:50:09 <zuff> AnMaster: Some examples of the tasks submitted: https://www.mturk.com/mturk/findhits?match=false
18:50:21 <zuff> Reward, there, being how much the turkers get for completing one unit of it.
18:51:11 * zuff considers submitting something like "Enter a random number" and doing statistical analysis on it.
18:51:53 <AnMaster> the first result seems recursive or something?
18:52:14 <zuff> AnMaster: What?
18:52:26 <AnMaster> Answer a SIMPLE (fact or opinion) based question - quick and easy!
18:52:33 <zuff> What about it?
18:52:37 <zuff> AnMaster: It depends.
18:52:51 <zuff> AnMaster: Programmatically generated, yeah.
18:53:08 <zuff> Probably it's something like a website or something where you can enter a question and get an answer from them.
18:53:11 <zuff> That sort of thing. maybe. I dunno.
18:53:35 <zuff> If you're bored, 2c to answer random questions isn't bad.
19:10:12 -!- keymakertmp has joined.
19:10:52 <keymakertmp> if the paintfuck craze isn't over yet, here's a self-interpreter: http://yiap.nfshost.com/programs/paintfuck/pfipf.pf
19:11:30 <keymakertmp> it shows the program it's emulating in 2d grid, just as normal paintfuck interpreters do
19:13:03 -!- oerjan has joined.
19:13:18 <zuff> keymakertmp: It's died down but I still like it.
19:13:21 <zuff> Also, wowzers.
19:13:43 <zuff> keymakertmp: there isn't that much PF buzz any more but I still like pf
19:13:56 <zuff> btw, what program is it interpreting
19:14:59 <zuff> keymakertmp: does it wrap?
19:15:17 <keymakertmp> the grid does, yes. i decided to make it so because all the other interpreters seemed to work that way
19:15:46 -!- Slereah- has quit (Read error: 113 (No route to host)).
19:19:27 <keymakertmp> well, i'll get going. if the guy who made the language is around someone let him know about this, hah. when running, remember to have enough grid size in the actual interpreter you're using. i've used pedro gimeno's interpreter which i recommend
19:19:44 -!- keymakertmp has quit.
19:19:47 <oerjan> hm would it be possible to do something like befunge does, so it wraps but nevertheless has an infinite grid? it seems a bit harder since you must predict if it will do an infinite number of moves
19:30:10 <AnMaster> oerjan, you mean predict if it will paint forever (then wrap) or just paint a large number and halt?
19:30:26 <AnMaster> sounds impossible in the general case to me
19:32:39 <zuff> Thought: I would like JavaScript a lot more if "function" was something shorter, like "fun".
19:32:49 <zuff> return foo.filter(function (a) { a == b });
19:32:55 <zuff> return foo.filter(fun (a) { a == b });
19:33:29 <AnMaster> zuff, you obviously want erlang then, it uses "fun" for lambdas :P
19:33:32 <zuff> Well, you need a return in there too:
19:33:36 <zuff> return foo.filter(function (a) { return a == b });
19:33:40 <zuff> return foo.filter(fun (a) { a == b });
19:35:02 <MizardX> zuff: Python quickly runs out of memory (800mb+) when using the global cache with a long string. It starts trying to reclaim space and each generation gets really slow. By throwing away the cache after each check it stays at 10-20mb memory usage.
19:35:04 <AnMaster> lists:filter(fun(a) -> a =:= b end., foo)
19:35:26 <zuff> posts: function () {
19:35:26 <zuff> return Post.select(function (p) { return p.author == this });
19:35:31 <zuff> To be honest, that isn't all that bad.
19:36:59 <AnMaster> and you need a list Foo and so on
19:37:47 <AnMaster> Foo = [a,b,c,b,c], B = c, lists:filter(fun(A) -> A =:= B end, Foo).
19:46:47 -!- Corun has joined.
19:47:08 -!- kar8nga has joined.
19:48:56 <oerjan> AnMaster: i think i meant only if it moves forever without painting anything permanent. if it paints an infinite amount permanently then it wouldn't be able to fill the memory in finite time anyway.
19:49:20 -!- kar8nga has quit (Read error: 104 (Connection reset by peer)).
19:49:21 <oerjan> so sort of like a glider, which should be detectable, i think
19:49:25 -!- kar8nga has joined.
19:49:39 -!- kar8nga has quit (Read error: 104 (Connection reset by peer)).
19:49:45 -!- kar8nga has joined.
19:49:46 <AnMaster> oerjan, is that decidable in the general case without running and seeing what happens?
19:50:17 <oerjan> but if you run, you should be able to detect repetitions after a while
19:50:38 <oerjan> the memory would divide into two blocks, one static and one which moves
19:50:54 -!- kar8nga has quit (Read error: 54 (Connection reset by peer)).
19:50:59 <oerjan> i am also assuming the moving one doesn't grow, i guess
19:52:32 <oerjan> there are CA implementations that handle memory like that
19:53:36 <oerjan> perhaps, i recall xlife did
19:56:14 <oerjan> yeah hashlife looks like that too
19:58:26 <AnMaster> well xlife probably uses hashlife
20:00:09 <oerjan> don't know, but it definitely divided memory into regions
20:11:17 -!- olsner has joined.
20:21:23 -!- LinuS has joined.
20:24:57 <oerjan> <ais523> hmm... how many programming languages are self-double-quining?
20:25:50 <oerjan> you could have a reversible self-modifying language that spit out the final program state at the end...
20:25:52 <MizardX> zuff: They are discussing different syntaxes for lambda-functions for ECMAScript 4.
20:26:08 <oerjan> except with directions reversed
20:27:36 <oerjan> for joke languages, i think rot13 counts :D
20:27:36 <zuff> MizardX: ECMAScript 4 is officially dead, and most of its other changes were awful.
20:29:47 <zuff> I was thinking m
20:30:02 <oerjan> zuff: anything without alphabetic characters
20:41:25 -!- Corun has quit ("This computer has gone to sleep").
20:43:23 -!- Slereah_ has joined.
20:59:46 -!- Slereah- has joined.
21:08:01 <LinuS> http://www.lemonparty.org/
21:09:59 <zuff> LinuS: Fuck off.
21:10:10 <ais523> what's going on here, and why?
21:10:15 <zuff> ais523: lemonparty is a shock site.
21:10:24 <LinuS> comeon, it's a joke
21:10:25 <ais523> but why has LinuS posted it for no apparent reason?
21:10:32 <zuff> ais523: to shock people?
21:10:39 <ais523> oerjan: did you visit it by mistake?
21:10:42 <zuff> LinuS: It's not funny.
21:10:52 <LinuS> you don't think it is
21:10:54 <oerjan> i don't think it counts as a mistake
21:10:59 <LinuS> that doesn't mean it isn't
21:11:09 <zuff> LinuS: Gee, overall consensus seems to be that it isn't.
21:11:21 <ais523> maybe the UK should block it rather than Wikipedia
21:11:25 <zuff> I doubt anyone else here would find it funny.
21:11:41 <oerjan> ais523: the UK blocks Wikipedia?
21:11:55 <ais523> oerjan: just one page on it
21:11:56 <LinuS> well i don't see people finding it that disturbing too
21:12:08 <zuff> LinuS: Because we're not idiotic enough to click it.
21:12:08 <ais523> but 6 of the major ISPs are routing all traffic there via a proxy server
21:12:11 <zuff> If you _must_ have a smug sense of superiority into tricking people into clicking something they don't want, stick to rick astley or something.
21:12:18 <zuff> ais523: What is the page, by the way?
21:12:35 <oerjan> the weird thing is i _thought_ "maybe this is a rickroll"
21:12:50 <ais523> zuff: it's linked all over the internet by now, just check any of the major tech news sites
21:12:53 <zuff> oerjan: Rick astley video, old men orgy.
21:12:55 <zuff> What's the difference?
21:13:06 <LinuS> i'll tell you a story
21:13:08 <zuff> Oh, that album cover.
21:13:20 <zuff> Wonder if I'll get logged if I click.
21:13:26 <zuff> Eh, who cares!
21:13:29 <oerjan> only that the rick astley video probably wouldn't have made me want to hit LinuS with a _real_ saucepan
21:13:34 <ais523> the trouble is, ofc, that we have a Qatar problem now, that blocking just 6 people in the UK causes all Brits to be unable to edit Wikipedia
21:13:42 <zuff> Object not found
21:13:51 <ais523> zuff: it's strange really
21:14:01 <ais523> apparently, one of the ISPs puts a 404 message in the HTML, but a 403 in the header
21:14:02 <zuff> Fucking UK government. /sigh
21:14:28 <ais523> there are a huge number of ways around the filter, by the way
21:14:34 <zuff> Yeah, like Tor.
21:14:36 <ais523> just think of anything that sounds remotely plausible to work, and it does
21:14:40 <ais523> you can go a lot simpler than Tor
21:14:51 <zuff> ais523: Simple proxy? :P
21:15:01 <zuff> But it's the general sentiment of censorship that pisses me off.
21:15:03 <Slereah-> I know something way simpler than Tor.
21:15:18 <zuff> Slereah-: Errr.
21:15:22 <ais523> Slereah-: that would require not being on a major UK ISP
21:15:23 <zuff> That only works if you're right next to a UK border.
21:15:37 <zuff> Or, say, you can swim across to france really, really fast.
21:15:40 <Slereah-> Are we talking about a countrywide ban?
21:15:49 <Slereah-> Yeah, that's pretty hard to beat.
21:15:55 <zuff> Nationwide censorship.
21:16:06 <ais523> it would be if it had been done at all competently
21:16:24 <Slereah-> I just use foxyproxy for my trolling needs.
21:17:17 <ais523> http://yro.slashdot.org/article.pl?sid=08/12/07/1253228 has lots of simple workarounds, but people have found one even simpler
21:17:48 -!- james has joined.
21:18:06 -!- Slereah_ has quit (Read error: 110 (Connection timed out)).
21:18:52 <zuff> james: what brings you here?
21:19:16 <james> Just passing through. :)
21:22:11 -!- thutubot has joined.
21:22:40 <zuff> i see we have a lot of unsavory content today!
21:22:43 <ais523> yay, good to have you back thutubot
21:22:55 <zuff> hey ais523, wanna start optbot while you're at it? :P
21:23:19 <zuff> $ cd ~ehird/optbot; ruby optbot.rb &
21:23:42 <zuff> disown detaches a background job from the shell
21:23:44 <pikhq> Shell is no longer responsible for the job.
21:23:50 <zuff> so that it continues running even when you logout
21:24:02 <zuff> feel free to :P
21:24:08 <zuff> probably the best idea
21:24:11 <zuff> I didn't know about nohup
21:24:27 <ais523> ^bf >,[.>,]+++++++++++++++++++++++++++++++++.<[<]>[.<]!>,[.>,]+++++++++++++++++++++++++++++++++.<[<]>[.<]
21:24:27 <fungot> >,[.>,]+++++++++++++++++++++++++++++++++.<[<]>[.<]!>
21:24:36 <ais523> ^bf >,[.>,]+++++++++++++++++++++++++++++++++.<[<]>[.>]!>,[.>,]+++++++++++++++++++++++++++++++++.<[<]>[.>]
21:24:37 <fungot> >,[.>,]+++++++++++++++++++++++++++++++++.<[<]>[.>]!>,[.>,]+++++++++++++++++++++++++++++++++.<[<]>[.>]!
21:24:51 <ais523> ^bf >,[.>,]+++++++++++++++++++++++++++++++++.[-]<[<]>[.>]!>,[.>,]+++++++++++++++++++++++++++++++++.[-]<[<]>[.>]
21:24:52 <fungot> >,[.>,]+++++++++++++++++++++++++++++++++.[-]<[<]>[.>]!>,[.>,]+++++++++++++++++++++++++++++++++.[-]<[<]>[.>]
21:25:04 <ais523> hmm... is that cheating?
21:25:24 <zuff> trivial dbfi quine:
21:25:29 <ais523> well, it's a quine in /something/
21:25:32 <zuff> (read)(print)(print !)(print)!(read)(print)(print !)(print)
21:26:01 <ais523> hmm... you could get an Easy quine along these lines, probably
21:27:37 <ais523> >+[>,[.>,]<[<]>[.>]>-<]>+[>,[.>,]<[<]>[.>]>-<]
21:27:45 <ais523> now we nead an Easy interp to test it on
21:27:53 <zuff> ais523: that's not an easy program
21:28:03 <zuff> that's some input to every easy program
21:28:14 <ais523> oh, I consider the sample input to /be/ the program
21:28:23 <zuff> that defeats the point
21:28:32 <zuff> for your example, easy = bf
21:28:37 <zuff> http://esolangs.org/wiki/Easy
21:28:42 <zuff> !bf >+[>,[.>,]<[<]>[.>]>-<]>+[>,[.>,]<[<]>[.>]>-<]
21:28:47 <zuff> !bf >+[>,[.>,]<[<]>[.>]>-<]>+[>,[.>,]<[<]>[.>]>-<]!a
21:28:53 <zuff> !bf >+[>,[.>,]<[<]>[.>]>-<]>+[>,[.>,]<[<]>[.>]>-<]! >+[>,[.>,]<[<]>[.>]>-<]>+[>,[.>,]<[<]>[.>]>-<]
21:28:58 <ais523> my example isn't bf = easy
21:29:02 <ais523> because it takes input from the program itself
21:29:11 <ais523> set up so the first half is the program, the second half is input
21:29:23 <ais523> doesn't jayCampbell have an Easy interp?
21:31:02 <ais523> <MizardX> +[->.[,>.]<[<]>[,>]]+[->.[,>.]<[<]>[,>]]
21:31:07 <ais523> also, Easy's still listed as unimplemented
21:31:18 <ais523> but it seems MizardX wrote almost exactly the same quine as me
21:31:25 <ais523> just simpler, because I forgot that the input wasn't itself executed
21:33:19 <oklopol> lol i forgot the car thing running
21:33:28 <oklopol> the cars now get half a screen further \o/
21:37:48 <oklopol> but they've started dying in the beginning.
21:38:02 <oklopol> which isn't a surprise, but it's still funny
21:38:10 <zuff> oklopol: relink?
21:38:16 <oklopol> http://www.wreck.devisland.net/ga/
21:40:11 <MizardX> 366 generations, 6623.56 seconds to evolve the string "crossover is applied on an individual by simply switching one of its nodes with another node from another individual in the population" :)
21:41:08 <MizardX> http://www.vjn.fi/pb/p223433564.txt
21:41:21 <zuff> MizardX: Stop doing things better than me damnit
21:41:28 <zuff> ch = random.choice('abcdefghijklmnopqrstuvwxyz ')
21:41:32 <zuff> Fail. That is so cheating.
21:41:46 <zuff> Also, that is some slow generationing.
21:42:12 <zuff> they're time-limited
21:42:18 <zuff> so if they all get to the same place it's probably over
21:42:29 <zuff> I've got a very good batch here.
21:42:47 <oklopol> of course they're time-limited, they never die
21:42:56 <oklopol> they became balanced in a minute
21:42:57 <zuff> but are they increasing in speed
21:50:06 <oklopol> j is a pretty awesome language
21:50:21 <pikhq> Pffft. C's better.
21:50:21 <oklopol> i especially love the way function composition works
21:51:06 <pikhq> That's because you don't know the true *power* involved.
21:51:18 <oklopol> i'd like to see that evolution thing try to make a unicycle
21:51:51 <pikhq> Ternary operators in ternary operators in ternary operators!
21:52:22 <pikhq> (only when I'm a jerk)
21:52:36 <oklopol> you're saying c owns j at writing expressions that are short but hard to read?
21:52:55 <ais523> pikhq: you are wrong on this, I think
21:52:57 <zuff> pikhq: you're delusional, or have never seen j
21:52:58 <pikhq> Probably not true, but language bigotry doesn't have to be logical.
21:53:09 <zuff> j is the son of apl fer chrissakes
21:53:10 <pikhq> Oh, who am I kidding?
21:53:11 <zuff> except it uses ASCII
21:53:14 <zuff> and is even crazir
21:53:24 <pikhq> J is ASCII APL. C got its ass kicked.
21:54:03 <pikhq> ... Unless you do inline assembly by defining char pointers to hand-compiled machine code?
21:54:21 <oklopol> i mean i have the feeling i won't change python for a language without some kind of objects, but this is definitely something i'm going to learn very goodly.
21:55:01 <oklopol> pikhq: well that's basically interpretation, in which case obfuscation is language-independent.
21:57:05 <zuff> oklopol: you should code a thing that evolves a car out of primitive things
21:57:10 <zuff> like, really simple things
21:57:21 <oklopol> something like that would be awesome
21:57:27 <zuff> a connecting line, a circle (that doesn't roll, ofc)
21:57:34 <zuff> but it'd have to come up with its own connections
21:57:42 <oklopol> unfortunately physics engines are quite a mental exercise to get working.
21:57:51 <pikhq> So I've been told.
21:57:52 <zuff> oklopol: write your own, it doesn't need to be realistic :P
21:58:03 <oklopol> zuff: i've written a lot of those
21:58:12 <oklopol> and i guess i could just use one of those
21:58:31 <oklopol> except i guess i've only done stuff with ball vs polygon collisions
21:58:40 <zuff> you could have like,
21:58:51 <zuff> plank, of various lengths and widths and stuff
21:59:12 <zuff> a hub for connetions, tht makes them bend
21:59:15 <zuff> (to tie it together)
21:59:21 <oklopol> and i'm not comfortable doing collision math i can't derive myself (NIHS)
21:59:25 <zuff> and it'd just start out as a mash of stuff that falls aprat
21:59:36 <zuff> it'd have to go at like 20x speed to that flash one
21:59:41 <zuff> but it'd evolve its own mechanisms
21:59:46 <zuff> and add pulleys and gears and cogs
21:59:53 <zuff> and it'll build a working vehicle
22:00:24 <zuff> oklopol: then, you add stuff to make weapons with
22:00:31 <zuff> and make cars SHOOT THE FUCK OUT OF EACH OTHER
22:00:40 <zuff> CARVOLUTION SHOWDOWN 2009
22:00:40 <oklopol> yeah and sensors of course
22:00:47 <oklopol> so they can become intelligent! :D
22:01:12 <zuff> oklopol: forget vehicle, make it evolve a robot
22:01:18 <zuff> it'll move eventually, robots have to
22:01:21 <zuff> so you get vehicle for free
22:02:04 <oklopol> so how about just having like an area where bots go around killing each other.
22:02:09 <zuff> oklopol: well yeah
22:02:14 <zuff> once it evolves single moving ais
22:02:22 <zuff> you can put some more materials & fitness logic in
22:02:28 <zuff> and they can evolve defense and stuff
22:02:34 <zuff> just pit them against basic flying droids and stuff
22:02:38 <zuff> then you can pit them against each other
22:02:56 <zuff> oklopol: preferably the fitness function's params would evolve depending on how well it does in practice
22:03:01 <ais523> oklopol: you should try these techniques on this year's ICFP contest
22:03:03 <oklopol> and maybe you could build your own bots and fight themmmm
22:03:05 <zuff> i.e. it changes its theoretical fitness function to match how the bot does irl
22:03:19 <zuff> it'd be totally neato!
22:03:37 <zuff> oklopol: well i was just rambling :)
22:03:39 <oklopol> i'm not sure what you meant by this fitness function comment
22:03:50 <oklopol> well yeah second order evolution is an interesting concept
22:04:01 <oklopol> but that's a whole another degree of hard
22:04:31 <oklopol> especially as i'd want to make it a totally self-sufficient evolution system
22:04:58 <oklopol> (for which i like to use the term "life")
22:05:34 <oklopol> i love this j tutorial, often it doesn't explain the syntax at all, just uses it
22:05:43 <ais523> what could be impressive would be a reverse evolutionary program
22:05:49 <oklopol> then i use like 10 minutes reverse-engineering how i think it might work
22:05:54 <ais523> which always stays the same, but seeks out better and better programmers to maintain it
22:05:59 <oklopol> and when i finally get it, i press "advance", and things are explained
22:06:04 <ais523> and trains up its programmers to become better at maintenence programming
22:06:20 <ais523> umm, not sure how to spell that particular word
22:06:22 <zuff> ais523: i think it's called open sourc
22:06:24 <ais523> which is strange for me
22:06:32 <zuff> os x sez maintenance
22:06:42 <ais523> how did I manage to mess it up so much?
22:07:39 <oklopol> high-maintenance is a very common adjective
22:08:57 <zuff> oklopol: you know, that ai would be really funny
22:09:00 <zuff> it'd look ridiculous, probably
22:09:00 -!- GreaseMonkey has joined.
22:09:16 <zuff> made out of tons of planks and pulleys and extending/unextending arms and sensors poking out from everywhere
22:09:23 <zuff> and i bet it moves by like rolling around and contracting X
22:11:07 <oklopol> do you think it should be side- or top-cam'd?
22:11:30 <oklopol> "view" might be a better term.
22:11:46 <zuff> i think that top-cammed would leave more possibilities
22:11:51 <zuff> i.e. pushing boxes nicely and stuff
22:11:56 <zuff> side-perspective, like the flash car,
22:12:01 <zuff> is nicer to watch
22:12:29 <LinuS> http://lexlibertas.com/wordpress/wp-content/uploads/2008/04/i-divided-by-zero.jpg
22:12:35 <oklopol> also, the technicalities of moving around are not very interesting with top-view
22:12:43 <oklopol> unless you still have complex ground
22:12:52 <oklopol> but then you clearly should just do 3d
22:13:34 <oklopol> because while i've read books about the subject, i somehow think that would turn out to be harder than the actual evolution part.
22:13:46 <oklopol> cuz i haven't actually done that.
22:14:28 <oklopol> if it's top-cam'd, i'm not sure whether it's useful to make moving at all complicated.
22:16:20 <oklopol> then again, i'd definitely like the whole program to be somehow completely physical...
22:18:58 <oerjan> LinuS: it's going to be a cold day in hell until i click another link by you
22:19:11 <ais523> I almost clicked, but noticed the person who sent it just in time
22:19:38 <ais523> oerjan: is that a shock-site too?
22:19:47 <ais523> I don't know about that one, but it seemed plausible from context
22:20:02 <ais523> so either it's LinuS messing with us, or a shock-site
22:20:32 <zuff> it's a boring, unfunny image
22:20:44 <zuff> I'll /ignore LinuS if he talks again, probably.
22:20:55 <ais523> isn't that the same as just /ignoring?
22:21:13 <oerjan> ais523: off-by-one error
22:22:04 <ais523> why do we need graue in particular? is the wiki down again?
22:22:09 <oklopol> what has LinuS linked in the past that was shocking?
22:22:52 <LinuS> i find that pic pure genius, but whatever, i've been reductio ad hitlerumed
22:23:04 <LinuS> lemonparty, oklopol
22:23:16 <oklopol> link lemonparty, i'll take the blame.
22:24:15 <oerjan> LinuS: nonsense! i have never heard that hitler posted shock picture links.
22:24:29 <oklopol> they are not only old, they are also men.
22:25:09 <LinuS> oerjan: hitler was even banned from WoW and rickrolled a lot of times, check youtube
22:25:36 <LinuS> http://www.youtube.com/watch?v=-r9dzc0duUw
22:27:16 <zuff> 22:25 LinuS: oerjan: hitler was even banned from WoW and rickrolled a lot of times, check youtube
22:27:28 <zuff> ^ you're not funny and you're annoying
22:28:10 <oklopol> heh, zuff is even more of a bitch than tusho and ehird :P
22:28:32 <oerjan> oklopol: i think there's some kind of evolutionary algorithm at work there
22:28:35 <zuff> sorry for being such a bitch to the absolute comedy gold of old men having sex and talking about hitler.
22:29:24 <LinuS> don't worry, not everyone can take jokes
22:29:29 <LinuS> it's not your fault
22:30:21 <oklopol> zuff: i don't think LinuS was being very funny either, i just didn't find him annoying
22:30:51 <oklopol> then again i can't be annoyed by anything right now, i'm having j
22:30:52 <zuff> LinuS: except nobody so far has found anything you've said funny as far as I can tell, and you've been ignored by at least one person already
22:30:57 <zuff> maybe your imaginary friends laughed.
22:31:43 <oklopol> LinuS: now see, zuff is funny. try something like that
22:32:05 <zuff> sorry, it's physically impossible for anyone but me to be funny.
22:32:10 <zuff> i have a monopoly on funny.
22:32:26 <LinuS> oh, you mean start flaming, telling "i have ignored you" and then talking to someone and acting randomly?
22:32:28 <zuff> i'm considering leasing out funny
22:32:50 <zuff> LinuS: out of curiosity, have you ever talked about esolangs in here?
22:33:19 <LinuS> aha i've ignored you! i can't ready you! i'm leethaxor! i 0wnt you! joo!
22:33:45 <zuff> "question answering by method of trying to mock the asker and failing badly"
22:33:54 <zuff> it's the future
22:34:55 <oerjan> zuff: i am sorry this is clearly a lie. i have a patent on the whole "pun" subfranchise
22:35:05 <ais523> btw: have you seen <http://nethack.wikia.com/wiki/Image:Rnz100.svg>?
22:35:09 <zuff> oerjan: yes, but your puns aren't funny.
22:35:11 <zuff> no intersection.
22:35:16 <ais523> that isn't a shock site, it's one of the world's craziest random number functions
22:35:26 <LinuS> me? talking about esolangs?
22:35:29 <ais523> the probability distribution, to be precis
22:35:31 <LinuS> http://rafb.net/p/J9RrrL70.html
22:35:33 <oerjan> well then that explains it
22:35:44 <ais523> oerjan's puns are funny!
22:35:50 <zuff> LinuS: ah. i remember that one. I pretended to be mildly interested to humour you.
22:36:05 <zuff> i'm not sure the ratio is one shocksite link per trivial esolang, though.
22:36:14 <zuff> nobody told me if it is
22:36:24 <ais523> "rnz produces such a bizarre distribution that it is hard to tell what the original programmer had in mind. It's quite possible that it was meant to be some distribution with Z in the name, but its construction doesn't seem to suggest one."
22:36:36 <Slereah-> http://www.efukt.com/2339_The_Worst_Sex_Accident_Of_All_Time.html
22:37:05 <LinuS> well what about goatse then?
22:37:21 <zuff> Slereah-: well, you're Slereah-
22:37:26 <zuff> ithink we all know not to click your links.
22:37:29 <zuff> also, you actually talk about interesting stuff.
22:37:46 <Slereah-> I thought I mostly talked about butts.
22:37:49 <oklopol> ais523: that indeed looks more weird than just stupid
22:37:52 <ais523> Slereah-: is that a shock site?
22:37:58 <zuff> ais523: a porn site.
22:38:02 <Slereah-> ais523 : Just look at the fucking link
22:38:05 <zuff> "e fucked", "The worst sex accident of all time"
22:38:08 <zuff> It's not rocket science.
22:38:12 <ais523> I tend not to click on links in IRC anyway
22:38:17 <oklopol> i mean, you can see all kinds of patterns, i've had a lot of "hey, maybe the point is... wait, no"'s
22:38:26 <ais523> especially not during a conversation about shock sites
22:38:35 <zuff> ais523: he meant read the actual link
22:38:39 <ais523> I don't even follow links zuff gives me, I ask em what's at the other end first
22:38:39 <zuff> which made it fairly obviou
22:38:58 <Slereah-> If you're a brave man, you can also click it
22:39:00 <zuff> ais523: http://www.youtube.com/watch?v=Yu_moia-oVI
22:39:19 <oklopol> 1g1c is not very shocking either
22:39:30 <Slereah-> Well, not by trolls standards.
22:39:31 <oklopol> i was like "when does this start?" when i watched it
22:40:04 <oklopol> the real of 1g1c is the caption
22:40:11 <ais523> "If the hero's experience level is 18 or greater, then rne can return numbers greater than 5; but this event has low probability (1/1024 for all experience levels 18 or greater), and to keep this explanation simple it will not be considered."
22:40:33 <ais523> yep, rnz could only have been designed by someone who was very tired and didn't realise what they were writing
22:40:43 <ais523> oklopol: maybe rnz could be some operator for noprob?
22:40:49 <ais523> it's certainly weird enough, it might make it TC
22:41:03 <ais523> map probabilities through an rnz-distribution
22:42:26 <oklopol> ais523: weirdness doesn't really give tcness...
22:42:45 <oklopol> it's more the simple logical stuff that does it
22:43:01 <Slereah-> Well, logical stuff, you usually know if it makes something TC
22:43:16 <oklopol> what i want for noprob would be to remove the whole probability thing... and somehow get data structures out of the "dependency graph"
22:43:23 <oklopol> i mean, it's an interesting thought
22:43:40 <oklopol> you have a lot of variables, and they are all linked in different ways through operators
22:44:17 <oklopol> you can't really access the inner nodes, because there are no such operatorsin logic, which is why you can't get data structures
22:44:25 <oklopol> but you can *create* data structures
22:44:37 <LinuS> i promise this one to be funny
22:44:39 <LinuS> http://www.youtube.com/watch?v=J5z4Vs26-TI&feature=related
22:44:47 <LinuS> no, it isn't a rickroll
22:45:05 <oklopol> so i was thinking maybe you could make primitives that somehow found existing variables that have certain correlations with the variables you're actually holding
22:45:18 <oklopol> but this is all so vague, and it completely nulls everything i had sofar
22:47:31 <oklopol> LinuS: heh, that indeed is funny
22:47:46 <oklopol> except for the fucking laugh track
22:51:40 -!- LinuS has quit ("Puzzi. S, parlo proprio con te. Puzzi.").
22:51:50 <zuff> my pitiful existance
22:52:08 <zuff> how can my life ever be as exciting and outgoing as mr lemonparty?
22:52:12 <zuff> oerjan, oklopol, ais523
22:52:14 <zuff> i can't take it any more
22:52:18 <zuff> this will be the last you see of me
22:52:20 -!- zuff has left (?).
22:52:27 -!- zuff has joined.
22:52:32 <zuff> can i borrow some sugar?
22:52:34 -!- zuff has left (?).
22:52:57 -!- zuff has joined.
22:53:02 <zuff> not just a lil bit of sugar?
22:53:05 <zuff> help a poor guy out here?
22:53:13 <zuff> i'll just go starve.
22:53:13 -!- zuff has left (?).
22:53:27 -!- zuff has joined.
22:53:32 <zuff> I'll have you know that sugar is very
22:53:36 <zuff> and by depriving
22:53:38 <zuff> me of it you are
22:53:40 -!- zuff has left (?).
22:54:02 -!- zuff has joined.
22:54:03 <ais523> oklopol: I suggest brown sugar, because zuff seems to want nutrition
22:54:07 <zuff> can't taken it any more
22:54:12 <zuff> need sugarhruyi
22:54:14 -!- zuff has left (?).
22:54:30 -!- zuff has joined.
22:54:34 -!- zuff has left (?).
22:54:49 -!- zuff has joined.
22:55:03 <zuff> uiahsdiaw67&!% ~
22:55:04 <zuff> 34;ik2lo2ol953
22:55:06 -!- zuff has left (?).
22:55:29 -!- zuff has joined.
22:55:32 <zuff> wow guys being a ghost is fun
22:55:32 <oklopol> LinuS is missing quite a lesson in internet comedy.
22:55:36 <zuff> hey can i borrow some sugar?
22:55:43 <ais523> I thought the whole point of bouncers was to avoid quitjoinspam?
22:55:47 <zuff> i'm... really hungry
22:55:49 <zuff> need some sugar
22:55:50 <zuff> even as a ghost
22:55:55 <oklopol> ais523: it's crucial to the act
22:55:55 <zuff> oh god being a ghost is awful
22:56:01 <zuff> oklopol: sugar? plz?
22:56:10 <zuff> begging you hear
22:56:11 <oklopol> but really, we shouldn't be talking out loud in the audience
22:56:17 <zuff> I NEED SOME SUGAR
22:56:20 <oklopol> am i supposed to answer :|
22:56:35 -!- zuff has left (?).
22:56:38 -!- zuff has joined.
22:56:41 <zuff> oops slipped on my keyboard
22:56:45 <zuff> how about some sugar
22:56:51 -!- zuff has left (?).
22:56:54 -!- zuff has joined.
22:57:04 <zuff> can i have some of thems sugar oklopol?
22:57:09 <oklopol> let's make them *sugar*fingers
22:57:15 * oklopol gives a large pile of suggah
22:58:05 <ais523> zuff: I tried to DCC you some sugat
22:58:11 <zuff> ais523: it failed
22:58:19 -!- zuff has left (?).
22:58:25 -!- zuff has joined.
22:58:27 <zuff> err almost forgot
22:58:30 <ais523> someone else will have to give zuff the sugar
22:58:32 <zuff> ```28907*EYHCX
22:58:34 -!- zuff has left (?).
22:59:19 -!- zuff has joined.
22:59:24 <zuff> wow guys being a metaghost is fun
22:59:29 <zuff> can i have some metasugar?
22:59:41 <ais523> [22:59] [DCC] Upload of "sugar.o" to zuff failed. Reason: Timed out.
22:59:48 <zuff> ^ internet comedy gold
23:00:02 <zuff> ais523: 2 vs 1
23:00:09 <zuff> democracy in action
23:00:21 <ais523> there are a huge number of people here who didn't comment that it was funny
23:00:24 <zuff> i chuckled at my own jokes.
23:00:28 <ais523> (N.B. I know this is a fallacious argument)
23:00:31 <zuff> ais523: there is no quorum in #esoteric
23:00:39 <ais523> however, that doesn't mean its conclusion is wrong!
23:01:05 * ais523 applies ad logicam twice, to create a meta-ad-logicam that proves that if something is the conclusion of a fallacious argument, it is true
23:01:10 <oklopol> have to ask, since it's also the j comment.
23:01:22 <zuff> it's some latin shit
23:01:27 <ais523> it's one of those acronyms that only work in Latin
23:01:38 <ais523> which means "note well", i.e. "note in a good manner"
23:01:49 <zuff> ais523: i think it means
23:01:56 <zuff> note properly and carefully
23:04:12 <zuff> this car is shit
23:08:11 <oerjan> <oklopol> have to ask, since it's also the j comment.
23:08:20 <oerjan> you mean the actual comment delimiter?
23:09:22 <ais523> Algol had ¢ as one option for a comment delimiter, IIRC
23:11:03 <oklopol> fac =: 1`(]*$:@<:)@.* NB. i think this is a factorial, but i need to check
23:11:28 <zuff> oklopol: that's an ugly fac
23:11:30 <zuff> it could be a lot shorter
23:12:29 <ais523> it looks like a smiley
23:12:33 <ais523> just a very complex one
23:12:53 <zuff> oklopol: surely, i mean, that's shorter in haskell:
23:12:58 <zuff> fac n = product [1..n]
23:13:01 <oerjan> ais523: a smiley by something out of betelgeuse
23:13:50 <oklopol> zuff: point is that factorial algo can't probably be shorter
23:14:40 <oklopol> i'm having some trouble getting things right, as the tutorial i'm reading doesn't really formally explain what's happening
23:20:12 <oklopol> zuff: also fac=:! of course :P
23:30:04 <zuff> ap[]}ASO)!I_)!
23:30:32 -!- jayCampbell has joined.
23:30:42 -!- Slereah- has quit (Read error: 113 (No route to host)).
23:31:07 <oklopol> lol... dyadic # is overloaded, it's both filter and concatMap . replicate
23:35:04 -!- Judofyr has quit.