←2011-03-08 2011-03-09 2011-03-10→ ↑2011 ↑all
00:00:06 <elliott> Ilari: Now you'll get Gregor started.
00:00:15 <Gregor> I don't defend the DOM.
00:00:29 <elliott> Yep, but you do defend JS as being separate from the DOM :P
00:00:31 <Gregor> The DOM is a mess of incompatible garbage thrown in from a bunch of different places with incompatible APIs.
00:00:40 <Gregor> Uhh, because it is?
00:00:56 <elliott> But Ilari LINKED THE TWO
00:00:59 -!- poiuy_qwert has quit (Read error: Operation timed out).
00:01:29 <Sgeo> Aren't things like jQuery supposed to paper over the DOM?
00:05:29 <quintopia> is there anyway to put collapsible spoilers into the wiki?
00:06:11 <quintopia> because ais's explanation of waterfall3 is almost as long as the program it describes.
00:06:25 <elliott> quintopia: yes, it's called a scrollbar
00:06:33 <elliott> his explanation is valuable, no need to compact it
00:06:49 <elliott> well
00:06:52 <elliott> it needs more formatting though.
00:06:53 <quintopia> listen. i need a way to compact that wall of text
00:06:55 <elliott> like paragraph breaks.
00:06:59 <elliott> I'll add paragraph breaks
00:07:03 <elliott> it looks like it has them but the formatting is breaking them
00:07:06 <elliott> easily fixable
00:07:20 <quintopia> that's like an entire article's worth of info :/
00:07:24 <elliott> no it's not.
00:07:26 <elliott> it's a few paragrahs
00:07:28 <elliott> *paragraphs
00:07:29 <elliott> read a book :P
00:07:35 <quintopia> some articles are only a few paragraphs
00:07:53 <elliott> fixed the paragraph breaks. could do with a bit more, but that's ais' job
00:08:05 -!- TLUL has joined.
00:08:10 <elliott> it takes about 1s to scroll past it with a scroll wheel, dude :P
00:08:12 <quintopia> imagine if every program that goes on that page from now on has that much description :/
00:08:24 <quintopia> it's a SLIPPERY SLOPE MAN
00:08:26 <elliott> quintopia: that will only apply if every program that gets added is that complex
00:08:32 <quintopia> EXACTLY
00:08:32 <elliott> in which case, a long description is warranted
00:08:40 <quintopia> which is bound to happen :P
00:08:53 <elliott> if we get like five programs with longcat-is-long descriptions after another, we can make them all spoiler-type things if possible, or separate articles
00:08:58 <elliott> but for now I hardly think it matters :P
00:09:05 <elliott> ais isn't exactly known for his concision, though :)
00:09:06 <quintopia> feyn
00:09:20 <elliott> don't do that, i mentally pronounced feyn as feign
00:09:31 <quintopia> richard feignman?
00:09:37 <quintopia> just doesn't have the right feel
00:09:47 <elliott> :D
00:09:59 <elliott> lol, i clicked the trace link for waterfall3
00:10:00 <elliott> loaded instantly
00:10:08 <elliott> hmmm
00:10:11 <elliott> the animation is really slow though
00:10:14 <quintopia> yeah
00:10:16 <elliott> i guess the warning is useful then :P
00:10:18 <elliott> wow
00:10:22 <elliott> my browser hates me with that page open
00:10:29 <elliott> Gregor: THIS IS WHY YOU NEED TO MAKE THE TRACE SCROLLABLE
00:10:59 -!- cheater00 has joined.
00:11:41 <quintopia> i would be down with moving the list of major programs to its own article. There's no doubt that that section is as long as the rest of the article and is only going to get longer.
00:11:54 -!- Mathnerd314 has quit (Disconnected by services).
00:13:10 <elliott> quintopia: btw so far your new page organisation has driven one person to ask in here what on earth the winning condition _is_ >:D. shouldn't mention that, i promised to rewrite it after all.
00:13:38 <quintopia> yes, yes you did. but you seem to be far too lazy.
00:14:12 <quintopia> (also, that person must have been stupid, considering how blatantly i spelled out the winning condition)
00:14:16 -!- poiuy_qwert has joined.
00:14:30 -!- cheater- has quit (Ping timeout: 246 seconds).
00:14:36 <elliott> quintopia: blatantly, but when you Emphasise Absolutely Everything, you emphasise nothing and it gets lost in noise
00:14:43 <elliott> also, it was http://esolangs.org/wiki/User:calamari
00:15:12 <elliott> oh, http://esolangs.org/wiki/Jeffry_Johnston is maybe a better link
00:17:53 <quintopia> well, i didn't know that anything in particular needed to be emphasized over anything else, so i just organized it the same way a manual for a board game would organize it, and emphasized nothing.
00:19:13 <elliott> quintopia: well, you "blatantly spelled" everything out :P
00:19:25 <elliott> did Gregor ever implement the fixed-point scoring?
00:19:34 <Gregor> No
00:19:54 <quintopia> obviously not
00:20:08 <quintopia> the top scorer would no longer be in the 50-60% range
00:21:22 <elliott> quintopia: you do it :P
00:22:21 -!- wareya has quit (Quit: leaving).
00:22:42 -!- wareya has joined.
00:23:18 <quintopia> fuck
00:24:03 <quintopia> i don't know which code to edit or how to get eigenvectors in C
00:25:20 <elliott> report.c
00:25:28 <elliott> quintopia: btw, I strongly disagree that it's most useful to consider the tape to have negative numbers
00:25:38 <elliott> I find that interpretation extremely unintuitive
00:26:27 <quintopia> ah
00:26:54 <quintopia> so you think it should be a setting in egojsout to have the tape at the bottom and all the decoys above the line?
00:27:40 <elliott> quintopia: well, that's how *I* would have done it. but:
00:27:47 <elliott> I think it's OK for visualisation
00:27:53 <elliott> but I never think about the tape that way, and I don't think most people do either
00:28:07 <quintopia> interest
00:28:10 <elliott> I don't see "negative" values in egojsout either, anyway, it's just an arbitrary division from my POV
00:28:11 -!- iconmaster_ has joined.
00:28:19 <elliott> but then, I don't really think the animations are *that* useful
00:28:31 <elliott> (I think the traces are visual enough while providing information useful to /fix/ your program)
00:28:47 -!- rodgort has quit (Quit: ERC Version 5.3 (IRC client for Emacs)).
00:28:52 <elliott> (but then that's from the perspective of a cheating little single-target author :P)
00:28:55 <quintopia> i just find it easier to think about it as "distance from zero" since settign something to zero is the goal
00:29:02 <iconmaster_> Hi guys. The craziest thing happened to me today.
00:29:08 <elliott> quintopia: that's true.
00:29:15 <elliott> iconmaster_: You... gave birth?
00:29:53 <iconmaster_> I have an essay in English class. For fun, I passed the essay through a Markov text generator and printed it.
00:30:10 <elliott> Then submitted it.
00:30:11 <iconmaster_> I showed the essay to my teacher.
00:30:11 <elliott> And got an A.
00:30:13 <elliott> Please say yes.
00:30:50 <iconmaster_> She looked at it for 10 minuotes, read it all, and told me it was a 'really great essay.'
00:31:06 <iconmaster_> And she wasnt joking.
00:31:22 <Sgeo> Maybe she's not a native English speaker...
00:31:28 <quintopia> can i read it?
00:31:45 <Sgeo> ^^techncailyly irrelevant
00:31:58 -!- rodgort has joined.
00:32:06 <iconmaster_> Its at my sxhool computer, ill pastebin it tomorrow
00:32:11 <elliott> <elliottcable> I’m going to sound like a dick for saying this, but I really wish I’d registered elliott when I had the chance. Then I could be even more of a dick now and just ghost him. <,<
00:32:22 <elliott> I AM THE BEST ELLIOTT.
00:34:52 <iconmaster_> An exerpt from the printed essay: Napoleon was sucsessful in Spain touched on these honorable or corrupt and made his brother Europe. He improved cheap food, drinks, establishing stop his life was promoted the Hôtel des Invalides.
00:35:12 <elliott> oerjan: http://www.cs.berkeley.edu/~megacz/coq-in-ghc/HelloWorld.pdf
00:35:24 <elliott> iconmaster_: That's basically the best two sentences ever written in the English language right there.
00:35:33 <elliott> Especially "sucsessful", though that one was probably your innovation :P
00:36:06 <elliott> oerjan: A proof that main = putStrLn "Hello, world!" (or similar) is well-typed, in natural deduction style.
00:36:08 <elliott> oerjan: FEAR
00:36:11 <elliott> (http://www.cs.berkeley.edu/~megacz/coq-in-ghc/)
00:37:50 <iconmaster_> Another one: After his departure tge Peninsular leader- Honor, Courage, and Honor, Courage and honorable leader- Honor, could be charmless.
00:38:17 <elliott> Ah yes, the famous tge Peninsular leader, whose motto was Honor, Courage, and Honor, Courage.
00:39:08 <iconmaster_> Famous but charmless.
00:39:39 <elliott> iconmaster_: No no no, that was his honorable leader, Honor.
00:39:43 <elliott> Honor could be charmless, but usually chose not to.
00:40:40 <iconmaster_> @ the first quote: HAVE YOU TURNED A SIBLING INTO ANY CONTINITES LATELY?
00:41:26 <iconmaster_> *continents
00:41:55 <elliott> Yes. Absolutely.
00:42:23 <elliott> Quite interesting that we're all (well, OK, a good portion of this channel is) living in Napoleon's brother.
00:42:35 <iconmaster_> My brother Jerry is Asia now.
00:42:50 <elliott> I wonder if this channel is actually predominantly European... the idlers must throw off the stats a bit.
00:43:02 <elliott> But then three very-regulars are American, so maybe the idlers are the key to European purity.
00:44:54 <Sgeo> elliott, but beginning my fear is a very Siney thing to do!
00:46:57 <oerjan> quintopia: so what will you do if the eigenvector isn't unique *MWAHAHAHA*
00:47:32 <oerjan> (probably not very likely, but...)
00:47:34 <Sgeo> oerjan's been taking "Lose Your Marbles" too seriously
00:47:40 <Sgeo> [I loved that game once]
00:47:49 <oerjan> Sgeo: never heard of it
00:49:12 <quintopia> oerjan: that's not possible i think
00:49:56 -!- iconmaster_ has quit (Read error: Connection reset by peer).
00:50:08 <oerjan> quintopia: if the warriors divide into two blocks that always draw against each other >:)
00:50:14 <quintopia> i know the transition function is aperiodic. pretty sure that it's also irreducible since every program plays every other program
00:50:40 <quintopia> does that make two non-communicating classes though?
00:50:47 <quintopia> i don't think it does
00:51:01 <oerjan> it was my impression that it would
00:51:05 <quintopia> maybe
00:52:41 <quintopia> it can be modified slightly so that draws are a benefit to the underdog, and that would remove that possibility. however, i'm willing to gamble on the vanishingly small odds that that would happen.
00:52:53 <oerjan> yeah
00:54:24 <Sgeo> In case anyone cares, this is probably the fourth time Other has asked me "Who are you?"
00:56:44 <Zwaarddijk> Sgeo: sounds auspicious
00:58:17 * oerjan keeps thinking of The Other from Girl Genius
00:58:21 <quintopia> oerjan: actually, i think it already does that. if they draw, each program pays half 1/n of its score to the other. thus, if the two blocks always tie, they are still completely interconnected. so yeah, that wouldn't ever happen. the eigenvector is unique.
00:58:30 <oerjan> just be glad she doesn't squish you like the bug you are
00:59:13 <Sgeo> I am not an error!
00:59:26 <oerjan> quintopia: um i thought it said no points were exchanged in the case of a draw
01:00:45 <oerjan> also it doesn't actually help paying both ways if the actual matrix entry ends up 0
01:01:14 <quintopia> oerjan: ohhhh, you're saying that EVERY SINGLE ROUND of EVERY MATCH between the two classes is a draw
01:01:23 <oerjan> Sgeo: The Other would consider you one
01:01:24 <quintopia> i thought you just meant every match was a draw
01:01:36 <elliott> Other is a terrible name. I deem her to be TA-TK, That Alluded-To Kitty-kat.
01:01:36 <oerjan> quintopia: yeah every round. i didn't say this was likely :D
01:01:47 <elliott> KT-AT 2: Electric Boogaloo is also acceptable.
01:04:10 -!- zzo38 has joined.
01:04:58 <oerjan> quintopia: it would happen if a warrior is submitted twice, wouldn't it? still doesn't turn the entire matrix into two blocks, though
01:05:22 <quintopia> oerjan: wouldn't averaging together all the eigenvalues take care of it?
01:05:34 <quintopia> *vectors
01:05:50 <oerjan> quintopia: yeah but which average do you take
01:05:59 <Sgeo> eigenvalues?
01:06:33 <oerjan> Sgeo: quintopia's matrix-based BF Joust scoring system
01:06:45 <quintopia> oerjan: the scores don't have to make sense man! as long as the final leaderboard shows the top warrior of each class as outranking all the other warriors in the same class, i call it a success
01:07:07 <quintopia> (and so on down the line, of course)
01:07:41 <quintopia> a straight mean of the 1-valued eigenvectors would get you that
01:08:39 <quintopia> (which is to say, the mean of the basis of the 1-valued eigenspace)
01:10:22 <elliott> Design overview of the Tunes Migration Subproject: "Modules are migrated according to heuristics. These heuristics are computed according to static and dynamic feedback."
01:10:26 <elliott> well that explains it.
01:11:10 <Sgeo> I thought Tunes was dead?
01:11:38 <oerjan> just very, very static
01:12:31 <quintopia> oerjan: it took you way too long to notice i didn't sign the scoring post btw. i realized i didn't sign it like 30 minutes after i posted it, but it took you half a month :P
01:12:46 <oerjan> quintopia: perhaps you could weight each eigenvector according to its number of non-0 coordinates
01:12:53 * oerjan swats quintopia -----###
01:13:18 -!- poiuy_qwert has quit (Read error: Operation timed out).
01:15:10 -!- poiuy_qwert has joined.
01:15:33 <quintopia> oerjan: so that the champion of the larger class gets more credit? what if the largest class is one mediocre program and a bunch of shitty programs designed to lose to it but draw with every other program?
01:15:44 <oerjan> heh
01:15:49 <quintopia> what if both classes are that?
01:15:56 <quintopia> what if all the programs are shitty?
01:16:03 <quintopia> what if all the programs are shudder?
01:16:10 <oerjan> quintopia: it's just that i think that is closest to your description of "assign equal points to all warriors, then iterate"
01:16:33 <quintopia> yeah, it is
01:16:53 <oerjan> it fails if there's a warrior that always loses, though, since its coordinate would get 0 always
01:17:08 <quintopia> yeah
01:17:26 <quintopia> and in the example i described
01:17:39 <quintopia> where both classes have only 1 good program
01:17:48 <quintopia> they both have exactly 1 non-0 coordinate
01:18:32 <oerjan> however you could say that if a warrior always loses, you should simply throw it out completely
01:19:01 <quintopia> that is what we do anyway, isn't? that's how suiciding-as-deleting is made to work
01:19:03 <oerjan> and then that weighting gives the result, i think
01:19:08 <elliott> the tunes critique of Scheme is fun
01:19:11 <elliott> calls it too low-level :)
01:19:29 <elliott> <oerjan> however you could say that if a warrior always loses, you should simply throw it out completely
01:19:29 <elliott> <quintopia> that is what we do anyway, isn't? that's how suiciding-as-deleting is made to work
01:19:30 <elliott> no
01:19:34 <elliott> it only happens on the _next_ submit
01:19:40 <elliott> because whenever a program is added, the bottom one is thrown off
01:19:45 <elliott> and < always goes to the bottom
01:20:19 <quintopia> elliott: then how do we get less than the maximum number of programs on the hill? i think all suiciders get deleted after their score is posted
01:20:34 <elliott> quintopia: we don't, usually
01:20:35 <elliott> ask Gregor
01:20:43 <elliott> quintopia: check report.txt in some seconds:
01:20:52 <elliott> !bfjoust WHOAAAAAA_IM_STILL_ALIVE_YEAAAAAH <
01:21:01 <oerjan> quintopia: maybe if there's a tie for the bottom?
01:21:09 <quintopia> ah maybe
01:21:18 <quintopia> same difference for what we're considering though
01:21:29 <oerjan> yeah throwing out all 0 would be that too
01:21:51 <Gregor> The hill always adds new warriors, then reports the result, THEN throws away any low ranking adversaries.
01:21:54 <elliott> EgoBot?
01:21:57 <elliott> Gregor: oh. weird.
01:22:00 <quintopia> and when you write the leaderboard, you put all the zeroes at the bottom in whatever order.
01:22:03 <elliott> Gregor: Why that order :P
01:22:49 <oerjan> elliott: accountability?
01:23:01 <elliott> oerjan: lol
01:23:04 <oerjan> you'll have immediate losers at least registered that way
01:23:42 <Gregor> So the report will have "more" than the limit whenever new ones are added.
01:23:42 <Gregor> (It's not really more, since I already kicked them off, they're just putzing around 'til somebody touches it again :P )
01:23:57 <Gregor> elliott: So that you can always at least be shown on the report :P
01:24:05 <Gregor> Otherwise it may seem like nothing even happened if you add a shitty competitor.
01:24:23 <elliott> Gregor: It'll make sense once you get the absolutely-fucking-terrible result back :P
01:24:30 <elliott> Also, "any low ranking adversaries" -- what definition of low ranking?
01:24:55 <quintopia> Gregor: do you know which is the most standard library for doing diagonalization in C?
01:25:13 <Gregor> elliott: Beyond the hill size limit.
01:25:16 <elliott> quintopia: http://cantor.org/
01:25:31 <Gregor> quintopia: Nope.
01:25:33 <quintopia> mobileglobal?
01:25:34 <EgoBot> Score for elliott_WHOAAAAAA_IM_STILL_ALIVE_YEAAAAAH: 0.0
01:26:04 <quintopia> elliott: click that link
01:26:10 <elliott> quintopia: oops, sorry
01:26:21 <elliott> quintopia: http://libgeorg.cantor.org/
01:26:27 <elliott> libgeorg, from the cantor project
01:26:34 <elliott> great for diagonalization.
01:26:38 <elliott> isn't that right, oerjan?
01:26:38 <quintopia> click that one too
01:26:39 <elliott> *diagionalisation
01:26:46 <quintopia> oh
01:26:50 <elliott> quintopia: WHOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOSSSSSSSSSSSSSSSSSSSSSSSSHHHHHHHHHHHHHHHHHHHHHHHHHH
01:26:50 <quintopia> wrong diagonalization
01:26:55 <elliott> gale force fuckin' WIND of whoosh
01:27:14 * quintopia slow
01:27:16 <quintopia> but listen
01:27:22 <quintopia> can has real link?
01:27:59 * oerjan swats elliott -----###
01:28:27 <elliott> quintopia: dunno. well,
01:28:35 <elliott> LAPACK is the "industry standard" thing.
01:28:38 <elliott> for matrices.
01:28:44 <elliott> but Gregor was very adamant about not using LAPACK in a fuckin' bf joust scoring system.
01:28:45 <elliott> YMMV
01:28:46 <Sgeo> Yesterday, my statistics professor was trying to get us to understand how there's an infinite amount of numbers between two numbers
01:28:49 <elliott> It'll certainly be fast :-P
01:29:36 <Sgeo> And he did the whole "Divide into two unequal pieces thing, etc. etc.". I mean, sure, that's good enough for teaching, and it is adequate, but.. I guess it bothers me that it doesn't illustrate everything. I think
01:29:46 <Sgeo> No, I did not complain
01:29:53 <Sgeo> There's nothing to complain about
01:30:03 <Sgeo> I think I'll just shut up now.
01:30:50 <quintopia> i feel like every high schooler should be given a completely sequence of Hilbert's Grand Hotel problems in calculus.
01:31:06 <quintopia> up to the point of showing 2^N is uncountable
01:39:01 <zzo38> I want to see what is differences in different processors which best way of machine codes to reverse a C string in-place?
01:40:45 -!- pingveno has quit (Ping timeout: 276 seconds).
01:41:58 -!- pingveno has joined.
01:43:04 -!- poiuy_qwert has quit (Ping timeout: 246 seconds).
01:43:36 -!- poiuy_qwert has joined.
01:48:13 -!- pikhq has quit (Ping timeout: 240 seconds).
01:48:16 -!- pikhq_ has joined.
01:50:21 <invariable> quintopia: don't kill their chances of *enjoying* that type of math by teaching it in high school
01:50:51 <elliott> Perhaps quintopia would change the rest of high school too :-P
01:51:07 <coppro> easy solution: reduce the halting problem to it
01:51:39 <invariable> elliott: I would eliminate high school; move university earlier; and start having students doing research from yr 1
01:51:41 <invariable> but meh
01:52:03 <quintopia> i would do high math like lockhart
01:52:03 <elliott> invariable: Year 1 as in, first year of any school at all?
01:52:17 <elliott> invariable: I think you'll find that a good portion of students would not be interested in doing research ...
01:52:23 <quintopia> already i'm making it more fun...the infinite hotel is fun!
01:52:28 <invariable> elliott: erm - I was thinking yr 1 of new university; also it wouldn't be _required_
01:52:42 <Sgeo> "We tried to put a Mardi Gras mask on and ended up with a Mardi Gras subnet mask. Only residents on Bourbon St. can connect now."
01:52:45 <elliott> invariable: Lame! Year 1 of schooling! :p
01:52:48 <elliott> Really, a *good* reform of the schooling system would require the full cooperation extremely well-educated, rational-minded parents.
01:52:57 <elliott> And those are in extremely short supply.
01:53:17 <invariable> elliott: then again my dream world students would not be anti-learning because they wouldn't have been through was passes for education
01:53:19 <invariable> now
01:53:24 <invariable> elliott: also - ditto
01:53:57 <elliott> I firmly believe that children could be advancing at a much, much faster rate than they do now, but it would require exceptional parenting.
01:54:05 <invariable> yes - agreed
01:54:13 <invariable> I think most of calculation should not be taught
01:54:22 <elliott> (A large part of our current schooling system's brokenness is that we try and teach things that require logical thought, like mathematics, without even touching on the subject of logical thought itself.)
01:54:22 <invariable> and programming should be taught instead
01:54:31 <invariable> elliott: EXACTLY
01:54:49 -!- augur has quit (Remote host closed the connection).
01:54:58 <elliott> Of course having explicit "logic lessons" isn't going to work, so you have to figure out how to teach logical thought itself from scratch -- and that's not easy.
01:55:33 <invariable> elliott: it is not easy - but not hard. Encourage *questions* and work with students on developing those questions
01:55:34 <elliott> ...aaand this may provide a good clue why the more intelligent tend not to particularly want kids: gotta do it right!
01:55:41 <elliott> invariable: Indeed.
01:55:47 <invariable> also remember that younger kids tend to think concretely
01:55:50 <elliott> invariable: Good luck explaining a fallacy to a kid, though.
01:55:56 <invariable> elliott: I was about to say that
01:56:04 <invariable> elliott: but there are ways
01:56:18 <elliott> Once you teach them one, the rest are probably much easier.
01:56:41 <elliott> The failure to do so leads to mass pandemics like religion ;)
01:57:08 <Zwaarddijk> as well as the flipside thereof
01:57:20 <elliott> Zwaarddijk: indeed
01:57:25 <invariable> elliott: I can't find it now - but I read an article about a third grade class publishing a research paper
01:57:37 <Zwaarddijk> there's few people as annoying as atheists that are irrational
01:57:42 <Zwaarddijk> because they have no excuse for being irrational
01:57:51 <Zwaarddijk> I grasp why religious people fail at understanding it
01:57:56 <elliott> Zwaarddijk: see richard dawkins forum >:)
01:58:02 <Zwaarddijk> I know.
01:58:06 <invariable> erm - isn't that dead now?
01:58:14 <elliott> Is it?
01:58:16 <elliott> I'm quite happily unaware.
01:58:17 <Zwaarddijk> yeah, but they've created new ones
01:58:18 <elliott> Googling suggests yes.
01:58:26 <Zwaarddijk> where the majority of people from the rd forum went
01:58:30 <elliott> It's quite a shame because Richard Dawkins himself is a fine guy.
01:58:32 <invariable> elliott: yeah - there was a massive fallout with the moderators
01:58:39 <Zwaarddijk> such as "rationalskepticism.org
01:58:47 <Zwaarddijk> where rationality only is tolerated some days
01:59:02 <Zwaarddijk> in fact, any claim that makes a religion look bad is automatically true
01:59:06 <Zwaarddijk> that is the only rule they have
01:59:16 <invariable> ha
01:59:19 <Zwaarddijk> so if I claim that Moses raped Mickey Mouse in front of his daughter
01:59:29 <elliott> Isn't that in the Bible?
01:59:30 <Zwaarddijk> that claim would probably be held to be true by a majority there
01:59:40 <Zwaarddijk> elliott: yes, it is.
01:59:44 <elliott> Well then.
01:59:49 <elliott> Everyone knows the Bible is infallible.
02:00:24 <Zwaarddijk> well, it was written by Hitler.
02:00:28 <Zwaarddijk> so why wouldn't it be?
02:00:51 <elliott> This channel has such a high rate of mentions of "Hitler".
02:00:53 <elliott> We should be #hitler.
02:01:01 <elliott> * Topic for ##unavailable is: You've tried to join an unavailable channel. Perhaps the group was never here or has moved off-network ( http://freenode.net/policy.shtml#termination ). Check their website for more information. Your client may be flapping in and out of channel; in this case, check with channel staff. The channel may be clone-infested; please consult freenode network staff.
02:01:04 <elliott> #hitler: BANNED ON FREENODE
02:01:25 <Zwaarddijk> facists :(
02:01:43 <zzo38> I can create Hitler channel in my own server if you request it and have good reason for it.
02:01:45 <elliott> Yeah. They're Nazis.
02:01:51 <zzo38> But you should specify good reason at first.
02:01:57 <elliott> zzo38: For discussion of Hitler.
02:02:31 <zzo38> OK, just wait a few minutes while I configure it
02:02:54 <zzo38> (If I do configure it, that is...)
02:06:07 <zzo38> Done.
02:06:33 <zzo38> Hopefully I did configure it and I am not just lying.
02:06:40 <zzo38> O no, now it is bad because Hitler used it.
02:07:21 <Sgeo> It's kind of sick to say this, but I'm.. morbidly amused by " She was buried, at her request, next to her father at the Church of St. Mary Magdalene in Hucknall, Nottingham."
02:07:50 -!- pikhq has joined.
02:07:55 -!- pikhq_ has quit (Ping timeout: 250 seconds).
02:08:23 <zzo38> The #hitler channel in Freenode you cannot join, you must be invited. And you cannot be invited either even if you KNOCK. Because, they configured that channel to be broken and unusable that's why.
02:08:31 <Gregor> HitlOS would be a good name for an OS.
02:08:51 <oerjan> the final solution to all your OS problems
02:09:12 <elliott> :D
02:09:13 <zzo38> Gregor: OK. Find someone whose name is Hitler and then write "this operating system is bad because Hitler used it" and then write that such logic is wrong logic and that such thing does not make it bad.
02:09:14 <elliott> I should call @ that
02:09:19 <elliott> just to make sure even fewer people use that
02:09:38 <elliott> invariable: see, this is what we need to be teaching our children!111
02:09:41 <elliott> I demand Hitler be used as the example
02:09:49 <Zwaarddijk> a Swedish newspaper in the early 40s found a guy with the family name Hitler, and another with the name Stalin, and had them meet up
02:09:50 <zzo38> Example for what?
02:09:53 <Zwaarddijk> and chat
02:10:06 <elliott> Zwaarddijk: and then they got married and adopted kids
02:10:08 <elliott> Hi, I'm Stalin Hitler.
02:10:12 <elliott> This is my brother, Hitler Stalin.
02:10:16 <elliott> We kill puppies for fun.
02:10:28 <Zwaarddijk> apparently, it was an amicable chat.
02:10:33 <Zwaarddijk> both were union members
02:10:37 <Zwaarddijk> :O
02:10:37 <Sgeo> Hitler supposedly liked dogs
02:10:45 <elliott> oh early 40s?
02:10:49 <elliott> i was thinking, like
02:10:51 <elliott> how random :D
02:11:02 <Zwaarddijk> no it was quite topical
02:11:13 <Zwaarddijk> but .. the fact that they were union members, makes you think, doesn't it?
02:11:15 <elliott> was the headline
02:11:18 <elliott> STALIN MEETS HITLER FOR A CHAT
02:11:25 <Zwaarddijk> something like it
02:11:29 <elliott> :D
02:11:40 <zzo38> I read that someone their children was named "Hitler" so they wanted to order a cake but the cake service refused to write "Hitler" on it, so they should write it themself at home, instead
02:11:49 <Gregor> Surely by now any living people with the name Hitler have it because they're white supremacists, and not because it's a long-lasting family name.
02:11:57 <elliott> Naming your child Hitler. What a brilliant idea!
02:12:02 <elliott> If it was their first name, that is.
02:12:16 <elliott> To be honest, I think the family name Hitler is pretty much fucked at this point :P
02:12:21 <Gregor> elliott: The child's name was actually something like Adolf Hitler <last name>
02:12:34 <invariable> zzo38: erm no; #hitler -> ##unavailable
02:12:36 <Sgeo> Campbell? Cambell?
02:12:37 <zzo38> O, so Hitler was their middle name.
02:12:38 <elliott> What's a stereotypically Jewish surname Gregor
02:12:41 <elliott> invariable: BROKEN AND UNUSABLE
02:12:50 <invariable> elliott: lots of them
02:12:52 <invariable> Klein
02:12:52 <Gregor> elliott: Anything ending in "stein"
02:12:55 <Gregor> Goldstein
02:13:00 <invariable> Goldstein
02:13:01 <Gregor> Berkowitz
02:13:02 <elliott> Was the kid named Adolf Hitler Goldstein
02:13:07 <invariable> ohen
02:13:09 <zzo38> invariable: It results in "you must be invited" if you have usermode +Q
02:13:09 <invariable> *Cohen
02:13:10 <elliott> Because that's the best name ever?
02:13:19 <invariable> zzo38: +Q ?
02:13:26 <invariable> no redirection?
02:13:30 <Sgeo> I was right, it was Campbell
02:13:39 <Sgeo> http://www.huffingtonpost.com/2010/08/05/adolf-hitler-campbells-pa_n_672045.html
02:13:46 <zzo38> invariable: It does that too.
02:13:56 <invariable> zzo38: what does +Q do? googling is not helpful
02:14:26 <zzo38> Googling it? No!
02:14:30 <zzo38> Try HELP UMODE
02:14:40 <elliott> GOOGLING IS FORBIDDEN
02:14:45 <invariable> No such command.
02:14:48 <Sgeo> zzo38 is mortally offended by Google.
02:14:52 <elliott> * umode : +Q - Prevents you from being affected by channel forwarding.
02:14:55 <elliott> invariable: /raw help umode
02:14:59 <elliott> invariable: prepare for zzo38 rant on how your client is broken
02:15:02 <zzo38> It is not forbidden, but you should not use it all the time, especially in this case.
02:15:07 <invariable> elliott: my client is probably broken
02:15:14 <elliott> invariable: no, it just provides its own help command
02:15:17 <elliott> that is probably more useful than freenode's
02:15:25 <Sgeo> I feel like I'm kaing fun of zzo38 when I shouldn't
02:15:57 <invariable> elliott: it should forward other commands it doesn't know about to the server...
02:16:04 -!- augur has joined.
02:16:27 <elliott> invariable: it knows about /help, though
02:16:31 <elliott> /help x gives help on x
02:16:34 <elliott> there is no umode command
02:16:38 <elliott> so it tells you there's no help to give
02:16:40 <zzo38> It is not a client command it is a command to send to server, please.
02:17:03 <zzo38> Therefore you have to specify it as such.
02:19:21 <zzo38> elliott: Of course there is no UMODE command but it is a help topic on the server, so there is help to give.
02:19:59 <Sgeo> zzo38, elliott was explaining to invariable
02:20:25 <zzo38> Sgeo: I know, but still, there actually is such a help topic.
02:22:01 <Gregor> You have 3 .so Landrush Application(s). If you are the only applicant for a domain at the end of the Landrush period (1st March 2011) then you will be awarded the domain.
02:22:09 <Gregor> YOU LIE
02:22:10 <zzo38> I made a game that says "This game is bad because Hitler played it"
02:23:13 <elliott> Gregor: Landrush...
02:23:27 <elliott> Gregor: Can I have an email redirect @libc.so, that would be possibly the most amazing thing ever :-P
02:23:44 <Gregor> elliott: I will give out redirects, but only of valid libc functions.
02:23:49 <elliott> Gregor: gets
02:23:53 <Gregor> I reserve a few memory-related ones for myself.
02:23:55 <elliott> I want to be known as gets@libc.so forever.
02:24:01 <Gregor> elliott: Uhhh, if you want gets ...
02:24:11 <elliott> Gregor: I'm just trying to capitalise on all the famous ones :P
02:24:15 <elliott> Uhh... hmm...
02:24:22 <elliott> Gregor: posix_fadvise@libc.so
02:24:23 <elliott> THANKS
02:24:26 <Gregor> lol
02:24:32 <elliott> Gregor: _Exit@libc.so
02:24:35 <Gregor> This all depends on whether I actually get it though :P
02:24:36 <elliott> I am making good decisions today
02:24:52 <zzo38> elliott: Are you sure?
02:25:04 <elliott> Gregor: libc.a would be better... quick, let's find a country whose name starts with A that has no TLD.
02:25:08 <elliott> And then colonise it.
02:25:14 <elliott> And give them a fibre-optic link.
02:25:20 <Gregor> Uhh :P
02:25:24 <elliott> Preferably a country just called "A", so that you can't have a second letter in the TLD.
02:25:28 <Gregor> All country codes are two characters :P
02:25:29 <elliott> Let's ask Sealand to rename themselves.
02:25:33 <Gregor> They would probably make that .aa
02:25:41 <elliott> This standard defines for most of the countries and dependent areas in the world:
02:25:41 <elliott> a two letter (ISO 3166-1 alpha-2)
02:25:41 <elliott> a three-letter (ISO 3166-1 alpha-3), and
02:25:41 <elliott> a three-digit numeric (ISO 3166-1 numeric) code.
02:25:45 <elliott> Gregor: NUH UH
02:25:56 <elliott> (OK, so the relevant ones are two-letter.)
02:26:06 <elliott> Gregor: aa is taken
02:26:06 * Sgeo ponders neural nets for cartoon character recognition
02:26:08 <elliott> user-assigned
02:26:12 <elliott> whatever that means
02:26:18 <elliott> User-assigned code elements are codes at the disposal of users who need to add further names of countries, territories, or other geographical entities to their in-house application of ISO 3166-1, and the ISO 3166/MA will never use these codes in the updating process of the standard. The following alpha-2 codes can be user-assigned: AA, QM to QZ, XA to XZ, and ZZ. For example:
02:26:30 <elliott> Gregor: SO HA
02:26:57 <Gregor> Okidoke :P
02:27:44 <elliott> Gregor: Register sudo.su :P
02:27:50 <elliott> Darn, taken.
02:27:52 <elliott> How suppliesing.
02:28:03 <elliott> Gregor: (Soviet Union)
02:28:08 <Gregor> elliott: Even if it wasn't taken, .su domains are CRAZY-expensive.
02:28:17 <Gregor> Since they're "trying" to phase them out.
02:28:18 <elliott> Really? I've seen individuals with them before.
02:28:22 <elliott> But I guess that was an old registration.
02:28:41 <elliott> Gregor: But yah, it will never be phased out ever :P
02:28:50 <zzo38> In Soviet Russia, domain name register YOU!! That is why you cannot register them easily
02:28:50 <Gregor> Nope
02:29:00 <elliott> Gregor: Nope it will be phased out, or nope, I agree, it will never be phased out ever?
02:29:14 <elliott> zzo38: Congratulations, you're as funny as Yakov Smirnoff.
02:29:16 <elliott> And he makes vodka.
02:29:31 <Gregor> elliott: I agree, it will never be phased out.
02:29:57 <elliott> Gregor: One day, the most well-known legacy of the Soviet Union will be its TLD, which will still be around in post-Singularity 3142 AD.
02:30:08 <elliott> And we *still* won't have migrated off IPv6 yet, grumble, sigh.
02:30:25 <elliott> (Turns out that incredibly-advanced alien cultures have a SHITLOAD of sentient beings who want personal websites.)
02:30:29 <Gregor> Off? We won't have migrated TO IPv6 yet :P
02:31:03 <elliott> Gregor: The Singularity did that for us.
02:31:10 <elliott> After resigning us all to Five Minutes Self-Hatred for not having done it yet.
02:32:46 <zzo38> Is there any kind of 'patamagic that you like? Is there any kind of metamagic that you like?
02:33:54 <Sgeo> I like terminating zzo38 because he's an INFRARED and is wearing white clothes...
02:34:26 <zzo38> I am not wearing white clothes right now.
02:34:37 <zzo38> But at least some of it is almost white.
02:34:55 <Sgeo> How dare you question Friend Computer?!
02:35:09 <zzo38> I don't know!?
02:35:34 <oerjan> what color clothes _are_ infrareds allowed to wear, anyhow
02:35:58 <Sgeo> Black, I'd assume.
02:36:18 <Sgeo> INFRARED stuff is black, ULTRAVIOLET is white
02:36:31 <zzo38> Actually I have blue clothes at this time, and white socks.
02:40:28 <invariable> Gregor: how do you apply for a .so domain?
02:40:46 <Gregor> invariable: Carefully.
02:40:53 <invariable> :-|
02:41:09 <zzo38> What country is that?
02:41:15 * invariable wants a vanity domain name - but all the good ones are taken
02:42:16 <Sgeo> Gregor, did you get yours?
02:42:18 -!- GreaseMonkey has joined.
02:42:18 <zzo38> invariable: Which vanity domain names did you want?
02:42:32 <Gregor> Sgeo: If I knew, I wouldn't have had that message to paste :P
02:42:51 <invariable> zzo38: I wanted 0xdeadbeef.com, cryp.to, a few others
02:43:14 <invariable> Gregor: where does one apply for the domains?
02:43:57 <Gregor> invariable: Presently you can't buy .so domains, as the landrush period has ended but general availability hasn't started yet. General availability is April 1st.
02:44:09 <Gregor> invariable: nic.so has a list of registrars
02:44:11 <invariable> :-(
02:44:29 <invariable> If you would like to sell .so domains, please feel free to contact us below. ---> interesting
02:44:45 <oerjan> so what
02:44:51 <Gregor> invariable doesn't know much about the domain name system, does 'e :P
02:45:22 <invariable> Gregor: considering I follow dns-operations and nanog I'd say I'd know some things - I don't follow the politics of it though
02:45:46 <Sgeo> Is it interestling like "She requested to be buried in XYZ" interesting?
02:45:54 <Sgeo> As in, it seems weird if you don't think about it
02:45:59 <invariable> Gregor: curious what data you think I do not know. I'm always open to learning new things
02:46:19 <Sgeo> Or did invariable actually not think about it, and think it makes no sense?
02:46:20 <Gregor> invariable: Well, it's just that "If you would like to sell .so domains, please feel free to contact us below." is not interesting at all, as that's how almost every TLD works :P
02:46:29 <Gregor> They always delegate to general registrars.
02:46:34 <invariable> Gregor: oh - I know that
02:46:41 <Sgeo> Hah! I was right!
02:46:43 <Sgeo> Maybe.
02:46:47 <invariable> Gregor: my interesting was "oh - maybe I'll sign up"
02:46:48 <Sgeo> Kind f.
02:46:56 <Gregor> invariable: Sign up ... to be a registrar?
02:47:01 <Sgeo> Isn't being a registrar.. expensive?
02:47:11 <invariable> Sgeo: to contact them doesn't cost monies
02:47:23 <invariable> I want to see how much they charge and what proccess they go thru
02:47:33 <Gregor> Why do you want to be a registrar?
02:47:52 <invariable> Gregor: I don't.
02:48:09 <invariable> <invariable> I want to see how much they charge and what proccess they go thru
02:48:11 <Sgeo> He wants to know what it takes to be a registrar
02:48:16 <Gregor> OK, well I'm sufficiently boggled :P
02:48:19 <Gregor> Anyway I just want libc.so
02:48:24 <Gregor> I'm probably not getting it, but I WANT IT
02:48:32 <invariable> Gregor: darn it. I'd love that domain too
02:48:36 <Sgeo> What do you mean, "probably not getting it"?
02:48:41 * invariable wonders if I could get libm.so
02:48:51 <Gregor> Sgeo: Landrush = any number of people can register, if more than one do then they auction it.
02:49:01 <Gregor> I registered during landrush, but don't yet know if anybody else did.
02:49:05 <Gregor> invariable: I registered libm too :P
02:49:08 <Sgeo> Also, shouldn't you find a country with country code 6?
02:49:15 <invariable> Gregor: darn
02:49:20 <Gregor> YEs, 6landia X_X
02:49:31 <invariable> I wish I knew about this sooner
02:49:35 <oerjan> sexlandia XXX; ok
02:49:43 <Gregor> invariable: I couldn't tell people :P
02:49:49 <Gregor> invariable: I didn't want any competition!
02:49:56 <invariable> Gregor: as I said - all the good vanity domain names are taken
02:50:15 <Sgeo> Is it libc.so.6? Or something else?
02:50:17 <Gregor> I've been wanting libc.so for YEARS, I actually had a cron job to check nic.so every week :P
02:50:27 <invariable> Gregor: seriously?
02:50:40 <Gregor> Yup
02:50:47 <elliott> Gregor: Wow X-D
02:50:52 <elliott> Gregor: You are one dedicated motherfucka.
02:50:54 * invariable WANTS A GOOD VANITY DOMAIN NAME
02:50:55 <Sgeo> Did nic.so exist in any form back then?
02:50:58 <elliott> <Gregor> I'm probably not getting it, but I WANT IT
02:50:59 <elliott> Why not?
02:51:02 <elliott> Is only some small subset being granted?
02:51:03 <oerjan> gregor, the strangest person to root for somalian government
02:51:03 <Sgeo> Or were you guessing
02:51:07 <invariable> elliott: <Gregor> Sgeo: Landrush = any number of people can register, if more than one do then they auction it.
02:51:07 <elliott> Or do you think someone else is as genius as you?
02:51:14 <elliott> Right.
02:51:15 <elliott> Well.
02:51:17 <Gregor> elliott: That's my fear :P
02:51:20 <elliott> Most people aren't as brilliant as Gregor.
02:51:23 <elliott> This is not because Gregor is brilliant.
02:51:27 <elliott> This is just because most people are stupid.
02:51:35 <Gregor> There only needs to be one more on Earth :P
02:51:47 <Gregor> Unless he's poor 8-D
02:51:47 * invariable JUST WANTS A GOOD DOMAIN NAME
02:51:54 <invariable> :-|}
02:51:59 <Gregor> codu.org is a good domain name :P
02:52:03 <elliott> Gregor: Yeah, but it's also someone as brilliant as you, *and dedicated enough to spend bucks on it*.
02:52:09 <elliott> Unless the starting bid is ridiculous.
02:52:55 <Gregor> Anyway, Somalia is still lettin' me down here :P
02:53:01 <Gregor> I should know whether I got it any week ago.
02:53:18 <Sgeo> Gregor, imagine if you typoed your email address...
02:53:26 <elliott> Gregor: Oblig. http://www.weebls-stuff.com/songs/Somalia/
02:53:44 <Gregor> elliott: I'm aware :P
02:53:51 <elliott> Gregor: "Oblig." for a reason.
02:54:03 * invariable JUST WANTS A GOOD DOMAIN NAME :-\
02:54:09 <elliott> invariable: agood.com
02:54:25 <Sgeo> agooddomainname.com
02:54:31 <elliott> I would have registered ehird.org by now, but elliott@ehird.org is ugly.
02:55:15 <invariable> Sgeo: taken http://www.einsteinindustries.com/
02:55:17 <Gregor> invariable: I could give you a vanity email address @libc.so :P
02:55:28 <elliott> Gregor: But only if it's a libc function.
02:55:30 <Gregor> Yes
02:55:33 -!- wareya has quit (Read error: Operation timed out).
02:55:38 <Gregor> Well, not necessarily function, but symbol
02:55:39 -!- wareya has joined.
02:55:39 <elliott> invariable seems like a memset guy to me.
02:55:40 <Gregor> stderr is OK
02:55:43 <elliott> Gregor: I want errno
02:55:50 <invariable> Gregor: that would be nice
02:55:52 <elliott> Gregor: What about a libc macro?
02:55:52 <Gregor> I'll give you errno if you want it.
02:55:56 <elliott> That's not technically in the .so.
02:56:00 <invariable> erk - I was about to ask for errno
02:56:00 <elliott> You need libc.h.
02:56:03 <Gregor> elliott: I said stderr is OK :P
02:56:06 <elliott> invariable: I WILL BATTLE YOU TO THE DEATH
02:56:11 <invariable> Gregor: could I get malloc?
02:56:12 <elliott> invariable: You can have it :P
02:56:19 <elliott> Gregor reserved "some memory allocation functions".
02:56:22 <elliott> I'm guessing this includes malloc.
02:56:26 <Gregor> I've reserved malloc, free, realloc, brk and sbrk for me.
02:56:31 <elliott> But what if I changed my gender and name to Mary Alloc?
02:56:37 <elliott> Gregor: Would you say you have...
02:56:39 <elliott> ALLOCATED them?
02:56:40 <Sgeo> I want calloc@libc.so
02:56:41 <elliott> *shades*
02:56:44 <elliott> YEAAAAAAAAAAAAAAAAAAAAAAAAAHHHHHHHHHHHHHHHHH
02:56:49 <elliott> [The Who]
02:56:54 * Gregor punches elliott in the face.
02:56:57 <elliott> *shades before allocation
02:56:58 <Sgeo> [It's just I noticed you didn't mention it]
02:57:11 <elliott> Gregor: Can I have common Unix syscalls
02:57:13 <Sgeo> What're brk and sbrk?
02:57:16 <elliott> sbrk isn't actually in libc.
02:57:22 <invariable> Gregor: could I have puts@ and gets@ ?
02:57:23 <elliott> Oh, hmm.
02:57:23 <invariable> :-)
02:57:24 <elliott> It's in SUS.
02:57:33 <elliott> invariable: ALREADY RESERVED GETS
02:57:39 <Gregor> invariable: elliott asked for gets, I don't understand why that's such a popular choice :P
02:57:46 <Gregor> gets: Shittiest function ever.
02:57:48 <elliott> Because it's terrible and being removed in C1x :P
02:57:58 <elliott> Gregor: j1f@libc.so plz
02:58:04 <elliott> (It's technically in libm though :P)
02:58:09 <elliott> (But I don't think libm is POSIX.)
02:58:14 <invariable> Gregor: could I have printf & scanf ?
02:58:17 <Gregor> If I get libm.so, you can have that @libm.so :P
02:58:28 <elliott> j0@libm.so would be good for someone called Jo or Joe.
02:58:46 <Gregor> jn@libm.so would be good for Jane!
02:58:50 <invariable> but the *f functions are irksome
02:58:54 <elliott> Gregor: ULLONG_MAX@libc.so plz
02:59:05 <elliott> Gregor: Can we have things that are going to be in C1x?
02:59:06 <invariable> Gregor: open/close/read/write?
02:59:14 <elliott> invariable: NO FAIR
02:59:15 <Sgeo> #include@libc.so
02:59:17 <Sgeo> </troll>
02:59:20 <elliott> That's like twenty you've reserved now :P
02:59:20 <Gregor> elliott: Ultimately it just comes down to whether I think it's lolly enough :P
02:59:27 <elliott> write@libc.so actually has quite a nice ring to it...
02:59:37 <elliott> Gregor: I demand NULL
02:59:37 <Gregor> Nobody's reserved anything, and I'll give one person EXACTLY ONE.
02:59:40 <elliott> WHAT
02:59:41 <Gregor> (Dun dun DUN!)
02:59:42 <elliott> THAT'S FASCISM
02:59:48 <elliott> LIKE SOMALIA
02:59:59 <elliott> Gregor: fegetexceptflag@ plz
03:00:08 <elliott> I'm just going through Wikipedia's list at this point :P
03:00:12 <invariable> elliott: HA
03:00:13 <Gregor> lol
03:00:29 <Gregor> "What's your email address?" "Faggot except flag at libc dot so."
03:00:43 <elliott> X-D
03:00:55 <invariable> why does everyone else get all the good domains :-(
03:00:59 <elliott> Gregor: creal@libc.so, for my rapper friend C. Real
03:01:09 <Gregor> invariable: So far I don't have ti :P
03:01:13 <Sgeo> int@libc.so
03:01:13 <elliott> rewind@libc.so is nice
03:01:16 <Gregor> *it
03:01:18 <elliott> OH WAIT
03:01:23 <elliott> Gregor: L_tmpnam@libc.so
03:01:25 <elliott> YESSS
03:01:27 <elliott> I GOT THE GOOD ONE
03:01:27 <Gregor> ...
03:01:37 <elliott> Gregor: Also _IOLBF@libc.so
03:01:40 <invariable> Gregor: but also things like cryp.to, 0xdeadbeed, blah blah blah -> every domain I think of someone has taken
03:01:40 <Sgeo> oh, right, C doesn't even cast like that
03:01:45 <Gregor> Sgeo: None of your @s are libc symbols X_X
03:01:53 <Sgeo> Gregor, I know
03:01:59 <Sgeo> Wait, none? I thought I had one earlier?
03:02:13 <oerjan> sin@libc.so
03:02:14 <Sgeo> calloc isn't a libc thing?
03:02:16 <Gregor> Oh yeah, calloc
03:02:21 <Gregor> oerjan: libm
03:02:22 <elliott> Gregor: xor_eq@libc.so. Thanks.
03:02:25 <oerjan> bah
03:02:28 <elliott> (It's a macro that expands to ^=. Seriously.)
03:02:28 <Gregor> sin@libm.so is gonna be hotly debated :P
03:02:33 <elliott> (iso646.h)
03:02:36 <elliott> http://en.wikipedia.org/wiki/Iso646.h
03:02:41 <Gregor> elliott: lol
03:02:48 <elliott> Gregor: OMG
03:02:50 <elliott> not@libc.so
03:02:50 <invariable> gnight all
03:02:51 <elliott> From the same header
03:02:56 <elliott> What's your email address?
03:02:58 <elliott> Not at libc.so.
03:03:00 <elliott> Well where is it then?
03:03:18 <Sgeo> reinterpret_cast@libc.so
03:03:19 <invariable> why do I get the feeling that elliott loves abbot and Costello
03:03:29 <elliott> Gregor: LDBL_MIN_10_EXP@libc.so
03:03:32 <elliott> DECIMAL_DIG@libc.so
03:03:34 <elliott> FLT_EVAL_METHOD@libc.so
03:03:48 <elliott> Gregor: nearbyint@libc.so
03:03:52 <elliott> THESE ARE SO. GOOD.
03:04:03 <Sgeo> Gregor, I want reinterpret_cast@libc.so
03:04:07 <elliott> ... X-D
03:04:09 * Sgeo ducks into a postincrement
03:04:14 <elliott> Gregor: __bool_true_false_are_defined@libc.so
03:04:15 -!- invariable has changed nick to variable.
03:04:16 <Gregor> Sgeo: So much fail.
03:04:18 <elliott> (stdbool.h)
03:04:33 <elliott> Gregor: I think I've won.
03:04:36 <Sgeo> Gregor, you know I'm doing this deliberately, right?
03:04:39 <elliott> Whatever game we're playing, I just won it.
03:05:01 <Sgeo> Hmm
03:05:07 <variable> gnight all for real
03:05:10 <elliott> qsort might be a good one.
03:05:19 <Sgeo> I even went outside C. How much more blatant can I get/
03:05:54 <Sgeo> unsafePerformIO@libc.so
03:06:22 <Sgeo> Gregor, are you going to call that fail?
03:06:37 <elliott> Gregor: zPLR@libc.so. Hey, it's in my strings(1) output.
03:06:40 <oerjan> of course not, fail is properly monadic
03:06:43 <elliott> OMG YES
03:06:44 <elliott> __gconv_transform_ucs4le_internal
03:06:45 <Gregor> elliott: ... great
03:06:48 <elliott> __gconv_transform_ucs4le_internal@libc.so
03:06:50 <elliott> GIVE IT TO ME NOW
03:06:52 <Gregor> Yeah, no
03:06:57 <elliott> __nscd_getgrouplist?
03:07:02 <elliott> internal_getgrouplist?
03:07:09 <Sgeo> What symbols are only in glibc?
03:07:15 <elliott> ((((__const uint32_t *) (sin6->sin6_addr.__in6_u.__u6_addr32))[0] == 0) && (((__const uint32_t *) (sin6->sin6_addr.__in6_u.__u6_addr32))[1] == 0) && (((__const uint32_t *) (sin6->sin6_addr.__in6_u.__u6_addr32))[2] == (__extension__ ({ register unsigned int __v, __x = (0xffff); if (__builtin_constant_p (__x)) __v = ((((__x) & 0xff000000) >> 24) | (((__x) & 0x00ff0000) >> 8) | (((__x) & 0x0000ff00) << 8)
03:07:15 <elliott> | (((__x) & 0x000000ff) << 24)); else __asm__ ("bswap %0" : "=r" (__v) : "0" (__x)); __v; }))))@libc.so?
03:07:18 <elliott> (Also in my strings output.)
03:07:18 <Sgeo> As opposed to regular libc?
03:07:29 -!- MrMandelbrot has joined.
03:07:37 <elliott> __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (&zone_names[info->idx]) && __builtin_constant_p (__tzname[tp->tm_isdst]) && (__s1_len = __builtin_strlen (&zone_names[info->idx]), __s2_len = __builtin_strlen (__tzname[tp->tm_isdst]), (!((size_t)(const void *)((&zone_names[info->idx]) + 1) - (size_t)(const void *)(&zone_names[info->idx]) == 1) || __s1_len >= 4) && (!((size_t)(const voi
03:07:37 <elliott> d *)((__tzname[tp->tm_isdst]) + 1) - (size_t)(const void *)(__tzname[tp->tm_isdst]) == 1) || __s2_len >= 4)) ? __builtin_strcmp (&zone_names[info->idx], __tzname[tp->tm_isdst]) : (__builtin_constant_p (&zone_names[info->idx]) && ((size_t)(const void *)((&zone_names[info->idx]) + 1) - (size_t)(const void *)(&zone_names[info->idx]) == 1) && (__s1_len = __builtin_strlen (&zone_names[info->idx]), __s1_len
03:07:38 <elliott> < 4) ? (__builtin_constant_p (__tzname[tp->tm_isdst]) && ((size_t)(const void *)((__tzname[tp->tm_isdst]) + 1) - (size_t)(const void *)(__tzname[tp->tm_isdst]) == 1) ? __builtin_strcmp (&zone_names[info->idx], __tzname[tp->tm_isdst]) : (__extension__ ({ __const unsigned char *__s2 = (__const unsigned char *) (__const char *) (__tzname[tp->tm_isdst]); register int __result = (((__const unsigned char *)
03:07:42 <elliott> (__const char *) (&zone_names[info->idx]))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (&zone_names[info->idx]))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (&zone_names[info->idx]))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((__const unsigned char *) (__co
03:07:47 <elliott> nst char *) (&zone_names[info->idx]))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (__tzname[tp->tm_isdst]) && ((size_t)(const void *)((__tzname[tp->tm_isdst]) + 1) - (size_t)(const void *)(__tzname[tp->tm_isdst]) == 1) && (__s2_len = __builtin_strlen (__tzname[tp->tm_isdst]), __s2_len < 4) ? (__builtin_constant_p (&zone_names[info->idx]) && ((size_t)(const void *)((&zone_names[info->idx])
03:07:54 <elliott> + 1) - (size_t)(const.
03:07:56 <elliott> And at that, my IRC client decided I couldn't enter more.
03:07:59 <elliott> But it's longer than that.
03:08:25 <zzo38> What does __extension__ means?
03:09:07 <elliott> Lets you use GNU statement expressions in ANSI-strict code.
03:09:11 <elliott> (Using gcc.)
03:09:12 <Sgeo> elliott, that may be close to being a legal email address
03:09:25 <elliott> Gregor: E2BIG@libc.so plz
03:09:32 <Gregor> Good laaaaaaaaawd
03:09:35 <elliott> THE INITIAL FITS.
03:09:49 <elliott> lawl
03:09:52 <elliott> even better
03:09:54 <elliott> Gregor: ECHILD@libc.so
03:09:56 <elliott> IT'S WHUT I AM
03:10:01 <elliott> OMG
03:10:03 <elliott> Gregor: EIO@libc.so
03:10:07 <elliott> It's the IO interface to Elliott.
03:10:28 <elliott> Best thing Gregor? Best thing?
03:11:24 <oerjan> ET, the Elliott transformer
03:13:34 -!- MrMandelbrot has left (?).
03:14:15 <elliott> olsner: so what's the longer-term plan for your OS?
03:14:21 <elliott> I mean, once it can actually do tasks
03:14:26 <elliott> i.e. processes
03:18:36 -!- azaq23 has quit (Quit: Leaving.).
03:19:28 <elliott> Hey, J701 is out!
03:19:31 <quintopia> AGH
03:19:55 <elliott> quintopia: ?
03:20:54 <quintopia> those lines you pasted up there
03:20:59 <quintopia> they temporarily blinded me
03:22:37 <elliott> quintopia: which lines
03:22:40 <elliott> oh
03:22:41 <elliott> right
03:22:41 <elliott> :D
03:24:56 <elliott> hmm
03:25:01 <elliott> maybe I will have another stab at implementing my OS
03:27:51 <elliott> "I'm not at all an expert in either linux nor the Mac OS 10.6 flavour of it."
03:27:54 <elliott> x_x
03:28:00 <quintopia> wot
03:28:09 <elliott> quintopia: someone clearly thinks that os x is based on linux
03:28:12 <elliott> because, you know, it's unix!
03:28:15 <elliott> i know this!
03:28:18 <oerjan> elliott: I'M GONNA TRUST HIS JUDGEMENT ON THAT
03:28:40 <pikhq> ... OS X isn't even very GNUy.
03:28:42 <oerjan> not being an expert
03:28:50 <quintopia> elliott: the question is where did you find a person who believes this
03:28:54 <elliott> quintopia: J mailing list
03:29:03 <elliott> pikhq: nope, in fact OS X is closer to real Unix than a lot of operating systems; certified after all (but that is meaninglses)
03:29:23 <pikhq> elliott: Somewhat more importantly, OS X is genetic Unix.
03:29:28 <elliott> pikhq: although it's horribly broken in several respects, of course, and the User Operating System layered on top of it -- the graphical interface and applications -- is almost completely unrelated to Unix
03:29:46 <elliott> making OS X about as tempting a Unix environment as Windows + coLinux or similar
03:30:33 <Gregor> Honey is REALLY tricky.
03:30:38 <elliott> Gregor: Honey what, soda?
03:30:40 <Gregor> It's so freaking acidic.
03:30:45 <Gregor> And nowhere near as sweet as it should be.
03:30:45 <Gregor> elliott: Yeah.
03:30:52 <elliott> Gregor: <3
03:30:54 <Gregor> elliott: Just as a sweetener/acidifier, not primary flavorant.
03:30:58 <elliott> Also, are we talking like...
03:31:03 <elliott> Honey is nowhere near as sweet as it should be, what.
03:31:08 <elliott> Honey is, like, one of the sweetest things.
03:31:13 <Gregor> No, it so isn't :P
03:31:20 <elliott> Gregor: P.S. Do maple syrup next. I am in a committed relationship with maple syrup.
03:31:21 <Gregor> It's not as sweet as sugar, it's not even as sweet as corn syrup.
03:31:25 <elliott> It is the best thing and goes with everything.
03:31:29 <elliott> And IS sweeter than anything :P
03:31:38 <elliott> Though I guess it's not terribly acidic, but who cares, maple syrup.
03:31:40 <Gregor> Yes, maple syrup is definitely crazysweet.
03:31:45 <elliott> Yes.
03:31:47 <elliott> Use it in soda.
03:31:49 <elliott> Do it now.
03:31:54 <Gregor> It doesn't have to be acidic, I can always use citric acid *shrugs*
03:32:01 <elliott> Good. MAPLE SYRUP.
03:32:08 <Gregor> I have maple extract :P
03:32:16 <Gregor> But I failed HARD at making maple soda by using maple extract.
03:32:19 <Gregor> It was really bad :P
03:32:32 <elliott> My experience with maple syrup is that, whenever you feel like using sugar, just use maple syrup instead and it'll be so amazing.
03:33:30 -!- pikhq_ has joined.
03:33:41 -!- pikhq has quit (Ping timeout: 250 seconds).
03:35:37 <zzo38> My experience with maple syrup is that, using with waffle/pancake.
03:38:54 <quintopia> my experience with maple syrup is that it's acidic and gross
03:39:05 <quintopia> maple-flavored corn syrup is clearly superior
03:41:01 <pikhq_> quintopia: Fail.
03:41:16 <pikhq_> Maple syrup is the embodiment of delicious.
03:41:27 <quintopia> you're probably one of those people who likes tomatoes and olives too
03:41:31 <quintopia> i say to hell with the lot of you
03:41:47 <pikhq_> I only like either as ingredients.
03:42:47 <Gregor> I like to take two tomato slices and put olives and mayo between them
03:43:33 <elliott> pikhq_: He's joking, you moron :P
03:43:39 <elliott> Unless he's really really stupid.
03:43:48 <elliott> Also, I hate tomatoes and olives :P
03:44:19 <Sgeo> elliott, I have no idea if he's joking or not. I have little experience comparing food. Does this make me stupid?
03:46:53 <elliott> Hey quintopia, give me endless grant money to work on @.
03:47:30 <oerjan> endless £ or endless $?
03:47:33 -!- copumpkin has joined.
03:47:49 <elliott> oerjan: the former, much better rates
03:47:54 <Sgeo> endless Zorkmids!
03:48:20 <quintopia> elliott: i'll give you one hundred billion ZWD right now
03:48:31 <elliott> quintopia: Accepted.
03:48:37 <elliott> quintopia: (ZWD got reset recently.)
03:48:42 <elliott> quintopia: (Well, right before it got deprecated.)
03:48:44 -!- pikhq_ has quit (Ping timeout: 276 seconds).
03:48:45 <elliott> So that's a fair amount of money.
03:49:06 <elliott> On February 2, 2009, the RBZ announced that a further 12 zeros were to be taken off the currency, with 1,000,000,000,000 (third) Zimbabwe dollars being exchanged for 1 new (fourth) dollar.[21] New banknotes were introduced with a face value of Z$1, Z$5, Z$10, Z$20, Z$50, Z$100 and Z$500.[22] The banknotes of the fourth dollar circulated alongside the third dollar, which had to remain legal tender until
03:49:06 <elliott> 30 June 2009.[23] The new currency code was ZWL.[24]
03:49:09 <quintopia> i only have the bills from before the reset. sorry.
03:49:16 <elliott> BAH
03:49:25 <quintopia> as i recall though
03:49:35 <elliott> love this caption: "The 100 trillion Zimbabwean dollar banknote (1014 dollars), equal to 10627 pre-2006 dollars."
03:49:36 <quintopia> it had hyperinflated again before it was deprecated
03:49:38 <elliott> *10^27
03:49:50 <elliott> quintopia: nope
03:49:54 <elliott> quintopia: it was basically ignored
03:49:57 <elliott> since everyone dollarizified
03:50:20 <quintopia> the point is, any amount of ZWD is worthless now, yes?
03:50:33 <elliott> well. they basically don't exist. but if you _could_ convert them.
03:50:39 <elliott> then 4th gen zwd would be sweet.
03:53:21 -!- pikhq has joined.
03:59:50 <Gregor> WHY SOMALIA WHY
03:59:55 <Gregor> I JUST WANT THE ETERNAL WAIT TO BE OVER
04:06:47 <elliott> Gregor: You could make that into a song!
04:06:58 <elliott> Gregor: A little ditty about how hard done-to you are by Somalia.
04:07:11 <Gregor> And not even any pirates :P
04:07:16 <elliott> Why, Somalia, why / I just want the eternal wait to be over / When, Somalia, when / Will you give me my domain
04:07:18 <elliott> IT WILL BE AWESOMETERRIBLE
04:07:22 <Gregor> Unless pirates have taken over the Ministry of Post and Telecommunications
04:07:25 <elliott> THEY HAVE.
04:07:35 <cheater00> elliott: well done waking up on that
04:08:03 <cheater00> elliott: next you'll be trolling about the use of the us dollar as the main currency in russia in the 90s
04:08:07 <zzo38> I found out how to make chess notation with morse code.
04:08:19 <cheater00> zzo38: ooo
04:08:39 <cheater00> zzo38: is there some specific trick? or do you just use normal chess notation and transcribe it?
04:09:43 <zzo38> Files are AEIOOIEA and ranks are BDFGHKLP. The file letters are duplicated because you put the file letters first for queenside and ranks letters first for kingside.
04:10:11 <zzo38> So the queen's rook's 1 might be "AB" and the king's rook's 1 might be "BA", for example.
04:12:01 <cheater00> aha
04:14:15 <zzo38> Now I want to make chessboard fonts with METAFONT.
04:15:27 <Sgeo> Oh, cheater00's here
04:15:51 <cheater00> zzo38: good luck
04:15:57 <cheater00> zzo38: i bet it'll be fun
04:20:52 <elliott> http://pinguy-os.sourceforge.net/ Time until Sgeo uses this piece of "Macdows" crap: 3s
04:21:11 <Sgeo> elliott, maybe tomorrow
04:21:15 <Sgeo> I need to sleep soon
04:21:33 <Sgeo> It looks boring
04:21:53 <Sgeo> Wait.
04:22:01 <elliott> Sgeo: How can you say that, you've used Lindows!
04:22:04 <Ilari> Of nifty. Plant "Vitamin A" is much less effective (>6x difference at least) than true vitamin A (from animals). And often is labeled the same. :-/
04:22:06 <elliott> You have NO BASELINE of crappiness.
04:22:19 <Sgeo> Pinguy OS : Linux Mint :: Linux Mint : Ubuntu?
04:22:22 <Sgeo> (Supposedly)
04:22:32 <Sgeo> elliott, I've used Freespire.
04:23:09 <Sgeo> Actually, Freespire and Ubuntu are the only Linux distros I have used as a primary OS. Unless Kubuntu counts separately from Ubuntu
04:23:13 <Ilari> Ah, this site reports 12x difference.
04:23:14 <elliott> Sgeo: Pinguy OS = Macdows.
04:24:08 <Sgeo> It's an OS. Therefore, it's at least marginally more interesting than the video I got upon googling "Macdows".
04:24:22 <Sgeo> Then again, some chicken walking around is more entertaining
04:24:33 <Sgeo> http://www.archive.org/details/Macdows
04:25:54 <Sgeo> Things that are more entertaining than the Macdows video:
04:25:59 <Sgeo> A glacier moving.
04:26:01 <elliott> http://www.freespire.com/ ;; wonder how much of this is bullshit.
04:26:08 <Sgeo> An empty house.
04:26:09 <elliott> "- FACT: Michael Robertson, a self-proclaimed agnostic, went to great lengths to unsuccessfully try and have a Christian church kick out one of their members who was a former employee whom Robertson held a grudge against. Robertson made false allegations to the church of criminal activity by the former employee. UBER creepy, we know. (The Anti-Christian Expose' coming soon.)"
04:26:11 <elliott> This makes me sceptical.
04:27:39 <Sgeo> I'm sad that Xandros no longer has a community edition
04:29:23 <cheater00> Ilari: yeah, gotta watch out with this new-age crap
04:29:35 <elliott> 05:05:03 <Sgeo> http://www.archive.org/details/Macdows
04:29:36 <elliott> what.
04:31:53 <Ilari> There are even worse practices: Like labeling industrial trans fats (extremely unhealthy stuff) as saturated fat "because they have similar chemical properties" (which is just plain mis-/disinformation).
04:32:44 <cheater00> yeah..
04:32:47 <Ilari> There is a world of a difference between industrial trans fats and any other kind of fat.
04:32:49 <Sgeo> elliott, xkcd sets off adblockers
04:33:13 <cheater00> wait till you get to things like children's food.
04:33:49 <Ilari> Apparently industrial trans fats are not just heart health hazard. They are diabetes hazard as well.
04:34:25 <cheater00> yesterday we've compared a children's semolina pudding and grown up's semolina pudding
04:34:57 <cheater00> children's has 0% protein and 39% sugar.
04:35:11 <cheater00> grown ups' has 0% sugar and normal protein.
04:37:02 <quintopia> Sgeo: mine blocked it
04:37:16 <quintopia> had to go to the hotlink below it
04:37:40 <quintopia> and someone else pasted me the alt text cuz i didn't care enough to view the source
04:38:16 -!- pikhq has quit (Ping timeout: 246 seconds).
04:38:21 -!- pikhq_ has joined.
04:38:41 <elliott> Well, today's xkcd is yet another instance of "it annoys me, but it's not funny. What should I do? Ooh, I remember, I have a comic!"
04:39:05 <elliott> "Comics don't have to be funny, right? What's that? They're meant to be interesting if not funny? Hmm... well, it's too late to turn back now. *hits Publish*"
04:39:43 <quintopia> all of the above is definitely true for comics released on a strict schedule
04:40:04 <Ilari> Oh, and there's also confusing industrial and natural trans fats. Again a world of difference.
04:40:19 <quintopia> it all depends on rather you prefer three mediocre comics a week or one funny one every now and again
04:40:27 <quintopia> s/rather/whether/
04:40:41 <cheater00> "<elliott> i leverage myself by looking down on something that others look up to because i have no value of my own."
04:40:48 <elliott> <quintopia> all of the above is definitely true for comics released on a strict schedule
04:40:59 <elliott> I dunno, IWC regularly manages to be funny, but of course it is subjective.
04:41:10 <elliott> The key is backlog, backlog, backlog, and if Randall doesn't have a backlog I'll eat my hat.
04:41:15 <Ilari> Natural trans fats have strong negative correlation to heart disease. Industrial ones have very strong positive correlation (amounts measured from fatty tissue).
04:41:17 <elliott> I'm pretty sure he's just stopped caring.
04:41:36 <quintopia> or maybe he has no idea what people think is funny
04:41:40 <elliott> Or has run out of all good ideas but, hey, I still get money from it.
04:41:47 <elliott> quintopia: Counter-evidence: almost every comic before #400 or so.
04:41:48 <quintopia> i know some people who thought this one was funny
04:41:55 <elliott> Yes, but those people have broken heads.
04:42:26 <elliott> Old xkcd is universally liked; new xkcd is mainly liked by the diehard fans. There is definitely a *difference*.
04:42:33 <quintopia> elliott: go back and read those comics. they're not as funny as you think they are. also, i think many of them predate the three-a-week schedule
04:42:41 <elliott> quintopia: I have; they are.
04:42:54 <Ilari> The top to bottom ratio is something like 0.5 for natural trans fats (1 is neutral, the smaller the better), and 5 for industrial ones.
04:43:01 <elliott> Old xkcd also seems much more authentic to me -- not in a hipster "had-it-on-vinyl" way, but they've seemed quite strained for a while now.
04:43:19 <elliott> But those five minute comics of late were *good*.
04:43:30 <elliott> I think what's happened is that with popularity, he's ended up overediting them all.
04:44:45 <Gregor> My ad blocker blocked today's xkcd.
04:44:47 <Gregor> Best ever?
04:44:53 <elliott> Gregor: See: LINES JUST ABOVE
04:44:55 <elliott> Good god.
04:45:10 <Gregor> I don't want to read that much.
04:45:10 <Gregor> I just saw "xkcd" and "sucks"
04:45:16 <elliott> :D
04:45:32 <quintopia> http://www.xkcd.com/99/
04:45:37 <Gregor> Also, apparently nobody said anything about adblockers.
04:45:39 <Gregor> So, yeah.
04:45:42 <elliott> Yes, we did.
04:45:45 <elliott> *they did.
04:45:47 <elliott> See earlier above.
04:45:53 <Gregor> Oy, WAY too far back :P
04:46:01 <elliott> quintopia: I'm not saying every comic before #400 was good.
04:46:07 <oerjan> Gregor's adblocker is so good it even blocks irc conversations about adblockers
04:46:11 <elliott> I'm saying that xkcd was a regular source of funny.
04:46:15 <elliott> ->
04:46:18 <elliott> <-
04:46:18 <quintopia> night
04:46:24 <Gregor> It's pretty good.
04:47:01 <elliott> ->
04:47:07 -!- elliott has quit (Quit: Leaving).
04:48:11 -!- elliott has joined.
04:48:15 <elliott> 16:52:39 --- quit: EgoBot (K-lined)
04:48:17 <elliott> 16:52:40 --- quit: GregorR (K-lined)
04:48:19 <elliott> 2007-04-09
04:48:21 <elliott> Gregor: explain yourself
04:48:31 <quintopia> ....
04:48:36 <elliott> quintopia: shut up.
04:48:48 <quintopia> oerjan!
04:48:51 <quintopia> a little help here?
04:48:54 <elliott> oerjan: ban quintopia.
04:48:55 <oerjan> hm?
04:49:03 <quintopia> kick elliott so he can sleep
04:49:08 <elliott> no
04:49:12 <elliott> i cannot sleep until Gregor replies
04:49:16 <elliott> and it's 5:30 am reply you fucker
04:49:59 <elliott> 18:07:24 <bsmntbombdood> * EgoBot has quit (K-lined)
04:49:59 <elliott> 18:07:24 <bsmntbombdood> * GregorR has quit (K-lined)
04:49:59 <elliott> 18:07:40 <graue> why'd that happen?
04:49:59 <elliott> 18:07:47 <ihope_> Apparently it was for spamming.
04:49:59 <elliott> 18:08:10 <lament> spamming who
04:50:07 <elliott> 18:10:56 <bsmntbombdood> "Broken client, apparently .. not sure the details", "I'm speculating, but usually that reason means it was disconnecting/reconnecting/etc.. or joining/rejoining/etc.."
04:50:10 <elliott> lol Gregor is sux
04:50:36 -!- elliott has quit (Client Quit).
05:01:56 -!- asiekierka has joined.
05:05:30 <zzo38> I ready made up a program in TeX to read Forsyth-Edwards Notation.
05:06:38 <zzo38> And it will currently print out the board in ASCII, although I can make the chessboard fonts and make it print out using chessboard fonts with light squares and dark squares.
05:08:54 -!- poiuy_qwert has quit (Ping timeout: 260 seconds).
05:09:33 -!- poiuy_qwert has joined.
05:12:55 <zzo38> Making TeX understand the rules of chess in order to interpret the notation correctly is a bit complicated.
05:12:58 <cheater00> neat
05:13:42 <zzo38> Although I could probably make many simplifications in these rules
05:13:59 -!- oklopol has joined.
05:14:08 <cheater00> now write formal proof.
05:14:13 <zzo38> Like, the notation it can understand for board setup is like the following: \def\FIDEsetup{\FENsetup{rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR}}
05:14:22 <zzo38> cheater00: Formal proof of what?
05:14:38 <cheater00> that your function will correctly spit out the right chessboards
05:16:27 <zzo38> Chess boards and displayed moves (as opposed to inline moves) are printed using display math mode.
05:18:13 -!- pikhq has joined.
05:18:24 <cheater00> that's ok, but how do you know that your decoding is correct?
05:18:48 <zzo38> I have no formal proof, although I could test it with various inputs to see what happens.
05:18:48 -!- pikhq_ has quit (Ping timeout: 260 seconds).
05:21:40 <cheater00> would you say it's impossible to write formal proof?
05:22:04 <zzo38> cheater00: I don't know.
05:22:25 <zzo38> But if it can, the formal proof can also be typed using TeX.
05:22:28 <cheater00> i would be interested if you were to find a way to do a general proof of it
05:24:25 <zzo38> Here is the main part of the code that parses FEN, in case you want to see: http://sprunge.us/DELA
05:25:28 <zzo38> I am not exactly sure how to write formal proofs of computer programs, anyways.
05:25:34 <Sgeo> cheater00, BTW, I decided to do my own thing. While I'm not thrilled with the outcome, I'm pretty sure I like it better than the probable outcome of doing what you suggested
05:26:34 <cheater00> Sgeo: are you trying to prove you're a non-lobotomised human with own thoughts?
05:27:11 <cheater00> Sgeo: i'm asking because it's the third or fourth time you're mentioning you'll do something else, and it seems like over-compensating.
05:28:11 <cheater00> zzo38: i think you could start by defining the input data structure and based on that proving that the output data structure will always be a correct chess board
05:28:16 <Sgeo> Good night
05:28:58 <zzo38> cheater00: It won't be a correct chess board if the input is bad. It doesn't verify that the input is correct.
05:29:25 <cheater00> zzo38: yeah, the idea is to prove it given the assumption that the input is correct.
05:30:40 <cheater00> zzo38: right now you can not say that your program, given correct input, will produce a chessboard (much less a chessboard of correct format, and even less that it will be the single chessboard that you want)
05:32:15 <zzo38> I have not implemented moves yet, only board setup. However the board setup can place the pieces wherever you want, so you can setup the board to be the position after a few moves have already been done. Next I will implement move notations as well.
05:32:36 -!- asiekierka has quit (Read error: Operation timed out).
05:32:57 <zzo38> And chessboard fonts, so that the board can be displayed using the common chess diagrams.
05:33:16 <cheater00> cool!
05:33:33 <cheater00> (i must say, i really dislike the old bitmap chess fonts though
05:33:37 <cheater00> )
05:34:21 <zzo38> You can suggest other ways in which they should be drawn. I know METAFONT, although I don't know a lot about typeface design. So, if you know the good way of drawing of the pieces, I can program them into METAFONT.
05:36:49 <zzo38> I might also add a few icons for pieces that are not in chess, in case of some variants, such as chess with checkers added, and so on.
05:38:54 <cheater00> i'm sorry, i don't know any alternatives that i could identify by name
05:39:49 <zzo38> In fact, I once play chess with my brother, he added checkers in front of pawns as a joke but then I said we can play that way, and both of us immediately knew what the rules for this new varaint were even though neither of us had played before. And we happened to be in complete agreement of the rules.
05:40:15 <zzo38> cheater00: Alternatives of what?
05:40:47 <cheater00> <zzo38> You can suggest other ways
05:41:37 <zzo38> cheater00: I didn't mean naming them. I mean describing their shapes in a way that I can program in.
05:56:34 <cheater00> sorry, no clue
05:59:20 <zzo38> OK
06:00:27 -!- augur has quit (Remote host closed the connection).
06:07:14 -!- zzo38 has quit (Remote host closed the connection).
06:07:29 -!- oerjan has quit (Quit: Good night).
06:09:45 -!- FireFly has joined.
06:14:29 -!- myndzi\ has changed nick to myndzi.
06:22:15 -!- augur has joined.
06:28:57 -!- GreaseMonkey has quit (Quit: The Other Game).
06:34:48 -!- HackEgo has quit (Ping timeout: 246 seconds).
06:35:23 -!- Gregor has quit (Ping timeout: 255 seconds).
06:35:30 -!- EgoBot has quit (Ping timeout: 246 seconds).
06:44:45 -!- sebbu2 has joined.
06:44:45 -!- sebbu2 has quit (Changing host).
06:44:45 -!- sebbu2 has joined.
06:47:32 -!- sebbu has quit (Ping timeout: 255 seconds).
06:52:42 -!- TLUL has quit (Ping timeout: 276 seconds).
07:03:10 -!- pikhq_ has joined.
07:03:22 -!- pikhq has quit (Read error: Operation timed out).
07:28:09 -!- FireFly has quit (Quit: swatted to death).
07:42:05 -!- Sgeo has quit (Read error: Connection reset by peer).
07:42:58 -!- pikhq_ has quit (Ping timeout: 246 seconds).
07:43:01 -!- pikhq has joined.
07:58:01 -!- cheater00 has quit (Ping timeout: 246 seconds).
07:58:57 -!- cheater00 has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:23:07 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
09:19:57 -!- Wamanuz2 has joined.
09:23:36 -!- Wamanuz has quit (Ping timeout: 255 seconds).
10:01:28 -!- Tritonio has joined.
10:17:37 -!- sebbu2 has changed nick to sebbu.
10:33:51 -!- Tritonio has quit (Quit: Leaving).
10:51:51 -!- asiekierka has joined.
10:54:51 <Ilari> Ah, I think I figured out why I misremembered name of the language: There was earlier design called pointer-A that never went past initial ideas stage (never even got to spec stage). That name really had a dash in it.
11:14:33 -!- cheater- has joined.
11:14:37 -!- cheater00 has quit (Ping timeout: 246 seconds).
11:17:08 -!- Patashu has quit (Ping timeout: 264 seconds).
11:44:14 <variable> HTML5 + CSS3 = turing complete :-\
11:56:37 <oklopol> your mom was turing complete last night
11:56:48 <oklopol> ...in BED.
11:57:44 <oklopol> maybe i should've chosen my first words better.
12:15:21 <Ilari> variable: Got more info about that?
12:17:38 <Ilari> Ah.
12:19:03 <variable> Ilari: yeah - hang on
12:20:18 <variable> Ilari: http://lambda-the-ultimate.org/node/4222
12:29:15 -!- augur has quit (Remote host closed the connection).
12:43:07 -!- asiekierka has quit (Ping timeout: 246 seconds).
12:43:09 <Ilari> But can one write HTML5+CSS3 that "halts" only if Goldbach's conjecture is false (such program can be written in every TC language)?
12:53:18 <nooga_> oh
12:53:21 <nooga_> i'm idling here
12:53:23 -!- nooga_ has changed nick to nooga.
12:56:25 -!- Gregor has joined.
12:56:43 -!- Gregor has changed nick to Guest28480.
12:58:15 <oklopol> where the hell is elliott
12:58:35 -!- Guest28480 has changed nick to Gregor.
13:05:32 <nooga> where the elliott is hell
13:06:16 <fizzie> Where the elliott is, he'll.
13:07:17 <Gregor> The "where" elliott is: Hell.
13:11:32 <fizzie> Hitler wheelies the toll.
13:13:46 <variable> why does EVERY tv show or movie that involves a bomb HAVE to have a "which colour wire do I cut?" scene. I I ever made a bomb I'd make all the wires red so that this couldn't happen!
13:16:36 <Gregor> There's no sink in this room!!!
13:17:23 <coppro> MAYBE there's a source?
13:21:24 <fizzie> Then you can just time-reverse it.
13:41:40 <nooga> bork
13:42:47 -!- FireFly has joined.
13:43:49 -!- augur has joined.
13:44:22 -!- augur has quit (Remote host closed the connection).
13:50:19 -!- ais523 has joined.
13:50:49 <ais523> !bfjoust slowpoke http://sprunge.us/hcQD
13:53:58 <Deewiant> ais523: 2011-03-09 09:16:05 --> EgoBot (~EgoBot@codu.org) has quit (Ping timeout: 246 seconds)
13:54:15 <fizzie> You poked it straight off the net.
13:54:26 <ais523> ouch
13:54:38 <ais523> well, for the record, slowpoke beats every other program, convincingly in most cases, including waterfall3
13:55:31 <fizzie> Yes, it's very convenient the bot isn't here to disprove. Almost an unimaginable coincidence, hmm? Makes you think.
13:56:14 <ais523> run it locally if you like
13:56:38 <ais523> I fear the strategy shown there may have actually broken BF Joust somewhat, it appears to be more or less completely fatal to defence programs
13:56:45 <fizzie> I'd sneak it into the visualization system but the computer's off.
13:56:54 <ais523> although hopefully it's suboptimal due to doing slightly worse against attack programs
13:57:09 <oklopol> what's the strategy
13:58:34 <ais523> the attack uses a timer clear, which basically spends around 4000 cycles on a two-cycle clear, then switching to a five-cycle clear in the other direction if it still hasn't finished
13:58:38 <ais523> on the basis that it's probably being locked
13:59:07 <ais523> the program as a whole is a combination of that idea with a deep poke that leaves a trail
13:59:10 <oklopol> what's a two-cycle clear
13:59:12 <ais523> [-]
13:59:18 <ais523> or other programs that act much the same way
13:59:23 <ais523> see http://esolangs.org/wiki/BF_Joust_strategies
13:59:30 <oklopol> what are the rules of bf joust even? :P
13:59:36 <ais523> http://esolangs.org/wiki/BF_Joust
13:59:41 <oklopol> bleh, k i'll read
13:59:58 <ais523> I could explain in-channel, but it'd just take longer for no benefit
14:00:11 <oklopol> for no benefit to anyone except me, no
14:00:27 <oklopol> erm, or is it yes
14:00:27 <ais523> not for you either, unless you'd prefer IRC for some reason
14:00:27 <oklopol> .P
14:00:32 -!- poiuy_qwert has quit (Quit: This computer has gone to sleep).
14:00:32 <oklopol> of course i prefer irc
14:00:35 <ais523> well, OK
14:00:58 <ais523> the way the game works is that two programs are each trying to set a particular cell in a shared memory tape to 0
14:01:22 <ais523> the programs themselves are written in Brainfuck, except without I/O (the . command exists but just does nothing for one cycle)
14:01:45 <ais523> each program starts at opposite ends of the tape, and > moves "forwards" towards the opponent's end, with < moving backwards towards their own end
14:01:52 <oklopol> okay
14:02:05 <ais523> and the programs run simultaneously, every turn one command from each is evaluated and applied simultaneously
14:02:34 <oklopol> makes sense
14:02:37 <ais523> (if + or - runs at the same time as [ or ], the increment/decrement's done after the flow control command; apart from that, the combined effect of two commands is typically obvious)
14:02:49 <oklopol> yeah
14:02:58 <ais523> now, the difficulty is that the programs don't know how long the tape is (it could be any length from 10 to 30 inclusive)
14:03:25 <ais523> and although the main loss condition is that the cell you started on is 0 for two cycles in a row, there's a secondary loss condition that you lose if you go off the end of the tape
14:03:40 <ais523> the tape starts with 128 at each end and 0 on every other cell, by the way, 8-bit wrapping
14:04:19 <oklopol> okay
14:04:27 <ais523> so strategy mostly evolves around trying to set each cell along the tape in turn to 0 for two cycles in a row, on the basis that if doing that doesn't immediately win then it obviously wasn't the cell the opponent started on
14:04:45 <oklopol> yeah
14:04:47 <ais523> or else, trying to make it harder for the opponent to do that, to give yourself more time to do so
14:05:06 <oklopol> this sounds like a game that doesn't really work
14:05:17 <oklopol> does it?
14:05:19 <ais523> oh, the other thing to note is that BF Joust programs are pretty much always run-length-encoded (as (ab)*5 = ababababab)
14:05:30 <ais523> and it's been working quite well, people keep discovering new strategies
14:05:44 <oklopol> okay so now what was yours
14:05:45 <ais523> the length of the strategies page is testament to that, and comes complete with animations to show how they work
14:05:52 <oklopol> hmm k
14:05:58 <fizzie> There's also the polarity flip thing, but I'm not sure how notable that is.
14:05:58 <oklopol> well maybe i'll look then
14:06:12 <ais523> so the one that program uses is to try to clear a cell, and change strategy if it doesn't seem to be working
14:06:22 <ais523> fizzie: as in [-]>[+]>?
14:06:24 <ais523> or something else?
14:06:35 <fizzie> No, the sieve/kettle thing.
14:06:54 -!- augur has joined.
14:07:02 <ais523> oh right, I didn't mention tournament rules at all, but it's much the same as the basic two-player rules
14:08:21 <ais523> in order to keep things deterministic, programs are run on all tape lengths, then again with + and - swapped in one of the programs (as otherwise changing the polarity of a program leads to degenerate and boring changes in results)
14:09:13 <oklopol> idgi
14:09:32 <oklopol> "otherwise changing"?
14:10:17 <ais523> as otherwise (changing the polarity of a program)
14:10:21 <ais523> I think you misparsed the sentence
14:10:23 -!- augur has quit (Remote host closed the connection).
14:10:52 <oklopol> i tried both parses and didn't get it
14:11:17 <oklopol> what do you mean degenerate and boring changes in results
14:11:54 <ais523> well, say you have a simple program like [>[-]+], and your opponent's using [>[-]-]
14:12:23 <ais523> the opponent's going to win massively, because it takes them 2 cycles to clear each element of your trail, and it takes you 508 cycles to clear each element of theirs
14:12:38 <ais523> if you swap your program into [>[+]-], now it's suddenly the other way round and you win massivelyh
14:12:40 <ais523> *massively
14:12:43 <oklopol> right, that's why i don't see how this kind of thing could work
14:12:43 <ais523> even though it's fundamentally the same program
14:12:59 <ais523> so running with both polarities gets rid of that sort of issue
14:13:04 <oklopol> because there's always a strategy that beats everything sofar
14:13:10 -!- augur has joined.
14:13:26 <oklopol> and it's trivial to find one
14:13:31 <oklopol> i mean surely this can't be the case
14:13:41 <ais523> no, beating every other existing program is very rare
14:13:51 <ais523> although admittedly, I've done it twice recently
14:13:53 <oklopol> in any case, any single one you wish to beat
14:14:04 <ais523> beating a single program is generally quite easy, yes
14:14:10 <ais523> but it's normally at the cost of making you lose to everything else
14:16:36 <coppro> the US is literally going to tear itself apart
14:16:43 <ais523> over what?
14:16:49 <oklopol> so how can you spend 4000 cycles in a clear and then stop
14:16:52 <coppro> the political divide keeps widening
14:17:05 <coppro> eventually the two sides won't be able to coexist at this rate
14:17:39 <ais523> even though the actual two main parties are very similar
14:18:08 <coppro> they are similar in policy, but they hate each other
14:18:15 <oklopol> wouldn't a bf joust be fun where YOU are the program, on each level you have a bf joust opponent and you don't know its code
14:18:17 <coppro> and they differ on key points
14:18:23 <ais523> oklopol: the code's kind-of complex; in slowpoke the operative code is ((+)*9[-[-([-[-{[...+[...+]]>}]][+--[+--]]>(+)*9)%1000]]>)*21
14:18:23 <oklopol> ofc, would need to have some sort of fast forward
14:18:43 <ais523> which is heavily compressed, as usual
14:18:48 <ais523> it'd be kilobytes long if written out in full
14:19:08 <ais523> although ofc the preprocessor doesn't add to the power of the language, just makes programs shorter and easier to read
14:19:09 <oklopol> and so why does that win the program that walks 9 and starts emptying?
14:19:19 <ais523> it doesn't, by itself
14:19:35 <ais523> slowpoke does a lot of other stuff first in order to slow the opponent down
14:19:42 <oklopol> okay...
14:19:43 <ais523> so it can get away with a slightly slower clear loop
14:28:01 -!- BeholdMyGlory has joined.
14:39:58 <ais523> Gregor: where'd EgoBot go?
14:40:52 <fizzie> You're just BURNING to submit your new killer program, aren't you?-)
14:44:29 <ais523> <Slashdot> 0ryan0 writes "Utah lawmakers passed a bill today to force public school teachers to teach that the USA is a republic, not a democracy, because a "Democracy" would have "Democrat" in it.
14:44:30 <ais523> fizzie: yes
14:45:02 <fizzie> Gregor really should carry an "Egobot Emergency" pager around.
14:45:07 <ais523> coppro: oh, btw, there are some signs of that voting reform thing in the UK; I haven't heard anything about it officially or on the news, but I've seen a couple of adverts trying to persuade me to vote in a particular way on AV
14:46:23 <ais523> hmm, opinions on http://esolangs.org/wiki/Java' and http://esolangs.org/wiki/Java''?
14:46:33 <ais523> someone just created them, and I'm not sure how to react
14:49:06 <ais523> gah at LtU/proggit claiming that HTML5/CSS3 is TC based on a finite rule 110 example
14:49:17 <ais523> rule 110 is only TC if given an infinitely long initialisation
14:49:29 <ais523> it /definitely/ isn't TC given only a finite playfield, for really obvious reasons
14:52:47 <oklopol> yeah it easily follows from ramsey theory
14:53:36 <oklopol> ais523: remove them, clearly we aren't in on the joke, whatever it is.
14:55:47 <ais523> I think it's an attempt to create an esolang by removing a feature of a language that's essential to its existence
14:56:02 <ais523> because in Java everything inherits from something other than Object, if you remove Object, the idea is that you wouldn't get a language at all
14:56:21 <ais523> but I think the page is an attempt to argue that it's still TC anyway
14:57:18 <oklopol> okay, even i get it now
14:57:47 -!- oerjan has joined.
14:58:00 <coppro> ais523: oh, cool. referendum then?
14:58:08 <ais523> yep, by the look of it
14:58:15 <ais523> although I haven't heard anything "official"
14:58:24 <coppro> a quick google says it's set for may 5
14:58:50 <coppro> http://everything2.com/user/Auduster/writeups/The+UK+Alternative+Vote+Referendum%252C+2011
14:59:11 <ais523> wow the adverts are early in that case
14:59:59 * coppro casts vote FOR times a billion
15:01:34 <coppro> ais523, ehird: I consider it your duty to explain to people why this doesn't suck
15:01:39 <coppro> and try to get as many votes for it as possible
15:01:49 <coppro> people are dumb and will probably naturally oppose it
15:02:07 <ais523> I need to check to make sure that it doesn't suck myself, first
15:02:18 <ais523> good ideas with terrible implementations is something that the government does quite a lot
15:02:29 <ais523> and I haven't looked at the details of what's being suggested
15:04:36 <coppro> AFAICT it just changes the balloting system from FPTP to instant-runoff
15:05:10 <coppro> not quite a proportional system, but infinitely superior
15:05:25 <ais523> what sort of instant runoff? the French system whereby there's a second ballot with the top two candidates? that one's insane
15:05:47 <ais523> or the system by which you enter preferences, and it repeatedly eliminates the candidate with the fewest first choices then recalculates the ballot?
15:05:51 <coppro> that one
15:05:55 <coppro> the former is not instant
15:06:03 <ais523> ah, I see
15:06:11 <ais523> so it's actually instant n-minus-1 runoffs
15:06:16 <coppro> yeah
15:06:21 <ais523> ofc the second method isn't instant in the UK either, votes are counted by hand by volunteers
15:06:43 <coppro> it just means there isn't a second round of balloting
15:07:55 <coppro> hand counting is good
15:08:00 <coppro> also bad
15:08:01 <coppro> but also good
15:08:57 <coppro> I also really like the Condorcet method
15:09:19 <coppro> (the winner is the one who would beat everyone else in a runoff)
15:09:27 <ais523> sometimes not producing a result is not really ideal for typical elections
15:09:37 <ais523> although condorcet + tiebreak for when that happens is used in several open source project elections, IIRC
15:11:00 <coppro> yeah, a tiebreak should be used
15:11:23 -!- Sgeo has joined.
15:11:26 <oklopol> what does it matter what is used?
15:11:42 <coppro> oklopol: The balloting system is vital
15:11:49 <coppro> FPTP favors established parties
15:11:50 <oklopol> uhhuh.
15:11:53 <oklopol> ah
15:11:57 <oklopol> well right, that kinda thing
15:12:23 <coppro> FPTP also means that in a highly fragmented riding, the winner may not be the least objectionable alternative
15:12:49 <coppro> instant-runoff and condorcet systems are primarily aimed at picking as a winner the least objectionable alternative
15:13:39 <oklopol> ah that kind of thing as well
15:13:52 <oerjan> hitler loved FPTP!
15:14:07 <oklopol> and i love hitler, but love isn't transitive.
15:14:12 <coppro> this is actually really significant here in Canada, actually
15:14:32 <coppro> outside of Quebec, there are two big parties (liberals and conservatives) and a third party (the NDP) who win seats
15:14:37 <oklopol> oh how i wish it was commutative :'(
15:15:05 <oklopol> i don't actually wish that but that what a poetic thing to say.
15:15:09 <coppro> NDP and Liberal supporters tend to be far closer toghether where the Conservative supporters are a completely different camp
15:15:35 <coppro> in practice, many NDP supporters vote strategically for the Liberals
15:16:11 <coppro> in the riding I'm currently living in, the Conservative candidate won last election by 17 (yes, you read that right) votes
15:16:18 <coppro> he would have lost in any other form of balloting
15:16:29 <oerjan> oklopol: itym symmetric
15:16:41 <oklopol> yes!
15:16:48 <oklopol> well not necessarily
15:16:52 <oklopol> commutative works too
15:17:00 <oklopol> but maybe i should specify a bit more then
15:17:03 <oerjan> um this is a relation not an operator
15:17:20 <oklopol> why not
15:17:27 <oklopol> i'll just union with bools
15:17:40 <oklopol> right eh? :DSSSSSSSSSSSSSSSSS
15:18:59 <oklopol> the image is in 0, 1, and 0 is a zero element, then commutativity = symmetry right
15:19:09 <oklopol> if 1 = relation exists
15:20:54 <oerjan> i think there's some technical reason why that's bad to do in foundations
15:21:39 <oklopol> (aRb => a*b = 1 = b*a => bRa; a*b = 1 implies aRb => bRa => b*a = 1, and b*a = 1 implies a*b = 1)
15:21:52 <coppro> because relations are properties that have to be taken, fundamentally, as axiomatic
15:22:03 <oklopol> erm what
15:22:40 <oklopol> relations are subsets of a cartesian product
15:22:53 <oklopol> are you saying
15:22:54 -!- ais523 has quit (Remote host closed the connection).
15:23:15 <oklopol> if we define the set {(0, 1)}, then 0 and 1 are axiomatically in a relation
15:23:44 <oerjan> the relations are at the bottom in logic, before you even start defining sets
15:23:50 <oklopol> nope
15:24:12 <oklopol> well okay, but you'll have to buy me a beer.
15:24:49 <oklopol> anyhow i don't care what you start with, that's not what i mean by a relation
15:24:58 <oklopol> by a relation, i mean a subset of a cartesian product
15:25:16 <oerjan> O KAY
15:25:22 <oklopol> itym stdlib.relation
15:25:37 <oklopol> prelude.relation
15:26:17 <oerjan> WHO MADE A MODULE SYSTEM FOR MATH
15:26:21 -!- Mannerisky has joined.
15:27:06 <oklopol> so what's the difference between a relation and a set?
15:27:17 <oklopol> i mean
15:27:32 <oklopol> assuming a relation can have any arity, i still don't know what your definition is
15:27:46 <oklopol> i've always taken sets as axiomatic
15:29:07 -!- Mathnerd314 has joined.
15:29:29 <oklopol> and what do you call a subset of a cartesian product then?
15:29:38 <oklopol> functions are not relations?
15:29:41 <oerjan> i was thinking of predicates, i guess
15:29:51 -!- Sgeo has quit (Read error: Connection reset by peer).
15:29:58 <oklopol> oh.
15:31:37 <oklopol> it is my understanding predicates are something more technical than sets, and i do not speak of them because i don't have any idea what they are
15:32:45 <oklopol> i assume the fundamental stuff is pretty trivial and stupid, but i would certainly like to learn that stuff
15:35:39 <coppro> ais523: http://www.bbc.co.uk/news/uk-politics-11243595
15:35:41 <coppro> <3 BBC
15:35:50 <coppro> ooh, it's binding too
15:35:53 <coppro> that's good
15:36:39 <Zwaarddijk> so england is getting into a rotten-boroughs like situation again?
15:36:42 <Zwaarddijk> altho' without the bribes
15:37:19 <coppro> no
15:37:27 <coppro> it's just the issue that fptp sucks
15:41:28 <Zwaarddijk> cool typo in the article
15:41:38 <Zwaarddijk> I have a feeling switching to AV will cost more than $156
15:41:43 <Zwaarddijk> whoops wrong key
15:41:46 <Zwaarddijk> £156
15:45:12 -!- oerjan has quit (Remote host closed the connection).
15:45:24 <oklopol> :o
15:45:25 <oklopol> gone
16:20:03 -!- augur has quit (Remote host closed the connection).
16:24:02 -!- augur has joined.
16:36:56 -!- ais523 has joined.
16:42:56 -!- BeholdMyGlory has quit (Read error: Operation timed out).
16:43:04 -!- Behold has joined.
16:43:06 -!- Behold has quit (Changing host).
16:43:07 -!- Behold has joined.
16:55:49 -!- azaq23 has joined.
16:55:59 <quintopia> can poll(2) be used to detect changes to named semaphores?
16:57:33 -!- elliott has joined.
16:58:39 <elliott> 06:06:07 <Sgeo> cheater00, BTW, I decided to do my own thing. While I'm not thrilled with the outcome, I'm pretty sure I like it better than the probable outcome of doing what you suggested
16:58:40 <elliott> 06:07:07 <cheater00> Sgeo: are you trying to prove you're a non-lobotomised human with own thoughts?
16:58:40 <elliott> 06:07:44 <cheater00> Sgeo: i'm asking because it's the third or fourth time you're mentioning you'll do something else, and it seems like over-compensating.
16:58:44 <elliott> Sgeo: troll. feeding. stop.
16:59:56 <quintopia> elliott: can poll(2) be used to detect a change in a list of named semaphores? i can't seem to find an answer to this question anywhere.
17:00:24 <elliott> quintopia: dunno, I tend to avoid bugs like that (POSIX anythings)
17:00:37 <elliott> um do semaphors actually have fds?
17:00:40 <elliott> *semaphores
17:00:43 <elliott> oh named
17:00:43 <elliott> so yes
17:00:56 <elliott> quintopia: "poll() performs a similar task to select(2): it waits for one of a set of file descriptors to become ready to perform I/O."
17:01:00 <elliott> quintopia: do read() and write() work on them?
17:01:48 <elliott> 14:37:26 <ais523> I fear the strategy shown there may have actually broken BF Joust somewhat, it appears to be more or less completely fatal to defence programs
17:01:48 <elliott> argh
17:02:01 <quintopia> well, i don't know. i only know that the sem_ functions work on them. i suppose you could always read a semaphores value though.
17:02:18 <oklopol> elliott!
17:02:25 <elliott> oklopol: hiiiii
17:02:30 <elliott> quintopia: then it might work. TIAS.
17:02:30 <ais523> elliott: don't worry, I thought of a way to defend against them on the way home
17:02:35 <elliott> ais523: phew
17:02:35 <ais523> although I'm not sure it's practical, at least it exists
17:02:57 <ais523> but I'm still worried it may make defence programs not really worth it
17:03:00 <oklopol> do you need aoc to prove its existance
17:03:22 <elliott> oklopol: are you trolling with this "BF JOUST CAN'T POSSIBLY WORK" stuff in the logs :)
17:03:25 <ais523> ofc, if it drives defence programs out of existence, there'll be no reason to use it, especially as it makes you weaker against opposing non-defence programs
17:03:28 <oklopol> elliott: not really
17:03:32 <oklopol> i don't get it at all
17:03:38 <ais523> elliott: I think he just made the same mistake as Gregor
17:03:46 <elliott> oklopol: it's trivial to beat any given program, but you don't just play against one program
17:03:48 <ais523> i.e. concluding that a game in which there was a counter to every strategy wasn't interesting
17:03:50 <elliott> you play against an entire hill
17:04:05 <elliott> so you can't just target one, because everything else will beat you
17:04:07 <ais523> my opinions are the other way round, games in which there's a strategy that can't be countered aren't interesting!
17:04:47 <oklopol> no i think a random program will beat every program with equal probability, as long as it's the correct kind of random
17:04:51 <oklopol> but maybe there's no such kind
17:04:55 <ais523> it won't
17:04:57 <elliott> err, no
17:05:06 <ais523> a random program would lose to even a very simple attacker
17:05:19 <ais523> due to not aiming for a win condition, whereas the attacker would be
17:05:27 <oklopol> erm, what if it's the kind of random that only produces your unbeatable program?
17:05:35 <oklopol> i'm not saying a random bf program wins everything
17:05:44 <elliott> oklopol: http://esolangs.org/wiki/BF_Joust_strategies#2011 you may want to read the defend13, furry_furry_leather_discipline_girls and -strapon_pegging_girls, and waterfall3 entries
17:05:49 <oklopol> i'm saying something really vague and meaningless
17:05:50 <ais523> my program isn't unbeatable, it just wins against everything on the hill atm
17:05:59 <elliott> there's also allegro, current top of the egobot hill, but without explanation
17:06:14 <ais523> although I am seeing worrying centralisation; slowpoke, space_elevator, and FFSPG are quite similar
17:06:21 <ais523> although the details are different
17:06:37 <ais523> the funny thing about slowpoke is that it was beating all but 3 programs more or less immediately upon writing it
17:06:44 <ais523> and then beat all the rest with merely bugfixes
17:06:47 <elliott> yah i would have told oklopol to read the space_elevator entry but nobody will ever write one
17:06:56 <elliott> ais523: btw, shrink your waterfall3 description, it's tl;dr verbose :)
17:07:01 <ais523> I did some constant-tweaking, but only for increasing the victory margin
17:07:01 <elliott> ais523: (quintopia wanted to put it in a spoiler block)
17:07:07 <ais523> elliott: heh
17:07:30 <ais523> the issue is, any abbreviation would come to "Tries lots of different locks, trying a new one every time a previous one fails"
17:07:38 <ais523> which isn't particularly informative
17:07:47 <ais523> the reason it's so long is that it has so many control paths, all of which do different things
17:08:05 <oklopol> what's the cycle limit?
17:08:06 <elliott> 15:25:57 <ais523> coppro: oh, btw, there are some signs of that voting reform thing in the UK; I haven't heard anything about it officially or on the news, but I've seen a couple of adverts trying to persuade me to vote in a particular way on AV
17:08:07 <elliott> AV is just instant-runoff
17:08:23 <elliott> and thus far superior to first-past-the-post
17:08:30 <ais523> elliott: yes, but I'd heard multiple definitions of instant-runoff
17:08:33 <elliott> http://en.wikipedia.org/wiki/Instant-runoff_voting :-P
17:08:43 <ais523> also, I still need to see the details to be convinced that the way it's implemented isn't insane
17:08:59 <elliott> ais523: can't be any more insane than our current system.
17:09:09 <ais523> I'm not quite sure how the government could mess it up, but am not convinced that they won't find a way anyway
17:09:15 <elliott> 15:29:56 <ais523> gah at LtU/proggit claiming that HTML5/CSS3 is TC based on a finite rule 110 example
17:09:15 <elliott> 15:30:06 <ais523> rule 110 is only TC if given an infinitely long initialisation
17:09:15 <elliott> sigh
17:09:23 <elliott> what happened, LtU :(
17:09:46 <elliott> ais523: re Java' and Java'': remove them, they're not even fleshed out/coherent enough to be joke language entries
17:10:06 <elliott> or add [[Category:Shameful]]
17:10:11 <oklopol> :D
17:10:17 <elliott> which -- ha -- has still avoided Graue rage
17:10:39 <ais523> adding [[Category:Shameful]] is a good idea, but someone else can do that
17:10:51 <elliott> let's add it to every BF derivative
17:10:52 <elliott> including BF
17:11:10 <ais523> elliott: that incident (the CSS rule 110) made me register a reddit account just to try to correct people
17:11:17 <ais523> I should have made it a novelty account, really
17:11:25 <ais523> your_system_is_not_turing_complete or something
17:11:28 <elliott> ais523: Turing_Completeness_Does_Not_Work_That_Way? :p
17:11:33 <elliott> worst novelty account ever
17:11:43 * elliott immediately buys ais523 reddit gold (not really)
17:11:51 <elliott> 36 months of it for $89.97!
17:12:06 <elliott> ais523: wow at the reply to http://www.reddit.com/r/programming/comments/g0d5g/breaking_news_html5css3_is_turing_complete/c1k03fg?context=3
17:12:10 <elliott> WebForms 2: TURING COMPLETE
17:12:42 <elliott> 15:42:24 <coppro> ais523, ehird: I consider it your duty to explain to people why this doesn't suck
17:12:42 <elliott> 15:42:30 <coppro> and try to get as many votes for it as possible
17:12:42 <elliott> 15:42:39 <coppro> people are dumb and will probably naturally oppose it
17:12:48 <ais523> what is reddit gold anyway?
17:12:51 <elliott> coppro: the standard propaganda against is "ONE PERSON, ONE VOTE: THAT'S DEMOCRACY!"
17:13:10 <ais523> elliott: actually, the adverts here are mostly along the lines of "it's too expensive and won't make any difference"
17:13:12 <elliott> ais523: Condé Nast's desperate attempt at making money off its unwise purchase
17:13:15 <oklopol> *republicacy
17:13:29 <elliott> We plan to continually add features over time. Right now we're offering:
17:13:29 <elliott> A trophy on your userpage
17:13:29 <elliott> The ability to turn off sidebar ads, sponsored links, both, or neither
17:13:29 <elliott> The option of seeing twice as many comments at once without having to click "load more comments"
17:13:29 <elliott> New comment highlighting: see what's been posted since the last time you visited a thread
17:13:30 <elliott> Friends with Benefits™ -- you can add notes to your friends to help you keep track of them all
17:13:32 <elliott> Access to a super-secret members-only community that may or may not exist
17:13:36 <elliott> A thank-you note
17:14:16 <oklopol> def worth the moneys
17:14:44 <ais523> that reminds me of slashdot subscriptions
17:15:03 <elliott> ais523: I know how to ensure AV passes!
17:15:19 <ais523> the funny thing is, on slashdot the main subscription-only feature (turning off adverts) is available to anyone with sufficient karma
17:15:29 <elliott> use the Overton window: run adverts advocating stochastic elections
17:15:40 <elliott> immediately, AV seems like the most safe, comforting system on the planet
17:15:57 <ais523> haha
17:16:07 <ais523> even though stochastic elections would probably produce better results in practice?
17:16:11 <elliott> ais523: yep
17:16:38 <elliott> (I believe it's an Actual Theorem Fact(TM) that the only system where voting for your true preference is always the rational decision is stochastic elections)
17:16:46 <Gregor> My advisor points out that if you speak French better than you speak typography lingo, then "Comic Sans" reads as "not funny"
17:16:58 <elliott> Comic Sans as typography lingo... I weep
17:17:07 <Gregor> "Sans" as typography lingo
17:17:12 <elliott> 15:54:58 <oklopol> and i love hitler, but love isn't transitive.
17:17:12 <elliott> 15:55:28 <oklopol> oh how i wish it was commutative :'(
17:17:12 <elliott> 15:55:56 <oklopol> i don't actually wish that but that what a poetic thing to say.
17:17:22 <Gregor> Since of course it just means "without", but is implied to mean sans serif.
17:17:24 <elliott> But that what a poetic thing to say, oklopol.
17:17:29 <elliott> Gregor: Okay, FONTophile
17:17:36 <Gregor> ... yeah.
17:17:42 <elliott> 15:57:20 <oerjan> oklopol: itym symmetric
17:17:42 <elliott> 15:57:32 <oklopol> yes!
17:17:42 <elliott> 15:57:38 <oklopol> well not necessarily
17:17:42 <elliott> 15:57:43 <oklopol> commutative works too
17:17:42 <elliott> 15:57:51 <oklopol> but maybe i should specify a bit more then
17:17:43 <elliott> 15:57:54 <oerjan> um this is a relation not an operator
17:17:45 <elliott> 15:58:11 <oklopol> why not
17:17:47 <elliott> 15:58:17 <oklopol> i'll just union with bools
17:17:49 <elliott> 15:58:31 <oklopol> right eh? :DSSSSSSSSSSSSSSSSS
17:17:51 <elliott> can't paste all of this
17:17:52 <oklopol> elliott: (
17:17:53 <elliott> it's too funny
17:17:55 <elliott> but too long
17:17:58 <elliott> oklopol: )
17:18:40 <oklopol> i made oerjan leave by asking him about predicate logic in pm :(
17:18:45 <oklopol> i think he doesn't like me anymore
17:18:47 <elliott> 16:22:20 <Zwaarddijk> cool typo in the article
17:18:47 <elliott> 16:22:30 <Zwaarddijk> I have a feeling switching to AV will cost more than $156
17:18:47 <elliott> 16:22:35 <Zwaarddijk> whoops wrong key
17:18:47 <elliott> 16:22:37 <Zwaarddijk> £156
17:18:55 <elliott> Zwaarddijk: nah, that's like $384,172,489,189
17:18:57 <oklopol> maybe predicate logic is his one weakness
17:19:10 <elliott> oklopol: it is
17:19:16 <elliott> he's crying now
17:20:39 <elliott> ais523: terrifying idea: get zzo38 to play Agora
17:21:37 <oklopol> so this asbestos thing, is it all a big hoax? we rented this... thing, and there are these asbestos pipes that are rather decayed, and people have drilled huge holes in them
17:21:56 <elliott> oklopol: it's a big hoax, if hoax is defined as absolutely not a hoax
17:22:04 <elliott> also, I'm scared that you can't think of a better word than "thing".
17:22:23 <oklopol> well we rented an official office
17:22:33 <oklopol> :D
17:22:39 <elliott> how much money do you bastards have anyway
17:22:50 <oklopol> we work, so... incredible amounts?
17:22:57 <ais523> oklopol: asbestos particles in the air do gradual irreversible lung damage
17:22:58 <elliott> UNTOLD RICHES
17:23:06 <elliott> ais523: it's ok, oklopol is immune to lung damage
17:23:06 <oklopol> i manage to use about a fifth of my salary
17:23:11 <ais523> solid asbestos in itself isn't dangerous unless something releases it into the air, I think
17:23:15 <oklopol> and i get less salary than people usually do
17:23:16 <Gregor> oklopol has no lungs.
17:23:18 <elliott> oklopol: just allocate the rest to hookers and cocaine
17:23:22 <elliott> full salary utilisation
17:23:31 <elliott> Gregor: plausible
17:23:47 <Gregor> oklopol is a sophisticated chatterbot.
17:23:49 <oklopol> ais523: i'm aware, but to what extent? and is it enough to have pipes with a few holes?
17:24:08 <elliott> oklopol: have you ever been sick
17:24:28 <elliott> ais523: "Nope. While this very clever person was able to create a Turing-complete machine in HTML and CSS, it doesn't run by itself. The user has to repeatedly click to step it."
17:24:29 <oklopol> we have pointed the pipes out to many people in the building who should be in charge of this sort of thing, and they're like "oh, asbestos, right, maybe someone should do something about that."
17:24:35 <ais523> oklopol: I don't know either
17:24:35 <elliott> ais523: so HTML/CSS is as powerful as a single regexp :P
17:24:35 <oklopol> "i'm gonna go home now, have fun here"
17:24:39 <elliott> ais523: with a "do it again" button
17:24:43 <elliott> except that it can't grow
17:24:46 <elliott> so it's less powerful
17:24:47 <elliott> or whatever
17:24:47 <elliott> fff
17:24:48 <elliott> i dunno
17:24:52 <Gregor> elliott: ... HTML + CSS is TC? *brain axplote*
17:24:56 <elliott> Gregor: FFS
17:24:57 <ais523> Gregor: it isn't
17:25:02 <ais523> both reddit and LtU are trying to claim it is
17:25:07 <ais523> and I'm trying to explain the holes in the proof
17:25:12 <elliott> it's rule 110; not only do you have to click to step, but it's finite
17:25:14 <Gregor> OK, good :P
17:25:16 <Gregor> It oughtn't to be :P
17:25:21 <Gregor> It's finite? BORING
17:25:29 <ais523> there are a huge number, but the one I mentioned was the one that Wolfram got wrong in his own proof that a 2,5 machine was TC (it is, but the proof it was was wrong)
17:25:40 <ais523> elliott: it isn't actually click to step
17:25:40 <oklopol> "[20:05:18] <elliott> oklopol: have you ever been sick" <<< yes, i'm sick occasionally
17:25:45 <ais523> you step by pressing tab and space alternately
17:25:46 <elliott> ais523: well, it's press buttons to step
17:25:51 <elliott> oklopol: you sure??
17:26:34 <ais523> "keys", presumably
17:26:44 <ais523> I think of buttons as referring to mice
17:27:07 <oklopol> elliott: i even had a headache today
17:27:14 <elliott> oklopol: wow
17:27:19 <elliott> ais523: yes yes
17:28:38 -!- pikhq_ has joined.
17:28:46 -!- pikhq has quit (Ping timeout: 260 seconds).
17:28:48 <elliott> i'm trying to figure out what the worst program is, anyone have any opinions
17:30:15 <ais523> what, in general?
17:31:01 <ais523> "worst program" needs to have some set of programs to find the worst of
17:31:06 <ais523> do you mean "all programs ever written"?
17:31:25 <oklopol> all programs in existence
17:33:46 <Ilari> APNIC down 0.09: 256k+3x128k+4x64k+2x32k to China, 2x256k to Malaysia, 64k+8k+/32 to South Korea, 16k to Singapore, 4k to Taiwan, 4k+2k to Japan, 4k+1k+2x/32+/48 to Australia, 512+/48 to Indonesia,
17:34:31 <Gregor> SimTunes
17:34:51 <elliott> ais523: hmm, not sure
17:34:58 <elliott> ais523: either all programs that anyone uses any more, or all programs ever written
17:34:59 <Gregor> Big Rigs
17:35:06 <elliott> and badness is defined by the amount of pain it causes
17:35:15 <Gregor> That is, Big Rigs: Over the Road Racing
17:35:18 <elliott> i.e. a really blandly terrible program doesn't really count as worse
17:35:20 <quintopia> where is fizzie :(
17:35:23 <elliott> because nobody will bother using it
17:35:38 <elliott> my contender is X11, because every Unix user has to deal with it :)
17:36:21 <Gregor> Not even close, X11 nowadays is basically just bloated by history, you can do SO MUCH WORSE.
17:36:39 <quintopia> i'm going to go with with...the entire windows operating system. it causes pain to far more people.
17:37:42 <elliott> Gregor: Uhh, no, X11 was pretty thoroughly terrible from the start. :p
17:38:00 <Gregor> elliott: BlahblahblahIwurvetrollingXyaaay
17:38:12 <elliott> quintopia: hmm, does Windows cause the problems, or does the malware?
17:38:33 <oklopol> Ilari: you prolly know everything about asbestos btw?
17:38:54 <quintopia> elliott: what's the difference again?
17:39:10 <elliott> quintopia: har har har
17:39:29 <fizzie> "You don't pay for the malware", isn't that the canonical response?
17:40:12 <Ilari> oklopol: Not really... But you can ask.
17:40:33 <oklopol> http://i55.tinypic.com/140j8js.png here's the pipe in question
17:41:08 <oklopol> Ilari: mainly, should we be at all worried about asbestos pipes that are in very bad shape, or only if we actually start cutting them
17:41:25 <oklopol> i can imagine balls may fly at them etc
17:41:52 <elliott> oklopol: that pipe looks like THE SAFEST THING
17:41:59 <Ilari> oklopol: Only if you start cutting them.
17:42:30 <Ilari> But of course, if they are in very bad shape, soon somebody might start cutting them. :-/
17:42:45 <oklopol> Ilari: did you look at the picture? :P
17:43:04 <oklopol> you touch that thing and all kinds of stuff falls down
17:43:54 <Ilari> What falls down is likely just paint.
17:44:07 <oklopol> yeah
17:44:19 <elliott> Asbestopaint
17:44:30 <oklopol> second question, that doesn't look very professionally done, is there a chance of redidual dust stuff still being in the air?
17:44:39 <elliott> yes. there is all the chances.
17:44:55 <elliott> all of them.
17:45:02 <oklopol> even after X years, where X can be determined to be rather big from the pic
17:45:20 <oklopol> elliott: the air changes all the time, and the particles are practically weightless
17:45:33 <elliott> ALL
17:45:34 <elliott> THE CHANCES
17:45:39 <elliott> the chances... are not bounded.
17:45:49 <quintopia> oklopol: you can get a lot of money suing if you contract mesothelioma
17:45:51 <oklopol> so it's clear that they leave, but if you had 3% of them originally, and say 0.000001% is fatal, then again hard to say.
17:46:04 <elliott> quintopia: didn't you hear
17:46:07 <elliott> he already has all the money.
17:46:13 <Vorpal> quintopia, on the other hand, having that condition is probably not worth that money
17:46:17 <oklopol> quintopia: i'm sure i'll be have all the money i need in 10-40 years
17:46:28 <oklopol> when you'll see the first symptoms
17:46:45 <quintopia> elliott: no you have all the money. all the ZWD in zimbabwe!
17:46:49 <Ilari> I have never heard of asbestos paint. Asbestos generally isn't used that way.
17:46:51 <elliott> EVERYONE HAS ALL THE MONEY.
17:47:01 <elliott> poverty isn't real.
17:47:12 <oklopol> asbestos is used in all kinds of stuff afaiu
17:47:16 <Vorpal> <Ilari> APNIC down 0.09 [...] <-- compared to when?
17:47:21 <oklopol> in walls, in pipes, in glues
17:47:22 <elliott> there's a reason tey call it as-best-os
17:47:25 <Ilari> Yesterday.
17:47:32 <Vorpal> Ilari, okay that's pretty large
17:47:35 <elliott> *they
17:47:36 <oklopol> elliott: there's a city named something liek that
17:47:53 <elliott> so oklopol, is your os done yet, ubuntu is annoying
17:47:54 <oklopol> there's this van of AsBestMen in the parking lot of that place :P
17:48:03 <quintopia> if everyone has all the money, how come bill gates gets to decide what to do with so much of it, and i get to decide what to do with so little of it?
17:48:06 <Vorpal> oklopol, not any longer. At least in Sweden it has been banned for new installations for several years.
17:48:12 <elliott> quintopia: you just have to use all the money.
17:48:34 <oklopol> Vorpal: here too i think, but it's still in use in practically every building that's done before 90's
17:48:45 <oklopol> especially 60-70
17:48:55 <oklopol> )before that there was no buildings probably)
17:48:56 <Vorpal> <elliott> so oklopol, is your os done yet, ubuntu is annoying <-- he is making one? But surely you would only find your own one usable?
17:48:58 <oklopol> *(
17:49:06 <Vorpal> oklopol, yeah same
17:49:09 <oklopol> oh i'm making one with fine fine progress
17:49:18 <elliott> Vorpal: he pretended he was going to make one years ago ;D
17:49:25 <elliott> and, well, it'd be close enough. to develop @ on.
17:49:39 <elliott> <oklopol> )before that there was no buildings probably)
17:49:39 <elliott> :D
17:49:56 <oklopol> when were buildings invented anyway?
17:49:56 <quintopia> what is @ again?
17:50:02 <Vorpal> <elliott> Vorpal: he pretended he was going to make one years ago ;D <-- sounds familiar... hm... Oh wait, I was thinking of you...
17:50:25 <oklopol> i made a lot of theoretical progress on my os
17:51:14 <Vorpal> oklopol, nice. I don't remember what made your OS different from previous ones. Could you please mention the main points of it?
17:51:15 <elliott> quintopia: the best OS possible
17:51:30 <elliott> Vorpal: it was oklotalk and you just manipulated objects from the interwebs.
17:51:30 <elliott> woo
17:51:32 <quintopia> elliott: the best at achieving which goals?
17:51:33 <elliott> (had to try and do it in one sentence)
17:51:34 <oklopol> Vorpal: well you know, perfection and stuff.
17:51:37 <elliott> (some accuracy may be lost)
17:51:39 <elliott> quintopia: all goals.
17:51:41 <Vorpal> oklopol, heh
17:52:01 <Vorpal> elliott, and that is why it fails. You have god damn first system syndrome.
17:52:09 <Zwaarddijk> oklopol: buildings go back to 7000BCE at least, iirc?
17:52:15 <quintopia> elliott: will it get me sex with all the best-looking ladies?
17:52:15 <Ilari> oklopol: Looks like that pipe leaks a bit around the valve and that's the reason why that paint has peeled away.
17:52:21 <elliott> quintopia: yes.
17:52:23 <oklopol> my only programming goal atm is to make a nice text editor
17:52:27 <elliott> Vorpal: no i don't, i just haven't put in all the things that break it
17:52:38 <elliott> oklopol: hey i did that a while ago :/
17:52:47 <elliott> it wss awesome but i never finished. also, you'd probably hate it.
17:52:49 <Vorpal> elliott, such as?
17:52:55 <elliott> Vorpal: almost everything
17:53:11 <Vorpal> elliott, so it is a minimalist OS?
17:53:33 <oklopol> elliott: you probably didn't make the kind of text editor i want
17:53:41 <elliott> Vorpal: http://tunes.org/ <-- let a web server spend hours talking to you instead
17:53:43 <elliott> close enough.
17:53:48 <oklopol> and i'm not interested in going into detail on that
17:53:55 <Zwaarddijk> oklopol: apparently, buildings go at least 42k years back
17:54:00 <oklopol> because it's not really a top priority
17:54:15 <elliott> oklopol: it was just a big window of text where every single change got saved automatically, it indented for you, and it made the file all pretty colours.
17:54:20 <oklopol> Zwaarddijk: i don't do si, is 42k before or after the 60's?
17:54:20 <elliott> so pretty much perfect
17:54:37 <oklopol> elliott: that's kind of 90.
17:54:38 <oklopol> 's
17:54:48 <oklopol> mine is more like 42k's
17:54:53 <elliott> oklopol: no, most 90s editors had menus and toolbars and shit
17:54:58 <oklopol> oh lol
17:55:00 <oklopol> that stuff
17:55:04 <oklopol> hahahahahaha
17:55:05 <oklopol> noobs
17:55:30 <oklopol> Ilari: perhaps, perhaps. the surface under the brown stuff doesn't really look very nice and smooth irl tho
17:55:38 <elliott> oklopol: the other features of mine were: non-stupid searching, and you can run some code to do all your boring editing for you :P
17:55:43 <Zwaarddijk> oklopol: scholarly consensus is that Elvis may indeed have left some building at some point
17:55:43 <elliott> who needs regexps when you can just use the language's regexp lib
17:55:47 <elliott> *regexp search/replace
17:55:58 <Vorpal> all you need is a text area, a mode line and a minibuffer
17:56:21 <elliott> minibuffers are useless
17:56:22 <elliott> mode lines are useless
17:56:28 <oklopol> elliott: that's still kind of 50's compared to mine
17:56:37 <elliott> oklopol: yah, i'm old skool
17:56:41 <oklopol> mine just has manual editing + magic
17:56:44 <elliott> oklopol: really though, who needs any better until @ exists
17:56:45 <elliott> what's the magic
17:56:50 <oklopol> well that's the great part
17:56:58 <oklopol> i'm not entirely sure myself either
17:57:01 <Vorpal> elliott, so how would you do auto completion in a vt? Pop ups would be kind of messy there
17:57:12 <elliott> Vorpal: vts are useless
17:57:18 <elliott> popups are bad
17:57:29 <elliott> what you should do is just morph the bottom of the screen into the appropriate input form as required.
17:57:32 <Vorpal> elliott, with popups I meant like auto completion menus in GUI IDEs
17:57:36 <Vorpal> hm
17:57:38 <elliott> so like a minibuffer on crack, except not there 99% of the time
17:57:48 <elliott> for completion, sure, you can do that with an intellisense-kinda thing, but whatever, I don't use completion
17:57:49 <Vorpal> elliott, right. Basically auto-hiding mini buffer
17:57:53 <Vorpal> sounds sensible
17:57:55 <elliott> Vorpal: no, minibuffer just does one line of text
17:58:01 <elliott> instead of
17:58:04 <elliott> LOL SEARCH WHAT: ...[RET]
17:58:07 <elliott> LOL REPLACE WITH WHAT: ...[RET]
17:58:10 <elliott> it'd just be
17:58:11 <ais523> the Emacs minibuffer grows to multiple lines if necessary nowadays
17:58:16 <Vorpal> ais523, yep
17:58:16 <elliott> LOL SEARCH: [ ]
17:58:20 <elliott> LOL REPLACE: [ ]
17:58:21 <ais523> but its definition of "necessary" is rather restrited
17:58:24 <ais523> *restricted
17:58:37 <Vorpal> elliott, okay, mutli-line auto hiding mini buffer. Sure.
17:58:48 <elliott> Vorpal: it's not about multiline
17:58:57 <Vorpal> elliott, oh?
17:59:05 <elliott> Vorpal: there's text boxes, that's like saying a preferences dialogue is jus ta bunch of lines
17:59:06 <oklopol> the best text editor would be one where you just hit random keys and magically: the correct thing happens
17:59:08 <elliott> that doesn't even make any sense
17:59:09 <oklopol> i'm aiming for this
17:59:12 <elliott> there could be checkboxes too for instance.
17:59:17 <Vorpal> elliott, uh. Depends on the dialog.
17:59:20 <elliott> e.g. "[ ] Case-insensitive"
17:59:23 <elliott> is that just another input line? no.
17:59:27 <Vorpal> elliott, emacs customisation stuff is just a bunch of lines
17:59:49 <oklopol> [20:40:17] <oklopol> the best text editor would be one where you just hit random keys and magically: the correct thing happens
17:59:49 <oklopol> [20:40:19] <elliott> that doesn't even make any sense
17:59:49 <oklopol> [20:40:20] <oklopol> i'm aiming for this
17:59:54 <oklopol> i should've said the elliott part too
17:59:55 <Vorpal> elliott, also I seen such check boxes in ncurses or similar :P
18:00:08 <elliott> oklopol: lol
18:00:48 <oklopol> that's also how my os works
18:00:50 <Vorpal> <oklopol> [20:40:17] <oklopol> the best text editor would be one where you just hit random keys and magically: the correct thing happens <-- why hit keys at all? I suggest you aim further! It should just make stuff make sense without any input
18:01:00 <oklopol> Vorpal: lol, that's impossible
18:01:09 <oklopol> don't be stupid
18:01:13 <Vorpal> oklopol, not more so than your :P
18:01:23 <oklopol> someone ban this retrad
18:01:27 <Vorpal> heh
18:01:30 <elliott> oklopol: so that mind-interface thing
18:01:32 <elliott> did you ever lern it
18:01:36 <oklopol> :D
18:01:38 <quintopia> oklopol: but you can still do better. have your text editor interface with a webcam. images of the user's face are sufficient input, no?
18:01:39 <Vorpal> elliott, learn*
18:01:45 <elliott> fuck you
18:01:46 <elliott> lern
18:01:53 <oklopol> no when i realized mine was broken and that i was too lazy to send it back, i sort of stopped playing with it
18:01:56 <Vorpal> elliott, hey you correct my spelling quite often
18:02:02 <elliott> i'm spelung how i want
18:02:06 <elliott> oklopol: it was broken?
18:02:12 <Vorpal> elliott, so will I then
18:02:14 <oklopol> only two of the sensors work, and i didn't exactly want any extra challenge
18:02:26 <elliott> oklopol: maybe you're just not trying hard enough
18:02:33 <elliott> oklopol: anyway that'd be a better edit interface
18:02:36 <elliott> think things, magic happens
18:02:40 <oklopol> "[20:42:49] <quintopia> oklopol: but you can still do better. have your text editor interface with a webcam. images of the user's face are sufficient input, no?" <<< yeah but i don't like showing my face to my underlings
18:02:55 <elliott> "By installing Java, you will bea ble to experience the power of Java, brought to you by Oracle."
18:03:43 <elliott> *be able
18:03:47 <elliott> it's still there \o/
18:03:48 <myndzi> |
18:03:48 <myndzi> /<
18:04:28 <elliott> http://ompldr.org/vN3FoMQ
18:11:06 <elliott> oklopol: can i have infinite memory?
18:11:24 <oklopol> here: .
18:12:09 <elliott> oklopol: thx
18:12:31 <quintopia> elliott: i can. i have a stick of RAM with infinitely many bytes, but each byte is half as wide as the preceding one.
18:12:40 <elliott> quintopia: DDR3?
18:12:46 <quintopia> yup
18:13:08 <elliott> quintopia: i'll take it
18:13:24 <quintopia> i can't use it because i don't know what to do with 2^-1024 of a bit. :/
18:17:48 -!- poiuy_qwert has joined.
18:18:18 -!- pikhq_ has quit (Read error: Operation timed out).
18:18:46 -!- pikhq has joined.
18:23:51 -!- poiuy_qwert has quit (Ping timeout: 246 seconds).
18:24:56 -!- poiuy_qwert has joined.
18:28:22 -!- zzo38 has joined.
18:31:29 -!- poiuy_qwert has quit (Quit: This computer has gone to sleep).
18:39:24 <nooga> http://pastie.org/1652618
18:42:17 <elliott> nooga: random c generator again?
18:42:34 <nooga> trying to improve it
18:42:43 <elliott> nooga: please, please write a function to breed two C expressions, and then evolutionify it
18:43:05 <nooga> that'd be cool
18:43:30 <elliott> nooga: try and generate fibonacci :)
18:43:37 <elliott> maybe remove pointers first though, to give it an easier time
18:51:37 <Vorpal> <elliott> nooga: please, please write a function to breed two C expressions, and then evolutionify it <-- would be cool but *how*?
18:51:53 <elliott> Vorpal: just pick some arbitrary combination method :P
18:52:01 <elliott> breeding linear stuff is much easier ofc
18:52:58 <olsner> ooh: https://github.com/elitheeli/oddities/blob/master/rule110-grid.html
18:53:00 <Vorpal> elliott, genetic algorithms are hard to get right even for linear stuff (lots of fudge factors such as population size, mutation rate, and so on). Your suggestion is near impossible.
18:53:14 <elliott> Vorpal: Um, it's not like genetic programming isn't done.
18:53:24 <Vorpal> elliott, indeed. But not on C code!
18:53:27 <elliott> olsner: we've seen; it does not prove TCness of anything
18:53:37 <olsner> yeah, whatever
18:53:41 <elliott> olsner: not only is it finite, but you have to manually step onwards (by that metric, a single regexp is TC)
18:54:45 <Vorpal> elliott, are you sure manually stepping forward a regex would be TC?
18:55:26 <elliott> Vorpal: you can do a BCT step in one regexp... or was it three, anyway, same thing
18:55:29 <elliott> iterated regexp = TC
18:55:38 -!- BeholdMyGlory has joined.
18:55:42 <Vorpal> elliott, heh. Nice.
18:56:00 -!- Behold has quit (Read error: Operation timed out).
18:56:57 <elliott> zzo38: what was that very short code you had for clearing the vga text screen?
18:57:47 <olsner> something involving rep stosd?
18:58:02 <zzo38> elliott: http://sprunge.us/gRUV This boots the operating system too, after clearing the screen.
18:58:24 <zzo38> (Actually it write "p" but you can change it to make it black instead)
18:58:30 <zzo38> (Or any other color)
18:58:35 <elliott> thanks
18:59:11 <zzo38> olsner: It does involve repeat STOSB
19:00:38 <zzo38> elliott: Why do you need this?
19:00:57 <elliott> zzo38: for my one-sector Forth
19:01:00 <elliott> to clear out the screen
19:01:04 <olsner> if you're in real mode, maybe there's a bios call for clearing the screen
19:01:09 <elliott> oh, I think there is
19:01:12 <elliott> arguable whether it's shorter, though
19:01:21 <elliott> hmm, is there a short way to say "move this variable to the next multiple of 80"?
19:01:24 <elliott> *register
19:01:25 <elliott> not variable
19:01:27 <olsner> set ax, int foo, should be pretty short
19:01:32 <elliott> other than div, add
19:02:01 <zzo38> Do the AAM and AAD instructions help?
19:02:46 <elliott> hmm, maybe
19:02:49 <zzo38> Probably you can use BIOS calls for a lot of things, and you should not need any mode other than real mode.
19:03:34 <elliott> olsner: looks like the bios clear screen call takes a ton of parameters
19:03:51 <olsner> too bad...
19:04:34 <Vorpal> elliott, didn't you say 510 bytes? Isn't a sector 512 bytes?
19:05:06 <olsner> the 2 kast bytes must be the correct magic
19:05:09 <olsner> *last
19:05:14 <Vorpal> oh I see
19:05:30 <zzo38> That is, to boot from the disk.
19:05:56 <Vorpal> olsner, doesn't it have to contain a MBR as well+
19:05:58 <Vorpal> s/+/?/
19:06:04 <elliott> no
19:06:05 <olsner> eh, it *is* an MBR
19:06:06 <elliott> only for a hard disk
19:06:09 -!- Lymia has quit (Ping timeout: 248 seconds).
19:06:10 <Vorpal> ah right
19:06:17 <zzo38> No, just the last 2 bytes are necessary for the BIOS to boot from it.
19:06:28 <olsner> but you mean a partition table? no, only if you use partitions :)
19:06:28 <Vorpal> god I hate the PC architecture
19:06:31 <Vorpal> it is such a mean
19:06:37 <Vorpal> mess*
19:06:41 <Vorpal> weird typo
19:07:01 <elliott> hmm, if I pack after displaying, then the code is two bytes shorter
19:07:04 <elliott> but OTOH, everything shows as normal ascii
19:07:12 <elliott> so you have no idea how your word is being tortured :)
19:07:31 <elliott> Vorpal: that's why you should run @/Reduceron
19:07:45 <Vorpal> elliott, awesome...
19:07:58 <zzo38> I guess as long as it is still being unique/OK it can work like packing like that
19:08:02 <Vorpal> elliott, You made a suggestion where one component is technically not vaporware!
19:08:13 <Vorpal> congratulations
19:08:46 <zzo38> You can just use low six bits for packing, and it should be enough, no add/subtraction is necessary.
19:09:24 <zzo38> (and punctuation can be used with no difficulty)
19:09:54 -!- Lymia has joined.
19:09:54 -!- Lymia has quit (Changing host).
19:09:55 -!- Lymia has joined.
19:10:10 <olsner> don't you still want to subtract to get rid of the first 32 characters? the control codes and stuff
19:10:22 <elliott> hmm, now it isn't working :(
19:10:26 <elliott> olsner: subtracting 64
19:10:33 <elliott> for ! I'm going to use ^ :-)
19:10:36 <zzo38> olsner: If you pack only after displaying, no need to subtract anything.
19:10:38 <elliott> (storing 5 bits)
19:10:43 <elliott> olsner: not sure what to use for : and ; though
19:11:35 <zzo38> You are using 0x40 to 0x5F? OK. Perhaps then use [[ and ]] instead of : and ;
19:11:51 <elliott> ah, that could work; except I'm doing it colorForth style, so : and ; don't necessarily balance
19:11:57 <elliott> I might use _ for ;
19:11:59 <elliott> oh, and ` could be :
19:12:10 <zzo38> OK
19:12:13 <elliott> ` hello if _ then loop
19:12:28 <elliott> (same as normal forth : hello if else loop then ; )
19:12:35 <olsner> or ` and , if those are in range?
19:12:40 <olsner> more symmetric
19:12:43 <zzo38> , is not in range
19:12:46 <olsner> meh!
19:13:03 <zzo38> Nor is `
19:13:31 <elliott> ` is
19:13:35 <elliott> I think
19:13:39 <elliott> at least, I typed it :)
19:13:41 <zzo38> No it isn't in range
19:13:42 <elliott> hm wait no it's not...
19:14:04 <elliott> the punctuation is
19:14:06 <elliott> @[\]^_
19:14:07 <lambdabot> Unknown command, try @list
19:14:15 <elliott> \ hello if _ then loop
19:14:19 <zzo38> elliott: Yes, that is correct.
19:14:22 <elliott> ^ is normal forth !
19:14:23 <elliott> @ is @
19:14:29 <elliott> so then only [ and ] are left
19:14:32 <elliott> but that should be enough
19:14:47 <zzo38> There are commands [ and ] in Forth, although they are not needed in colorForth.
19:15:00 <elliott> indeed
19:15:18 <elliott> http://www.cs.cornell.edu/talc/ typed assembly language!
19:15:29 <elliott> actually it'd be cool to have an assembler where the registers a subroutine clobbers are part of its type
19:15:54 <zzo38> Actually if it is like colorForth then : is not needed either because you can change the color. Although maybe your system does not do that. I don't know yet.
19:17:21 <elliott> Yes, I do not have colour; really in colorForth the colour is just invisible mode switching words
19:17:33 <elliott> So it's simpler to have the words themselves when aiming for speed.
19:17:46 <elliott> \ will simply, upon seeing another \, finalise the word it is creating, and go on to the next one
19:17:59 <zzo38> Yes it is like that. So, then you can just have the words themself. But then you would need something to switch out of compile mode.
19:18:13 <zzo38> If you use normal Forth [ and ] then you can just use [ to switch out of compile mode
19:18:36 <elliott> Indeed
19:18:48 <elliott> Perhaps \ will simply return when it sees [
19:19:13 -!- oerjan has joined.
19:19:23 <elliott> hi oerjan.
19:19:29 <oerjan> hi elliott
19:19:30 <oerjan> ->
19:19:37 <elliott> oerjan: lolwat
19:21:04 -!- BeholdMyGlory has quit (Read error: Operation timed out).
19:21:57 -!- BeholdMyGlory has joined.
19:22:15 <elliott> mov ah, 0x0a
19:22:20 <elliott> mov al, char...
19:22:23 <elliott> nah, bios would involve clobbering
19:26:43 <elliott> hmm
19:26:53 <elliott> mov dword: possibly not actually space-saving in 16-bit code! :P
19:27:14 <fizzie> Is "char" a literal here? Because "mov ax, 0x0a00|char" is probably a byte shorter in 16-bit code.
19:27:20 <fizzie> s/literal/constant/
19:27:37 <elliott> fizzie: It's not.
19:27:39 <elliott> But I gave up on that avenue anyway.
19:27:40 -!- pikhq has quit (Read error: Operation timed out).
19:27:43 <elliott> Directly writing to VGA memory is shorter.
19:27:48 <elliott> ; greet with "FRTH\n"
19:27:48 <elliott> mov dword [es:0], 0x07520746
19:27:48 <elliott> mov dword [es:4], 0x07480754
19:27:48 <elliott> mov di, 80
19:27:52 <elliott> here's what i'm currently trying to shrink :P
19:28:14 -!- pikhq has joined.
19:28:20 <olsner> use di to point to vga memory, use string-writing?
19:28:28 <olsner> stosw, that is
19:28:39 <elliott> olsner: hmm... might work, but i dunno, those movs are only a few bytes
19:28:44 <elliott> 14 0000000D 2666C7060000460752- mov dword [es:0], 0x07520746
19:28:44 <elliott> 15 00000016 07
19:28:44 <elliott> 16 00000017 2666C7060400540748- mov dword [es:4], 0x07480754
19:28:44 <elliott> 17 00000020 07
19:28:50 <Vorpal> <elliott> actually it'd be cool to have an assembler where the registers a subroutine clobbers are part of its type <-- nice idea
19:28:51 <olsner> zomg huge!
19:28:57 <elliott> olsner: actually I use di to point to vga memory position / 2; si is di*2 in my read word routine
19:29:01 <elliott> so I can write to [es:si]
19:29:20 <olsner> why is di divided by two instead of being a usable memory offset?
19:29:31 <Vorpal> elliott, you could possibly have some sort of "automatically assign register to this bit" then that you would look at things you call
19:29:38 <elliott> olsner: ...good question, I think I used di for something else at one point
19:30:13 <fizzie> 2666C706000046075207 is quite an enormous opcode; that 4-byte offset and 4-byte immediate value is quite a winner.
19:30:15 <olsner> a series of mov al,52; stosw; mov al,y; stosw might be shorter than all of that
19:30:24 <elliott> elliott@elliott-MacBookAir:~/Code/sixth$ make >/dev/null; wc -c sixth.o
19:30:24 <elliott> 78 sixth.o
19:30:24 <elliott> elliott@elliott-MacBookAir:~/Code/sixth$ make >/dev/null; wc -c sixth.o
19:30:24 <elliott> 75 sixth.o
19:30:26 <elliott> hooray for olsner
19:30:59 <olsner> lodsb would work if it's an actual constant and you can affort to make ds:si point to it
19:31:12 <zzo38> Perhaps instead of "FRTH\n" just display "ok" on the screen. That would probably make it shorter.
19:31:17 <elliott> olsner: I can't really afford that :P
19:31:19 <elliott> zzo38: oh, good idea :P
19:31:26 <elliott> the cheating way out!
19:31:33 <elliott> I can even have a "display ok" routine. :p
19:31:36 <Gregor> Do you have a prompt?
19:31:42 <elliott> Gregor: ?
19:31:44 <elliott> In my Forth?
19:31:56 <elliott> Yes; the "ok" at the end of the previous line is the prompt :P
19:32:16 <Gregor> Turn that into "> " and you don't even need a newline :P
19:32:22 <elliott> Gregor: Ew so anti-Forthy.
19:32:32 <elliott> Gregor: I'd still have to increment si by four :P
19:32:45 <Gregor> Ohyeah
19:32:46 <Gregor> Oh well
19:33:06 <Vorpal> I hate x86 and I hate the PC platform.
19:33:10 <Vorpal> both are crap
19:33:30 <zzo38> Gregor: If you do "> " then you will need a newline before it, but not after it.
19:33:32 <elliott> Vorpal: ha ha, you've fallen into The Trap
19:33:35 <fizzie> You don't *need* the newline with the traditional "ok" prompt either, it's just a quality-of-implementation issue.
19:33:41 <elliott> not long until you're complaining that every OS sucks
19:33:45 <Ilari> Increment SI by four. Four INC SI's would be 4 bytes. ADD SI, 4 might be shorter.
19:33:47 <Vorpal> elliott, I have held this opinion for a long time...
19:33:55 <olsner> add si,4 should be two bytes
19:33:57 <elliott> Vorpal: yes, but you're going to start bothering everyone else with it, like me >:D
19:34:00 -!- cheater00 has joined.
19:34:05 <Vorpal> no not really
19:34:17 <elliott> fizzie: in my case, I do need a newline because I don't do screen wrapping :)
19:34:25 <olsner> I think Vorpal is just hopping on the PC-hating bandwagon
19:34:30 -!- cheater- has quit (Ping timeout: 246 seconds).
19:34:33 <elliott> who isn't on that bandwagon
19:34:34 <olsner> has he even written a boot sector? :P
19:34:42 <Vorpal> olsner, did that ages ago.
19:34:46 <olsner> ah, ok
19:34:49 <Vorpal> elliott, that bandwagon
19:34:51 <Vorpal> err
19:34:53 <Vorpal> olsner, ^
19:34:54 <elliott> the pc is the worst thing ever.
19:34:59 <olsner> Vorpal: then I can finally take your hate seriously
19:35:02 <Vorpal> olsner, and no I never written a boot sector
19:35:07 <olsner> what! you liar
19:35:14 <elliott> <olsner> I think Vorpal is just hopping on the PC-hating bandwagon <Vorpal> olsner, did that ages ago.
19:35:16 <Vorpal> olsner, I answered to the "hopping on" line
19:35:17 <elliott> <Vorpal> elliott, that bandwagon
19:35:22 <elliott> <Vorpal> err
19:35:22 <elliott> <Vorpal> olsner, ^
19:35:23 <Vorpal> elliott, exactly
19:35:36 <olsner> Vorpal: your hate is feeble and conformist
19:35:58 <Vorpal> olsner, I know enough about the boot sector to decide to not write one.
19:35:59 <elliott> olsner: i've written like three boot sectors, and small parts of post-boot-sector asm code, and know the basic principles... i still hate the pc, can i have a cookie?
19:36:14 <elliott> Vorpal: meh, it's just freestanding asm code
19:36:16 <elliott> not even freestanding
19:36:21 <elliott> you're running on the comfortable OS known as "BIOS"
19:36:22 <fizzie> olsner: Does it count if the boot sector just writes out a dirty message on screen?
19:36:34 <Vorpal> olsner, but if I did write one I would put a "load n sectors after MBR and jump there" bit into the MBR.
19:36:36 <elliott> hmm
19:36:40 <elliott> the BIOS is more fully-featured than DOS
19:36:40 <elliott> discuss
19:36:44 <Vorpal> olsner, then after jumping there I would go into protected mode
19:36:44 <olsner> fizzie: I guess it counts, but only a little :)
19:36:54 <elliott> <Vorpal> olsner, but if I did write one I would put a "load n sectors after MBR and jump there" bit into the MBR.
19:36:57 <olsner> Vorpal: how bloated
19:36:59 <elliott> WHAT A RADICAL THING TO PUT IN A BOOT SECTOR
19:37:18 <Vorpal> elliott, I believe that is what grub does though
19:37:19 <olsner> yeah, the MOST CREATIVE place to put a boot loader :P
19:37:20 <Vorpal> and many other ones
19:37:27 <elliott> grr
19:37:29 <elliott> div si, 80
19:37:30 <elliott> add si, 80
19:37:31 <elliott> is not valid
19:37:35 <elliott> why is x86 not orthogonal.
19:37:45 <olsner> use the aam cheat instead of div
19:37:46 <Vorpal> olsner, and sure it is bloated. But only because x86 sucks
19:37:50 <elliott> olsner: i don't know the aam cheat ;D
19:38:21 <elliott> sweet, it's undocumented
19:38:33 <Vorpal> elliott, also as you said before: yes most OS are crap. But I think writing my own would be too much work. And the theoretical good ones aren't practical for everyday use. I'm afraid I'm a bit pragmatic here.
19:38:35 <fizzie> There is quite a little you can div/idiv.
19:38:43 <olsner> not sure if it's completely applicable, it seems to work on al only
19:38:50 <elliott> Vorpal: meh, all you need is a good OS + an emulation layer
19:39:07 <Vorpal> <elliott> why is x86 not orthogonal. <-- most CPUs aren't?
19:39:07 <elliott> Vorpal: something that can run a POSIX kernel and multiplex the IO streams it offers to the rest of the system
19:39:24 <elliott> (with the kernel running at a lower privilege level)
19:39:56 <olsner> elliott: just be glad you don't have to divide manually :P
19:40:05 <elliott> what, "mov al, si" isn't valid
19:40:06 <elliott> oh
19:40:07 <elliott> ax
19:40:09 <Vorpal> elliott, I mean, most systems have some parts that aren't completely orthogonal.
19:40:16 <elliott> olsner: hey i wrote a few bytes of 6502 asm once!
19:40:20 <elliott> didn't quite see the appeal.
19:40:22 <elliott> Vorpal: that's a bug
19:40:36 <Vorpal> elliott, usually it is because it would become bloated on the silicon level
19:40:36 <elliott> "div ax, 80"
19:40:39 <elliott> WHY IS THIS NOT VALID
19:40:40 <elliott> WHY
19:40:53 <olsner> :D
19:41:12 <elliott> oh.
19:41:15 <elliott> div just takes one operand.
19:41:16 <elliott> or something.
19:41:18 <fizzie> Also re GRUB (pre-2), it has a "stage 1" which fits in a MBR (even with a partition table), and the typical way to set it up indeed is to load "stage 1.5" from the 60-odd immediately following sectors; then that code will load the "stage 2" which can be in a place that gets moved.
19:41:21 <elliott> ax. okay.
19:41:23 <elliott> this is such bullshit.
19:41:25 <Vorpal> elliott, err? is the register it operates fixed?
19:41:29 <fizzie> Yes, it can never divide anything else than dx:ax.
19:41:41 <Vorpal> fizzie, right. How does grub 2 do it?
19:41:46 <elliott> fizzie: not true
19:41:48 <elliott> 1 byte divisor = ax
19:41:58 <elliott> <fizzie> Also re GRUB (pre-2), it has a "stage 1" which fits in a MBR (even with a partition table), and the typical way to set it up indeed is to load "stage 1.5" from the 60-odd immediately following sectors; then that code will load the "stage 2" which can be in a place that gets moved.
19:41:59 <fizzie> (Well, or edx:eax or rdx:rax, yes. But still.)
19:41:59 <elliott> 60-odd?!
19:42:03 <elliott> how can it use up so many
19:42:16 <Vorpal> elliott, it contains file system reading code iirc
19:42:17 <fizzie> elliott: I think stage 1.5 is about 30k, yes; it has the filesystem drivers and so on.
19:42:34 <Vorpal> elliott, that is why unlike lilo you don't need to run a command as soon as you installed a new kernel
19:42:57 <elliott> Vorpal: doesn't need 60 sectors.
19:42:58 <elliott> :{
19:43:03 <Vorpal> elliott, to read ext4?
19:43:10 <elliott> meh
19:43:11 <elliott> ext4 sucks
19:43:12 <Vorpal> though wait, only grub2 does that iirc
19:43:13 <elliott> all filesystems suck
19:43:14 <elliott> grub sucks
19:43:15 <Vorpal> ext3 then
19:43:18 <elliott> x86 sucks
19:43:19 <elliott> pcs suck
19:43:24 <elliott> electricity sucks
19:43:27 <elliott> matter sucks
19:43:28 <elliott> vacuums suck
19:43:31 <elliott> ...
19:43:33 <elliott> guess everything sucks
19:43:38 <elliott> (did you see my funny wordplay.)
19:43:40 <Vorpal> elliott, agree on x86 and pcs. Disagree on other statements.
19:43:46 <elliott> vacuums
19:43:47 <elliott> suck
19:43:47 <elliott> get it
19:43:48 <elliott> like
19:43:49 <fizzie> Vorpal: I think GRUB 2 is quite similar, except the names have changed a bit. There's "boot.img" in the MBR, and that contains a fixed LBA48 sector address; it loads the first sector of "core.img", which then loads the rest of "core.img"; and at that point it can start loading modules from non-fixed locations.
19:43:49 <elliott> vacuum cleaners
19:43:51 <elliott> they suck
19:44:01 <Vorpal> fizzie, ah. I haven't switched yet
19:44:01 <zzo38> Vorpal: Do you prefer ARM? Or something else?
19:44:18 <Vorpal> fizzie, I go by "don't mend what isn't broken" when it comes to bootloaders
19:44:30 <fizzie> The core.img on this system is 23817 bytes.
19:44:38 <elliott> hey olsner, gimme some code to move si to the next multiple of 80 :)
19:44:52 <olsner> elliott: I only have ugly and verbose code for that
19:45:02 <elliott> olsner: non-ugly, non-verbose code please; thanks
19:45:02 <Vorpal> zzo38, well arm is a bit better than x86. PPC is quite nice in some respects. AVR is very nice apart from being Harvard (but then most SOC in that "class" are)
19:45:14 <olsner> move the registers, use the hideous div thing, mess around some more, and you end up with stuff
19:45:24 <Vorpal> I hate PIC12-series asm
19:45:30 <Vorpal> it is worse than x86
19:46:12 <olsner> elliott: one idea, if you have a spare register (!), is to just store the next 80-multiple somewhere
19:46:24 <oerjan> 17:59:35 <oklopol> i made oerjan leave by asking him about predicate logic in pm :(
19:46:28 <oerjan> 17:59:39 <oklopol> i think he doesn't like me anymore
19:46:40 <zzo38> Vorpal: When I make a new kind of computer, I can decide what kind of processor to use. Such as ARM, or PPC, or whatever.
19:46:48 <oerjan> actually internet crashed for a moment back then.
19:47:10 <elliott> olsner: spare register... maaaybe
19:47:16 <Vorpal> elliott, wait, when you suggest orthogonal instruction sets... Does that mean you hate RISC?
19:47:24 <olsner> or if you need to support several 80-multiples from the beginning of the last line you started, save the last one and have a loop to move forward until you've gone past the writing pointer
19:47:31 <oerjan> clearly this was the universe's way of sparing me from having to explain.
19:47:38 <elliott> Vorpal: you mean because risc can't do shit to ram?
19:47:43 <Vorpal> <olsner> elliott: one idea, if you have a spare register (!), is to just store the next 80-multiple somewhere <-- spare register on x86 in 16-bit mode? I laugh in scorn.
19:47:48 <elliott> naw, because you just need to omit the [] notation from the assembler
19:47:49 <Vorpal> elliott, yep
19:47:49 <elliott> <Vorpal> <olsner> elliott: one idea, if you have a spare register (!), is to just store the next 80-multiple somewhere <-- spare register on x86 in 16-bit mode? I laugh in scorn.
19:47:51 <elliott> Vorpal: dude, it's forth
19:47:53 <elliott> i use the stack for everything :D
19:47:59 <Vorpal> elliott, oh, true
19:48:05 <fizzie> Gregor: I do hope someone already complained about the Ego-lack while you were here and active.
19:48:11 <elliott> the only register i need is basically
19:48:12 <elliott> one
19:48:14 <elliott> to store the data stack location
19:48:20 <oklopol> "[22:28:03] <oerjan> actually internet crashed for a moment back then." <<< good save
19:48:26 <elliott> and another one
19:48:29 <elliott> to store the screen position
19:48:34 <oklopol> anyway i suppose we can continue now
19:48:36 <Vorpal> elliott, two technically. Though you get the other one for free.
19:48:38 <olsner> I think the (e)bp register has shorter opcodes for reading at offsets
19:48:42 <Vorpal> oh three then
19:48:43 <oklopol> :DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
19:49:01 <olsner> (i.e. possibly suitable for the other stack)
19:49:10 <Vorpal> elliott, and I refer to whatever eip/rip is called in 16-bit mode (I forgot)
19:49:21 <olsner> ip, duh
19:49:22 <Vorpal> ALSO: a good architecture should have only one mode
19:49:33 <Vorpal> be it 8, 16, 32 or 64-bit
19:49:38 <Vorpal> but it should stick to one.
19:49:50 <Vorpal> especially what x86 does is a major mess
19:50:26 <fizzie> olsner: I don't think it's any shorter than the other valid registers (si, di, bx); the only difference I think is that plain [bp] is still encoded with a useless single-byte offset of 0, because what would "logically" be [bp] is in fact an absolute 16-bit displacement.
19:50:28 <olsner> Vorpal: yeah, I wonder what'd have happened if intel said "hey, we have a new low-cost 64-bit microprocessor for that PC XT thing you're building"
19:50:40 <Vorpal> <elliott> Vorpal: you mean because risc can't do shit to ram? <Vorpal> elliott, yep <-- then that convo died.
19:50:49 <elliott> olsner: time travel!
19:50:52 <elliott> Vorpal: no it did not
19:50:52 <Vorpal> elliott, I'm interested in what you think about it
19:50:57 -!- ais523 has quit (Ping timeout: 246 seconds).
19:50:59 <elliott> <elliott> naw, because you just need to omit the [] notation from the assembler
19:51:02 <olsner> fizzie: don't you need a SIB byte for non-bp registers?
19:51:08 <elliott> the point is
19:51:09 <Vorpal> elliott, ah
19:51:11 <elliott> if you can put a name somewhere
19:51:13 <elliott> like si or whatever
19:51:18 <elliott> then it should be able to go anywhere another name can go :)
19:51:22 <elliott> i can make like one exception, for the IP
19:51:24 <elliott> but everything else...
19:51:37 <Vorpal> elliott, what about the status register?
19:51:40 <elliott> so basically, mov should be
19:51:53 <Vorpal> elliott, also you can't really put a data label anywhere on a RISC.
19:51:56 <elliott> mov :: (dst:Writable) -> Readable -> [Clobbers dst]
19:51:57 <olsner> hmm, 16-bit doesn't even have a SIB byte does it?
19:51:58 <Vorpal> lets say:
19:51:59 <elliott> so
19:52:03 <elliott> mov eax, 42
19:52:04 <Vorpal> .data
19:52:05 <elliott> mov eax, ebx
19:52:05 <Vorpal> foo:
19:52:07 <elliott> mov esi, eip
19:52:09 <fizzie> olsner: No; in 16-bit there's ModRM encodings for (exhaustive list) [{bx,bp}+{si,di}] and [{bx,bp,si,di}+N] with no, 8-bit and 16-bit N; and that's all. There are no values that'd use a SIB byte.
19:52:10 <Vorpal> .byte 0x1
19:52:14 <elliott> mov ebx, 438593
19:52:15 <elliott> etc.
19:52:18 <Vorpal> then that foo label can not be put everywhere
19:52:21 <Vorpal> elliott, see what I mean?
19:52:33 <elliott> Vorpal: well.
19:52:36 <elliott> i'm not quite sure what you mean.
19:52:43 <elliott> obviously, you should have to load foo before accessing it, because it's in memory
19:52:51 <olsner> ah, there! I found the table with 16-bit addressing modes in the manual
19:52:54 <Vorpal> elliott, yep. And thus it isn't really orthogonal.
19:53:36 <elliott> lda :: (dst:Writable) -> Readable[Contains (addr:Address)] -> [Clobbers dst, Reads addr]
19:53:53 <Vorpal> elliott, anyway if you do have a memory orthogonal system then it probably isn't really. Memory mapped IO registers tend to have strange limitations
19:53:55 <elliott> sta :: Readable -> Readable[Contains (addr:Address)] -> [Writes addr]
19:54:16 <elliott> hmm
19:54:18 <elliott> now I really want this assembler :)
19:54:23 <elliott> wonder if I could do it in Haskell
19:55:13 <Vorpal> elliott, anyway what about branching instructions. They aren't orthogonal in general. They tend to depend on status flags in some sort of status register.
19:55:14 <Vorpal> :P
19:55:20 <elliott> lda :: (Writable dst, Readable src, ContainsAddress src addr, Clobbers r dst, Reads r addr) => dst -> src -> X86 r
19:55:22 <elliott> or something.
19:56:22 -!- TLUL has joined.
19:56:25 <elliott> olsner: WRITTEN THE SHORT ELEGANT CODE YET
19:56:48 <olsner> Vorpal: ARM has pretty orthogonal branching - every instruction is predicated, and so are jumps
19:56:49 <fizzie> olsner: Anyway, even in 32-bit mode you can use [{eax,ebx,ecx,edx,ebp,esi,edi}+N] with equally long encodings; it's just [esp+N] that you need a SIB byte for.
19:56:59 <Vorpal> olsner, hm true.
19:57:14 <fizzie> olsner: Except when you're working in THUMB mode, when all the pretty orthogonality goes down the drain again.
19:57:31 <elliott> joy, i broke things again
19:57:33 <Vorpal> oh yes that is one reason to dislike ARM. Multiple instruction modes.
19:58:22 <fizzie> Well, it's not like you'd *have* to write Thumb code at all.
19:58:26 <olsner> Vorpal: that's not a bad thing at all IMO - code that benefits from ARM instructions can use them, stuff that would better be smaller can use thumb
19:58:43 <olsner> and it's pretty easy to call back and forth (it's not like x86's instruction modes)
19:59:25 <Vorpal> also something I dislike with x86: LEA
19:59:32 <Vorpal> it is so weird really
19:59:32 <fizzie> Oh, they've deprecated the direct JVM bytecode execution mode (Jazelle DBX) in favour of "ThumbEE", which is a Thumb variant slightly tweaked to be easy to JIT managed code to.
19:59:47 -!- Phantom_Hoover has joined.
19:59:49 <olsner> Vorpal: not weird at all
19:59:54 <Vorpal> <olsner> Vorpal: that's not a bad thing at all IMO - code that benefits from ARM instructions can use them, stuff that would better be smaller can use thumb <-- yes on a practical level. But it is messy still.
20:00:10 <Phantom_Hoover> The haps, my friends.
20:00:12 <Phantom_Hoover> What are they?
20:00:21 <olsner> but other cpus only have simple addressing modes so that the most complicated LEA instruction would be equivalent to "mov reg,reg"
20:00:28 <Vorpal> olsner, Okay true. But the way it is used to do arithmetics by compilers is
20:00:45 <elliott> what's lea again
20:01:16 <olsner> elliott: takes a memory operand, calculcates the address and stores the address instead of loading from memory
20:01:20 <Vorpal> olsner, and yes I prefer ISAs with simpler addressing modes.
20:01:39 <elliott> What is Quantum Jumping?
20:01:44 <Vorpal> elliott, often used to do multiplications with constants by C compilers such as GCC.
20:01:47 <elliott> Discover Why Thousands of People are "Jumping" to Change Their Life
20:01:49 <elliott> www.QuantumJumping.com
20:01:50 <elliott> -- youtube ad
20:02:04 <fizzie> Vorpal: Then you'd hate to write DSP code; they have all kinds of bit-reversed (for fast FFT (okay, so that's like PIN number)) and hardware-assisted circular buffer addressing modes.
20:02:09 <elliott> quantum jumping, guys!
20:02:13 <Vorpal> fizzie, quite.
20:02:18 <elliott> fast FFT transform
20:02:29 <fizzie> Fast FFT Fourier Transform.
20:02:29 <Phantom_Hoover> elliott, it's unstructured programming for the quantum age.
20:03:25 <Vorpal> fizzie, direct, indirect and offset is enough for me. Sure indirect with inc/dec might be nice. But only on systems where you can only load a single size into registers.
20:03:34 <nooga> i can't learn haskell ;C
20:04:21 <elliott> nooga: it's because your brain is broken
20:04:37 <Phantom_Hoover> nooga, why?
20:04:41 <elliott> hey fizzie, YOU write me some code to increment si to the next multiple of 80!
20:04:56 <Vorpal> elliott, hm why 80?
20:05:03 <Vorpal> elliott, a power of two would be easier
20:05:04 <elliott> Vorpal: width of vga screen
20:05:08 <Phantom_Hoover> elliott, divide by 80, add one, multiply?
20:05:11 <Vorpal> elliott, damn. Can't you change video mode?
20:05:11 <olsner> elliott: I already told you, stow some stuff and do it with additions
20:05:14 <elliott> Phantom_Hoover: Not easy on x86.
20:05:16 <elliott> Vorpal: lol
20:05:17 <Phantom_Hoover> (Efficiency is for wimps!)
20:05:39 <Vorpal> elliott, I mean with a power of two it would be AND + ADD
20:05:55 <elliott> Phantom_Hoover: need to stick this into 510 bytes
20:05:59 <fizzie> Vorpal: ST B, *AR0+0% || MPY *AR1+, B (a representative line of DSP asm).
20:06:11 <Vorpal> fizzie, oh my god. What does it do?
20:06:21 <nooga> elliott: because haskell is messy
20:06:31 <Phantom_Hoover> elliott, I don't think it can really be done without either division or modulo.
20:06:51 <Deewiant> How is it "not easy"
20:07:11 <fizzie> Vorpal: Actually I mistyped, it doesn't really make sense like that; maybe ST B, *AR1+0% || MPY *AR2+, B instead.
20:07:14 <elliott> Deewiant: div is a mess :)
20:07:18 <elliott> nooga: no... it's not
20:07:24 <elliott> Phantom_Hoover: A loop!
20:07:26 <Phantom_Hoover> x86 is ridiculously stupid with arithmetic opcodes, at least in 16-bit mode.
20:07:32 <fizzie> Deewiant: Elliott doesn't like it how div has those fixed-register operands.
20:07:38 <Deewiant> elliott: So you clobber ax, is that somehow "not easy"?
20:07:49 <Vorpal> fizzie, also this is why I like the ISA of AVR. It is mostly sane. A pity it is Harvard though. (Only insane bit I can think of is that LSL and LSR take one parameter, register to shift. And shifts one step. Same for ROL/ROR, but at least that can be blamed on the carry flag there)
20:07:55 <elliott> Deewiant: Fitting things into 510 bytes here.
20:08:05 <Deewiant> Since it's a constant, you can of course not do an actual divide
20:08:14 <Deewiant> elliott: And? Are you already running out of room?
20:08:19 <Vorpal> <fizzie> Vorpal: Actually I mistyped, it doesn't really make sense like that; maybe ST B, *AR1+0% || MPY *AR2+, B instead. <-- this is same but with AR1/2 not 0/1?
20:08:29 <fizzie> Vorpal: Yes. I'm writing a description at the moment.
20:08:31 <elliott> Deewiant: No, but this thing is going to have a Forth in it, and I've already devoted about 60 bytes to word reading.
20:08:34 <Vorpal> fizzie, highly non-orthogonal I guess
20:08:45 <Deewiant> elliott: Dude, worry about it later.
20:09:13 <elliott> Deewiant: Ah, you see, the code to do it that way is _also_ extremely ugly. :p
20:10:16 <olsner> multiplication is exactly as horrific as division on x86 :)
20:10:16 <Vorpal> my dream architecture would be a 64-bit RISC. With lots of GPR. A handful of SIMD registers and some floating point ones.
20:10:25 <Vorpal> so pretty much PPC so far
20:10:31 <olsner> or sparc, or mips?
20:10:38 <Vorpal> olsner, PPC has more GPR iirc
20:10:40 <elliott> Vorpal: my dream architecture is a reduceron.
20:10:53 <Deewiant> olsner: imul goes to an arbitrary register
20:10:55 <fizzie> olsner: No it's not: there's even a three-operand multiplication.
20:11:08 <Phantom_Hoover> My dream architecture is Gaudi.
20:11:13 <Vorpal> elliott, well sure, but that is sadly unrealistic currently.
20:11:20 <elliott> Phantom_Hoover: ?
20:11:35 <Phantom_Hoover> elliott, PHILISTINE
20:11:49 <Phantom_Hoover> http://en.wikipedia.org/wiki/Antoni_Gaud%C3%AD
20:11:55 <fizzie> Vorpal: It stores the value at AR1 (what AR1 points at, I mean) into B, then increments AR1 by the value in AR0 except that the postincrement is done modulo a (base, size) pair stored in the circular buffer control registers; at the same time on the other ALU it fixed-point multiplies the value in the T register (notably not mentioned in the instruction) by the value pointed by AR2 (and postincrements AR2), and stores that as the new value of B.
20:11:55 <Vorpal> ALSO it should have sane instruction encoding
20:12:00 <elliott> Phantom_Hoover: Oh, right, *architecture*.
20:12:03 <elliott> YOU A SILLY.
20:12:22 <olsner> fizzie: ooh! imul is way less horrific than div/idiv :)
20:12:26 <Vorpal> only a handful of different sizes (come on, jump with immediate operand would be hard otherwise)
20:13:10 <fizzie> olsner: In fact is is borderline saintly, since it can do "A = B*N" (where N is 8-bit immediate) often saving you a mov.
20:13:25 <Vorpal> fizzie, wait a second...
20:13:29 -!- BeholdMyGlory has quit (Remote host closed the connection).
20:13:32 <elliott> fizzie: *angelic AAAAAAAAAAAAAAAH noise*
20:13:44 <Vorpal> fizzie, "ST B, *AR1+0% || MPY *AR2+, B" does NOT mention AR0 yet you said it used it?
20:13:55 <fizzie> Vorpal: It's the "0" in the "+0%".
20:13:59 <Vorpal> fizzie, oh
20:14:06 <fizzie> And anyway it uses T without mentioning, too, so...
20:16:08 <elliott> <fizzie> Vorpal: It stores the value at AR1 (what AR1 points at, I mean) into B, then increments AR1 by the value in AR0 except that the postincrement is done modulo a (base, size) pair stored in the circular buffer control registers; at the same time on the other ALU it fixed-point multiplies the value in the T register (notably not mentioned in the instruction) by the value pointed by AR2 (and postincrements AR2), and stores that as the new val
20:16:09 <elliott> ue of B.
20:16:10 <elliott> best thing ever
20:16:30 <fizzie> Sadly that was the only instruction in this project to use one of the "foo || bar" double-instructions, of which there is a very limited set. And there are all kinds of additional limitations for the operands; not all of the (8, IIRC) ARx registers are usable in all those positions; only the "dual operand addressable" subset.
20:16:36 -!- BeholdMyGlory has joined.
20:17:06 <fizzie> In fact I'm not entirely sure if AR2 is quite kosher there. (This is from a macro and I didn't bother looking up what it was called with.)
20:17:26 <olsner> so something like... imul by the inverse of 80 then inc then multiply by 80? could that work?
20:18:34 <fizzie> (And AR0 had to be initialized to 1 for that to work, because the "+%" addressing mode is not allowed in that particular dual-instruction, only the "+n%" variant.)
20:19:14 <Vorpal> <olsner> so something like... imul by the inverse of 80 then inc then multiply by 80? could that work? <-- imul by inverse of 80 sounds tricky. Inverse of 80 sounds tricky to do in integer encoding.
20:19:56 <olsner> you multiply by 2^16/80, and then divide (shift) by 2^16
20:20:06 <elliott> olsner: :D
20:20:25 <olsner> 16 could be other things though, it depends on how much precision you need and the input range and whatnot
20:20:35 <Vorpal> hm right remembered another bit where AVR isn't orthogonal. Integer multiplication has fixed destination registers.
20:20:39 <olsner> for instance, you know that the value is 0..24
20:20:42 <elliott> olsner: the input range is
20:21:00 <elliott> si = 80*n + m for 0 <= n < 25 and 0 <= m < 80
20:21:05 <elliott> and I want the output to be
20:21:07 <elliott> si = 80*(n+1)
20:21:29 <fizzie> elliott: Just do an exhaustive search for the shortest possible code that gives the valid output for those inputs.
20:21:36 <elliott> but of course
20:21:41 -!- Behold has joined.
20:21:46 <Vorpal> and of course you can use IN/OUT to address the IO registers. But that is really an alias to access the lowest memory addresses. Since they are memory mapped right after the registers.
20:21:54 <Vorpal> (shorter encoding)
20:22:06 <olsner> elliott: maybe you can find that paper that did that for a bunch of common operations and steal their framework for bruteforcing instruction sequences
20:22:13 <Vorpal> LDS/STS take two bytes after all.
20:22:14 <elliott> olsner: :D
20:22:21 <elliott> olsner: or maybe you could do your 2^16 magic for me!
20:22:38 <olsner> meh, do it yourself
20:23:15 <Vorpal> <olsner> elliott: maybe you can find that paper that did that for a bunch of common operations and steal their framework for bruteforcing instruction sequences <-- ooh the super compilation to generate loophole optimisers one?
20:23:41 <olsner> yeah, that's probably the same one
20:23:47 <Vorpal> err peephole
20:23:49 <quintopia> i am now able to successfully identify which wiki pages were written by zzo38 without looking at the page history. does this mean today is my #esoteric zzoversary?
20:23:53 <Vorpal> why on earth did I write loophole...
20:23:54 <Vorpal> XD
20:24:14 <Phantom_Hoover> quintopia, yes.
20:24:35 <olsner> loophole optimizer :D
20:24:44 <elliott> olsner: so what should 16 be :P
20:24:50 <elliott> <olsner> you multiply by 2^16/80, and then divide (shift) by 2^16
20:24:51 <Vorpal> olsner, awesome concept though
20:24:51 <elliott> <olsner> 16 could be other things though, it depends on how much precision you need and the input range and whatnot
20:24:58 <olsner> elliott: n, for some value of n
20:25:01 <elliott> olsner: define n
20:25:03 -!- BeholdMyGlory has quit (Ping timeout: 248 seconds).
20:25:34 <olsner> n is what 16 should be?
20:25:40 <Vorpal> elliott, be careful if you want to be able to claim you wrote this thing. So you don't have to write "by olsner with some help from elliott"
20:25:45 <elliott> olsner: i'll just pick at random ;D
20:25:56 <Vorpal> hey you are doing extreme programming. Pair programming over internet.
20:25:58 <Vorpal> or something
20:26:05 -!- Patashu has joined.
20:26:08 <elliott> Vorpal: aww yeah, IRC has never been more homoerotic!
20:26:11 <elliott> moving on
20:26:15 <Vorpal> elliott, wha?
20:26:21 <elliott> FOR SOME REASON
20:26:24 <elliott> nasm doesn't grok 2**16
20:26:33 <Vorpal> elliott, so write out the constant?
20:26:49 <Deewiant> 65536 isn't even longer
20:26:49 <olsner> left-shift is called <<
20:27:21 <elliott> apparently "mul ax, 12" isn't valid
20:27:22 <elliott> wonder why
20:27:26 <Vorpal> elliott, anyway you need a 32-bit register to contain 2^16?
20:27:36 <Deewiant> Because mul takes a single operand, not two.
20:27:40 <olsner> elliott: imul has the magic, mul doesn't
20:27:58 <elliott> Vorpal: but not (2^16)/80!
20:28:02 <Vorpal> elliott, oh true
20:28:05 <Vorpal> olsner, which one is signed now again?
20:28:08 <elliott> hmm, i should fix rword before doing ok :)
20:28:11 <elliott> imul is signed
20:28:33 <Gregor> NOOOOOOOOOOOOOOOOOOOOOO
20:28:37 <Gregor> NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
20:28:42 <Gregor> NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO :( :( :( :( :(
20:28:47 <Vorpal> what?
20:29:00 <olsner> padme died?
20:29:03 <Gregor> Surely somebody can guess
20:29:07 <Vorpal> elliott, I have a suggestion: serial terminal. I don't know how messy that is on x86. Only done serial programming on AVR
20:29:31 <olsner> Vorpal: lol, that would make far too much sense
20:29:32 <elliott> Gregor: you didn't get it?
20:29:33 <elliott> :(
20:29:35 <Vorpal> where you just enable some bits in the USART control register and then write some interrupt routines.
20:29:49 <Vorpal> olsner, eh? He doesn't have to deal with anything more than \n then
20:29:51 <elliott> Gregor: gone to auction?
20:30:00 <olsner> Vorpal: exactly
20:30:05 <Vorpal> olsner, *oh*
20:30:14 <elliott> serial with x86 sounds like a pain
20:30:15 <elliott> dunno though :)
20:30:20 <olsner> so what happened to Gregor?
20:30:25 <elliott> olsner: he wants libc.so
20:30:30 <Vorpal> olsner, but I presume the UART (hell x86 doesn't even have a USART!) programming on x86 is a pain?
20:31:07 <olsner> Vorpal: I can only guess, but of course it is painful :) it would however speak ascii since the thing you connect to it speaks ascii
20:31:22 <Vorpal> indeed
20:31:25 <olsner> hell, why even bother with screen output if you're doing input over serial anyway
20:31:29 <fizzie> elliott: I *think* it is possible to program the VGA registers so that you have a text mode that has a virtual screen size of 128x25 characters, of which you are showing a 80x25-sized window. That would make the row addresses be multiples of 128, not 80.
20:31:35 <Vorpal> olsner, this was for output I meant
20:31:41 <Vorpal> olsner, and yes do both that way
20:31:48 <elliott> fizzie: yeah but i'd still have to warp at 80 :)
20:32:04 <fizzie> Maybe, but rounding up to next multiple of 128 is easier.
20:32:19 <elliott> oh, right
20:32:25 <elliott> well. that sounds difficult
20:32:27 <olsner> hmm, and qemu can probably connect the serial port directly to your host terminal
20:32:27 <elliott> :P
20:32:31 <elliott> olsner: it can
20:32:33 <Deewiant> Or always leave the rightmost 16 columns blank and use a 64x25 screen in practice
20:32:35 * Gregor reappears.
20:32:39 <Gregor> libc.so is up for auction.
20:32:40 <elliott> Deewiant: oh, that would work!
20:32:44 <elliott> Gregor: BID.
20:32:45 <elliott> BID NOW.
20:32:46 <Vorpal> elliott, oh? you would just do AND + ADD to jump to next multiple
20:32:47 <elliott> BID ALL YOUR MONEY.
20:33:25 <elliott> OH
20:33:26 <elliott> duh
20:33:42 <Vorpal> WHY DOESN'T x86 HAVE AN USART!?
20:34:02 <olsner> that'd make for some neat packaging, you just have a 512-byte boot sector embedded in a shell script that runs qemu on it as a floppy image and connects to stdin/out
20:34:10 <elliott> olsner: :D
20:34:33 <elliott> olsner: i kinda want to be able to walk up to some ancient 386, put a floppy in it, and be greeted to forth, though :P
20:34:52 <elliott> hmm, trying to get this imul/shl thing working...
20:35:01 <olsner> for extra points, polyglot the wrapper shell script into the boot sector
20:35:22 <olsner> imul/shr?
20:35:22 <fizzie> Deewiant: That doesn't really help if you have that single-value linear address that you want to directly correspond to VGA memory offset, since you'd need to round that to a multiple of 80 (well, 160) anyway. Admittedly you could keep 64x25 screen offsets and then extract (row, column) and compute the memory address, but still.
20:35:30 <elliott> olsner: uh, didn't you say shl
20:36:04 <olsner> I think I said divide by 2^n
20:36:23 <elliott> well, olsner, it's not my fault i'm retarded :/
20:36:29 <olsner> sure it is
20:36:49 <elliott> hmm, this doesn't even seem to be doing anything to si
20:36:52 <elliott> imul ax, 819
20:36:54 <elliott> add ax, 4
20:36:55 <elliott> shr ax, 16
20:36:56 <elliott> mov si, ax
20:37:01 <elliott> no matter what i do :)
20:37:10 <elliott> oh wait hm
20:37:12 <fizzie> Anyway, there's a single "Offset" VGA register value that gives the number that is added to the memory address in order to move from one scanline/text-line to another. That should be a simple thing to change to get a VGA screen that has the lines in memory at power-of-two multiples.
20:37:33 <elliott> <Deewiant> Or always leave the rightmost 16 columns blank and use a 64x25 screen in practice
20:37:36 <elliott> or i could just do this :)
20:37:51 <Vorpal> elliott, "<fizzie> Deewiant: That doesn't really help if you have that single-value linear address that you want to directly correspond to VGA memory offset [...]"
20:37:56 <Vorpal> elliott, fail :P
20:38:00 <elliott> Why doesn't it?
20:38:07 <Vorpal> elliott, read fizzie's full line
20:38:18 <elliott> oh rite
20:38:31 <fizzie> To convert from a 64x25 screen offset into a memory address, you'll need to split it into (row, column) and then compute row*80+column. Admittedly it doesn't need the divide-by-80 step there.
20:38:55 <fizzie> Since it's just "low 6 bits column, things above that the row".
20:39:01 <elliott> olsner: are you sure imul overflows?
20:39:22 <elliott> oh wait
20:39:23 <elliott> facepalm
20:39:25 <olsner> can you tell VGA to use 64-char lines instead of 80-char ones? will that make it display the beginning of the next line in the last 16 columns? :)
20:39:25 <elliott> shr ax, 16
20:39:26 <elliott> on a 16-bit value
20:39:54 <fizzie> olsner: If you start reprogramming VGA, I think you should just change the offset between lines so that they are multiples of 2^K.
20:40:13 <Vorpal> why is an idle serial line always high? Wouldn't that waste power?
20:40:21 <elliott> imul ax, 51
20:40:21 <elliott> shr ax, 12
20:40:21 <elliott> add ax, 80
20:40:22 <elliott> well it almost works.
20:40:40 <olsner> fizzie: yeah, what I meant was: what if you make that offset shorter than the line? (because it still displays 80 chars per line?)
20:41:06 <elliott> oh wait
20:41:09 <elliott> I need to add 160
20:41:11 <elliott> obviously
20:41:23 <fizzie> olsner: Well, it would show the last 16 characters of the previous line at the beginning of the next line, yes. Or alternatively you can think of it the other way around.
20:41:42 <elliott> argh
20:41:44 <elliott> doesn't work though :)
20:42:33 <elliott> olsner: i'm not sure there's enough precision to make this work :P
20:43:13 <Vorpal> elliott, 160? What?
20:43:21 <elliott> Vorpal: vga=two bytes per char
20:43:24 <elliott> 80*2=
20:43:43 <Vorpal> elliott, oh nice. What does it use the second byte for? I doubt it uses UCS-16...
20:43:46 <Vorpal> err
20:43:48 <Vorpal> UCS-2
20:43:56 <elliott> Vorpal: attribute, duh
20:44:00 <elliott> =colours
20:44:01 <Vorpal> elliott, oh right
20:44:08 <elliott> it should totally use UTF-16, though
20:44:11 <elliott> including surrogate pairs
20:44:16 <Vorpal> VGA is a total mess
20:44:21 <elliott> uh
20:44:23 <elliott> what's wrong with colours
20:44:26 <Vorpal> elliott, no
20:44:28 <elliott> text vga mode is pretty fine :P
20:44:30 <Vorpal> elliott, that isn't what is wrong
20:44:31 <Ilari> Sure, you can program VGA display width. But that's changing VGA timings.
20:44:38 <Vorpal> elliott, what is wrong is not just having a framebuffer
20:45:02 <fizzie> Ilari: Again, you can just change the in-memory offset between lines, and keep the traditional 80x25 text mode on screen.
20:45:20 <Ilari> Ah yeah.
20:46:01 <Vorpal> what instructions does the MBR magic encode?
20:46:11 <Vorpal> just wondering if they can be used for anything
20:46:58 <olsner> you can use them as a two-byte operand to the last instruction
20:47:11 <fizzie> Vorpal: As themselves the encode "stosb; push bp".
20:47:11 <olsner> or part of a longer operand, of course
20:47:36 <Phantom_Hoover> http://soundcloud.com/r2bl3nd/windows-7-x64-ms-paint-exe
20:47:39 <Phantom_Hoover> BEST THING EVER
20:47:40 <Vorpal> fizzie, looks pretty useless to me
20:48:15 <Vorpal> fizzie, btw the string instructions on x86. They are not atomic wrt. multitasking I assume? How does resuming work there?
20:48:56 <olsner> Vorpal: they stop in the middle and save the register values that'd make them continue where they were
20:49:00 <Gregor> Who's willing to donate to the Gregor Owning libc.so Fund :P
20:49:18 <olsner> but there's also a flag to control some of the details for compatibility
20:49:24 <Vorpal> olsner, ah
20:49:47 <nooga> elliott: how is your forth?
20:49:50 <Phantom_Hoover> Gregor, ME
20:49:52 <elliott> nooga: working on the display code
20:49:54 <elliott> Phantom_Hoover: I like it
20:49:55 <elliott> (saw it before)
20:50:19 <Phantom_Hoover> But the annoyance that is conducting transactions over the internet sadly makes it difficult.
20:50:21 <Vorpal> <Phantom_Hoover> http://soundcloud.com/r2bl3nd/windows-7-x64-ms-paint-exe <-- that was surprisingly like electronic experimental music.
20:50:24 <Gregor> Phantom_Hoover: How much are you willing to donate? Donations will grant you first dibs on libc.so email addresses :P
20:50:46 <Phantom_Hoover> Gregor, well, find my debit card and I'll donate.
20:50:48 <Vorpal> Phantom_Hoover, but how the fuck can mspaint be large enough to take that long to play
20:51:04 <Phantom_Hoover> Vorpal, BELIEVE IN BLOAT
20:51:10 <olsner> oh, is that libc.so the *domain name*?
20:51:15 <Gregor> olsner: Yes
20:51:25 <Gregor> I'm one of thirteen bidders.
20:51:25 <Vorpal> Phantom_Hoover, I bet the 95 or 3.0 versions were a lot shorter
20:51:31 <elliott> Gregor: Thirteen?
20:51:31 <elliott> Wow.
20:51:34 <elliott> Gregor: What's the current bid?
20:51:35 <Gregor> I rate my chances of actually getting it as "very low"
20:51:35 <Phantom_Hoover> (I'm actually surprised at the nature of that; repetition I would have understood, but why does it actually change?)
20:51:41 <Vorpal> Gregor, go for libc6.so :P
20:51:43 <Gregor> elliott: Bidding doesn't open 'til the 28th.
20:51:46 <elliott> Phantom_Hoover: tables, I bet
20:51:52 <Gregor> Vorpal: WOW THAT'S SO CLEVER CUZ IT'S NOT A REAL FILENAME
20:51:55 <elliott> I bet the noise at the start is all the code
20:52:05 <elliott> Gregor: libc.so isn't either, it's libc.so.6 everywhere :)
20:52:10 <elliott> <Vorpal> <Phantom_Hoover> http://soundcloud.com/r2bl3nd/windows-7-x64-ms-paint-exe <-- that was surprisingly like electronic experimental music.
20:52:15 <elliott> Wasn't "surprisingly like"; was.
20:52:19 <elliott> Although not terribly experimental :P
20:52:24 <Gregor> elliott: libc.so is a real filename, it's the one -lc looks for.
20:52:29 <Vorpal> elliott, I fear your music taste :P
20:52:36 <elliott> Vorpal: It's more perfectly normal chiptuney stuff interrupted by insanity every few seconds.
20:52:38 <Gregor> elliott: It's typically either a symlink, or on GNUy systems a bizarre linker script.
20:52:48 <elliott> $ locate libc.so
20:52:49 <elliott> /lib/libc.so.6
20:52:49 <elliott> /usr/lib/libc.so
20:52:50 <elliott> Hmm, right.
20:52:51 <elliott> Well.
20:52:52 <elliott> Er.
20:52:53 <Vorpal> libc-2.13.so
20:52:54 <Vorpal> hm
20:52:54 -!- BeholdMyGlory has joined.
20:52:55 <Gregor> elliott: "Duh"
20:52:56 <elliott> $ locate libc.so
20:52:57 <elliott> /lib/libc.so.6
20:52:57 <elliott> /lib32/libc.so.6
20:52:59 -!- BeholdMyGlory has quit (Changing host).
20:52:59 -!- BeholdMyGlory has joined.
20:52:59 <elliott> /usr/lib/libc.so
20:53:04 <elliott> Who needs /usr.
20:53:16 <Gregor> elliott: With that setup, people who want to link against libc :P
20:53:17 <Vorpal> Gregor "Weird Linker Script" Gregor
20:53:26 <elliott> Phantom_Hoover: I would totally buy Windows Programs: The Album.
20:53:27 <olsner> I expected it to be more like white noise actually
20:53:32 <elliott> Vorpal: X "Name" X is my trademark.
20:53:43 <Vorpal> elliott, I seen it elsewhere
20:53:50 <elliott> No, X "Name" Y is traditional :P
20:53:56 <Vorpal> elliott, that is more common
20:53:59 <elliott> e.g. Gregor "Memory leaks, what memory leaks?" Richards.
20:54:00 <olsner> what is causing the repetition that makes a tone, and even that recurring melody?
20:54:02 <Phantom_Hoover> Gregor, so wait, why do you need more money?
20:54:04 <elliott> My innovation was EXTENDING IT TO ANY NAME
20:54:09 <elliott> olsner: Like I said: I suspect either tables or padding.
20:54:14 <elliott> Phantom_Hoover: domain names are expensive
20:54:19 <Vorpal> elliott, I claim prior art exists
20:54:32 <olsner> elliott: yeah, I guess
20:54:35 <Gregor> Phantom_Hoover: I don't know what the bid will be, I'll place an undisclosed amount measured in hundreds of USD on it, but every little bit helps. I'll only actually call in on donations if the bid goes above my undisclosed max.
20:54:41 <elliott> olsner: ?
20:54:50 <elliott> Gregor: I demand more than one email for your donation.
20:54:51 <olsner> elliott: tables or padding
20:55:02 <Gregor> elliott: If you donate, I will give more than one email address.
20:55:07 <Gregor> (And I win it :P )
20:55:07 <elliott> Gregor: Also, I demand the full governmental transparency that you are not demonstrating. :-P
20:55:19 <elliott> Phantom_Hoover: http://soundcloud.com/cpngn/sets/selected-tracks-from-apt Apparently these are partially based on programs too, but who knows how much.
20:55:24 -!- Behold has quit (Ping timeout: 255 seconds).
20:55:24 <elliott> (In the comments of that one.)
20:55:29 <Gregor> elliott: It's undisclosed because I don't know how much I'll bid on libm.so, which goes up for auction first X-P
20:55:42 <elliott> Gregor: libm.so is really a lot less impressive to own :P
20:55:46 <Gregor> Yes it is.
20:55:47 <Vorpal> yeah
20:55:51 <elliott> I wouldn't bother bidding on it.
20:55:52 <Gregor> But there are only two bidders including myself :P
20:55:54 <elliott> Even if it does have better emails.
20:56:02 <Gregor> So I can probably get it for like $20 :P
20:56:05 <Vorpal> elliott, how so?
20:56:14 <Vorpal> Gregor, librt.so?
20:56:16 <elliott> Vorpal: j0@libm.so etc.
20:56:45 <Vorpal> elliott, I don't see why that is better than strlen@libso.so
20:56:52 <Vorpal> err
20:56:54 <Vorpal> libc*
20:56:56 <elliott> Vorpal: Consider a person named Jo or Joe.
20:57:10 <Vorpal> elliott, but Gregor isn't named that so he would gain nothing
20:57:16 <elliott> Vorpal: He's giving emails to other people.
20:57:17 <elliott> Good god man.
20:57:29 <Vorpal> ah
20:57:50 <elliott> Gregor: Do the emails come with subdomain records :P
20:57:51 <fizzie> pcre_get_stringtable_entries@libpcre.so, the most-wanted thing ever.
20:57:58 <elliott> fizzie: YEEEEEEEEEES
20:58:04 <Gregor> elliott: Hmmm, I would be willing to give subdomain records with sufficient donations.
20:58:16 <elliott> I personally want SOME_INCOMPREHENSIBLE_MANGLED_NAME@libstdc++.so
20:58:27 <elliott> /usr/lib/libopcodes-2.20.51-system.20100908.so
20:58:28 <olsner> fizzie: not too bad at all actually, it has humor
20:58:30 <elliott> Gregor: QUICK
20:58:31 <elliott> GET THAT ONE
20:58:43 <Gregor> It's too late to register anything :P
20:58:46 <Vorpal> elliott, if you want THAT then go for libboost.so
20:58:47 <elliott> ls
20:58:51 <elliott> oops
20:58:52 <elliott> wrong window :DD
20:59:22 <fizzie> elliott: _ZN5boost10filesystem24basic_directory_iteratorINS0_10basic_pathISsNS0_11path_traitsEEEE6m_initERKS4_@libboost_filesystem.so
20:59:23 <olsner> libBrokenLocale.so perhaps? no idea whatsoever what that does, but it has a funny name
20:59:23 <elliott> hmm, how can I get a list of symbols libc.so exports?
20:59:27 <elliott> fizzie: YES
20:59:28 <elliott> I MUST HAVE IT
20:59:31 <fizzie> objdump -T it.
20:59:42 -!- poiuy_qwert has joined.
20:59:48 <Gregor> elliott: nm -D
20:59:56 <Deewiant> strings
21:00:05 <elliott> Deewiant: strings gives unrelated crap on libc
21:00:12 <elliott> lots of what looks like macro expansions
21:00:30 <elliott> what, gnu sort can't sort by length
21:00:34 <Vorpal> elliott, running nm -D /usr/lib/lib*.so.*.* | awk '{print length($NF),$NF }' | sort -n | tail -n20
21:00:39 <Vorpal> elliott, lets see what it finds
21:00:41 <elliott> OMG
21:00:42 <Deewiant> Of course it does, it gives crap on any binary :-P
21:00:47 <fizzie> "nm -D" seems nicely sorted.
21:00:48 <elliott> Gregor: Hereby reserving ffs@libc.so and ftw@libc.so
21:01:01 <elliott> NAME
21:01:01 <elliott> ffs, ffsl, ffsll - find first bit set in a word
21:01:02 <elliott> NAME
21:01:03 <elliott> ftw, nftw - file tree walk
21:01:11 <Vorpal> <fizzie> "nm -D" seems nicely sorted. <-- on what? Address it seems
21:01:17 <Gregor> WHY DID I NEVER KNOW ABOUT ffs
21:01:18 <elliott> Or or, do I want abs, or tee, or err, or dup...
21:01:21 <fizzie> Vorpal: It's sorted on symbol names here.
21:01:22 <Vorpal> <SPAM>
21:01:24 <Vorpal> 1384 _ZNK5boost6spirit7classic4impl15concrete_parserINS1_8sequenceINS1_6actionINS1_4ruleINS1_7scannerISt20_List_const_iteratorINS_4wave8cpplexer9lex_tokenINS9_4util13file_positionINSC_11flex_stringIcSt11char_traitsIcESaIcENSC_9CowStringINSC_22AllocatorStringStorageIcSH_EEPcEEEEEEEEENS1_16scanner_policiesINS1_28skip_parser_iteration_policyINS1_11alternativeINST_INS1_5chlitINS9_8token_idEEESW_EESW_EENS1_1
21:01:24 <Vorpal> 6iteration_policyEEENS1_12match_policyENS1_13action_policyEEEEENS1_15closure_contextINS9_8grammars8closures16cpp_expr_closureEEENS1_5nil_tEEEN7phoenix5actorINS1C_9compositeINS1C_9assign_opENS1D_INS1C_14closure_memberILi0ENS1C_7closureINS17_13closure_valueENS1C_5nil_tES1J_S1J_S1J_S1J_EEEEEENS1D_INS1C_8argumentILi0EEEEES1J_S1J_S1J_S1J_S1J_EEEEEENS1_11kleene_starINST_INST_INST_INS4_ISW_NS5_IS1B_NS1D_INS1E_
21:01:25 <Gregor> I've wanted that function LITERALLY ONES OF TIMES
21:01:25 <Vorpal> IS1F_S1M_NS1D_INS1E_INS16_4impl22operator_binary_lesseqES1M_S1P_S1J_S1J_S1J_S1J_S1J_EEEES1J_S1J_S1J_S1J_S1J_EEEEEEEENS4_ISW_NS5_IS1B_NS1D_INS1E_IS1F_S1M_NS1D_INS1E_INS1U_23operator_binary_greateqES1M_S1P_S1J_S1J_S1J_S1J_S1J_EEEES1J_S1J_S1J_S1J_S1J_EEEEEEEEEENS4_ISW_NS5_IS1B_NS1D_INS1E_IS1F_S1M_NS1D_INS1E_INS1U_20operator_binary_lessES1M_S1P_S1J_S1J_S1J_S1J_S1J_EEEES1J_S1J_S1J_S1J_S1J_EEEEEEEEEENS4_ISW_N
21:01:30 <Vorpal> S5_IS1B_NS1D_INS1E_IS1F_S1M_NS1D_INS1E_INS1U_23operator_binary_greaterES1M_S1P_S1J_S1J_S1J_S1J_S1J_EEEES1J_S1J_S1J_S1J_S1J_EEEEEEEEEEEEEES14_S1I_E16do_parse_virtualERKS14_
21:01:31 <elliott> Gregor: LITERALLY ONES!
21:01:33 <Vorpal> </SPAM>
21:01:34 <Gregor> ONES!
21:01:34 <elliott> Vorpal: ...impressive.
21:01:37 <Vorpal> elliott, take that one
21:01:51 <Gregor> elliott: If you actually donate, I will give vanity ALL SORTS OF WHATEVER YOU WANT
21:01:52 <Vorpal> elliott, 1384 bytes long symbol name
21:01:54 <Gregor> (@libc.so)
21:02:05 <elliott> Gregor: I cannot parse that line :P
21:02:31 <elliott> 33 posix_spawn_file_actions_addclose
21:02:31 <elliott> THE LONGEST THING EXPORTED BY LIBC.SO
21:02:36 <elliott> Is that in cfunge yet, Vorpal?
21:02:40 <Gregor> elliott: How 'bout this: I will give you one extra @libc.so address for every 15USD you donate :P
21:02:46 <Vorpal> elliott, it is in /usr/lib/libboost_wave-mt.so.1.45.0
21:02:50 <Vorpal> elliott, and hell no
21:02:56 <elliott> Gregor: You realise I'm the only person who's even remotely likely to donate in this channel :P
21:03:04 <elliott> Vorpal: But, posix_spawn_file_actions_addclose might be useful!
21:03:07 <elliott> For SPEED.
21:03:15 <Vorpal> elliott, posix_spawn is just stuipd
21:03:18 <Vorpal> stupid*
21:03:22 <Vorpal> have you even looked at that stuff?
21:03:26 <Vorpal> long live fork()
21:03:31 <Gregor> Come on people, EVERY LITTLE BIT HELPS! I will try my best to make it worth the money! Think of how awesome it would be to know the person who owns libc.so!
21:04:25 <elliott> 10 __overflow
21:04:25 <elliott> 10 __morecore
21:04:55 <elliott> 8 wordfree
21:05:08 <elliott> "You've made me...... wordfree. What's the word?" "'Speechless'?" "Right, that one."
21:05:13 <zzo38> I do not have very much United States money.
21:05:23 <elliott> zzo38: yes you do, it's just stored in the form of canadian money
21:05:41 <elliott> just like i have literally ones of ponies
21:05:44 <elliott> stored in the form of gbp
21:05:49 <zzo38> Then I have to convert it.
21:06:16 <elliott> Gregor: Today I learned that most libc symbols have boring names.
21:06:20 <Gregor> X-D
21:06:35 <elliott> Gregor: WHY CAN'T THERE BE SOME FATAL ERROR FUNCTION CALLED wtf()
21:06:39 <Vorpal> elliott, I tried -CD (to demangle)
21:06:43 <Vorpal> elliott, it is too long to paste on irc
21:06:50 <Vorpal> it is too long to fit in my terminal window
21:06:59 <elliott> IT IS LONGER THAN TIME ITSELF.
21:07:15 <elliott> olsner: imul ax, 26
21:07:16 <elliott> shr ax, 12
21:07:16 <elliott> add ax, 80
21:07:17 <elliott> what's the stupid
21:07:28 <elliott> olsner: If I omit the add, it reliably returns to the start of the current line
21:07:29 <elliott> oh
21:07:32 <elliott> I had add ,160 before
21:07:34 <elliott> but that was just as buggy :D
21:07:37 <elliott> despite being 10x more logical
21:07:39 <Vorpal> god damn over 10 000 chars long.
21:07:42 <Vorpal> that is absurd
21:07:45 <Vorpal> over 9000 sure
21:07:47 <Vorpal> but 10 000?
21:08:05 <olsner> Vorpal: OVER NINE THOUSAAAAND?
21:08:16 <Vorpal> olsner, dude too late :P
21:08:17 <Vorpal> http://sprunge.us/YHRR
21:08:19 <Vorpal> there it is
21:08:33 <Vorpal> I have to say that the name mangling does a good job.... considered
21:08:40 <elliott> CowString
21:09:04 <Vorpal> I wonder how they wrote that thing
21:09:09 <Vorpal> it must be generated
21:09:22 <olsner> well, templates is code generation, pretty much
21:09:23 <Vorpal> I mean, not even boost developers would end up writing out such a long line
21:09:27 <Vorpal> olsner, true
21:09:33 <olsner> and typedefs for compressing duplicated parts
21:09:43 <oerjan> <Gregor> elliott: If you actually donate, I will give vanity ALL SORTS OF WHATEVER YOU WANT <-- prediction, Gregor gets the domain and then goes bankrupt from all the resulting obligations
21:10:13 <Gregor> oerjan: Prediction: I actually accept giving out only vanity email addresses and subdomains :P
21:10:16 <Vorpal> olsner, does the mangled variant compress duplicate sections?
21:10:38 <olsner> not afaik
21:10:43 <Vorpal> hm
21:11:01 <olsner> but it should be fairly obvious whether it does
21:11:03 <Vorpal> olsner, how does it manage to compress it into 1384 bytes then
21:11:24 <elliott> argh
21:11:29 <elliott> why isn't "div 80" valid in nasm
21:11:30 <Vorpal> olsner, the unmangled one is 10339 chars after all
21:11:32 <elliott> nor even "div ax, 80"
21:11:35 <oerjan> Gregor: THE AMOUNT OF SUBDOMAINS WILL BE SO ENORMOUS YOU GO BANKRUPT FROM BUYING THE DNS SERVER
21:11:40 <Vorpal> elliott, went back to div instead of imul?
21:11:52 <elliott> Vorpal: trying to :)
21:11:56 <olsner> looks like it's using the namespaces to say "outer namespace::sequence" rather than "boost::spirit::classic::sequence"
21:11:56 <Vorpal> elliott, why
21:12:07 <elliott> Vorpal: because the imul solution is unworkable
21:12:15 <Vorpal> olsner, ah
21:12:39 <Vorpal> elliott, why not switch to the 128 line length stuff
21:12:41 <fizzie> elliott: You can only divide by a reg/mem8 or reg/mem16, not by an immediate.
21:12:47 <elliott> hmm, wow, my archive binging actually failed
21:12:58 <elliott> after over a week of binging, i haven't continued :)
21:12:59 <elliott> just realised now
21:13:00 <Vorpal> elliott, which comic?
21:13:03 <elliott> Vorpal: Homestuck
21:13:05 <Vorpal> ah
21:13:14 <elliott> which is WAY TOO DAMN LONG
21:13:15 <oerjan> the binge got stuck
21:13:15 <elliott> fizzie: X_X
21:13:59 <olsner> elliott: is homestuck == http://www.mspaintadventures.com/ ? (that's the first google hit)
21:14:11 <elliott> olsner: homestuck \elem mspaintadventures
21:14:22 <fizzie> Homestuck is horribly long, yes; I recently (three months ago?) read through it manually, but then haven't actually continued following it; it was all just so much.
21:14:48 <elliott> fizzie: One of my friends follows it and as far as I can tell it eats about ~99% of his time. :p
21:15:52 <olsner> 3600 that's just an hour if you spend 1s per page
21:16:26 <elliott> olsner: uh, more than 3600 I believe
21:16:27 <elliott> well, not sure
21:16:46 <elliott> olsner: anyway, pages have sometimes-long narration, and can have usually-long chatlogs, plus that's ignoring all the flash updates
21:16:58 <olsner> hmm, where did I get that number? you didn't tell me how long it was
21:17:06 <elliott> which are (up to the point I read, anyway) up to a few minutes long. also the ... "games" (is it a game if there's only one outcome?), which of course take an arbitrary amount of time
21:17:18 <elliott> olsner: well the comic id starts at like 1900 I think, and it's at 5xxx for some xxx
21:17:19 <fizzie> "approximately 3,600 pages as of the end of February, 2011"
21:17:20 <Phantom_Hoover> http://en.wikipedia.org/wiki/File:Osmium_1-crop.jpg
21:17:26 <elliott> fizzie: ah.
21:17:32 <Phantom_Hoover> Osmium does not look as awesome as I thought it did.
21:17:33 <fizzie> (From the mspaintadventures wikia.)
21:17:34 <elliott> 5500-1900 = 3600, so yeah.
21:17:49 <elliott> Phantom_Hoover: lol, looks like a face
21:17:57 <fizzie> But there's quite often some complicated flash things to navigate and all that.
21:18:00 <Phantom_Hoover> http://en.wikipedia.org/wiki/File:Osmium_cluster.jpg
21:18:04 <fizzie> So "one second per page" doesn't really work.
21:18:06 <Phantom_Hoover> Although that's pretty awesome.
21:18:14 <elliott> fizzie: Sheesh, I just said that :P
21:18:21 <fizzie> Oh, I missed it in the babble.
21:18:40 <elliott> i suppose there are games with only one outcome
21:18:43 <elliott> e.g. monkey island
21:18:51 <elliott> and other such advenchoor gaymes
21:19:18 <elliott> argh, I think the problem is
21:19:23 <elliott> that the "ok" is being accounted for wrongly
21:19:24 <elliott> in the newline code
21:19:26 <elliott> or something
21:22:18 <elliott> mov bx, 160
21:22:18 <elliott> div bx
21:22:18 <elliott> inc ax
21:22:18 <elliott> inc ax
21:22:18 <elliott> imul ax, 160
21:22:19 <elliott> hmm
21:22:37 <elliott> oh
21:22:38 <elliott> two incs
21:22:48 <elliott> still broken though
21:22:50 <olsner> add ax,2?
21:24:10 <fizzie> Anyway! mov dx, 0x03d4; mov al, 0x13; out dx, al; inc dx; mov al, 0x80; out dx; and that should (very theoretically; probably doesn't work) leave the display card using 256-byte offset between text lines in memory. (Assuming VGA, and assuming it's in the CGA mode and not the Hercules/MDA mode. And like I said, probably won't work.)
21:24:35 -!- poiuy_qwert has quit (Quit: This computer has gone to sleep).
21:25:13 <fizzie> elliott: Have you remembered to zero dx there? Or if not, you probably want div bl.
21:25:34 <elliott> fizzie: Hmm, right.
21:25:39 <fizzie> Since "div bx" will divide dx:ax by 160 there.
21:25:59 <fizzie> Of course then you'll end up with quotient in al and remainder in ah.
21:26:07 <fizzie> (If you divide by bl.)
21:26:47 <elliott> Indeed.
21:27:08 <elliott> hmm, do imuls on al overflow into ah?
21:27:10 <elliott> "overflow"
21:27:43 <fizzie> You can't imul a byte.
21:28:10 <fizzie> Or, hmm, yes, you in fact can, with the single-operand form.
21:28:18 <elliott> Ah.
21:28:30 <elliott> ok:mov dword [es:si], 0x076b076f
21:28:30 <elliott> mov ax, si
21:28:31 <elliott> mov bl, 160
21:28:31 <elliott> div bl
21:28:31 <elliott> inc al
21:28:31 <elliott> xor ah, ah
21:28:33 <elliott> imul ax, 160
21:28:35 <elliott> mov si, ax
21:28:37 <elliott> ret
21:28:39 <elliott> Ugh.
21:28:41 <elliott> So ugly and long.
21:28:46 <fizzie> It looks shortenable.
21:29:14 <elliott> fizzie: ORLY?
21:29:16 <fizzie> For one thing, you could "mul bl" in place of "xor ah, ah; imul ax, 160".
21:29:22 <elliott> Hm, right X-D
21:29:28 <fizzie> Assuming you still have 160 in bl, that would multiply al by bl and put the result in ax.
21:29:50 <elliott> 24 00000022 89F0 mov ax, si
21:29:50 <elliott> 25 00000024 B3A0 mov bl, 160
21:29:51 <elliott> 26 00000026 F6F3 div bl
21:29:51 <elliott> 27 00000028 FEC0 inc al
21:29:51 <elliott> 28 0000002A F6E3 mul bl
21:29:51 <elliott> 29 0000002C 89C6 mov si, ax
21:29:53 <elliott> 30 0000002E C3 ret
21:29:54 <elliott> At least they're short instructions.
21:30:14 -!- pingveno has quit (Ping timeout: 252 seconds).
21:30:31 <elliott> 13 bytes, to be precise.
21:30:44 <olsner> inc ax should be a single-byte instruction
21:31:02 <elliott> 81 sixth.o
21:31:02 <elliott> For read word and ok.
21:31:07 <elliott> Plus a smlal loop.
21:31:10 <elliott> olsner: good point
21:31:13 -!- pingveno has joined.
21:31:35 <olsner> (I know because the single-byte inc instructions have been reused as REX prefixes in long mode)
21:32:16 <elliott> aha, if I use di for the screen pointer it's shorter by two bytes!
21:32:28 <zzo38> elliott: Well, you started OK. There is still more room left.
21:32:40 <elliott> except that using di like that breaks it
21:32:43 <elliott> probably the bios call clobbers it
21:33:21 <zzo38> Save to stack if necessary?
21:33:26 -!- Behold has joined.
21:33:37 <elliott> simpler just to use si, I think
21:33:47 -!- BeholdMyGlory has quit (Read error: Operation timed out).
21:33:50 <zzo38> Yes use si if it doesn't break
21:34:01 <elliott> OK, so now I have keyboard input, apart from numbers... I should probably write an interpreter word
21:34:04 <elliott> Here's what I'm thinking for the dictionary:
21:34:17 <elliott> <32-bit name (2 bits unused; don't know what to do with them)> <code pointer> <data pointer>
21:34:23 <elliott> Just lots of them consecutively in memory.
21:34:35 <elliott> Actually, do I need a separate code and data pointer?
21:34:39 <elliott> Can't I just generate machine code on the fly, and just have
21:34:41 <elliott> <name> <code pointer>
21:34:42 <elliott> ?
21:34:48 <elliott> Even for integers, possibly.
21:34:52 <olsner> what does the data pointer do?
21:35:26 <elliott> olsner: for instance, if code pointer = LITERAL (I forget the exact name), it pushes the data to the stack
21:35:29 <elliott> because the data is the integer literal
21:35:35 <elliott> normally, the code pointer is just a stub that jumps to the data, IIRC
21:35:41 <elliott> zzo38 can probably correct me on this :)
21:35:50 <olsner> right, so you could just generate code that includes that literal?
21:36:02 <elliott> olsner: that's what i'm thinking
21:36:07 <elliott> *I'm
21:36:43 <elliott> the dictionary will not be terminated yet, so any invalid word will just crash the forth :)
21:37:54 <elliott> apparently dword [ds:ax] is an invalid effective address :(
21:38:08 <fizzie> Yes, only bx/bp/si/di work there.
21:38:31 <olsner> ax is ineffective as an address :)
21:38:53 <fizzie> And they call their registers "general-purpose"...
21:39:24 <elliott> more like general porpoise
21:39:28 <elliott> genital porpoise
21:41:03 <elliott> hey, I can use a 16-bit code pointer!
21:41:09 <elliott> so just 6 bytes per dictionary entry
21:41:45 <olsner> are you doing this in real mode completely now?
21:41:59 <elliott> yep
21:42:07 <elliott> hmm, with "org 0x7c00", is the code segment 0 or 0x7c00?
21:42:52 <elliott> ok, I have what is ostensibly an interpreter word
21:42:54 <olsner> that means the code segment is supposed to be 0x7c0(0)
21:43:04 <elliott> http://sprunge.us/iYag
21:43:10 <olsner> ostensibly is a good word
21:43:19 <elliott> err
21:43:20 <elliott> don't want +1
21:43:21 <elliott> want +4
21:43:56 <fizzie> olsner: What it means is that starting from there, the assembler assumes the current address is 0x7c00; I don't think that works at all if cs=0x7c0, since then you'd have "org 0" code?
21:44:12 <elliott> hmm, or should I inline the machine code of every word into the dictionary :D
21:44:14 <elliott> to avoid having to juggle memory
21:44:19 <olsner> fizzie: hmm, so I have it backwards then? yuck
21:44:44 <Ilari> Doesn't BIOS jump to loaded boot block at 0000:7C00?
21:44:49 <elliott> "error: words can only call up to 10 other words"
21:45:06 <elliott> Ilari: Apparently some do 7c00:0, but that's hearsay.
21:45:39 <fizzie> You mean 7c0:0, but anyway. Sounds rather nasty.
21:45:48 <elliott> Yes.
21:45:50 <elliott> It's probably lies.
21:46:05 <Ilari> From one emulator: Emulated: BIOS output: Booting from 0000:7c00
21:46:08 <elliott> olsner: hmm, I should pick a location for my data stack, and a register to put it in :)
21:46:15 <elliott> Ilari: I think all _sane_ ones do it that way.
21:47:01 <olsner> elliott: use si instead of di for reading the dict, then you can use string instructions :P
21:47:05 <elliott> oh wait literal _doesn't_ work that way
21:47:07 <elliott> it looks at the return stack
21:47:11 <elliott> reads the next value
21:47:12 <elliott> and pushes that
21:47:12 <elliott> IIRC
21:47:15 <elliott> so the assembly is literally
21:47:21 <elliott> [call LITERAL]; <some value>
21:47:22 <elliott> well.
21:47:23 <elliott> I think it is...
21:47:26 <elliott> might not be...
21:47:29 <elliott> depends where it returns to
21:47:30 <elliott> hmmhmm
21:47:33 <elliott> <olsner> elliott: use si instead of di for reading the dict, then you can use string instructions :P
21:47:35 <elliott> olsner: could I really? :P
21:47:49 <olsner> I think so
21:48:08 <olsner> at least if you can use a 32-bit lodsd from 16-bit mode
21:48:12 <elliott> I use si already for the screen, but that sounds like a bigger win
21:48:16 <elliott> olsner: problem is, each entry is 6 bytes
21:48:18 <elliott> which is a strange size
21:48:25 <elliott> (4 byte dword name + 2 byte code pointer)
21:48:35 <olsner> si is for reading and di is for writing :) swap them
21:48:35 <elliott> hmm
21:48:42 <elliott> with a data pointer, I could do indirect threaded code
21:48:51 <elliott> which WOULD allow for "LITERAL, 42"
21:48:59 <elliott> olsner: well i don't use any special features of it, it's just so that [es:foo] is short
21:49:09 <elliott> I even do it separately like
21:49:11 <elliott> mov byte [es:si], al
21:49:11 <elliott> mov byte [es:si+1], 0x07
21:49:19 <elliott> (ah contains the scancode)
21:50:54 -!- sftp has quit (Remote host closed the connection).
21:51:13 -!- zzo38 has quit (Remote host closed the connection).
21:51:26 <fizzie> If you have 4-byte names and 2+2-byte pointers, you *could* even use some sort of "repne scasd" thing for automagically scanning the dictionary for a word; with the "minor" drawback that if the data/code pointer concatenated happens to look too much like a word, you'd then interpret the following word name as data:code pointers.
21:51:57 <elliott> fizzie: Hmm, so having another pointer in the dictionary might actually save me bytes ... and would let me do indirect threaded code...
21:52:16 <fizzie> (scasd uses di, though, not si.)
21:52:16 <olsner> I think scasd is a win anyway, since it both increments si and compares
21:52:18 <elliott> fizzie: You mean if a code/data pointer was the same as the name entered?
21:52:25 <elliott> That would be unfortunate, but seems unlikely.
21:52:27 <olsner> oh, DI it was
21:52:42 <fizzie> If a code:data pointer concatenated, assuming words were 4 bytes and pointers 2.
21:53:03 <elliott> fizzie: That seems a bit unlikely.
21:53:52 -!- pikhq_ has joined.
21:54:03 -!- pikhq has quit (Ping timeout: 260 seconds).
21:55:36 * Phantom_Hoover → sleep
21:55:39 -!- Phantom_Hoover has quit (Quit: Leaving).
21:56:15 <elliott> Just realised I'm devoting large amounts of effort to writing a completely buggy implementation of a quarter of Forth :P
21:56:42 <Vorpal> elliott, giving up?
21:56:52 <elliott> Heck no
21:56:55 <elliott> *.
21:56:56 <fizzie> Oh, there's a bit of an issue in that the string opcodes use either ds:si or es:di; so scasd, which uses di, actually uses es:di instead, and if your es points to video memory, that's not very good.
21:57:05 <elliott> fizzie: Yeeeeeeeeeees...
21:57:21 <elliott> fizzie: I could always initialise si to video memory, but then newline would be a pain :P
21:57:26 <elliott> Unless 0xB800 is a multiple of 80.
21:57:32 <elliott> It is not.
21:59:12 -!- nescience has joined.
21:59:32 -!- sftp has joined.
22:00:11 <elliott> OK i tried running it i have problems with it . this is what i get. when it asks the first quistion i say yes it hangs completely then reboots. i say no then i enter the code failure how do i boot it? Your os looks like windows 1.0 buty has way more features. When is the next release coming out ? Why not turn this into a comunity prodject ? its opensource. We make it secure and give it more aplications.
22:00:51 <Vorpal> night →
22:01:30 <elliott> OK, I think I will include a data pointer.
22:01:38 <elliott> Not sure how to pass it to the routine though. Maybe ax.
22:01:42 <elliott> Or better, di.
22:02:01 <olsner> using one of the many registers available for such things :D
22:02:32 <elliott> olsner: "many"
22:02:55 <elliott> There are many things the x86 has many of, like design flaws, but registers of any kind are not one :P
22:03:09 <elliott> hmm, what's dx again?
22:03:14 <elliott> just general purpose?
22:03:14 <elliott> ooh
22:03:18 <elliott> I could pass it in cx!
22:03:20 <elliott> for no reason at all!
22:03:39 <nescience> you guys might be good to ask; any of you familiar with range encoding?
22:04:30 <elliott> *chirp*
22:04:43 <elliott> try it when the clever people are on, not dolts like me and olsner
22:04:53 <elliott> <olsner> hey, I resemble that remark!
22:05:03 <nescience> :P
22:05:43 <nescience> I am trying to figure out if there's a clean way to do a range encoder that outputs in base 192375
22:06:03 <nescience> or is that 193275? something like that. 3*3*3*3*5*5*5*19
22:06:33 <elliott> 192,375
22:06:37 <elliott> thanks google
22:07:12 <nescience> ok I remembered right
22:07:29 <nescience> anyway it obviously won't divide very many times evenly
22:07:29 <olsner> "clean" way? no, all possible ways will cover you in excrement
22:07:47 <nescience> clean as in I don't lose data to rounding
22:08:09 <nescience> but I don't think that's possible / likely using a fixed buffer
22:08:13 <elliott> yeah, you have to use the range_encode_and_cover_author_of_code_in_excrement subroutine
22:08:18 <elliott> available in most language's standard libraries
22:08:27 <nescience> ha ha
22:08:28 <elliott> *languages'
22:08:49 <nescience> so failing that, I don't know if it will be better than huffman
22:09:23 <nescience> I can store 17 bits of huffman output in 192375 symbols but there is waste
22:09:55 <nescience> I can store 35 in 192375^2 which gains a bit but is still wasteful
22:10:19 <nescience> I don't know how much waste there would be from trying to use range coding to fit the output better is all
22:13:02 <elliott> out of curiosity, what are you doing?
22:16:01 <elliott> nescience?
22:16:48 <nescience> encoding binary data into mirc control codes
22:17:09 <nescience> if I update it to mirc 7 which has italics I bet I could get rather more efficiency
22:17:34 <nescience> but it's not been so long, maybe some clients would still display it
22:19:33 <nescience> right now it expands the data by 272% about
22:19:44 <nescience> which is pretty good, it used to be 400%
22:19:53 <nescience> the compressed data I mean
22:20:14 <nescience> and it's block based so there's some waste there and also in transmission of the huffman data
22:21:47 <nescience> I'll also accept a way of outputting huffman or range encoding to variable length symbols ;)
22:22:02 <elliott> nescience: Cheat. gzip it before encoding :-P
22:22:12 <nescience> I have an idea or two on that count actually, but no idea if it'd be optimal
22:22:22 <nescience> I already huffman compress it first
22:22:27 <Gregor> HMMM I didn't notice
22:22:30 <Gregor> I do own libdl.so
22:22:39 <nescience> I never got around to full deflate
22:22:46 <Gregor> And libz.so
22:22:55 -!- BeholdMyGlory has joined.
22:22:58 -!- BeholdMyGlory has quit (Changing host).
22:22:58 -!- BeholdMyGlory has joined.
22:22:59 <Gregor> They're not allocated yet, but they are reserved for me.
22:23:14 -!- nescience has quit (Remote host closed the connection).
22:23:29 <elliott> Gregor: I demand crc32!!!
22:23:32 <elliott> And er
22:23:40 -!- pikhq has joined.
22:23:40 -!- pikhq_ has quit (Ping timeout: 250 seconds).
22:23:40 <elliott> gzgets <-- why does this even exist
22:23:59 <Gregor> elliott: lawl
22:24:23 <elliott> olsner: I need to write a program to pack names into their dwords so I can pre-fill the dictionary without tearing my hear out :)
22:24:24 <elliott> *hair
22:24:27 -!- Behold has quit (Ping timeout: 255 seconds).
22:24:37 <olsner> or a macro...
22:24:48 -!- nescience has joined.
22:24:56 <nescience> oh screw you, CM nightly
22:25:53 <elliott> olsner: that sounds "difficult" in nasm
22:27:05 <nescience> right so anyway, the challenge is to encode data efficiently in mirc control codes; I can approach 261 or something like that by lengthening the block size but that'd be a shitload of permutations
22:27:18 <elliott> well THAT didn't work
22:27:49 <nescience> of which I don't know an efficient way to calculate either the total values or a specific permutation, that'd be nice too
22:28:26 <fizzie> Nothing is "just general-purpose"; dx is at least special in that it's the only thing you can stick an IO port, there's "out imm8, al/ax/eax" and "out dx, al/ax/eax" but that's it.
22:28:35 <fizzie> Possibly it doesn't have any other special features.
22:28:53 <fizzie> Well, and it's the upper half of the dx:ax construction for div/mul.
22:29:24 <elliott> fizzie: huh what what's that in reply to
22:29:33 <fizzie> <elliott> hmm, what's dx again?
22:29:33 <fizzie> <elliott> just general purpose?
22:29:44 <elliott> well, right. i meant it's not stack or anything.
22:29:54 <elliott> what will usually be there is a pointer, but all my pointers are pretty much used up :)
22:29:59 <elliott> no wait, i can reuse di
22:30:08 <elliott> no wait, i can't
22:36:13 <Gregor> I should go on ##c and ask people to donate :P
22:36:16 <Gregor> Or maybe ##unix?
22:37:13 <elliott> Gregor: Err, have you ever been in ##c?
22:37:27 <Gregor> Yeah, it's not a good idea X-P
22:37:30 <elliott> Responses will fall into a few categories:
22:37:35 <elliott> (1) PoppaVic saying something incoherent as usual
22:37:50 <elliott> (2) LIBC.SO HAS NOTHING TO DO WITH C, WE EXECUTE C ON PURE PLATONIC MEDIUMS DISTINCT FROM ANY COMPUTER, YOU ARE EVIL NON-PORTABLE NON-C FUCK!!
22:37:55 <elliott> (3) /kickban
22:38:03 <Gregor> lol
22:38:10 <elliott> (4) This is a channel to flame^Wdiscuss C, stop bringing the level of discourse down, you monkey-shitting fucknuts!
22:38:23 <elliott> But mostly, PoppaVic saying something incoherent.
22:40:00 -!- BeholdMyGlory has quit (Read error: Operation timed out).
22:40:13 -!- BeholdMyGlory has joined.
22:42:29 <nescience> actually, nth permutation is not computationally hard, that must not be what held me up
22:42:50 <nescience> hm, I guess it would be summing the number of values in each permutation
22:43:30 <nescience> along with deriving how many combinations of symbol lengths fit into N characters
22:43:50 <elliott> oh my god
22:43:51 <elliott> in germany
22:43:53 <elliott> you can call yourself
22:43:59 <elliott> Prof. Dr. Dr. Dr. Dr. Dr. Dr. Dr. First Last
22:44:05 <nescience> probably fast enough to use in C but not mirc script
22:44:05 <elliott> you just need seven phds
22:44:08 <nescience> lol
22:44:15 <elliott> amazing.
22:45:24 <nescience> Dr Dr Dr Dr Dr Buffalo buffalo Buffalo buffalo buffalo......
22:46:08 <elliott> YES.
22:48:48 <nescience> I am imagining this to the tune of BADGER BADGER
22:51:06 -!- cheater00 has quit (Ping timeout: 246 seconds).
22:51:49 -!- cheater00 has joined.
22:53:28 <oerjan> \o|
22:53:29 <myndzi> |
22:53:29 <myndzi> /<
22:53:34 <oerjan> bah
22:54:00 <nescience> wut
22:55:03 <oerjan> nescience: YOU ARE INSUFFICIENTLY MYNDZI
22:55:26 <nescience> wut wut
22:55:46 <nescience> of course my phone doesn't run mirc scripts
22:55:52 <nescience> mirc is not for android silly
22:55:58 <oerjan> O KAY
22:57:20 <nescience> it would be kind of amusing to have a different script that put like, two more beneath him like acrobats :P
22:57:43 <nescience> but it'd get me kicked from everywhere surely
22:57:46 <oerjan> ...just beware of loops
22:58:01 <oerjan> /o|
22:58:01 <myndzi> |
22:58:01 <myndzi> |\
22:59:06 <nescience> loops? what loops?
22:59:08 <nescience> loops? what loops?
22:59:10 <nescience> loops? what loops?
22:59:12 <nescience> loops? what loops?
23:00:01 <elliott> "Nicholas If-Jesus-Christ-Had-Not-Died-For-Thee-Thou-Hadst-Been-Damned Barbon" BEST NAME EVER
23:00:10 <elliott> "His unusual middle name, given to him by his strongly Puritan father, is an example of the religious "slogan names" given in Puritan families in 17th-century England."
23:00:27 <elliott> "Nicholas Barbon was the eldest son of Praise-God Barebone (or Barbon), after whom the Barebone's Parliament of 1653—the predecessor of Oliver Cromwell's Protectorate—was named.[1][2] Praise-God's reputed Christian name was "Unless-Jesus-Christ-Had-Died-For-Thee-Thou-Hadst-Been-Damned",[2] a variant of his son's middle name. He became a religious separatist with Millenarianist beliefs, with fervent views in favour of infant baptism in particu
23:00:27 <elliott> lar.[3][4]"
23:02:41 <nescience> I think "hadst" is improper grammar there?
23:03:09 <elliott> Who cares!
23:03:24 <nescience> if it was my name I sure would
23:03:25 <elliott> I just hope everyone referred to him by his full name.
23:03:35 <elliott> "Hi there, Nicholas If-Jesus-Christ-Had-Not-Died-For-Thee-Thou-Hadst-Been-Damned Barbon!"
23:03:41 <elliott> (started typing that out but then gave up and copy-pasted)
23:03:51 -!- nescience has quit (Remote host closed the connection).
23:05:13 * oerjan thinks "hadst" is correct
23:05:36 -!- nescience has joined.
23:05:45 <oerjan> * oerjan thinks "hadst" is correct
23:05:57 <nescience> I wonder where the logs ar
23:05:57 <nescience> e
23:06:04 <nescience> I gotta figure this crash out
23:06:08 <nescience> paste his name again?
23:06:11 <oerjan> "Additional archaic forms are second-person singular present tense hast and second-person singular past tense hadst or haddest."
23:06:35 <nescience> I know what hadst is
23:06:41 <nescience> but it's not past tense
23:07:10 <oerjan> If-Jesus-Christ-Had-Not-Died-For-Thee-Thou-Hadst-Been-Damned
23:07:30 <nescience> what it is supposed to be is "would have been"
23:07:40 <oerjan> hm
23:07:43 <nescience> which, without thinking overmuch, should be would hadst
23:07:54 * oerjan swats nescience -----###
23:08:15 <oerjan> you don't put hadst instead of an _infinitive_!
23:08:17 <nescience> but I'm not sure, that cdoesn't sound quite right either
23:08:35 <nescience> well that's why ;)
23:08:52 <elliott> nescience: logs are in topic
23:08:55 <elliott> both links
23:08:58 <elliott> first one is better >:D
23:08:59 <oerjan> it could be archaic grammar as well - "hadde ... hadde" is completely correct in norwegian
23:09:03 <nescience> I mean my phone logs
23:09:07 -!- Sgeo has joined.
23:09:15 <nescience> so I can find out why it crashed
23:09:15 <elliott> hadst is archaic anywhere :D
23:09:17 <elliott> nescience: ah
23:09:28 <Sgeo> Kubuntu is once again working as an equal OS on my laptop.
23:09:37 <Sgeo> However, it's unusable: No battery meter
23:09:38 <oerjan> elliott: i mean not needing "would have" for the consequence part
23:09:44 <elliott> oerjan: right
23:10:44 <nescience> wouldst have, maybe then
23:10:47 <nescience> makes more sense
23:10:48 <oerjan> Hadde jeg hatt den hatten jeg hadde, så hadde jeg hatt hatt.
23:11:01 <nescience> I'm drawing a blank her cause I'm at work and can't think about it
23:11:10 <oerjan> (If i'd had the hat i had, then i would have had (a) hat)
23:12:11 <elliott> hmm
23:12:29 <elliott> olsner: there's a strange bug in my forth code :)
23:12:30 <elliott> but
23:12:34 <elliott> it's close to being able to run a primitive word...
23:12:40 <olsner> elliott: NICE!!!1
23:13:02 <elliott> olsner: specifically, the screen background is purple. i am unable to ascertain why.
23:13:16 <elliott> oh, that's why.
23:13:32 <elliott> so, er, i wonder if my packing is right
23:13:35 <elliott> I get FOO = 0x19ef
23:13:48 <elliott> by packing five bits of ascii-64
23:13:57 <elliott> and shifting the value left by 5 bits each time
23:14:02 <elliott> *by 5 each time
23:15:12 <olsner> now you should change it so the background is intentionally purple
23:15:22 <olsner> also, good night :)
23:16:18 <elliott> olsner: yeah, purple is a nice colour
23:17:13 <elliott> Wow at the SumatraPDF installer.
23:17:54 <Gregor> If Ulrich Drepper has a bid in on libc.so, my fund to get libc.so itself could get a boon from the "prevent Ulrich Drepper from getting libc.so" crowd :P
23:18:23 <elliott> Gregor: Likelihood of him having a bid on that: -1
23:18:26 <elliott> *Probability
23:19:09 <Gregor> I'd say it's extremely unlikely, but not THAT unlikely. It has not actually violated the rules of probability theory with its unlikelihood.
23:19:55 <elliott> Gregor: YES IT HAS
23:20:07 <oerjan> elliott: don't be so negative
23:20:15 <elliott> oerjan: I'M ABSOLUTELY NOT
23:20:18 <elliott> NEVER
23:20:20 <elliott> WOULD I EVER BE NEGATIVE
23:20:23 <elliott> I AM NEVER NOT POSITIVE
23:20:25 <elliott> MY NEGATIVITY IS ABSOLUTE
23:20:27 <oerjan> O KAY
23:24:14 -!- FireFly has quit (Quit: swatted to death).
23:27:04 <elliott> Cool, Apple now charge people for the privilege of programming their own computer.
23:27:15 <Gregor> Sounds Applish.
23:27:21 <elliott> (OK, so Python and Ruby and whatnot come by default, but the C compiler (i.e. Xcode) costs money.)
23:27:27 <elliott> Well. The Mac Shit Store version does.
23:27:32 <elliott> Perhaps there's some other way to download it.
23:27:48 <elliott> Apple have moved from jerks to insidious, especially considering the iPad's utter unprogrammability.
23:28:14 <elliott> Gregor: To be fair, Microsoft does this too. :p
23:28:21 <Gregor> Yup
23:28:22 <elliott> But I don't know of any third-party gcc distribution as popular as MinGW.
23:28:37 <Gregor> Errr, wait, I thought MS had some free "Express" version?
23:28:46 <elliott> Hmm, right, it does; it's terrible, of course, but yes.
23:28:54 <elliott> Apple: WORSE THAN MICROSOFT
23:28:55 <Gregor> XCode is terrible too :P
23:28:55 -!- pikhq has quit (Ping timeout: 246 seconds).
23:29:01 -!- pikhq has joined.
23:29:01 <elliott> Gregor: Xcode is just the vehicle to get gcc :P
23:29:07 <elliott> Microsoft don't have the decency to give you even gcc.
23:29:09 <elliott> What happened to the days where C64s booted up to BASIC prompts, that's what I want to know. :/
23:29:14 <Gregor> Well yeah, but XCode itself is abysmally bad.
23:29:55 <elliott> Gregor: I dunno... compare with Visual Studio...
23:30:03 <elliott> (OK, I jest, Visual Studio is actually pretty advanced :P)
23:30:13 <elliott> Gregor: P.S. It's Xcode, lowercase c.
23:30:17 <Sgeo> Hmm
23:30:21 <elliott> Think Xbox, another retardedly-capitalised product.
23:30:24 <Sgeo> Mnesia sounds fascinating
23:30:27 <Gregor> Hm
23:30:40 <elliott> Hm?
23:31:43 <Gregor> Hm.
23:31:47 * variable pokes random people
23:31:52 <elliott> Meanwhile, lol wat: http://notes.kateva.org/2007/01/sarbanes-oxley-means-no-features-in.html
23:31:56 <elliott> variable: Ouch! You've corrupted my memory!
23:31:59 -!- poiuy_qwert has joined.
23:32:16 <fizzie> variable: Careful, you'll change your display border color accidentally.
23:32:49 <variable> fizzie: that's the point
23:33:36 <Gregor> elliott: YAY LAWS
23:33:40 <Gregor> variable: HALP!
23:33:46 <variable> Gregor: hrm?
23:33:46 <elliott> Gregor: LIBERTARIAN
23:33:50 <Gregor> variable: Donate to the Help Gregor Get libc.so Fund!
23:33:55 <elliott> "Microsoft charges $549 for Visual Studio Pro, but at least you can get the command-line compilers and Windows API bindings for free as part of the Windows SDK."
23:33:55 <variable> how much monies?
23:34:03 <elliott> Heyho, a terrible compiler sans the IDE.
23:34:08 <variable> Gregor: and who are you bidding against!?
23:34:15 <Gregor> variable: TBD, but any donated money will be returned if I don't get it; it's a closed auction.
23:34:19 <Gregor> Twelve anonymous bidders.
23:34:22 <variable> ouch
23:34:24 <Gregor> (Plus myself)
23:34:34 <variable> :-( twelve smart people
23:35:43 <variable> Gregor: my budget atm is $0 :-\
23:36:10 <Gregor> How's your budget on the 28th look? X-P
23:36:16 <Gregor> (That's when the auction actually opens)
23:36:56 -!- cheater- has joined.
23:37:52 -!- nescience has quit (Quit: -a-).
23:40:05 -!- cheater00 has quit (Ping timeout: 246 seconds).
23:43:50 <elliott> hmm, what was that insane scientific programming langauge again
23:43:53 <elliott> *language
23:44:04 <elliott> Firesomething, I think
23:46:22 <Sgeo> Frink
23:46:23 <Sgeo> ?
23:48:15 <elliott> pikhq: Pingt.
23:50:48 -!- pikhq has quit (Ping timeout: 248 seconds).
23:53:59 <elliott> Video: Visual COBOL Launch – technical demo
23:53:59 <elliott> Sponsored by:
23:53:59 <elliott> See what excited the COBOL world this January. The demo shows how to build COBOL applications within VS2010, and Eclipse IDEs integrating with .NET and other UI technologies… and much more, including COBOL applications running on an Android phone!
23:54:00 <elliott> OH DEAR GOD
23:55:07 -!- poiuy_qwert has quit (Quit: This computer has gone to sleep).
23:55:18 <oerjan> IT'S ALIVE
23:55:58 -!- poiuy_qwert has joined.
←2011-03-08 2011-03-09 2011-03-10→ ↑2011 ↑all