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