00:00:08 oklopol: so is it classic or alpharrrrrrr 00:00:10 a 00:00:33 -!- sftp has quit (Remote host closed the connection). 00:00:41 it doesn't really run on my computer 00:00:49 fun anyway 00:00:56 -!- calamari has joined. 00:01:05 fizzie, doesn't look as nice though 00:01:33 oklopol: you bought it? :P 00:01:35 oklopol: also 00:01:37 oklopol: go into options 00:01:38 no 00:01:42 oklopol: set 3d rendering to fast, rendering distance to short 00:01:44 profit 00:01:48 i've done all that 00:01:55 no change 00:02:25 well, some change 00:03:08 but anyway it isn't that laggy in the mine and that's where i be. 00:06:52 elliott: Okay, so... Presumably he just hasn't bothered with IRC. 00:07:13 too busy 00:07:44 pikhq: No, he lost his shell account that he irssis from. :P 00:09:43 And he can't just use irssi on his own computer... Why? 00:09:46 Oh. Windows. 00:10:23 pikhq: It's cool-Windows-user convention to only irssi from a shell account :P 00:10:26 With PuTTY! 00:10:42 cool-Windows-user? what is this creature? 00:11:47 -!- poiuy_qwert has joined. 00:11:57 calamari: oerjan 00:12:19 -!- FireFly has quit (Quit: swatted to death). 00:13:32 although I use Ubuntu so that's not very cool either :( 00:13:46 meh, ubuntu is... workable 00:13:51 it's not like any other distro is better 00:13:59 who wants to spend effort on current shitty systems? 00:18:29 -!- sebbu has joined. 00:19:11 elliott: Microsoft does! 00:20:23 aaaah, a portal in the middle of a packice 00:20:24 elliott, ^ 00:20:40 well surface level 00:20:42 always that 00:22:18 Vorpal: wat 00:22:21 Vorpal: screenshot 00:22:35 elliott, well I placed some stones around it now, since it was melting 00:22:50 elliott, but sure, starting minecraft again, was just checking in mapper 00:23:43 "The portal is melting!" 00:24:21 elliott, no, the ice was 00:30:05 fizzie, elliott, see new screenshots at the same url as before. 00:30:40 Vorpal: BUT I'M DOING ~HOMEWORK~ (tedium tedium tedium) 00:30:51 elliott, well, then don't see them 00:31:09 no it would be a welcome break, link me :P 00:31:13 found it 00:31:16 elliott, same link as before 00:31:45 http://sporksirc.net/~anmaster/minecraft/screenshots/2010-11-09_01.10.36.png bendy lava 00:31:53 http://sporksirc.net/~anmaster/minecraft/screenshots/2010-11-09_01.24.25.png gahaha 00:32:36 elliott, the former is flowing ;P 00:32:40 BENDY 00:32:43 true 00:32:48 elliott, I didn't say it wasn't 00:32:49 * elliott notes to self http://www.mathopd.org/ 00:32:53 it is flowing and bending 00:33:09 http://sporksirc.net/~anmaster/minecraft/screenshots/2010-11-09_01.24.25.png gahaha <-- what is so funny? 00:33:20 just 00:33:20 the photogenic bird? 00:33:23 It's just amusing 00:33:39 elliott, I placed the cobblestone around there since it was melting by itself 00:33:40 Bird on ice! PORTAL WITH OMINOUS TORCHES on blocks inexplicably floating in water. 00:33:58 and the torches aren't omnious 00:34:17 just there to give it some style 00:34:22 (and light) 00:34:31 Shaddap :P 00:37:16 -!- Sgeo has joined. 00:37:30 Why is .tar.gz more popular than .gz.tar 00:37:31 ? 00:38:13 -!- zzo38 has joined. 00:40:35 Vorpal: Heh, I was deciding what to call my darkhttpd fork, and thought "hey, invert it" -- oops -- and then realised the pun. 00:40:41 (invert the name, that is.) 00:40:56 elliott, XD 00:41:04 elliott, wasn't it obvious from the start 00:41:08 Vorpal: Nope :P 00:42:01 mmmm Minecraft 00:42:19 Vorpal: C on a Lisp Machine ends up very DS9Ky: http://lists.tunes.org/archives/lispos/1997-June/001659.html 00:42:24 [[This isn't as bad as it sounds because (except in the presence of casts) C is 00:42:25 strongly typed. The vast majority of C code is not finicky about the 00:42:25 representation of pointers; only something like a Lisp implementation in C 00:42:25 (e.g. GNU Emacs), which was doing its own pointer tagging, would have trouble. 00:42:25 All pointers were represented as pairs of an array and an index; NULL was 00:42:25 simply a pair of NIL and 0. If you cast a pointer to an integer, you got a 00:42:27 cons of the array part and the index part. You could later cast this back to 00:42:29 a pointer without loss of information, but obviously you couldn't do 00:42:31 arithmetic on it while it was in the form of a cons.]] 00:42:42 "For instance, I used Lisp integers for C `int' and `long'. This meant bignums 00:42:42 would be created automatically, as usual in Lisp." 00:42:52 heh 00:44:04 -!- zzo38 has quit (Remote host closed the connection). 00:45:03 Vorpal: awesome, though. 00:45:58 [[I should add that ZETA-C made critical use of the Lisp Machine's support for 00:45:59 displaced arrays of different element sizes: one can displace a byte array 00:45:59 onto a halfword or word array. (Common Lisp doesn't support this, and I don't 00:45:59 think Scheme has displaced arrays at all.) This permitted storage of 00:45:59 different sizes of things in a single aggregate, and also, e.g., writing a 00:45:59 word through a pointer, casting the pointer to a byte pointer, and reading the 00:46:02 word back as bytes, which is something C programs do occasionally.]] 00:46:36 Vorpal: Oh, and I gave up forking darkhttpd when I saw that it used stdio. 00:46:43 So now I'm writing my own httpd -- how unusual of me! 00:46:52 Feature list: 00:46:59 - Parses and responds to HTTP requests 00:47:18 - Serves a Unix file hierarchy (with sendfile, if it can) 00:47:23 - Supports CGI. 00:47:24 - Supports SCGI. 00:47:25 the end :P 00:49:33 [[ Don wrote the chapter on the 00:49:33 X-Windows Disaster. (To annoy X fanatics, Don specifically asked that we 00:49:33 include the hyphen after the letter “X,” as well as the plural on the word 00:49:33 “Windows,” in his chapter title.)]] 00:52:20 elliott, fork thttpd! 00:52:33 Vorpal: No; thttpd is bloated and has useless features like "throttling". 00:52:38 elliott, XD 00:52:43 Also it supports CGI, and where's the fun in not being able to write my own? 00:52:54 Vorpal: Oh, and the options are in UPPERCASE. 00:52:57 Which annoys me very slightly. 00:53:15 Vorpal: Besides, it probably uses stdio. 00:53:20 elliott, nothing wrong with upper case: $PATH 00:53:27 Yes but not for configuration files. 00:53:33 Vorpal: Oh, and have you *seen* the size of the tarball? 00:53:36 fair enough 00:53:42 497.7 KiBs unpacked. 00:53:44 elliott, more screenshots btw 00:53:46 same url 00:53:57 Real httpds are one file big. 00:54:15 Actually, instead of supporting SCGI, I might just support proxying to another server. 00:54:40 elliott, will you support HTTP/1.1? 00:54:47 with persistent connections? 00:54:49 Vorpal: Yes. :P 00:54:56 Vorpal: Well, first one, yes. Second one, almost certainly (yes). 00:55:07 Vorpal: Everyone knows that dynamic pages are bullshit. 00:55:08 elliott, you have to support the second for the first 00:55:11 (It's just a matter of resetting the state to the initial state and then not disconnecting!) 00:55:18 Erm, 00:55:20 elliott: ^ 00:55:27 Vorpal: HTTP/1.1 is required for Host:, too, which is kind of vital. 00:55:31 elliott, did you see those screenshots? 00:55:31 *the Host header, 00:55:34 pikhq: Shut up :P 00:55:36 Vorpal: Yes. 00:55:39 Vorpal: Make some screenshots of Nether. 00:55:42 Vorpal: (Nice ones.) 00:55:49 elliott, I think there was a few before? 00:55:52 elliott: I'm not entirely sure I was being sarcastic there. Honest. 00:55:56 could make some of that lava cavern 00:56:18 pikhq: If you just want static pages, there are options for you. Such as darkhttpd :P 00:56:52 gopher! 00:57:25 Vorpal: no, i have no desire of being zzo38 00:57:28 elliott: I am always heavily tempted to create webpages via compilation. 00:57:38 Mmm, templating. 00:57:44 pikhq: how can you serve random fortunes on your homepage without dynamic pages? 00:57:45 get real 00:57:46 Like a CMS but less actual work. 00:57:52 elliott: Javascript! 00:57:59 fuck you :P 01:03:07 $ perl -e'print `/bin/ls`, "\n"' 01:03:07 01:03:08 $ 01:03:08 wtf? 01:03:31 oh 01:03:32 empty directory 01:03:33 ha 01:05:39 -!- calamari has quit (Quit: Leaving). 01:11:27 pikhq: I hereby present fortune.cgi: http://sprunge.us/TcAP?pl 01:11:30 pikhq: TEMPLATING IS FOR WEENIES. 01:12:12 elliott: Nice work on omitting the head and body and html tags. 01:12:23 pikhq: Legal HTML 5. 01:12:27 elliott: So many people seem to not know they're optional. 01:12:46 s/\${FORTUNE}/chomp($x=`fortune -a`) and $x/e; 01:12:48 ^ Simplification. 01:12:57 s/\${FORTUNE}/chomp($x=`fortune -a`); $x/e; 01:13:02 Greater simplification, but uglier :P 01:13:15 (well, optional in the file. The DOM makes them via magic, anyways.) 01:13:32 pikhq: (The bonus of this is that you can set your editor to HTML mode and it'll basically work. 01:13:50 Quite nice. 01:13:54 pikhq: Of course, with pages like this, one might as well use PHP for all the good it'll do you :-P 01:13:56 *work.) 01:14:44 pikhq: (TODO: HTTP server to run it on.) 01:14:49 elliott, same URL. Note that 2010-11-09_02.01.24.png is *looking upwards*, though it is hard to tell. 01:15:21 Vorpal: By the way, /r/minecraft advice is to version-control your savefiles. 01:15:33 Vorpal: (Well, technically the non-nerds there word it as "put them in Dropbox", but same thing.) 01:15:59 elliott, I use rsync to back them up. they change a lot so vcs might be impractical 01:16:07 Vorpal: Thus why you commit manually... 01:16:31 elliott, about 2/3 change completely every time according to rsync 01:16:40 elliott, though, nice savescumming with a vcs 01:17:49 last time 01:17:52 Number of files: 14235 01:17:53 Number of files transferred: 8989 01:17:58 which was unusually few files 01:18:00 Vorpal: So have you encountered Herobrine yet?! 01:18:07 sent 25.87M bytes received 172.22K bytes 2.08M bytes/sec 01:18:07 total size is 25.26M speedup is 0.97 01:18:11 elliott, what? 01:18:21 Vorpal: See http://www.minecraftwiki.net/images/6/68/1283223082465.jpg. 01:18:25 Vorpal: (If you say tl;dr I will punch you.) 01:20:25 elliott, wtf 01:20:35 Vorpal: IT'S ALL TRUE. 01:20:56 (Note: Not even vaguely true.) 01:21:02 (Note: Textures are fun!) 01:21:09 (Note: You can change textures. And they are fun!) 01:21:12 http://www.minecraftwiki.net/wiki/User:Kizzycocoa/Herobrine 01:21:20 yes and there are some strange things in that image 01:21:56 Vorpal: what do you mean? 01:22:18 elliott, the red thingy on the side 01:22:29 Vorpal: that's a door, i think. 01:22:39 "He is actually a retextured painting or iron door of the default skin with no eyes. This originated a long time ago, when a "creepy-pasta" was made about Herobrine." 01:22:40 doesn't look like one 01:22:49 Vorpal: well, older version 01:22:55 hm 01:23:35 Vorpal: But it turns out... 01:23:41 NOTCH'S BROTHER *WAS* CALLED HEROBRINE 01:23:44 [DRAMATIC MUSIC] 01:23:50 LOOK 01:23:51 BEHIND 01:23:51 YOU 01:23:57 -!- poiuy_qwert has quit (Read error: Connection reset by peer). 01:24:35 Vorpal: http://www.minecraftwiki.net/wiki/Spleef 01:24:41 elliott, read about it 01:25:03 Vorpal: Sounds more fun if creating block werw allowed. 01:25:13 *was 01:25:37 -!- poiuy_qwert has joined. 01:26:54 Vorpal: http://www.minecraftwiki.net/wiki/Adventure this looks fun although unminecrafty (you've probably seen) 01:27:43 elliott, http://www.minecraftwiki.net/wiki/Minecraftcon_2010 01:27:46 elliott, also seen it 01:28:01 seen it lawl 01:28:53 Vorpal: http://i.imgur.com/7qB8w.png 01:29:01 *facepalm* 01:29:08 pikhq: ? 01:29:12 The Republican solution for the economy? LAYOFFS. 01:29:14 elliott, where? 01:29:26 elliott, I saw the contest? 01:29:28 but already? 01:29:38 Vorpal: "coming tomorrow", 3 hours ago 01:29:40 As everyone knows, firing people provides economic stimulus by kicking it in the crotch, metaphorically. 01:29:48 Vorpal: add http://twitter.com/notch to any rss reader you may have :P 01:30:06 elliott, ah I believe I hit a fatal flaw with this scheme 01:30:08 Vorpal: ha -- "First prize is a 180 GB SSD signed by me (yes, on the actual drive!)" 01:30:12 Vorpal: what scheme? 01:30:19 elliott, adding to RSS reader 01:30:27 don't use one? :P 01:30:27 elliott, I don't have one 01:30:30 me neither 01:30:32 they're just noise 01:30:35 haha 01:30:36 I get my noise from REDDIT! 01:30:41 so much better! 01:30:50 elliott, btw you won't get any UPDATES from me :P 01:30:53 not that you ever did 01:30:57 Vorpal: ? 01:31:27 Vorpal: i repeat, ? :p 01:31:41 elliott, as in, I won't send you (and really won't, not just hypothetically won't) give you and updated alpha 01:31:47 and I have of course never done so 01:32:01 ah. well i'm buying, like, tomorrow anyway 01:32:11 no reason not to, it's cheap 01:32:17 indeed 01:32:19 and fun 01:32:19 "E Ink Unveils Color E-Reader Display" 01:32:24 ...............yes plz 01:32:28 link 01:32:35 "Unlike an LCD screen, the colors are muted, as if one were looking at a faded color photograph. In addition, E Ink cannot handle full-motion video. At best, it can show simple animations." 01:32:35 also how does it work? 01:32:39 oh yeah that's totally what an e-ink screen is meant for 01:32:41 FULL COLOUR VIDEO 01:32:42 morons 01:32:50 Vorpal: http://hardware.slashdot.org/story/10/11/08/2025256/E-Ink-Unveils-Color-E-Reader-Display 01:32:59 elliott, the muted colours might be a problem 01:33:04 eh 01:33:07 ever read a newspaper? 01:33:24 "Right. Color charts in "The Economist" are barely intelligible on Kindle." --comment 01:33:30 elliott, well okay. I was thinking something like a garden photo book with thick glossy pages 01:33:57 Vorpal: that's an item that exists just for the aesthetic experience, why would you abandon paper? 01:34:09 elliott, good point 01:34:39 elliott: Abandon paper? Hell, I'm more likely to start printing and binding books myself than abandon paper. 01:34:42 :) 01:34:57 pikhq: E-readers are very worthwhile. 01:35:00 Especially for students. 01:35:06 oh? 01:35:06 Yeah, but so are dead trees. 01:35:13 can't sell the books on or? 01:35:15 elliott, ^ 01:35:26 Vorpal: That's a flaw of current implementations. 01:35:31 I mean, I sold old text books when I no longer needed it 01:35:36 and if I can't do that... well fuck it 01:35:45 Vorpal: Sell? Seriously? You have the goddamn file right there! 01:35:48 You can make a million copies! 01:35:50 even if it would reduce weight of backpack 01:35:54 elliott, hm 01:35:56 You are your own, limitless library, requiring no fees as you never run out. 01:35:57 Vorpal: DRM sucks. 01:36:01 pikhq, indeed 01:36:02 ...of course, then you run into copyright law. 01:36:13 Which essentially... outlaws being a cost-free library. 01:36:25 Make any sense? Of course it doesn't make any goddamn sense! 01:36:50 also uh they wouldn't allow that into exams. Some exams allow you to bring course literatur 01:36:53 literature* 01:37:04 elliott, oh did you like the nether screenshots? 01:37:12 Vorpal: Yes. 01:37:24 pikhq: Anyway, dead trees are useless when you have 50 goddamn textbooks. 01:37:34 elliott, CC-by-sa-nc-3.0 or GFDL, whichever annoys you most 01:37:35 :P 01:37:42 elliott: I'm not saying ebooks are valueless. 01:37:44 Vorpal: ...for the screenshots? 01:37:50 well hm 01:37:51 elliott: I'm saying that they're not a replacement for dead trees. 01:37:54 probably not possible 01:37:58 Vorpal: i am confused :P 01:37:59 copyrighted material 01:38:08 fuck copyright law 01:38:19 Vorpal: Joyfully, I can make my own copy and do whatever I want to it regardless. 01:38:19 elliott, the composition of the images was mine 01:38:25 elliott, indeed :D 01:38:31 Vorpal: Also: Distribute a binary patch from your image to mine. 01:38:39 elliott, eh? 01:38:52 Vorpal: binary-diff screenshot.png modified-screenshot.png >foo 01:38:56 I can redistribute foo. 01:39:06 And then anyone can legally patch screenshot.png with foo! 01:39:09 elliott, XD 01:39:13 (I call it "djb-Free".) 01:39:23 elliott, huh? what has that got to do with djb? 01:39:55 Vorpal: Modern qemu is stock qemu + a shitload of patches because of the no-license thing. 01:39:56 -!- Mathnerd314 has quit (Disconnected by services). 01:40:09 -!- Mathnerd314_ has joined. 01:40:09 It is illegal to modify and then redistribute qemu. 01:40:13 Thus the mounds of patches. 01:40:23 err 01:40:32 -!- Mathnerd314_ has changed nick to Mathnerd314. 01:40:35 " 01:40:35 A minecraft convention? It would be like SMP IRL! We'd just have to show up without any clothes or objects, constantly fall asleep/leave/come back, have people set fire to the convention center, and wait for someone other than the organizer to make the whole thing work! Yay!" 01:40:37 elliott, djb made qemu!? 01:40:40 *"A 01:40:42 Vorpal: ...qmail 01:40:44 you know what i mean 01:40:53 elliott, you said qemu 01:40:57 QEMU was Fabrice Bellard, the *other* god. 01:40:59 Vorpal: Shut up :P 01:41:08 elliott, and well, qmail yeah I know how it work 01:41:10 works* 01:41:27 elliott, I like the netqmail patchset 01:42:01 djb has been licensing a lot of his software to shut people up, right? 01:42:03 God Fabrice Bellard is amazing. 01:42:24 D. J. Bernstein and Fabrice Bellard once had a baby, but its amazingness counter overflowed and it died. 01:42:32 Morale: Always use bignums. 01:42:51 Vorpal: Great, now they're public domain! Swap ambiguity for ambiguity :) http://cr.yp.to/distributors.html 01:42:55 elliott, ah not amazing enough then. Should have used lisp machines 01:43:20 It was so awesome the universe killed it after detecting a being with negative awesomeness. 01:44:03 Huh. Fabrice Bellard devised a scheme to broadcast DVB-T from any arbitrary VGA card. 01:44:34 lawl 01:45:47 pikhq, link 01:46:01 http://bellard.org/dvbt/ 01:46:07 [[This is not a hoax ! With a PC running Linux and a recent VGA card, you can emit a real digital TV signal in the VHF band to your DVB-T set-top box.]] 01:46:27 I wish we had freeview instead of sky here, I'd be evil and broadcast eerie messages. 01:46:39 (Assuming I can overpower the regional transmitters :P) 01:46:47 "# A DVB-T set-top box able to receive VHF signals with a bandwidth of 8 MHz (unfortunately most decoders sold in UK only receive UHF signals). You can use French DVB-T receivers which accept VHF and UHF RF signals." 01:46:48 :< 01:47:04 "A cable connecting the VGA output to the set-top box RF input." 01:47:49 hm 01:47:52 "I am sorry to announce that the source code won't be available any time soon. " 01:48:17 Vorpal: legal reasons, probably 01:50:41 night → 01:50:45 Vorpal: also http://www.erikyyy.de/tempest/ 01:50:47 you may have seen 02:00:40 http://www.erikyyy.de/superzoom/ wtf is the point of this :D 02:03:44 http://www.tametick.com/cq/ 02:04:04 dungeon crawler 02:06:48 http://www.dwheeler.com/trusting-trust/ seen this before but linking anyway 02:07:08 (double spaced; ugh) 02:09:38 Wow... gcc has an option to set the random seed. Why does it use random numbers? 02:09:41 Goodnight; bye. 02:09:43 -!- elliott has quit (Quit: Leaving). 02:27:45 Yes, upside-down backwards left-handed keyboarding is truly the best kind of keyboarding. 03:36:33 97.98pts (97.98%) 03:36:38 On my Perl exam 03:38:12 Some randomized algorithms it uses? 03:38:31 hmm/ 03:38:42 Oj 03:38:44 Oh 03:58:26 -!- poiuy_qwert has quit (Quit: This computer has gone to sleep). 04:01:01 -!- madbr has joined. 04:01:04 hey 04:11:27 -!- sebbu has quit (Ping timeout: 276 seconds). 04:27:00 Ilari: Shouldn't a compiler be, y'know, deterministic? 04:39:19 -!- Sasha2 has joined. 04:39:46 Randomized algorithms can produce perfectly deterministic results. It depends on the algorithm and data it is appiled on... 04:40:35 -!- Sasha has quit (Ping timeout: 252 seconds). 04:43:59 Okay, true, it's entirely possible that they're doing something like that. 04:44:05 Though why is still beyond me. 04:44:16 It's worth looking in to. 04:47:35 Yeah, but I have missed out on screwing around doing nothing for today; I need to do that. 04:48:46 As to why would algorithm producing deterministic results use random numbers? 04:51:09 hmm 04:53:06 No, as to why they would use such an algorithm. 04:54:47 I'm trying to design a simple instruction set, and I'm wondering what sort of instructions to help it run fast in small loops (no-cache system, 16 or 32 bits...) 04:54:59 could be added 04:56:11 No bad inputs is the usual reason for picking randomized algorithm... 05:06:29 -!- Vorpal has quit (Ping timeout: 252 seconds). 05:10:06 -!- augur has joined. 05:17:44 -!- poiuy_qwert has joined. 05:30:58 -!- wareya_ has joined. 05:33:08 -!- wareya has quit (Ping timeout: 240 seconds). 05:49:25 -!- dbc has joined. 06:01:38 -!- augur has quit (Remote host closed the connection). 06:31:23 Why speculate when you can just read the fine manual? 06:31:30 "This option provides a seed that GCC uses when it would otherwise use random numbers. It is used to generate certain symbol names that have to be different in every compiled file. It is also used to place unique stamps in coverage data files and the object files that produce them. You can use the -frandom-seed option to produce reproducibly identical object files." 06:37:12 -!- wareya_ has quit (Read error: Connection reset by peer). 06:37:38 -!- wareya has joined. 06:39:29 -!- augur has joined. 06:40:07 I hope those are UUIDs. 06:40:27 Well, numbers with similar properties. 06:40:38 (namely, unique for most intents and purposes) 06:40:48 -!- augur has quit (Remote host closed the connection). 06:48:31 -!- FireFly has joined. 06:52:40 -!- Zuu has quit (Ping timeout: 260 seconds). 07:00:58 -!- Sgeo has quit (Read error: Connection reset by peer). 07:22:50 I <3 the mountains 07:32:05 -!- augur has joined. 07:33:36 -!- MigoMipo has joined. 07:47:15 heyo 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:07:03 -!- madbr has quit (Quit: Radiateur). 08:32:49 -!- MigoMipo has quit (Remote host closed the connection). 08:33:22 -!- MigoMipo has joined. 08:47:27 -!- sebbu has joined. 09:18:42 -!- MigoMipo has quit (Quit: Quit). 09:20:02 -!- Vorpal has joined. 09:21:10 aaaaaaah, seems like syslog crashed during the night, and then the rest crashed just after I came back 09:21:14 had to sysrq 09:21:56 Heh, there's a GraphViz thing in that Google chart API: http://code.google.com/apis/chart/docs/gallery/graphviz.html 09:22:49 In other news, I made me a nick-remapped table too: 09:22:51 sqlite> select count(*) from logs where type = 0 and nick = 'elliott'; 09:22:51 28867 09:22:51 sqlite> select count(*) from mlogs where type = 0 and nick = 'elliott'; 09:22:51 442702 09:23:02 fizzie, I use a view 09:23:05 not a table 09:23:10 fizzie, with regex replace 09:23:32 sure it should be slower but in practise it is fast enough even on this old computer 09:23:32 using postgres that is 09:23:38 sqlite is generally slower than postgres at lookup 09:23:53 Well, I don't have postgres at this work-box, so. 09:24:11 Do you (can you) have an index on the remapped nicks? 09:24:32 fizzie, no, I couldn't find how 09:24:49 I think there's something, but a bit limited. 09:24:56 To be technical about it, mlogs is also a view. 09:25:02 CREATE VIEW mlogs AS SELECT 09:25:02 l.idx AS idx, l.tstamp AS tstamp, 09:25:02 m.mapnick AS nick, l.nick AS rawnick, 09:25:02 l.target AS target, l.uhost AS uhost, l.type AS type, l.body AS body 09:25:02 FROM logs l NATURAL JOIN nickmap m; 09:25:05 hm 09:25:21 Where "nickmap" is a (idx, mapnick) table. 09:25:29 Didn't feel like duplicating everything. 09:27:06 Could've saved some space with only having one nick for those messages where there's no remapping going on, though. 09:27:20 fizzie, hm 09:28:03 nice solution 09:28:11 fizzie, but some of them has so many nick variants 09:28:17 thus I opted for regexp 09:28:36 Well, those remappings are made with regexps too. It's the same set my esolog.py plotting tools use. 09:28:47 (I'm not sure it has all of elliott's billions of names in it, though.) 09:29:15 It does have the drawback that changing the regexps means regenerating the whole nickmap table. 09:29:39 Fortunately we only have one prominent serial nick-changer here. 09:31:14 hm 09:31:30 fizzie, you mean warringal? 09:31:35 or elliot? 09:31:37 tt* 09:31:52 The E is who I meant. I guess those aren't *that* often either, though. 09:32:39 You can make a PostgreSQL index on an expression "foo(x) || 'bar'" simply with "create index blah on tabley ((foo(x) || 'bar'))" -- the manual does say they're expensive to maintain, though. (And you'd need to duplicate your presumably-horrible regexp expression in both the view declaration and the index declaration.) 09:34:00 I have this sort of mapping: http://p.zem.fi/esonickmap (They're Python's strange "automatically anchored at start but not at end" regexps, and case-insensitive, and the second element in the tuples is what it maps to.) 09:35:06 (Oh, and I right-strip the set "-[]\`^{}_" from nicks too, to semi-automatically handle "foo" and "foo_".) 09:39:28 Hm, on this table I myself am pretty high up on the "%:P" ranking list: http://p.zem.fi/eso-p 09:40:15 (In yet other news, ".mode column" and ".headers on" made sqlite's output a lot more readable than the default "just fields separated with |". 09:40:36 s/$/)/ 09:41:22 It doesn't do automatic column-widths, though, so the nick column there is truncated for some. 09:41:27 -!- Wamanuz5 has joined. 09:44:58 -!- fungot has joined. 09:45:38 fungot: Hello again. Hopefully the short power outage didn't mess up your brane. I mean, brain. 09:45:39 fizzie: please do not destroy it")) 09:45:57 fungot: Destroy what! 09:45:58 fizzie: s/ what are/ 1? 09:46:06 That doesn't look too good. 09:46:11 fungot: Are you *sure* you're okay? 09:46:12 fizzie: hrm. that is if you had 09:46:23 Oh noes, he's completely bonkers. 09:46:26 (Nothing new there.) 09:47:39 -!- Wamanuz4 has quit (*.net *.split). 09:47:39 -!- HackEgo has quit (*.net *.split). 10:02:07 fungot, art thou aliveth? 10:02:08 FireFly: there is rom. also, i think i will ever use lisp because im in a class 10:02:23 Of course, fungot 10:02:25 FireFly: then i must think of an esoteric language called cake. and it's not been the most reliable timing source. however, this guy is the fnord file 10:10:44 -!- myndzi\ has joined. 10:13:32 -!- myndzi has quit (Ping timeout: 240 seconds). 11:48:16 -!- ais523 has joined. 12:34:17 -!- ais523 has quit (Ping timeout: 240 seconds). 13:34:35 http://gosu-lang.org/comparison.shtml 13:44:11 -!- ais523 has joined. 14:02:25 -!- Sasha2 has changed nick to Sasha. 14:21:11 -!- xiang1 has joined. 14:24:49 -!- xiang1 has left (?). 14:33:00 -!- jcp has quit (Ping timeout: 245 seconds). 14:34:56 -!- lilja_ has joined. 14:38:52 -!- jcp has joined. 14:57:39 -!- sftp has joined. 15:33:23 -!- MigoMipo has joined. 16:04:10 -!- elliott has joined. 16:05:32 01:21:10 aaaaaaah, seems like syslog crashed during the night, and then the rest crashed just after I came back 16:05:32 01:21:14 had to sysrq 16:05:38 Your service manager didn't restart it? 16:05:40 -!- Phantom_Hoover has joined. 16:06:27 01:28:47 (I'm not sure it has all of elliott's billions of names in it, though.) 16:07:20 fizzie: I'm ehird, (iEhird), tusho, zuff, alise, estoppel; Warrigal's ihope, uorygl, kerlo, tswett. 16:07:31 01:35:06 (Oh, and I right-strip the set "-[]\`^{}_" from nicks too, to semi-automatically handle "foo" and "foo_".) 16:07:32 Oh. 16:07:41 fizzie: Then ihope is ihope127 too, ...maybe, not sure; and I'm ehird` too. 16:08:22 hi ais523 16:14:52 hi elliott 16:14:57 incidentally, Oracle vs. HP is hilarious 16:15:07 Oracle tried to sue HP, and HP's CEO literally ran away and hid somewhere 16:15:15 and now Oracle are trying to find him to serve him legal papers 16:15:30 ais523: seriously? 16:15:32 yup 16:15:40 ais523: i love america. 16:15:58 nobody's entirely sure whether he did it to avoid testifying in the court case, or whether he simply happened to be on holiday somewhere and doesn't have a clue what's going on 16:16:14 Silly Léo Apotheker. 16:16:31 ais523: oh come on, the CEO of HP not even looking at HP-related news a *little* on holiday? :) 16:17:17 perhaps he saw the news reports saying he'd run away and hidden, and decided to humour the journalists 16:17:46 ais523: [wikipedia venting, feel free to ignore if you want] I am SICK of getting my constructive, anonymous edits semi-automatically reverted and then having a vandalism warning being placed on my talk page just because I don't edit under a vanity, ego-boosting name. Yes, I removed a sentence! And a section header! The section was only one sentence! And it *directly* contradicted the first paragraph, which had newer information! Gah! 16:17:55 ais523: heh, nice 16:18:28 elliott: the trick's to write a detailed edit summary of what's going on, then when someone templates you, explain on the article talk page and their talk page why you made the change 16:18:41 normally, the other side either apologises or gives up 16:18:45 # (cur | prev) 02:05, 9 November 2010 91.105.90.101 (talk) (8,782 bytes) (→Limitations: contradicts introduction) (undo) (Tag: section blanking) 16:19:00 I'll make the summary less brief and thus obscure my intent more next time. :P 16:19:37 I blanked a section a few days ago, and nobody contradicted me on that ‎ (→Early life: blank section; it's unsourced and BLP, and has been vandalised so often I have no idea what the actual correct data is. Please add a source before re-adding the section, or nobody else will be able to tell the truth either...) 16:20:03 but I tend to go over-the-top with edit summaries when I'm doing something as potentially controversial as that 16:20:31 (I'm uninvolved; I found the vandalism on that page when I was reverting vandalism on an unrelated page, and checked the other contributions of the vandal to see if they were vandalism too) 16:20:38 ais523: yes, but you're a username 16:20:46 unless you did it anonymously 16:20:56 IPs are 1/16th of a person :p 16:20:57 yep, I am 16:21:06 ais523: woot, i just wrote a detailed edit summary. TOO BIG TO FIT IN THE BOX 16:21:15 in your case, you could have probably just tagged the section {{contradict|section}}, which has much the same effect as blanking and is less likely to be reverted 16:21:18 elliott, is making an account such an awful thing to do? 16:21:22 dear jimbo wales: i'll give your solemn photographed ass some money when wikipedia stoped sucking 16:21:23 wait, no 16:21:30 Phantom_Hoover: Welcome to Missing The Point Entirely, Population: You 16:21:39 ais523: yeah, no :P it'd have to go at the start of the article 16:21:44 {{contradict}} at the top of the article 16:21:48 Surely there are many other people. 16:21:52 ...what? 16:21:54 oh. 16:22:01 and there is indeed prejudice against IPs, unfortunately 16:22:24 which is pretty silly as there's no reason not to create an account, especially if you're vandalising, so if you don't create an account, it hardly implies anything 16:22:51 * (cur | prev) 16:21, 9 November 2010 91.105.90.101 (talk) (8,782 bytes) (I don't think "supporting most of GCC inline assembly" is a *limitation*; it is mentioned in the introduction already, too. Please change this if you disagree, but please don't treat it as vandalism.) (undo) 16:23:06 elliott: heh, from your edit summary I can guess the page 16:23:48 and I was wrong 16:23:52 ais523: now let's see if their Huggle VandalismProtector Automated.NETCrapThatNeverDoesAnythingUseful RevertAnythingThatDeletesMoreThanThreeCharactersAndWasWrittenByAnIPBot can read edit summaries! 16:23:59 * Phantom_Hoover gasps 16:23:59 ais523: hmm, which did you guess? clang? 16:24:14 ais523: (p.s. fuck those automated editors, they're worthless and harmful) 16:24:26 IWC doesn't have all options covered in today's poll! 16:24:30 elliott: indeed, I got the wrong compiler 16:24:42 I'm going to send an ANGRY EMAIL. 16:24:42 ais523: it's TCC 16:24:57 I know, just contributionsed your IP 16:25:02 heh 16:25:17 also, igloo is manually attended, thus you should be able to contact its operator to explain 16:25:34 I left an irritated-but-sickeningly-polite message on his talk page. 16:25:47 ais523: wait, what is this Tag bullshit? 16:25:49 http://en.wikipedia.org/wiki/Special:Tags 16:25:50 oh god 16:25:54 elliott: if it's any comfort, knee-jerk reactions happen to me too 16:26:10 and it's an edit classifier based on simple rules, to help give recent-changes patrollers more info 16:26:14 ais523: they have tags just so they can pretend a stupid heuristic can determine vandalism. 16:26:16 \o/ 16:26:16 | 16:26:17 /< 16:26:30 nope, [[Wikipedia:Tags]] is pretty clear that just because an edit is tagged doesn't mean it's vandalism 16:26:34 many people tend to ignore that, for some reason 16:26:54 ais523: Recent changes patrollers are *useless*, I know some people I know have messed with (a completely unread and probably-shouldn't-even-exist-in-its-state-really) article voer months and it hasn't been noticed. 16:27:07 elliott: they aren't completely useless, but they do miss a lot 16:27:49 *over 16:28:04 also, even if he thought your edit was vandalism, he should have tagged it {{uw-b1}}, not {{uw-v1}} 16:28:22 but nowadays, RC/NP patrollers are too busy to care about things like that, it seems 16:28:40 yeah it was a pretty rude first-time warning. 16:29:01 bleh. I only edit wikipedia about stuff *I'd* look up just because it irks me to see the inaccuracies :P 16:29:03 uw-v1 is probably the rudest of the first-times, I only use it when it's clear that someone wasn't being constructive 16:29:24 elliott, "hasn't noticed obscure vandalism" != "useless at reverting vandalism". 16:29:38 Obscure, heh. 16:29:47 elliott: you might be interested to know that ClueBot's creator has created ClueBot II, which uses a neural network to detect vandalism 16:29:53 Vandalism can be obvious regardless of the page it's on, and articles aren't ordered by length in recent changes. 16:29:58 it's claiming a 5% false-positive and 30% false-negative rate 16:30:07 Phantom_Hoover: I'm really not interested in the Typical WP Apologist spiel because it's crap. 16:30:13 ais523: oh joy... 5% 16:30:31 Only a 20th! 16:30:54 it was approved for trial, but changed to have a 0.25% false positive rate 16:30:57 ais523: can you believe it? http://esolangs.org/wiki/Talk:Befunge/index.php is generating useful discussion 16:31:05 And it picks up a full *two thirds* of vandalism 16:31:08 we should adopt this as our new anti-spam technology 16:31:20 heh, it was apparently detecting its own reverts as vandalism 16:31:28 ais523: whenever a page is vandalised, create an esolang 16:31:53 elliott: http://en.wikipedia.org/wiki/Wikipedia:Bots/Requests_for_approval/ClueBot_NG if you're interested 16:32:14 I love how NG has replaced 2. 16:32:20 In code. 16:32:33 hmm, we need a word like "technology" that means the ... cultural context of programming 16:32:33 like 16:32:36 "NG has replaced 2 in technology." 16:32:49 "NG has replaced 2 in THE BLOGODODECAHEDRON." 16:32:54 "NG has replaced 2 in the coderflurk." 16:33:06 Do you intend keep the target false positive rate at 0.25%? (for editors new to this discussion, that's 0.25% of every edit examined; the number of incorrect reversions will be well over the two and a half per every 1000 rollbacks by the bot that might seem to be indicated by the raw percentage.) If so, then as the dataset improves, the threshold for reversion will simply be lowered to continue to meet 0.25% target, resulting in 16:33:07 more vandalism reverted, but new and exciting false positives to replace the ones that have been eliminated. This is why, in the discussion above, I suggested that a 0.1% false positives target would be more conducive to community acceptance of the bot, and ultimate approval. 16:33:19 I like the idea of "new and exciting false positives" 16:33:25 -!- sftp_ has joined. 16:33:34 ais523: at least someone gets it 16:33:48 -!- sftp has quit (Ping timeout: 255 seconds). 16:34:07 the sad thing is, the bot is likely more accurate than human RC patrollers anyway 16:34:39 "Thanks I appreciate you reverting vandalism to my talk, but I personally prefer to keep it." --[[User talk:Peter Karlsen]] 16:34:47 http://en.wikipedia.org/w/index.php?title=User_talk%3AKoavf&action=historysubmit&diff=393840880&oldid=393840775 16:35:02 Doesn't *everyone* want a section titled "hey you idiot" with the text "Why don't you fuck off and leave me alone?" on their talk page? 16:35:13 hahahahaha 16:35:18 someone added an {{unsigned}} to it 16:35:25 after the page owner put it back 16:35:31 SineBot, or a human? 16:35:38 ais523: human 16:35:44 Beeblebrox 16:35:57 ais523: why isn't {{unsigned}} part of MediaWiki? 16:36:01 [[ Phantom_Hoover: I'm really not interested in the Typical WP Apologist spiel because it's crap.]] — WP 16:36:05 Ah, wait. 16:36:12 Stupid copy and paste. 16:36:15 ais523: OH RIGHT, to allow free-form pages that we're going to regulate away with stupid policy upon policy 16:36:18 Phantom_Hoover: ? 16:36:24 [[# ^ Oliveira, Rui (2006). The Power of Cobol. City: BookSurge Publishing. ISBN 0620346523. ]] — WP 16:36:34 * elliott wonders why Phantom_Hoover copied that previous one :P 16:36:36 * ais523 wonders if ClueBot NG would just revert anything by comex 16:36:46 ais523: does comex vandalise a lot? :P 16:36:53 elliott: it was a Bayes reference 16:37:00 ais523: that ... beyond obscure 16:37:05 ais523: (bayes is its own person!) 16:37:27 Gregor: Felix (his name, apparently) replied to my quotes of you! 16:37:33 Gregor: I think he's wrong now. 16:37:35 as for why {{unsigned}} isn't part of MediaWiki, often you don't want signatures, and technology isn't good enough to work it out always 16:37:39 elliott: Of course he's wrong. 16:37:46 SineBot errs on the false-negative side, IIRC 16:37:47 Gregor: I mean his reply. 16:38:00 elliott: Judging by his "FAQ", I can only assume his replies are wrong too :P 16:38:20 Gregor: http://sprunge.us/iEgP He seems to have basically acknowledged what he said but in a slightly strange way. 16:38:39 Gregor: (i.e. not saying it's illegal, but saying that yes, the sources are then GPL-licensed for that purpose) 16:39:54 oh, everyone who's not Gregor: you're not allowed to click that link 16:39:57 it's a private email! :-P 16:40:09 Yeah, his wording is bizarre but he seems to more-or-less agree. Maybe his confusion is that he thinks that the BSD prevents you from relicensing it under GPL. Or something. Idonno. It doesn't matter though, because whatever his misunderstandings of the GPL are, the license is still the license. 16:40:19 elliott: clicking the link does nothing anyway 16:40:25 ais523: shaddap :) 16:40:31 Gregor: Yeah, I'd just rather not get him angry if I use it. :P 16:40:41 Gregor: I'm thinkin' I'll just use uClibc though. Because... why not? 16:40:43 Gregor: I saw someone on Slashdot a while ago arguing that the MIT license banned distributing binaries without source 16:40:52 ais523: wat 16:40:59 elliott: But, but it has GNU stuff in it D-8 16:41:04 elliott: I'm not sure if he was trolling, or just very confused; I suspect trolling 16:41:20 ais523: I will never cease to be astounded at how license-stupid people are. 16:41:24 It's really not that complicated. 16:42:13 Gregor: Is this coherent? [[ 16:42:14 Indeed, but the BSD license allows relicensing under the GPL, and it doesn't affect the license of the "code itself", just the code as part of the distribution.]] 16:42:25 elliott: almost 16:42:26 I'm trying to get... well, that, across, but it's difficult to word it. 16:42:33 Putting "code itself" in quotes makes that even more confusing. 16:43:07 "You can create your own code based on code licensed under BSD, and license your code under the GPL despite the BSD code in it. That doesn't prevent the original still being BSD, though." 16:43:37 Indeed, but the BSD license is broad enough to allow recipients to relicense the code, even under the GPL. This doesn't affect the original author's grant of the BSD license, it just means that the person linking the BSD code with your GPL code has chosen to relicense the BSD code under GPL for further redistribution. 16:43:39 (this is true for BSD3 -> GPL2/3, and BSD4->GPL3) 16:43:47 ais523: the code is unmodified, though :) 16:43:48 I started with your wording, but then I went all wonky :P 16:43:48 it's a binary 16:44:00 Gregor: I'm stealin' it :P 16:44:02 elliott: well, you're still basing what you're doing on that binary 16:44:23 I think if I added a BSD binary unmodified to a GPL project, I wouldn't change the copyright notices on it to GPL 16:44:28 Sent off a reply, let's hope he doesn't get annoyed :-) 16:44:33 even though technically I could 16:44:46 You know Gregor, I can't blame people for being license-stupid. 16:44:52 Because this shit is retarded. 16:45:00 Gregor: Actually I don't see how this doesn't legitimise the CLISP case. 16:46:32 elliott: Because in the CLISP case, you're violating the GPL by compiling your code with the GPL'd interface. CLISP was not under a GPL-compatible license. Admittedly that's shaky ground, I don't think anyone's denying that it's shaky and kinda silly, but there is still a linking of incompatible licenses if you consider the interface to be copyrightable. 16:47:13 If CLISP had been under a GPL-compatible license, and the sum was redistributed under the GPL, it would've been fine. But the binaries were redistributed under a non-GPL license. 16:47:27 Gregor: The *binaries* but not the source? 16:47:30 *Now* i am confused. 16:48:23 elliott: Redistributing source that no one can redistribute binaries of due to its dependence on libreadline is totally legal, if a bit absurd. Redistributing BINARIES of that source linked to readline, if the binaries can't be redistributed under the GPL, is illegal. 16:49:04 Because the binaries constitute bits of both sources, so need to fall under both licenses. 16:49:29 Gregor: I forget, what license was CLISP under at the time? 16:49:35 I too forget :P 16:49:44 Gregor: it was open, was it not? 16:49:52 I don't think so, actually. 16:50:08 But yeah, I forget. I know it was GPL-incompatible. 16:50:39 Gregor: I still don't think that "ld -o z x y" makes x a derivative work of y. 16:51:20 Gregor: Same way "ld -o lol core-windows-lib my-code-licensed-under-a-viral-literally-sperm-stealing-license" doesn't compel Bill Gates to open up his testicles and extract their contents. 16:51:25 (To use a realistic example.) 16:52:10 ais523: wtf is a Researcher 16:52:14 [[The 'researcher' group was created in April 2010 to allow individuals explicitly approved by the Wikimedia Foundation to search deleted pages and view deleted history entries without their associated text.]] 16:52:39 * Gregor reappears. 16:52:51 elliott: ld -o z x y does not make x a derivative work of y, it makes z a derivative work of y. 16:53:08 elliott: However, its also a derivative work of x, so x and y have to be under compatible licenses. 16:53:30 elliott: And furthermore, y's license indicates that the whole shebang has to be distributed under the GPL, which requires including sources. 16:53:32 elliott: it's a very specific usergroup, that's only ever been used once, and is only granted by direct request to the Wikimedia Foundation 16:53:46 it shows the histories of deleted pages, but not the deleted revisions themselves 16:54:47 ais523: who was it granted to? 16:55:01 Gregor: Bleh :P 16:56:51 elliott: I can check if you like 16:56:54 elliott: At no point was the issue CLISP's sources. The issue was always the redistribution of compiled stuff. 16:57:03 ais523: I don't mind that much 16:57:04 I know the person gets loads of talkpage questions saying "what's a researcher?" 16:57:37 Gregor: Okay, what about Bruno's proposed solution: distribute {clisp.o, libnoreadline.a}. 16:57:42 Gregor: libnoreadline.a is obviously just a stub out. 16:57:52 Gregor: clisp.o is perfectly redistributable. libnoreadline.a too, it's his work. 16:57:58 Gregor: Is there anything at all illegal about distributing this? 16:58:49 If he had also written his own noreadline.h, which had an identical interface to readline.h, then it should be legal modulo the fact that copyright law tends to turn fuzzy around the issue of evasion (going out of your way to fake something just to avoid being strictly derivative != not being derivative) 16:59:09 Gregor: Stop right there! I'm going to introduce something. 16:59:10 Gregor: libedit 16:59:15 -!- Zuu has joined. 16:59:23 Gregor: This is an interface-identical, BSD-licensed reimplementation of readline. 16:59:28 Perfect. Do it. 16:59:35 Gregor: Now, correct me if I'm wrong, but you're saying that... 16:59:47 Gregor: Stuff using libedit could be counted as derivative of libreadline? 16:59:48 Really? 16:59:52 No fucking way. 17:00:00 (Or editline, whatever, same thing as libedit.) 17:00:27 Well, copyright law is fucky like that. That being said, you're probably in a safer case since editline is actually an implementation, not just a stub to maintain compatibility. It's not really evasion, it's new code. 17:00:48 Gregor: libnoreadline would be an implementation... just one for dumb terminals. 17:01:39 You're trying to over-logic copyright law here :P 17:01:45 I know. 17:01:45 Sigh. 17:01:47 Fuck copyright. 17:02:53 Gregor: omg 17:03:01 [[ If someone was to turn the readline library into a shared library 17:03:01 (a library that is needed at runtime by the executable, but not 17:03:02 contained in the executable): 17:03:02 Would that mean that any executable that uses a readline 17:03:02 shared lib would have to be accompanied with full source? 17:03:02 Yes.]] --rms 17:03:09 Gregor: imagine a program that dlopens all of /lib and /usr/lib 17:03:27 Gregor: It has to be under a license compatible with the licenses of every library on the system. 17:04:38 dlopening != using. Plus I think you're far enough off the issue of evasion there that it's not a big problem. Also the shared-library issue has strictly never been tested in any court anywhere, and probably won't stand up except on the fact that you're still compiling against the interfaces. 17:05:04 Gregor: so a minor (legally) technical detail (static vs dynamic) affects the whole legal situation 17:05:22 HEY GUYS REMEMBER WHEN WE TRIED TO REGULATE BITS ON COMPUTERS AS IF THEY WERE SCARCE PHYSICAL OBJECTS? 17:05:27 WENT GREAT DIDN'T IT 17:05:36 Yeah, copyright law is wildly unsuitable to what it's being used for. 17:05:39 We all know this :P 17:05:50 Yeah, copyright law is wildly unsuitable[.] 17:06:11 iceweasel is the crashiest program ever jesus christ 17:06:47 But it tastes like butterflies. 17:11:52 wtf @ iceweasel crashing by the second 17:11:54 -!- sftp_ has quit (Remote host closed the connection). 17:12:10 -!- sftp_ has joined. 17:18:28 ais523: pax is the easiest way to extract cpios, right? 17:20:12 oh, cpio seems simple enough 17:25:05 ais523: hey, dd/sh can be done without dd! 17:25:36 ais523: you need mkfifo, sleep ("optionally"), and kill (I think) 17:25:38 ais523: http://shellscripts.org/projects/d/ddprogress/version_1/dd.sh 17:25:47 plus rm and chmod, if you're crazy and bloated 17:26:15 hmm, didn't realise dd/sh was so old: circa 1999 or older 17:29:17 elliott: That hurts my brain :P 17:29:41 while (return 0); do 17:29:41 dd 2>/dev/null < ${1-y} 17:29:41 EOF 17:29:41 done 17:29:43 ^ yes(1) in dd/sh 17:30:00 Gregor: Have you seen the dd/sh web server? http://dd-sh.intercal.org.uk/web-server/ 17:30:05 Gregor: It has a configuration file and a MIME database. 17:30:15 * Gregor kills self. 17:30:39 Gregor: (Admittedly it requires inetd, but come on -- you could use /dev/tcp if you really wanted to.) 17:30:47 What is it, "exec 1 (That's bash-specific, of course.) 17:31:01 Wait, or is stdin 0? Bleh. 17:31:14 Seems so. 17:31:18 "exec 2>&1" does the obvious. 17:31:37 "exec 2>&1" does the obvious. 17:31:39 Whoops. 17:31:59 Your service manager didn't restart it? <-- well, I typed dmesg and it showed some hard lockup thingy then everything crashed (screen went weird). 17:32:08 also argh the weather 17:32:15 Vorpal: But didn't it restart it?!?!/1111 17:32:45 elliott, well, arch uses bsd style init 17:32:49 which is not so nice 17:33:20 elliott, find me a good rolling release *linux* distro that isn't gentoo (or other "compile everything yourself) 17:33:27 s/)/")/ 17:33:31 Vorpal: Kitten. (No, seriously, I'm working on it. I am.) 17:33:41 elliott, was netbsd based 17:33:44 iirc? 17:33:46 Vorpal: NetBSD probably hates my network card. 17:33:50 "So fuck that." 17:34:19 Vorpal: If you want a filthy proprietary graphics card, you may have to rebuild the kernel package to allow modules. :P 17:34:25 elliott, ah, perhaps you can do like debian and make Kitten/Linux (I doubt it will be gnu linux in your case!), Kitten/BSD and so on 17:34:43 elliott, and don't forget Kitten/Internix and Kitten/Hurd 17:34:44 :D 17:34:46 I wonder what rms wants non-GNU-based Linux distros to be called. 17:34:49 ("Evil"?) 17:35:36 Goddamn crazy Firefox ;__; 17:35:38 "Namoroka is having trouble recovering your windows and tabs. This is usually caused by a recently opened web page." .... 17:35:45 Vorpal: ha! 17:35:48 I swear to God... I just reopened firefox 17:35:50 loaded reddit 17:35:51 scrolled 17:35:53 and by the time I scrolled 17:35:55 Firefox had crashed 17:35:57 and it scrolled the Emacs window. 17:36:00 I swear. To God. 17:36:02 That just happened. 17:36:19 I wonder which page. Perhaps cr.yp.to. nah that page couldn't crash anything... 17:36:26 or wikipedia 17:36:27 Vorpal: it says that whenever it crashes 17:36:36 i'm not sure why, it never has trouble recovering if you tell it to 17:36:38 elliott, hm... 17:36:45 cr.yp.to? Installing daemontools? :P 17:36:47 I thought it said it when it couldn't recover proeprly 17:36:50 For your SYSLOGGERY? 17:36:56 elliott, no, I was looking at qmail license stuff 17:37:03 or, the lack of it 17:37:08 Vorpal: It's public domain now. 17:37:13 elliott, indeed. 17:37:20 Which is... slightly ... more reassuring than no terms at all. 17:37:41 http://cr.yp.to/qmail/toaster.html wish this was an actual toaster. 17:38:02 [[What operating systems does qmail support? 17:38:02 Answer: qmail works on practically all UNIX systems: AIX, BSD/OS, FreeBSD, HP/UX, Irix, Linux, NetBSD, OpenBSD, OSF/1, SunOS, Solaris, etc. It automatically adapts itself to new UNIX variants. 17:38:02 qmail does not support Windows NT.]] 17:38:07 O RLY 17:38:36 "Why is qmail installed under /var? Aren't programs supposed to be in /usr? Aren't configuration files supposed to be in /etc? 17:38:36 Answer: Some sites have clusters of machines that NFS-mount a single /usr disk. Files can't go in /usr unless they are the same on every machine. (This used to be much more common than it is now.) The qmail programs depend on uids that are often different on every machine; for example, the qmail-queue program is setuid qmailq." 17:38:39 Interesting! I hate Unix. 17:39:24 elliott, well, I would blame the, er, interesting, design choices of qmail here 17:39:56 elliott, like the qmail uids (it uses several) being set at compile time iirc 17:40:01 * elliott considers *not* reinventing the wheel for once in the course of reinventing the wheel 17:40:16 elliott, hm? what wheel specifically? 17:41:14 Vorpal: Parsing HTTP! 17:41:27 Can we take a moment to give mad props to the inventor of the wheel? 17:41:30 Vorpal: I might just use https://github.com/ry/http-parser, because it's stupidly fast (hand-written). 17:41:31 'cuz seriously, that shit pwns. 17:41:34 Gregor: No, fuck him, mine is better. 17:41:38 It's three-dimensional. 17:41:41 I call it the speer. 17:42:03 Idonno, sounds kinda like this "sphere" thing I remember hearing about ... 17:42:31 NO 17:42:43 Okay, seriously, where does Firefox log crashes? 17:42:43 elliott, http generally has a quite simple format: \r\n[: \r\n, ...]\r\n\r\n 17:42:49 Please tell me it logs crashes. 17:42:54 I mean, not terribly hard to parse by hand 17:42:57 Vorpal: ...You think I don't know this? 17:43:04 Vorpal: By "hand-written" I mean "insanely optimised hand-written". 17:43:08 elliott, ah 17:43:17 elliott, how? 17:43:23 Vorpal: It refuses to even compare something to two strings if they share a prefix. It'll do the prefix first. 17:43:24 Shit like that. 17:43:31 It's not entirely sane. 17:43:35 eh 17:43:43 Vorpal: No, seriously, it's been benchmarked. 17:43:57 Vorpal: Take a look if you don't believe me: https://github.com/ry/http-parser/blob/master/http_parser.c 17:43:58 elliott, what do you mean "It'll do the prefix first."? 17:44:13 it'll compare the string to the prefix, and only then compare against the rest of the string 17:44:17 if it wants to recognise foo vs fob 17:44:20 it'll compare to fo first 17:44:23 and then o vs. b 17:44:29 rather than the sane thing (compare to foo, compare to fob) 17:44:37 oh god, several screens of lookup tables... 17:44:48 how large is the compiled result? 17:44:52 Vorpal: Small. 17:44:58 I can measure. 17:45:42 elliott, well that thing is quite sane 17:45:50 brb urg 17:47:54 back 17:48:21 elliott, anyway, that prefix thing is sane. I remember when reading mosaic code it used something like that for HTML tags 17:49:22 elliott, it would be nice if there was some tool to auto generate that sort of prefix-checking code tree for a number of keywords. Hm chances are one exists already... 17:49:30 elliott@dinky:~/http-parser$ ls -lh http_parser.o 17:49:30 -rw-r--r-- 1 elliott elliott 18K Nov 9 17:48 http_parser.o 17:49:30 elliott@dinky:~/http-parser$ ls -lh http_parser.o 17:49:30 -rw-r--r-- 1 elliott elliott 16K Nov 9 17:48 http_parser.o 17:49:31 second with -Os 17:49:53 Vorpal: yeah that would be nice 17:50:02 Vorpal: also something that automated casting to bigger pointer 17:50:05 to read more 17:50:19 elliott, uh XD 17:50:22 wow 17:50:27 Vorpal: ? 17:50:30 Vorpal: like glibc strlen 17:50:31 elliott, the endianness issues 17:50:37 Vorpal: glibc does it 17:50:48 yes but it only looks for a 0-byte 17:51:06 and then looks inside that word to see which one it was 17:51:16 So condition on endianness? Not hard. 17:51:32 spot the error: 17:51:33 elliott, how do you plan to support middle-endian cleanly? 17:51:36 fprintf(stderr, "error: "); 17:51:36 vfprintf(stderr, format, va); 17:51:36 fprintf(stderr, ": %s\n", strerror(errno)); 17:51:38 Vorpal: you don't 17:51:43 elliott, good answer 17:51:50 now spot the error :P 17:51:54 Yeah, supporting middle-endian is worse than not supporting it :P 17:52:07 elliott, wtf at that code. 17:52:18 Vorpal: what's wtf about it apart from the error 17:52:32 So, upon what side are you (pl.) on the Endian War? 17:52:42 elliott: Err, are you trying to print out the thing you failed to print out to describe the error of failing to print it out..... 17:52:44 Little endian. 17:53:02 With little endian, casting to a smaller pointer truncates the value. 17:53:04 Which is nice. 17:53:08 Gregor: not my code 17:53:10 Little endian is strictly superior. For exactly that reason. 17:53:17 I am a firm little-endian. 17:53:20 * elliott hi5 Gregor 17:53:23 elliott, it uses fprintf instead of fputs for the first constant string 17:53:27 Gregor: The error is, of course, that errno might change. 17:53:32 Vorpal: ...that's what jumped out at you? 17:53:38 elliott: Ohduhhhhhhhhhhh X-D 17:53:44 Might and almost assuredly will :P 17:53:52 and that 17:54:09 elliott, I think errno is a rather stupid idea 17:54:25 This is exactly why it's OK to be racist against global variables. 17:54:28 return value indicating what error is nicer 17:54:43 rather than indicating *an* error happened 17:54:48 so you then need to check errno 17:54:53 Vorpal: ITT: multiple return values 17:54:55 (Go fixed this :P) 17:55:05 elliott, return (a,b) would be nice 17:55:07 Gregor: Globals are fine, just not globals that mutate like *that*. 17:55:19 So, global constants are fine :P 17:55:23 Vorpal: Or just pass "errno" as a pointer as the last argument, NULL meaning "I don't care". 17:55:32 dostuf(..., &err); 17:55:57 *dostuff 17:55:58 elliott, heck, sometimes dynamic typing is nice. "Returns the length on success, otherwise the tuple (error, atom-indicating-type-of-error) 17:55:59 " 17:56:01 something like that 17:56:08 Vorpal: ...no thanks 17:56:19 elliott, yeah dynamic typing has downsides too of course 17:56:22 at least have it as 17:56:29 returns (OK, len) on success 17:56:32 or else (ERR, error) 17:56:35 a la haskell 17:56:36 elliott, good point 17:56:55 /* If a filename is made up of entirely unsafe chars, 17:56:55 * the url would be three times its original length. 17:56:55 */ 17:56:55 char safe_url[MAXNAMLEN*3 + 1]; 17:56:57 heh 17:57:18 I should probably get over my C99ophobia. 17:58:27 " 17:58:27 Iam designing a new server which needs to support thousands( somewhere between 100,000 sessions) of udp connections. What is the best polling method to use for socket FD's. I have read that epoll is better than select/poll. Any input or suggestions on which one to use. Thanks." 17:58:33 Hundreds of thousands of UDP CONNECTIONS! 17:59:03 (Pah @ people suggesting to use libev. That's other people's software, I can't use that!) 17:59:08 (All I want is the epoll man page :p) 17:59:12 * elliott just does it locally 17:59:49 I always do it locally too 17:59:53 elliott, VLAs? Avoid unless you are sure that the upper size would fit on stack 18:00:07 Vorpal: are you talking about my C99ophobia? 18:00:30 Vorpal: i have no real justification for it, and declarations later in the function would be nice 18:00:31 elliott, well yes, from the context it seemed likely to concern VLAs 18:00:34 it just makes me uneasy 18:00:35 nope 18:00:37 that isn't my code 18:00:43 elliott, for (int i ...) is also quite nice :P 18:00:54 Vorpal: eww, dunno if i'll ever be able to cope with that 18:01:05 elliott: I always use strict ANSI C89 :P 18:01:09 elliott, why? Why would int i; at the top be better 18:01:20 Vorpal: why would C be better, i'm using c cuz i'm a moron like everyone else 18:01:26 Gregor: don't you ever miss declarations later though 18:01:27 i sure do 18:01:36 elliott: Yes, it pains me. 18:01:44 elliott: But my code compiles on retarded compilers X-P 18:01:45 elliott, if you have multiple loops in the function that nicely limits *that* i to that loop, Makes code clearer 18:01:46 "The cost of a select call goes roughly with the value of the highest numbered file descriptor you pass it. If you select on a single fd, 100, then that's roughly twice as expensive as selecting on a single fd, 50." 18:01:48 w. t. f. 18:02:04 W. T. F. 18:02:08 either reusing same i and not using the value from the old iteration. Or having: int i,j,k; at the top? 18:02:31 Vorpal: imo c should just reserve ijkl as ints initialised to zero. 18:02:32 in every scope 18:02:35 elliott, select() is stupid. Use epoll/kqueue and so on 18:02:45 wish posix would standardlise *one* of them 18:02:46 epoll looks complicated futzy and i'll do it later. 18:02:53 but seriously 18:02:56 wtf @ that quote. 18:03:02 elliott, poll() is better than select() in general 18:03:11 Really? 18:03:35 elliott, less stupid interface to work with. And on Linux select() maps to poll() in libc iirc. 18:03:47 though on *bsd it is the other way around iirc 18:04:01 The set of file descriptors to be monitored is specified in the fds 18:04:01 argument, which is an array of structures of the following form: 18:04:01 lame 18:04:18 if i'm going complexity, I'm going to use epoll :) 18:04:25 elliott, you want to know what fd_set is? 18:04:28 you don't :P 18:04:31 No I don't :P 18:04:37 elliott, and that is what select() uses... 18:04:44 Seriously though ... why is selecting a higher fd more expensive. 18:05:19 [[Debian 6.0 "Squeeze" will also be accompanied by variants based on the FreeBSD kernel for amd64 and i386 machines, together with the GNU libc and userland as a "technology preview".]] 18:05:28 elliott, *iirc* because fd_set is like a bitmask or some such. so that fd n means it sets some bit at some offset related to the value of n 18:05:28 [[Users of these versions however should be warned that the quality of these ports is still catching up with the outstanding high quality of our Linux ports]] <-- self-congratulatory press releases, yay 18:05:53 well, more than one bit per fd iirc 18:06:03 "Technology Preview" 18:06:05 Sounds MS-y :P 18:06:12 elliott, to indicate monitoring, event, error and so on 18:06:17 Gregor: Says the Microsoft dude. 18:06:36 elliott: Exactly why I have the necessary experience to make that statement :P 18:06:49 Whatever, goatfucker. 18:06:56 (That's what they do at MS Research all day.) 18:07:05 Heynow! 18:07:12 There's a whole variety of barnyard animals. 18:07:28 Admittedly the goats are usually preferred, but the sheep are right up there too. 18:07:34 Gregor: "But you fuck one goat..." 18:08:04 How is it that even Mac OS X's top command is totally fucking useless. 18:08:22 Gregor, useless how? 18:08:25 Gregor: What's wrong with it? 18:08:26 Gregor, like normal top? 18:08:28 Its default sorting is by pid. 18:08:30 BY FUCKING PID 18:08:30 You an htop noob weenie? :P 18:08:32 I prefer htop 18:08:35 way better than top 18:08:35 Vorpal: noob weenie 18:08:41 elliott, hm? 18:08:51 elliott, oh Gregor is? 18:08:56 perhaps 18:09:08 Gregor, you should be able to change the order 18:09:13 Yes, you can. 18:09:17 I always use top -o cpu 18:09:19 no you are Vorpal 18:09:21 because you use htop 18:09:22 weenie 18:09:25 But the default should not be retarded. 18:09:29 elliott, but which key in top allow you to attach strace to the process? 18:09:45 Vorpal: ^Cattach-strace pid 18:09:51 elliott, yeah but that is more work 18:09:55 I use htop because it has nice features normal top doesn't. 18:09:57 That's what she said. 18:10:03 elliott, why do you hate htop? 18:10:10 htop killed my brother. 18:10:16 elliott just doesn't like to top. 18:10:17 elliott, seriously... 18:10:25 elliott, XD 18:10:26 Gregor: Implement bottom(1). Now. 18:10:43 Gregor: It connects to a top(1) process. 18:10:45 err Gregor XD 18:10:46 I meant 18:11:17 elliott: It "receives" data from a top(1) process, shall we say. 18:11:29 wtf, texlive-core-2010.20288-1 is 103 MB? 18:11:32 how did that happen 18:11:43 large yes, but over 100 MB? 18:11:47 Gregor: Yes. It receives packets. Over and over. 18:11:53 Gregor: And processes them. 18:12:06 Vorpal: The entirety of TeX Live is a few gibibytes. 18:12:21 Nobody knows how. 18:12:22 elliott, It grown since the first version 18:12:22 Or why. 18:12:27 elliott: Its interface is kinda painful to use, but only at first. You get used to it. 18:12:38 elliott, I mean, I was pretty sure texlive was a few hundred MB in *total* 18:12:43 and core was like 60 MB 18:13:03 here we go *installs updates* 18:13:09 Gregor: If your network device is in promiscuous mode, you can attach it to multiple top(1)s at once. 18:13:17 Vorpal: no, it's always been gigs 18:13:21 at least for OS X 18:13:29 both texlive updates and openoffice updates I see... 18:13:31 * Gregor grabs a towel. 18:15:50 I just had an occasion to install TeX Live on OS X (well, MACTeX or whatever they call it; it's TeX Live 2010 anyway) and the download .mpkg.zip was around 1.5 GiB; I think it unpacked to 2.7 GiB or something. 18:18:59 Aha -- it is Flash that is crashing. 18:27:16 Worst httpd name: ritalin! It calms down the hypertext (transfer protocol). 18:27:19 Wow I am crap at names. 18:27:32 (To boot, it's probably not very allowed to use that name.) 18:29:48 Why is Debian updating every day? 18:30:08 I mean, surely things aren't that incomplete. 18:30:11 Phantom_Hoover: It's called Squeeze. 18:30:17 Phantom_Hoover: It's the in-development release. 18:30:22 Phantom_Hoover: Right now, no new features are being added. 18:30:25 But bug fixes are. 18:30:30 http://www.cobolportal.com/index.asp?bhcp=1 I am suddenly deathly afraid. 18:30:33 And if you think software isn't that buggy, ha ha ha. 18:30:39 “COBOL Under .NET: An Easy Evolution” AAAAAAAAAAAAAAAAARRRRRRRRRGGGGGGGGGH 18:30:54 Phantom_Hoover: After Squeeze is released, testing will change name to whatever the next Debian release will be called, and you will start receiving new features. 18:31:11 Things may break! But not very much; unstable (sid) is what gets all the breakage, and then the stuff that works filters down into testing. 18:31:20 (stable itself is always a few years out of date.) 18:31:31 (Well, a few months to two years. Still.) 18:31:43 Why won't COBOL just roll over and DIE? 18:31:49 because sgeo 18:31:58 Call it "methyl-phenyl(piperidin-2-yl)acetated"; I doubt they can restrict the use of the IUPAC systematic-name. 18:32:01 Better languages have done so for no good reason. 18:32:25 fizzie: No. :P 18:32:38 It's because of the B, one would think. 18:33:10 fizzie: Because of the... B? 18:33:14 Oh. 18:33:15 Oh I see. 18:34:25 Do you refer to COOL? 18:35:57 Or is the whole "Business-Oriented" bit a backronym? So many things are; I don't think that was, though. 18:35:59 Phantom_Hoover: Business. 18:36:04 fizzie: 'Snot, no. 18:36:07 Snot? No! 18:37:31 So, we must now ask a difficult question. Will murdering Sgeo assist the death of COBOL? 18:37:46 No. But let's pretend it will! 18:37:50 (Note: I do not think we actually should) 18:38:01 Yeah, there are plenty of other reasons to do so! 18:38:09 He's a filthy Jew! 18:38:25 He prevents ActiveWorlds from dying! 18:38:42 Because he's a Jew! 18:39:13 -!- kar8nga has joined. 18:40:36 Wait! 18:40:44 I have a better idea! 18:41:16 We keep him and use him for torture of our enemies! 18:41:36 Even those whiny little gits at Amnesty won't be able to complain! 18:50:04 -Os vs -O2: DUKE IT OUT 18:51:19 * Gregor 's Anglo-Jewish blood is boiling. 18:51:25 Gregor: Shut up, Jew. 18:53:19 Gregor, is that Jews from England, or was one of your parents Jewish and the other English (or variations thereon). 18:53:30 Latter 18:53:35 Actually both kinda. 18:53:37 AMBIGUITY IS INTOLERABLE 18:53:38 But mainly latter :P 18:53:50 Gregor: Who said you could speak, Jew?! 18:54:06 My father's family is English, my mother's mother's family is English, my mother's father's family is Ashkenazi Jewish. 18:54:35 But the important thing is that they're all Jews! Also, unwashed! 18:54:44 That's a variation on the latter, unless your mother's father was also English. 18:55:04 Wait, did you come over from England when you were born or something? 18:55:17 No, my family is totally American, I'm just talking about heritage :P 18:55:19 No. He was born in Jewland. 18:56:00 Phantom_Hoover: It's the Wertheimer family, which is an Ashkenazi Jewish family via England. So they're Anglo in locale but Ashkenazi by race or something. But locale is irrelevant since I'm just talking about heritage here :P 18:56:20 So you're like Anglo Anglo Anglo-Jewish? 18:56:28 TOO ENGLISH 18:56:35 YOU ENGLISH SCUMBAG 18:56:50 Something like that, yeah. 18:57:05 * Phantom_Hoover beats Gregor over the head with bagpipes, plays haggis at him and feeds him a claymore. 18:57:22 The only things I got from the Jewish side of my family are my nose, my money sense, and my keen sense of Jewish stereotypes. 18:57:47 TOO JEWY 18:57:50 YOU JEWY SCUMBAG 18:58:01 elliott, shut up, you English bastard! 18:58:07 * elliott http://hipsterhitler.com/ 18:58:08 * Phantom_Hoover rolls some r's. 18:58:17 (Best comic ever, btw.) 18:58:35 I'm technically IRISH as well! 18:58:54 Phantom_Hoover: But since the Irish are technically Scots, that's kinda boring. 18:59:01 Phantom_Hoover: And GAY! And a VAMPIRE! 18:59:03 Gregor, ah, no! 18:59:10 The Scots are technically Irish! 18:59:16 Oh, is it that way 'round? 18:59:18 You English FOOL! 18:59:57 The Scots were some Irishmen who thought "hey, maybe we should go to Scotland! It'll be so cool!" 19:00:38 [[The MIPS-X was a processor supported by the Defense Advanced Research Projects Agency. The Programmer's Manual for this chip describes an HSC (Halt and Spontaneously Combust) instruction, that is only found in a version of the processor designed for the National Security Agency.[7] The manual entry is a joke, and does not describe a genuine feature of the CPU.]] 19:00:41 Someone got shot at dawn for that one! 19:02:39 Pff. 19:02:50 The NSA is just covering up their true intentions. 19:04:06 [[Because some people consider "Not a typewriter" to be a confusing message some systems display a different confusing message such as "Inappropriate ioctl for device" instead.]] --Wikipedia 19:04:29 "...the leftover ENOTTY will result in an utterly inappropriate "Not a typewriter" (or "Not a teletype", or "Inappropriate ioctl for device") being delivered to the flabbergasted user." --Wikipedia 19:05:53 should be "Not a teapot" 19:06:44 Not a doctor 19:07:05 E_NoTitty 19:07:25 "Antimammic input detected" 19:07:29 :D 19:07:37 I HATE BERKELEY SOCKETS 19:07:41 just getting that out there 19:08:25 good for you 19:08:30 I think you just hate everything 19:08:30 very 19:08:33 olsner: well, yes. 19:08:39 olsner: in my defence, everything sucks. 19:08:48 olsner: or at least, 90% is a vast underestimation 19:08:53 Sturgeon wasn't one for figures. 19:09:16 even if something sucks it may not deserve to be hated 19:09:37 olsner: give me a reason not to hate berkeley sockets :) 19:11:26 elliott: give me a reason to hate them 19:11:47 olsner: it sucks major ass 19:12:19 well, so does everything else :) 19:12:34 olsner: plan 9's sockets are nice 19:13:14 elliott: hmm, what do they do differently? 19:13:21 -!- JS47dV has joined. 19:13:21 FREENODE IS MAKING THE SWITCH TO SASL. JOIN #FREENODE AND/OR /MSG A STAFF FOR MORE INFO. 19:13:21 -!- JS47dV has left (?). 19:13:28 lawl. 19:13:33 olsner: er, everything :) 19:14:07 hmm, plan9 has the /dev/tcp/host/port thingy don't they? 19:14:21 /doesn't it 19:14:30 well, it's not called that, and it's a lot more sophisticated than just jamming hosts and ports in (it has a ctl file and stuff) 19:14:41 olsner: but here's the C api: http://plan9.bell-labs.com/magic/man2html/2/dial 19:15:17 olsner: (the examples are a bit outdated :)) 19:17:53 olsner: unstdio: 19:17:54 elliott, hey, if I got an Olde-Fashionede mechanical typewriter and set it up so that I pressed the keys and the computer controlled the hammers... 19:17:54 #define writes(fd, s) write(fd, s, sizeof(s)-1) 19:17:54 #define writeu(fd, s) write(fd, s, strlen(s)) 19:18:01 Phantom_Hoover: dear god 19:18:21 Dear god this is so AWESOME. 19:18:38 Is what you meant to say! 19:19:52 Backspacing would be the coolest thing ever. 19:20:33 rm -rf ~X/binX/*! 19:20:36 elliott: looking good, looking good 19:20:57 buggy with the normal write function of course... 19:23:28 I must find a mechanical typewriter! 19:23:45 And then make it USB! 19:23:50 olsner: only as buggy as fwrite 19:25:27 olsner: so, :P 19:25:43 as buggy as the thing it wraps yes 19:25:52 don't wrap, fix 19:26:27 olsner: uhh, what i'm saying is 19:26:35 olsner: fwrite can also write printf too 19:26:45 so it's not really a problem 19:29:44 -!- yorick has left (?). 19:30:25 Hey, you could play NetHack! 19:30:29 ...Somehow. 19:30:39 Retype everything every turn? 19:30:52 Have a complex algorithm to work out if we need to do so? 19:31:28 elliott: hmm, not a problem? but how do you finish the job with those macros? 19:32:10 olsner: int n = 0; while ((n += writeu(fd, s)) < strlen(s)); 19:32:17 olsner: of course, you don't have to do this unless fd is a socket. 19:32:31 THE POSSIBILITIES ARE ENDLESS 19:32:49 -!- ais523 has quit (Remote host closed the connection). 19:34:31 olsner: or for a constant string, 19:34:44 int n = 0; while ((n += writes(fd, s)) < sizeof(s)-1); 19:34:59 olsner: of course, if either returns *0* you're probably in trouble, but just write a damn function. 19:37:48 that'll write the beginning of the string over and over :) 19:38:51 olsner: int n = 0; while ((n += writes(fd, s+n)) < sizeof(s)-1); 19:39:06 but sizeof(s+n) = sizeof(char*) 19:39:20 olsner: wrong! 19:39:37 olsner: if A is a constant array with elements of types T, of size N, then sizeof(A) = N*sizeof(T). 19:39:52 -!- sftp_ has quit (Read error: Connection reset by peer). 19:40:05 but adding an array and an int produces a pointer, not an array section or something like that :) 19:40:05 olsner: sizeof(char) = 1 by definition, thus sizeof(S) where S is an array of chars (such as being a literal string) is the length of the string S, plus one (for the zero byte) 19:40:16 olsner: hmm, true 19:40:18 let me test it :) 19:40:29 olsner: well easy fix 19:40:33 olsner: use writeu instead 19:40:44 and incur the penalty of 3458934934589 strlens 19:41:10 olsner: hate to say it, but 19:41:14 writes(2, "abc\n"+1); works :) 19:42:09 hehe 19:42:42 olsner: now i get to write void writed(int fd, int n) 19:42:45 fun fun fun 19:43:02 olsner: (so apparently sizeof("abc"+1) = 2, who'da thunk it? I guess?) 19:43:24 wait no 19:43:25 it's 8 19:43:26 oh joy 19:43:58 olsner: #define writesi(fd, s, i) write(fd, s+i, sizeof(s)-i-1) 19:44:43 something like -(- sizeof s) could work 19:45:18 olsner: what. 19:45:31 olsner: idgi 19:46:27 s = "abc"+1 => -(-sizeof "abc"+1) = -(-4+1) = 3 19:46:50 -!- lilja_ has quit (Quit: ~ Trillian Astra - www.trillian.im ~). 19:47:20 olsner: You are a bad person and I hate you. 19:47:48 olsner: (Seriously. You are awful.) 19:47:49 I'll just go ahead and take that as a compliment 19:48:44 olsner: awful 19:49:03 meanwhile, 19:49:04 $ file -i httpd.c | cut -d' ' -f2- 19:49:04 text/x-c; charset=us-ascii 19:49:14 it even handles directories! 19:49:18 application/x-directory; charset=binary 19:49:20 crazy thing 19:50:13 there's a mime type for directories? 19:50:22 olsner: "x-", so no, not really. 19:51:16 sure it's not "x-director"? :) 19:51:53 (google is so sure you're wrong it just goes ahead and googles something different for you) 19:52:31 yup :) 19:52:46 http://www.google.com/search?q=x-directory&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-GB:unofficial&client=iceweasel-a#hl=en&client=iceweasel-a&rls=org.mozilla:en-GB:unofficial&&sa=X&ei=b6bZTJbjCOaV4gbn2qS8CA&ved=0CBEQvgUoAA&q=%2B%22application/x-directory%22&nfpr=1&fp=8ec2bc6eb6ca6ae0 19:53:12 what an ugly url, also including my previous search, nice privacy violation 19:54:13 there should be a "link to this search" address or something 19:55:03 olsner: or just sane urls always 19:55:12 say... http://google.com/search?q=foo+bar+baz 19:56:02 yeah, they could just use cookies for all the crud 19:57:38 olsner: or not have the crud at all (why does my browser matter? why are you putting "utf-8" there, what is that even for? &aq=t???) 19:58:22 your a-queue is t, obviously 19:59:00 olsner: oh clearly. 20:05:26 olsner: char buf[LOG10(MAX_UINT)]; 20:05:29 #define LOG10(n) \ 20:05:29 (((n) >= 1000000000) ? 9 : ((n) >= 100000000) ? 8 : ((n) >= 10000000) ? 7 : \ 20:05:29 ((n) >= 1000000) ? 6 : ((n) >= 100000) ? 5 : ((n) >= 10000) ? 4 : \ 20:05:29 ((n) >= 1000) ? 3 : ((n) >= 100) ? 2 : ((n) >= 10) ? 1 : 0)) 20:05:40 admittedly, that fails for >32-bit :) 20:08:47 elliott: what am I looking at? :) 20:09:01 olsner: me trying to write a writeud function 20:09:11 olsner: and failing because of my aversion to malloc 20:09:26 should actually be LOG10(MAX_UINT)+1 heh 20:09:50 -!- sftp has joined. 20:09:50 and writeud here is essentially printf's %u? 20:09:51 elliott: You should do clever things with sizeof instead. 20:10:00 Gregor: ...go on... 20:10:05 olsner: yes 20:10:05 elliott: sizeof(int) >= 10 -> at least 4 20:10:14 Gregor: *unsigned int 20:10:20 Gregor: Now make it handle every possible bit size :P 20:10:27 something like 1+sizeof(int)*8*ceil(log10/log2) 20:10:32 elliott: Yours doesn't handle every possible bit size. 20:10:37 elliott: But mine at least doesn't overflow in weird ways. 20:10:38 Gregor: Which is a bug. 20:11:02 elliott: You could write mine for up to 65,536-bit words and still not overflow on any reasonable system :P 20:11:15 Gregor: All I need is f such that f(n) >= floor(log_10(2^n))+1 and !(f(n) much greater than that) 20:11:17 :P 20:11:52 or just use (iirc) 22 which is big enough for 64 bits 20:11:52 I seem to recall using sizeof(bleh)/3 for that. It's over, but not a lot over. 20:12:00 Erm, sizeof in bits rather 20:12:04 *8/3 20:12:24 There's no real logic to that though ^^ 20:12:29 Gregor: sizeof in bits, i.e. 2^sizeof(x) / 3? :P 20:12:41 ("thatz xor!" shut up) 20:12:41 ... no, sizeof in bits is sizeof*8 20:12:51 oh. 20:12:53 indeed :P 20:13:55 Gregor: Now give me that for arbitrary base n! Mwahahaurk. 20:13:58 *hurk. 20:14:23 floor(log(base)/log(2)) 20:14:36 Gregor: I doubt my compiler will accept that as an array size :-) 20:14:40 Gregor: ...also, log(10) you mean. 20:14:48 base is your arbitrary base 'n' 20:14:53 Oh, 20:14:55 right :P 20:15:26 Gregor: so is sizeof(n)*8 / 3 approximating the log10 or the log10+1? 20:15:32 The log10 20:15:36 You need to add 1 after that. 20:15:47 Assuming you want some pussy null termination :P 20:16:07 and don't forget space for the sign if you're doing signed ints 20:16:23 Gregor: +2 presumably 20:16:31 log10 = # of digits - 1 20:17:31 I think that the fact that this reliably overestimates actually makes it OK? Maybe? Idonno, I think adding 1 is all you need ... Idonno, it would take me a while to actually remember the algebraic reason why this is OK :P 20:18:44 Gregor: Err, for a 64-bit integer it gives back 21. Allow me to remind you that the actual value in question is 10. 20:18:58 Uh, the value for a 32-bit integer is 10. 20:19:06 ...right you are! 20:19:19 The minimum for 64 is 20 IIRC? 20:19:24 Right :P 20:19:58 So you waste one byte, and really more due to alignment anyway, so who cares :P 20:20:13 Gregor: I'm going to start writing to the array at the end, and then note how far we are from the start of the array, and increment it by that when printing. 20:20:18 All to avoid a reverse. 20:22:01 so the 22 I remembered must be for a signed 64-bit integer: 20, plus one for null, and another one for the sign 20:23:28 Gregor: Wait, (UINT_MAX*8) = obvious error. 20:23:35 ... 20:23:36 SIZEOF 20:23:42 Gregor: ...right, that X-D 20:23:48 Good lawd man 20:23:55 i was dropped on my head as a baby 20:25:45 HA! It works! 20:26:25 Gregor: unfortunately, now i have to deal with the fact that it calls write without returning the buffer and thus on a socket... :P 20:26:48 Wait, are int->pointer casts guaranteed valid in C? 20:27:06 No. 20:27:20 Hell, even on 64-bit systems they're wildly wrong. 20:27:21 Gregor: they're guaranteed to work! just not make sense 20:27:23 no? 20:27:24 Since int is 32-bit. 20:27:27 Wellll 20:27:28 Fine 20:27:40 as long as sizeof(x) == sizeof(y *) 20:27:43 They will have a definable semantics, but casting back and forth could lose data, let's go with that :P 20:27:51 using u/intptr_t should be perfectly valid 20:28:02 (X *)((intptr_t) ptr_to_X) == ptr_to_X 20:28:06 (X *)((uintptr_t) ptr_to_X) == ptr_to_X 20:28:08 that's all you can rely on :P 20:28:13 olsner: Real men call it size_t/ptrdiff_t 20:28:24 Gregor: but those aren't pointer sized 20:28:30 Gregor: size_t is not guaranteed to be pointer-sized 20:28:33 olsner: ptrdiff_t is i think 20:28:37 ... 20:28:50 wtf, no, size_t is pointer-sized, that's the whole point. 20:29:05 your mother 20:29:07 's face 20:29:27 Gregor: Am I a terrible person if I use a switch statement to do the equivalent of buf[i--] = "0123456789"[d]? 20:29:44 elliott: Yes. 20:29:53 size_t may be smaller than the size of a pointer, but you can't allocate objects larger than size_t :) 20:29:53 Gregor: Amn't it great, though? 20:30:25 e.g. because addresses and offsets have different sizes in your architecture, or there's some kind of segmentation going on 20:30:53 Oyyyyyy vey right. 20:31:23 I suspect something similar applies to ptrdiff_t - not sure it's well-defined to take a difference between pointers into different objects 20:32:28 Screw it, we all know how real systems work :P 20:33:56 Right. :) 20:35:22 elliott: d["0123456789"] :) 20:35:39 -!- augur has quit (Remote host closed the connection). 20:35:57 olsner, commutativity of indexing is the most overlooked awesomeness in C. 20:36:18 Phantom_Hoover: Yes! 20:36:24 Depends on types though. 20:36:46 Phantom_Hoover: it is not overlooked it is well known 20:37:00 * Phantom_Hoover happies 20:37:00 Gregor: zeta c would have different ptrdiff_t to others i think 20:37:17 Gregor: (int)ptr was actually an address to a cons cell 20:37:28 so (foo *)(((int)ptr)+1) definitely wouldn't work 20:37:39 elliott: Hyuk 20:37:56 Gregor: http://lists.tunes.org/archives/lispos/1997-June/001659.html 20:38:04 Gregor: also ints were bignums :) 20:38:10 ... wow 20:38:14 What's sizeof(int)? 20:38:35 Gregor: Who knows? 20:38:48 I suppose if your ints are bignums, maybe you can store infinity in them :P 20:38:50 Gregor: (Did it even have sizeof?) 20:39:03 Gregor: infinity isn't two's complement 20:39:05 isn't that mandated? 20:39:06 or am i forgetting 20:39:12 By C99, not C89. 20:39:17 lawl 20:39:25 (IIRC) 20:45:27 From the editor who reverted my constructive Wikipedia edit as vandalism and gave me a harsh warning on my talk page, merely because I edited anonymously: "I also suggest you create an account if you feel stigmatized for not having one." 20:45:33 And fuck you too! 20:46:14 that's a little like, "I also suggest you change your ethnicity if you feel stigmatized for your current one." 20:46:16 elliott, I wish to spectate. 20:46:46 No, that's more like "I also suggest you change your religion if you feel stigmatized for your current one." 20:46:52 Religion, as account status, is a choice. 20:46:56 Many people make a poor choice. 20:46:58 olsner: Yeah, I was gonna use being gay, but I thought he'd reply "well being gay isn't a choice!", thus completely missing the point (and also marginalising any gay people who may have even decided to become gay). 20:47:07 And I stigmatise religious people, so I can't use that one :) 20:47:11 (That's because they're idiots though.) 20:47:18 Phantom_Hoover: http://en.wikipedia.org/wiki/User_talk:DC#My_edit_to_Tiny_C_Compiler 20:47:55 I would be less annoyed if he had used a milder warning like he's supposed to, but he went straight in for the "your edit was vandalism stop it" one. 20:48:07 I still must say that I sympathise a little with the bureaucrats here. 20:48:21 elliott: Your argument is complete bullshit in the context of getting a Wikipedia account :P 20:48:40 elliott: Especially since having an account in no way makes you non-anonymous. 20:48:41 Gregor: I just want to make him feel bad really. 20:48:48 Gregor: Yes it does; it ties all my edits together. 20:48:56 -!- elliott has left (?). 20:48:58 -!- elliott has joined. 20:48:59 whoops. 20:49:02 elliott: So does your IP, only if you're sneaking from IP to IP are they detached. 20:49:18 Gregor: ITT: Dynamic IP 20:49:38 Gregor: Besides, people find it easier to remember "quixj" than 192.168.29.42. 20:49:39 And tying your edits together is something you don't want happening? 20:49:49 Gregor: Also, I find it an unacceptable barrier to entry; I dislike Wikipedia enough already and if they'd prefer bureaucracy over me fixing up the crap formatting and inaccuracy I'd be happy not to edit. 20:50:07 What I *don't* accept is having all my edits marked as vandalism because I'm an IP, especially as the *good* vandals make accounts to avoid precisely that anyway. 20:50:44 Phantom_Hoover: I am uninterested in the culture of vane egoism and insane bureaucracy that the non-encyclopedia side of Wikipedia revels in. 20:51:06 elliott, then just don't engage with it. It's hardly a requirement to have an account. 20:51:45 Phantom_Hoover: We can continue along me naming all the reasons I don't want an account and you dismissing them for all eternity, or you could just shut up about it. 20:52:03 Perhaps they should disable anonymous editing if they really don't care about anonymous contributors at all. 20:52:06 I'm afraid you brought this up. 20:52:34 Phantom_Hoover: I brought this up after me and ais523 collectively whinged about the idiocy earlier. ais523 logreads. 20:53:19 I just find it laughable that you feel I should shut up when I was only responding to you. 20:53:36 elliott, I wish to spectate. 20:53:37 I still must say that I sympathise a little with the bureaucrats here. 20:53:54 elliott: What's your compiler, btw? 20:54:01 From the editor who reverted my constructive Wikipedia edit as vandalism and gave me a harsh warning on my talk page, merely because I edited anonymously: "I also suggest you create an account if you feel stigmatized for not having one." 20:54:02 And fuck you too! 20:54:02 that's a little like, "I also suggest you change your ethnicity if you feel stigmatized for your current one." Phantom_Hoover: http://en.wikipedia.org/wiki/User_talk:DC#My_edit_to_Tiny_C_Compiler 20:54:02 I would be less annoyed if he had used a milder warning like he's supposed to, but he went straight in for the "your edit was vandalism stop it" one. 20:54:08 Gregor: C compiler? 20:54:09 For Tigress or Pumette or whatever your system is 20:54:22 Phantom_Hoover: I did not address it to you, I addressed it implicitly to ais523-logreading. 20:54:33 Notice all the other people in the channel who said nothing. 20:54:34 religion is probably a slightly better analogy though 20:54:53 And I responded, since, you know, that's kind of the point of IRC. 20:54:58 (I'm referring to Kitten of course :P ) 20:55:17 If you want to have a one-to-one chat, do it in a PM or email. 20:55:18 Gregor: Not sure; pcc is the most likely candidate, as it rawks. 20:55:30 Gregor: (gcc is available for all those crappy programs. I will answer more questions after brbing :P) 20:55:44 *bingrb 21:00:31 elliott: How 'bout icc :P 21:00:31 -!- wareya has quit (Read error: Connection reset by peer). 21:01:29 -!- wareya has joined. 21:10:21 -!- Wamanuz has joined. 21:10:42 -!- Wamanuz5 has quit (Read error: Operation timed out). 21:16:43 Wamanuz? 21:26:18 elliott, what about clang? 21:26:35 elliott: How 'bout ... OpenWatcom? 21:29:01 Gregor: Yeahno (to both) :P 21:29:18 Vorpal: Big, and I'm not sure how good it is with static linking. 21:31:12 Vorpal: (As always, it'll be in a package.) 21:32:38 elliott: At least pcc has no GNU-derived code. uClibc still disgusts me on the ground that it includes a tad bit of GNU-derived code. But then, my desires to see a no-GNU Linux (see; not use) shouldn't really influence your desire to make whatever it is you'rem aking :P 21:32:41 *you're making 21:33:05 Gregor: Linux is GPL and therefore GNU! 21:33:10 :-O 21:33:23 My statement about having no [L]GPL code was a joke :P 21:33:31 Gregor: so was mine 21:33:38 SO WAS YOUR MOM. 21:34:13 that's what my lesbian step-other-mother said 21:35:31 Gregor: I could always write MY OWN LIBC 21:35:37 YES. 21:35:38 DOIT. 21:35:40 Gregor: (What about Android's bionic libc?) 21:35:45 Heynow. 21:35:45 That's not quite complete, but... 21:35:47 That's actually feasible. 21:35:53 Gregor: Not quite, without modifications :P 21:35:58 Gregor: The stali folk are looking into it. 21:36:02 I mean feasible as a starting point. 21:36:10 Right. 21:37:12 Gregor: I'd have to split every function into a separate file, though :-) 21:37:30 ? 21:37:33 It isn't already? 21:37:42 That's, like, .a-libc-101 21:38:11 Gregor: Is bionic .a? I don't know :P 21:38:28 Oh, I guess it shouldn't be X-D 21:38:34 Never mind, not sure why I thought that. 21:40:39 Gregor: CLEARLY I SHOULD USE GLIBC 21:40:50 Gregor: Because using dlopen() to do locales is a fan-fucking-tastic idea. 21:41:54 Gregor: Ha, one of Ulrich "Asshole" Drepper's arguments against static linking: [[# 21:41:54 no accidental violation of the (L)GPL. Should a program which is statically linked be given to a third party, it is necessary to provide the possibility to regenerate the program code.]] 21:41:55 eh, locales? just use C for everything! 21:41:59 Gregor: COULD THE WATER GET ANY MURKIER 21:42:57 Hyuk 21:44:52 also, if you use function-sections you get the size benefits of manually splitting every single function into a separate file, without having to actually do it 21:45:16 afaik android links bionic dynamically, btw 21:45:17 -!- Mathnerd314 has quit (Ping timeout: 252 seconds). 21:45:26 Gregor: I'm not sure yet what coreutils to use. I could port a BSD's (fun, but time consuming), use Heirloom (I don't really want to; I have no nostalgia for those tools), use Busybox (really nice, but I don't really want coreutils to be one binary, and some of the busybox utils are limited), [option I've forgotten that I'm trying to remember now], or cobble my own together from David Parson's bin repository and other crap (way too time consuming) 21:45:31 Or write my own! (no.) 21:45:46 also, if you use function-sections you get the size benefits of manually splitting every single function into a separate file, without having to actually do it 21:45:51 olsner: i doubt non-gcc support that 21:46:01 then don't bother with non-gcc? 21:46:18 elliott: I thought busybox had an option to do multi-binary, just an unpopular one? I also thought busybox was TAINTED with GNUTUDE. 21:46:39 Gregor: (1) Yes, but I have a feeling they'd end up sharing a lot of code as I bet it's not coded for, and (2) really? 21:46:52 http://en.wikipedia.org/wiki/BusyBox says nothing about GNUfart. 21:47:00 Not all of it, but some utilities. 21:47:10 olsner: Au contraire, I'm not bothering with gcc. 21:47:14 Gregor: Citation needed :P 21:47:39 elliott: hmm, ok, then you may need to select toolchain carefully or split it up in separate .o files :/ 21:47:51 olsner: it's not that hard to split up .c files... 21:48:01 uClibc does it (well, 99% certain :-)) 21:48:28 Gregor: Hey, I can avoid OpenSSL! Sweet! 21:48:40 Oh? With? 21:48:54 Presumably avoiding noodles too? 21:48:57 Gregor: Well, most things also do gnutls, and I'm not using OpenSSH. 21:49:16 gnutls == noodles == GNU :P 21:49:18 Gregor: avo...nood..wh lawl 21:49:34 Gregor: Well, true, but OpenSSL is really just terrible. 21:49:38 Yes. 21:49:43 BUT GNU D-8 21:49:46 Gregor: LibTomCrypt :P 21:50:08 Gregor: You're meant to say "No OpenSSH? WHAT IS THIS MADNESS?". 21:50:24 Y'know what? 21:50:33 Noodles is the perfect argument about libnoreadline. 21:50:50 Gregor: Your... mother is the perfect argument about libnoreadline. 21:50:50 It's only evasion when it's the GPL? What's this bullshit? 21:51:06 gnutls is actually api-compatible? 21:51:07 heh 21:51:30 Gregor: We need an OpenSSL lawyer to demand GNU relicense gnutls under their license. 21:51:32 It's SLIGHTLY API-compatible. 21:51:40 Gregor: GOOD ENOUGH 21:51:49 Gregor: You're meant to say "No OpenSSH? WHAT IS THIS MADNESS?". 21:52:30 Gregor: GIVE IN TO THE BAIT 21:52:36 NEVER 21:52:42 -!- Mathnerd314 has joined. 21:52:47 Gregor: But... but :3 :'( 21:53:12 Gregor? WHAT IS THIS MADNESS? 21:53:20 Readline's licensing is an amazing exercise in stupid. 21:53:20 * olsner gives in 21:53:29 pikhq: The true solution is to never use the GPL ever :P 21:53:30 "It's API compatible thus you must relicense as GPL". 21:53:53 elliott: Or just beat the FSF with a cluebat from time to time. 21:53:58 pikhq: Except they're probably right. 21:54:04 Gregor convinced me :P 21:54:14 elliott: ... In this case, *how*? 21:54:27 Ask Gregor, I would go insane explaining it. 21:54:39 Gregor: Please tell me there's logic behind it. 21:54:45 pikhq: No, it's copyright law. 21:54:53 No logic, but the FSF is right. 21:54:54 pikhq, will you assist my insane tty idea? 21:55:12 so Gregor ASK ME WHY I DON'T HAVE OPENSSH 21:55:21 elliott: NEVER. 21:55:28 so Gregor DON'T ASK ME WHY I DON'T HAVE OPENSSH 21:55:35 elliott: ALWAYS. 21:55:48 Gregor: If you ask me why I don't have OpenSSH I won't answer; otherwise I will 21:56:00 -!- augur has joined. 21:56:07 elliott: TOO BAD. 21:56:11 elliott: I'm going with "Something else is better". 21:56:21 Gregor: I don't use OpenSSH because!!!!! (ask question to continue) 21:57:02 elliott, incidentally, if you don't like WP's bureaucracy, Citizendium's must be seen to be believed. 21:57:03 Gregor: could you please ask him 21:57:09 he's hurting 21:57:10 oklopol: NEVER. 21:57:11 Phantom_Hoover: I have seen and believed. 21:57:19 oklopol: my wounds are from my razor blade 21:57:22 Complete insanity. 21:57:22 if only Gregor would ask 21:57:28 i could stop stabbing myself 21:57:30 URGHHHH 21:57:33 i'm pooping blood now 21:57:38 can't control it no no. 21:57:44 What do you have a razor blade for? 21:57:52 mmm 21:57:52 You have a biological age of about 6. 21:57:53 stabbing his intestines, obviously 21:57:57 donated blood today 21:58:00 have some 21:58:19 Phantom_Hoover: FOR MY PAIN 21:59:23 Gregor: ASK OR MY WOUNDS WILL TRANSMIGRATE INTO YOUR SOUL 21:59:31 *yawn* 21:59:34 Welp, by folks! 21:59:37 *bye 21:59:50 Ow, my soul! 22:00:08 Gregor: W O U N D S 22:00:11 Oh, wait, I forgot. 22:00:20 You don't have a soul, you ENGLISHMAN. 22:00:32 Gregor don't have deal with devil. Gregor BE devil. 22:01:13 I always suspected the devil would be one of those backstabbing ENGLISHMEN. 22:01:43 Gregor: I can remove your Jewry if you ask the question. 22:01:58 * elliott steals Gregor's jewellery 22:05:55 pikhq: make him ask 22:08:15 "transmigrate"? if trans means something about moving, isn't that already implied by migration? 22:08:59 olsner: http://en.wikipedia.org/wiki/Reincarnation 22:09:08 trans·mi·grate/transˈmīgrāt/Verb 22:09:09 1. (of the soul) Pass into a different body after death. 22:09:09 2. Migrate. 22:09:10 your wounds will reincarnate? 22:09:17 olsner: see (1) there 22:09:35 olsner: additional meaning: 3. (of Prime Intellect) Take longer to be written than Duke Nukem forever. 22:09:40 *Forever. 22:10:30 ah, 'trans' seems to have an ever so slightly more specific meaning than just motion 22:11:06 OMG ITS BOILING 22:11:20 oh, nm, it was supposed to do that 22:13:10 -!- Zuu has quit (Ping timeout: 260 seconds). 22:14:29 `addquote OMG ITS BOILING oh, nm, it was supposed to do that 22:17:38 hey Gregor 22:17:40 what has my system NOT got 22:22:43 elliott, a soul. 22:24:38 pikhq: How about I just tell you instead :P 22:24:52 elliott: Sure. 22:25:05 pikhq: Dropbear roolz OpenSSH droolz 22:26:02 * Phantom_Hoover wonders if there's a program so simple that noöne can argue over which version is best. 22:26:31 It's not *cat*, so I have no idea what it could be. 22:26:33 -!- kar8nga has quit (Remote host closed the connection). 22:27:40 Phantom_Hoover: mu; gnu can make the simplest program huge 22:27:45 see e.g. gnu true 22:28:01 tr... wha... how... 22:28:29 what 22:28:49 Phantom_Hoover: it responds to --help and --version. it is some 50 lines long 22:28:54 Phantom_Hoover: gnu false is a define and then -- i shit you not 22:28:56 #include "true.c" 22:28:58 Dropbear is pretty awesome. 22:29:05 pikhq: Indeed! 22:29:33 elliott, that makes the rhetoric in the GNU design advice about not following standards belligerently hilarious. 22:30:02 $ ls -lh $(which true) $(which false) 22:30:03 -rwxr-xr-x 1 root root 21K Apr 28 2010 /bin/false 22:30:03 -rwxr-xr-x 1 root root 21K Apr 28 2010 /bin/true 22:30:09 21 fuckin' ks 22:30:42 ridunculous 22:30:49 * Phantom_Hoover aneurysms. 22:31:01 * Phantom_Hoover objdumps 22:31:28 Phantom_Hoover: http://git.savannah.gnu.org/cgit/coreutils.git/tree/src/true.c 22:31:30 Phantom_Hoover: BEHOLD GNU TRUE 22:31:32 olsner: you too. behold it 22:31:43 http://git.savannah.gnu.org/cgit/coreutils.git/tree/src/false.c 22:31:51 I'm almost afraid to watch 22:31:58 olsner: CLICK MWAHAHAHA 22:32:02 olsner: it has LOCALISED STRINGS 22:32:04 It's important to get translations and --help --version working properly there. 22:32:05 for the help message 22:32:08 fizzie: i know :D 22:32:13 emit_ancillary_info (); 22:32:15 WHAT ANCILLARY INFO 22:32:17 FWIW, my true doesn't do that. 22:32:21 Phantom_Hoover: It does. 22:32:23 Phantom_Hoover: $(which true) --help 22:32:27 Phantom_Hoover: true is also a shell built-in. 22:32:35 -!- Sgeo has joined. 22:32:48 elliott, read http://qntm.org/artwar . Imagine me in that situation. 22:33:18 strings /bin/true says the binary ends up having strings like "A NULL argv[0] was passed through an exec system call." and "memory exhausted". 22:33:29 -!- MigoMipo has quit (Quit: Quit). 22:34:28 comes with all of "Written by %s.", "Written by %s and %s." and "Written by %s, %s, and %s." :) 22:35:05 elliott, my god 22:35:08 evidently it can dynamically change its number of authors, useful extra feature for a utility that should just exit with no error 22:35:16 All the way up to: "Written by %s, %s, %s, %s, %s, %s, %s, %s, %s, and others." 22:35:50 lol 22:36:13 evidently it can dynamically change its number of authors, useful extra feature for a utility that should just exit with no error 22:36:16 NO IT CAN ALSO EXIT WITH FAILURE 22:36:19 IF COMPILED TO DO THAT 22:36:31 here's my implementation 22:36:32 Sgeo, what is that stupidity. 22:36:35 int main() { return 0; } 22:36:35 that's a different utility, I'm looking through 'true' here 22:36:37 and of false: 22:36:39 int main() { return 1; } 22:36:40 olsner: look at the header 22:36:43 elliott, psssh. 22:36:45 olsner: true.c implements false 22:36:54 olsner: false.c just defines EXIT_STATUS to be EXIT_FAILURE, and then does #include "true.c" 22:36:58 Anyone want to tell elliott that he's missing out on imagining me in pain? 22:36:59 It's been golfed to a crazily tiny number of bites. 22:37:00 elliott: true, the binary damnit 22:37:05 olsner: :P 22:37:09 Sgeo, we did that a while ago. 22:37:12 Phantom_Hoover: ...bites? 22:37:18 int main() { return 1; } 22:37:20 AAAAAAAAAAAAAAAAAAAAAARRRRRRRRRRRGGGGGGGGGGHHHHHHHHHHH 22:37:21 note: this doesn't work on VMS :-) 22:37:24 * Phantom_Hoover seppukus. 22:37:27 Phantom_Hoover: COBOLUTILS? 22:37:34 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAa 22:37:51 elliott: returning one from main usually means something like returning to the CRT bootstrap code that calls exit() with the return value of main 22:37:57 Wait, my guts are on the floor. COBOL is the least of my problems. 22:38:07 olsner: on VMS, 1 is not exit failure 22:38:12 it should be {return EXIT_FAILURE;} 22:38:12 :) 22:38:18 (EXIT_SUCCESS is defined to be 0 on all platforms) 22:38:25 You are all officially more COBOL-obsessed than I am 22:38:27 oh, and "one" is actually a placefolder for "a value" there 22:38:30 Which isn't particularly hard 22:38:49 Sgeo, actually, the image of you seeing AW burn amuses me terribly. 22:38:53 Good job. 22:39:12 olsner: I can't understand you :P 22:39:38 elliott: my point is that even a main that simply returns will result in a HUGE binary 22:40:00 olsner: http://www.muppetlabs.com/~breadbox/software/tiny/teensy.html :P 22:40:19 olsner: (doesn't work with newer linux kernels) 22:41:00 elliott, he did false and true in that. 22:41:03 Both at once. 22:41:22 Phantom_Hoover: No, he did 42. 22:41:23 -!- cheater99 has quit (Ping timeout: 252 seconds). 22:41:41 s/mov bl, 42/xor bl, bl/ for true and and s/42/1/ for false. 22:41:59 elliott, http://www.muppetlabs.com/~breadbox/software/tiny/true.asm.txt 22:42:20 The actual code is 22 lines. 22:42:27 Is elliott somehow ignoring all lines that contain Sgeo now? 22:42:56 Ah. 22:43:00 elliott, can you see this line Sgeo Sgeo Sgeo? 22:43:03 yes 22:43:06 $ ./test2; echo $?; stat test2 22:43:06 0 22:43:06 File: `test2' 22:43:06 Size: 0 22:43:18 olsner, hah. 22:43:23 Wait, what? 22:43:27 Phantom_Hoover: Wait, where did you find the link to true.asm.txt? 22:43:33 Phantom_Hoover: file without shebang = interpreted by shell 22:43:39 shell executes all 0 commands, exits successfully. 22:43:47 echo 'exit 1' >false; chmod +x false 22:43:47 also works 22:44:01 olsner: stat, not wc -c? :p 22:44:28 elliott, I got the link from http://www.muppetlabs.com/~breadbox/software/tiny/ 22:44:36 elliott: for some reason, yes 22:44:38 Ah. 22:45:31 http://www.muppetlabs.com/~breadbox/software/tiny/hello.asm.txt 22:45:32 gorgeous 22:45:41 now make some of the code have the hello world chars in 22:45:45 so you can reuse it! 22:45:57 elliott, he golfed that too, obviously. 22:46:04 http://d.hatena.ne.jp/kikx/20061111 22:46:05 even smaller 22:46:16 can be 57 bytes if you drop the !, as hello.asm.txt does 22:46:37 elliott, he did ls. 22:47:08 145 lines. 22:47:50 Supports -C1lFisdaBNbR 22:48:12 oh, incidentally test2 was a quine, didn't even notice 22:48:21 In under 3 times the line count that the GNU idiots took for _true_. 22:48:23 silly quine but whatever, my first quine 22:48:49 When compiled, it is actually under 1K long. 22:49:23 Less than 100th of GNU's compiled binary. 22:50:38 olsner: it's a cheat quine 22:50:54 elliott: yep 22:50:56 Phantom_Hoover: i like how even you hate gnu now 22:51:45 elliott, well, I've always disliked their arrogance. 22:51:47 olsner: write an real-mode asm quine! 22:53:51 [[Here's a program that I actually use. It simply runs forever, printing a bell character every four minutes or so. I keep it in the background after logging into a remote machine that times out connections when they're idle. At 56 bytes, it's a bit longer than the one-line shell script I originally used, but on the plus side it doesn't take up an extra process in order to sleep.]] 22:54:16 http://www.muppetlabs.com/~breadbox/software/tiny/bf.asm.txt 22:54:17 http://www.muppetlabs.com/~breadbox/software/tiny/bf.asm.txt 22:54:17 http://www.muppetlabs.com/~breadbox/software/tiny/bf.asm.txt 22:54:19 166 byte bf 22:54:22 compiler 22:54:33 Didn't quite work IIRC... 22:54:40 Phantom_Hoover: not on modern linux, sure 22:54:41 who cares 22:55:25 btw http://asm.sourceforge.net/asmutils.html is more of this good stuff 22:55:25 coreutils 22:55:27 -!- cheater99 has joined. 22:56:47 Presumably 5 orders of magnitude smaller than GNU's. 22:56:51 Phantom_Hoover: btw, there's a nice ls + more at https://github.com/Orc/bin 22:57:04 cat, date, df, id, ls, uname, who 22:57:28 Phantom_Hoover: "This is a simple base64 decoder utility. Like hexdump, it can either accept a filename on the command line, or work on standard input. Since sometimes very large files need to be encoded in base64, I violated my prime directive a little bit and let the program grow a bit more than strictly necessary, in order to optimize for speed. This version is there significantly faster than the ut 22:57:28 ility included in GNU coreutils. Its size is exactly 256 bytes." 22:58:05 Any bets on how badly GNU screwed up base64? 22:58:10 badly 22:58:39 "Another unique feature of factor is that it has online help, version information, and error messages. It therefore arguably stands as a completely functional replacement for the version in GNU coreutils. Its size is 1020 bytes." 22:58:48 $ wc -c $(which factor) 22:58:48 31584 /usr/bin/factor 22:59:12 GNU factor: 31 times as big as the other one, and rubbish! 22:59:21 Phantom_Hoover: oh, and that factor links to libc too 22:59:25 and obeys all standards 22:59:28 O.o 22:59:29 also, it's faster than gnu factor 22:59:34 http://www.muppetlabs.com/~breadbox/software/tiny/factor.asm.txt 22:59:37 What else does the GNU version do? 22:59:41 Phantom_Hoover: "online help" is arcanejargon for "--help", btw. 22:59:41 Gaussian primes? 22:59:44 Phantom_Hoover: uhh... nothing 22:59:50 it's written in C :-P 22:59:57 bloated bloated c 23:00:12 gnu factor doesn't even have any flags other than --help and --version 23:01:00 The full documentation for factor is maintained as a Texinfo manual. 23:01:01 — man factor 23:04:15 * Phantom_Hoover → sleep 23:04:24 -!- Phantom_Hoover has quit (Remote host closed the connection). 23:19:27 Gregor: Bionic needs a bit of fixing up :) "# Android implements its own account management, and does not use /etc/passwd. There is no getpwent(), and getpwnam()/getpwuid() are implemented as wrappers around an Android ID service. At present, the Android ID service consists of 25 hard-coded accounts in " 23:20:12 "Bionic expects some information to be stored at a magic address high 23:20:12 in the process address space. Right now that information is populated 23:20:12 by the dynamic linker. If the process is linked statically and the 23:20:12 linker doesn't run that would be a problem, but probably a solvable 23:20:12 one as the support could be added to crt.o instead." 23:20:23 http://www.metasploit.com/redmine/issues/2418 23:20:35 bionic patches and stuff 23:24:12 laaaaaaaaaaawl 23:25:21 Gregor: "My friend did some experiments and verified that vim's execution time grows as a square of the number of times the command is repeated." 23:25:28 Gregor: HA HA VIM USER 23:25:30 (You use vim right?) 23:25:51 Yes, but I'm betting those experiments were fucked up :P 23:26:02 Gregor: Actually, no: 1000000aaoeu^[ 23:26:08 Gregor: Four megs of aaoeu. 23:26:22 OHOHOH 23:26:27 That repetition :P 23:26:33 Yeah, but that's BS anyway :P 23:26:33 Gregor: nvi did it in a second. He gave up on vim after 74 minutes, and then his friend worked it out and it TURNS OUT it would have taken 14.3 hours. 23:26:44 Gregor: Yeah, but... how do you fuck up your architecture that badly? 23:26:47 Repetition is a fucking for loop! 23:27:01 Who knows :P 23:31:03 -!- Mathnerd314 has quit (Ping timeout: 264 seconds). 23:35:14 "secondly, take an OS design class. the main reason to use modular device drivers is to keep the system up and running in the event that a driver should fail (or just to be nice to programmers)." 23:35:20 understanding of what linux kernel modules are fail 23:35:56 Blog comments are so useless, even by the author :P 23:36:59 Hmm 23:36:59 A ... geeky person I know seems to have found an issue with common definitions of turing-complete 23:36:59 http://esolangs.org/wiki/Befunge/index.php 23:36:59 Befunge-93 is a non-TC language that has a finite amount of space for the program itself 23:36:59 Brainfuck is a language that is turing-complete. 23:37:07 Now, is Befinge/index.php turing-complete? On the one hand, it can interpret BF programs, so yes. On the other hand, there is only finite space for code, so no 23:37:13 Did I explan that properly? 23:37:20 explain 23:38:26 * Sgeo just points them to the talk page 23:40:08 -!- Mathnerd314 has joined. 23:40:09 Gregor: Have you ever used buildroot? http://buildroot.uclibc.org/ 23:40:16 I seem to recall you ... mentioning BusyBox ... once ... 23:40:30 -!- calamari has joined. 23:42:42 -!- FireFly has quit (Quit: swatted to death). 23:44:58 -!- sftp has quit (Remote host closed the connection). 23:53:53 pikhq: If you want me to support x86_64, now is the time to bother me incessantly. 23:54:51 elliott: He'll be happy so long as your docs all have the right doctype declaration and MIME type. 23:55:05 Gregor: lawl 23:55:13 Gregor: The correct roff doctype 23:55:42 That being said, not supporting x86_64 is pretty stupid. 23:55:45 What with this being THE FUTURE. 23:56:22 Gregor: Yeah, but x86_64 also bloats everything on the system and I'm lazy. On the other hand, as someone who has programmed a boot sector, eight fucking registers thank fucking god. 23:56:29 * Sgeo is just glad humanity hasn't been sterilized 23:56:40 Gregor: On the other other hand, what's the point of a nice teensy-tiny distribution that doesn't run on anything before 2004? 23:56:51 elliott: I didn't say x86_64 ONLY. 23:57:03 Gregor: Note: I will be the only maintainer. Note: I have to build every damn package all the time. 23:57:08 Note: EFF YOU 23:58:59 Gregor: Unless, of course, you would like to maintain one of the ports. 23:59:13 Gregor: (And provide the extra disk space to store packages if required.) 23:59:26 Depends on how shitty the distro is :) 23:59:40 Gregor: For the GNUfan that you are: Incredibly :P