←2011-05-27 2011-05-28 2011-05-29→ ↑2011 ↑all
00:00:18 -!- oerjan has joined.
00:00:27 <Lymia> {)}:i{.!!-}:d{.*.256=!*}:s{.p}:o](0\~@
00:00:30 <Lymia> And I thought Perl was bad.
00:02:32 <pikhq> What's that, awk?
00:03:06 <Lymia> Golfscript.
00:03:06 -!- FireFly has quit (Quit: swatted to death).
00:03:17 <pikhq> Aaah.
00:04:01 <variable> So, I want to work on a basic Bayesian filter type program, just to learn the basics of creating one. My goal is to separate between English and Non-English with text that is in Arabic letters. Perhaps also to have multiple languages, how could I start? I was reading some articles I found on Google but none really told me how to begin
00:07:59 * pikhq is willing to bet that this compiler is just too stupid for its own good.
00:12:23 <oerjan> <ZOMGMODULES> if i wanted to scare people, i would do that. i would also pick a nick like "Guest17101"
00:12:35 <oerjan> <ZOMGMODULES> at any rate, I see cpressey [...]
00:12:45 <oerjan> and then pretend to have MPD
00:13:34 <variable> oerjan: pikhq: any ideas?
00:14:59 <oerjan> i'd imagine counting the occurrences of the 100 most common words in english would go a long way.
00:15:31 <oerjan> although more information might discern shorter texts, maybe
00:16:24 <oerjan> hm idea: design sentences in a non-english language where every word is actually a legal english word
00:17:10 <oerjan> but not actually used as one (i.e. not a transparent borrowing)
00:17:49 <olsner> sounds boring
00:19:20 <oerjan> hm doing this in norwegian is not as easy as i thought
00:19:30 <Vorpal> night
00:19:44 <oerjan> have to avoid the endings with -er. or maybe...
00:20:41 <Lymia> oerjan, your challenge is to do that with Japanese.
00:20:43 <Lymia> I wish you luck.
00:20:54 <oerjan> FUNNY GUY
00:21:09 <olsner> hur säger man lycka till på norska nu då?
00:21:15 <oerjan> lykke til
00:21:54 <oerjan> obviously the reason that won't work is that all japanese sentences contain transparent english borrowings.
00:21:58 <olsner> how disappointingly obvious
00:22:14 <oerjan> heh
00:22:36 <Lymia> oerjan, find one valid Japanese word that is also an valid English word (spelling included)
00:22:48 <olsner> it's just swedish with a different orthology
00:23:02 <oerjan> Lymia: ok there _might_ be another reason then :P
00:23:20 <olsner> I'm so going to have to rewatch this movie sober later
00:23:39 <oerjan> pikhq: you don't know a japanese character which accidentally looks like an english word, do you?
00:23:46 <oerjan> *happen to
00:23:53 <Lymia> いいえ
00:24:00 -!- Vorpal has quit (Ping timeout: 250 seconds).
00:25:05 <oerjan> well if iiiiz was an english word and you had bad handwriting...
00:25:39 <pikhq> oerjan: No idea.
00:25:43 <pikhq> Lymia: tsunami
00:25:52 <pikhq> :P
00:26:17 <pikhq> Well, I do believe I've pinpointed the source of my woes.
00:26:20 <pikhq> offset (Move x : Loop a y : xs) = Loop (a+x) (Move x : y ++ [Move (x*(-1))]) : (offset $ Move x : xs)
00:26:25 <pikhq> *ouch ouch ouch*
00:26:31 <Lymia> pikhq, nope.
00:26:32 <pikhq> Can you see what's so painful about it?
00:26:35 <Lymia> The Japanese don't spell it like that.
00:26:41 <olsner> lol, the error in that is so blatantly obvious
00:27:02 <pikhq> olsner: And remember, I was finding the *fixed point* of that function.
00:27:32 <olsner> pikhq, doing it wrong as always :/
00:27:44 <Lymia> pikhq, please turn that into English.
00:27:48 <Lymia> Or at least math.
00:28:00 <oerjan> pikhq: um i don't see why that should infinitely recurse at least
00:28:09 <pikhq> oerjan: That's only one line from the function.
00:28:15 <olsner> Lymia: ehm, fixed points are math aren't they?
00:28:30 <pikhq> oerjan: Aaand it's not infinitely recursing.
00:28:41 <oerjan> just wrong?
00:29:12 <pikhq> oerjan: It's just reconstructing a list is all.
00:29:16 <pikhq> oerjan: See the "++".
00:29:27 <Lymia> olsner, translate that function into math
00:29:39 <pikhq> That list is, incidentally, 2 megabytes before it hits my parser.
00:29:46 <olsner> Lymia: not my job, I'm just here telling you it could be
00:30:53 <pikhq> Suddenly, it executes in 5 seconds instead of 2 minutes.
00:30:56 <oerjan> i'm assuming this is brainfuck with relative positioning built into the representation
00:31:26 <pikhq> Yeah, relative positioning is built into my intermediate representation.
00:32:04 <oerjan> well that particular rule looks correct to me...
00:32:34 <pikhq> *Correct*, yes.
00:32:43 <oerjan> or maybe you don't want to have that second offset since you apply fixed point anyway
00:32:44 <pikhq> *Insanely slow*, also yes.
00:35:04 <oerjan> well that's the only thing i can think of
00:35:41 <pikhq> The point is not that this optimisation functioned incorrectly.
00:35:48 <pikhq> The point is that it took 2 minutes to execute.
00:36:03 <oerjan> <oerjan> or maybe you don't want to have that second offset since you apply fixed point anyway
00:36:07 <olsner> the point is blah-di-blah-di-blah?
00:36:30 <oerjan> i can see how that might give a blowup
00:36:41 <pikhq> oerjan: Uh, wouldn't that screw up the correctness of the function?
00:36:57 <oerjan> oh?
00:37:55 <oerjan> are you, or are you not, reapplying offset on the result of offset until a fixed point?
00:38:06 <oerjan> if so then it shouldn't
00:38:18 <pikhq> Oh, duh, I see what you're saying.
00:39:30 <pikhq> Does not seem to have helped, though.
00:39:50 <oerjan> i note you are not applying offset _inside_ the loop
00:39:53 <oerjan> *Loop
00:40:11 <pikhq> I am, however, doing "y ++ [Move (x*(-1))]".
00:40:28 <oerjan> oh you mean the problem is ++ slowness?
00:40:36 <pikhq> Pretty sure.
00:41:12 <oerjan> that would surprise me, unless you put a whole lot of Moves there...
00:41:24 <oerjan> appending a single element isn't slow i think
00:41:29 <pikhq> *To the end*.
00:41:38 <Lymia> I thought prepending was faster than appending.
00:41:45 <pikhq> ++ reconstructs the entire list and replaces the tail.
00:42:00 <oerjan> pikhq: it's a _little_ slower, but it shouldn't be _huge_
00:42:15 <pikhq> : is O(1). ++ is O(n). Any further questions?
00:42:29 <oerjan> well...
00:42:50 <olsner> <pikhq> O(1) is O(n). Any further questions?
00:42:51 <oerjan> well you said the list was long
00:43:11 <oerjan> (lost kingdom?)
00:44:31 -!- pikhq_ has joined.
00:44:44 <pikhq_> 5 minutes and it's still running.
00:44:57 <pikhq_> And yes, it's LostKng.
00:45:10 <oerjan> i still don't understand why it should make an enormous difference on a list which you are traversing anyhow
00:46:33 -!- pikhq has quit (Ping timeout: 252 seconds).
00:47:09 <oerjan> pikhq_: have you used profiling?
00:47:46 <oerjan> (note: i never have, but i know ghc has a profiler)
00:48:21 <pikhq_> I have been.
00:51:47 <oerjan> another thing: that x*(-1) might be lazily evaluated, since this is too complicated for ghc to notice it is needed?
00:52:32 <pikhq_> The fields in the BF type are strict.
00:53:03 <oerjan> hm... i guess.
00:54:34 <oerjan> oh well. my hunch then is to give offset the initial and final offsets as arguments
00:55:11 <oerjan> and recurse immediately instead of building the whole list several times
00:57:46 <oerjan> argh that confused my brain
00:58:53 <oerjan> well maybe just the latter, then:
00:59:24 <oerjan> offset (Move x : Loop a y : xs) = Loop (a+x) (offset $ Move x : y ++ [Move (x*(-1))]) : (offset $ Move x : xs)
01:00:09 <oerjan> oh wait if you used my first idea it would split up:
01:01:33 <oerjan> offset m n (Move x : xs) = offset (m+x) (n-x) xs
01:03:27 <oerjan> offset m n (Loop a y : xs) = Loop (a+m) (offset m n y) : offset m n xs argh i'm not sure that's correct
01:03:54 <oerjan> clearly adding Move's makes things simpler to follow
01:04:45 <oerjan> offset m n xs should be equivalent to the old offset (Move m : xs ++ [Move n])
01:09:15 <oerjan> offset m n (Loop a y : xs) = Loop (a+m) (offset m (-m) y) : offset m n xs
01:09:42 <oerjan> and
01:09:51 <oerjan> offset m n (Move x : xs) = offset (m+x) n xs
01:10:52 <oerjan> hm maybe that actually _is_ clearer, since you get rid of all the Move's
01:11:29 <oerjan> m and n should probably be strict arguments
01:11:47 <oerjan> pikhq_: ^
01:12:34 <oerjan> offset _ n [] = [Move n]
01:13:49 <olsner> hmm, this Move/Loop thing, I recognize it
01:14:17 <oerjan> i realize this last one is redundant at the program top level, but i think it's cleaner this way
01:14:38 <oerjan> olsner: well it's thinly disguised brainfuck
01:16:46 <oerjan> <ZOMGMODULES> also: even I knew about that magic roundabout, but it was via looking up the children's show
01:17:01 <oerjan> hey even _i_ knew about it. i think it was featured on wikipedia or something.
01:20:53 <oerjan> `addquote <fizzie> You make a fist, shake it at the sky, and shout "why, GNU, why?!" -- that is the standard reportig practice.
01:20:56 <HackEgo> ​431) <fizzie> You make a fist, shake it at the sky, and shout "why, GNU, why?!" -- that is the standard reportig practice.
01:22:24 <oerjan> <pikhq> Autotup: on a scale of 1 to "Fuck you", how bad of an idea is it?
01:22:29 <pikhq_> oerjan: Hmm. So, rewriting offset to make it actually keep track of all the state, and do its recursion itself... I like that. I like that a lot.
01:22:32 * oerjan wants to see the rest of that scale
01:22:47 <oerjan> yay
01:30:06 <pikhq_> And there is absolutely, positively no need to find the fixed point of that function. Yay.
01:34:57 <pikhq_> And now the assembler takes longer than my compiler.
01:36:01 <pikhq_> Significantly longer, in fact.
01:37:33 -!- iconmaster has quit (Quit: Pardon me, but I have to go die in NetHack again.).
01:40:29 <pikhq_> Shame it exhibits incorrect behavior.
01:45:49 -!- davve123 has joined.
01:47:34 -!- Wiz126 has joined.
01:51:27 -!- BeholdMyGlory has quit (Remote host closed the connection).
01:51:57 -!- ralc has quit (Quit: Leaving).
01:58:14 -!- Patashu has joined.
02:02:37 <oerjan> 14:52:38 <Vorpal> lets see, p[16] will always end up at 1 at the end I think
02:02:37 <oerjan> 14:52:42 <Vorpal> and p[10] at 0
02:02:45 <oerjan> unless p[10] was 0 to start with
02:05:03 -!- Aune has quit (Quit: Hath Deprated).
02:24:38 <pikhq_> So. I am very, very confused by the behavior of this.
02:25:29 <oerjan> mhm?
02:26:00 <pikhq_> ... Never mind, it seems to have... Fixed itself?
02:28:05 -!- pikhq has joined.
02:28:16 <Lymia> http://andlinux.sourceforge.net/screenshots/screenshot.png
02:28:18 <Lymia> Made of win.
02:30:31 <pikhq> Oooor not.
02:31:00 -!- pikhq_ has quit (Ping timeout: 255 seconds).
02:49:15 <pikhq> Now to just figure out why this is emitting superfluous "Set 0 0"s...
02:50:18 <oerjan> superfluous "Set 0 0"s that are superfluous
02:50:58 <pikhq> The thing is, the compiler is outputting Set 0 0 immediately after Set 0 0...
02:51:22 <pikhq> Technically not a *wrong* compilation, just a sign of something weird happening.
02:56:55 <Sgeo_> Lymia, oooh
02:57:09 <Sgeo_> "32-bit versions only
02:57:10 <pikhq> Oh, I see. Minor issue in my DCE.
02:57:10 <Sgeo_> "
02:57:32 <Lymia> Sgeo_, I'd love to set up a.... freakish Frankenstein system once they get it working on 64-bit
02:58:30 <Lymia> How much rage do you expect from Windows fanboys/Linux zealots
02:58:42 <Lymia> Might as well as port it to Mac OS too, so the Mac fanboys can have their fun too.
02:59:03 <oerjan> DCE?
03:00:36 <oerjan> pikhq: DCE?
03:09:54 -!- pikhq_ has joined.
03:10:13 <pikhq_> oerjan: Dead code eliminator.
03:11:29 -!- pikhq has quit (Ping timeout: 260 seconds).
03:12:55 <pikhq_> 1.2 second build.
03:17:45 <pikhq_> And the output's better, too!
03:17:57 <pikhq_> Towers of hanoi now runs in 0.195 seconds.
03:18:38 <pikhq_> And is 38756 bytes instead of 39432...
03:19:00 -!- lameNOT has joined.
03:20:20 <oerjan> wow a fox outside the window
03:21:10 <pikhq_> And "only" uses 56M to compile.
03:21:34 <pikhq_> Which I'd bet is most courtesy of the list structure being so big.
03:22:21 -!- lameNOT has changed nick to lament.
03:23:55 <oerjan> pikhq_: do you use the unbox-strict-fields option?
03:24:06 <pikhq_> oerjan: Not presently.
03:25:01 <pikhq_> That... Doesn't actually help much.
03:25:20 <oerjan> it only works for fixed size nonrecursive fields, obviously
03:26:35 <oerjan> hm i don't think it even works for Integer fields (since they are unbounded)
03:27:59 <oerjan> i suppose nothing will help much if you are doing optimizations which requires having the whole structure in memory at once
03:28:04 <oerjan> *require
03:29:05 <oerjan> well, nothing based on lists
03:29:51 <pikhq_> I'm using Ints, anyways.
03:30:23 <oerjan> ah
03:30:52 <oerjan> definitely should work for those
03:33:05 <pikhq_> Welp, my code generator is using half the time now.
03:33:16 <pikhq_> And 44% of the RAM.
03:37:23 <pikhq_> Thanks, oerjan, for the order-of-magnitude increase.
03:38:22 <oerjan> yay
03:39:34 <pikhq_> Perhaps I should swap State for ST in the code gen...
03:41:04 <pikhq_> http://sprunge.us/ZCaP Anyways, bam, there it is.
03:47:16 <oerjan> should there even be any consecutive Move's left after the offset pass...
03:47:36 <pikhq_> No.
03:47:49 <pikhq_> You'll note that I do not take the fixed point of the optimisations anymore.
03:47:54 <oerjan> aha
03:59:16 <Lymia> http://www.tuxradar.com/files/ubuntu_vs_7-3.png
03:59:25 <Lymia> Wtf does Windows use all that space for?
04:02:10 <pikhq_> ... My root filesystem is 6.3G.
04:02:35 <pikhq_> *I have a freaking full build system there*.
04:05:32 <Lymia> Does Windows use a DVD or CD?
04:05:42 <pikhq_> DVD nowadays.
04:06:04 <Lymia> How the hell do you expand that DVD to such a huge amount of space?
04:06:27 <pikhq_> A lot of the stuff on there probably compresses well, I suppose.
04:06:44 <Lymia> Is the problem due to the different system architectures, or what?
04:06:50 <pikhq_> They should also compare with a full install of Debian. :P
04:07:04 <Lymia> How large is that on average?
04:07:14 <Lymia> Also, I'm curious.
04:07:24 <pikhq_> A *full* install of Debian? Let me put it this way: it comes on 2 Bluray discs.
04:07:24 <Lymia> Is a default Windows installation, or Damn Small Linux more featureful?
04:07:29 <Lymia> pikhq_, hah.
04:08:36 <pikhq_> I'm pretty sure DSL is more featureful.
04:09:38 <pikhq_> Though perhaps you should look at Puppy.
04:09:44 <pikhq_> As it's still maintained...
04:09:55 <pikhq_> *Also* more featureful, BTW.
04:40:39 <lifthrasiir> gah, i just woke up.
04:40:50 <lifthrasiir> @note
04:40:50 <lambdabot> Missing argument. Check @help <vote-cmd> for info.
04:42:23 <lifthrasiir> @note Vorpal esotope-bfc does not calculate the fixed point of optimization passes due to the performance, so some cases might be missed by the optimization pass (at the first time).
04:42:23 <lambdabot> usage: @vote <poll> <choice>
04:42:29 <lifthrasiir> ..what?
04:42:36 <oerjan> lifthrasiir: @tell
04:42:46 <lifthrasiir> ah, okay.
04:42:54 <lifthrasiir> @tell Vorpal esotope-bfc does not calculate the fixed point of optimization passes due to the performance, so some cases might be missed by the optimization pass (at the first time).
04:42:54 <lambdabot> Consider it noted.
04:43:05 <fizzie> Heh, "noted".
04:43:15 <lifthrasiir> so lambdabot will tell him right after he joins again?
04:43:23 <oerjan> right after he speaks
04:44:04 -!- monqy_ has joined.
04:44:18 -!- monqy has quit (Disconnected by services).
04:44:27 -!- monqy_ has changed nick to monqy.
04:56:38 -!- hagb4rd has joined.
04:59:40 <hagb4rd> good day!
05:01:00 <oerjan> morning!
05:01:12 -!- pikhq has joined.
05:01:18 -!- pikhq_ has quit (Ping timeout: 255 seconds).
05:10:11 -!- augur has joined.
05:51:00 -!- myndzi has quit (Ping timeout: 240 seconds).
05:51:23 -!- myndzi has joined.
05:54:40 -!- monqy_ has joined.
05:55:34 -!- monqy has quit (Disconnected by services).
05:55:38 -!- monqy_ has changed nick to monqy.
06:26:30 <pikhq> lifthrasiir: Say, you're Korean, aren't you?
06:26:40 <pikhq> lifthrasiir: What're your thoughts on fan death?
06:27:03 <pikhq> (I have no fucking clue what that is in Korean)
06:28:21 <Lymia> I woner.
06:28:24 <Lymia> wonder*
06:28:42 <Lymia> What would happen in your average programming class if you submitted obfuscated or golfed code?
06:28:58 <pikhq> https://secure.wikimedia.org/wikipedia/ko/wiki/%EC%84%A0%ED%92%8D%EA%B8%B0_%EC%82%AC%EB%A7%9D_%EC%82%AC%EA%B3%A0 This is apparently the Wikipedia page...
06:29:07 <Patashu> I think your lecturer would give you the eye brow
06:29:12 <Patashu> Unless he's the kind of person who used to do it
06:29:36 <pikhq> And the title is entirely sensible with the hanja. 扇風機死亡事故. See, entirely sensible.
06:39:50 <Sgeo_> There is a moth in my room :(
06:41:31 <oerjan> i have this trick involving an empty glass and a sheet of paper
06:41:43 <Sgeo_> To kill moths
06:41:48 <Sgeo_> Damn thing keeps touching me
06:42:00 <oerjan> um i practice a catch and release policy _most_ of the time
06:42:41 <oerjan> well i guess it needs to settle down for a moment before you can do it
06:43:13 <Sgeo_> I'm going to just try to go to sleep, I think
06:43:30 <oerjan> (ants get flushed down, after i got the impression they learn to come back - and bring friends)
06:43:59 <Sgeo_> Also, the only light in my room is the computer
06:44:10 <oerjan> aha
06:44:18 <Sgeo_> I think it left my room
06:44:31 <Sgeo_> No, still here
06:44:36 <oerjan> i thought it was unhealthy to use a computer screen without ambient light...
06:44:52 <Sgeo_> How so?
06:45:06 <oerjan> harder on the eyes?
06:45:08 <Sgeo_> Can I touch the thing with gloved hands?
06:45:27 <oerjan> well if you're going to kill it anyhow...
06:45:40 <Sgeo_> I don't care if it dies or not
06:45:46 <oerjan> i've never heard that moths are particularly poisonous
06:45:57 <oerjan> but who knows what exists in other countries
06:45:59 -!- hagb4rd has quit (Quit: hagb4rd).
06:46:38 <pikhq> oerjan: It's not a fear of being poisonous, just a common overreaction to insects.
06:46:55 <oerjan> (we don't even have any dangerous spiders in norway iafaik)
06:47:03 <oerjan> *-i
06:47:11 <oerjan> yeah right
06:47:30 <pikhq> There are certainly dangerous insects in the US, but not fucking moths.
06:47:58 <oerjan> we had this spider having babies in the bathroom one year, and my housemate (my landlady had rented to a girl this year) freaked out
06:48:14 <oerjan> i just collected them all with a clotheshanger
06:49:06 <Sgeo_> I'm just going to try to go to sleep
06:49:58 <oerjan> although i don't care much about most insects, you don't have to touch them with the glass and paper method
06:52:07 <oerjan> (1) take an empty glass and a piece of paper (2) catch the bug between the glass and some surface (3) slide the paper between the glass and surface (4) remove from surface carefully not letting it escape (5) do whatever you want
06:52:51 <Sgeo_> I'm just going to go to sleep, I think
06:53:37 <Sgeo_> GET AWAY FROM MY COMPUTER
06:53:38 * Sgeo_ cries
06:55:46 <Sgeo_> I'm afraid if I close my computer I'll get moth blood on it
06:56:25 <oerjan> you can wipe that off, i'm sure
06:57:16 * oerjan feels like a pot calling a kettle black in the rare spot where the pot isn't
06:57:56 <Sgeo_> hm?
06:58:36 <oerjan> Sgeo_: you are freaking out over a practical matter. just like i do all the time. but not with one i have trouble with.
07:01:25 <Sgeo_> If I leave my door open and the lights in my room off and the light in the hall on, will it fly out?
07:02:05 <oerjan> i've tried that before, with mixed results
07:04:27 -!- shachaf has quit (Ping timeout: 248 seconds).
07:13:02 -!- shachaf has joined.
07:14:24 <Sgeo_> Yet again, my battery isn't charging despite the laptop being plugged in
07:17:35 -!- augur has quit (Read error: Connection reset by peer).
07:20:15 -!- augur has joined.
07:26:57 -!- Sgeo has joined.
07:27:13 -!- Sgeo_ has quit (Ping timeout: 246 seconds).
07:33:58 -!- adayleryan has joined.
07:38:08 -!- zzo38 has joined.
07:42:40 -!- adayleryan has left ("Leaving").
07:52:12 -!- cheater__ has changed nick to retaehc.
07:58:08 <Sgeo> The damn thing attacked my mouth
08:00:06 <Sgeo> oerjan, I think I injured it but not killed it
08:00:19 <Sgeo> It's on the floor pathetically. Should I kill it, would that be merciful?
08:00:44 <pikhq> Your moral dillemae amuse me.
08:00:56 <pikhq> Almost as much as unusual plurals do.
08:01:17 -!- Vorpal has joined.
08:18:51 -!- monqy has quit (Quit: hello).
08:24:23 -!- Lymia has quit (Remote host closed the connection).
08:27:27 -!- retaehc has quit (Ping timeout: 240 seconds).
08:39:27 -!- lament has quit (Ping timeout: 240 seconds).
08:42:06 * oerjan guesses it's too late for mercy now
08:48:32 -!- Phantom_Hoover has joined.
08:49:31 <Sgeo> It got under something and I can't reach it now
08:50:43 -!- zzo38 has quit (Remote host closed the connection).
08:56:23 <Sgeo> How easy/difficult would it be to parse code of a language into an AST in Javascript?
08:56:51 <Sgeo> Meh, guess I should just try it
09:12:13 -!- oerjan has quit (Quit: leaving).
09:18:27 <coppro> Sgeo: Mozilla did it
09:18:56 <Sgeo> I am not a group of people
09:19:09 <Sgeo> I guess I should figure out what tokenizing is
09:22:54 -!- MigoMipo has joined.
09:27:24 -!- retaehc has joined.
09:31:48 -!- augur has quit (Remote host closed the connection).
09:44:42 -!- retaehc has changed nick to cheater_.
09:45:41 -!- cheater_ has changed nick to retaehc.
09:51:20 -!- augur has joined.
09:58:47 -!- Slereah has joined.
09:59:08 <Vorpal> w. t. f.
09:59:08 <lambdabot> Vorpal: You have 1 new message. '/msg lambdabot @messages' to read it.
09:59:18 <Vorpal> hm
09:59:59 <Vorpal> lifthrasiir, ah okay, my program did go for fixed point. And yet it was faster than your. Heh.
10:00:07 <Vorpal> (your program did some things better)
10:00:44 <Vorpal> weird, make is removing generated files .c at the end of make all. Why
10:00:49 <Vorpal> there is nothing in there to do that
10:01:23 <Vorpal> %.c : %.pyx
10:01:23 <Vorpal> $(CYTHON) $(CYTHONFLAGS) -a $^
10:01:23 <Vorpal> %.so : %.c
10:01:23 <Vorpal> $(CC) -fpic $(CFLAGS) -I$(PYINCLUDES) -L$(PYLIBPATH) $(LDFLAGS) --shared -o $@ $^ $(PYLIB)
10:01:27 <Vorpal> I have those two rules
10:01:38 <Vorpal> yet it removes the .c at the end. WHY
10:02:10 <Vorpal> pikhq, there? Maybe you can help with this.
10:03:20 <Vorpal> oh found it
10:03:22 <Vorpal> http://www.gnu.org/s/hello/manual/make/Chained-Rules.html
10:03:26 <Vorpal> hm, how to avoid that
10:07:24 <Vorpal> right, found it
10:25:44 -!- FireFly has joined.
10:40:34 -!- CakeProphet has quit (Quit: leaving).
10:41:39 -!- CakeProphet has joined.
10:42:04 -!- Vorpal has quit (Read error: Operation timed out).
10:42:51 -!- Vorpal has joined.
10:44:22 -!- CakeProphet has quit (Client Quit).
10:44:42 -!- CakeProphet has joined.
10:46:19 -!- CakeProphet has quit (Client Quit).
10:49:15 -!- CakeProphet has joined.
10:49:17 -!- CakeProphet has quit (Changing host).
10:49:17 -!- CakeProphet has joined.
10:49:20 <Vorpal> !bf_txtgen test
10:49:26 <EgoBot> ​61 +++++++++++++[>+>+++++++++>++++++++><<<<-]>>-.>---.<-.+.<---. [308]
10:51:08 -!- CakeProphet has quit (Client Quit).
10:51:35 -!- CakeProphet has joined.
10:54:00 -!- CakeProphet has quit (Client Quit).
10:54:24 -!- CakeProphet has joined.
10:56:10 <Sgeo> Lists in LSL are immutable. I am going to cry.
10:56:33 <Vorpal> Sgeo, what is LSL in this context
10:56:40 <Sgeo> Linden Scripting Language
10:56:43 <CakeProphet> Sgeo: time to implement a state monad, of course.
10:58:29 <Vorpal> Sgeo, never heard of that
11:05:48 <Vorpal> lifthrasiir, interesting, in esotope-bfc it isn't safe to run all the optimiser passes more than once. Not sure which ones mess up here yet.
11:09:02 <Sgeo> Vorpal, the language used in Second Life
11:09:14 <Vorpal> I see
11:09:17 <Sgeo> CakeProphet, is that even possible in a language without first-class functions?
11:09:54 <CakeProphet> I don't think so. There'd be no way to do bind.
11:10:15 <CakeProphet> unless you can eval strings, or have some other method to treat code as data.
11:10:47 <Vorpal> CakeProphet, wouldn't eval be treating code as data rather than data as code?
11:10:53 <Vorpal> err
11:10:56 <Vorpal> the other way around I meant
11:11:17 <CakeProphet> hmmm
11:11:22 <CakeProphet> can go both ways depending on what you mean.
11:11:31 <Vorpal> hm, okay
11:11:57 <Vorpal> CakeProphet, for me it seems that eval treat data (a string for example) as code (by executing it)
11:12:05 <CakeProphet> I was thinking of the string as the code being stored as data. But yes, it's also data as code in that the string is data that is being re-interpreted as code.
11:12:16 <Patashu> but if you can treat data as code, you can go the other way around by making the bulk of the code your data
11:12:16 <Vorpal> yeah
11:13:16 <CakeProphet> Sgeo: use Perl instead.
11:13:35 <Patashu> lol use perl in SL
11:13:44 <CakeProphet> actually bind would look pretty nice in Perl.
11:14:54 <CakeProphet> sub bind(&$) { my ($codeblock, $monad) = @_; ... #monad-specific implementation code goes here }
11:15:33 <CakeProphet> bind {$_ + 1} $monad_int
11:15:38 -!- BeholdMyGlory has joined.
11:16:32 <CakeProphet> though it might be better to swap the arguments of bind since the code block will generally be larger in size than the monad argument.
11:18:08 <CakeProphet> if you did some like.
11:18:21 <CakeProphet> bind ($[\&&]) {...}
11:18:35 <CakeProphet> then you could pass a coderef or a literal anonymous block.
11:18:54 <CakeProphet> ...for fun and profit.
11:20:35 <Vorpal> CakeProphet, check CPAN, if there is no monad library for perl yet, make one
11:21:58 -!- NihilistDandy has joined.
11:23:54 <CakeProphet> Vorpal: surely it's in CPAN...
11:24:06 <CakeProphet> yep, there it is.
11:24:09 <Vorpal> heh
11:24:10 <CakeProphet> Class::Monad
11:24:18 <CakeProphet> er Class::Monadic rather
11:24:22 <Vorpal> CakeProphet, what about functors?
11:24:40 <CakeProphet> oh wait this is something different
11:24:45 <CakeProphet> monadic methods are "singleton" methods
11:24:49 <CakeProphet> whatever that means.
11:25:53 <CakeProphet> well Perl doesn't really have anything like typeclasses, I doubt I could make a Monad module since you'd have to implement the code differently for each monad.
11:26:07 <CakeProphet> but Monad helper functions? possibly.
11:26:43 <Vorpal> CakeProphet, hm. Surely you can do this somehow with perl. I mean, can't you execute pretty much anything at parse time
11:26:51 <Vorpal> and thus do some sort of magic transform on the code
11:27:01 <Vorpal> I seem to remember some ACME:: modules do that
11:27:18 <Vorpal> CakeProphet, so I bet you can fake typeclasses in perl even
11:27:19 <Vorpal> :D
11:28:11 <CakeProphet> well it's not like there's a type system or anything...
11:28:27 <CakeProphet> well, there is, but not a static one.
11:29:06 <Vorpal> CakeProphet, hm what about untyped monads...
11:29:10 <Vorpal> would that even work?
11:29:36 <CakeProphet> well it would work like bind/return but without typechecking, basically.
11:29:56 <Vorpal> CakeProphet, sounds good enough for perl
11:30:14 <CakeProphet> and yeah, I do believe you can apply Perl to Perl code before compilation phase.
11:30:17 <CakeProphet> so, do notation is possible.
11:30:23 <Vorpal> CakeProphet, now I feel like I want do do monads in C, probably using some sort of macros to type it
11:30:32 <CakeProphet> ...sounds horrid.
11:30:39 <CakeProphet> at least with Perl there would be some nice syntax.
11:31:30 <Vorpal> CakeProphet, saw pikhq's C library with closures? Using lots of preprocessor + some GNU extensions
11:31:38 <Vorpal> hm did he do continuations as well? I don't remember
11:31:39 <CakeProphet> I've seen examples that remove the need for semicolons in perl and just append non-empty lines with semicolons via regex.
11:31:53 <Vorpal> I don't have the file for it here I think
11:31:58 <Vorpal> ask pikhq when he is around
11:33:30 <CakeProphet> I guess a Monad module for Perl would just be a class that you could inherit from, that would standardize the names and overload some operators
11:34:25 <CakeProphet> ...I wonder, if you can overload operators and still do the anonymous {} notation that you can get if use & in the subroutine prototype.
11:34:46 <CakeProphet> $monad >= {...}
11:34:58 <CakeProphet> I doubt it.
11:35:16 <Vorpal> try it? I have no idea, I'm not very good at perl.
11:35:29 <CakeProphet> no I think it has to be the original sub by its original name for the parser to know what to do.
11:36:45 <CakeProphet> to overload operators you have to do something like: use overload ('>=' => \&bind, '+' => \&empty_bind);
11:38:33 -!- wareya_ has joined.
11:38:54 <CakeProphet> but making a do syntax for Perl sounds like a fun time with regex.
11:40:20 <CakeProphet> turning a linear list of program lines into a single line of nested binds? I can't wait.
11:41:05 <CakeProphet> and it's Perl so I'm not allowed to use anything other than regex to do that.
11:41:55 -!- wareya has quit (Ping timeout: 260 seconds).
11:42:43 <Vorpal> heh
11:45:31 -!- Phantom_Hoover has quit (Ping timeout: 246 seconds).
12:03:15 -!- BeholdMyGlory has quit (Remote host closed the connection).
12:03:31 <Sgeo> Good idea/bad idea: Attempting to compile some code by hand without knowing what the compiler looks like exactly, just a vague idea
12:03:46 <Sgeo> I want to get a feel for how it should work
12:16:15 <Sgeo> DANGIT I DON'T WANNA WRITE MY OWN GARBAGE COLLECTION
12:19:03 <Sgeo> Um, I'm not sure if I need GC... although the fact that I'm wondering that makes me rather nervous about my semantics
12:20:26 <Sgeo> Oh, I figured out why. There is no heap.
12:20:31 <Sgeo> How worried should I be about this
12:20:32 <Sgeo> ?
12:28:18 <Sgeo> Oh look, there are mutable structures in LSL. But they can only hold floats
12:40:09 <Sgeo> If I detect that call/cc is not used, I can skip the CPS transform!
12:40:57 <Sgeo> (inb4 halting) By "not used", I mean not mentioned in the source code
12:52:31 -!- malorie has joined.
13:09:44 -!- pikhq_ has joined.
13:11:28 -!- pikhq has quit (Ping timeout: 244 seconds).
13:47:52 -!- oerjan has joined.
13:54:15 <oerjan> <CakeProphet> well Perl doesn't really have anything like typeclasses, I doubt I could make a Monad module since you'd have to implement the code differently for each monad.
13:54:50 <oerjan> you might use the scala (iirc) method of letting monad elements be objects of a class that implements bind as a method for its first argument
13:55:07 <oerjan> with a different class for each monad, naturally
13:56:09 -!- NihilistDandy has quit (Quit: *yawn* Breakfast.).
13:56:30 <oerjan> return might be a static method of the class then
13:58:44 <oerjan> oh hm you also need a generic return for use in code for generic monads
14:06:54 -!- copumpkin has quit (Ping timeout: 250 seconds).
14:07:21 -!- copumpkin has joined.
14:32:32 <Sgeo> Expanding lists means the old location of the list may get left behind, but I can make a list of free spaces and have new variable allocations check that first
14:40:00 <Vorpal> in python, how do you make a one element tuple now again
14:40:14 <oerjan> (x,) ?
14:40:18 <Vorpal> oerjan, hm worth a try
14:40:43 <Vorpal> oerjan, seems so, stupid syntax but meh
14:49:27 <Vorpal> hm how should this expression in python be read: SetMemory(k,v) for k,v in subst.items() if v != Expr[k] ? As if ...: for ...: yeild SetMemory... Or as for ...: if ...: yeild SetMemory... ?
14:49:45 <Vorpal> oerjan, since I now assume you are a python expert I ping you
14:50:13 <Vorpal> I would assume the latter interpretation
14:50:29 <oerjan> i'm not, but isn't that python's comprehension syntax?
14:50:49 <Vorpal> oerjan, I think it is a generator, rather than a comprehension.
14:51:03 <Vorpal> yes iirc python makes a difference between them internally
14:51:09 <oerjan> huh
14:51:10 <Vorpal> oerjan, but the point is, where should the if go
14:51:18 <oerjan> well they're just different monads probably :D
14:51:23 <Vorpal> oerjan, :P
14:51:31 <Vorpal> oerjan, is the if like a filter?
14:51:33 <fizzie> It's iffing for each list element separately.
14:51:36 <Vorpal> fizzie, ah
14:51:41 <fizzie> So it is like a filter, yes.
14:52:43 <Vorpal> lifthrasiir, btw, I managed to reduce time from 59 to 35 seconds with cython + a few hours work. However cython doesn't do metaclass stuff, nor multiple inheritance. So large parts of esotope-bfc can't be converted without some significant rewriting
14:53:05 <fizzie> >>> list(x for x in xrange(10) if x%2)
14:53:05 <fizzie> [1, 3, 5, 7, 9]
14:53:13 <fizzie> That sort of thing.
14:53:16 <Vorpal> lifthrasiir, mostly the processing heavy parts that can't be converted. So if you rewrote them I'm sure you would get a significant speedup
14:53:57 <oerjan> um if that is _not_ python's comprehension syntax, what does that look like then
14:54:20 <fizzie> [x for x in ...] would be a list comprehension.
14:54:26 <Vorpal> yeah
14:54:32 <Vorpal> oerjan, the [] makes the difference
14:54:35 <Vorpal> ugly indeed
14:54:36 <fizzie> While the earlier one passes a generator to the list constructor.
14:54:37 <oerjan> huh
14:55:27 <fizzie> The if-filter syntax is I think a bit confusing, since you have there references to the x defined in "for x" coming from both before and after it.
14:55:48 <Vorpal> fizzie, still better than x if cond else z :P
14:56:11 <oerjan> fizzie: well it's pretty similar to haskell's list comprehensions in structure
14:56:37 <oerjan> > [x | x <- [1..10], odd x]
14:56:37 <lambdabot> [1,3,5,7,9]
14:57:15 <oerjan> just trying to be less mathematically obfuscated i guess
14:57:23 <fizzie> The ternary expression is quite uncomfortable-to-me too, yes.
14:59:17 <fizzie> At least the "else"'s not optional there; it would be quite confusing if both "x for x in y if f(x)" and "x if f(x) for x in y" were allowed, with the difference that the second one would yield, say, None for the non-matching elements instead of omitting them.
15:00:11 <Vorpal> fizzie, uncomfortable-to-me <-- why the hypens?
15:02:12 <oklopol> to specify it's not also uncomfortable to *him* (among other people) but that it's is also *uncomfortable* to him (among other things)
15:02:54 <oklopol> which makes sense because no one would ever have guessed that's what he meant.
15:03:09 <fizzie> Yes. Well, actually what I *wanted* to convey was that *it* (among other things) is uncomfortable.
15:03:53 <oklopol> hmm that too
15:04:52 <fizzie> Basically to group the "too" with the uncomfortableness instead of being "me too".
15:05:17 <fizzie> Or the thing. Or something.
15:05:21 <fizzie> I give up.
15:05:56 <Vorpal> <fizzie> Yes. Well, actually what I *wanted* to convey was that *it* (among other things) is uncomfortable. <-- hm, to me it was just confusing. Maybe you need to be a Finn to get that...
15:06:28 <oklopol> lol
15:06:29 <oerjan> they probably have their own suffix for it
15:06:50 <fizzie> You may need to be me to get it, and I'm not sure even that helps, since after all this talk I've forgotten what it was I was thinking.
15:06:58 <fizzie> Probably not much.
15:10:00 <oklopol> the fizitive
15:10:33 <fizzie> And we do have a "-kin" adjective/noun suffix that does a bit of an "also, too" thing. "Pöytäkin oli puhdas" = "also the table (among other objects) was clean", "pöytä oli puhdaskin" = "the table was clean too (among other properties of the table)".
15:10:47 <fizzie> Where pöytä = table, puhdas = clean.
15:11:02 <oerjan> oklopol: it's the case for nouns which have been completely lost
15:11:10 <oklopol> haha lol we do
15:11:59 <oklopol> fizzie: you an use it with verbs too
15:12:09 <fizzie> Not to be confused with "pöytä olikin puhdas", which would be basically "the table was clean, and it surprised me".
15:12:40 <oklopol> yeah that, but what about something like "hn si minut, ja ampuikin viel"
15:12:46 <oklopol> maybe that's surprisative too
15:13:04 <olsner> surprisative :D
15:13:17 <oklopol> surprisative!.
15:13:36 <fizzie> "When attached to verbs, this meaning of this suffix is often hard to translate into English. In the most basic sense, it means "after all", as in an expression of a contadiction of expectations. These sentences are an example of this:
15:13:40 <fizzie> 1. Hän tulikin. (He came after all [I didn't expect it].)"
15:14:01 <fizzie> -- http://www.unilang.org/wiki/index.php/The_-kin/-kAAn_suffix
15:17:16 <Vorpal> heh
15:35:48 -!- BeholdMyGlory has joined.
15:41:32 -!- iconmaster has joined.
15:41:41 <iconmaster> ?join #nethack
15:41:42 <lambdabot> Not enough privileges
15:41:53 <iconmaster> oops
15:46:23 -!- oerjan has quit (Quit: Good night).
15:46:59 -!- Patashu has quit (Ping timeout: 244 seconds).
16:07:14 -!- Phantom_Hoover has joined.
16:07:20 -!- pikhq_ has quit (Ping timeout: 260 seconds).
16:07:29 <Phantom_Hoover> What are the haps my friends.
16:08:04 <Sgeo> Phantom_Hoover, I try to reinvent the wheel while pondering my language
16:08:34 -!- pikhq has joined.
16:08:38 <Sgeo> (Probably. I suspect that every single difficulty I'm imagining has been encountered before and studied repeatedly to death)
16:08:55 <Phantom_Hoover> Ah, you are Pygmalioning?
16:09:51 <Sgeo> ?
16:10:11 <Phantom_Hoover> http://en.wikipedia.org/wiki/Pygmalion_(mythology)
16:16:23 <Phantom_Hoover> http://www.timesonline.co.uk/tol/news/weather/uk_and_roi/article1985663.ece
16:17:18 <Phantom_Hoover> Asimov's observation that the most emblematic victory of science over religion was when churches started using lightning rods comes to mind...
16:17:48 <Sgeo> Is it feasible to mix CPS with non-CPS?
16:18:04 <Sgeo> My trampoline should be able to handle tail-calls and non-tail-calls with grace
16:18:54 <Phantom_Hoover> Suggest you change your nick to something innocuous in case elliott comes in.
16:19:06 <Sgeo> hmm?
16:20:56 * Phantom_Hoover logreads, sees Sgeo's tribulations at the hands of a moth.
16:21:18 <Phantom_Hoover> 10:56:10: <Sgeo> Lists in LSL are immutable. I am going to cry.
16:21:32 <Phantom_Hoover> Sgeo, remind me how long you've been playing SL for?
16:22:08 <Sgeo> It's never been an issue before that somelist += [whatever] only reassigns what somelist contains.
16:30:56 -!- davve123 has left.
16:48:04 -!- ais523 has joined.
16:57:23 -!- quintopia has quit (Ping timeout: 258 seconds).
16:58:26 -!- quintopia has joined.
16:58:26 -!- quintopia has quit (Changing host).
16:58:26 -!- quintopia has joined.
16:59:34 <pikhq> Stop fucking waking me up every hour, people.
16:59:46 <pikhq> Just because *you* are awake does not mean that I am.
17:00:20 <pikhq> And the more you wake me up, the later it'll be until I will actually wake up.
17:01:20 <Phantom_Hoover> I apologise, pikhq.
17:02:08 <Vorpal> pikhq, you don't turn off sound on your computer or what?
17:02:37 <pikhq> Vorpal: No, I'm not ranting about you.
17:02:44 <pikhq> I'm ranting about the people I physically live with.
17:03:16 <pikhq> Just because you're up and at'em at 06:00 daily does not mean I am. Or can be.
17:03:44 <pikhq> Seriously, I have to use an alarm clock to be up before noon, and they're not helping.
17:03:53 <Vorpal> ah
17:04:30 <pikhq> And it's not like I'm up *that* late. It's just that I will tend towards consciousness at noon.
17:04:44 <pikhq> If that means 4 or 16 hours of sleep.
17:07:07 <ais523> my IRC client uses a visible bell
17:07:15 <ais523> so it's unlikely anyone would wake me by nickpinging me
17:07:17 <Vorpal> same
17:08:33 <pikhq> My IRC client just highlights the window number in its activity bar.
17:08:40 <pikhq> Quite impressive for that to wake me
17:08:48 <pikhq> Especially with my monitor off.
17:10:37 -!- Phantom_Hoover has set topic: "Show me how it doos" — James Clerk Maxwell | Logs: http://codu.org/logs/_esoteric/ and http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
17:16:43 <pikhq> Wow.
17:16:53 <pikhq> Canada has a smaller population than Greater Tokyo.
17:18:55 <quintopia> the state of alabama has a population much much smaller than greater london; the state of alabama has slightly more land area than england.
17:22:11 -!- SimonRC has quit (Ping timeout: 252 seconds).
17:22:43 -!- SimonRC has joined.
17:23:37 -!- monqy has joined.
17:33:19 <lifthrasiir> <pikhq> lifthrasiir: What're your thoughts on fan death? --> i think it's too stupid to believe it.
17:35:02 <copumpkin> is it a common belief?
17:35:08 <copumpkin> I've always found that hard to believe
17:35:10 <Phantom_Hoover> Distressingly.
17:35:20 <Vorpal> lifthrasiir, hi did you see my ping above?
17:35:34 <Phantom_Hoover> There are quotes on the WP article from very authoritative people who think it's true.
17:36:20 <Vorpal> <lifthrasiir> <pikhq> lifthrasiir: What're your thoughts on fan death? --> i think it's too stupid to believe it. <-- fan death? Is this the same thing as happened to my PSU recently or is it about a completely different sort of fans?
17:38:23 * Vorpal googles
17:38:36 <Vorpal> err, what... that's stupid...
17:50:57 -!- lament has joined.
17:51:04 <pikhq> Vorpal: Yes, yes it is.
17:51:08 <pikhq> copumpkin: Yes, yes it is.
17:52:18 <Vorpal> pikhq, only way a fan can kill you would be if it was *very* cold already (why use fan then) or there was an electrical fault
17:55:41 <quintopia> lifthrasiir: i think fan death is a horrible way to lose a CPU. i think that's why AMD-provided fans are so loud: so you notice when it dies.
17:56:04 <quintopia> (yes, i know what you were talking about, i'm not a complete idiot)
17:59:47 -!- ais523_ has joined.
18:00:35 -!- Lymia has joined.
18:00:55 -!- ais523 has quit (Ping timeout: 250 seconds).
18:01:15 -!- ais523_ has changed nick to ais523.
18:01:18 <ais523> gah, the spambot is back
18:02:02 <Phantom_Hoover> May god have mercy on us all.
18:02:42 <ais523> also, I was trying to figure out where the spam had gone in Recent Changes, before I realised I habitually delete spam from Recent Changes in order to stop it getting cluttered
18:02:49 <ais523> (you can use the "show bots" link if you want to see it)
18:20:11 <Vorpal> hm a = --b; in c would be the same as a = b; b = b - 1; but arguably it should instead be read as a = -(-b);
18:20:16 <Vorpal> I mean, that would be more logical
18:20:44 <Vorpal> err, switch the operations
18:20:50 <Vorpal> in the middle bit of code
18:20:51 <Vorpal> (typo)
18:27:15 -!- ralc has joined.
18:28:45 <ais523> Vorpal: -- is one token, - - is two
18:28:57 <ais523> just like && is different from & &
18:29:08 <Vorpal> ais523, yes but logically it should work like this
18:29:10 <ais523> or in C++, <a, B<c>> is different from <a, B<c> >
18:29:14 <Vorpal> ais523, but & & would be a syntax error
18:29:21 <Vorpal> or well
18:29:23 <Vorpal> error anyway
18:29:29 <ais523> it's a semantic error, I think
18:29:39 <ais523> taking the address of an address is illegal, but not for syntactical reasons
18:29:47 <pikhq> ais523: In C++0x, <a, B<c>> is <a, B<c> >
18:29:53 <Vorpal> ais523, oh I read that as bitwise and :P
18:30:06 <Vorpal> ais523, as in int1 & & int2
18:31:33 -!- Sgeo has quit (Ping timeout: 260 seconds).
18:31:55 <ais523> pikhq: heh, they changed it?
18:32:00 <pikhq> Yes.
18:32:12 <pikhq> Because nobody would *actually want* the alternate reading.
18:32:17 <ais523> is it a change to the tokenisation, or can the >> token close two angle bracket brackets now?
18:32:30 <pikhq> Change to the tokenisation.
18:32:37 <ais523> also, I can see very plausible reasons to put << in a template argument
18:32:48 <ais523> writing, say, 1<<5 rather than 32
18:32:57 <ais523> presumably, if you really want a rightshift you have to put it in parens?
18:33:13 <pikhq> Think so.
18:34:25 <ais523> I suppose greater-than has the same issue
18:40:36 -!- variable has quit (Remote host closed the connection).
19:06:36 -!- lament has quit (Ping timeout: 252 seconds).
19:10:06 -!- copumpkin has quit (Ping timeout: 240 seconds).
19:10:32 -!- copumpkin has joined.
19:12:45 <pikhq> ... *Wow*. The domesticated silkmoth is completely and utterly incapable of surviving in the wild.
19:12:57 <pikhq> Its adult form can neither fly nor feed.
19:35:39 <ais523> and yet it's likely to survive as long as humans want silk
19:35:45 <ais523> so it's a sensible adaptation to its environment
19:37:01 <Phantom_Hoover> pikhq, inability to feed is not uncommon in adult insects.
19:38:54 <pikhq> Phantom_Hoover: Not ones which live long adult lives.
20:03:24 -!- monqy has quit (Quit: Lost terminal).
20:04:19 <Phantom_Hoover> What is it with Americans pronouncing solder "sodder"?
20:08:33 -!- monqy has joined.
20:17:02 <Vorpal> Phantom_Hoover, lödtenn.
20:17:36 <Vorpal> (or in case of the verb, löda)
20:21:54 <Phantom_Hoover> Hmm, no elliott today.
20:24:05 <pikhq> Phantom_Hoover: We despise your English.
20:24:40 <Vorpal> pikhq, what is solder in Japanese?
20:24:52 <Vorpal> pikhq, (both the verb and the noun)
20:25:15 -!- elliott has joined.
20:25:23 <pikhq> Vorpal: No idea.
20:25:29 <Vorpal> <Phantom_Hoover> Hmm, no elliott today. [...] * elliott (~elliott@unaffiliated/elliott) has joined #esoteric
20:25:32 <Vorpal> :D
20:26:27 <pikhq> Apparently, "hantà" (ハンダ、半田).
20:26:32 <pikhq> For the noun.
20:26:39 <Vorpal> pikhq, and for the verb?
20:27:32 <pikhq> hantàtuke (半田付け), apparently.
20:27:37 <elliott> <elliott> Phantom_Hoover: Invent me a geometry where I can have the curvature of the Earth because it's pretty, but still have an infinite world in every dimension.
20:27:37 <elliott> <Phantom_Hoover> You *saw* that 720° rotunda, yes?
20:27:37 <elliott> <elliott> Yes.
20:27:37 <elliott> <elliott> I mean you have to make it geometrically coherent.
20:27:37 <elliott> <Phantom_Hoover> Ask oerjan.
20:27:40 <elliott> aww, he's not here
20:27:49 <pikhq> Literally, "to apply solder".
20:27:56 <Phantom_Hoover> elliott, yes, but then I linked you to that IWC annotation.
20:28:31 <pikhq> Well, actually, it's a suru verb, so the verb would actually be "hantàtuke suru".
20:28:38 <Phantom_Hoover> Constant positive curvature necessitates a closed surface.
20:28:42 <Vorpal> pikhq, in Swedish it is the other way around in that the noun is a compound word including the verb.
20:29:09 <Vorpal> pikhq, literally the noun is "solder tin"
20:29:17 <Vorpal> as in the element tin
20:31:09 <pikhq> And 半田 literally means "half field". As in where you do agriculture.
20:31:18 <pikhq> I have no fucking *clue* of the etymology of that.
20:31:29 <Vorpal> pikhq, can't you find that by googling?
20:31:30 <Vorpal> hm
20:32:22 <Vorpal> pikhq, hm, maybe related to semi-conductors? ;)
20:32:32 <Vorpal> hm wait, that doesn't work well in English
20:32:51 <Vorpal> semi conductor = sv:halvledare = literally "half conductor"
20:34:11 <pikhq> Which is literally what "semiconductor" means...
20:34:37 <Vorpal> pikhq, wait is semi = half? I thought semi = partially?
20:34:46 <pikhq> semi more literally is "half".
20:34:51 <Vorpal> ah
20:35:24 <pikhq> Anyways, "semiconductor" in Japanese is pretty obviously a calque from the English...
20:35:31 <Phantom_Hoover> http://i.imgur.com/RHtwS.jpg
20:35:34 <pikhq> 半導体. Literally "half conductor".
20:35:40 <Phantom_Hoover> I cannot bring myself to agree with Reddit on this one.
20:36:19 <pikhq> Phantom_Hoover: How so?
20:36:32 <Vorpal> Phantom_Hoover, that image seems familiar. Very much so.
20:37:04 <Phantom_Hoover> pikhq, because I think that there is genuine sense behind what is taught in English classes, but it suffers the same problem as mathematics.
20:37:31 <Phantom_Hoover> i.e. people think you can get the benefits of understanding things just by learning their outcomes.
20:37:32 <pikhq> Phantom_Hoover: The issue in *my* estimation is worse in English classes.
20:37:36 <elliott> Phantom_Hoover: Yes, clearly they should teach advanced literary criticism at school level. Wait.
20:37:44 <elliott> Wait, no. Literary criticism is retarded to.
20:37:46 <elliott> [asterisk]too.
20:38:32 <pikhq> Not only are the English classes heavily removed from any sensible pedagogy, they are *fucking lying* to students.
20:38:41 <Phantom_Hoover> pikhq, well, yes.
20:39:13 <Phantom_Hoover> They don't have the fact-checking that maths education is constrained by.
20:39:28 <pikhq> Literary criticism is not some highly essential bit of understanding literature, and the bog-standard essay *format* is mother-fucking pitiful and terrible style.
20:39:44 <pikhq> Indeed, that essay format is positively crippling.
20:43:33 <pikhq> AND WHY THE FUCK WOULD YOU EVEN ASK TO FIND THE SYMBOLISM IN HEMINGWAY'S WRITING, ANYWAYS.
20:43:43 <pikhq> THIS IS A MAN WHO SAID, AND I QUOTE, "Symbolism is shit."
20:43:52 <elliott> pikhq: the shit represents his love
20:43:59 <pikhq> elliott: For feces.
20:44:03 <pikhq> Riiiight.
20:44:04 <Phantom_Hoover> pikhq, ah, you see, we're even weirder in Scotland.
20:44:05 <elliott> and symbolism
20:44:31 <Phantom_Hoover> The Higher exam, the only one I've done, /gives literally indication what texts you should use/.
20:44:46 <Phantom_Hoover> It has to be in English and... that's it.
20:44:55 <pikhq> ... It states... What?
20:45:05 <Phantom_Hoover> In theory you could literally make up a poem and write an essay on it.
20:45:45 <pikhq> Could you reread the line: < Phantom_Hoover> The Higher exam, the only one I've done, /gives literally indication what texts you should use/.
20:45:48 <pikhq> ?
20:45:59 <Phantom_Hoover> Oh, *no indication
20:46:08 <pikhq> Thanks for curing my confusion.
20:46:19 <Vorpal> Phantom_Hoover, huh
20:46:24 <pikhq> Define "English".
20:46:25 <pikhq> :P
20:46:36 <elliott> givesl iterally induction
20:46:41 <elliott> [asterisk]gievs literally
20:46:43 <Phantom_Hoover> The critical essay section of the Higher English exam.
20:46:46 <Vorpal> Phantom_Hoover, so uh, does it have to be a novel or anything like that? Or could it be something like a newspaper?
20:46:48 <elliott> <Phantom_Hoover> In theory you could literally make up a poem and write an essay on it.
20:46:51 <elliott> I would write an essay about my essay.
20:46:53 <pikhq> No, I mean as in "has to be in English".
20:47:09 <elliott> "For a start, my essay is very self-referential."
20:47:19 <elliott> "The main point of my essay is that it never states a main point."
20:47:27 <Phantom_Hoover> pikhq, as in it has to be in English... wait, you might be allowed to use Gaelic as well.
20:47:37 <Phantom_Hoover> Wait, no, you can't.
20:47:55 <pikhq> Phantom_Hoover: There's at least three distinct languages that are called "English".
20:48:09 <Phantom_Hoover> "It was written in English" is I think the rule of thumb.
20:48:20 <Phantom_Hoover> Oh god pedantry
20:48:22 * Phantom_Hoover ducks
20:48:36 <Phantom_Hoover> pikhq, go on
20:48:47 <pikhq> At a minimum, Old English, Middle English, and Modern English.
20:48:55 <Vorpal> -_-
20:49:17 <Phantom_Hoover> Well, you'd get away with Shakespeare. Not sure about the Canterbury Tales.
20:49:36 <Vorpal> pikhq, are there sharp borders between these? Or did the change happen gradually?
20:49:49 <pikhq> Yes, Shakespeare is essentially writing the same damned language we are...
20:49:50 <Vorpal> I mean from an historical perspective
20:49:52 <elliott> pikhq: Sometimes your pedantry is really annoying :P
20:50:11 <pikhq> Vorpal: The borders are roughly 1 or 2 hundred years.
20:50:31 <Vorpal> pikhq, so gradual. So you can't say that "that exact date, it switched"
20:50:42 <pikhq> Well, no, you can't do that for any language ever.
20:50:47 <Vorpal> pikhq, indeed.
20:51:20 <pikhq> There's even often gradual borders between contemporary languages...
20:51:42 <Vorpal> pikhq, indeed!
20:53:54 -!- quintopia has quit (Ping timeout: 258 seconds).
20:54:30 -!- azaq23 has joined.
21:07:07 <elliott> "From 26th May 2011 websites in the UK need to ask for permission before they can set cookies not required for ‘essential’ means."
21:07:09 <elliott> seriously?
21:07:15 <elliott> ais523 is going to have a party
21:07:30 <ais523> elliott: it's actually very easy to do
21:07:36 <elliott> haha, google analytics is now illegal to use in the uk
21:07:41 <ais523> even better
21:07:42 <elliott> ais523: easy to do what, have a party?
21:07:45 -!- lament has joined.
21:07:49 <ais523> ask for permission before setting cookies
21:07:52 <ais523> just ask on your login form or whatever
21:07:59 <elliott> lol
21:08:13 <elliott> there's no way this is getting enforced anyway
21:08:14 <Phantom_Hoover> ais523, you realise cookies are far more widely-used than that?
21:08:20 <ais523> Phantom_Hoover: usefully?
21:08:50 <Vorpal> Phantom_Hoover, essential means would cover most things except click tracking I think
21:09:00 <Phantom_Hoover> ais523, given that you thought the web was one of porn, ads and spam I have no idea how you define 'useful'.
21:09:08 <elliott> Vorpal: google analytics doesn't do click-tracking AFAIK
21:09:12 <elliott> and is still apparently illegal now
21:09:27 <Vorpal> elliott, what does google analytics require cookies for then
21:09:38 <elliott> Vorpal: hmm, good point
21:09:47 <elliott> google analytics can do most of whta it does without a cookie, I think
21:10:05 <Vorpal> elliott, the only thing I can think of right now is, indeed, click tracking
21:10:21 <Vorpal> elliott, and I'm no fan of click tracking, so I would be happy to see that gone
21:10:33 <elliott> I would be fine with click tracking being illegal
21:10:33 <Vorpal> of course I doubt anyone will follow this law
21:10:38 <elliott> A blanket cookie law is stupid, though
21:10:44 <Vorpal> elliott, yes.
21:10:46 <elliott> It's like patenting an implementation
21:11:03 <Vorpal> uh I don't quite see the similarity
21:11:16 <elliott> Vorpal: cookies are just a mechanism which can be used for tracking
21:11:24 <elliott> You want to ban tracking, not cookies
21:12:37 <Vorpal> indeed
21:12:51 -!- Sgeo has joined.
21:12:54 <Vorpal> elliott, while I agree it is stupid I don't think there is any direct analogy to patents
21:13:03 <elliott> Yes there is.
21:13:07 <Vorpal> elliott, which one is that
21:13:21 <elliott> You can't patent methods/implementations, only general specifications.
21:13:30 <elliott> (Of course this isn't adhered to in practice, but it's the principle of the thing.)
21:13:41 <elliott> Cookies = implementation, tracking = general.
21:14:03 <Vorpal> hm
21:17:31 <Vorpal> how feasible would it be to try to optimise brainfuck algorithms that deals with several fields into one with a larger word size
21:17:35 <Vorpal> for example:
21:17:54 <Vorpal> ending up with say *((short*)p)++
21:18:06 <Vorpal> for a 2-word addition algorithm
21:18:23 <Vorpal> well, increment in this case
21:18:23 <elliott> Sounds feasible but perhaps not very effective.
21:18:31 <Vorpal> elliott, you think it is too rarely used?
21:18:47 <elliott> No, I just think detecting the loops will be difficult.
21:18:50 <elliott> Unless you just hardcode it.
21:18:54 <Vorpal> elliott, hm true
21:19:28 <Vorpal> elliott, anyway, I think lifthrasiir should implement that SSA thing in esotope-bfc (after porting it from slow python to something else)
21:19:50 <elliott> Porting it will be a microoptimisation.
21:20:00 <elliott> What it does is pretty inherently computationally intensive, isn't it?
21:20:07 <elliott> I mean he's doing it anyway but performance is a bad reason.
21:20:19 <elliott> And a few minutes on LostKng doesn't matter, LostKng is the biggest program and incredibly bad anyway.
21:20:24 <elliott> Since it can be size-optimised to hundreds of kbs easily.
21:20:55 <Vorpal> elliott, gcc generates 1.1 MB binary for it at -O0 from esotope-bfc. -O1 makes me swap trash
21:20:58 <Vorpal> XD
21:21:12 <elliott> Well that's LostKng's fault, not esotope's :P
21:21:18 <Vorpal> elliott, anyway, there is quite a lot of data shuffling
21:21:40 <elliott> 02:28:16: <Lymia> http://andlinux.sourceforge.net/screenshots/screenshot.png
21:21:40 <elliott> 02:28:18: <Lymia> Made of win.
21:21:40 <elliott> Nice, except for the Windows part.
21:21:44 <elliott> Also the KDE part.
21:21:59 <elliott> They should just make the rest of the system Linux too, and then uninstall KDE. Then it'd be made of win.
21:22:10 <elliott> Well, made of mediocre since it's still a sloppy Unix derivative. :p
21:22:24 <elliott> 02:57:32: <Lymia> Sgeo_, I'd love to set up a.... freakish Frankenstein system once they get it working on 64-bit
21:22:24 <elliott> 02:58:30: <Lymia> How much rage do you expect from Windows fanboys/Linux zealots
21:22:35 <elliott> There are Linux fanboys too. :p
21:22:35 <Vorpal> elliott, cython provides a speedup of about 2.3x. But then I haven't converted the most computationally heavy part (cond and expr) because they use metaclasses and cython can't handle it
21:22:43 <Vorpal> and I don't understand how he uses metaclasses
21:22:47 <elliott> I don't know of any Windows zealots, but they probably exist, just they'll be /really/ stupid.
21:23:04 <Vorpal> elliott, windows zealots? Look at gamers.
21:23:06 <elliott> Vorpal: That's a meagre optimisation if it takes a few minutes anyway.
21:23:08 <elliott> And no, they're fanboys.
21:23:34 <Vorpal> elliott, it goes from about 1 minute to slightly less than half a minute
21:23:49 <elliott> Yes; irrelevant.
21:24:02 <elliott> 03:59:16: <Lymia> http://www.tuxradar.com/files/ubuntu_vs_7-3.png
21:24:02 <elliott> 03:59:25: <Lymia> Wtf does Windows use all that space for?
21:24:02 <elliott> They should add OS X, then it'll be one full pole and a bunch of near-zeroes.
21:24:06 <Vorpal> elliott, and yes, doing away with the metaclasses and handling that bit would probably provide another 2x speedup
21:24:21 <elliott> (OK it only takes up about three times that of Vista and that's with iLife installed.)
21:24:26 <elliott> (Sixteen bit Vista, that is.)
21:24:37 <elliott> Vorpal: Now test it on any program but LostKng.
21:24:40 <elliott> LostKng is irrelevant.
21:24:40 <Vorpal> elliott, they should add windows xp to that graph
21:25:39 <Vorpal> elliott, it provides less optimisation for anything but lostking. I mean for mandlebrot.bf it doesn't provide such a HUGE advantage compared to simply merging +++ and so on
21:25:53 <elliott> LostKng is irrelevant since it's fast enough with just about everything.
21:25:58 <elliott> Only the startup really changes.
21:26:07 <Vorpal> hm
21:26:26 <Vorpal> elliott, not for the bf interpreter I wrote in bash once :P
21:26:26 <elliott> It's incredibly badly coded, in elementary brainfuck terms ("can be optimised majorly with a simple bf->bf translation"), and not computationally intensive at all after it starts up.
21:26:30 <elliott> So it's really a terrible benchmark in every way. :p
21:27:08 <oklopol> what kind of bf -> bf trans
21:27:09 <Vorpal> elliott, BUT it is fun to play :P
21:27:31 <oklopol> yeah the minecraft of brainfuck
21:27:36 <elliott> oklopol: removing obvious dead code, basic constant/addition optimisation
21:27:36 <Vorpal> oklopol, there is some dead code. Not any major difference but there is some
21:28:19 <oklopol> removing dead code is optimization?
21:28:25 <Vorpal> -_-
21:28:46 <Vorpal> elliott, http://www.tuxradar.com/files/ubuntu_vs_7-3.png <-- hm I have windows 7 / x86_64 around here. It uses 7.9 GB...
21:28:50 <oklopol> if dead code stuff you don't execute, aren't you just optimizing away a jump
21:28:59 <Vorpal> elliott, that is pro version, probably ultimate uses more
21:29:00 <oklopol> *is
21:29:07 <Vorpal> but the graph doesn't say which version
21:29:08 <elliott> 08:56:23: <Sgeo> How easy/difficult would it be to parse code of a language into an AST in Javascript?
21:29:12 <elliott> Completely impossible.
21:29:26 <Vorpal> elliott, err?
21:29:35 <elliott> Completely. Impossible.
21:29:38 <Vorpal> I would say it is possible
21:29:39 <Phantom_Hoover> Vorpal, also, I am the pope.
21:29:42 <Vorpal> but a stupid idea
21:29:47 <elliott> A stupid idea?
21:29:52 <elliott> JS is just another programming language, you know.
21:30:04 <Vorpal> elliott, using js is a bad idea :P
21:30:10 <oklopol> and basic constant/addition optimization? how can you make that stuff faster within bf?
21:30:15 <Vorpal> unless it is Gregor doing it
21:30:26 <Vorpal> in which case the result is invariably awesome
21:30:35 <oklopol> it seems like the fastest code for making a constant is + times that constant
21:31:00 <elliott> oklopol: I really forget exactly what makes it tiny :P
21:31:06 <elliott> We're talking size optimisation, anyway
21:31:08 <elliott> Not speed
21:31:11 <oklopol> ohhh
21:31:31 <oklopol> that changes everything ofc
21:32:18 <elliott> 12:40:09: <Sgeo> If I detect that call/cc is not used, I can skip the CPS transform!
21:32:25 <elliott> What a pointless waste of time, writing two compilers when one would do.
21:32:33 <oklopol> speed optimization within bf would probably be more about changing numbers to small-ary representation and reorganizing memory and stuff like that, seems hard to do anything useful locally
21:32:36 <Vorpal> elliott, I'd like a reasonable language on top of bf that made it non-painful to code for, but didn't produce stupidly large bf code as a result
21:32:37 <elliott> 14:32:32: <Sgeo> Expanding lists means the old location of the list may get left behind, but I can make a list of free spaces and have new variable allocations check that first
21:32:40 <elliott> ...
21:32:43 <Vorpal> elliott, know any?
21:32:44 <elliott> Vorpal: PEBBLE
21:32:51 <Vorpal> elliott, oh that, link
21:32:56 <Vorpal> hm
21:32:58 <elliott> It's on nonlogic which evaporated.
21:33:01 <elliott> Get a tarball of pikhq.
21:33:04 <Vorpal> ah
21:33:05 <pikhq> The host went down ages ago, and I haven't bothered to find another.
21:33:13 <Vorpal> pikhq, can you give me a tarball
21:33:15 <elliott> Vorpal: It's still not "comfortable", all it has is macros, not functions, and you need to manage temporary variables (by creating them and passing them), but it's better than nothing.
21:33:22 <elliott> And you could easily make a "real" language out of it with macros.
21:33:31 <pikhq> What with it having been 4 years since I actually did stuff with it...
21:33:35 <Phantom_Hoover> Sgeo, now do you see why I told you to change your nick to something innocuous?
21:33:45 <pikhq> Vorpal: I really have no idea where to even upload a tarball to right now.
21:33:48 <Vorpal> elliott, I suggest m4 on top of brainfuck
21:33:51 <Vorpal> pikhq, filebin?
21:33:52 <elliott> 14:50:49: <Vorpal> oerjan, I think it is a generator, rather than a comprehension.
21:33:54 <Vorpal> or such?
21:33:56 <elliott> It's a comprehension which creates a generator.
21:34:00 <elliott> 14:49:27: <Vorpal> hm how should this expression in python be read: SetMemory(k,v) for k,v in subst.items() if v != Expr[k] ? As if ...: for ...: yeild SetMemory... Or as for ...: if ...: yeild SetMemory... ?
21:34:05 <elliott> Neither; it's "yield".
21:34:06 <elliott> (But latter.)
21:34:09 <elliott> Vorpal: filebin is down.
21:34:13 <elliott> pikhq: | uuencode | sprunge :-)
21:34:13 <Vorpal> huh
21:34:21 <elliott> Or there's the annoying-but-easy mediafire.com.
21:34:34 <Vorpal> elliott, uh that is a PITA to use yes
21:34:43 -!- variable has joined.
21:34:45 <elliott> Not really.
21:34:50 <elliott> You just click a link to download it. :p
21:34:56 <Vorpal> elliott, and wait iirc
21:34:58 <elliott> No.
21:34:59 <Vorpal> and what not
21:35:00 <elliott> That's the other ones.
21:35:00 <Vorpal> hm
21:35:10 <elliott> Mediafire might require JS, but it certainly doesn't require any waiting or captcha.
21:35:11 <Vorpal> elliott, oh mediafire is the one which never works for me
21:35:17 <elliott> Have you tried enabling JS.
21:35:20 <Vorpal> elliott, I have enabled js yes
21:35:24 <Vorpal> I'm not stupid
21:35:31 <Vorpal> elliott, I tried enabling cookies too
21:35:32 <elliott> Maybe it uses Flash. Nah, doubt it. (It does to upload.)
21:35:42 <Vorpal> elliott, all I got was a static progressbar image
21:35:54 <Vorpal> elliott, well I won't do flash. Just no.
21:35:56 <elliott> There is no download progress-bar.
21:35:59 <elliott> You are thinking of another site.
21:36:28 <Vorpal> pikhq, what about dropbox?
21:36:29 <pikhq> Vorpal: http://sprunge.us/BQDV
21:36:39 <pikhq> wget -O- | uudecode
21:37:12 <Vorpal> $ sha512sum pebble-1.0.tar.xz
21:37:12 <Vorpal> 0ed0b0f52b195263e59941869f8a153776a01ae7f81be920c707a42ee5345f9909a333a36a08a48e2f6b1dc26823d03296bd61f376504872da4487f5332e6c16 pebble-1.0.tar.xz
21:37:15 <Vorpal> pikhq, can you verify it
21:37:25 <pikhq> 0ed0b0f52b195263e59941869f8a153776a01ae7f81be920c707a42ee5345f9909a333a36a08a48e2f6b1dc26823d03296bd61f376504872da4487f5332e6c16 pebble-1.0.tar.xz
21:37:34 <Vorpal> mmmm, yep looks correct
21:38:17 <elliott> Vorpal: seriously?
21:38:24 <elliott> Especially that last line.
21:38:31 <elliott> "Hmm, they could have sabotaged it by changing one digit of the hash..."
21:38:32 <Vorpal> elliott, what? dropbox?
21:38:40 <Vorpal> elliott, hardly
21:38:45 <elliott> It was sprunge, not dropbox.
21:38:46 <Vorpal> elliott, I didn't say that
21:38:55 <Vorpal> elliott, no that I mentioned dropbox above
21:38:56 <Vorpal> ...
21:39:07 <elliott> Congratulations, you have not been coherent for a whole five lines.
21:39:40 <Vorpal> elliott, right
21:39:52 <elliott> Six.
21:39:52 <Vorpal> elliott, anyway what was wrong with verifying checksum?
21:40:03 <pikhq> Vorpal: PEBBLE, BTW, was quite specifically designed to let you write Brainfuck without stupidly retarded output.
21:40:14 <Vorpal> pikhq, nice
21:40:27 <pikhq> Course, that's pretty easy when it is literally just a macro system.
21:40:34 <Vorpal> pikhq, I see I need to install tcl
21:40:42 <pikhq> And Tcllib.
21:40:45 <elliott> 17:56:04: <quintopia> (yes, i know what you were talking about, i'm not a complete idiot)
21:40:45 <elliott> Nice jab.
21:40:47 <Vorpal> elliott, hm?
21:40:55 <elliott> Vorpal: I never pinged you.
21:40:59 <Vorpal> err
21:41:01 <Vorpal> pikhq, ^
21:41:08 <Vorpal> elliott, misnick
21:41:22 <pikhq> Tcllib is another dependency of PEBBLE.
21:41:49 <pikhq> It is almost certainly in your package manager.
21:41:58 <Vorpal> right
21:42:09 <elliott> 18:29:53: <Vorpal> ais523, oh I read that as bitwise and :P
21:42:09 <elliott> 18:30:06: <Vorpal> ais523, as in int1 & & int2
21:42:11 <elliott> Still illegal.
21:42:23 <Vorpal> elliott, yes that was the whole point
21:42:29 <pikhq> elliott: Not without some explicit casts.
21:42:30 <Vorpal> pikhq, is it what causes the error "package require cmdline"
21:42:40 <pikhq> Vorpal: Yes, that's in Tcllib.
21:42:45 <elliott> pikhq: s/Not w/W/
21:44:44 <pikhq> Incidentally, if I had to do this all over again, I'd write it in Haskell with a proper parser.
21:44:53 <elliott> And also make it LISP
21:44:59 <elliott> That is shouted Lisp not retro-capitalisation Lisp
21:45:15 <pikhq> (as it is, PEBBLE is just Tcl with alternate words defined)
21:47:09 <pikhq> Man, I did love my backronyms then.
21:47:23 <Vorpal> pikhq, what does PEBBLE stand for?
21:47:32 <pikhq> Practical Esoteric Brainfuck-Based Language, Eh?
21:47:53 <Vorpal> pikhq, ah, any other backronyms or what made you say "<pikhq> Man, I did love my backronyms then."?
21:48:08 <pikhq> PFUCK, a Brainfuck compiler in PEBBLE.
21:48:11 <elliott> PFUCK was a backronym too I think.
21:48:13 <elliott> Ninja'd.
21:48:14 <pikhq> (the P is silent)
21:48:25 <Vorpal> <elliott> Ninja'd. <-- ?
21:48:26 <pikhq> Pebble's Fucked Up Compiler, Kay?
21:48:47 <elliott> Vorpal: Yes.
21:48:51 <Vorpal> elliott, what do you mean
21:49:10 <elliott> Vorpal: pikhq said it while I was typing.
21:49:30 <Vorpal> elliott, indeed, his message arrived 2 seconds earlier for me
21:50:40 * pikhq wonders if oerjan still has that script used to generate stdcons.bfm...
21:51:33 <pikhq> (stdcons.bfm, BTW, is an automated PEBBLE port of the 2-cell wrapping versions of constants from http://esolangs.org/wiki/Brainfuck_constants)
21:54:39 <oklopol> pikhq: have you seen lucky star
21:54:57 <oklopol> that shit is way more fucked up than elfen lied if you ask me
21:56:07 <pikhq> oklopol: No, I have not seen らき☆すた.
21:56:09 <Vorpal> pikhq, strange...
21:56:17 <Vorpal> pikhq, for 255 on that page:
21:56:18 <Vorpal> - (1, 1) wrapping
21:56:18 <Vorpal> >- (2, 2) wrapping
21:56:21 <oklopol> pikhq: alrighty
21:56:21 <Vorpal> wait what
21:56:23 <Vorpal> for the last one
21:56:34 <pikhq> Vorpal: Well, it uses two cells, doesn't it? :P
21:56:40 <Vorpal> pikhq, yes but WHY
21:56:44 <Vorpal> what is the point of that
21:56:45 <pikhq> Beats me.
21:58:13 <Vorpal> pikhq, do you have any example program in PEBBLE?
21:58:19 -!- ais523 has quit (Remote host closed the connection).
22:01:48 <pikhq> http://sprunge.us/DSBW
22:01:56 <CakeProphet> !help
22:01:56 <EgoBot> ​help: General commands: !help, !info, !bf_txtgen. See also !help languages, !help userinterps. You can get help on some commands by typing !help <command>.
22:02:05 <CakeProphet> !help languages
22:02:05 <EgoBot> ​languages: Esoteric: 1l 2l adjust asm axo bch befunge befunge98 bf bf8 bf16 bf32 boolfuck cintercal clcintercal dimensifuck glass glypho haskell kipple lambda lazyk linguine malbolge pbrain perl qbf rail rhotor sadol sceql trigger udage01 underload unlambda whirl. Competitive: bfjoust fyb. Other: asm c cxx forth sh.
22:02:16 <Vorpal> pikhq, what is the target it compiles to?
22:02:18 <elliott> <Vorpal> - (1, 1) wrapping
22:02:18 <elliott> <Vorpal> >- (2, 2) wrapping
22:02:22 <elliott> that latter one needs removing
22:02:36 <Vorpal> elliott, there are lots of those for many of the large values
22:02:37 <CakeProphet> !sh ls
22:02:39 <EgoBot> ​interps
22:02:40 <pikhq> Vorpal: PFUCK compiles to C.
22:02:50 <CakeProphet> !sh ls interps
22:02:50 <EgoBot> ​1l
22:02:56 <CakeProphet> !sh ls interps/1l
22:02:57 <EgoBot> ​1l_a.bin
22:02:58 <pikhq> And is minimally optimising.
22:03:12 <Vorpal> pikhq, what is the file extension that should be used for pebble source?
22:03:21 <pikhq> .bfm
22:03:25 <pikhq> For hysterical raisins.
22:03:44 <Vorpal> pikhq, brain fuck module?
22:04:49 <CakeProphet> !sh echo 'Congratulations you've beat the game!' > trap.txt
22:04:49 <EgoBot> ​/tmp/input.29889: line 1: unexpected EOF while looking for matching `''
22:05:09 <pikhq> s/module/macros/
22:05:21 <Vorpal> pikhq, ah
22:05:23 <CakeProphet> weird.
22:05:48 <Vorpal> pikhq, so it is pebble.tcl or brainfucktopebble.tcl that you use?
22:05:51 <CakeProphet> !sh echo "$PATH"
22:05:52 <EgoBot> ​/usr/local/bin:/usr/bin:/bin:/usr/games
22:05:52 <Vorpal> pikhq, both are +x
22:06:06 <CakeProphet> !sh ls /
22:06:06 <elliott> brainfucktopebble obviously converts brainfuck to PEBBLE.
22:06:06 <EgoBot> ​bin
22:06:08 <Vorpal> CakeProphet, why not use HackEgo instead?
22:06:13 <elliott> I deduced this by not being an idiot.
22:06:22 <CakeProphet> Vorpal: hmmm?
22:06:23 <Vorpal> elliott, oh I read it backwards somehow
22:06:31 <Vorpal> `help
22:06:34 <HackEgo> Runs arbitrary code in GNU/Linux. Type "`<command>", or "`run <command>" for full shell commands. "`fetch <URL>" downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert <rev>" can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/
22:06:49 <Vorpal> CakeProphet, egobot having sh too is a bit silly
22:07:05 <Vorpal> !sh file interps/1l/​1l_a.bin
22:07:06 <EgoBot> ​interps/1l/​1l_a.bin: ERROR: cannot open `interps/1l/​1l_a.bin' (No such file or directory)
22:07:08 <pikhq> pebble.tcl
22:07:13 <Vorpal> !sh ls interps/1l/
22:07:14 <EgoBot> ​1l_a.bin
22:07:18 <Vorpal> !sh ls interps/1l/ -l
22:07:18 <EgoBot> ​/bin/ls: interps/1l/: Function not implemented
22:07:23 <Vorpal> !sh ls -l interps/1l/
22:07:24 <EgoBot> ​/bin/ls: interps/1l/: Function not implemented
22:07:26 <pikhq> brainfucktopebble.tcl is just a stupid, pointless compiler from Brainfuck to PEBBLE.
22:07:26 <Vorpal> what
22:07:41 <Vorpal> pikhq, what is with stdlib/c ?
22:07:56 <pikhq> Alternate implementation of functions for the C backend.
22:08:09 <CakeProphet> `ls /
22:08:10 <HackEgo> ​bin \ dev \ etc \ home \ lib \ lib64 \ opt \ proc \ tmp \ usr
22:08:17 <Vorpal> pikhq, and stdlib/interpret for an interpreter?
22:08:26 <pikhq> Yeah.
22:08:30 <Vorpal> CakeProphet, it is sandboxed. Both are.
22:08:31 <CakeProphet> `ls /usr
22:08:32 <HackEgo> ​X11R6 \ bin \ games \ include \ lib \ lib64 \ local \ sbin \ share \ src
22:08:34 <pikhq> For the really, really stupid interpreter.
22:08:38 <Vorpal> pikhq, heh
22:08:39 <CakeProphet> `ls /home
22:08:40 <HackEgo> ​hackbot
22:08:46 <CakeProphet> `ls /home/hackbot
22:08:48 <HackEgo> ​hackbot.hg
22:08:53 <CakeProphet> heh
22:09:00 <Vorpal> CakeProphet, and versioned yes
22:09:20 <CakeProphet> now if only I could find something useful to do with it...
22:09:23 <Vorpal> CakeProphet, both use this: http://plash.beasts.org/wiki/
22:09:48 <CakeProphet> it would be cool if you could run background processes with stdin being this channel
22:10:01 <CakeProphet> `ps
22:10:03 <HackEgo> ​PID TTY TIME CMD \ 30766 ? 00:00:00 ld-linux.so.2
22:10:24 <Vorpal> <CakeProphet> it would be cool if you could run background processes with stdin being this channel <-- run your own bot :P
22:10:43 <CakeProphet> I've got a very poorly featured bot written in Perl at the moment
22:10:43 <Vorpal> or on further consideration, don't
22:12:01 <CakeProphet> `find / -name '*.pl'
22:12:02 <HackEgo> No output.
22:12:12 <CakeProphet> `find / -name '*.py'
22:12:13 <HackEgo> No output.
22:12:57 <CakeProphet> `find / -name '*.txt'
22:12:59 <HackEgo> No output.
22:13:03 <CakeProphet> :(
22:16:34 <Vorpal> `run find / -name '*.txt'
22:16:35 <HackEgo> No output.
22:16:37 <Vorpal> hm
22:16:40 <Vorpal> `run find / -name '*.pl'
22:16:42 <HackEgo> No output.
22:16:43 <Vorpal> `run find / -name '*.py'
22:16:44 <HackEgo> No output.
22:16:47 <Vorpal> `run find / -name '*'
22:16:48 <HackEgo> ​/
22:16:55 <Vorpal> `run find / -type f -name '*.*'
22:16:56 <HackEgo> No output.
22:16:58 <Vorpal> eh
22:17:03 <Vorpal> `touch test
22:17:05 <HackEgo> No output.
22:17:08 <Vorpal> `ls
22:17:09 <HackEgo> ​1 \ babies \ bin \ bluhbluh \ env \ foo \ paste \ ps \ quine \ quotes \ quotese \ test \ test.c \ tmpdir.31660
22:17:12 <Vorpal> `run find / -type f -name '*.*'
22:17:14 <HackEgo> No output.
22:17:17 <Vorpal> okay
22:17:25 <CakeProphet> `fine / -name *.pl -printf
22:17:26 <elliott> `run which find
22:17:26 <Vorpal> CakeProphet, I don't know why it does that, but well
22:17:27 <HackEgo> No output.
22:17:27 <HackEgo> ​/usr/bin/find
22:17:37 <elliott> `find / -name \*
22:17:39 <HackEgo> No output.
22:17:40 <elliott> `run find / -name \*
22:17:41 <Vorpal> `rm test
22:17:42 <HackEgo> ​/
22:17:43 <HackEgo> No output.
22:17:45 <elliott> just needs two>andone
22:17:49 <elliott> to see errors
22:17:58 <Vorpal> `run find / -type f -name '*.*' 2>&1
22:17:59 <HackEgo> ​/usr/bin/find: `/': Function not implemented
22:18:03 <Vorpal> what
22:18:13 <Vorpal> Gregor, please explain this
22:18:59 <CakeProphet> I've never seen 2>&1 before.
22:19:11 * CakeProphet just recently learned some advanced bash stuff.
22:19:30 <elliott> That
22:19:34 <elliott> that is not advanced
22:19:36 <Vorpal> CakeProphet, redirect fd 2 to fd 1
22:19:40 <Vorpal> and yeah not advanced
22:19:43 <elliott> <Vorpal> Gregor, please explain this
22:19:44 <elliott> plash
22:19:47 <elliott> Explained.
22:19:50 <Vorpal> elliott, hm probably yeah
22:20:00 <Vorpal> elliott, weird errno for it
22:20:00 <elliott> No, definitely.
22:20:17 <elliott> `run rm -rf /bin 2>&1
22:20:18 <HackEgo> ​/bin/rm: cannot remove `/bin': Function not implemented
22:20:22 <Vorpal> heh
22:20:55 <CakeProphet> well I didn't mean to say that it was advanced, I was just explaining that I'm still learning and probably overlooked it
22:21:04 <Vorpal> elliott, should be EACCESS not ENOSYS
22:21:22 <elliott> Vorpal: it may be trying to fool software.
22:21:30 <elliott> That is, malicious software, perhaps.
22:21:32 <Vorpal> elliott, hm
22:21:38 <elliott> No reason to give away the game if you don't have to. :p
22:22:06 <Vorpal> elliott, for standard compatibility?
22:22:09 <Phantom_Hoover> "TIL the value of a Moon Rock is $50,800 per gram and they are illegal to sell"
22:22:15 <Phantom_Hoover> I don't think that's how value works...
22:22:22 <CakeProphet> `cd / && find .
22:22:24 <HackEgo> No output.
22:22:34 <CakeProphet> `cd / && find . 2>&1
22:22:35 <HackEgo> No output.
22:22:36 <Vorpal> CakeProphet, that needs run
22:22:37 <elliott> Phantom_Hoover: Black market?
22:22:42 <Vorpal> `run cd / && find . 2>&1
22:22:43 <CakeProphet> `run cd / && find . 2>&1
22:22:44 <HackEgo> ​. \ /usr/bin/find: `.': Function not implemented
22:22:45 <HackEgo> ​. \ /usr/bin/find: `.': Function not implemented
22:22:48 <Vorpal> yeah
22:23:01 <Vorpal> CakeProphet, mutiple commands need run
22:23:15 <Vorpal> without run you aren't doing it in sh, but plain exec() iirc
22:23:23 <CakeProphet> ah
22:23:36 <Vorpal> well, execev or so probably
22:23:51 <Vorpal> execv*
22:24:15 <elliott> Vorpal: no, it actually only passes a single argument
22:24:18 <elliott> so that addquote etc. work
22:24:28 <Vorpal> elliott, heh
22:24:41 <Vorpal> `type run
22:24:43 <HackEgo> No output.
22:24:47 <Vorpal> `run type run
22:24:48 <HackEgo> No output.
22:24:52 <Vorpal> `run type run 2>&1
22:24:53 <HackEgo> ​/bin/bash: line 1: type: run: not found
22:24:55 <Vorpal> mhm
22:25:06 <Vorpal> elliott, I had hoped run was just eval "$1" :P
22:25:27 <CakeProphet> ..Perl?
22:25:34 <Vorpal> CakeProphet, what?
22:25:45 <CakeProphet> oh, bash I guess.
22:25:50 <Vorpal> yes...
22:26:26 <CakeProphet> that would, you know, make more sense.
22:27:52 <CakeProphet> that's weird that find is preventing a find on /. Why not just prevent -delete?
22:28:03 <elliott> It's not find, it's plash.
22:28:08 <elliott> i.e. libc.
22:28:59 <elliott> How does subtraction work.
22:29:18 <CakeProphet> you add the negative of the right-hand operand. :)
22:29:55 <CakeProphet> for example, 2-1 becomes 2+(-1)
22:29:58 <CakeProphet> :P
22:30:44 <Vorpal> <elliott> How does subtraction work. <-- seriously?
22:31:27 <elliott> yes.
22:31:29 <elliott> HOW.
22:32:12 <CakeProphet> With our minds I guess?
22:32:31 <Vorpal> elliott, for (i=0;i<b;i++) a += ~0
22:32:37 <Vorpal> assuming two-complement
22:32:53 <Vorpal> elliott, any questions?
22:33:15 <elliott> HOW
22:33:25 <Vorpal> elliott, please clarify
22:34:19 <elliott> undefined :: (DivLoop T5 T5 qt rm) => (qt,rm)
22:34:20 <elliott> :: (O (O (O Z)), O (O (O Z)))
22:34:20 <elliott> GAH.
22:34:28 <elliott> HOW DOES SUBTRACTION WORK
22:34:38 <Vorpal> elliott, I told you above
22:34:49 <Vorpal> elliott, which language is that btw? haskell?
22:35:03 <elliott> Haskell type system.
22:35:10 <CakeProphet> looks like someone is trying to much around with the type system.
22:35:10 <elliott> Actual typeclass I just made: SubHelperThatIsRealHelper.
22:35:20 <elliott> (RealSubHelper and RealSubHelperHelper are taken.)
22:35:31 <elliott> CakeProphet: Yes, I'm muching around with it a lot.
22:35:32 <Vorpal> elliott, oh so you actually meant to ask who subtraction in the type system works?
22:35:44 <Vorpal> in which case I don't know
22:36:05 <oklopol> well it certainly works me
22:36:32 -!- pikhq has quit (Ping timeout: 246 seconds).
22:36:34 <elliott> SubHelperThatIsRealHelperHelper
22:36:36 <elliott> it's like java
22:36:59 <Vorpal> heh
22:37:34 <CakeProphet> elliott: as long as nothing matches /Manager/
22:37:38 <CakeProphet> then it's still not Java.
22:37:40 <elliott> managerfactorymanager
22:37:48 <CakeProphet> once you have a SubHelperManagerThatIsRealHelperHelperManager
22:37:57 <CakeProphet> then you might actually be coding in Java.
22:39:35 <CakeProphet> you know
22:39:44 <CakeProphet> I don't think the universe intended for us to write programs in type systems.
22:40:19 <Vorpal> `ls /proc/self
22:40:20 <HackEgo> ​attr \ auxv \ cgroup \ clear_refs \ cmdline \ coredump_filter \ cpuset \ cwd \ environ \ exe \ fd \ fdinfo \ io \ limits \ loginuid \ maps \ mem \ mountinfo \ mounts \ mountstats \ net \ numa_maps \ oom_adj \ oom_score \ pagemap \ personality \ root \ sched \ sessionid \ smaps \ stack \ stat \ statm \ status \ syscall \ task \ wchan
22:40:23 <Vorpal> `ls /proc/self/fd
22:40:24 <HackEgo> ​0 \ 1 \ 10 \ 11 \ 12 \ 13 \ 14 \ 15 \ 16 \ 17 \ 18 \ 19 \ 2 \ 20 \ 21 \ 22 \ 27 \ 29 \ 3 \ 4 \ 5 \ 6 \ 7 \ 8 \ 9
22:40:58 <Vorpal> `ls -l /proc/self/exe
22:40:59 <HackEgo> No output.
22:41:02 <Vorpal> `ls -l /proc/self/exe 2>&1
22:41:04 <HackEgo> No output.
22:41:06 <CakeProphet> `ls /proc/self/personality
22:41:07 <HackEgo> ​/proc/self/personality
22:41:09 <Vorpal> `run ls -l /proc/self/exe 2>&1
22:41:10 <HackEgo> ​/bin/ls: /proc/self/exe: Function not implemented \ lrwxrwxrwx 1 5000 5000 0 May 28 22:41 /proc/self/exe -> /usr/bin/python2.5
22:41:16 <Vorpal> huh
22:41:20 <Vorpal> nice one
22:41:22 <CakeProphet> `cat /proc/self/personality
22:41:23 <HackEgo> ​00000000
22:41:32 <CakeProphet> what a boring personality.
22:41:41 -!- pikhq has joined.
22:41:48 <Vorpal> `run ls -l /proc/self/fd 2>&1 | tr '\n' '|'
22:41:50 <HackEgo> ​/bin/ls: /proc/self/fd: Function not implemented|/bin/ls: /proc/self/fd/0: Function not implemented|/bin/ls: /proc/self/fd/1: Function not implemented|/bin/ls: /proc/self/fd/2: Function not implemented|/bin/ls: /proc/self/fd/3: Function not implemented|/bin/ls: /proc/self/fd/4: Function not implemented|/bin/ls: /proc/self/fd/5:
22:42:05 <Vorpal> `run ls -l /proc/self 2>&1 | tr '\n' '|'
22:42:07 <HackEgo> ​/bin/ls: /proc/self: Function not implemented|lrwxrwxrwx 1 0 0 64 May 28 22:16 /proc/self -> 1995|
22:42:13 <Vorpal> `run ls -l /proc/self7 2>&1 | tr '\n' '|'
22:42:15 <HackEgo> ​/bin/ls: cannot access /proc/self7: No such file or directory|
22:42:21 <Vorpal> err
22:42:25 <Vorpal> `run ls -l /proc/self/ 2>&1 | tr '\n' '|'
22:42:26 <HackEgo> ​/bin/ls: /proc/self/: Function not implemented|/bin/ls: /proc/self/task: Function not implemented|/bin/ls: /proc/self/fd: Function not implemented|/bin/ls: /proc/self/fdinfo: Function not implemented|/bin/ls: /proc/self/net: Function not implemented|/bin/ls: /proc/self/environ: Function not implemented|/bin/ls: /proc/self/auxv:
22:42:34 <Vorpal> `run ls -l 2>&1 | tr '\n' '|'
22:42:35 <HackEgo> ​/bin/ls: 1: Function not implemented|/bin/ls: babies: Function not implemented|/bin/ls: bin: Function not implemented|/bin/ls: bluhbluh: Function not implemented|/bin/ls: env: Function not implemented|/bin/ls: foo: Function not implemented|/bin/ls: paste: Function not implemented|/bin/ls: ps: Function not implemented|/bin/ls:
22:42:55 <Vorpal> Gregor, what is this non-implemented function mentioned all the time
22:43:00 <Vorpal> `run stat bin 2>&1 | tr '\n' '|'
22:43:02 <HackEgo> ​File: `bin'|.Size: 4096..Blocks: 8. IO Block: 4096 directory|Device: ca01h/51713d.Inode: 832795. Links: 2|Access: (0755/drwxr-xr-x) Uid: ( 5000/ UNKNOWN) Gid: ( 5000/ UNKNOWN)|Access: 2011-05-28 22:43:01.000000000 +0000|Modify: 2011-05-28 22:43:01.000000000 +0000|Change: 2011-05-28 22:43:01.000000000 +0000|
22:43:07 <Vorpal> hm not that
22:43:19 <Vorpal> `run ls -l /proc/self/ 2>/dev/null | tr '\n' '|'
22:43:20 <HackEgo> ​total 0|dr-xr-xr-x 2 5000 5000 0 May 28 22:43 attr|-r-------- 1 5000 5000 0 May 28 22:43 auxv|-r--r--r-- 1 5000 5000 0 May 28 22:43 cgroup|--w------- 1 5000 5000 0 May 28 22:43 clear_refs|-r--r--r-- 1 5000 5000 0 May 28 22:43 cmdline|-rw-r--r-- 1 5000 5000 0 May 28 22:43 coredump_filter|-r--r--r-- 1 5000 5000 0 May 28 22:43
22:43:41 <Vorpal> `run ls /proc/self/ | tr '\n' '|'
22:43:43 <HackEgo> ​attr|auxv|cgroup|clear_refs|cmdline|coredump_filter|cpuset|cwd|environ|exe|fd|fdinfo|io|limits|loginuid|maps|mem|mountinfo|mounts|mountstats|net|numa_maps|oom_adj|oom_score|pagemap|personality|root|sched|sessionid|smaps|stack|stat|statm|status|syscall|task|wchan|
22:43:56 <elliott> `run ls /proc/self
22:43:58 <HackEgo> ​attr \ auxv \ cgroup \ clear_refs \ cmdline \ coredump_filter \ cpuset \ cwd \ environ \ exe \ fd \ fdinfo \ io \ limits \ loginuid \ maps \ mem \ mountinfo \ mounts \ mountstats \ net \ numa_maps \ oom_adj \ oom_score \ pagemap \ personality \ root \ sched \ sessionid \ smaps \ stack \ stat \ statm \ status \ syscall \ task \ wchan
22:44:00 <elliott> HackEgo does it itself, dude.
22:44:21 <CakeProphet> `perl -e 'open 0; print <0>'
22:44:22 <HackEgo> No output.
22:44:25 <CakeProphet> heh.
22:44:26 <Vorpal> `run ls -l /proc/self/root
22:44:27 <HackEgo> ​lrwxrwxrwx 1 5000 5000 0 May 28 22:44 /proc/self/root -> /
22:44:36 <Vorpal> `run ls -l /proc/self/exe
22:44:37 <HackEgo> ​lrwxrwxrwx 1 5000 5000 0 May 28 22:44 /proc/self/exe -> /usr/bin/python2.5
22:44:45 <elliott> wat
22:44:56 <Vorpal> HackEgo, buggered if I knew
22:45:05 <Vorpal> `run cat /proc/self/cmdline
22:45:06 <CakeProphet> ` echo 'open 0; print <0>' > quine.pl
22:45:07 <HackEgo> ​/usr/bin/python
22:45:07 <HackEgo> No output.
22:45:16 <CakeProphet> `perl quine.pl
22:45:18 <HackEgo> No output.
22:45:21 <CakeProphet> .. :(
22:45:37 <Vorpal> `run cat /proc/self/cmdline | cat -e
22:45:38 <HackEgo> ​/usr/bin/python^@/usr/bin/pola-run^@-B^@-f=/lib64^@-f=/etc/alternatives^@-f=/proc^@-f=/opt^@-tw^@/tmp^@tmpdir.2822^@-fw=/tmp/hackenv.2822^@-f=/home/hackbot/hackbot.hg/multibot_cmds/lib/limits^@--prog=/home/hackbot/hackbot.hg/multibot_cmds/lib/limits^@-a=/usr/bin/nice^@-a=-n10^@-e^@bash^@
22:45:43 <Vorpal> what
22:45:52 <Vorpal> hm
22:46:03 <Vorpal> `run cat /proc/self/cmdline | tr '\0' ' '
22:46:03 <elliott> Oh, right.
22:46:04 <HackEgo> ​/usr/bin/python /usr/bin/pola-run -B -f=/lib64 -f=/etc/alternatives -f=/proc -f=/opt -tw /tmp tmpdir.2896 -fw=/tmp/hackenv.2896 -f=/home/hackbot/hackbot.hg/multibot_cmds/lib/limits --prog=/home/hackbot/hackbot.hg/multibot_cmds/lib/limits -a=/usr/bin/nice -a=-n10 -e bash
22:46:20 <Vorpal> `run cat /proc/self/cmdline | tr '\0' ' ' | tail -c 20
22:46:21 <HackEgo> ​ice -a=-n10 -e bash
22:46:24 <elliott> It'll exec itself.
22:46:28 <Vorpal> right nothing cut off
22:48:17 <CakeProphet> `ls
22:48:19 <HackEgo> ​1 \ babies \ bin \ bluhbluh \ env \ foo \ paste \ ps \ quine \ quotes \ quotese \ test.c \ tmpdir.3130
22:48:20 <Vorpal> elliott, I find it funny that it doesn't emulate /proc
22:49:02 <CakeProphet> `ls quine
22:49:03 <HackEgo> ​quine
22:49:09 <CakeProphet> ..lol
22:49:17 <Vorpal> `cat quine
22:49:18 <HackEgo> ​`cat quine
22:49:22 <elliott> Vorpal: Why would it?
22:49:23 <Vorpal> eh
22:49:25 <elliott> `rm quine
22:49:26 <HackEgo> No output.
22:49:31 <Vorpal> elliott, what was quine
22:49:35 <Vorpal> <Vorpal> `cat quine
22:49:35 <Vorpal> <HackEgo> ​`cat quine
22:49:37 <Vorpal> come on
22:49:40 <elliott> Vorpal: A file.
22:49:40 <elliott> `cat bluhbluh
22:49:42 <HackEgo> No output.
22:49:42 <Vorpal> right
22:49:49 <elliott> `run ls -lh bluhbluh
22:49:50 <HackEgo> ​-rw-r--r-- 1 5000 5000 0 May 28 22:49 bluhbluh
22:50:02 <elliott> `quote
22:50:02 <elliott> `quote
22:50:03 <elliott> `quote
22:50:03 <elliott> `quote
22:50:03 <elliott> `quote
22:50:04 <HackEgo> ​312) <elliott> lol @ closed character set standard <elliott> "What does this codepoint represent?" "Nobody knows."
22:50:04 <HackEgo> ​229) <elliott> [...] ALWAYS OPEN TO TRYING NEW THINGS.
22:50:05 <HackEgo> ​178) <oklopol> pigeons are very smart. all the known ways to show a language is not regular are based on pigeons.
22:50:06 <HackEgo> ​392) <Cheery> [...] OOPS.. my cockfile got destroyed
22:50:06 <HackEgo> ​315) <fizzie> Phantom_Hoover: I have just one tvtropes page open in elinks, but my tvtropes.txt "queue" has 38 tvtropes.org URLs waiting for processing.
22:50:55 <CakeProphet> `echo 'open 0; print <0>' > quine.pl
22:50:56 <HackEgo> ​'open 0; print <0>' > quine.pl
22:51:13 <elliott> use `run
22:51:16 <elliott> but that is a cheat quine
22:51:21 <CakeProphet> elliott: shhh
22:51:27 <CakeProphet> `run echo 'open 0; print <0>' > quine.pl
22:51:28 <Phantom_Hoover> `quote
22:51:29 <HackEgo> No output.
22:51:29 <Phantom_Hoover> `quote
22:51:29 <Phantom_Hoover> `quote
22:51:29 <Phantom_Hoover> `quote
22:51:30 <Phantom_Hoover> `quote
22:51:30 <HackEgo> ​132) <DoctorDog> I am an inherently pornographic being.
22:51:31 <HackEgo> ​176) <cpressey> Never ever use a quote which contains both the words "aloofness" and "gel" (verb).
22:51:32 <HackEgo> ​408) <monqy> `quote django <HackEgo> ​352) <olsner> django is named after a person? <olsner> thought it would be a giraffe or something \ 407) <cpressey> `quote django <HackEgo> ​352) <olsner> django is named after a person? <olsner> thought it would be a giraffe or something <cpressey> thankfully only one <monqy> thankfully only two
22:51:32 <HackEgo> ​393) <Cheery> when I command it to do couple useful operations it instead mutilates my cock.
22:51:34 <HackEgo> ​38) <ehird> is there a problem with it being carbonized :D <augur> yes: carbonized coffee bean is known more commonly as "charcoal"
22:51:35 <Vorpal> CakeProphet, how does it work?
22:51:41 <Vorpal> CakeProphet, I don't know perl
22:53:30 <CakeProphet> Vorpal: I'm not entirely sure. But "open 0" I believe treats 0 to be a symbolic reference since there's no second argument, so it grabs the value held in $0, which is the name of the program, and saves it to the filehandle 0 because Perl can do that apparently. And then <0> is the read operator on the filehandle 0.
22:53:58 <CakeProphet> normally you use open like this: open my $fh, 'filename.here'
22:54:04 <Vorpal> `quine.pl test
22:54:06 <HackEgo> No output.
22:54:12 <Vorpal> nope doesn't work
22:54:13 <CakeProphet> `perl quine.pl
22:54:15 <olsner> speaking of carbonated coffee, coffee and coca cola is a nice combination
22:54:15 <HackEgo> ​open 0; print <0>
22:54:21 <Vorpal> ah
22:54:36 -!- hagb4rd has joined.
22:55:52 <CakeProphet> Vorpal: it's very much cheating though.
22:56:01 <elliott> olsner: Er, nice :P
22:56:07 <elliott> In a really horrific way.
22:56:36 <CakeProphet> hmmm, I wonder.
22:57:11 <CakeProphet> `run echo 'print <open 0>' > quine2.pl
22:57:13 <HackEgo> No output.
22:57:17 <CakeProphet> `perl quine2.pl
22:57:19 <HackEgo> ​open0
22:57:26 <CakeProphet> ..heh, not quite.
22:57:38 <CakeProphet> `cat quine2.pl
22:57:39 <HackEgo> ​print <open 0>
22:57:58 <CakeProphet> ...though I have no idea why it produced that output.
22:58:05 <CakeProphet> `rm quine2.pl
22:58:06 <HackEgo> No output.
22:58:22 <Vorpal> night
22:58:33 <CakeProphet> good night.
22:59:40 <CakeProphet> `run echo -e '#!/bin/perl\nopen 0; print ()=<0>' > quine2.pl
22:59:42 <HackEgo> No output.
22:59:50 <CakeProphet> `run ./quine2.pl
22:59:51 <HackEgo> No output.
22:59:55 <CakeProphet> awww
23:00:42 <CakeProphet> honestly -e should be default and -E should be the option you have to type, for echo.
23:00:58 <CakeProphet> well, maybe not.
23:01:16 <CakeProphet> since, if you're not dealing with a string literal, you'd usually want -E.
23:02:29 * augur murders Phantom_Hoover
23:03:13 <Phantom_Hoover> Honestly, augur.
23:03:14 <CakeProphet> `rm quine2.pl
23:03:15 <HackEgo> No output.
23:03:16 <Phantom_Hoover> I'm already dead.
23:03:22 -!- MigoMipo has quit (Read error: Connection reset by peer).
23:03:39 -!- pikhq_ has joined.
23:03:48 <augur> o
23:03:57 <CakeProphet> `run echo -e '#!/bin/perl\nopen 0; print (()=<0>)' > quine2.pl
23:03:58 <HackEgo> No output.
23:04:05 <CakeProphet> `perl quine2.pl
23:04:06 <HackEgo> No output.
23:04:45 <CakeProphet> oh wait, duh.
23:04:59 <CakeProphet> `run echo -e '#!/bin/perl\nopen 0; print while <0>' > quine2.pl
23:05:01 <HackEgo> No output.
23:05:08 <CakeProphet> `perl quine2.pl
23:05:10 <HackEgo> ​#!/bin/perl \ open 0; print while <0>
23:05:53 * pikhq_ wonders if the BIOS in this motherboard can be replaced with OpenBIOS. BIOSes suck.
23:06:11 <CakeProphet> in my experience, the answer to that has been 'no'.
23:06:38 <pikhq_> Erm. s/OpenBIOS/coreboot/
23:06:41 <pikhq_> That's what I actually meant.
23:06:50 -!- pikhq has quit (Ping timeout: 264 seconds).
23:06:55 <pikhq_> And probably "no", but you can hope.
23:06:57 <pikhq_> BIOSes suck.
23:06:58 <elliott> AMD To Support Coreboot On All Upcoming Processors - Slashdot
23:07:00 <elliott> How... useful :P
23:07:06 <elliott> If they had said "motherboards" :P
23:07:13 <pikhq_> It's supposed to be chipsets.
23:07:15 <elliott> (I realise there are probably actual incompatibilities but still.)
23:07:25 <pikhq_> Slashdot just fucked it up.
23:07:28 <elliott> I wonder if "support" means they'll give you tech support for it :-)
23:08:12 <CakeProphet> `run wget -O quine3.pl 'http://www.perlmonks.org/bare/?abspart=1;displaytype=displaycode;node_id=119526;part=1'
23:08:14 <HackEgo> No output.
23:08:33 <CakeProphet> `wget --help
23:08:35 <HackEgo> ​GNU Wget 1.11.4, a non-interactive network retriever. \ Usage: wget [OPTION]... [URL]... \ \ Mandatory arguments to long options are mandatory for short options too. \ \ Startup: \ -V, --version display the version of Wget and exit. \ -h, --help print this help. \ -b, --background go to
23:08:36 <elliott> CakeProphet: `fetch
23:08:59 <CakeProphet> `fetch --help
23:09:07 <elliott> It is just `fetch url.
23:09:13 -!- quintopia has joined.
23:09:17 -!- quintopia has quit (Changing host).
23:09:18 -!- quintopia has joined.
23:09:18 <CakeProphet> and then you use > ?
23:09:47 <CakeProphet> `run fetch 'http://www.perlmonks.org/bare/?abspart=1;displaytype=displaycode;node_id=119526;part=1' > quine3.pl
23:09:49 <HackEgo> GNU Wget 1.11.4, a non-interactive network retriever. Usage: wget [OPTION]... [URL]... Mandatory arguments to long options are mandatory for short options too. Startup: -V, --version display the version of Wget and exit. -h, --help print this help. -b, --background go to background after startup. -e, --execute=COMMAND execute a `.wgetrc'-style command. Logging and input file: -o, --output-file=FILE log message
23:10:07 <elliott> CakeProphet: No.
23:10:09 <elliott> "`fetch url".
23:10:10 <elliott> That is it.
23:10:16 <elliott> You can use mv afterwards.
23:10:23 <pikhq_> ... Oh, hey. Some people complained at the motherboard vendor about bugs that were tripping up Linux, and they actually fixed it.
23:10:35 <coppro> lies
23:10:36 <CakeProphet> `run fetch 'http://www.perlmonks.org/bare/?abspart=1;displaytype=displaycode;node_id=119526;part=1'
23:10:38 <HackEgo> No output.
23:10:39 <CakeProphet> elliott: lame
23:10:43 <CakeProphet> `ls
23:10:44 <HackEgo> ​1 \ babies \ bin \ bluhbluh \ env \ foo \ paste \ ps \ quine.pl \ quine2.pl \ quine3.pl \ quotes \ quotese \ test.c \ tmpdir.6174
23:10:52 <coppro> man.
23:10:56 <elliott> CakeProphet: No quotes.
23:10:57 <coppro> it feels so weird to have money
23:10:58 <elliott> And no `run.
23:11:01 <elliott> Please listen to what I actually say.
23:11:28 <coppro> pikhq: that is one redeeming feature about your country
23:11:32 <CakeProphet> `fetch http://www.perlmonks.org/bare/?abspart=1;displaytype=displaycode;node_id=119526;part=1
23:11:34 <HackEgo> 2011-05-28 23:11:33 URL:http://www.perlmonks.org/bare/?abspart=1;displaytype=displaycode;node_id=119526;part=1 [87] -> "index.html?abspart=1;displaytype=displaycode;node_id=119526;part=1" [1]
23:11:35 <CakeProphet> elliott: never
23:11:47 <CakeProphet> `ls
23:11:49 <HackEgo> ​1 \ babies \ bin \ bluhbluh \ env \ foo \ index.html?abspart=1;displaytype=displaycode;node_id=119526;part=1 \ paste \ ps \ quine.pl \ quine2.pl \ quine3.pl \ quotes \ quotese \ test.c \ tmpdir.6313
23:12:04 <CakeProphet> `run mv *index quine3.pl
23:12:05 <HackEgo> No output.
23:12:11 <CakeProphet> `cat quine3.pl
23:12:13 <HackEgo> No output.
23:12:26 <CakeProphet> ..oh, lol
23:12:33 <CakeProphet> `run mv index* quine3.pl
23:12:34 <HackEgo> No output.
23:12:37 <CakeProphet> `cat quine3.pl
23:12:38 <HackEgo> ​syntax error at =# line 2, at EOF. \ Execution of =# aborted due to compilation errors..
23:12:50 <CakeProphet> `perl quine3.pl
23:12:51 <HackEgo> No output.
23:12:57 <CakeProphet> they LIED.
23:13:52 <CakeProphet> `perl quine3.pl 2<&1
23:13:53 <HackEgo> No output.
23:14:07 <elliott> <CakeProphet> `run mv *index quine3.pl
23:14:11 <elliott> wrong location of-
23:14:13 <elliott> oh you fixed it
23:14:19 <elliott> CakeProphet: fail
23:14:22 <elliott> it's > not <
23:14:35 <elliott> "AMD made their platform code work for coreboot. That is, the same code they ship to board and BIOS makers, they release to coreboot, and even went the extra mile to integrate it.
23:14:35 <elliott> Intel doesn't support coreboot. In fact, they hinder us and we'll have to get each bit of information out of the hardware or by massive coercion. Every support of Intel hardware in coreboot exists despite Intel's efforts."
23:14:36 <elliott> pikhq_: Aweome.
23:14:44 <CakeProphet> `perl quine3.pl 2>&1
23:14:46 <HackEgo> No output.
23:15:28 <CakeProphet> elliott: would help if I understood what it is. Is it (2)>(&1) or is it 2(>&)1 or....?
23:15:56 <elliott> Former.
23:16:08 <CakeProphet> I'm guessing 1 is fd for stdout and 2 is for stderr. I've never seen &1 though.
23:16:13 <elliott> The syntax is [source]>[destination]. source, when omitted, defaults to one (stdout).
23:16:15 <elliott> Destination is usually a file.
23:16:20 <elliott> So 2>foo.txt works.
23:16:26 <elliott> Prefixing an ampersand means "to an fd, not a file".
23:16:34 <CakeProphet> ah
23:17:23 <CakeProphet> in any case this syntax error is not a quine.
23:17:30 <CakeProphet> or I'm doing something wrong.
23:17:31 <elliott> <CakeProphet> `perl quine3.pl 2>&1
23:17:31 <elliott> Fail.
23:17:40 <elliott> Use `run for sh.
23:17:44 <CakeProphet> oh right
23:17:46 <elliott> What you did was perl 'quine3.pl 2>&1'.
23:17:55 <CakeProphet> `run perl quine3.pl 2>&1
23:17:56 <HackEgo> ​syntax error at quine3.pl line 2, at EOF \ Execution of quine3.pl aborted due to compilation errors.
23:18:02 <CakeProphet> there we go. :P
23:18:08 <CakeProphet> the best quine of all.
23:18:16 <CakeProphet> except the # needs to be changed to the file name
23:18:54 <CakeProphet> #=, even
23:21:17 <CakeProphet> `run perl -pi 's/#=/quine3.pl/g' quine3.pl
23:21:19 <HackEgo> No output.
23:21:27 <CakeProphet> `cat quine3.pl
23:21:28 <HackEgo> ​syntax error at =# line 2, at EOF. \ Execution of =# aborted due to compilation errors..
23:21:36 <CakeProphet> `run perl -pi 's/=#/quine3.pl/g' quine3.pl
23:21:37 <HackEgo> No output.
23:21:39 <CakeProphet> `cat quine3.pl
23:21:40 <HackEgo> ​syntax error at =# line 2, at EOF. \ Execution of =# aborted due to compilation errors..
23:21:55 <CakeProphet> ...I see
23:22:36 <CakeProphet> `run perl -pie 's/=#/quine3.pl/g' quine3.pl
23:22:38 <HackEgo> No output.
23:22:45 <CakeProphet> `cat quine3.pl
23:22:47 <HackEgo> ​syntax error at =# line 2, at EOF. \ Execution of =# aborted due to compilation errors..
23:22:58 <CakeProphet> I apparently no nothing about Perl's command line options.
23:23:02 <CakeProphet> *know even
23:24:05 <CakeProphet> `run perl -pi -e 's/=#/quine3.pl/g' quine3.pl
23:24:06 <HackEgo> No output.
23:24:14 <CakeProphet> `cat quine3.pl
23:24:15 <HackEgo> ​syntax error at quine3.pl line 2, at EOF. \ Execution of quine3.pl aborted due to compilation errors..
23:24:18 <CakeProphet> ah
23:24:39 -!- xps has joined.
23:24:43 * CakeProphet is no pleased with this waste of time, and does something else that is equally pointless.
23:24:50 <CakeProphet> *now ....
23:25:54 <elliott> `run quine3.pl
23:25:55 <HackEgo> No output.
23:26:00 <elliott> `run perl quine3.pl
23:26:02 <HackEgo> No output.
23:26:05 <CakeProphet> yeah it's stderr
23:26:10 <elliott> CakeProphet: replace the newline in it with " \ " for extra points :D
23:26:20 <pikhq_> ... What the *hell*?
23:26:47 <elliott> pikhq_: ?
23:26:55 <pikhq_> wodim, stop trying to write with my DVD-ROM drive.
23:27:12 <elliott> Woe di me.
23:27:22 <CakeProphet> elliott: eh, since HackEgo uses \ for \n I don't see anything wrong with leaving it as is.
23:27:30 <elliott> CakeProphet: it's not a _proper_ quine :D
23:27:38 <CakeProphet> nonsense.
23:27:42 <pikhq_> Also, Debian, would it kill you to symlink your forked shit to cdrecord/mkisofs/cdda2wav?
23:27:48 <elliott> pikhq_: Debian testing is still on Haskell Platform 2010.1.0.0.1.
23:27:48 <elliott> Lame.
23:27:50 <pikhq_> Y'know, like anyone sane would expect?
23:27:53 <CakeProphet> properness is for stuffy British gents
23:28:03 <elliott> pikhq_: And thus GHC six.
23:28:28 * CakeProphet is an American. We don't play by the rules.
23:28:37 <elliott> Ahahaha, the release manager of wodim is also called Joerg.
23:29:35 -!- xps has quit (Remote host closed the connection).
23:29:52 <elliott> MacFUSE is a dead project. Nice.
23:30:00 <elliott> (Author works on proprietary competitor now.)
23:30:06 <CakeProphet> so was using perl -pi -e the best option or is there some other magic I could use in those situations?
23:30:10 <elliott> But a guy on the tup list forked it. :p
23:30:15 <elliott> CakeProphet: sed -i
23:30:21 * CakeProphet is developing his leet sysadmin skills or whatever.
23:30:26 * pikhq_ needs a new CD burner. This thing sucks.
23:31:25 <elliott> CakeProphet: -pie works just fine, btw.
23:31:26 <elliott> rather than -pi -e.
23:31:47 <CakeProphet> it didn't work for some reason.
23:31:59 <elliott> Hmm.
23:33:08 <CakeProphet> ah, but I'll have to try using sed sometimes. Seems slightly more convenient for that kind of thing
23:33:44 <elliott> s/// is exactly the same in sed bt the regexps are less powerful :P
23:34:06 <CakeProphet> is it at least the same syntax... or is it more like emacs-style?
23:34:12 <elliott> It's the same syntax... and what?
23:34:23 <CakeProphet> is it incredibly stupid, in other words.
23:34:30 <CakeProphet> but you answered my question, so nevermind. :)
23:35:01 <elliott> So you're not liking emacs, eh.
23:35:09 <CakeProphet> no emacs is fine. I just don't like its regex
23:35:30 <elliott> Well you need some more backslashes with sed, yes.
23:35:34 <elliott> But it still uses s///.
23:35:40 <elliott> And it's \ rather than [dollar] for backrefs.
23:35:42 <CakeProphet> I'm like emacs for the most part. It's still a little awkward to use, but I enjoy being able to make windows.
23:36:25 <CakeProphet> and I've recently starting doing magical things.
23:36:28 <CakeProphet> *started
23:36:33 <CakeProphet> my typo rate is ridiculous today.
23:39:53 <CakeProphet> for example C-a C-k is pretty handy. And C-a C-space C-e C-w
23:40:27 <CakeProphet> but actually, C-k does the same thing as the second one right?
23:42:40 <elliott> undefined :: (DivLoop T5 T5 qt rm) => (qt,rm)
23:42:40 <elliott> :: (SubHelperThatIsRealHelperHelper b (O Z) m2,
23:42:40 <elliott> SubHelperThatIsRealHelper m' m1,
23:42:40 <elliott> SubHelperThatIsRealHelper m'1 m,
23:42:40 <elliott> Equals Z b1 b,
23:42:43 <elliott> SubHelper (O (I Z)) (O (I Z)) m2 m',
23:42:44 <elliott> SubHelper (I (O (I Z))) (I (O (I Z))) m1 m'1,
23:42:46 <elliott> DivHelper m (I (O (I Z))) (I (O (I Z))) qt rm) =>
23:42:49 <elliott> (qt, rm)
23:42:50 <elliott> Fuck.
23:43:06 <Deewiant> Where's that from
23:43:43 <elliott> Deewiant: My code.
23:43:52 <CakeProphet> elliott: perhaps this is an indication that you shouldn't be doing this craziness. ;)
23:43:53 <Deewiant> What code
23:44:03 <elliott> Deewiant: It's a snowman in disguise.
23:44:26 <Deewiant> Cleverly disguised
23:44:48 <elliott> Yes.
23:44:49 <elliott> Very.
23:44:54 -!- zzo38 has joined.
23:45:38 -!- pikhq_ has quit (Remote host closed the connection).
23:45:58 <elliott> I like how you have no indication of which typeclass is failing.
23:46:04 <elliott> Oh here we go.
23:47:29 <CakeProphet> elliott: perhaps if you write a Haskell compiler in Haskell types you can implement better error messages.
23:48:36 <elliott> X-D
23:48:37 <elliott> Totally.
23:50:16 * Phantom_Hoover → sleep
23:50:19 -!- Phantom_Hoover has quit (Quit: Leaving).
23:50:43 <CakeProphet> VACUOUS
23:53:47 <CakeProphet> what, Perl has a printf? why?
23:53:58 <CakeProphet> I guess for padding?
23:54:26 -!- pikhq has joined.
23:54:28 <zzo38> printf is sometimes useful, actually, even in things like Perl and whatever, I think.
23:55:54 <zzo38> Although, I have worked a bit with Python (but not much) and I think the % operator on strings acts like sprintf? I don't really know, though.
23:56:00 -!- augur has quit (Remote host closed the connection).
23:56:23 <CakeProphet> zzo38: yes it does.
23:57:31 <CakeProphet> except sprintf is in-place I believe, and Python's % is not
23:57:36 <CakeProphet> %= is though
23:58:12 <elliott> I would be surprised if Perl's sprintf was in-place.
23:58:16 <zzo38> In C, sprintf first takes a destination parameter (of type char*) and then the format string, and then the values to sbustitute into %s and that kind of stuff.
23:58:48 <CakeProphet> ah
23:58:50 <zzo38> Since these kind of scripting languages do not work that way, it would just return the new value instead
←2011-05-27 2011-05-28 2011-05-29→ ↑2011 ↑all