←2011-03-02 2011-03-03 2011-03-04→ ↑2011 ↑all
00:00:15 <pikhq> elliott: Narration will generally be polite, but not necessarily, and dialog will be, well, entirely natural.
00:00:50 -!- copumpkin has quit (Ping timeout: 276 seconds).
00:01:04 <pikhq> Also, the transformation from casual to merely *polite* form is actually fairly trivial.
00:02:24 <pikhq> It's the higher forms of politeness that are somewhat difficult, courtesy in large part to having to replace certain verbs with more humble or honorific verbs.
00:03:02 <pikhq> (though even then, it's *maybe* 20 verbs that do that, and for the rest it's a regular transformation?)
00:03:07 <pikhq> s/?/./
00:03:45 <pikhq> And, as I said, that feature of Japanese seems to be in the process of dying out.
00:04:47 <pikhq> Anyways. Yeah, Tae Kim seems quite misinformed on Heisig. But his guide on grammar I still find to be an invaluable resource.
00:05:13 <elliott> Rite.
00:06:29 -!- cheater- has joined.
00:09:04 <pikhq> Really, most everyone's idea on how to introduce basic Japanese grammar is motherfucking retarded.
00:09:11 -!- cheater00 has quit (Ping timeout: 240 seconds).
00:09:30 <Ilari> BTW, regarding oil prices, it seems that WTI prices are exceptionally low (in the past, WTI and others have been highly correlated, but seems that the correlation has broken a bit lately).
00:09:39 <pikhq> Hrm.
00:11:22 -!- Sgeo has joined.
00:14:44 <Sgeo> So, Other again failed to realize that it was me texting.
00:25:25 -!- copumpkin has joined.
00:26:45 -!- pumpkin has quit (Ping timeout: 250 seconds).
00:45:44 <pikhq> Y'know, ICANN *really* need to be made independent of the US.
00:45:55 <pikhq> Needs, even.
00:48:01 <pikhq> For those who are unaware, ICANN *contracts with the US federal government* to administrate DNS. I am not fucking kidding.
00:49:01 <pikhq> ... Oh, and all of IANA.
00:51:31 -!- pumpkin has joined.
00:52:40 -!- Ladyboy_Who_Smel has joined.
00:52:58 <Ladyboy_Who_Smel> helu
00:53:54 <pikhq> It boggles the mind that the US could, if sufficiently insane, bring down DNS.
00:54:11 -!- copumpkin has quit (Ping timeout: 264 seconds).
00:54:57 -!- mtve has quit (Ping timeout: 240 seconds).
00:55:07 <Sgeo> Hi Ladyboy_Who_Smel
00:55:38 -!- Ladyboy_Who_Smel has left (?).
00:55:45 <elliott> Alas poor Ladyboy_Who_Smel.
00:56:01 <elliott> I knew him and/or her and/or it well.
00:58:43 <pikhq> I mean, gah, the President of the United States could order the Department of Commerce to distribute an empty root zone, and bam. DNS is down.
01:00:38 -!- mtve has joined.
01:01:14 <Sgeo> M T V E, M T V E
01:01:22 <Sgeo> Dammit, that didn't come out as I wanted
01:03:10 -!- comex has quit (*.net *.split).
01:07:28 -!- comex has joined.
01:08:27 -!- pumpkin has quit (Quit: Computer has gone to sleep.).
01:09:32 -!- comex has quit (*.net *.split).
01:11:21 -!- GreaseMonkey has joined.
01:11:21 -!- GreaseMonkey has quit (Changing host).
01:11:21 -!- GreaseMonkey has joined.
01:15:11 -!- comex has joined.
01:15:56 -!- Behold has quit (Remote host closed the connection).
01:19:04 <Sgeo> Would this be a fair way of describing what happened:
01:19:19 <Sgeo> "I either win the lottery or I don't. Therefore, I have a 50% chance of winning"
01:23:36 <pikhq> Clearly fallacious.
01:24:36 <Sgeo> pikhq, is that pretty much what he did, or is there any merit in the claim that it somehow depends on whether it's discrete or binomial (and the lottery question is an example of just one of those)?
01:25:22 <pikhq> Sgeo: It's a straight-up fallacy.
01:26:23 <pikhq> Sgeo: The presence of two possibilities *in no way* indicates that there is a 50% chance of either one.
01:26:58 <Sgeo> I think whatever his "clarification" on Monday is, I'll present it here. Until then, I'm going to continue assuming he's an idiot.
01:31:12 -!- copumpkin has joined.
01:37:25 <Sgeo> copumpkin, how do you deal with idiot professors?
01:37:33 <copumpkin> I don't
01:38:41 <copumpkin> :)
01:39:23 -!- augur has joined.
01:42:55 <pikhq> Huh.
02:31:24 -!- augur has quit (Remote host closed the connection).
02:43:48 -!- augur has joined.
02:51:59 -!- comex has quit (Quit: ZNC - http://znc.sourceforge.net).
02:52:23 -!- comex has joined.
03:18:09 -!- bsmntbombdood has joined.
03:32:03 -!- IntelMeth has joined.
03:35:40 -!- augur has quit (Remote host closed the connection).
03:43:57 -!- augur has joined.
04:27:03 -!- Mathnerd314 has quit (Read error: Connection reset by peer).
04:32:03 -!- elliott has quit (Ping timeout: 272 seconds).
04:34:08 -!- RodgerTheGreat has joined.
04:34:17 <RodgerTheGreat> hey dudes
04:34:41 <RodgerTheGreat> it's been a while since I stopped by, but I just finished a project you folks might be able to appreciate
04:35:13 <RodgerTheGreat> It's a simple Forth VM and compiler written in PostScript: https://github.com/JohnEarnest/Four.Ps
04:45:48 <pikhq> What a coincidence; elliott (was ehird) (seems to have pinged out and probably went to sleep) has been trying to get an x86 Forth in a boot sector.
04:46:33 <pikhq> Though, given that it's elliott, he may have given up on that.
04:47:02 <RodgerTheGreat> hm
04:47:25 <RodgerTheGreat> well, 512 bytes is *probably* enough for at least a bootstrap compiler
04:47:26 <pikhq> And given that that's insanely tiny even by Forth standards, well, I wouldn't blame him. :P
04:48:19 <RodgerTheGreat> the main challenge is that most designs require some sort of basic dictionary to begin with, and they can eat up a lot of space
04:48:49 <pikhq> Be a bit easier if there were enough space to get a decompressor going.
04:48:53 <RodgerTheGreat> yeah
04:49:05 <RodgerTheGreat> UPX was my next thought
04:49:17 <RodgerTheGreat> I think that only eats up a little over a hundred bytes
04:49:26 <pikhq> Really? Dang.
04:49:31 <RodgerTheGreat> lemme see
04:50:52 <RodgerTheGreat> http://upx.hg.sourceforge.net/hgweb/upx/upx/file/8a3a08e9ed7f/src/stub/src/i086-dos16.exe.S ?
04:51:13 -!- IntelMeth has left (?).
04:53:00 <pikhq> The actual decompression code is probably big.
04:53:17 <RodgerTheGreat> yeah it's hard to find good numbers
04:53:41 <RodgerTheGreat> but I know a modified form of UPX has been used in 4k intros, so the decompression stub is pretty tiny
04:55:06 <RodgerTheGreat> there is also Crinkler, which reportedly has a decompressor that is about 220 bytes: http://crinkler.net/
04:56:46 <pikhq> Possible issues: not bare metal.
04:57:44 <RodgerTheGreat> as in you think crinkler takes advantage of windows stuff, or are you pointing out that a bootloader has to kick into protected mode, etc in addition to whatever work you want done?
04:58:21 <pikhq> It's likely it takes advantage of Windows stuff.
04:58:43 <pikhq> IIRC elliott had getting into protected mode down to something pretty tiny.
04:59:24 <RodgerTheGreat> I think it's usually only a handful of instructions, but they would probably have to go outside the decompressor
04:59:36 <RodgerTheGreat> which makes them comparatively more expensive
05:06:40 <RodgerTheGreat> anyways, if anyone thinks my postscript thing is spiffy just let pikhq know and I can drop by again later
05:06:48 <RodgerTheGreat> 'night all
05:06:51 -!- asiekierka has joined.
05:07:06 -!- RodgerTheGreat has left (?).
05:19:45 <pikhq> For those confuséd, RodgerTheGreat and I still have an IRC channel in common.
05:22:38 <quintopia> s/confused/who care/
05:25:18 -!- augur has quit (Remote host closed the connection).
05:28:40 -!- pikhq_ has joined.
05:28:44 -!- pikhq has quit (Ping timeout: 250 seconds).
05:36:35 -!- asiekierka has quit (Read error: Operation timed out).
05:51:09 -!- augur has joined.
06:16:09 -!- Sgeo_ has joined.
06:18:37 -!- Sgeo has quit (Ping timeout: 240 seconds).
06:47:45 -!- Sgeo has joined.
06:49:43 -!- Sgeo_ has quit (Ping timeout: 240 seconds).
07:01:07 -!- Sgeo_ has joined.
07:02:27 -!- Sgeo__ has joined.
07:04:03 -!- Sgeo has quit (Ping timeout: 252 seconds).
07:05:15 -!- Sgeo has joined.
07:05:31 -!- Sgeo_ has quit (Ping timeout: 252 seconds).
07:06:30 -!- Sgeo_ has joined.
07:07:21 -!- Sgeo__ has quit (Ping timeout: 252 seconds).
07:09:33 -!- Sgeo has quit (Ping timeout: 252 seconds).
07:21:52 -!- oerjan has joined.
07:29:30 <oerjan> <elliott> I'm sure the conspiracy is to cover up how powerful term rewriting is.
07:29:50 <oerjan> (x): -> (x)(x), (x)^ -> x, bitches!
07:31:21 <oerjan> 15:43:35 * Lymia sees insane people
07:31:21 <oerjan> 15:43:38 <Lymia> Nothing out of the ordinary.
07:31:33 <oerjan> it's the dead insane people you should be worried about.
07:34:09 <oerjan> <pikhq> Can anyone give me a rationale for defining many different objects and reïterating, except much more tediously, that they form a group, a monoid, a field, etc., before teaching those damned concepts?
07:34:47 <oerjan> well i think maybe you need at least a couple examples first to show that the general concepts are _useful_.
07:38:04 -!- Sgeo has joined.
07:38:04 <oerjan> <elliott> "I hope this ranks #1 in google for “Heisig douche bag” (Updated)"
07:38:11 <oerjan> sadly just #3, it seems
07:39:24 <oerjan> oh wait #2
07:41:04 -!- Sgeo_ has quit (Ping timeout: 252 seconds).
07:49:10 <oerjan> <Sgeo> pikhq, is that pretty much what he did, or is there any merit in the claim that it somehow depends on whether it's discrete or binomial (and the lottery question is an example of just one of those)?
07:49:19 <oerjan> binomial _is_ a form of discrete.
07:51:39 -!- uniqanomaly_ has quit (Ping timeout: 250 seconds).
07:55:22 -!- cheater- has quit (Ping timeout: 240 seconds).
07:57:52 -!- cheater- has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:01:30 -!- GreaseMonkey has quit (Quit: The Other Game).
08:03:54 -!- uniqanomaly has joined.
08:05:08 -!- wareya_ has joined.
08:08:45 -!- wareya has quit (Ping timeout: 276 seconds).
08:17:51 -!- Sgeo has quit (Read error: Connection reset by peer).
08:18:18 -!- uniqanomaly has quit (Ping timeout: 260 seconds).
08:18:20 -!- Sgeo has joined.
08:22:54 -!- uniqanomaly has joined.
08:26:41 -!- oerjan has quit (Quit: leaving).
08:48:45 -!- Sgeo_ has joined.
08:51:47 -!- Sgeo has quit (Ping timeout: 252 seconds).
08:54:00 -!- BeholdMyGlory has joined.
09:18:21 -!- Behold has joined.
09:20:37 -!- MigoMipo has joined.
09:22:09 -!- BeholdMyGlory has quit (Ping timeout: 276 seconds).
09:25:54 -!- quintopia has quit (Remote host closed the connection).
09:26:01 -!- Behold has quit (Remote host closed the connection).
09:39:34 -!- myndzi has quit (Ping timeout: 276 seconds).
09:40:13 -!- pingveno has quit (Ping timeout: 276 seconds).
09:45:55 -!- pingveno has joined.
10:37:20 -!- cheater- has quit (Ping timeout: 252 seconds).
10:37:48 -!- cheater00 has joined.
10:53:33 -!- fizzie has quit (Read error: Operation timed out).
10:53:38 -!- fizzie has joined.
10:59:42 -!- cheater00 has quit (Ping timeout: 252 seconds).
11:01:12 -!- cheater00 has joined.
11:06:54 -!- myndzi has joined.
11:13:34 -!- pikhq has joined.
11:13:48 -!- pikhq_ has quit (Ping timeout: 260 seconds).
11:24:04 -!- pikhq_ has joined.
11:24:57 -!- pikhq has quit (Ping timeout: 276 seconds).
11:52:13 -!- ais523 has joined.
11:53:46 -!- pikhq_ has quit (Ping timeout: 250 seconds).
11:53:56 -!- pikhq has joined.
11:59:23 -!- ais523 has quit (Remote host closed the connection).
11:59:54 -!- Patashu has quit (Ping timeout: 240 seconds).
12:05:03 -!- oerjan has joined.
13:09:32 -!- webquint has joined.
13:09:46 <webquint> aw damn
13:09:56 <webquint> quintopia really is offline
13:10:17 <webquint> must have waited too long to pay >.>
13:12:38 <webquint> is there a way to start a process, and then later connect other processes' stdout to that process's stdin temporarily? or is this the sort of thing one must use sockets for?
13:13:49 <fizzie> You could use a named fifo as the stdin of the first process; then you can write into it from different sources.
13:15:54 <webquint> oh wait! fifos! couldn't i have a process watch /several/ fifos?
13:16:20 <webquint> also, how does one create a fifo from C?
13:17:49 <fizzie> If you're writing the code that is to be the process, sure, you can watch multiple pipes if you like.
13:18:11 <fizzie> Also, if you're doing all the process creation from within a single program, you can just use pipe(2) and unnamed pipes.
13:18:47 <webquint> no, i want to be able to start all processes separately from the command line
13:19:11 <fizzie> Well... you can use mknod(2) to create named pipes.
13:19:51 <fizzie> With mknod(pathname, S_IFIFO, 0).
13:20:09 <fizzie> A nitpicker would say this is POSIX and not C, though.
13:21:48 <webquint> heh, ias long as my target system has it, i don't mind using it
13:22:49 <webquint> this man page is hard to read
13:24:14 <webquint> does the creator become the listener on this pipe or the sender?
13:24:56 <Vorpal> webquint, for pipe(2)?
13:25:11 <webquint> Vorpal: mknod(2)
13:25:29 <Vorpal> webquint, don't you mean mkfifo(3) then?
13:25:39 <webquint> Vorpal: i will
13:25:57 <Vorpal> eh?
13:26:13 <Vorpal> webquint, you will what?
13:26:19 <webquint> Vorpal: i will use mkfifo(3) instead
13:27:09 <Vorpal> webquint, anyway as far as I can see, you need to open the newly created fifo after the mknod/mkfifo call
13:27:14 <webquint> right
13:27:30 <Vorpal> webquint, you probably want to use open() not fopen()
13:27:49 <webquint> okay but here's my new quandary
13:28:14 <Vorpal> hm?
13:28:16 <webquint> i only want one process to read it, but a bunch of processes to write it. will the file system handle the locking for me?
13:28:48 <Vorpal> webquint, I don't know if that is possible
13:29:00 <webquint> if X opens it to read, then Y open it to write, writes, and closes it and then Z opens, writes, and closes, will X read both messages?
13:29:03 <Vorpal> multiple writers sound like it wouldn't be supported
13:29:13 -!- copumpkin has quit (Ping timeout: 252 seconds).
13:29:30 <webquint> okay then what would be the best way to do that?
13:29:30 <Vorpal> webquint, see fifo(7)
13:29:39 -!- copumpkin has joined.
13:29:40 <Vorpal> webquint, well it depends on what you want
13:30:27 <fizzie> mkfifo equals mknod with S_IFIFO, but I guess it's more clean w.r.t. intent.
13:30:43 <Vorpal> webquint, maybe a multiplexer program handling multiple fifos and then mixing the data up in one output fifo (if you need to work with programs you didn't write for the input and final output this might be easiest)
13:30:53 <Vorpal> webquint, or you might prefer unix sockets
13:31:07 <Vorpal> or maybe even shared memory
13:31:29 <webquint> i want a central "server" process that any process, upon being started, can notify of its existence.
13:31:31 <fizzie> Also, writes of less than PIPE_BUF bytes are required to be atomic, when it comes to multiple concurrent writes.
13:31:46 <webquint> Vorpal: shared memory. how to do that?
13:31:47 <Vorpal> webquint, then the question follows: to what end?
13:31:50 <fizzie> (On Linux I think that's one page, i.e. 4k bytes.)
13:32:42 <Vorpal> fizzie, so you can do multiple writers to a single fifo?
13:32:47 <fizzie> Vorpal: Yes.
13:32:52 <Vorpal> well then webquint can use that
13:33:04 <Vorpal> maybe
13:33:07 <webquint> actually, i think i'm required to use that.
13:33:12 <webquint> but how does it work.
13:33:19 <Vorpal> webquint, "required"?
13:33:23 <Vorpal> some assignment?
13:33:28 -!- augur has quit (Remote host closed the connection).
13:33:37 <Vorpal> and then the question follows: required to use what? pipes? shm?
13:33:40 <fizzie> But the writes can get interleaved if they are more than PIPE_BUF bytes and happen at the same time.
13:33:56 <Vorpal> fizzie, right. You have to adjust your data format for that
13:34:40 <Vorpal> webquint, anyway it looked like you needed your fifo reader in non-blocking mode if I understood "<webquint> if X opens it to read, then Y open it to write, writes, and closes it and then Z opens, writes, and closes, will X read both messages?" correctly
13:35:14 <fizzie> I don't see why that would need a non-blocking pipe.
13:35:31 <Vorpal> hm maybe not
13:35:34 <fizzie> But the FIFO reader needs to not give up on EOF, since I think a pipe reads as EOF if all the write ends are closed at the moment.
13:35:49 <webquint> Vorpal: "All of the data carried in this service must be done in shared memory."
13:36:00 <fizzie> Oh, so it *is* an exercise.
13:36:01 <Vorpal> webquint, if you only want to notify (no payload data) simply sending SIGUSR1 or should would be easier
13:36:09 <Vorpal> webquint, which type of shared memory?
13:36:19 <webquint> i don't know?
13:37:03 <Vorpal> shm_overview(7) on linux. You could use mmap as well.
13:37:07 -!- quintopia has joined.
13:37:07 -!- quintopia has quit (Changing host).
13:37:07 -!- quintopia has joined.
13:37:08 <fizzie> That's a rather strange assignment if they don't tell you.
13:37:15 <Vorpal> there are yet other ways
13:37:23 <quintopia> there i paid the bill :P
13:37:39 <fizzie> Wasn't the SysV shared-memory API also included in POSIX?
13:37:56 <Vorpal> fizzie, possibly. I haven't used shared memory much
13:38:18 <Vorpal> webquint, in all cases with any sort of shared memory you will need some sort of locking unless you do cleaver atomic stuff
13:38:31 <Vorpal> cleaver as in "tricky to get right"
13:38:37 <quintopia> Vorpal: http://pastebin.com/uXBDHGXm this is what i am given. suggest a good structure
13:38:38 <fizzie> Cleaver as in meat-cleaver.
13:38:43 <Vorpal> err typo
13:39:09 <Vorpal> especially since you, no offence meant, seem a bit clueless about these sort of things...
13:39:54 <Vorpal> quintopia, *ahem* It *is* your exercise. Also xen?
13:40:01 <Vorpal> hm
13:40:16 <fizzie> Xen's just an example there.
13:40:28 <quintopia> Vorpal: yes it is
13:40:36 <quintopia> Vorpal: and i'm going to do it myself, ain't i?
13:40:41 <fizzie> Anyway, you could go with POSIX shared memory and message queues, that sounds like a reasonable fit.
13:40:42 <quintopia> just looking for suggestions!
13:40:53 <quintopia> how does posix shared memory work?
13:41:01 <Vorpal> quintopia, first: I have no idea about the QoS stuff there.
13:41:14 <fizzie> You create a shared memory object, then map it into the memory space of more than one process.
13:41:15 <quintopia> eh i know what to do with that
13:41:18 <fizzie> Then they all see the same things there.
13:41:21 <quintopia> huh
13:41:29 <Vorpal> fizzie, what about shm with mmap?
13:41:31 <quintopia> and i have to handle all the mutexes myself?
13:41:49 <Vorpal> quintopia, likely :P
13:41:53 <fizzie> POSIX has semaphores for that; a mutex is just a special case for a semaphore, after all.
13:42:07 <fizzie> But you do need to use them explicitly, yes.
13:42:08 <Vorpal> quintopia, of course you might get away with compare and exchange and such, depending on what you do.
13:42:24 <Vorpal> fizzie, can't you send fds over unix sockets I seem to remember?
13:42:49 <fizzie> As for POSIX message queues, I guess whether you can use those or not depends I guess on how literally you read the "all of the data" part of the assignment.
13:43:18 <quintopia> fizzie: i take it to mean "any data bigger than a uint" :P
13:43:31 <quintopia> so, complex data structures
13:44:02 -!- pikhq_ has joined.
13:44:12 -!- pikhq has quit (Ping timeout: 250 seconds).
13:44:23 <fizzie> Well, in that case you could use message queues to pass around pointers into in-a-shared-memory-block requests, to get at least a queue abstraction for free.
13:44:28 <Vorpal> fizzie, I know of three shared memory mechanisms in a POSIX environment: shm, mmap with shared flag, the stuff that happens between threads. Especially the first two look like duplicated functionality to me
13:44:59 <quintopia> so message queues i can do with fifos, but what is the interface for creating process-shared memory?
13:45:21 <fizzie> Read that shm_overview man page for that.
13:45:45 <Vorpal> quintopia, message queues are a special thing I *think*
13:46:11 <Vorpal> not sure though
13:46:20 <fizzie> Message queues are special, yes. But you could use a pipe as a message queue as well if you like that more.
13:46:43 <fizzie> Message queues have the priority thing there.
13:47:07 <quintopia> okay what are they?
13:47:13 <fizzie> Probably not useful at all for the QoS fairness thing; it's just that it's a priority queue instead of a FIFO queue.
13:47:22 <quintopia> oh
13:47:39 <fizzie> Read mq_overview if you want to use them; but it doesn't really buy you that much over a pipe, I guess.
13:47:46 <quintopia> i was planning on using multiple-queues-per-process to get the fairness-by-slice stuff
13:48:13 <fizzie> It does do the "divide the stream into messages", but if all your messages are of fixed length, that's not much of a win either.
13:48:37 <quintopia> so how does one-reader-many-writers work again?
13:48:58 -!- webquint has quit (Quit: Page closed).
13:49:57 <fizzie> I
13:50:16 <Vorpal> fizzie, why would you need a pipe at all btw? Isn't shm alone enough?
13:50:47 <quintopia> Vorpal: so that new processes know where to find the shared memory when they start up?
13:50:57 <fizzie> Vorpal: Not really; you need to notify the server process somehow of a request. It can't exactly keep polling the shared memory for changes.
13:51:00 <Vorpal> hm can't you name shm objects?
13:51:02 <Vorpal> or something
13:51:17 <quintopia> also what fizzie said
13:51:21 <fizzie> You could use a shm object + a POSIX semaphore for signaling, I guess.
13:51:22 <Vorpal> fizzie, you could sleep on a mutex on a shm page, no?
13:51:31 <fizzie> Yes, but that's not "shm alone".
13:51:47 <Vorpal> fizzie, it is all on top of shm however
13:52:00 <fizzie> I wouldn't start hand-building a mutex, though.
13:52:14 <Vorpal> fizzie, but doesn't posix have that already?
13:52:30 <Vorpal> fizzie, anyway another way if you just want to wake up the server would be sending something like SIGUSR1
13:52:59 <Vorpal> fizzie, anyway you still need a mutex... what if the server is processing another request already when you try to touch the shm?
13:53:04 <fizzie> Signals aren't "shm alone" either; and no, I don't think POSIX has "addess in a shared-memory" style mutexes, just the POSIX semaphores, which are a different object.
13:53:16 <fizzie> Well, yes, that's why I said a shm object alone isn't enough. :p
13:53:45 -!- asiekierka has joined.
13:53:46 <Vorpal> fizzie, but fifos + shm wouldn't help since you could still get the multiple requests at once scenario
13:53:59 <Vorpal> fizzie, also: mutexes are just a special case of semaphores
13:54:11 <Vorpal> as you said above too
13:54:24 <fizzie> <fizzie> POSIX has semaphores for that; a mutex is just a special case for a semaphore, after all.
13:54:27 <fizzie> Right.
13:54:34 <fizzie> (I was looking for that in the backscroll.)
13:55:07 <fizzie> Anyway, fifos + shm is probably enough if you let the calling process be responsible for managing the shared memory, and use a separate SHM object for each "connection".
13:55:28 <fizzie> It's a bit awkward if the reply will end up needing more space than the client provided, though.
13:56:51 <Vorpal> fizzie, hm. see output of ipcs(1). I once ran into an issue with something fcgi-ish crashing and leaving stale open objects... (forgot which type)... Found out when I got an error it couldn't create a new one XD... Thus I'm strongly against one shm per connection
13:57:13 <Vorpal> fizzie, anyway you might get away with cmpxchg on an shm page
13:57:42 <quintopia> so here's what i wanted to do: when a process starts, it notifies the server, and the server replies telling it where the shared memory is and where any queues are that it is watching. when a client has a request, it puts it in a queue and includes to some pointer to where it expects the answer. the server constantly loops over all of its queues, responding to the top request in each one by putting its reply in the specified place and then wr
13:58:27 <fizzie> Vorpal: That sounds like a recipe for cpu-wasting polling.
13:58:29 <Vorpal> split a page/number of pages into request slots. Have a byte at the start indicating if they are in use. You could do CAS on that to atomically allocate a request slot
13:58:40 <Vorpal> fizzie, if you limit yourself to linux there are futexes iirc.
13:58:44 <Vorpal> (not a typo)
13:58:58 <Vorpal> just for wake up
13:59:26 <quintopia> does that sound like a reasonable arrangement?
13:59:27 <fizzie> There are, but they're not especially pretty.
13:59:32 <quintopia> or a recipe for disaster?
13:59:33 <Vorpal> fizzie, and I'm pretty sure modern CPUs support MWAIT which iirc means wait for write on system bus on given address. That might be kernel only though
13:59:34 <fizzie> quintopia: You got cut off at "wr".
13:59:48 <quintopia> iting a "message processed" message back to the requesting process.
14:00:58 <fizzie> If the reply sizes are hard to guess in advance, you might want to make the server responsible for all memory management, so that it just tells the client where (in shared memory) the answer can be found.
14:01:24 <quintopia> eh, i get to decide what the service is
14:01:44 <quintopia> i can fix reply sizes to be...an int :P
14:01:47 <Vorpal> quintopia, also your solution doesn't seem to sleep when there is nothing to do: "the server constantly loops over all of its queues"
14:02:22 <quintopia> Vorpal: good point. should the clients send a sigusr1 also?
14:02:37 <fizzie> That depends on what the queues are built from, really.
14:03:32 <Vorpal> quintopia, there are many ways to do wakeup. signal is one of the easier ones certainly. Not sure what happens when you get a SIGUSR1 while you are processing another though
14:03:34 <quintopia> ah...fifos? :P
14:03:36 <Vorpal> do they queue?
14:04:16 <quintopia> what's another way to do wakeup?
14:04:21 <fizzie> If the queues are pipes, you can just select()/poll() over the whole set, and easily receive the "these K queues out of the set of N have requests pending" info.
14:04:42 <quintopia> aha
14:04:46 <quintopia> and if it comes up zero
14:04:50 <quintopia> sleep a bit?
14:04:59 <fizzie> No, the select/poll will already sleep until something happens.
14:05:09 <fizzie> (You can set a timeout though.)
14:05:11 <quintopia> ah explain
14:05:25 <quintopia> how to do it over the whole set i mean
14:05:34 <Vorpal> IF you can limit yourself to linux it looks like there is a system call to sleep on a specific address
14:05:54 <Vorpal> HOWEVER:
14:05:55 <Vorpal> NOTES
14:05:55 <Vorpal> To reiterate, bare futexes are not intended as an easy-to-use abstraction for end-users. (There is no wrapper function for this system call
14:05:55 <Vorpal> in glibc.) Implementors are expected to be assembly literate and to have read the sources of the futex userspace library referenced below.
14:06:11 <fizzie> quintopia: Well, for poll(2), you just build an array of struct pollfd's, and then call poll() on that. It will wait until something happens or your timeout expires.
14:06:21 <fizzie> Vorpal: That's why I said "they're not especially pretty".
14:06:35 <Vorpal> "there is no wrapper function" should definitely put you off this. I just think it should be included for completeness
14:07:46 <quintopia> oh i like that
14:08:08 <quintopia> that seems the way to go for sure
14:08:19 <Vorpal> fizzie, sometimes I have to say that working closer to hardware is nicer. I mean, wouldn't it be nice to just write an interrupt handler into a table and then execute some sort of sleep instruction :P Of course it would be hard to make that work efficiently on a PC in a multitasking environment...
14:09:38 <quintopia> and i could fill the "events" and "revents" fields with request ids.
14:09:49 <fizzie> No, you can't decide those.
14:09:58 <quintopia> oh
14:10:06 <quintopia> i'm confused what they do then
14:10:07 -!- Sgeo_ has quit (Read error: Connection reset by peer).
14:10:08 <fizzie> You just fill in what sort of events you are looking for in .events, and get a bitmask of which ones happened in .revents.
14:10:25 <quintopia> oh nvm
14:10:26 <quintopia> i see
14:10:38 -!- Sgeo_ has joined.
14:12:28 <Vorpal> fizzie, it seems like it would be easier to just use a semaphore and then when you wake up scan the queues and process any requests, then go back waiting. Hopefully this won't miss requests that come in while you are processing
14:12:52 <Vorpal> (as in, if there were any such it would wake you up from waiting on the semaphore right away)
14:13:02 <quintopia> it looks like i set events by ORing together a bunch of these POLLIN POLLOUT POLLPRI etc. things, and revents is set by poll when it returns?
14:13:08 <Vorpal> fizzie, I know this can be done with threading stuff at least
14:13:10 <quintopia> s/when/before/
14:13:30 <fizzie> Vorpal: I don't see how that's at all easier than an old-fashioned poll/select when the requests are coming in from file descriptors. Especially with that "hope you don't miss any wakeups" problem.
14:13:51 <fizzie> At least poll will unambiguously say "there's data waiting in this here pipe" to you.
14:14:17 <Vorpal> fizzie, well that bit is solved by poll and such
14:14:18 -!- Sgeo_ has quit (Read error: Connection reset by peer).
14:15:17 <Vorpal> so: wakeup, read a number of bytes, process anything you find. go back to poll. The data in the pipe wouldn't matter
14:16:18 <Vorpal> fizzie, still this has the issue of allocating requests in the shared memory... hm
14:16:22 <fizzie> What's this "wakeup" from? I mean, if you "go back to poll", do you mean "wake up from poll"?
14:16:37 <Vorpal> fizzie, wakeup == wakeup from poll telling you there is stuff on the pipe
14:16:41 <fizzie> Right.
14:17:29 <fizzie> Nurr, so confused. So if that's what you advocate -- and it's exactly what I said, too -- how exactly is using a semaphore easier?
14:17:41 <quintopia> bah, i don't see any reason to actually use shm anymore. i think i could just run all data through the queues :P
14:18:07 <fizzie> Shared-memory communication can theoretically speaking be a bit more efficient.
14:18:16 <fizzie> No need to copy things via a pipe buffer and so on.
14:18:50 <quintopia> good point
14:18:59 <quintopia> i'll go ahead and use it
14:20:03 <Vorpal> <fizzie> Nurr, so confused. So if that's what you advocate -- and it's exactly what I said, too -- how exactly is using a semaphore easier? <-- conceptually it is!
14:20:12 <Vorpal> practically it is not
14:22:00 <fizzie> Regarding the far-earlier thing about Unix domain sockets and file descriptors, yes, you can pass the latter over the former. (So you could build a system where the Unix domain socket is the way how your client finds the server; and then the server pipe(2)s some unnamed fifos for per-client communications, and sends those over the socket to the client.)
14:22:12 <fizzie> I'm not sure how much that feature is actually used.
14:22:25 <fizzie> Certainly haven't run across any system doing it.
14:22:58 <Vorpal> fizzie, hm what is the function for sending a fd?
14:23:07 <quintopia> "The only portable use of mknod() is to create a FIFO-special file. If mode is not S_IFIFO or dev is not 0, the behav- ior of mknod() is unspecified."
14:23:09 <fizzie> A shm_open()'d handle is, I think, technically a file descriptor too, so you could pass those too instead of using names.
14:23:15 <quintopia> in other words UDS is not portable
14:23:24 <Vorpal> quintopia, uds?
14:23:46 <quintopia> qi probably could get away with using it, though
14:23:47 <Vorpal> oh. unix sockets
14:23:51 <Vorpal> but you don't use mknod for unix sockets afaik
14:24:00 <quintopia> sure you do
14:24:03 <fizzie> Unix domain sockets are created with socket() and bind() and friends, portably.
14:24:09 <quintopia> oh
14:24:15 <quintopia> hrm
14:24:28 -!- augur has joined.
14:24:29 <Vorpal> fizzie, anyway I can't find the function for sending a fd
14:24:30 <fizzie> Well, as portably as they go; it's not called "Unix" domain socket for nothing.
14:24:30 <quintopia> what are the advantages of that solution?
14:24:45 <Vorpal> fizzie, if I knew it I would nm -D /usr/bin/* and grep for it
14:25:23 <fizzie> Vorpal: I think it's done with sendmsg() and some of the struct msghdr fields, but I'm not entirely sure how.
14:25:48 <fizzie> That "ancillary data" mechanism.
14:25:48 <Vorpal> ah
14:25:51 <quintopia> fizzie: does it make more sense to use the socket to register new clients?
14:26:25 <Vorpal> fizzie, I only see stuff for sending uid there
14:26:32 <fizzie> Vorpal: See SCM_RIGHTS.
14:26:39 <Vorpal> meh strange name
14:26:41 <fizzie> "Send or receive a set of open file descriptors from another process."
14:27:09 <Vorpal> oh well, hard to grep for that
14:27:16 <fizzie> quintopia: More sense than to use what?
14:27:43 <quintopia> a multiple-writers fifo with a commonly-known name
14:28:03 <fizzie> Well, the socket does let you send some answers back more easily.
14:28:11 <fizzie> A fifo is strictly one-directional, after all.
14:28:49 <fizzie> If you want to answer with something like "here's the queue just for you, and here's the shared memory object name I want you to use", or whatever.
14:30:05 <quintopia> oh, it didn't occur to me that the client would have anything to send to the server upon appearing
14:30:09 <quintopia> hmmm
14:30:44 <quintopia> still can't think of anything the client would need to say to the server actually
14:30:51 <variable> Is there a way to *search* the channel logs (without downloading them and running grep)
14:31:12 <quintopia> google
14:31:24 <variable> You don't have permission to access /~coreyr/ on this server. *sigh*
14:31:31 <fizzie> quintopia: "multiple-writers fifo" == your clients hold the write end; the server can't say anything to the clients via that.
14:31:41 <quintopia> oh
14:31:43 <quintopia> yeah
14:31:50 <quintopia> what i meant was multiple-readers
14:32:09 <quintopia> and yeah
14:32:18 <quintopia> i just thought of some things they might want to tell the server
14:32:22 <quintopia> i'll go with the socket :P
14:34:09 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
14:37:11 -!- ais523 has joined.
14:37:23 -!- augur has quit (Ping timeout: 250 seconds).
14:37:52 <quintopia> so socket with AF_UNIX creates a UDS...seems like datagrams would be sufficient here...it's been so long since i've used these functions O_O
14:41:41 -!- Sgeo_ has joined.
14:41:45 <fizzie> Then you usually bind() it with a sockaddr_un structure that has a path name in it.
14:41:54 -!- yorick has quit (Read error: Operation timed out).
14:43:07 <quintopia> aka, a path on the filesystem?
14:43:31 <quintopia> and then the client connects using connect() with the same path?
14:44:08 <fizzie> Well, with datagram sockets you don't need to connect() them necessarily.
14:44:58 <variable> meh - script + grep works
14:46:11 <quintopia> fizzie: it looks like you need to in order to use a socket on the client end? how else would it work?
14:47:14 <fizzie> If it's a SOCK_DGRAM socket you can send without connecting, with sendto or sendmsg with the name field specified.
14:47:33 <fizzie> A connect() call just sets a default target address for it.
14:48:27 <quintopia> and how would the client receive dgrams from it? poll(2)?
14:48:42 <quintopia> eh that can't be enough
14:48:44 <fizzie> Uh, you just recv/read.
14:48:46 <quintopia> yeah
14:49:28 <fizzie> Not quite sure how it works with unnamed datagram unix sockets and reply-sending, actually.
14:49:56 -!- oerjan has quit (Quit: leaving).
14:50:43 <fizzie> With stream sockets, your server would listen() + accept() a second socket that would represent a connetion between the client and the server.
14:51:33 <fizzie> If you just send a datagram from an unnamed socket, I'm not sure if it can be replied to.
14:51:44 <quintopia> the goal for the client would be to write to it then immediately block on reading from it. the goal for the server would be to read from it next opportunity it gets, and write back to it.
14:52:42 <fizzie> Yes, but I don't know how you "write back", since you certainly can't just write back to the server socket you've bound to the well-known path.
14:52:55 <fizzie> Since that socket isn't connected to anything.
14:53:22 <quintopia> wharrgarbl. if i were to switch to connection-based sockets, then what's the point of using fifos to begin with? might as well do everything over the socket!
14:53:52 <fizzie> You might, yes. :p
14:54:18 <fizzie> Since you already have a nice bidirectional queue there.
14:54:58 <quintopia> a server like that is usually handled by having a different thread for each connection
14:55:08 <quintopia> which means i could kill two birds with one stone here
14:55:27 <fizzie> Not really; single-threaded select/poll-driven servers are pretty viable too.
14:55:39 <quintopia> is there a pre-built way to do QoS with pthreads?
14:55:44 <quintopia> i mean
14:55:59 <quintopia> a nice standard fractional scheduler?
14:56:17 <fizzie> The assignment description makes the server sound pretty single-threaded.
14:57:00 -!- copumpkin has joined.
14:57:00 <quintopia> it might be...but that's up to me isn't it? :P
14:57:09 <fizzie> As for pthreads, I think the thread scheduling is pretty implementation-defined.
14:57:21 <quintopia> i will do it single-threaded if that's the only way to do QoS
14:59:18 <quintopia> i have to go think. bbl.
15:04:53 <fizzie> The pthread scheduling functions I can see seem more related to the realtime threads; there's the SCHED_FIFO/SCHED_RR schedulers, but they're I think the same as sched_setscheduler, and for usually-superuser-only realtime-ish threads, not for some sort of inside-a-process fractional scheduling. (Besides, the assignment descrption makes it sound like you have to count requests, not amount of time used to service those requests.)
15:10:01 -!- azaq23 has joined.
15:10:15 <fizzie> quintopia: May I suggest, incidentally, using my IPC library I wrote for an earlier course? It does between-process communication by sending morse code with SIGUSR1 and SIGUSR2. It's the obvious choice when efficiency is at premium.
15:16:09 <Ilari> APNIC down N/A: 16k to Indonesia, 2k+1k to Japan, 3x512k+2x256k to China, 1M+256k to India, 512+256 to Thailand. No IPv6 allocations.
15:16:41 <Ilari> Another day, another ~0.20 burned. :-/
15:17:15 <fizzie> What's the N/A there? (I've wondered this earlier.)
15:17:39 <Ilari> In this case, the figure does not seem to be available yet.
15:18:13 -!- ais523 has quit (Remote host closed the connection).
15:18:24 <Ilari> Ah, just got it: 0.21.
15:19:06 <fizzie> And why it's "No IPv6 allocations" every day?-)
15:19:23 <Vorpal> fizzie, for the more with sigusr1/usr2 do you do some feedback? iirc duplicate signals can merge
15:19:30 <Ilari> I don't know. :-)
15:20:04 <fizzie> Vorpal: No, I just do it slow enough.
15:20:12 <Vorpal> fizzie, unreliable
15:20:44 <Vorpal> fizzie, you should send a sighup back for every signal you get. Unless you use FEC?
15:21:04 <fizzie> So's UDP. You can do an app-level protocol for that.
15:21:33 -!- pumpkin has joined.
15:21:40 <Vorpal> fizzie, when you said morse, did it encode using morse or did it just use them for 0/1 ?
15:22:31 <Vorpal> fizzie, udp still does checksum though, no?
15:23:13 <Vorpal> <Gregor> SOMALIAAAAAAAAAAAAAAAAAAAAA <-- what about it? (should I check the news today?)
15:23:25 -!- copumpkin has quit (Ping timeout: 272 seconds).
15:23:46 <fizzie> It does the morse code encodings with USR1 = short, USR2 = long, and then timings (pauses) for symbol boundaries.
15:23:46 <Vorpal> Gregor, why Somalia as opposed to, for example, Sudan?
15:23:59 <Vorpal> fizzie, yes but does it use the morse alphabet I meant
15:24:08 <fizzie> Yes.
15:24:22 <Vorpal> fizzie, so you have to base64 or something first to send binary data? XD
15:24:37 <Vorpal> Gregor, I conclude it is just you being random then
15:24:43 <fizzie> Should've used just USR1 with timings tho.
15:24:48 <fizzie> Now away.
15:24:52 <Vorpal> hah
15:25:06 <Gregor> Vorpal: People have already figured out why I'm screaming SOMALIAAAAAAAAAAAA
15:25:35 <Vorpal> Gregor, that is a very generic statement. What set of people?
15:26:38 <Sgeo_> Vorpal, people here
15:26:48 <Vorpal> SMPT, If it had worked out to SMTP...
15:27:28 * Sgeo_ links Vorpal
15:28:09 * Vorpal waits
15:28:30 <Sgeo_> Not that type of link
15:28:31 -!- Phantom_Hoover has joined.
15:28:36 <Vorpal> Sgeo_, I see
15:28:41 <Vorpal> bbl
15:32:00 <Phantom_Hoover> Oh god, what's Sgeo been saying?
15:32:37 <Sgeo_> lrn2logread
15:32:40 <Phantom_Hoover> Vorpal, Gregor's ultimate aim in life is to own libc.so.
15:33:13 <Sgeo_> Oh come on, let him fgure it out himself
15:33:18 <Sgeo_> I gave a crappy hint..
15:33:30 <Sgeo_> I think
15:33:39 <Phantom_Hoover> You can't really figure it out without having seen it mentioned.
15:36:39 -!- MigoMipo has quit (Read error: Connection reset by peer).
15:36:39 <Gregor> Eh, somebody could figure it out maybe :P
15:38:34 <Gregor> "Hotels and other businesses have hired private security militias to provide protection and ensure the normal course of business." Somalia sounds like an awesome tourist destination.
15:39:53 -!- copumpkin has joined.
15:41:04 <Phantom_Hoover> http://www.reddit.com/r/AskReddit/comments/fwdb3/maybe_an_odd_question_but_what_exactly_are_these/
15:41:11 <Phantom_Hoover> The number of times I've asked that question...
15:41:52 <Gregor> lollercopters
15:42:40 <Gregor> I'm $AGE, my dad is an accountant and my mom is a teacher, and I've worked in cubicles my whole life. My question is, what ARE these labor jobs? How do you work all day lifting, breaking, cutting, carrying, or building things?
15:42:44 -!- pumpkin has quit (Ping timeout: 276 seconds).
15:43:11 <Phantom_Hoover> Well, that bit is a bit stupid, but I have never actually learnt what such people *do*.
15:54:17 -!- poiuy_qwert has joined.
15:55:43 -!- Sgeo_ has quit (Ping timeout: 272 seconds).
16:10:59 -!- augur has joined.
16:13:10 -!- ais523 has joined.
16:13:25 <ais523> does anyone here happen to know of any good open source Algol 60 compiles?
16:13:27 <ais523> *compilers?
16:13:33 <Gregor> lolwut
16:13:36 <ais523> (I'm guessing no, but hoping...)
16:13:54 <ais523> Gregor: we're trying to work out whether call-by-name Fibonacci is faster in hardware or software
16:14:09 <ais523> (we had it physically running on an FPGA a few minutes ago)
16:14:12 <Vorpal> <Phantom_Hoover> Vorpal, Gregor's ultimate aim in life is to own libc.so. <-- oh that. For some reason it seems I tried hard to forget that.. :P
16:14:29 <ais523> and the issue is, where are we going to find a call-by-name programming language for the software test?
16:14:56 <Gregor> ais523: Maybe http://www.gnu.org/software/marst/
16:15:40 <ais523> hmm, I'm not filled with confidence based on the homepage, but I'll likely try it anyway
16:16:13 <Gregor> Yeah, neither am I :P
16:16:21 <Gregor> But beggars can't be choosers :P
16:16:42 <Vorpal> <ais523> (we had it physically running on an FPGA a few minutes ago) <-- I suspect there are ways much more suited to an FPGA to calculate Fibonacci.. Such as a simple iterative algorithm counting up.
16:17:02 <ais523> Vorpal: there are
16:17:11 <ais523> the point isn't that it's a good way to do fibonacci, because it isn't
16:17:11 <fizzie> I have here somewhere a book about how you manually and mechanically translate an ALGOL-60 program to FORTRAN-II or FORTRAN-IV. But I wouldn't exactly suggest that.
16:17:42 <Vorpal> fizzie, how comes you have such a book!?
16:17:51 <ais523> it's that it's a terrible way to do fibonacci, but it works on hardware anyway even though it's really badly suited to it
16:18:28 <fizzie> Vorpal: Got it for 2 EUR or 5 EUR or something like that from the university library's semi-annual "let's get rid of some old books we have that nobody needs" event.
16:18:41 <fizzie> It's mostly full of computer-model-specific stuff.
16:18:58 <Vorpal> ais523, of course it works on hardware, since software runs on hardware that means it must be possible in hardware if it is possible in software.
16:19:25 -!- ais523_ has joined.
16:19:26 -!- ais523 has quit (Disconnected by services).
16:19:29 -!- ais523_ has changed nick to ais523.
16:19:33 <Vorpal> <Vorpal> ais523, of course it works on hardware, since software runs on hardware that means it must be possible in hardware if it is possible in software.
16:19:50 <ais523> Vorpal: yes, but I mean without cheating by embedding an interp
16:19:56 <Vorpal> ais523, ah okay
16:20:41 <ais523> hmm, this seems to work
16:20:45 <ais523> next step: learn algol 60
16:20:52 <Vorpal> ais523, haha
16:20:55 -!- HackEgo has quit (Ping timeout: 264 seconds).
16:21:25 <ais523> it shouldn't be too bad, because I deal with idealized algol, the mathematical idealization of it, all the time
16:21:32 <ais523> all I need to do is learn pointless things like syntax
16:21:53 <Vorpal> ais523, idealized algol? pseudo code?
16:22:07 <ais523> no, it's algol minus all the things that make it practical
16:22:19 <Vorpal> ais523, why do you use that!?
16:22:22 <ais523> basically, lambda calculus, plus a few imperative things like if and while, plus variables
16:22:26 <Vorpal> hm
16:22:36 <ais523> and because it's a good model for imperative and functional programming
16:22:47 <Vorpal> ah
16:26:26 -!- ais523 has quit (Read error: Connection reset by peer).
16:26:45 -!- ais523 has joined.
16:42:09 <ais523> here we go: http://sprunge.us/APhW
16:42:12 <ais523> that didn't take long to write at all
16:42:29 <ais523> the main issue was placing semicolons in the wrong places, because Algol and C use them with different meanings
16:42:55 <ais523> also, the indentation there is weird, I fear that's what GNU indentation style looks like for Algol 60
16:48:56 <ais523> Gregor: thanks
16:49:13 <ais523> the homepage seems a little out of date, seven years to be precise
16:49:18 <ais523> and the compiler's moved on at least slightly since then
16:49:26 <ais523> it worked just fine
16:49:47 <ais523> more surprisingly, the resulting C, while obviously generated, I didn't find too hard to read, and it corresponds to the Algol program relatively literally
16:50:04 -!- wetneb has joined.
16:55:47 <Gregor> That is surprising.
16:56:09 <Gregor> I wonder if it's intended as an Algol->C transition tool more than a Algol compiler that happens to use C.
16:56:44 <ais523> I doubt it
16:56:52 <ais523> it's full of thunks and that sort of thing
16:56:56 <Gregor> Mmm
16:58:16 -!- Phantom__Hoover has joined.
17:00:49 -!- azaq23 has quit (Ping timeout: 252 seconds).
17:01:47 -!- Phantom_Hoover has quit (Ping timeout: 252 seconds).
17:03:55 -!- Wamanuz3 has joined.
17:04:16 -!- Wamanuz2 has quit (Read error: Connection reset by peer).
17:06:35 <quintopia> fizzie: rofl. thanks for the offer. i would if external code were permitted ;P
17:07:16 <Gregor> I notice FFSPG is still on top (where they belong)
17:10:25 -!- azaq23 has joined.
17:10:56 -!- azaq23 has changed nick to 45PABVJ9N.
17:12:22 -!- asiekierka has quit (Remote host closed the connection).
17:13:12 -!- fungot has quit (*.net *.split).
17:14:16 <fizzie> Vorpal: I tried to find the book and couldn't; weird. I did find two other books from the same place: Seven-Place Values of Trigonometric Functions, compiled by Dr. J. Peters (contains sin and tan in 0.001 degree increments with 7 decimal digits of accuracy, printed in 1942) and Automata Theory: Machines and Languages.
17:15:20 -!- fungot has joined.
17:16:22 <fizzie> The trig-table book has this on a sticker inside the front cover: "This book has been presented to Finland by the Government of the United States of America, under public law 265, 81st congress, as an expression of the friendship and good will which the people of the United States hold for the people of Finland."
17:16:25 <fizzie> So, y'know, thanks for that, people of the United States on-channel.
17:16:27 <quintopia> yw
17:16:32 <Gregor> lol
17:17:27 <Gregor> " During the years 1950-67, Finnish academic libraries received books, periodicals, and other materials, such as microfilm readers, as gifts in excess of $650,000 from the United States. The activity was based on a law passed by the U.S. Congress that had turned Finnish payments on the interest and principal of loans acquired from the United States after World War I into a fund. Out of the fund, grants for travel in the United States were given to Finnish rese
17:17:27 <Gregor> archers and specialists so that they could acquire American scientific and scholarly books as well as technical equipment for Finnish higher education institutions. "
17:18:29 -!- Phantom__Hoover has quit (Ping timeout: 264 seconds).
17:18:58 -!- Phantom__Hoover has joined.
17:19:37 <fizzie> How noble.
17:20:04 <quintopia> so yeah
17:20:15 <quintopia> thanks for paying your debts
17:20:22 <Gregor> Have some books.
17:21:12 -!- fungot has quit (*.net *.split).
17:21:26 <Gregor> tl;dr: US ♥ Finland, Finland ♥ USA
17:21:53 <Gregor> Also US ♥ USA. It's sort of a love triangle.
17:22:37 <quintopia> no, it's a ? triangle
17:23:00 <quintopia> oh neat
17:23:14 <quintopia> did not know compose < 3 gave a heart
17:23:21 <quintopia> ? compose key
17:25:35 -!- FireFly has joined.
17:26:54 -!- ais523 has quit (Remote host closed the connection).
17:28:53 <fizzie> Your hearts show up as "?" signs to me; while Gregor's are hearts.
17:29:25 * Gregor blames irssi.
17:29:50 -!- elliott has joined.
17:29:57 <Gregor> (They're ?s to me too, I'm pretty sure they actually are just ?s though :P )
17:30:12 <elliott> ?
17:31:13 <elliott> ais ian;t here again fff
17:31:17 <Gregor>
17:31:25 <elliott> oh dear god rodgerthegreat came back
17:31:47 <Phantom__Hoover> NOOOOOO
17:31:54 <Phantom__Hoover> HE WAS AS UNTO A BROTHER UNTO ME
17:32:31 <elliott> 21:19:45 <pikhq> For those confuséd, RodgerTheGreat and I still have an IRC channel in common.
17:32:36 <elliott> I'm very confuséd.
17:33:56 <quintopia> i can see both mine and gregor's hearts...
17:34:10 -!- sebbu2 has joined.
17:34:40 <elliott> quintopia: if it's not utf-8, you are as unto a murderer
17:35:30 <elliott> 05:35:49 <webquint> Vorpal: "All of the data carried in this service must be done in shared memory."
17:35:31 <elliott> 05:36:00 <fizzie> Oh, so it *is* an exercise.
17:35:37 <elliott> i see #esoteric has finally become #homework-help
17:38:19 <elliott> 06:30:51 <variable> Is there a way to *search* the channel logs (without downloading them and running grep)
17:38:22 <elliott> variable: download them and run grep
17:38:32 <quintopia> but this may be because i can't send unicode because i recode it to ISO_8859-1 before sending...
17:38:32 <elliott> variable: use Gregor's hg repository
17:38:36 <elliott> it's only about 70 megabytes
17:38:36 <quintopia> iunno
17:38:37 <fizzie> Your hypothesis, it is reasonable.
17:38:58 <quintopia> fizzie: so the way i'd go about using shm is 1) shm_open some commonly known named memory object 2) have each process mmap that object and sem_init a semaphore at the beginning of it 3) have each process sem_wait on that semaphore before writing, and when that returns 0, it means that process has locked the object and can write it?
17:39:07 -!- sebbu has quit (Ping timeout: 250 seconds).
17:39:07 -!- shachaf has quit (Ping timeout: 250 seconds).
17:39:08 -!- sebbu2 has changed nick to sebbu.
17:39:29 <elliott> 06:44:58 <variable> meh - script + grep works
17:39:33 -!- shachaf has joined.
17:39:35 <elliott> variable: don't use a script, use the hg repo :P
17:39:46 -!- 45PABVJ9N has quit (Write error: Connection reset by peer).
17:40:24 -!- sebbu has quit (Changing host).
17:40:24 -!- sebbu has joined.
17:42:16 -!- azaq23 has joined.
17:42:17 -!- azaq23 has quit (Changing host).
17:42:17 -!- azaq23 has joined.
17:43:46 -!- sebbu2 has joined.
17:43:46 -!- sebbu2 has quit (Changing host).
17:43:46 -!- sebbu2 has joined.
17:46:11 -!- fizzie has quit (Ping timeout: 260 seconds).
17:46:46 -!- Zuu has quit (Ping timeout: 260 seconds).
17:47:22 -!- sebbu has quit (Ping timeout: 260 seconds).
17:47:23 -!- sebbu2 has changed nick to sebbu.
17:47:34 -!- Zuu has joined.
17:48:30 <elliott> 09:22:37 <quintopia> no, it's a ? triangle
17:48:30 <elliott> 09:23:00 <quintopia> oh neat
17:48:31 <elliott> 09:23:14 <quintopia> did not know compose < 3 gave a heart
17:48:31 <elliott> 09:23:21 <quintopia> ? compose key
17:48:33 <elliott> Your client, it is the broken.
17:49:14 <quintopia> no. your attitude is broken and i don't appreciate it.
17:49:20 -!- pikhq has joined.
17:49:52 <elliott> quintopia: Your face is broken.
17:50:04 -!- pikhq_ has quit (Ping timeout: 276 seconds).
17:50:14 -!- Phantom___Hoover has joined.
17:50:15 <quintopia> i can send ♥ just fine when i want to
17:50:26 <elliott> Bluh bluh bluh
17:52:21 -!- Phantom__Hoover has quit (Ping timeout: 252 seconds).
17:52:21 -!- cheater00 has quit (Ping timeout: 252 seconds).
17:52:27 <elliott> -l nnn, --linewidth nnn
17:52:27 <elliott> desirable output line width (50 <= nnn <= 255);
17:52:27 <elliott> default: -l 72
17:52:34 <elliott> hmm, marst must be at least partly meant to be a readable translator
17:53:11 -!- fizzie has joined.
17:53:55 -!- cheater00 has joined.
17:54:39 <quintopia> aha
17:54:51 <quintopia> here's a nifty feature i didn't know my client had
17:55:24 <quintopia> elliott: can you see this: ♥
17:55:28 <elliott> Yes.
17:55:32 <quintopia> cool
17:56:05 -!- comex_ has joined.
17:56:15 -!- Zuu has quit (Ping timeout: 260 seconds).
17:56:15 -!- comex has quit (Ping timeout: 260 seconds).
17:56:15 -!- Ilari_antrcomp has quit (Ping timeout: 260 seconds).
17:56:58 -!- Ilari_antrcomp has joined.
17:57:23 -!- Zuu has joined.
17:57:23 -!- Ilari has quit (Ping timeout: 260 seconds).
17:57:29 -!- Zuu has quit (Changing host).
17:57:29 -!- Zuu has joined.
17:57:37 -!- BeholdMyGlory has joined.
17:57:39 -!- BeholdMyGlory has quit (Changing host).
17:57:39 -!- BeholdMyGlory has joined.
17:59:17 -!- Ilari_antrcomp has changed nick to Ilari.
18:01:18 -!- Ilari_ has joined.
18:02:47 -!- asiekierka has joined.
18:05:26 -!- Ilari has quit (Ping timeout: 260 seconds).
18:06:00 -!- Ilari_ has quit (Ping timeout: 260 seconds).
18:06:36 -!- Zuu has quit (Ping timeout: 260 seconds).
18:07:38 -!- Zuu has joined.
18:09:23 -!- Ilari has joined.
18:11:04 -!- pikhq_ has joined.
18:12:34 -!- iamcal has joined.
18:13:23 -!- Ilari_ has joined.
18:13:28 -!- pikhq has quit (Ping timeout: 240 seconds).
18:13:30 -!- SimonRC has quit (Ping timeout: 240 seconds).
18:13:32 -!- poiuy_qwert has quit (Ping timeout: 250 seconds).
18:13:32 -!- cal153 has quit (Ping timeout: 240 seconds).
18:13:33 <elliott> 03:17:40 <fizzie> There was a good brainf*ck debugger somewhere?
18:13:36 <elliott> Ha ha, fizzie is the prude.
18:13:38 <elliott> *prudes.
18:13:42 -!- Zuu has quit (Changing host).
18:13:42 -!- Zuu has joined.
18:13:49 -!- Ilari_ has changed nick to Ilari_antrcomp.
18:13:59 -!- p_q has joined.
18:13:59 -!- p_q has quit (Changing host).
18:13:59 -!- p_q has joined.
18:14:22 <variable> elliott: where is the hg repo ?
18:14:44 <elliott> sec
18:16:26 -!- BeholdMyGlory has quit (Read error: Connection reset by peer).
18:19:40 -!- pingveno has quit (Ping timeout: 250 seconds).
18:19:41 -!- olsner has quit (Ping timeout: 250 seconds).
18:19:47 -!- BeholdMyGlory has joined.
18:20:07 -!- tswett has quit (Ping timeout: 250 seconds).
18:21:53 -!- pingveno has joined.
18:27:21 -!- tswett has joined.
18:32:07 -!- olsner has joined.
18:32:20 <olsner> elliott: are you running forth code yet?
18:32:30 <elliott> olsner: no
18:32:39 <olsner> why!?
18:33:44 <elliott> olsner: haven't got keyboard input working yet :)
18:33:58 <elliott> olsner: scancode->ascii is going to take quite some bytes unless i'm reaally smart
18:34:19 <olsner> well, just store everything as scancodes? :P
18:34:29 <elliott> olsner: text memory is in ascii
18:34:44 <olsner> hmm, didn't think about that
18:35:13 <elliott> took me a minute to realise too :)
18:35:34 <olsner> getting vga to display scancodes as text may very well be harder than translating scancodes to ascii to start with
18:35:45 <elliott> indeed :P
18:37:06 -!- wetneb has quit (Quit: Leaving.).
18:37:48 <fizzie> BIOS has the translation table somewhere, most likely, since it needs to offer keyboard handling routines.
18:37:56 <fizzie> Even though you can't call them, you could lift data from there.
18:38:07 <elliott> fizzie: That sounds, er, portable X-D
18:38:26 <fizzie> Well, yes, you just provide different builds for each BIOS vendor/version/build/hotfix combination.
18:38:50 <olsner> maybe you could run the BIOS's keyboard interrupt handler in VM86 mode? :D
18:39:06 <elliott> olsner: getting in and out of vm86 mode seems like it'd take a lot more code than anything else :P
18:39:33 <fizzie> Yes, and you can even quasi-portably perhaps lift the interrupt handler address from the interrupt vector table you see at boot-time.
18:40:01 <fizzie> Alternatively, just use the scancodes as ascii, and tell the user your system is using an "improved" keyboard layout.
18:40:39 <elliott> :)
18:40:44 <elliott> hmm
18:40:49 <elliott> couldn't i call the bios in real mode?
18:40:51 <olsner> you could have code to switch back and forth between PM and RM and use the bios' read character function
18:40:57 <elliott> that's just flipping the relevant bit of cr0 twice per bios call
18:41:15 <elliott> erm
18:41:17 <elliott> *unreal mode
18:41:26 <olsner> I think it's not quite that simple, but not THAT much harder
18:41:53 <olsner> the bios is likely to change a lot of segment registers to get its work done
18:42:06 <olsner> (so it's a lot like the original bootstrap switch to PM)
18:48:00 <elliott> olsner: I could easily make "protect" a routine :P
18:48:18 <elliott> olsner: I don't think the BIOS clobbers segments, though
18:48:29 <olsner> clobbers, but restores
18:48:33 <elliott> olsner: then it's no problem
18:48:39 <elliott> people use unreal mode for the express purpose of flat memory with bios calls, after all
18:49:07 <olsner> it can't restore them to the unreal-mode segments
18:49:25 <elliott> olsner: why not?
18:49:45 <olsner> because the meaning of loading a value into a segment register changes depending on which mode you're in
18:49:58 <elliott> olsner: but the bios is magical, isn't it?
18:50:04 <elliott> it'll just set the shadow things directly
18:50:41 <olsner> if it reads out the selector "8", stores (address/16), then stores back "8", that now sets the base to 8*16 and the limit to 64k :)
18:51:04 <olsner> no, the bios is not magical :) it's just code
18:52:08 <olsner> it might use unreal mode internally, I guess, or even system-management mode, but I think it still can't possibly tell that the 8 (or whatever) you gave it is supposed to be an offset in a GDT
18:53:30 <olsner> so unless it makes sure not to touch any segment registers at all, bios calls should mess up unreal mode
18:53:51 <elliott> olsner: the bios is magical code!
18:54:06 <elliott> olsner: anyway the whole _point_ of unreal mode is to use the bios
18:54:08 <elliott> so i doubt that
18:54:43 <elliott> "Also, the bigger DOS apps already run in 32-bit mode and just pop back to real mode when needing the BIOS."
18:56:32 <olsner> yeah, actual real mode is simple
18:56:51 <elliott> hmm
18:57:01 -!- oerjan has joined.
18:57:35 -!- asiekierka has quit (Read error: Operation timed out).
18:57:43 <elliott> olsner: maybe I'll write a program that takes an {input,output} table and tries to write the shortest-assembling x86 code to map them
18:58:03 <elliott> :P
18:58:22 <olsner> sounds like fun actually :)
18:58:38 <elliott> sounds incredibly non-trivial... are there any executable semantics of x86? :-D
18:58:40 <elliott> ("Yeah, bochs!")
18:59:01 <olsner> you can choose a subset of useful instructions and their flags
18:59:04 <elliott> oerjan: turingmachineologist!</j-invariant
18:59:06 <elliott> *>
18:59:32 <elliott> olsner: I have a feeling US scancodes and ASCII are unrelated enough that it'd basically end up as big as a table
18:59:41 <elliott> mind you, i don't need a full table
18:59:48 <elliott> 0-9, a-z, maybe A-Z, some punctuation
18:59:49 <elliott> that's it
19:00:28 <olsner> I think the scancodes are just whatever bits come out of the keyboard matrix when you press those keys
19:00:33 <olsner> more or less, anyway
19:00:39 <elliott> olsner: well, yes
19:00:56 <elliott> olsner: which is why i doubt there's a convenient table
19:01:07 <elliott> because of qwerty being so random :)
19:01:11 <elliott> maybe if i made the alphabetical keys be alphabetical
19:01:15 <elliott> then digits and alphabet would be fine :P
19:01:18 <elliott> but typing would be a bitch
19:01:38 <fizzie> On the other hand, all the important scan codes are small numbers.
19:01:43 <fizzie> So you don't need a full table.
19:01:51 <olsner> with only a-f and 0-9 you can input hex
19:02:12 <elliott> fizzie: That's true.
19:02:19 <elliott> I don't even need the return key. :p
19:02:20 <fizzie> a-z and A-Z are the same scancodes, anyway.
19:02:24 <elliott> Oh, right.
19:02:27 <elliott> And who needs uppercase?
19:02:37 <elliott> Unfortunately I do need to handle shift for some punctuation...
19:02:42 <elliott> actually i might be able to avoid that
19:02:48 <elliott> map [ and ] to @ and !
19:02:53 <elliott> ; to : and ' to ;
19:02:58 <elliott> \ to .
19:03:00 <elliott> err
19:03:01 <elliott> wait
19:03:04 <elliott> . has its own unshifted key :D
19:04:13 <fizzie> If you do scancodes up to space (57), you'll end up getting pretty much everything in the "main block", plus esc.
19:04:39 <olsner> so, 58 bytes of scancode map?
19:04:59 <olsner> are there *any* that map to consecutive ranges of ascii?
19:05:07 <elliott> olsner: the digits?
19:05:14 <fizzie> 123456789 are.
19:05:19 <elliott> Well, I don't need tab, or caps lock, or any modifier keys. Backspace would be nice.
19:05:20 <fizzie> The 0 comes after 9 in scan code order.
19:05:47 <elliott> If it really takes about 75 bytes (optimistic guess) to read and translate keyboard input, then that's like 130 bytes for keyboard and protected mode.
19:05:57 <elliott> Leaving only a worrying 380 for, you know, Forth.
19:06:30 <fizzie> The tabs and enters and ctrls like that are interspersed in-between the qwe, asd, zxc rows, annoyingly.
19:07:05 <elliott> fizzie: At least I can just put dud entries in there...
19:07:09 <elliott> What's the first "useful" character, say, 1?
19:07:16 <elliott> i.e. how many bytes can I chop off?
19:07:22 <elliott> I would guess pretty low, alas.
19:08:38 <olsner> must be more than, say, three to make sub foo,n pay off
19:08:56 <elliott> olsner: Well, I expect the F-row comes first.
19:08:58 <elliott> But what do I know.
19:09:16 <olsner> I suspect so too, depends on if it's row-major or column-major?
19:09:37 <elliott> <fizzie> The tabs and enters and ctrls like that are interspersed in-between the qwe, asd, zxc rows, annoyingly.
19:09:43 <elliott> I would guess row.
19:09:57 <fizzie> No, it's ESC first, but then almost instantly digits.
19:10:00 <elliott> Argh.
19:10:16 <elliott> *Preferably* the F-keys and the like would just do nothing, but I would also accept random behaviour and crashes if it saves bytes. :p
19:10:17 <fizzie> The Fx keys come after the main block, for some reason.
19:10:40 <olsner> hmm, there are three sets of scancodes though
19:11:05 <olsner> apparently the keyboard controller automatically translates to set 1, but I wonder if that can be turned off :)
19:11:17 <elliott> fizzie: Define "almost" instantly, anyway. :p
19:11:43 <elliott> hmm, I can handle backspace in a few bytes, I think
19:11:56 <elliott> either just decrementing the result string pointer, or restarting the read-word procedure
19:12:03 <Gregor> Backspace is for the weak.
19:12:10 <Gregor> Real men don't make mistaks.
19:12:26 <elliott> Indad.
19:12:33 <olsner> maybe you can handle Esc to clear all input and restart
19:12:42 <elliott> Hmmhmm, word names. The alphabet fits into 5 bits.
19:12:57 <elliott> So I could pack 6.4 letters-plus-a-bit into one word.
19:13:18 <elliott> Well, actually, that gives me 6 free characters.
19:13:27 <elliott> Maybe I could do some fancier encoding.
19:13:43 <Gregor> That .4 letters is really valuable.
19:13:51 <elliott> Gregor: Totally.
19:14:17 <fizzie> Quite a lot of the standard Forth words have non-alphabetic names (@, ! and so on) but of course you can just ignore that.
19:14:33 <Gregor> 26 < 32
19:14:36 <elliott> Gregor: In reality it's 6 32-choices plus a 4-choice
19:14:40 <Gregor> He still has space for some non-alphabet
19:14:45 <elliott> Indeed.
19:15:09 <elliott> Like I was saying, if I had some "fancier encoding", I could even make those have less-than-five-bit representations. But that maybe isn't worth it.
19:15:22 <Gregor> Of course, is the process of converting that to/from ASCII for read/display more expensive than storing it that way?
19:15:25 <elliott> In fact, I could make the dword be [two flags][name as 6 x 32-choices].
19:15:34 <elliott> Dunno what the flags would be, though :P
19:15:49 <elliott> Gregor: Well, obviously the name field won't be in ASCII.
19:15:50 -!- azaq23 has quit (Quit: Leaving.).
19:16:01 <olsner> @ is 'A'-1 btw
19:16:02 <elliott> Arguably read-word should return a name thing.
19:16:11 <elliott> But I do need to turn things into ASCII eventually. :p
19:16:15 <elliott> For, you know, display.
19:16:19 <Gregor> elliott: Yeah, 's my point :P
19:16:47 <elliott> Anyway, what's a Forth dictionary entry again usually?
19:16:51 <olsner> you could just store ascii-64, and 0 will be @
19:16:56 <elliott> Name, pointer to interpreter, plus code?
19:17:03 <elliott> Where "code" is likely to be a list of words or whatnot.
19:17:12 <elliott> (Or in fact valid asm threaded code.)
19:17:18 <elliott> olsner: heh
19:17:29 <elliott> olsner: that wouldn't fit all the stuff I need into 5 bits, I don't think
19:17:41 <Gregor> Also, he does still need NULL completion ...
19:17:49 <Gregor> s/completion/termination/
19:17:58 <Gregor> Or SOMETHING termination anyway.
19:18:06 <Gregor> Since not all words are exactly 6 characters long.
19:18:08 <elliott> Gregor: Yeah, I was planning to reserve 0 for termination.
19:18:10 <fizzie> Something-padding, maybe.
19:18:34 <olsner> 6 characters should be enough anyway, so just make every identifier exactly 6 characters long?
19:18:48 <elliott> Alternatively, I could terminate with "a"s.
19:18:56 <olsner> *30 bits long
19:19:01 <elliott> So @ = @a = @aa = @aaa = @aaaa = @aaaaa.
19:19:02 <elliott> :)
19:19:18 <Gregor> elliott: That's not terrible, but maybe use something a tad more obscure than 'a'
19:19:24 <elliott> Gregor: Possibly :P
19:19:35 <elliott> Note that this character set doesn't include digits...
19:19:39 <elliott> 36 > 32.
19:19:45 <elliott> But OTOH, the only time you really need digits is for actual integer literals.
19:19:47 <olsner> using 'a' for that is plenty obscure I think
19:19:49 <Gregor> Digits are for pussies.
19:19:53 <elliott> And you could consider them as not actually real words.
19:20:04 <elliott> colorForth does this packing-name-into-a-word thing, but it uses Shannon coding or something similarly fancy.
19:20:18 <elliott> Rather than a string of 8-bit characters, colorForth interprets pre-parsed words. A word starts with 4 bits that indicate its color and function - text, number, etc. Then 28 bits of left-justified, Shannon-coded characters, averaging 5.2 bits each. Numbers are stored in binary. Each word occupies 1 or more 32-bit memory locations.
19:20:38 <elliott> Hey, one of those two free bits could be used to indicate "integer".
19:20:45 <elliott> So integer literals would be 30-bit.
19:20:50 <elliott> Or even
19:20:53 <elliott> 1... -> 31-bit integer
19:20:55 <elliott> 0x... -> word
19:20:58 <elliott> Where the x is a flag for... something.
19:21:13 <Gregor> olsner: But how will I gag lady gaga?
19:21:27 <elliott> fizzie: Name, interpreter pointer, code -- what else goes into a Forth dictionary entry again?
19:21:30 <elliott> Apart from a "next" pointer. :p
19:21:47 <elliott> (I think I might make my dictionary an actual contiguous array, to avoid all those expensive pointers and whatnot.)
19:22:16 <olsner> Gregor: looks like you were cut off after "But how will I g" ...
19:22:27 <elliott> <Gregor> olsner: But how will I gag lady gaga?
19:22:33 <elliott> olsner: Oh, lol
19:22:37 <elliott> But a isn't a terminator
19:22:40 <elliott> You could say
19:22:42 <elliott> "abc"
19:22:45 <elliott> and it'd just turn into
19:22:48 <elliott> "abcaaa"
19:22:55 <elliott> The point is that you'd just compare words for equality directly.
19:23:04 <elliott> Just that whenever read-word encounters a space, it "a"s out the rest :P
19:23:43 <Gregor> Which is all fine and dandy, I just think that 'a' isn't sufficiently obscure since I want to gag lady gaga (I actually couldn't find any other ambiguities like this X-P )
19:24:17 <elliott> Well, if I'm doing qwerty, maybe "q" would work as a terminator somehow. :p
19:24:24 <elliott> If I keep letters in qwerty-order.
19:24:34 <elliott> gagqqq, gagaqq
19:25:04 <Gregor> Keeping letters in QWERTY-order.
19:25:07 <Gregor> Best idea ever?
19:25:24 <elliott> Gregor: Well, it's how the keyboard sends them X-D
19:25:55 <Gregor> Is that still true? I thought that true layout scancodes had dropped off.
19:26:03 <elliott> fizzie: olsner: CONFIRM/DENY
19:26:10 <elliott> Gregor: Well, it translates them into the "common" scancode format before sending, I think.
19:26:16 <elliott> At least olsner implied that!
19:26:24 <fizzie> It might not be true for an USB HID keyboard, physically speaking.
19:26:44 <Gregor> I am no hardware guy, don't trust me :P
19:26:45 <olsner> USB uses the same scan code set actually
19:26:49 <elliott> Right. But I'm talking ports and stuff.
19:26:52 <elliott> Which is, like, so PS/2.
19:26:57 <olsner> ridiculously enough
19:28:34 <fizzie> If you don't mind having only 5 letters per word, you could just store lowest 6 bits of the scancode to make the reading part slightly simpler... but not by much, assuming you actually want to provide keyboard echo for the user.
19:29:00 <Gregor> Either way he's going to have to translate to ASCII, but he doesn't want to store in ASCII.
19:29:20 <Gregor> So storing in 6-bits-o-scancode or 6-bits-o-ASCII is basically equivalent :P
19:29:29 <elliott> fizzie: I'm thinking that I'll make the reading for "hello" go like qqqqqq -> hqqqqq -> heqqqq -> helqqq -> hellqq -> helloq, internally. And I'll just have some kind of "replace-screen-line-with-word".
19:29:33 <elliott> So read-word will basically go:
19:29:39 <elliott> Read char; merge in; replace screen line with word; repeat.
19:29:45 <elliott> That handles keyboard echo and also "output".
19:29:59 <elliott> Actual string output is left as an exercise to the reader, but you will probably be able to do something like
19:30:01 <fizzie> 6 bits of scancode has more reasonable values, I think. But of course 6 bits of ascii-64 is very good too.
19:30:02 <elliott> 12345 emit
19:30:05 <elliott> And maybe it'll do what you want :P
19:30:07 -!- copumpkin has quit (Ping timeout: 276 seconds).
19:30:41 <elliott> fizzie: Mm.
19:30:45 <elliott> What about five bits of ascii-64? :P
19:30:47 <elliott> Wait.
19:30:50 <elliott> That requires ASCII translation.
19:30:57 <elliott> Any such trickery should be done with scancodes only :P
19:31:05 <elliott> What's 5 bits of scancode like, apart from terrible?
19:31:13 <elliott> I might be able to do without the letter "m"!!!
19:31:35 <fizzie> Scan code 31 is S.
19:31:49 <elliott> In which Chuck Moore doesn't understand compression:
19:31:50 <elliott> "Incidently, the resulting bit string is not only compressed, but encrypted. A casual viewer can make no sense of it. Without this description and appropriate software it is not comprehensible. Looking at a dump of the bit string is extremely confusing. I'll prepare some examples of decompressed and compressed code soon."
19:31:53 <elliott> *encryption:
19:31:55 <fizzie> So you'd get qwertyuiopas from the alphabet.
19:32:01 <elliott> fizzie: Perfect!
19:32:05 <elliott> ewit
19:32:11 <elliott> swap
19:32:16 <elliott> tup
19:32:21 <elliott> ower
19:32:28 <elliott> ouer! :P
19:32:49 <elliott> What's the BIOS thing to read a key from the keyboard?
19:32:55 <oerjan> qwertyuiopas sounds like a rather bad disease to catch
19:33:04 <elliott> I'm gonna see if going into unprotected mode will "work" X-P
19:33:53 <fizzie> I'd say "look it up from Ralf Brown's interrupt list", but that thing is so huge finding anything is a chore.
19:34:10 <elliott> fizzie: Well, yes, I'm trying that.
19:34:16 <elliott> /keyboard/ in both the 10 and 13 lists yields naught.
19:34:22 <elliott> I've done this before tho :P
19:34:30 <elliott> *though; what an annoying abbreviation.
19:34:31 <olsner> ffffffffuu, "character bios" has a meaning in the other world
19:34:38 <elliott> olsner: Which other world...
19:34:40 <elliott> Oh
19:34:41 <elliott> X-D
19:34:43 <elliott> Nice.
19:34:51 <fizzie> The "bios" category is sensible.
19:34:57 <elliott> "read key with bios" helps a little bit.
19:35:07 <elliott> fizzie: I'm just using an interrupt-number-indexed list with garish background.
19:35:16 <elliott> http://www.ctyme.com/intr/int-10.htm
19:35:17 <elliott> http://www.ctyme.com/intr/int-13.htm
19:35:19 <fizzie> Int 09h, AH=0.
19:35:21 <olsner> wikipedia says there is such a thing as int 16h, function 00h
19:35:33 <elliott> http://www.ctyme.com/intr/int-09.htm
19:35:35 <elliott> "Er, you sure?"
19:35:39 <fizzie> Sorry, 16h, yes.
19:35:46 <elliott> 16h. Huh.
19:35:51 <olsner> ​09h​IRQ1: Called after every key press and release (as well as during the time when a key is being held)
19:35:55 <elliott> http://www.ctyme.com/intr/rb-1754.htm
19:35:57 <fizzie> I can't read them pages.
19:36:03 <elliott> One wonders if this actually yields ass-key.
19:36:17 <olsner> the IRQ could also be used, of course :D
19:36:31 <fizzie> Oh, right.
19:36:37 <olsner> http://webpages.charter.net/danrollins/techhelp/0229.HTM
19:36:41 <fizzie> The get-keystroke gives scan codes.
19:36:46 <fizzie> "The BIOS scan code is usually, but not always, the same as the hardware scan code processed by INT 09. It is the same for ASCII keystrokes and most unshifted special keys (F-keys, arrow keys, etc.), but differs for shifted special keys."
19:36:52 <elliott> fizzie: I swear there's a convenient BIOS ass-key function for this ...
19:37:00 <elliott> I swear I've _used_ it
19:37:14 <olsner> That page says: AL ASCII character code or extended ASCII keystroke
19:37:27 <elliott> Expects: AH 00H
19:37:41 <fizzie> Ah, it gives both.
19:37:52 <fizzie> Return:
19:37:52 <fizzie> AH = BIOS scan code
19:37:52 <fizzie> AL = ASCII character
19:37:56 <elliott> Hrm.
19:38:11 <elliott> I do remember a biographies function that did it rather than going straight to the keybored.
19:38:15 <elliott> (biographies = BIOS. Obviously.)
19:38:37 <elliott> I will teraye it though.
19:38:44 <elliott> There I go again with my funny spe-lungs.
19:39:47 <olsner> I wonder if 16h may depend on IRQ1 being serviced
19:39:53 <elliott> mov eax, cr0
19:39:55 <elliott> and al, ~1
19:39:57 <elliott> mov cr0, eax
19:39:59 <elliott> FUN.
19:40:07 <olsner> xor al,1
19:40:12 <elliott> Or that, yes.
19:41:07 <elliott> Well, it waits for my key then reboots. :-)
19:41:08 <olsner> ~1 should also work though, nasm evaluates constant expressions
19:41:24 <elliott> Except in Bochs it waits for my key and... wait, what
19:41:36 <elliott> OK, it's HLTing and complaining that I'm hlting, but I "sti" before doing the interrupt.
19:41:39 <elliott> WHAT IS THE MEANING OF THIS.
19:42:41 <elliott> 03.01.21:02:12:04 <fizzie> ah, re befunge, just wrote an interpreter with forth. so our unofficial befunge-interpreters-in-obsolete-but-non-esoteric-languages project now has forth, fortran-77, algol-60, plus few less interesting ones. maybe should do cobol next.
19:42:41 <elliott> 03.01.21:02:13:12 <lament> fizzie: go to #forth and say it's obsolete, i dare you
19:42:44 <elliott> fizzie: HEAR HEAR
19:43:12 <olsner> BEGIN ESOTERIC-SECTION.
19:43:39 <elliott> 04.02.10:16:14:35 <fizzie> btw, what languages do we have befunge interpreters in? I know of implementations in C, javascript, algol (algol60?), fortran (two, actually) and forth, plus two unfinished ones (sed, 6502-assembler-for-8bit-nes-nintendo). any others?
19:43:39 <elliott> 04.05.27:08:07:58 <fizzie> kinda. oh, and it includes a "system information" command, which has the side-effect (can't remember if this was in the standard) that you can use it like the PICK word from forth.
19:43:44 <elliott> fizzie: Funge-98, what is even that!
19:44:29 <olsner> oh, the sed one is unfinished? sed needs more fun stuff
19:44:45 <fizzie> olsner: Well, *my* sed one is unfinished; there might well be a finished one.
19:50:34 -!- Sgeo has joined.
20:04:34 -!- copumpkin has joined.
20:11:08 <elliott> Hmm, wait.
20:11:22 <elliott> olsner: If I go into protected mode and don't set up interrupt handlers, then deprotect and do "sti", it's still gonna fail on any interrupt, right?
20:11:27 <elliott> Because the "default" interrupt handler is GONE FOREVER
20:12:04 * Sgeo wants Seph
20:12:15 <olsner> hmm, no, I think the real-mode interrupt handlers are at a fixed address (like 0)
20:12:31 <olsner> the vectors anyway, not the handlers
20:13:25 <elliott> olsner: well I say this because
20:13:40 <elliott> [deprotect cr0] sti; xor ah, ah; int 16h; cli; [protect cr0] does this in bochs:
20:13:48 <olsner> hmm, no, there is an IDTR, dunno what happens to that register when you switch modes :)
20:13:53 <elliott> it starts up, hangs, bochs warns about "omg hlt when blah blah!! it will never finished!"
20:13:54 <elliott> I press a key
20:13:55 <elliott> nothing happens
20:13:57 <elliott> but in qemu:
20:13:58 <elliott> it starts up, hangs
20:14:00 <elliott> I press a key, it reboots
20:17:26 -!- copumpkin has quit (Ping timeout: 250 seconds).
20:17:45 <olsner> based on the information I have, this all points to something having been done wrong
20:18:36 <elliott> olsner: I suspect that the bios calls HLT as part of its keyboard code
20:18:59 <elliott> olsner: And that the interrupts don't get fixed by disabling protection.
20:21:26 <olsner> I think you should add a couple of long calls to reset cs to/from real-mode
20:22:34 <elliott> olsner: Why, can't I use the bios from a 32-bit cs? :)
20:22:35 <olsner> dunno if that's the problem, but that could cause the incoming keyboard interrupt to mess things up instead of neatly returning to after the hlt
20:22:36 <Ilari> Looking at number of diffrent blocks allocated by APNIC in December-Feburary: 8M: 1 (8M), 4M: 1 (4M), 2M: 4 (8M), 1M: 16 (16M), 512k: 16 (8M), 256k: 28 (7M), 128k: 25 (3.13M), 64k: 48 (3M), 32k: 22 (0.69M), 16k: 33 (0.52M), 8k: 42 (0.33M), 4k: 50 (0.20M), 2k: 63 (0.12M), 1k: 85 (0.08M), 512: 20 (0.01M), 256: 58 (0.01M).
20:22:54 <olsner> (the hlt presumably in the bios' int 16h)
20:23:06 <olsner> (which is probably waiting for IRQ1)
20:23:37 <elliott> Added some long jmps, still doesn't work :(
20:23:46 <elliott> olsner: I swear that interrupts won't work after deprotecting :P
20:24:24 <olsner> why wouldn't they?
20:24:47 -!- copumpkin has joined.
20:25:00 <elliott> olsner: Because going into protected mode gets rid of all that magical interrupt goodness?
20:25:10 <elliott> And I doubt flicking cr0 back adds the magic again.
20:25:59 <olsner> you could try a lidtr to explicitly reset back to the real-mode interrupt vectors
20:26:17 <elliott> olsner: yeah, but what are the vectors?
20:26:59 <olsner> should be at 0, since 8086 didn't even support moving them
20:27:09 <elliott> lidtr [0], or
20:27:11 <elliott> lidtr [foo]
20:27:12 <elliott> ...
20:27:15 <elliott> foo: dd 0?
20:27:20 <elliott> assuming it's dd, i forget lidtr..
20:27:25 <olsner> something like that
20:27:37 <elliott> which :)
20:27:47 <olsner> ... though I don't think it should be necessary at all
20:28:09 <elliott> still reboots even with that :)
20:28:09 <elliott> in qemu
20:28:11 <elliott> i'l ltry bochs
20:28:13 <elliott> *i'll try
20:28:38 <elliott> "getHostMemAddr vetoed direct read, pAddr=0x000a2722"
20:28:39 <elliott> olsner: w a t
20:28:45 <elliott> *"prefetch: getHostMemAdrr
20:28:49 <elliott> *Addr
20:29:14 <olsner> hmmm!
20:29:34 <elliott> idtr:dd 0
20:29:34 <elliott> ;; gdt
20:29:34 <elliott> gdtr:dw gdt_end-gdt-1 ; limit
20:29:37 <elliott> it doesn't like something there, at least
20:29:42 <elliott> idtr is just one val right?
20:29:45 <olsner> unfortunately, none of this new information changes my previous theory
20:29:57 <elliott> idtr:
20:29:57 <elliott> dw0
20:29:58 <elliott> dd0
20:30:03 <olsner> the idt has a limit, at least in protected mode
20:30:15 <elliott> same error though, even with that idt
20:36:00 <olsner> do you disable A20?
20:43:57 -!- pikhq has joined.
20:44:49 -!- pikhq_ has quit (Ping timeout: 276 seconds).
20:48:43 -!- copumpkin has quit (Ping timeout: 276 seconds).
20:50:18 -!- Patashu has joined.
20:51:57 -!- copumpkin has joined.
20:55:12 <fizzie> Isn't the IDT descriptor the same 6-byte thing than the GDT; two bytes for the limit and four for the base? Which would mean dw 0, dd 0 makes a zero-size limit and any interrupt would then go outside it. (But I don't really know if the IDT is checked for real-mode interrupts.)
20:55:52 <fizzie> Oh, it does in fact check IDT in real mode.
20:56:20 <fizzie> And as far as I can tell it only uses the base address.
20:56:48 <fizzie> So dw 0, dd 0 should be reasonable. But if you don't relocate it anywhere with an earlier LIDT, I suppose it shouldn't move anyway.
21:00:00 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .).
21:00:28 <fizzie> Someone's example code does do LIDT [RealModeIDT] with RealModeIDT: dw 0x03ff, dd 0x0000.
21:01:02 <elliott> fizzie: Perhaps my reboot is for Other Reaz0ns.
21:01:09 <elliott> Does the keyboard thing take parameters? :P
21:01:32 <olsner> not according to that page I found at least
21:01:54 <fizzie> I don't think it should, no. Well, except for the AH = 00h function-selector part.
21:02:05 -!- copumpkin has quit (Ping timeout: 260 seconds).
21:02:06 <olsner> elliott: you should probably do a 'show int' before going into the bios
21:02:13 <olsner> to print interrupts that happen
21:02:20 <elliott> olsner: er, is that an instruction or something?
21:02:24 <olsner> in bochs' debugger :)
21:02:26 <elliott> i haven't used bochs bugger
21:02:27 <elliott> scares me
21:02:28 <elliott> ...
21:02:29 <elliott> xD
21:02:30 <elliott> nice typo
21:06:26 <fizzie> What did your code look like?
21:06:57 <fizzie> After flipping the bit in CR0, you do need at least that far jump, I believe.
21:07:32 -!- Mathnerd314 has joined.
21:07:39 <elliott> fizzie: Indeed.
21:07:40 <elliott> I far jump.
21:07:41 <elliott> Sec.
21:07:45 <elliott> Busy warring with pigs
21:08:23 <olsner> warting the hogs?
21:09:25 <fizzie> Thwarting them, I'd guess.
21:09:51 <fizzie> The thwarthog: bane of everyone with goals.
21:10:29 <olsner> Thwarthog Goalsbane
21:11:18 <fizzie> Sounds like something that drops rares.
21:11:25 <fizzie> (Is that a term?)
21:11:49 <olsner> rares? rarities maybe
21:13:50 <fizzie> About 2,500 results (0.23 seconds); if it's a term, it's not a very wide one, I guess.
21:14:10 <fizzie> "wich monsters drops rares ??? hey can anybody telle ma about all drops possible out of monsters in looting plz :D :D :)"
21:17:03 <olsner> you should do like the guy in HHGG who has to insult every living being in the universe, visit every site on the internet and ask that question
21:17:18 <elliott> doesn't have to, just wants to
21:17:48 <olsner> right, whatever :)
21:18:02 <olsner> seemed like an obsession to me, but I guess it is voluntary
21:19:36 <fizzie> Well, he wanted a project to keep himself busy.
21:19:42 <Vorpal> <olsner> Thwarthog Goalsbane <-- sounds like a boss in some sort of parody game
21:20:02 <fizzie> I could imagine a Thwarthog Goalsbane high-level monster in Munchkin.
21:20:35 <Vorpal> fizzie, isn't munchkin rather parody though? ;P
21:22:17 <pikhq> So. The USA is an officially secular state and has "In God We Trust" on its currency. The UK is an officially Christian state and has Darwin on the £10 note...
21:22:40 <pikhq> I get the feeling that a state religion isn't necessarily a bad thing. :P
21:23:02 <Vorpal> pikhq, I get the feeling that state religion is pretty much disconnected for actual state of affairs :P
21:23:19 <Vorpal> pikhq, for your conclusion to be valid I think you need some more evidence
21:23:26 <Vorpal> like how it works in other countries.
21:23:51 <pikhq> Vorpal: Yes, yes, I'm aware that in the UK, like *most* European countries with a state religion, only has the state mandated religion in existence for hysterical raisins...
21:24:03 <elliott> doesn't sweden have state religion
21:24:36 -!- uniqanomaly has quit (Quit: uniqanomaly).
21:24:41 <Vorpal> Sweden has no official state religion (since a number of years. 15? 20? something like that) and we have... no god mentions on our money
21:25:11 <Vorpal> pikhq, but yes hysterical raisins indeed
21:25:13 -!- copumpkin has joined.
21:25:17 <pikhq> elliott: In 2000 the Church of Sweden ceased to be the state church.
21:25:24 <Vorpal> oh that recently, heh
21:26:28 <fizzie> I think officially the Evangelical-Lutheran Church of Finland is not a "state church" either, but I think it still enjoys some special privilege bits.
21:27:22 <Zwaarddijk> sweden is a bit odd, though
21:27:23 <fizzie> "The main Lutheran and Orthodox churches are constitutional national churches of Finland with special roles in ceremonies ..."
21:27:40 <fizzie> I guess they still count since they have special mentions in some laws here and there.
21:27:45 <pikhq> Finland has *two* state churches, then.
21:27:47 <Zwaarddijk> in that if the king wants to convert from lutheranism, he must abdicate
21:27:56 <Vorpal> I think there is some special privilege related to being able to perform marriages that only the church has over here
21:28:09 <Vorpal> so for other religions you need to get a non-religious marriage
21:28:19 <Zwaarddijk> Vorpal: captains of ships have that right too, here, as do certain secular officials
21:28:20 <pikhq> Zwaarddijk: And if you get a non-Lutheran king in the first place?
21:28:24 <oerjan> Ilari: http://blog.tanyakhovanova.com/?p=311 seems connected to your recent string subsequence stuff
21:28:30 <olsner> Zwaarddijk: we're aiming to go from "a bit odd" to "odd" within the next 3-year period
21:28:30 <Vorpal> <Zwaarddijk> in that if the king wants to convert from lutheranism, he must abdicate <-- is that still the case? heh
21:28:30 <Zwaarddijk> pikhq: that can't happen in Sweden (I'm not Swedish)
21:28:44 <Zwaarddijk> Vorpal: yes.
21:28:46 <olsner> (hopefully)
21:28:49 <pikhq> That's bullshit. (not the claim itself, the state of affairs)
21:29:22 <pikhq> Not that it matters *too* much; the monarch is a mere symbol of the state at this point, anyways.
21:29:38 <olsner> hmm, I guess that means some portion of the king's tax-paid allowance is guaranteed to go to church tax
21:29:45 -!- Sgeo has quit (Ping timeout: 240 seconds).
21:29:46 <Vorpal> pikhq, yes indeed. Besides our king is dyslexic and what not.
21:29:48 <Vorpal> *shrug*
21:30:23 <pikhq> Oh, hah. The monarch isn't required to be *Lutheran*. Any Protestant denomination will do.
21:30:33 <Vorpal> okay
21:31:00 <Zwaarddijk> pikhq: hm, you sure?
21:31:23 <olsner> pikhq: does that include the church of the flying *protestant* spaghetti monster?
21:31:27 -!- SimonRC has joined.
21:31:32 <oerjan> Vorpal: norway is in the process of abolishing our state church, however the king himself insisted that they keep his requirement to belong to it in the constitution
21:31:44 <Zwaarddijk> there's actually an odd thing in Finnish public broadcast legislation re: that
21:31:51 <Vorpal> oerjan, heh
21:32:09 <Vorpal> <Zwaarddijk> there's actually an odd thing in Finnish public broadcast legislation re: that <-- oh?
21:32:15 <fizzie> pikhq: We have a new-ish "Freedom of Religion Act" (from 2003; I mean, we had one before, but this is the latest revision) which says basically that anyone can belong to any "religious organization" that they wish, and that a "religious organization" is either the Evangelical-Lutheran or the Orthodox Church, or any organization registered according to law X; and that the two official churches have some legislation controlling how they operate.
21:32:32 <pikhq> Argh, no, not really. "Art. 4. In accordance with the express provision of Article 2 of the Instrument of Government of 1809 that The King shall always profess the pure evangelical faith, as adopted and explained in the unaltered Confession of Augsburg and in the Resolution of the Uppsala Meeting of the year 1593, princes and princesses of the Royal House shall be brought up in that same faith and within the Realm. Any member of the Royal Fami
21:32:57 <pikhq> (translated version of the "Successionsordningen", on Wikisource)
21:33:01 <Zwaarddijk> Vorpal: one may not broadcast religious services from non-trinitarian congregations as tohugh they were services.
21:33:29 <Zwaarddijk> that is, there's a specific concept of televised service, which only extends to trinitarian christians :|
21:33:33 <elliott> The royal fam!
21:33:49 <Vorpal> Zwaarddijk, heh
21:33:57 <Zwaarddijk> pikhq: pure evangelical faith is clearly lutheranism there.
21:34:00 <oerjan> poor members of the royal famine
21:34:05 <pikhq> Zwaarddijk: Yeah, quite clearly.
21:34:15 <pikhq> You Europeans really need to go further with this whole seperation of church and state thing.
21:34:24 <Zwaarddijk> pikhq: actually, I think it's done us a world of good
21:34:25 <Vorpal> pikhq, "Augsburg"?
21:34:45 <pikhq> And meanwhile Americans need to get the concept *beaten into their freaking head over and over again*.
21:34:50 <Vorpal> <pikhq> (translated version of the "Successionsordningen", on Wikisource) <-- they have a translated version of that?
21:35:02 <pikhq> Vorpal: Yes, http://en.wikisource.org/wiki/Act_of_Succession_of_Sweden
21:35:09 <Zwaarddijk> pikhq: see, this way, the state has had an option of influencing the churches (by making sure to require that the clergy has reasonable education, etc)
21:35:12 <Vorpal> pikhq, ... why on earth
21:35:25 <pikhq> Oh, it's apparently the official translation by the Swedishgovernment.
21:35:31 <Vorpal> ah
21:35:32 <pikhq> Erm, add space as appropriate.
21:35:38 <Zwaarddijk> tht way, I think the european state churches (at least in northern europe) have helped making europe relatively secular
21:35:59 <Zwaarddijk> this way, also, we've gotten spared from idiots like ... uneducated clergymen arguing against interracial marriage and such
21:36:20 <pikhq> Zwaarddijk: The issue is that you guys have gotten rid of insane religiosity without getting rid of actual church-state ties.
21:36:25 <Zwaarddijk> yes, but
21:36:29 <oerjan> some of our clergymen have no trouble arguing against gay marriage, mind you
21:36:32 <pikhq> Zwaarddijk: And we've gotten rid of actual church-state ties without getting rid of insane religiosity.
21:36:35 <Zwaarddijk> olsner: true.
21:36:47 <Zwaarddijk> pikhq: yes, and I much prefer the previous alternative there
21:36:57 <olsner> oh, that was probably a reply to oerjan?
21:37:03 <pikhq> And people don't even accept the *existence* of seperation of church and state here.
21:37:13 <pikhq> *Literally do not believe that that is how things work*.
21:37:34 <Zwaarddijk> if we now got rid of the church-state ties in a badly thought out way, the chances of greater amounts of stupid appearing in the majority church is overwhelming
21:37:49 <Zwaarddijk> such stupid does exist in the non-state-churches, like the baptists and the free lutherans and such
21:41:41 <pikhq> I still find it incredible that people in the US do not merely advocate against the seperation of church and state, but advocate that that *is not even the state of affairs*.
21:43:16 -!- copumpkin has quit (Ping timeout: 240 seconds).
21:43:30 <fizzie> Zwaarddijk: Just out of curiosity, can you provide citations for the religious service broadcast thing. The obvious search ("jumalanpalvelus*") in Finlex doesn't really hit anything relevant.
21:43:55 <Zwaarddijk> maybe it's not in the law then
21:44:00 <Zwaarddijk> maybe it's in yles charter or somesuhc?
21:44:09 <Zwaarddijk> it's just a recollection
21:44:17 <Zwaarddijk> from years back
21:45:53 <Zwaarddijk> pikhq: the only churches with the relevant size in the US to be able to make any claim for state-church status would be like southern baptists and the catholics, no?
21:46:23 <Zwaarddijk> wonder how well the catholics gaining that status would go over with the protestants :)
21:50:01 <variable> elliott: where is the hg repo ?
21:50:06 <elliott> variable: Err
21:50:10 <elliott> codu.org/something
21:50:12 <elliott> Gregor: ping
21:50:50 <pikhq> Zwaarddijk: You'd probably only get state churches for individual states.
21:51:15 <Zwaarddijk> that'd get weird
21:51:28 <Zwaarddijk> does Germany have state churches?
21:51:40 <variable> pikhq: people believe what they want is what is and what was. This is well known in cognitive psychology
21:54:05 <pikhq> Zwaarddijk: Aside from an ability for sufficiently large religious organizations to be able to have a church tax taken out, there is not a state church in Germany.
21:54:49 -!- Behold has joined.
21:55:05 <fizzie> They did have that "blasphemy" bit in the criminal code, but in 1998 the section was renamed to "disturbance of religious peace"; it still does mention "God", but also in the same sentence "or other similar religious observances" or some-such.
21:55:33 <pikhq> Seems that the seperation of church and state was first enacted in the Weimar Republic.
21:57:18 -!- BeholdMyGlory has quit (Ping timeout: 240 seconds).
21:59:21 <Zwaarddijk> oh right, there's one ~federation-like thingy with state churches, how could I forget
21:59:25 <Zwaarddijk> the UK.
21:59:44 <cheater00> germany has state churches
22:02:03 -!- mileva has joined.
22:02:48 * variable finds it silly that we still have 'god' in our pledge of allegiance - but meh
22:04:44 <mileva> yes
22:08:06 <Phantom___Hoover> > 9*3*64
22:08:07 <lambdabot> 1728
22:08:27 -!- copumpkin has joined.
22:08:41 <pikhq> variable: People use that as reasoning that this is a Christian nation and that as such we should make laws based on their interpretation of Christianity.
22:09:09 <mileva> 3^3 * 2^6 ?
22:09:20 <variable> pikhq: don't get me started on logical fallacies by theists.
22:09:30 <variable> (unless of course you care :-])
22:09:38 <mileva> Eq x=x+1, x=?
22:09:46 <pikhq> variable: As a recent convert to atheism, I'm still at the point where I give a crap! :P
22:10:49 <mileva> 42?
22:13:19 -!- copumpkin has quit (Ping timeout: 276 seconds).
22:15:15 <Mathnerd314> hmm... I should switch to NixOS
22:15:50 -!- copumpkin has joined.
22:15:51 <mileva> hmm... i'have to learn it
22:18:13 <variable> Mathnerd314: website isn't loading
22:19:19 <Mathnerd314> it used to...
22:21:20 <mileva> down
22:25:39 -!- augur has quit (Remote host closed the connection).
22:27:35 -!- Mathnerd314 has quit (Ping timeout: 252 seconds).
22:30:21 -!- p_q has quit (Quit: This computer has gone to sleep).
22:31:28 <Phantom___Hoover> <pikhq> variable: As a recent convert to atheism, I'm still at the point where I give a crap! :P ← really?
22:31:59 <mileva> agnosticum vitae forman milos
22:32:33 <variable> I can't find that googling it
22:35:25 <elliott> Phantom___Hoover: Really what
22:36:25 <Zwaarddijk> variable: I find the entire contect of a pledge of allegiance (allegiance to a cloth design, even) to be rther silly
22:37:14 <Phantom___Hoover> If you listed the things about the US that everyone else finds silly you'd be there all day.
22:37:19 <Zwaarddijk> like, what is allegiance to a flag?
22:37:27 <Zwaarddijk> how does one violate such an allegiance?
22:37:30 <mileva> so, it's maybe like a fish as the science, kindof bycicle usefull to birds ?
22:37:40 <oerjan> mileva: are you human?
22:38:41 <mileva> yes
22:39:03 <oerjan> the evidence isn't quite convincing yet...
22:39:20 <mileva> maybe i do not understud all :(
22:39:24 -!- fungot has joined.
22:39:39 <fizzie> (Something just reminded me of fungot.)
22:39:40 <fungot> fizzie: that is just a pair of trousers by sewing. :p
22:39:59 <Phantom___Hoover> I don't understud all either.
22:41:17 <mileva> yup :~)
22:42:54 <pikhq> Phantom___Hoover: ?
22:43:18 <oerjan> pikhq: are YOU human?
22:43:19 <Phantom___Hoover> <mileva> maybe i do not understud all :(
22:43:37 <pikhq> oerjan: Yes.
22:43:51 <mileva> i'm pretty shure, i do not undertud the entire world :)
22:44:44 -!- wareya_ has changed nick to Alex_Megaroide.
22:45:03 <oerjan> pikhq: You are sure?
22:45:56 <mileva> turing is an apple's ghost
22:46:03 -!- poiuy_qwert has joined.
22:46:27 <oerjan> newton's apple
22:46:27 <pikhq> oerjan: Rather.
22:46:47 <oerjan> pikhq: Please go on.
22:47:05 <mileva> yep, like G.Tell on his son's head ?
22:47:33 -!- Mathnerd314 has joined.
22:47:46 <pikhq> oerjan: じゃ、教えろうね。僕は人間で生まれたので、人間だと思う。
22:50:29 <mileva> soio, tokyo hostel, myo-cardio bouldu buldou fidjii
22:50:44 <oerjan> pikhq: なぜあなたは、あなたが今の人間だと思う人が生まれた私に言うのですか?
22:50:57 <pikhq> oerjan: That. Doesn't. Parse.
22:51:36 <oerjan> pikhq: Please go on.
22:51:58 <pikhq> The Japanese you pasted was... Unparsable.
22:52:24 <oerjan> pikhq: Oh, i pasted was unparsable.
22:52:47 <pikhq> "Why did you, you now-human think person birth I to said?"
22:53:14 <oerjan> pikhq: Oh, i i nowhuman think person birth you to said.
22:53:15 <mileva> #include "Sha2.h"
22:59:27 -!- mileva has quit (Quit: Leaving).
23:15:38 -!- Sgeo has joined.
23:20:57 -!- Phantom___Hoover has quit (Remote host closed the connection).
23:34:30 <Sgeo> le sigh
23:34:45 <Sgeo> IokeHurricane is spamming #ioke
23:34:48 <Sgeo> How typical
23:36:09 <elliott> fizzie: olsner: I bet what you're thinking is, "I really want to look at elliott's terrible asm and debug it".
23:46:17 -!- cheater- has joined.
23:49:18 -!- cheater00 has quit (Ping timeout: 252 seconds).
23:59:55 <elliott> olsner: waiit
23:59:59 <elliott> olsner: the long jump won't work in real mode
←2011-03-02 2011-03-03 2011-03-04→ ↑2011 ↑all