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