←2010-06-19 2010-06-20 2010-06-21→ ↑2010 ↑all
00:00:22 <alise_> Fart.
00:06:33 <alise_> * ksf has a look at alise_'s code and decides its' abstract nonsense
00:06:41 <alise_> -- in #haskell, commenting on something as simple as the definition of a kleene star
00:06:45 <alise_> (http://hpaste.org/fastcgi/hpaste.fcgi/view?id=26386)
00:06:47 <alise_> *the kleene star
00:06:58 <alise_> To repeat: A Haskeller, complaining that a simple definition is abstract nonsense.
00:07:12 <alise_> <ksf> the kleene star, imnsho, is a primitive, not a derived expression...
00:09:06 <alise_> <ksf> you can define it recursively in terms of a n indeponent semiring, but that's usually not what you want, as you can't analyse a recursive haskell definition
00:11:08 -!- BeholdMyGlory has joined.
00:14:20 <Sgeo_> So he's saying it might as well be a primitive?
00:14:35 <alise_> Who knows.
00:14:43 <Sgeo_> Actually, you can't really analize ANY definition in Haskell
00:14:54 <Sgeo_> At least, not from within haskell, iiuc
00:15:29 <alise_> <ksf> alise_, btw, [[]] = []
00:16:09 * Sgeo_ blinks a few times
00:16:30 <alise_> ksf appears to be rather stupid.
00:16:32 <Sgeo_> []:[] /= []
00:17:05 <Sgeo_> Maybe in the context of some function?
00:17:38 <alise_> He was wrong there, too.
00:19:42 <alise_> So I defined regular expressions hideously inefficiently.
00:22:11 <Sgeo_> Hm, what if my issue with LambdaMOO culture seems to exist only because I was talking with one or two people?
00:22:19 <alise_> http://pastie.org/1011883.txt?key=udjvaf5xdbikad1h6ug5sw
00:22:28 <Sgeo_> Maybe those people don't represent the whole community, the way ksf doesn't represent all Haskellers
00:23:25 <SevenInchBread> screw MUD communities
00:23:29 -!- SevenInchBread has changed nick to CakeProphet.
00:23:42 <CakeProphet> ...IRC refused to keep me logged in to my main nickname.
00:23:45 <CakeProphet> *refuses
00:24:20 <coppro> that means someone has NickServ protecting it
00:24:35 <CakeProphet> no, not quite.
00:24:42 <CakeProphet> I think I just dc and it gives me my alt nick
00:24:52 <CakeProphet> it's registered as mine though.
00:24:58 -!- CakeProphet has quit (Changing host).
00:24:58 -!- CakeProphet has joined.
00:25:23 <CakeProphet> they should be linked actually.
00:25:29 -!- CakeProphet has changed nick to SevenInchBread.
00:25:34 -!- SevenInchBread has changed nick to CakeProphet.
00:25:35 <CakeProphet> yep.
00:26:33 <CakeProphet> as a language, Erlang could be vastly improved.
00:27:07 <alise_> Revised version: http://hpaste.org/fastcgi/hpaste.fcgi/view?id=26388
00:27:09 <CakeProphet> it's pretty nice though.
00:28:15 <alise_> Sorry, I lied, none of this works: the infinite stuff means it never gets to the alternatives of infinite things.
00:28:17 <CakeProphet> alise_: some kind of regular expression machine?
00:28:21 <alise_> uorygl: Got another word yet?
00:28:26 <alise_> CakeProphet: Pretty much; a broken one.
00:28:42 <alise_> CakeProphet: Specifically, it represents a regular expression as the set (list) of strings that match it.
00:28:43 <uorygl> Chicle.
00:29:12 <uorygl> Pronounced /ˈtʃɪkəl/, rhyming with "tickle".
00:29:17 <CakeProphet> alise_: neat
00:29:52 <CakeProphet> does Haskell have a standard library set data type?
00:31:32 <alise_> yes, Data.Set.
00:31:37 <alise_> uorygl: Another word!
00:31:50 <uorygl> Vulcanized.
00:31:54 <alise_> uorygl: AGAIN
00:31:59 <uorygl> Pages.
00:34:51 <CakeProphet> alise_: it looks wonderfully efficient from what I can tell. :)
00:36:03 <alise_> Data.Set? Yes.
00:36:09 <alise_> uorygl: Something slightly less random...
00:36:20 <CakeProphet> alise_: ha, no. I meant your program.
00:36:41 <alise_> CakeProphet: It's not.
00:36:51 <alise_> For instance, (x ||| y) never gets to y if x is infinite.
00:36:53 <alise_> So it is deeply flawed.
00:37:05 <alise_> And matching is very slow; it must generate all possible strings before the one you've inputted.
00:37:22 <uorygl> Less random? Aw.
00:37:22 <alise_> And if there are an infinite set of strings, (x `elem` y) where x does NOT match y, diverges and does not terminate.
00:37:28 <alise_> uorygl: Yes. :P
00:37:33 <uorygl> Pages. Pages. Pages. Pages. Pages.
00:37:37 <uorygl> Non-random words. :P
00:38:07 <uorygl> What do you call a small hole cut near the edge of something so that it can be attached to something by a hook?
00:39:09 <uorygl> Here we go. An eyehole.
00:39:11 <uorygl> So. Eyehole.
00:39:21 <CakeProphet> alise_: to fix |||, you could intersperse elements from x and y
00:39:36 <CakeProphet> [x0,y0,x1,y1,x2,y2]
00:39:37 <alise_> CakeProphet: yeah, but I'm too lazy.
00:39:41 <alise_> uorygl: JUST NAME MY DISTRO :>
00:39:42 <alise_> :|
00:39:46 <CakeProphet> haha. It wouldn't be too much to do.
00:39:55 <uorygl> alise_: your distro is named Eyehole.
00:41:55 <alise_> No.
00:42:01 <alise_> Eh, I'll just name the directory transom for now.
00:42:08 <uorygl> Mmkay.
00:42:11 <CakeProphet> alise_: http://hpaste.org/fastcgi/hpaste.fcgi/view?id=26388#a26389
00:43:01 <alise_> CakeProphet: Now fix the infinite-set-of-strings, string-that-doesn't-match problem.
00:43:04 <alise_> Good luck, sucker.
00:43:37 <CakeProphet> true. Perhaps this representation is flawed? :D
00:43:42 -!- pikhq has joined.
00:43:58 <alise_> float/* we won't stay afloat for very long */
00:43:58 <alise_> main(int argc, char **argv)
00:44:03 <alise_> -- the Mastodon init program, halt.c
00:44:25 <CakeProphet> alise_: you could represent it as a theoretical set of all strings that match. Define the sets with predicate functions.
00:44:26 <pikhq> XD
00:44:29 <CakeProphet> and then union, intersect, etc
00:44:44 <alise_> Violating the standard is a great idea as long as it's amusing!
00:45:25 <alise_> Question: Why are rc.d and init.d in /etc?
00:45:29 <alise_> They're executable system code!
00:45:31 <micahjohnston> doesn't that set thing conflict with Control.Arow?
00:45:36 <micahjohnston> Control.Arrow*
00:45:45 <alise_> Also, what DOES .d stand for, anyway?
00:45:51 <alise_> micahjohnston: Yes; but who really cares?
00:46:32 * CakeProphet is deeply concerned about the Haskell's worldwide namespace.
00:46:38 <alise_> pikhq: Do you know what happens if init(8) exits?
00:46:39 <CakeProphet> -the
00:46:40 <micahjohnston> you can always import qualified
00:46:45 <micahjohnston> but does that work on infixes?
00:47:09 <CakeProphet> Control.Arrow.(&&&)
00:47:10 <CakeProphet> lovely
00:47:12 <pikhq> alise_: Kernel panic.
00:47:23 <alise_> CakeProphet: import as A
00:47:25 <alise_> x A.&&& y
00:47:26 <alise_> micahjohnston: yes.
00:47:32 <alise_> Map.! is common for instance
00:47:34 <CakeProphet> ah
00:47:42 <CakeProphet> didn't know you could do it that way.
00:47:45 <alise_> pikhq: Is it appropriate to cause a kernel panic if, say, /etc/init.d/start is not there or not executable?
00:47:46 <micahjohnston> that's awesome
00:47:47 <micahjohnston> :D
00:47:58 <alise_> pikhq: Actually, I might try and start /bin/sh first, for system recovery.
00:48:05 <pikhq> alise_: This is about on par with not having init.
00:48:20 <pikhq> The only two sane responses *are* trying /bin/sh and causing a kernel panic.
00:48:24 <alise_> pikhq: Right. :P
00:49:10 <alise_> So, again, what the hell does the .d stand for?
00:49:25 <pikhq> ... Directory.
00:49:29 <alise_> pikhq: Oh.
00:49:35 <alise_> pikhq: Why do we need the fact that it's a directory in the name?
00:49:37 <alise_> That's stupid.
00:50:06 <pikhq> It's normally only used for when you've decided to split a single configuration file into a set of them in a directory.
00:50:10 <alise_> ...also, really dumb question time: how does init tell the kernel to shutdown, instead of panicing?
00:50:22 <pikhq> For instance, env.d, init.d, rc.d, conf.d, etc.
00:50:26 <alise_> pikhq: So it would be perfectly reasonable to have /etc/init/ if my init was wildly incompatible with everything else?
00:50:45 <alise_> I guess I might just have /etc/init.{start,stop}; after all, they're the only files init(8) will use.
00:50:57 <pikhq> Perfectly. init.d isn't even necessarily going to exist on systems actually using init(8), after all.
00:51:14 <alise_> Would you recomment /etc/init.{start,stop} or /etc/init/{start,stop}? I guess the latter; more organised.
00:51:20 -!- micahjohnston has left (?).
00:51:25 <pikhq> Don't care much either way.
00:51:36 <alise_> Now I just need to figure out how to tell Linux to go all sleepy.
00:51:42 <pikhq> But... Yeah. The only thing guaranteed on an init(8) system is the existence of /etc/inittab.
00:51:56 <pikhq> Everything else is configuration.
00:52:04 <alise_> pikhq: Hell, no /etc/inittab here.
00:52:12 <alise_> Perhaps I should call it something other than init(8).
00:52:18 <pikhq> Probably.
00:52:30 <alise_> But BSD and sysv init both call themselves init!
00:52:41 <pikhq> Yes, those are both the same basic program.
00:52:48 <pikhq> They differ in /etc/inittab configuration.
00:52:57 <pikhq> (IIRC)
00:52:59 <alise_> ...bah
00:52:59 <alise_> :P
00:53:15 <alise_> minit, maybe, for the horrible pun.
00:53:25 <alise_> Anyway, so, I assume there's some system call to halt or reboot the system...
00:53:41 <pikhq> No, wait.
00:53:46 <pikhq> BSD init is, in fact, different.
00:53:50 <pikhq> Doesn't have inittab either.
00:53:51 <alise_> I was thinking that too :P
00:53:55 <alise_> Wut?
00:53:57 <alise_> BSD init so does have inittab.
00:54:04 <pikhq> Well. Oh, yeah.
00:54:08 <pikhq> It doesn't have *run levels*.
00:54:19 <alise_> Indeed.
00:54:24 <alise_> "BSD init runs the initialization shell script located in '/etc/rc', then launches getty on text-based terminals or a windowing system such as X on graphical terminals. There are no runlevels; the 'rc' file determines how init is to be run."
00:54:28 <alise_> Hey, how does it handle shutting down services?
00:54:29 <pikhq> It just tends to go run /etc/rc and then some gettys.
00:54:33 <alise_> Does shutdown do that?
00:54:40 <pikhq> init does that.
00:54:46 <alise_> What shell script does it run?
00:54:51 <pikhq> shutdown just sends a signal to init.
00:55:02 <alise_> pikhq: Hmm, if I have /etc/init/{start,stop}, where do the various services go?
00:55:12 <alise_> I was planning on having /etc/init.{start,stop}, then /etc/init.d/*.{start,stop}.
00:55:20 <pikhq> Uh. I'm not sure about BSD init. SysV has a shutdown runlevel.
00:55:32 <pikhq> And a reboot runlevel...
00:55:39 <alise_> Meanwhile... I can't seem to find the linux system call that shuts down...
00:56:27 <alise_> Or, well, halts.
00:58:31 <alise_> pikhq: I guess if I'm writing init, I should write login too, huh.
00:58:51 <coppro> isn't it usually handled by init?
00:59:25 <alise_> coppro: Yes, but I'm writing init.
00:59:57 <pikhq> Login is not at all handled by init.
01:00:05 <coppro> I think that it's exit code
01:00:18 <pikhq> Nor is terminal management.
01:00:44 <pikhq> Init calls getty on the terminals with an option telling getty to run /bin/login.
01:00:47 <coppro> init shuts everything down, then returns a status code telling the kernel what to do
01:01:17 <pikhq> Literally *all* init needs to do is be able to spawn processes and stop processes for shutdown.
01:01:44 <alise_> if (dosync) {
01:01:44 <alise_> sync();
01:01:44 <alise_> sleep(1);
01:01:44 <alise_> sync();
01:01:44 <alise_> sleep(1);
01:01:45 <alise_> sync();
01:01:46 <Ilari> alise_: There is system call (IIRC, sys_reboot) that does reboot/shutdown/poweroff... It has two magic values it requires.
01:01:46 <alise_> sleep(1);
01:01:48 <alise_> }
01:01:50 <alise_> THERE CAN NEVER BE ENOUGH SYNCING.
01:02:04 <alise_> Okay, so coppro says the kernel responds to init's return value; pikhq says it just panics if you do that; and Ilari says there is a system call to do it.
01:02:25 <alise_> /* turn off special C-A-D handling */
01:02:25 <alise_> reboot(0xfee1dead, 672274793, 0xCDEF0123);
01:02:25 <alise_> /* try to kill all 'dem nasty processes off */
01:02:25 <alise_> kill(-1, SIGTSTP);
01:02:25 <alise_> kill(-1, SIGSTOP);
01:02:26 <alise_> kill(0, SIGSTOP);
01:02:28 <alise_> Haha what.
01:02:41 <alise_> NAME
01:02:42 <alise_> reboot - reboot or enable/disable Ctrl-Alt-Del
01:02:44 <alise_> Okay, that's a nice system call.
01:02:47 <Sgeo_> Hm.
01:03:00 <Sgeo_> There are Computer Forensics classes in the Criminal Justice major
01:03:40 <alise_> pikhq: Are you sure that exit(0) doesn't halt the ysstem in Linux?
01:03:57 <Ilari> If PID1 exits, the system will crash.
01:04:25 <alise_> But init is PID1.
01:04:28 <pikhq> Yes.
01:04:37 <pikhq> If PID1 exits, the system will crash.
01:04:46 <pikhq> kill -9 1 is an instant kernel panic on Linux.
01:04:52 <alise_> But how can you crash it from inside init then??
01:04:55 <alise_> Kill YOURSELF?
01:05:32 <Ilari> It isn't. PID1 is immune from SIGKILL (at least in new enough kernels).
01:05:53 <alise_> So how does init induce a kernel panic, then?
01:06:00 <alise_> Halting is exit(0), rebooting is using the reboot system call.
01:06:07 <pikhq> Hmm.
01:06:10 <Ilari> exit(0) panics too.
01:06:54 <alise_> This system call will fail (with EINVAL) unless magic equals
01:06:55 <alise_> LINUX_REBOOT_MAGIC1 (that is, 0xfee1dead) and magic2 equals
01:06:55 <alise_> LINUX_REBOOT_MAGIC2 (that is, 672274793). However, since 2.1.17 also
01:06:55 <alise_> LINUX_REBOOT_MAGIC2A (that is, 85072278) and since 2.1.97 also
01:06:55 <alise_> LINUX_REBOOT_MAGIC2B (that is, 369367448) and since 2.5.71 also
01:06:55 <alise_> LINUX_REBOOT_MAGIC2C (that is, 537993216) are permitted as value for
01:06:57 <alise_> magic2. (The hexadecimal values of these constants are meaningful.)
01:06:59 <alise_> The cmd argument can have the following values:
01:07:11 <alise_> SO WHY DO THESE ARGUMENTS EXIST
01:07:14 <Sgeo_> exit panics???
01:07:45 <pikhq> HOW DOES THAT MAKE SENSE LINUX
01:07:51 <Ilari> PID1 is also immune to ptrace and all non-hardware signals that would cause immediate process end (maybe even to all non-hardware signals that don't have handlers).
01:07:59 <CakeProphet> I've never really taken the time to attempt to learn anything about the linux kernel.
01:08:03 <CakeProphet> it looks like a monster.
01:08:04 <pikhq> Ilari: sudo kill -9 1
01:08:05 <uorygl> In case you're making random system calls, perhaps? :P
01:08:06 <pikhq> Try it.
01:08:12 <Ilari> pikhq: I have.
01:08:17 <alise_> LINUX_REBOOT_CMD_HALT
01:08:17 <alise_> (RB_HALT_SYSTEM, 0xcdef0123; since 1.1.76). The message "System
01:08:17 <alise_> halted." is printed, and the system is halted. Control is given
01:08:17 <alise_> to the ROM monitor, if there is one. If not preceded by a
01:08:17 <alise_> sync(2), data will be lost.
01:08:18 <uorygl> iTunes is also immune to ptrace!
01:08:19 <alise_> aha
01:09:25 <alise_> pikhq: Oh; RESTART is not REBOOT.
01:09:30 <alise_> So how does one induce a reBOOT?
01:09:51 <Ilari> alise_: That system call has reboot, halt and poweroff.
01:10:02 <alise_> LINUX_REBOOT_CMD_RESTART
01:10:03 <alise_> (RB_AUTOBOOT, 0x1234567). The message "Restarting system." is
01:10:03 <alise_> printed, and a default restart is performed immediately. If not
01:10:03 <alise_> preceded by a sync(2), data will be lost.
01:10:05 <alise_> Restarting; not reooting.
01:10:11 <alise_> *rebooting
01:10:16 <Ilari> alise_: It is reboot.
01:10:24 <alise_> LINUX_REBOOT_CMD_RESTART2
01:10:24 <alise_> (0xa1b2c3d4; since 2.1.30). The message "Restarting system with
01:10:24 <alise_> command '%s'" is printed, and a restart (using the command
01:10:24 <alise_> string given in arg) is performed immediately. If not preceded
01:10:24 <alise_> by a sync(2), data will be lost.
01:10:28 <alise_> How does it restart with a command, then?
01:11:04 <Ilari> IIRC, restarting with command is not supported on x86/x64 on stock kernels (or at least wasn't supported).
01:11:21 <alise_> So, does syncing multiple times help anything?
01:12:34 <pikhq> No.
01:13:17 <pikhq> If you've got all other processes stopped (as you should when shutting down), sync(2) will flush the entirety of the write buffers to disk, and then nothing is getting added.
01:13:18 -!- augur has quit (Remote host closed the connection).
01:13:51 <alise_> void rampage(void)
01:13:51 <alise_> {
01:13:51 <alise_> kill(-1, SIGTERM);
01:13:51 <alise_> sleep(MERCY_TIME);
01:13:51 <alise_> kill(-1, SIGKILL);
01:13:51 <alise_> kill(0, SIGKILL);
01:13:53 <alise_> }
01:13:55 <alise_> MWAHAHAHA!
01:14:00 -!- augur has joined.
01:16:30 <CakeProphet> hmmm... so Map and Set in Haskell are implemented with binary trees?
01:16:37 <alise_> yes
01:17:01 <alise_> Hmm... stay_calm() doesn't really do that. freakout(), perhaps.
01:17:01 <CakeProphet> hmmm... I've never considered how I would implement such a thing. I always go with the hash table implementation for such things.
01:17:23 <alise_> Making one of my functions become execl_or_freak.
01:17:32 <alise_> CakeProphet: A purely functional hash table. What a delightfully ridiculous idea.
01:17:53 <CakeProphet> ha. It allocates all of that memory so it can be freed and allocated again.
01:19:36 <CakeProphet> alise_: hmmm, I can see sets, but how would you do maps that way?
01:20:22 <alise_> Easily. :P
01:20:52 <alise_> pikhq: init doesn't need to getty to start a shell, right?
01:20:56 <alise_> Since it already has a tty.
01:22:17 <pikhq> init does not have a tty.
01:22:20 <pikhq> It has /dev/console.
01:22:24 <alise_> Well, true.
01:22:33 <pikhq> But, yes, you can start a shell from this.
01:22:33 <alise_> But I can printf to it and so can /bin/sh, so nyah. :P
01:22:46 <alise_> pikhq: If there's no /bin/sh, should I prompt for a command? ...Nah. If there's no /bin/sh you're fucked.
01:22:55 <pikhq> If there's no /bin/sh you're fucked.
01:22:59 <alise_> ... it doesn't matter if it's a login shell, does it :P
01:23:07 <pikhq> Moot point.
01:23:29 <alise_> if (execl("/bin/sh", NULL) == -1) {
01:23:29 <alise_> perror("/bin/sh");
01:23:29 <alise_> printf("\nI am so, so sorry.\n");
01:23:29 <alise_> exit(1);
01:23:29 <alise_> }
01:23:41 <pikhq> Pretty much.
01:28:17 <Gregor> That message is too polite.
01:28:26 <Gregor> It should be fprintf(stderr, "\nHa, you are SO fucked.\n");
01:29:39 <CakeProphet> I wonder why they didn't just make map and fmap the same function.
01:31:42 <pikhq> The Prelude is a bit... Poorly thought out in places.
01:31:47 <pikhq> That is one of those places.
01:31:52 <alise_> http://pastie.org/1011921.txt?key=peblziys9iykh1o5icpw
01:32:01 <alise_> Here is a program that I have neither proven correct nor even tested.
01:32:08 <alise_> I doubt it even compiles. But it is a start.
01:32:25 <alise_> Gregor: Yeah but I wished them good luck before!
01:32:29 <alise_> Hmm, what happens if you exit the shell...
01:32:33 <alise_> I guess I'll start it again in a loop.
01:33:04 <CakeProphet> hmmm... is there a function somewhere in Haskell:
01:33:14 <CakeProphet> flipAround :: Either a b -> Either b a
01:33:32 <alise_> Flabbergasting; it compiles.
01:33:47 <alise_> Well, close enough.
01:34:18 <alise_> Oh, I neglected to specify argv[0].
01:34:18 -!- Oranjer has joined.
01:34:36 <alise_> pikhq: what do you think of this structure:
01:34:44 <alise_> /etc/init.{start,stop} which call upon /etc/init.d/*.{start,stop}?
01:34:56 <pikhq> CakeProphet: flipAround (Either a b) = Either b a
01:34:59 <pikhq> Does now.
01:35:10 <pikhq> alise_: Seems reasonable.
01:36:08 <CakeProphet> pikhq: ha, not quite. But yeah, it is trivial.
01:36:24 <CakeProphet> I was wondering because the semantics of fmap only applies f to Right values
01:36:39 <CakeProphet> so I figured a function to swap left and right would be handy.
01:36:52 <CakeProphet> for... who knows.
01:36:55 <pikhq> Whaddya mean, "not quite"? That *is the full function*.
01:37:08 <CakeProphet> Either isn't a constructor for Either
01:37:13 <pikhq> Oh, right.
01:37:15 <pikhq> XD
01:37:17 <CakeProphet> :P
01:37:33 <CakeProphet> but it would be similar to that.
01:37:37 <CakeProphet> it would just match on left/right
01:37:40 <pikhq> flipAround (Left x) = Right x;flipAround (Right x) = Left x
01:38:44 <CakeProphet> Haskell is so terse. The same code, complete with generics, in Java would be immense.
01:39:08 <alise_> LINUX_REBOOT_MAGIC2 = 672274793 = 0x28121969 = 28/12/1969 = Linus' birthdate
01:39:44 <uorygl> Yeah, those are all dates.
01:40:00 <alise_> It's an intentional easter egg.
01:40:07 <pikhq> *Ah*.
01:40:16 <alise_> #define CMD_HALT 0xcdef0123
01:40:16 <alise_> #define CMD_REBOOT 0x1234567
01:40:21 <alise_> ...whereas these, on the other hand, are just ridiculous.
01:40:49 <pikhq> And 2A,B,C are probably his children?
01:41:22 <alise_> Ah, I guess so.
01:41:25 <CakeProphet> I remember trying to explain Either to a friend of mine who has only ever touched C++
01:41:28 <alise_> /* Under glibc some of the constants involved have gotten
01:41:28 <alise_> symbolic names RB_*, and the library call is a 1-argument
01:41:28 <alise_> wrapper around the 3-argument system call: */
01:41:31 <pikhq> Yup, has 3 daughters.
01:41:35 <pikhq> Would make sense.
01:41:37 <alise_> Okay, time to figure out how to get the system call.
01:41:43 <CakeProphet> actually, replace "Either" in that sentence with "anything in Haskell"
01:41:46 <alise_> (Must! Eliminate! glibc! Dependencies!)
01:42:15 <CakeProphet> This is your brain
01:42:20 <pikhq> CakeProphet: Just about everything is more terse, yes.
01:42:21 <CakeProphet> this is your brain on glibc
01:42:32 <pikhq> "Wait, you can just write the comment and that's code? Whoa."
01:43:02 <CakeProphet> ....wait, you can?
01:43:15 <CakeProphet> What are you referring to.
01:43:27 <pikhq> Haskell code sometimes looks like the comments for more complicated code.
01:43:37 <pikhq> For instance, that flipAround function.
01:43:41 <uorygl> It's neat when people respond to an "Is that really true?" question with the same question.
01:44:03 <CakeProphet> pikhq: ah. gotcha
01:44:29 <CakeProphet> so
01:44:50 <alise_> [ehird@ping init]$ gcc -Wall -Wextra -Os init.c -o init
01:44:51 <alise_> Hells yeah.
01:44:57 <alise_> ...running this as root would be a bad idea, yeah?
01:44:59 <CakeProphet> what are some languages with interesting pattern matching semantics? I am looking to study pattern matching in existing languages so that I possibly develop the idea further, or at least find a preferred approach.
01:45:17 <CakeProphet> alise_: nah, should be fine. Give it a whirl.
01:45:24 <CakeProphet> it's just code.
01:45:28 <CakeProphet> what can it do?
01:45:37 <alise_> CakeProphet: Code that can reboot the system.
01:45:45 <alise_> And kill every process in the ... process.
01:45:51 <CakeProphet> oh no. tragic.
01:45:58 <alise_> Fine, fine.
01:46:01 <CakeProphet> it'll be like a Windows machine.
01:46:28 <alise_> [ehird@ping init]$ wc -c init
01:46:29 <alise_> 6064 init
01:46:30 <alise_> (Post-strip.)
01:46:32 <alise_> Not bad, for gcc.
01:46:41 <alise_> *glibc
01:46:42 <alise_> OTOH, a dynamically linked init is the stupidest fucking idea I've ever heard.
01:46:50 <alise_> /sbin/init: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.16, stripped
01:46:51 <alise_> *gawp*
01:46:53 <alise_> I was joking...
01:47:05 <alise_> [ehird@ping init]$ wc -c init
01:47:06 <alise_> 599200 init
01:47:06 <alise_> *groan*
01:47:16 <alise_> Oh well, nice knowing you guys
01:47:23 <CakeProphet> man you need to tell that init to shut up
01:47:25 <alise_> [ehird@ping init]$ sudo ./init
01:47:25 <alise_> Password:
01:47:25 <alise_> /etc/init.start: No such file or directory
01:47:25 <alise_> /etc/init.start exited with status code 1
01:47:25 <alise_> Something terribly bad has happened. I'm going to try and start an
01:47:26 <alise_> emergency recovery shell... good luck.
01:47:28 <alise_> [root@ping init]#
01:47:32 <alise_> pikhq: I have created the world's first userspace init.
01:47:56 <Gregor> What ... a great idea?
01:48:25 <alise_> OH GOD EVERYTHING IS BROKEN
01:48:28 <CakeProphet> I'm wondering how you could create pattern matching constructs that aren't strictly data constructors
01:49:22 <alise_> I just forkbombedmyelf
01:49:33 <alise_> HALP11
01:49:40 <CakeProphet> quick
01:49:43 <CakeProphet> alt+F4
01:49:44 <CakeProphet> will fix it.
01:51:59 -!- augur has quit (Ping timeout: 265 seconds).
01:52:08 -!- alise_ has quit (Read error: Connection reset by peer).
01:52:45 -!- augur has joined.
01:52:59 <CakeProphet> perhaps I need a less computer-saavy audience for my trick... especially an audience that isn't doing crazy things with their machine and thus doesn't have alt+f4
01:53:09 <CakeProphet> Facebook!
01:53:16 <CakeProphet> "Dude I found the dislike button..."
01:54:00 -!- alise has joined.
01:54:01 <alise> init.c:18:1: warning: ‘noreturn’ function does return
01:54:04 <alise> No... it really doesn't
01:54:09 <alise> if (execl("/bin/sh", "sh", NULL) == -1) {
01:54:09 <alise> perror("/bin/sh");
01:54:09 <alise> printf("\nI am so, so sorry.\n");
01:54:09 <alise> exit(1);
01:54:09 <alise> }
01:54:10 <alise> }
01:54:13 <alise> That never terminates. Ever.
01:54:18 <alise> Er, never returns, rather.
01:54:47 <pikhq> alise: GCC is really really retarded about its treatment of noreturn.
01:55:13 <alise> I only did it to stop it whining about another function :-)
01:55:16 <alise> int cmd;
01:55:17 <alise> switch (signal) {
01:55:17 <alise> case SIG_SHUTDOWN: cmd = CMD_POWER_OFF; break;
01:55:17 <alise> case SIG_REBOOT: cmd = CMD_RESTART; break;
01:55:17 <alise> default: printf("Bad signal passed to shutdown() -- how?!\n"); freak_out();
01:55:17 <alise> }
01:55:19 <pikhq> It seems to not realise that you are saying "NO THIS DOESN'T RETURN. AT ALL. I DON'T CARE WHAT YOUR FLOW ANALYSIS SAYS."
01:55:19 <alise> Complained about unset cmd.
01:55:36 <alise> I have a line of 81 characters. *rebel*
01:56:07 <uorygl> Ooh, I am *so* going to go to Finland just so I can have a surname of "Turrila".
01:56:30 <alise> init.c:49:2: warning: implicit declaration of function ‘kill’
01:56:41 <Gregor> uorygl: Going to a country does not automatically change your surname.
01:56:45 <alise> No... you see... "-std=c89" does not mean "Pretend I'm not on Linux".
01:56:52 <alise> Suck on a diiiick, gcc.
01:56:53 <uorygl> Yes, but I can change my surname after going to a country.
01:57:00 <uorygl> And it also provides a wonderful excuse for doing so.
01:57:02 <alise> uorygl: You could change it in your country too.
01:57:45 <uorygl> Yes, but... nobody in my country would understand what "Turrila" means. :P
01:58:53 <alise> pikhq: Pray tell, is there a gcc flag meaning "No GNU extensions, but also, turns out I /am/ on Linux actually"?
01:58:57 <alise> Gregor: Plof!
01:59:11 <Gregor> What about it?
01:59:28 <coppro> alise: why does -std=c89 make it pretend your not on linux?
01:59:37 <alise> coppro: *you're; and who knows.
01:59:44 <alise> turns out kill and sync aren't in the C89 standard. Astonishing.
01:59:46 <alise> Gregor: I dunno.
01:59:47 <coppro> no, I mean in what way
01:59:50 <coppro> oh
01:59:56 <Gregor> In what way does it make it pretend you're not on Linux?
01:59:59 <coppro> alise: what if the if condition is false? it will fall off
02:00:27 <alise> coppro: then execl succeeded
02:00:32 <alise> or are you not aware of the function of execl?
02:00:32 <CakeProphet> psh
02:00:38 <coppro> ah
02:00:38 <CakeProphet> I do all my system programming in Haskell.
02:00:40 <alise> in case you're not, note that it replaces the current process with an entirely new one.
02:00:50 <CakeProphet> recursive pointer arithmetic ftw
02:00:53 <alise> thus, there is very little chance of a function that successfully calls execl returning :P
02:01:00 -!- BeholdMyGlory has quit (Read error: Connection reset by peer).
02:01:35 -!- FireFly has quit (Quit: swatted to death).
02:02:06 <Gregor> alise: Is freak_out the function in question?
02:02:23 <Gregor> alise: And is it marked __attribute__((noreturn)) ?
02:02:28 <alise> Yes.
02:02:34 <Gregor> Well, then GCC sucks :P
02:02:43 <alise> http://pastie.org/1011940.txt?key=mhlrdd6el82e0co3qr7jbg
02:02:46 <alise> I concur.
02:03:36 <Gregor> alise: Incidentally, I'm in the midst of integrating a new GC into Plof :P
02:03:40 <Gregor> It's a PITA.
02:03:43 <Gregor> But it desperately needs it.
02:03:53 <alise> It's a good idea for init to avoid libc and use syscalls as much as possible, methinks...
02:04:07 * alise wonders how to explicitly override a libc function with a syscall
02:05:01 <alise> Where's return gone from PSL?
02:05:08 <alise> And has the thin/thick bullcrap been resolved yet?
02:05:40 <Gregor> wtf
02:05:47 <Gregor> That was resolved between version 2 and 3.
02:05:49 <Gregor> Like ... years ago?
02:05:49 <alise> 1.10 + "Files supported: %s\n"
02:05:50 <alise> 1.11 + "for i in %s; do ./gen $i > $i; done\n", supported, supported);
02:05:51 <alise> wut
02:05:56 <alise> Gregor: How was it resolved again? XD
02:06:19 <Gregor> Idonno, it's all different now. There are only functions.
02:06:42 <Gregor> It's not so much that it was resolved as that the entire question was sidestepped.
02:07:53 <Gregor> alise: Oh, and that snippet of bash code is because I'm too lazy to retype it every (rare) time that I need to update those generated files :P
02:09:34 <alise> Hmm, _syscallN(...) isn't expanding.
02:09:43 <alise> Why not.
02:09:53 <Gregor> It's lost its appetite.
02:10:16 <alise> Okay, because the include files no longer actually define it.
02:10:18 <alise> Lovely.
02:10:37 <Gregor> Probably need to #define _SOMETHING_SOURCE for it to include it.
02:10:38 <pikhq> alise: Plof now is partially lazy evaluating.
02:10:48 <pikhq> Thus entirely sidestepping thick/thin.
02:11:10 <alise> Gregor: No, quite literally:
02:11:11 <alise> http://linux.die.net/include/linux/unistd.h
02:11:12 <alise> http://linux.die.net/include/asm/unistd.h
02:11:13 <pikhq> This has been the semantics for Plof 3... Oh, since Plof 3 had a user language.
02:11:30 <alise> CONFORMING TO
02:11:30 <alise> The use of these macros is Linux-specific, and deprecated.
02:11:31 <alise> Suck my duck.
02:11:40 <alise> Starting around kernel 2.6.18, the _syscall macros were removed from
02:11:40 <alise> header files supplied to user space. Use syscall(2) instead. (Some
02:11:40 <alise> architectures, notably ia64, never provided the _syscall macros; on
02:11:40 <alise> those architectures, syscall(2) was always required.)
02:11:43 <alise> Suck my duuuuck.
02:11:57 <Gregor> alise: Wow ... that actually sucks a surprising amount.
02:12:09 <pikhq> asm/unistd.h should define the system call numbers. You'll need to manually implement the system call wrappers.
02:12:22 <alise> What the hell is wrong with a good ol' process that wants to be honest and use syscalls not shitty libc?
02:12:29 <alise> Who wants to depend on glibc, really? If they have a choice?
02:12:34 -!- augur has quit (Read error: Connection reset by peer).
02:13:05 -!- augur has joined.
02:13:38 <CakeProphet> alise: Hey, /depends/ on who you're talking about. ahahahaha.
02:13:39 <CakeProphet> so bad.
02:13:51 <alise> Plz die <3
02:14:07 <CakeProphet> you've been kill()ing too much
02:14:40 <Gregor> I think I'm going to go buy a cake.
02:14:41 <Gregor> Then eat it.
02:14:49 <Gregor> Just to imagine that I'm destroying you.
02:19:28 <alise> No, no, he's a prophet about cakes.
02:19:44 <alise> [ehird@ping init]$ sudo ./init
02:19:44 <alise> /etc/init.start: No such file or directory
02:19:44 <alise> /etc/init.start exited with status code 1
02:19:44 <alise> Something terribly bad has happened. I'm going to try and start an
02:19:44 <alise> emergency recovery shell... good luck.
02:19:45 <alise> [root@ping init]#
02:19:47 <alise> Still works! :P
02:20:04 <alise> 75-line init. Not bad if I do say so myself.
02:20:24 <alise> Now to create wildly incompatible shutdown(8) and reboot(8)s.
02:20:28 <Gregor> wc -c init
02:20:34 <alise> 6024.
02:20:39 <alise> After strip -s.
02:20:41 <Gregor> 'snot bad.
02:20:44 <alise> Dynamically linked, but then so is /sbin/init.
02:20:53 <alise> I plan to link it statically with uclibc or newlib in the actual distro.
02:22:35 <Gregor> THEN, make it run on Microsoft Xenix.
02:26:21 <alise> So. Declaring main as noreturn because it shuts down the system.
02:26:26 <alise> Terrible idea or ludicrous idea?
02:27:06 <alise> Uh oh; I'm about to pull a GNU echo.
02:28:33 <pikhq> Problem is that you can't declare main.
02:28:59 <coppro> yes you can
02:29:10 <coppro> at least, you ought to be able to if the compiler's doing its job
02:29:19 <pikhq> Not in hosted implementations?
02:30:03 <alise> pikhq: How would you suggest fooling GCC into thinking a noreturn function really does return when it does but gcc can't be convinced of this fact, with no effect on the generated code?
02:31:23 <pikhq> alise: The whole point of noreturn is to effect the generated code...
02:31:23 <alise> 33 var Bool = Object : [
02:31:23 <alise> 34 ifTrue = (x) { this }
02:31:24 <alise> 35 ifFalse = (x) { this }
02:31:24 <alise> 36 ]
02:31:29 <alise> Bool is a boolean that is neither true nor false.
02:31:32 <pikhq> Making it not emit code for exiting the function.
02:31:36 <alise> (This is one of the issues of prototypical languages.)
02:31:39 <alise> pikhq: Yes.
02:31:44 <alise> But gcc is warning that it does return.
02:31:49 <alise> How can I make it STFU?
02:31:58 <alise> So that it actually thinks it does not return.
02:31:59 <pikhq> Yes. The answer to that is BEAT GCC DEVS
02:32:02 <alise> *really does not return
02:32:10 <alise> pikhq: I don't want to disable the warning in case it's still generating exit code.
02:32:20 <pikhq> Because the whole *point* of such an attribute is to assure GCC that it doesn't return.
02:32:21 <alise> Perhaps an unreachable for (;;), but that would be put in the generated code!
02:32:25 <pikhq> It's still generated the exit code.
02:33:21 <CakeProphet> just hack the machine code... psh, you guys are just making it complicated with all of these abstractions.
02:33:24 <CakeProphet> :P
02:34:18 <alise> #include <stdlib.h>
02:34:19 <alise> #include <stdio.h>
02:34:19 <alise> #include <signal.h>
02:34:19 <alise> #include "init.h"
02:34:19 <alise> int main(void)
02:34:19 <alise> {
02:34:21 <alise> if (kill(1, SIG_SHUTDOWN) == -1) {
02:34:23 <alise> perror("kill");
02:34:25 <alise> return 1;
02:34:27 <alise> }
02:34:29 <alise> printf("Shutting down...\n");
02:34:31 <alise> return 0;
02:34:33 <alise> }
02:34:35 <alise> ^ 582 KiB statically linked to glibc.
02:34:52 <alise> Only one thought presents itself: WHY GOD WHY.
02:36:47 <olsner> I think it's due to linking with glibc
02:36:52 <alise> Indeed.
02:36:59 <alise> pikhq: does Linux require PAM?
02:37:03 <pikhq> No.
02:37:06 <alise> Yay.
02:37:12 <alise> Does ssh?
02:37:17 <pikhq> No.
02:37:28 <alise> So I can replace it with something sane such as a login(1) that does the ludicrously insane idea of, say, reading /etc/shadow and checking the password.
02:37:37 <alise> Gosh golly I am subverting modern technology
02:37:49 <pikhq> PAM is nothing more than an additional feature to allow further flexibility for login stuff.
02:37:57 <olsner> iirc that is exactly what you had before pam got enough traction
02:37:58 <pikhq> And, in fact, it's only in libc.
02:38:06 <alise> And waste stuff.
02:38:18 <pikhq> Every program that "uses" PAM is actually just using the libc login functions.
02:38:23 <alise> olsner: yeah; an awful lot of linux technology is just... pointless
02:38:25 <alise> such as HAL.
02:38:44 <pikhq> So, yeah. PAM is 100% optional.
02:38:57 <alise> When init(8) finds that a process has exited, it locates its utmp entry
02:38:57 <alise> by ut_pid, sets ut_type to DEAD_PROCESS, and clears ut_user, ut_host
02:38:57 <alise> and ut_time with null bytes.
02:38:58 <alise> Wow.
02:38:59 <pikhq> I'm pretty sure Gentoo gives you the option of just turning it off.
02:39:00 <alise> Is that necessary?
02:39:20 <alise> Q8: Root cannot do this without typing the user's password! Can I fix this?
02:39:20 <alise> Historically, root could do a number of things on behalf of a user without
02:39:20 <alise> having to bother with typing the user's password. Applications like
02:39:20 <alise> 'passwd', 'su' and 'chfn' would skip the "Enter user's password: " prompt
02:39:20 <alise> in such cases.
02:39:20 <alise> PAM places this behavior at the discretion of the System Administrator.
02:39:24 <alise> Yeah, because root can't already do everything.
02:42:19 <alise> Anyone brave and daring enough to try alise init v1?
02:43:22 <coppro> making root enter other users' passwords is dumb
02:43:30 <alise> indeed
02:43:30 <coppro> since it just encourages root changing them instead
02:43:57 <alise> -rwxr-xr-x 1 root root 36976 May 1 2009 /sbin/init
02:44:02 <alise> why can anyone else execute init?!
02:44:10 <coppro> O_o
02:44:19 <pikhq> When it's not pid 1, it acts as telinit.
02:44:22 <alise> guess nobody's ever heard of mode 744
02:44:28 <alise> pikhq: and?
02:44:30 <alise> you still need to be root.
02:44:38 <pikhq> Fair enough.
02:47:52 -!- MizardX- has joined.
02:48:34 <alise> pikhq: coppro: Gregor: I present alise init v1: http://filebin.ca/jxyhj/init.tar.gz
02:48:39 -!- MizardX has quit (Ping timeout: 240 seconds).
02:48:39 <alise> Note: Not actually tested. Hey, it compiles.
02:48:51 -!- MizardX- has changed nick to MizardX.
02:48:53 <CakeProphet> yo dawg we herd u liek root
02:48:55 <alise> And it's so simple there's no reason why it shouldn't work... plus it fails as it should in user mode.
02:49:23 <alise> tbh, I should probably adjust MERCY_TIME. 3 seconds isn't enough for the whole system to close down.
02:49:44 <CakeProphet> so we put root at your root so you can be root while you root
02:50:55 <CakeProphet> have you guys seen the new POSIX standard?
02:51:01 <alise> No. Thankfully.
02:51:04 <CakeProphet> there's a catastrophic_root_backdoor syscall
02:52:12 <alise> pikhq: as a sysadmin, how long do you like your inits to wait for the regular kills to go through before SIGKILLing EVERYTHING?
02:54:04 <pikhq> Few seconds, really. Most things should have been shut down by the shutdown scripts already.
02:54:11 <alise> True.
02:54:14 <alise> 3 seconds it is, then.
02:54:24 <pikhq> And the few things that wouldn't *should* shut down after SIGTERM right away.
02:54:26 <alise> pikhq: I take it you are currently migrating your system to alise init.
02:54:45 <pikhq> As far as I'm concerned, a program that doesn't respond to SIGTERM quickly is *broken*.
02:57:12 <CakeProphet> SIGNOREALLYGOAWAY
02:57:57 <pikhq> That's SIGKILL.
02:58:34 <alise> SIGCHAINSAW: removes the process from the process table immediately, so it will not be switched to again, and marks the memory that the code took up as free.
02:58:45 <alise> SIGKILL, at least, switches back to the process to let it commit suicide.
02:58:46 <alise> Mwahaha!
02:59:16 -!- oklopol has joined.
02:59:40 <Gregor> My vote goes for SIGCHAINSAWMASSACRE
03:00:41 <CakeProphet> I think I prefer the Erlang terminology on this one: SIGBRUTALKILL
03:00:52 <alise> <alise> SIGCHAINSAW: removes the process from the process table immediately, so it will not be switched to again, and marks the memory that the code took up as free.
03:00:58 <alise> I dare anyone to find a more final method of killing a process.
03:01:09 <alise> It just... it's better called SIGVAPORISE.
03:01:16 <alise> It never TOUCHES the process. The process just stops existing.
03:01:19 <CakeProphet> well...
03:01:47 <CakeProphet> there's always a hammer.
03:03:18 <alise> I take it you have all studied, with intense interest, the code to alise init v1.
03:03:21 <alise> No? Didn't think so. :P
03:04:49 -!- Mathnerd314 has quit (Ping timeout: 276 seconds).
03:05:03 <CakeProphet> some kind of portal time code!
03:05:07 <Sgeo_> My dad is insisting that the way to fix my sleep issues is to use an alarm clock
03:05:21 <pikhq> That doesn't help the going to bed bit.
03:06:02 <CakeProphet> I find taking a monster gravity bong hit put me to bed after about 2 hours...
03:06:03 <CakeProphet> but that's just me.
03:06:30 <CakeProphet> So maybe drugs are the answer.
03:07:51 -!- augur has quit (Ping timeout: 265 seconds).
03:08:00 <CakeProphet> I've actually fixed most of my sleeping problems now. I got some sleeping pill samples from my doctor and it only took a few before I was a on somewhat regular rhythm.
03:08:11 <CakeProphet> and I was bad off from normal schedules. Going to bed at 10 am and stuff.
03:08:17 <alise> Sgeo_: Your dad has been wrong about a great many things before, often extremely so.
03:08:33 <Sgeo_> He _is_ a doctor
03:09:14 <alise> No comment.
03:09:19 <CakeProphet> ha.
03:09:23 <Sgeo_> He does believe that my problem is that I'm sleeping at the wrong time and too much, rather than that I haven't been sleeping enough
03:09:34 <Sgeo_> He's not exactly aware of the nights I've stayed up on the computer
03:09:55 <CakeProphet> why on earth would you stay on your computer? Don't you have a desk?
03:10:05 <alise> Let's just put it this way... some people just can't maintain a normal sleep pattern without melatonin or similar.
03:10:08 <Sgeo_> It's in my room, and I use a laptop
03:10:09 * CakeProphet apologizes, for he is in a word-twisting mood.
03:10:11 <alise> You are clearly one of these people.
03:10:18 <alise> You could try valiantly to adjust to a normal sleep schedule...
03:10:21 <alise> Or just take melatonin and be done with it.
03:10:25 <Sgeo_> alise, I have been able to force myself to put the computer away
03:10:34 <alise> Yes. Now do that every day. No slip ups.
03:10:39 <alise> Have fun.
03:10:50 <Sgeo_> And he's not arguing against melatonin. He's arguing for waking me up 7 hours after I go to sleep
03:11:06 <CakeProphet> I've read in many trustworthy magazines that cocaine is very good for well-rested sleep.
03:11:22 <Sgeo_> Also, I can slip up with melatonin fairly easily, by delaying when I take it
03:12:26 <alise> <Sgeo_> And he's not arguing against melatonin. He's arguing for waking me up 7 hours after I go to sleep
03:12:37 <alise> Teenagers and slightly-after-teenagers need over 8 hours of sleep.
03:12:44 <alise> So right off the bat, he is wrong.
03:12:51 <Sgeo_> alise, find a credible source that I can show him
03:13:03 <alise> Sgeo_: Why? Just don't take his advice.
03:13:18 <alise> Sgeo_: wrt delaying melatonin -- have you observed this? Almost everyone is able to make good long-term decisions about when to sleep, just not in the short term.
03:13:20 <Sgeo_> Because I'm fully capable of avoiding him waking me up in the mornings.
03:13:21 <alise> Which is why melatonin is useful.
03:13:37 <alise> Well, yeah, I'm assuming he won't be an asshole and keep doing it if you request he stops.
03:13:41 <Sgeo_> I'm not particuarly willing to take melatonin before I'm ready to be asleep
03:13:54 <alise> Sgeo_: It takes half an hour to kick in.
03:14:01 <Sgeo_> Not an hour?
03:14:07 <alise> Well, I forget exactly.
03:14:07 <pikhq> aAnd 7 hours of sleep is actually too little for a *lot* of the population.
03:14:22 <alise> The whole point is that you make a reasoned decision about when to go to sleep, then enact it before the in-the-moment irrationality can kick in.
03:14:33 <alise> Then you WILL fall asleep in an hour. Problem solved.
03:14:36 <pikhq> 7 hours for me, for instance, is the *minimum* for actually being conscious for the remainder of the day.
03:14:43 <pikhq> The following day, that is.
03:14:55 <pikhq> Less than that, and the best I can do is half-zombie after a few hours.
03:15:59 <alise> So, using alise init yet? :-P
03:16:49 <CakeProphet> alise: we should have alise init up on every system on the grid by tomorrow
03:16:56 <alise> \o/
03:16:58 <CakeProphet> oh, by the way, I'm CEO of Google.
03:17:56 <alise> You know, I haven't tested this...
03:18:01 <alise> Oh what the hell, pay me for 24/7 support.
03:18:43 <CakeProphet> haha
03:18:54 <CakeProphet> buggier software = more money from support
03:18:56 <CakeProphet> brilliant.
03:20:27 <alise> Gregor: What's Plof NFI?
03:20:30 <alise> No Fucking Idea?
03:20:44 <Gregor> Native Function Interface
03:21:09 <CakeProphet> Nautical Fishkeepers Initiative
03:21:23 <alise> Nachos Fornicate Intelligently
03:22:30 <Gregor> e.g. CNFI allows Plof to call C functions.
03:22:48 <Gregor> If there were a Java implementation of Plof, it would have a JNFI. And a JavaScript implementation would have a JSNFI.
03:23:03 <alise> Calcium Nachos Fornicate Intelligently
03:23:18 <alise> Jagged Narcotics Fashionably Inebriate
03:23:36 <alise> Jolly Sapphire Naturally Fuels Irreligion
03:23:47 <CakeProphet> ...rofl.
03:23:53 <CakeProphet> naturally.
03:25:04 <alise> Gregor: SUPPLY MORE ACRONYMS
03:25:20 <CakeProphet> BASIC
03:25:26 <Gregor> PSL is the bytecode. PRP is the parsing/compiling framework. PUL is the user language.
03:25:57 <pikhq> Oh, and we use PCRE.
03:26:48 <CakeProphet> all of our acronyms are standardized under the AANI
03:27:13 <CakeProphet> well, in version 1
03:27:17 <CakeProphet> in version 2 we use ANSI
03:27:31 <CakeProphet> acronym naming and standardization interface
03:27:33 <CakeProphet> :)
03:27:50 <Gregor> ... "interface"
03:27:54 <Gregor> Yeah, that makes a lot of sense.
03:28:28 <alise> Gregor: they must be NFI acronyms.
03:28:42 <Gregor> Well, CNFI is the only implemented NFI.
03:28:43 <oklopol> pikhq: for me 10 seems to be the optimal amt
03:28:47 <alise> Make up new NFIs.
03:29:08 <Gregor> So, to use your imagination, take any language or system you feel like, tack it on to "NFI", then make some retarded expansion of it.
03:29:13 <Gregor> That should keep you entertained for hours.
03:29:20 <CakeProphet> SFRGG
03:29:23 <oklopol> sleep ->
03:29:28 <CakeProphet> Guess what it means anise
03:29:54 <CakeProphet> well
03:29:57 <CakeProphet> SfRoGG
03:30:17 -!- wareya has quit (Ping timeout: 260 seconds).
03:30:56 <alise> Gracenotes: PNFI (the P stands for Plof)
03:31:10 <alise> Peeing Negros Fail Ignorantly
03:32:52 <CakeProphet> rofl
03:33:01 -!- augur has joined.
03:33:03 <alise> Gregor: cplof is boring
03:33:23 <Gregor> Okidoke. I certainly don't intend for it to be exciting.
03:35:18 <pikhq> PNFI.
03:35:22 * CakeProphet writes a language with a compiler that can compile to all languages ever made.
03:35:24 <pikhq> Plof Native Function Interface.
03:35:27 <pikhq> >:D
03:35:32 <Gregor> With apologies for flooding, as this paste only has the desired impact if I just paste it right in:
03:35:34 <Gregor> :
03:35:34 <Gregor> # @(#) true.sh 1.1 86/12/18
03:35:34 <Gregor> #
03:35:34 <Gregor> # Copyright (C) The Santa Cruz Operation, 1985.
03:35:34 <Gregor> # This Module contains Proprietary Information of
03:35:35 <Gregor> # The Santa Cruz Operation, Microsoft Corporation
03:35:37 <Gregor> # and AT&T, and should be treated as Confidential.
03:35:39 <Gregor> #
03:35:41 <Gregor> #
03:35:45 <Gregor> #*** true -- do nothing, successfully
03:35:47 <Gregor> #
03:35:49 <Gregor> # true
03:35:51 <Gregor> exit 0
03:36:11 <alise> Old.
03:36:19 <Gregor> CONFIDENTIAL
03:36:23 <alise> iirc sun or some at&t thing has an even longer copyright thing
03:36:35 <alise> Gregor: oh so /that's/ the copied linux code :P
03:36:41 <Gregor> Yup :P
03:37:10 <CakeProphet> Little boxes on the hillside. Little boxes made of ticky tacky..
03:37:43 <pikhq> alise: Also some enums.
03:38:13 <alise> (Note that the Santa Cruz Operation weren't evil.)
03:38:39 <alise> (Nor were Caldera, who bought the Santa Cruz Operation; but when Caldera-who-bought-the-Santa-Cruz-Operation changed their name to The SCO Group and got a new SCO, they became evil.)
03:39:03 <Sgeo_> I thought Santa Cruz was some sound card company
03:39:04 <Gregor> Is getting a new SCO like getting a new groove?
03:39:05 -!- zzo38 has joined.
03:40:52 <alise> hi zzo38
03:42:00 <alise> pikhq: Do you have a uclibc or newlib toolchain?
03:42:02 <zzo38> I also think Linux would need some signal like the SIGCHAINSAW or whatever described in the log for this channel, but that is long name, someone said SIGVAPORISE that is long, perhaps SIGVAP for short? (In addition, init is not immune)
03:42:28 -!- wareya has joined.
03:42:36 <alise> zzo38: How on earth do you just REMOVE INIT from the process list and free its memory?
03:42:39 <alise> How does that even...
03:42:58 <pikhq> alise: ATM, I don't have a toolchain.
03:43:11 <alise> pikhq: ...at all?
03:43:18 <pikhq> Not a build one.
03:44:23 <alise> :P
03:44:25 <alise> :|
03:45:47 -!- leBMD has joined.
03:46:02 <leBMD> hallo, esolangers
03:46:48 <zzo38> Removing the init process might mess up everything
03:46:53 <Sgeo_> Do you have a way to download a prebuilt one?
03:47:17 <zzo38> But this way it would allow removing init anyways using a signal for destroy everything like that
03:51:00 <alise> zzo38: If init were to actually return the kernel would panic.
03:51:06 <alise> But if it were simply never switched to...
03:51:12 <alise> pikhq: nothing would happen right?
03:51:17 <alise> life would go on unless you tried to use init's functionality
03:53:21 <alise> Note: alise init v1 has a serious bug, it exits almost immediately after running /etc/init.start >_>
03:53:26 <coppro> lol
03:54:03 <Sgeo_> Causing a panic?
03:54:08 * Sgeo_ panics at the kernel panic
03:56:40 <coppro> rargh 3 fiery bulblaxes :(
03:59:50 <Sgeo_> I signed up for one of those "Give us your email address and we'll give you the secrets of the universe" things
04:00:17 <Sgeo_> I _think_ the content [to an approximation] is all available on the blog, not sure
04:00:32 <alise> Why?
04:01:08 <Sgeo_> To see what this nutjob's saying
04:01:45 <Sgeo_> He talks about "hyperevolution" and religion in science
04:02:13 <Sgeo_> The first email is about how since "DNA is a language", and "all languages are created by minds", that proves God exists
04:02:20 <Sgeo_> http://www.cosmicfingerprints.com/blog/prove-god-exists/
04:03:44 <alise> I hope you used a + email.
04:03:46 <alise> Oh, that guy.
04:04:04 <coppro> a + email?
04:04:24 <alise> foo+x@gmail.com ==> foo@gmail.com, but To: foo+x@gmail.com
04:04:37 <alise> i.e., useful for identifying and eliminating spam from shady sources by giving them a you+spammers@gmail.com address.
04:05:04 <Sgeo_> I made a separate gmail account
04:05:14 -!- Oranjer has left (?).
04:05:25 <Sgeo_> It's theoretically possible that spammers have caught on to that trick
04:05:30 <coppro> way to violate the ToS
04:05:35 -!- augur has quit (Remote host closed the connection).
04:05:45 -!- augur has joined.
04:05:46 <Sgeo_> o.O?
04:05:48 <coppro> my plan is to get a personal domain and just use prefixes
04:06:31 <myndzi> i've done that for like 10 years
04:06:35 <myndzi> forward *@domain
04:06:39 <myndzi> sign up with site.com@domain
04:06:40 <alise> coppro: violate which ToS?
04:06:43 <alise> it's a gmail feature!
04:07:02 <alise> oh, you mean two gmail accounts
04:07:05 -!- leBMD has quit (Quit: H.P.Lovecraft or something, anyone?).
04:07:07 <alise> also, spammers haven't caught on to it, i can guarantee it
04:07:11 <alise> or rather they know about it
04:07:13 <alise> they just don't give a shit
04:07:20 <alise> same reason "x AT y DOT z" works
04:07:27 <alise> the kind of people who do that have good spam filters anyway.
04:07:47 <alise> coppro: the problem with you.tld is the main email
04:07:54 <alise> you@you.tld looks stupid, me@you.tld looks ugly, etc.
04:07:57 <Sgeo_> But surely it takes two seconds to write something that strips the +whatever
04:08:24 <coppro> alise: personal@you.tld
04:09:01 <myndzi> the personal domain doesn't have to be your name/handle
04:09:28 <alise> coppro: personal@?
04:09:33 <alise> maybe if you're the ceo of google
04:09:35 <Sgeo_> Is 2 gmail accounts really against the ToS?
04:10:07 <alise> "Hey if you get any news on that project let me know, my email is personal@drearlgreyphd.name."
04:10:35 <Sgeo_> Best email address: n@ai
04:10:56 <pikhq> alise: How's about pikhq@josiahworcester.name ?
04:10:57 <pikhq> :P
04:11:14 <alise> Sgeo_: agreed
04:12:14 <Sgeo_> How much should I charge to tutor someone in C#?
04:12:20 <alise> Sgeo_: you should not.
04:12:32 <coppro> you should have to pay them
04:12:41 <Sgeo_> Because it's C#?
04:12:43 <alise> Firstly, because not many people are good tutors; secondly, because teaching someone C# borders on evil; thirdly, because you waste enough of your time already!
04:12:50 <alise> But the first point is important.
04:12:57 <alise> You can know something very well but be terrible at teaching it.
04:14:36 <Sgeo_> I fail to see how C# is worse than Java
04:14:42 <alise> It's not.
04:14:58 <alise> Which is kind of like saying you fail to see how being mugged is worse than being murdered.
04:15:07 <alise> See you guys tomorrow. I do believe I may end up writing a login(8)...
04:15:14 <alise> Oh, and pikhq: it's your job to remind me to check out mingetty.
04:15:17 <alise> Farewell.
04:15:20 -!- alise has quit (Quit: Leaving).
04:19:05 -!- zzo38 has quit (Remote host closed the connection).
04:22:10 -!- CakeProphet has quit (Ping timeout: 240 seconds).
04:23:13 <pikhq> My god "Prelude" is relaxing.
04:23:18 <pikhq> Just. My god.
04:25:29 <wareya> So I put a berakpoint on this code in am emulator and it's not breaking even though I know the code is excecuting
04:25:38 <wareya> breakpoint*
04:26:39 <Gregor> pikhq: And named in a uniquely-identifiable way, too.
04:28:05 <pikhq> Gregor: Okay, fine, I'll give you detail.
04:28:35 <pikhq> "Prelude", by Nobuo Uematsu for Final Fantasy.
04:29:19 <pikhq> In particular, the arrangement for the 2006 "Voices" concert...
04:34:54 <coppro> yes it is
04:35:19 <pikhq> So I'm an Uematsu fan. :P
04:35:45 <myndzi> have you been to any of the distant worlds concerts?
04:35:49 <myndzi> i think that's what they called it at least
04:35:54 <pikhq> No, I haven't.
04:36:00 <myndzi> they had one here in seattle with the seattle symphony that i went to
04:36:00 <pikhq> Though I would love to.
04:36:01 <myndzi> it was fun
04:36:12 <myndzi> but to be honest, they didn't play any songs i am familiar with anymore
04:36:17 <myndzi> lots of newer stuff
04:36:40 <pikhq> ... "Newer stuff"? When did you last play Final Fantasy, pray tell?
04:36:43 <myndzi> they got to the end and they hadn't played one winged angel, i was a bit surprised
04:36:50 <pikhq> (latest game)
04:36:51 <myndzi> but they brought it out for an encore lol
04:36:58 <myndzi> haha, last one i played through was 7
04:36:59 <myndzi> :P
04:37:07 <pikhq> You must play 10.
04:37:10 <pikhq> Must must must.
04:37:12 <myndzi> most of the songs i know well are from 6 and 7
04:37:13 <myndzi> and 4
04:37:46 <pikhq> It is my favorite in the series.
04:38:10 <myndzi> which one is that again
04:38:20 <pikhq> The first one for the Playstation 2.
04:38:23 <myndzi> oh right, teh one with the spinoff with dressup girls
04:38:24 <myndzi> ;p
04:38:41 <myndzi> i don't own any consoles really
04:38:53 <pikhq> You may consider the spinoff in the same light as the Star Wars prequels and the Matrix sequels.
04:38:58 <pikhq> (that is: DON'T DO IT!)
04:39:27 <pikhq> FFXII was enjoyable story-wise. But it hardly counts as a game.
04:40:17 <pikhq> Hmm. FF9 was fun... FF8 is much-liked by people other than I; I mostly remember it for the easiest way to beat it being a min-level run...
04:40:20 <myndzi> oh, i know, i just associated the two a little
04:40:25 <myndzi> i can remember a little about ff8 and 9
04:40:38 <pikhq> FFX was just plain awesome.
04:41:01 <myndzi> i have a bad history with rpgs lol
04:41:09 <myndzi> i played a bunch of them on emulators, but didn't finish any of them
04:41:25 <pikhq> I doubt you'll want to not finish FFX.
04:41:27 <myndzi> (to be fair, part of the reason was that freaking silicon image sata bug that corrupted my data crashing the emulators)
04:41:44 <myndzi> i mean
04:41:49 <myndzi> silicon integrated systems
04:41:51 <myndzi> i knew it was SI something
04:41:52 <myndzi> :P
04:42:00 <pikhq> Well. [boss whose name would be a spoiler, but you will know who I'm talking about because he's a bitch] is, well. A complete bitch.
04:42:11 <myndzi> hehe
04:42:17 -!- GreaseMonkey has joined.
04:42:21 <myndzi> kefka is my favorite baddie
04:42:21 <pikhq> Both plot-wise and gameplay-wise.
04:42:46 <myndzi> ohay, the alignment of these statues keeps the world together you say? PUSH!
04:42:47 <myndzi> :P
04:43:07 <pikhq> He intends to kill everyone to save them from their suffering.
04:43:11 <pikhq> Yes, really.
04:44:13 <myndzi> smart dude
04:44:14 <myndzi> :P
04:44:19 <AnMaster> <myndzi> ohay, the alignment of these statues keeps the world together you say? PUSH! <-- I just got back from playing nwn. The word alignment confused me at first XD
04:44:30 <coppro> I love Ballad of the Windfish...
04:44:38 <myndzi> ha
04:44:39 <AnMaster> coppro, zelda?
04:45:01 * AnMaster tries to remember
04:45:14 <AnMaster> coppro, links awakening?
04:45:22 <pikhq> I'm quite partial to "To Zanarkand" (zanakaando ni te)...
04:45:31 <AnMaster> pikhq, ??
04:45:35 <AnMaster> where is that
04:45:38 <pikhq> FFX
04:45:42 <pikhq> Main theme.
04:45:45 <AnMaster> oh
04:45:52 <AnMaster> pikhq, wait which console is FFX for?
04:45:55 <pikhq> PS2.
04:45:57 <AnMaster> ah
04:46:02 <AnMaster> haven't played it then
04:46:07 <pikhq> You, too, should play it.
04:46:11 <AnMaster> pikhq, any emulator?
04:46:17 <AnMaster> I don't own a PS 2
04:46:21 <AnMaster> nor do I know anyone who does
04:46:23 <pikhq> PCSX2 can play it, but you need a really good computer.
04:46:29 <pikhq> Dude, PS2s are $99 *new*.
04:46:42 <AnMaster> pikhq, so a sempron 3300+ with a geforce 7600 card won't work?
04:46:42 <pikhq> (much cheaper used)
04:46:43 <myndzi> haha nice
04:46:49 <pikhq> No, it wouldn't.
04:46:54 <coppro> AnMaster: yes
04:46:54 <AnMaster> pikhq, it is either that or a mobile core 2 duo with intel graphics
04:47:00 <pikhq> I've tried on a system of similar specs. It got about 15 fps.
04:47:18 <pikhq> The PS2 is a bitch to emulate.
04:47:30 <AnMaster> I see
04:47:38 <AnMaster> pikhq, does it do JITing?
04:47:42 <pikhq> Yes.
04:47:47 <AnMaster> okay then I'm surprised
04:48:05 <AnMaster> pikhq, I'll just play nwn instead
04:48:05 <myndzi> how about this one
04:48:06 <myndzi> http://laptops.toshiba.com/laptops/satellite/A500/A505-S6986
04:48:07 <AnMaster> quite a nice game
04:48:08 <myndzi> hehe
04:48:28 <AnMaster> myndzi, ?
04:48:33 <myndzi> stats wise
04:48:34 <pikhq> It had like 10 different processors!
04:48:39 <myndzi> craziness
04:48:57 <AnMaster> myndzi, how many MHz?
04:49:06 <myndzi> i linked it?
04:49:18 <AnMaster> myndzi, yes but it just says "Intel® Core™2 Duo Processor T6600"
04:49:20 <myndzi> honestly i don't know lol
04:49:26 <AnMaster> myndzi, and I have no clue what that is in MHz
04:49:34 <myndzi> me neither
04:49:44 <AnMaster> myndzi, I think it is slower than my thinkpad
04:49:44 <myndzi> 2.2
04:49:45 <pikhq> Lessee... The CPU, the two programmable vector units, the two audio processors, and the IO processor.
04:49:51 <AnMaster> myndzi, well yes slower than my thinkpad
04:50:05 <AnMaster> it has more ram though (except I expanded mine to the full 4 GB)
04:50:07 <myndzi> but dedicated graphics
04:50:26 <AnMaster> myndzi, yep, but I bet my battery lasts longer
04:50:32 <AnMaster> myndzi, also it has glossy screen I bet
04:50:34 <myndzi> i had a netbook
04:50:42 <myndzi> then i realized i'm just not that mobile
04:50:42 <myndzi> :P
04:50:43 <AnMaster> myndzi, there is NOTHING I hate as much as glossy monitors
04:50:51 <AnMaster> it is just not usable indoors
04:50:56 <pikhq> The fastest processor on here was 300 MHz, *but* that's just a lot of CPUs to emulate.
04:50:59 <AnMaster> which is where I use my thinkpad most of the time
04:51:01 <AnMaster> at university
04:51:03 <AnMaster> myndzi, ^
04:51:15 <myndzi> pikhq: yeah, no kidding
04:51:17 <AnMaster> if the monitor isn't matte I'm not going to buy *ANYTHING*
04:51:25 <AnMaster> pikhq, so I assume it is multithreading?
04:51:29 <pikhq> Yes.
04:51:30 <myndzi> trubrite, that sounds glossy to me
04:51:36 <myndzi> i dunno though, it doesn't bother me
04:51:37 <AnMaster> myndzi, horrible
04:51:40 <myndzi> not nearly as much as the freaking keyboard
04:51:49 -!- CakeProphet has joined.
04:51:50 <pikhq> This is how it is possible to actually *run* it at full speed on a modern computer.
04:51:55 <AnMaster> myndzi, also it has hdmi eww
04:52:00 <AnMaster> myndzi, rather than displayport or dvi
04:52:14 <myndzi> not likely to use any of them
04:52:25 <AnMaster> myndzi, oh and too large for me. I use 15"
04:52:29 <pikhq> Oh, yeah. The IO processor is a Playstation 1.
04:52:35 <AnMaster> pikhq, ???
04:52:55 <myndzi> AnMaster: that's why it's not your laptop
04:53:09 <AnMaster> myndzi, another blocker: " No Bluetooth (No Antenna)"
04:53:10 <myndzi> AnMaster: they kept the cpu from the ps1 as an ancillary processor in the ps2
04:53:12 <AnMaster> yeah right
04:53:13 <myndzi> so they could emulate
04:53:13 <pikhq> Yes, to emulate a PS2 you must emulate a PS1.
04:53:21 <myndzi> i also don't need or want bluetooth
04:53:23 <AnMaster> huh
04:53:32 <AnMaster> myndzi, and no gbit ethernet
04:53:35 <AnMaster> that is another blocker for me
04:53:36 <myndzi> yeah, that sucked
04:53:41 <myndzi> i didn't realize it until it was too late
04:53:47 <AnMaster> wth 90W?
04:53:47 <myndzi> but once again, not likely to really need it
04:54:02 <AnMaster> my thinkpad is 65W
04:54:20 <myndzi> basically i wanted 1) a toshiba laptop 2) something i could get a decent deal on and 3) something that could act as kind of a secondary portable desktop for me
04:54:25 <AnMaster> and well on battery with bluetooth and wlan off it uses around 8 W according to powertop
04:54:38 <AnMaster> with wlan on about 14 W
04:54:52 <myndzi> i'm not really sure what it consumes, i suppose i could check
04:54:57 <myndzi> oh yeah, also wanted discrete graphics
04:55:07 <myndzi> it's annoying when games are like SORRY I DON'T LIKE YOUR ONBOARD SHIT
04:55:07 <AnMaster> myndzi, 2.25 hours battery time sucks
04:55:27 <AnMaster> myndzi, I can get about 3.5 hours out of mine with wlan and bluetooth off and doing typing stuff
04:55:28 <myndzi> see what i said before about not needing mobility?
04:55:44 <myndzi> also iirc i can get a 6 cell for it and quite a bit more battery life than 2.25
04:55:48 <myndzi> but i don't really need to
04:55:50 <AnMaster> myndzi, yeah, I need something mobile but more powerful than a netbook (I need to compile stuff sometimes)
04:56:08 <AnMaster> myndzi, it says " Li-Ion (4000mAh, 6-Cell)" and " Up to 2.25 hours"
04:56:14 <AnMaster> so I presume that is for that one?
04:56:54 <myndzi> maybe i was thinking 12 cell?
04:56:56 <myndzi> i don't even know anymore
04:57:07 <AnMaster> makes more sense
04:57:12 <AnMaster> they stick out at the back though
04:57:13 <AnMaster> "1-eSATA/USB (2.0) combo port with Sleep and Charge, "
04:57:15 <myndzi> it gets the job done for me, and i don't have a bunch of fucked up stuff like with other laptops i've encountered
04:57:24 <AnMaster> myndzi, okay wth is a combined esata and usb port
04:57:28 <AnMaster> is that even possible?
04:57:29 <myndzi> they share the same socket
04:57:40 <AnMaster> myndzi, the connectors are compatible ?
04:57:52 <myndzi> they designed the socket so either will fit
04:57:56 <myndzi> it's kinda interesting
04:57:56 <AnMaster> ah
04:57:59 <myndzi> though i have no esata devices
04:58:05 <AnMaster> myndzi, a photo of the socket would be cool
04:58:06 <myndzi> i've used it for usb before, no troubles
04:58:29 <myndzi> http://www.dvhardware.net/news/msi_power_esata.jpg
04:59:13 <AnMaster> eh, power cable free? is there some special variant that uses both esata and usb to take power from it?
04:59:20 <AnMaster> while doing esata
04:59:26 <myndzi> ? i'm not sure, i just googled that
04:59:29 <myndzi> it looks about like that
04:59:36 <AnMaster> ah
04:59:37 <myndzi> i'm not sure if it's functionally different or not
04:59:47 <myndzi> or what the power thing is about
04:59:55 <myndzi> anyway, it can be said that i am inexperienced at choosing laptops
04:59:58 <AnMaster> right
05:00:07 <myndzi> but i got one that serves my purposes and doesn't give me headaches
05:00:14 <myndzi> so it's ok by me
05:00:14 <AnMaster> headaches?
05:00:25 <AnMaster> myndzi, if I wanted those specs I would go for a workstation btw
05:00:32 <AnMaster> it would probably run less hot
05:00:40 <myndzi> overheating/crashing/rebooting like the gateway my brother had
05:00:46 <myndzi> anything like any of the hp laptops my dad has had
05:00:57 <AnMaster> myndzi, homebuilt desktop I meant
05:00:58 <myndzi> bizarre bugs relating to driver shit they have on there, weird annoying behavior
05:01:01 <myndzi> yeah, i have one
05:01:09 <AnMaster> myndzi, linux?
05:01:10 <myndzi> but for one reason or another it's not convenient to use for games and the like
05:01:14 <myndzi> windows
05:01:17 <AnMaster> I only ever had driver problems with windows
05:01:18 <myndzi> i'm not a linuxfag ;P
05:01:31 <AnMaster> stuff like hp printers work way better under linux than windows in my experience
05:01:33 <myndzi> and i sure as hell ain't gonna switch my dad over
05:01:40 <myndzi> but every hp laptop he's had
05:01:43 <AnMaster> especially their multifunction printers/scanner/copier
05:01:49 <myndzi> he always winds up asking me why some fucked up thing is happening
05:01:56 <myndzi> and it causes me headaches trying to figure it out
05:02:03 <AnMaster> myndzi, oh converting dads, yeah lost cause
05:02:05 <myndzi> toshiba has been a brand that i've used and liked
05:02:13 <myndzi> and has worked fine in my experience
05:02:16 <AnMaster> myndzi, personally I like lenovo for laptops
05:02:20 <myndzi> so i went shopping for toshibas
05:02:28 <AnMaster> myndzi, the wireless range is amazing in my laptop
05:02:32 <myndzi> once i chose discrete graphics, the selection was pretty limited
05:02:35 <AnMaster> myndzi, macs seem to have much the same
05:02:38 <myndzi> when i was also trying to keep it from being too expensive
05:02:41 <AnMaster> but it beats everything else than macs
05:02:44 <AnMaster> at the wireless range
05:02:53 <myndzi> i wound up going through their outlet page, i think i bought from there
05:02:59 <myndzi> that or a bing cashback buy it now from ebay
05:03:20 <AnMaster> myndzi, macs and thinkpads have really really good built in wireless antennas
05:03:22 <myndzi> the one complaint i have so far is that the wireless seems to have some weird thing with my dad's lameass netgear router
05:03:23 <myndzi> like
05:03:28 <myndzi> if it sleeps while connected
05:03:29 <AnMaster> better than some external I would say
05:03:33 <myndzi> i can't reconnect until i reboot the router
05:03:37 <AnMaster> myndzi, how is the wireless range of your laptop?
05:03:40 <myndzi> same problem doesn't happen with better routers
05:03:45 <myndzi> nor with other laptops at my dad's house
05:03:47 <myndzi> so i dunno
05:04:00 <myndzi> as for range, also uncertain; i don't have to use it anywhere where that is a problem
05:04:04 <AnMaster> ah
05:04:17 <myndzi> it's pretty much like i said
05:04:36 <myndzi> it's a portable pc i can take places and/or substitute for my desktop for certain tasks
05:04:41 <AnMaster> right
05:04:48 <AnMaster> myndzi, how heavy is it? Metric.
05:04:56 <myndzi> pretty heavy
05:05:11 <AnMaster> that page you linked says " Starting at 6.48 lbs." but 1) that might not match your 2) I have no idea what that is in metric
05:05:18 <myndzi> like, i've been taking it over to my dad's on sundays (where we have dinner nights) and hooking it up to the widescreen downstairs to play games
05:05:24 <myndzi> ah, me neither
05:05:29 <myndzi> unfortunately i'm an amerifag ;p
05:05:39 <AnMaster> myndzi, but does it match your?
05:05:43 <myndzi> about 3 kg
05:05:50 <AnMaster> could be worse
05:06:03 <myndzi> and afaik there's nothing extra that'd make it heavier
05:06:07 <AnMaster> ah
05:06:15 <myndzi> presumably battery
05:06:24 <AnMaster> myndzi, can you replace cd drive with extra harddrive or extra battery on that?
05:06:27 <myndzi> but yeah, it runs mame better than my desktop lol
05:06:30 <myndzi> i use it for TGM practice
05:06:33 <AnMaster> TGM?
05:06:37 <myndzi> tetris the grandmaster
05:06:40 <AnMaster> heh?
05:06:42 <myndzi> well, TGM2 and 3
05:06:49 <myndzi> TGM1 runs like shit in mame and i haven't gotten zinc yet
05:06:51 <AnMaster> myndzi, another thing, no trackpoint?
05:06:57 <myndzi> trackpoint?
05:06:58 <AnMaster> but I guess only thinkpads have that
05:06:59 <myndzi> eraser mouse?
05:07:03 <myndzi> i don't like those things
05:07:11 <AnMaster> myndzi, yep, a lot easier to use than touchpads IMO
05:07:20 <myndzi> i've gotten to where i like touchpads quite a bit, especially with the syntaptics drivers letting me do scrolling and the like
05:07:29 <myndzi> i had a clitmouse in my last keyboard, i surgically removed it
05:07:33 <AnMaster> myndzi, the new ones are a lot nicer than the old ones. better acceleration
05:07:34 <myndzi> (circumcised? ;)
05:07:49 <myndzi> mostly i don't like them because they get in the way of my typing
05:07:51 <AnMaster> myndzi, um you can just pull the top off iirc
05:07:52 <AnMaster> :P
05:07:56 <AnMaster> well you can with mine
05:07:57 <myndzi> well, not really, but it's just a little "in the way"
05:08:01 <AnMaster> to replace it with another
05:08:09 <myndzi> hehe, i mean i unfastened it from the circuit board
05:08:14 <myndzi> i also replaced the keys that were notched
05:08:19 <AnMaster> wtf
05:08:21 <myndzi> so that i could have normal keys and then rearrange the keycaps
05:08:29 <myndzi> keycaps that were notched*
05:08:32 <AnMaster> myndzi, you don't have a middle click button though?
05:08:36 <myndzi> top right corner
05:08:41 * AnMaster loves his touchpad having that
05:08:43 <myndzi> is what i've always used on touchpads
05:08:48 <myndzi> i'm used to it by now
05:08:50 <AnMaster> err not the touchpad
05:08:53 <AnMaster> the trackpoint
05:08:59 <AnMaster> the buttons for the touchpad are just two
05:09:06 <AnMaster> while for the trackpoint they are tree
05:09:07 <AnMaster> three*
05:09:08 <myndzi> no reason they can't be three
05:09:13 <myndzi> i don't know why they don't do that
05:09:23 <myndzi> though i only really use middle click for "open in new tab"
05:09:29 <myndzi> so a hotspot is ok
05:09:48 <AnMaster> myndzi, google image search of my laptop: http://laptoping.com/wp-content/Lenovo_ThinkPad_R500.jpg
05:09:50 <myndzi> anyway: http://en.wikipedia.org/wiki/Tetris:_The_Grand_Master
05:09:53 <AnMaster> not exactly that
05:09:56 <AnMaster> but close
05:10:13 <AnMaster> myndzi, and a very stylish design IMO :P
05:10:20 <myndzi> i like that it didn't go all faddish with the chiclet keyboard
05:10:27 <myndzi> i don't like those things
05:10:35 <AnMaster> myndzi, chiclet keyboard?
05:10:43 <myndzi> the keycaps that look like chiclet gum
05:10:47 <myndzi> apple popularized it
05:10:50 <AnMaster> myndzi, I use middle click for "paste selected text"
05:10:51 <myndzi> they are flat and squareish
05:10:53 <AnMaster> since I use linux
05:11:00 <myndzi> ah
05:11:22 <AnMaster> myndzi, flat keys? well you won't have model m in a laptop!
05:11:29 <myndzi> nono
05:11:32 <myndzi> see on that picture you linked
05:11:35 <myndzi> how at the edges of the keys
05:11:38 <myndzi> they slant down?
05:11:43 <AnMaster> yes of course
05:11:54 <AnMaster> myndzi, very nice keyboard. zero flex
05:11:56 <myndzi> http://images.macnn.com/esta/content/0803/macbook-unboxkeyboard.jpg
05:12:05 <AnMaster> myndzi, oh those
05:12:13 <myndzi> i tend to catch my fingers on the edge of that shit
05:12:14 <AnMaster> myndzi, well the key distance is all wrong on them
05:12:17 <AnMaster> can't type on those
05:12:27 <myndzi> eh, i don't know why they'd mess with the key distance
05:12:28 <AnMaster> myndzi, I just hit the wrong keys
05:12:38 <myndzi> the keys are just shaped different
05:12:41 <AnMaster> myndzi, I can type on full size only
05:12:48 <myndzi> anyway, a number of laptops have aped that style
05:12:51 <AnMaster> atm I'm using a nice old PS/2 keyboard
05:12:52 <myndzi> and i don't like it
05:13:00 <myndzi> yeah, i have a unicomp
05:13:01 <myndzi> and a filco
05:13:01 <AnMaster> some of the keys are worn out and lack all text now
05:13:08 <myndzi> i'm getting used to the filco, or trying to
05:13:10 <coppro> I'm pretty sure Apple's keys are slightly farther apart than on ThinPads
05:13:17 <myndzi> it's a nicer keyboard in many respects
05:13:23 <AnMaster> myndzi, ah mine is a quite usable fujitsu siemens that came with an old computer I had
05:13:24 <myndzi> but i keep hitting the spacebar accidentally
05:13:30 <myndzi> so i get t hings like t his
05:13:41 <myndzi> the unicomp is a buckling spring, usb
05:13:42 <AnMaster> not mechanical buckling spring (would love that) but still rather nice
05:13:52 <myndzi> i didn't know when i bought it that usb keyboard kinda sucks
05:14:00 <myndzi> the filco is cherry browns i think
05:14:17 <myndzi> lighter than the buckling spring, not quite as nice, but it also has n-key rollover
05:14:37 <AnMaster> what? brown?
05:14:42 <myndzi> mm
05:14:47 <myndzi> there are a few kinds of cherry keyswitches
05:14:53 <myndzi> called by their colors
05:14:54 <AnMaster> image please
05:15:00 <AnMaster> I'm think I'm going insane XD
05:15:03 <myndzi> image won't really tell the difference
05:15:08 <AnMaster> I hate non-white keyboards. Okay thinkpad is black but that is laptop
05:15:10 <myndzi> it has to do with how much force and feedback they have
05:15:13 <AnMaster> I meant for desktop keyboards
05:15:13 <myndzi> oh, the keyboard is all black
05:15:16 <myndzi> matte black
05:15:20 <myndzi> nice small form factor
05:15:26 <AnMaster> eugh
05:15:33 <AnMaster> white full size please :)
05:15:38 <myndzi> http://home.comcast.net/~olimar/kb/07.JPG
05:15:43 <myndzi> but with 10-key
05:15:52 <AnMaster> myndzi, isn't that das keyboard?
05:15:55 <myndzi> and without the nifty bubbles (i wish i had those :|)
05:15:57 <AnMaster> lacking all the text I mean
05:16:00 <myndzi> nah
05:16:14 <AnMaster> myndzi, what bubbles?
05:16:17 <myndzi> das keyboard does that too, but the only reason i did that with this keyboard is that the rows have different slants
05:16:19 <AnMaster> you mean on the logo key?
05:16:21 <myndzi> yeah
05:16:25 <AnMaster> myndzi, I hate that
05:16:44 <myndzi> i would have liked being able to have a little extra touch to tell things apart down there
05:16:54 <AnMaster> thankfully it is a flat circle on laptops, and my desktop keyboard is old enough to not have it
05:16:57 <myndzi> anyway, i wouldn't have been able to rearrange a printed keyboard to dvorak
05:17:05 <myndzi> so i got the blank one
05:17:18 <myndzi> n-key rollover is real nice
05:17:25 <AnMaster> myndzi, oh indeed
05:17:27 <myndzi> i can hold down any combination of keys that i want and they all go through
05:17:30 <AnMaster> but that doesn't work with usb
05:17:35 <myndzi> not fully
05:17:46 <myndzi> which is why i am using it as a ps/2 keyboard
05:17:49 <myndzi> the filco, that is
05:17:52 <AnMaster> right
05:18:07 <myndzi> honestly, i gain about 10wpm on the unicomp
05:18:08 <myndzi> still
05:18:16 <myndzi> i'm not sure if it was worth $130 to buy this one
05:18:23 <myndzi> i want to like it, but maybe it'll just take a lot of getting used to
05:18:37 <AnMaster> myndzi, any flex in your laptop keyboard?
05:18:44 <myndzi> mmm.. flex?
05:18:52 <myndzi> like if you push real hard on the keys they bend?
05:19:04 <myndzi> i can't say i've noticed such a thing, plus i wouldn't push that hard
05:19:09 <AnMaster> myndzi, http://forum.notebookreview.com/asus/87210-what-keyboard-flex.html
05:19:14 <AnMaster> first google hit
05:19:45 <myndzi> well now, you've been asking me for things that i googled too ;)
05:20:01 <AnMaster> myndzi, well I just provided how I found it
05:20:12 <AnMaster> myndzi, my thinkpad has zero flex at any force I dare apply
05:20:15 <myndzi> hehe
05:20:32 <myndzi> if i push a little it flexes a little
05:20:37 <myndzi> but not at typing forces
05:20:41 <Gregor> AnMaster: Then DARE APPLY MORE
05:20:42 <myndzi> and it feels pretty solid even when i push
05:20:44 <AnMaster> myndzi, there is a very sturdy backplate on my thinkpad
05:20:48 <AnMaster> Gregor, you pay?
05:20:52 <myndzi> i wouldn't consider it an issue in this case
05:20:59 <Gregor> I will pay all damages up to a maximum of $0.
05:21:10 <AnMaster> XD
05:21:49 <myndzi> i think i would pay more attention to some things if i bought another laptop
05:21:58 <myndzi> but i don't regret the one i have
05:22:12 <myndzi> i had had plans to install some games on it to play
05:22:16 <myndzi> but i haven't done it yet lol
05:22:22 <AnMaster> myndzi, well I went thinkpad because that was the only way to get matte I could find
05:22:23 <myndzi> because when i get home i wind up on irc or something with all my time
05:22:28 <AnMaster> at least with my other requirements
05:22:37 <AnMaster> and I have to say I love it
05:23:23 <AnMaster> myndzi, only issue is that the built in card reader does about every format except for the one my camera uses
05:23:31 <AnMaster> which is good old compact flash
05:23:47 <AnMaster> all cameras above a certain price tends to use compact flash :)
05:24:57 <myndzi> lol :(
05:25:06 <myndzi> all-
05:25:10 <myndzi> all-in-one-but-one
05:26:47 -!- kushed has joined.
05:26:52 <AnMaster> myndzi, ?
05:27:18 <AnMaster> myndzi, anyway I use my old USB 1.1 card reader to transfer stuf
05:27:19 <AnMaster> stuff*
05:27:27 <AnMaster> myndzi, slow as heck but meh
05:27:31 <kushed> I saw ufo's in my dream the other night
05:27:50 <AnMaster> kushed, I think you are in the wrong channel, this is about esoteric programming languages. Not esoterica.
05:28:12 <kushed> lol
05:28:22 <myndzi> yeah, we've totally been talking about esoteric programming languages all night
05:28:25 <myndzi> shove off ;p
05:28:37 <AnMaster> myndzi, well we can't stay on topic a lot of the time true
05:28:42 <myndzi> hehe
05:28:47 <AnMaster> but it is still mostly tech stuff
05:28:54 <kushed> totally
05:28:56 <myndzi> you tryin to tell me ufos aren't high tech?
05:29:14 <myndzi> i bet aliens have some *seriously* esoteric languages
05:29:14 <kushed> Organic sorbet
05:29:18 <AnMaster> who knows? by definition they are "unidentified flying objects"
05:29:29 <AnMaster> in other words: probably birds
05:29:36 <AnMaster> or jet liners
05:29:41 <AnMaster> or something
05:29:43 <kushed> of course
05:29:44 <myndzi> Organic sobriquet
05:29:58 <myndzi> don't mind me, i just wanted to use that word
05:30:01 <AnMaster> I mean, once they are IFOs then there is no longer an issue
05:30:16 <AnMaster> myndzi, s/$/s/
05:30:47 * Sgeo_ was riding an alternate universe elevator in his dream the other night
05:30:50 <Sgeo_> Dreams are weird
05:31:02 <AnMaster> I can't remember any recent dream
05:31:06 <myndzi> i wanna go back to this time where i had these crazy epic dreams like every night
05:31:11 <myndzi> for like two weeks
05:31:17 <myndzi> but most nights ... nothing :|
05:31:22 <AnMaster> I very rarely remember any dream at all
05:31:31 <Sgeo_> There are articles about improving dream recall
05:31:39 <Sgeo_> I think one thing is to keep a dream journal
05:31:40 <AnMaster> yeah, but care?
05:31:48 <myndzi> usually when you dream and can't remember, you at least remember dreaming
05:31:50 <AnMaster> Sgeo_, oh you mean like in xkcd?
05:31:51 <myndzi> i feel like i don't even dream
05:31:55 <Sgeo_> Improving dream recall helps with lucid dreams, apparently
05:31:59 <myndzi> yeah
05:32:02 <kushed> I don't always remember
05:32:09 <myndzi> well, it's no fun having a lucid dream if you can't recall it
05:32:16 <AnMaster> Sgeo_, http://xkcd.com/269/ like that?
05:32:16 <AnMaster> ;P
05:32:17 <kushed> and cannabis effects dreaming...
05:32:23 <Gregor> We should just rename this topic to #offtopic
05:32:26 <Gregor> Erm
05:32:27 <myndzi> i never smoked
05:32:28 <Gregor> s/topic/channel/
05:32:49 <Sgeo_> Apparently #offtopic is ##unavailable
05:32:58 -!- AnMaster has set topic: #offtopic | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
05:33:09 <pikhq> The channel name is descriptive of the common thread of this community.
05:33:25 <pikhq> Of course, we prefer avoiding that.
05:33:27 <pikhq> :P
05:34:00 <AnMaster> pikhq, that is because none of us is able to concentrate very long on anything. A bit like Leonardo da Qurim in the Discworld books if you know what I mean?
05:34:10 <Sgeo_> You mean since the comic, no one created TCMP?
05:34:22 <pikhq> Actually, I am quite good at concentrating very long on things.
05:34:31 <pikhq> I am *terrible* at *conversing* very long on things.
05:34:35 <AnMaster> pikhq, ah
05:34:40 -!- Gregor has set topic: Anything except for the topical concept | Well, except for that | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
05:35:05 <pikhq> My conversations in real-life are fraught with non-sequiturs because my brain does several mental leaps before outputting the next sentence.
05:35:08 <AnMaster> Gregor, augh
05:35:20 <AnMaster> pikhq, oh I have that too
05:35:24 <myndzi> i like how you phrased that as "outputting" a sentence
05:35:35 <pikhq> Also fraught with odd phrasing.
05:35:42 <AnMaster> well not as much
05:35:47 <myndzi> i didn't find it odd at all
05:35:47 <AnMaster> you like archaic stuff
05:35:56 <myndzi> i just liked it
05:36:06 <pikhq> Sometimes it's because it amuses me, sometimes I just don't *realise* it.
05:36:08 <AnMaster> myndzi, would you find someone saying "ocular inspection" instead of "looking" odd?
05:36:17 <AnMaster> I think I done that once, unintentionally
05:36:20 <myndzi> it would depend on the person
05:36:21 <pikhq> "Outputting" was something I didn't realise.
05:36:32 <AnMaster> myndzi, well for me?
05:36:33 <myndzi> i mean, "odd" is sorta subjective
05:36:41 <AnMaster> mhm
05:36:42 <myndzi> AnMaster: depends on context too lol
05:36:51 <AnMaster> myndzi, casual discussion :P
05:36:53 <myndzi> i'd probably have to think for a moment upon hearing that
05:36:58 <myndzi> i mean, the sentence it was used in etc.
05:37:07 <AnMaster> don't remember that
05:37:09 <myndzi> i can't think of anyone using "ocular inspection" in a sentence so it sounds odd to me
05:37:25 <myndzi> but if it was suitable to the sentence it wouldn't sound odd, just quirky perhaps lol
05:37:30 <AnMaster> myndzi, I think it was related to checking if there was enough milk at home or such
05:37:33 <myndzi> i think i once used s/// syntax in speech
05:37:41 <AnMaster> haha
05:37:54 <myndzi> though, i said it like "sub <foo> <bar>"
05:37:58 <myndzi> of course, my boss didn't know wtf
05:38:02 <pikhq> I've used "grok" when talking to my mother.
05:38:13 <Gregor> I am the greatest nerd conversationalist ever, apparently.
05:38:15 <AnMaster> like "<mom> How much milk is there in the fridge? [pause] <me> An ocular inspection indicates 6 litres"
05:38:26 <myndzi> hehe
05:38:27 <AnMaster> myndzi, well that is translated from Swedish obviously
05:38:35 <Sgeo_> I ocularly inspected her body?
05:38:38 <myndzi> see, that doesn't sound odd in context
05:38:40 <myndzi> i mean
05:38:41 <Gregor> Other than my occasionally explicitly modeling the conversation as a stack and mentioning when I'm popping topics off the stack, my conversations are quite normal :P
05:38:49 <AnMaster> so "En okulär inspektion indikerar 6 liter"
05:38:52 <AnMaster> would have been my reply
05:38:53 <myndzi> it isn't what most people would say, but that doesn't make it not suitable
05:39:00 <AnMaster> myndzi, true
05:39:07 -!- kushed has quit (Quit: Page closed).
05:39:10 <myndzi> Gregor: haha, i've done that :|
05:39:17 <myndzi> particularly in regards to multitasking at work
05:39:24 <AnMaster> Gregor, what?
05:39:26 <pikhq> Gregor: *Part* of it is that I have not grown up with normal conversational partners.
05:39:32 <myndzi> i've been known to say i've "cleared my stack" or "overflowed" it
05:39:40 <myndzi> when i finish all the tasks i had been postponing
05:39:45 <AnMaster> heh
05:39:46 <myndzi> or forgot something because i had too many
05:39:47 <myndzi> :P
05:39:52 <pikhq> And part of it is that I'm just plain odd.
05:40:03 <AnMaster> that will be an awesome reply next time mom asks too many things at once
05:40:07 <AnMaster> I shall remember that
05:40:15 <Sgeo_> Who here isn't odd?
05:40:29 <pikhq> Apparently when I was a child, my parents learned that they should just talk to me as an adult, because that's how I'd respond.
05:40:30 <myndzi> a random sampling would indicate about half? :P
05:40:33 <Gregor> AnMaster: When you're having a conversation, generally you go from less specific topics to more specific topics, but occasionally you finish a topic and go back, then drill down on other ones. I make this behavior explicit, and when a topic is over but its parent topic needs further detail, I'll say "OK, popping that conversation off the stack, *such*"
05:40:34 <myndzi> i vote to be one of the evens
05:40:36 <AnMaster> Sgeo_, that's a null set
05:40:43 -!- SevenInchBread has joined.
05:41:29 <pikhq> Which would explain why I seem to recall discussing my mom's college classes (in detail) when I was, like, 10...
05:41:40 <AnMaster> Gregor, huh, that is with one other person right? With a group of 5 students discussing stuff during the lunch it tends to be spaghetti goto!
05:41:42 <myndzi> hehe, i remember teaching my mom algebra
05:41:48 <myndzi> or rather, helping her with her homework
05:41:51 <myndzi> before i ever took the class
05:41:54 <AnMaster> Gregor, rather than a nice call stack
05:42:07 <myndzi> this'd be like 3rd or 4th grade(?)
05:42:22 <AnMaster> myndzi, her homework?
05:42:23 <AnMaster> what?
05:42:23 <Gregor> AnMaster: Works best with no more than 3 or 4 people, yeah.
05:42:25 <Sgeo_> "For anyone not fluent in binary"
05:42:26 <pikhq> myndzi: In my case, it was just because I found the topic made for interesting discussion.
05:42:31 <Sgeo_> Going to kill pete cashmore...
05:42:34 <pikhq> Which of course it did.
05:42:34 <AnMaster> myndzi, time travel involved?
05:42:37 <myndzi> AnMaster: she was going back to school
05:42:40 <myndzi> college
05:42:47 <myndzi> but had to get prereqs out of the way i assume
05:42:55 <AnMaster> ah
05:43:00 <myndzi> because i mean, i wasn't exactly much past 4x+3 = 7
05:43:08 <myndzi> but i do remember helping explain how to solve for x in simple cases like that lol
05:43:22 <AnMaster> Gregor, also some of the people I'm eating with at university tends to have very hard to concentrate on one thing at a time during lunch. It is like they turn everything off between 12:00 and 13:00
05:43:29 -!- CakeProphet has quit (Ping timeout: 265 seconds).
05:44:06 <AnMaster> hilarity usually ensues though
05:44:10 <AnMaster> so no one cares very much
05:44:42 <pikhq> I often have to prefix my sentences with "This is completely random, but:"
05:44:43 <AnMaster> myndzi, what stuff did she study at uni then?
05:44:45 <pikhq> Because of course it is.
05:45:20 <pikhq> Hmm.
05:45:31 <AnMaster> myndzi, I mean... I had to do much more than that before I went to uni to even get on the CS studies
05:45:32 <pikhq> Actually, I think that's just because I treat IRL conversation a lot like IRC.
05:45:39 <AnMaster> simple differential and what not
05:45:55 <pikhq> What with how I have IRC'd *much* more than I've talked IRL.
05:46:14 <AnMaster> XD
05:46:19 <AnMaster> pikhq, I tend to do a lot of both
05:46:55 <pikhq> I've spent several years in the middle of fucking nowhere. It's either IRC or stare into the abyss for socialness.
05:46:57 <pikhq> :P
05:47:04 <AnMaster> pikhq, ah
05:47:18 <Sgeo_> I've been in various non-IRC chatrooms long before ever hearing of IRC
05:47:23 <pikhq> I also have homebody tendencies.
05:47:34 <pikhq> And I've been on IRC since I was 8...
05:47:37 <Sgeo_> I think it's... um, a place that alise knows about before I started being an IRC person
05:47:46 <AnMaster> Sgeo_, I have never been on any IM or other type of chatroom except irc
05:47:59 <Sgeo_> I don't remember a single one of my online activities from before I was 11
05:48:09 <Sgeo_> 11 was when I started chatting.. erm, yeah
05:48:19 <AnMaster> I don't remember any such because I didn't have any
05:48:25 <AnMaster> modem, pay per minute connected
05:48:31 <AnMaster> horrible for your childhood that is
05:48:49 <pikhq> I'm such an Internet addict.
05:48:56 <pikhq> I may have actually spent more time on than off.
05:49:00 <AnMaster> meh I can manage without internet
05:49:05 <AnMaster> pikhq, including sleep?
05:49:20 <pikhq> Yes.
05:49:34 <AnMaster> pikhq, from the day you were borne?
05:49:39 <AnMaster> err
05:49:40 <AnMaster> born'
05:49:45 <AnMaster> s/'/*/
05:49:51 <pikhq> Severe addiction from 8 on. Hmm. No, not *quite*.
05:49:59 <AnMaster> right
05:50:01 <AnMaster> then it is fine
05:50:06 <pikhq> If I were older, than *yes*.
05:50:07 <pikhq> :P
05:50:18 <AnMaster> pikhq, okay that is not okay
05:50:42 <Sgeo_> Things are only not ok if they interfere with mental or physical health, imo
05:50:51 <pikhq> Well. Except that I'd probably be a bit more likely to get out with, y'know... Reasons to get out.
05:50:59 <pikhq> Like "being near anything to go to".
05:51:08 <AnMaster> pikhq, Sgeo_ seems to use virtual worlds for that
05:51:13 <AnMaster> :P
05:51:19 <Sgeo_> lol
05:52:23 <coppro> I spend way too much time on the Internet
05:52:59 <coppro> mainly as a crutch to avoid things, though. It usually doesn't interfere with things I want to do (things my parents want me to do, on the other hand...)
05:53:07 <AnMaster> I have a reason to at least. I can always blame it on CS studies
05:53:12 <AnMaster> I need to use the computer!
05:53:37 <AnMaster> coppro, how old are you?
05:53:42 <coppro> 18
05:53:50 <myndzi> AnMaster: my mom wasn't in CS lol. she just had to pass her math credits or something
05:53:51 <AnMaster> coppro, ah two years younger than me
05:53:58 <AnMaster> myndzi, ah
05:54:07 <myndzi> i don't even know, i think she studied graphic design or some such
05:54:10 <AnMaster> heh
05:54:42 <myndzi> she worked in desktop publishing type stuff for a while, but now she's an "administrative assistant"
05:55:28 <AnMaster> what the heck is that?
05:55:48 <AnMaster> anyway going to eat breakfast. Only slept about 2 hours tonigjt
05:55:50 <AnMaster> tonight*
05:55:51 <myndzi> i think it's a glorified business word for secretary
05:55:52 <AnMaster> bbl
05:55:58 <myndzi> or something
06:03:03 -!- coppro has quit (Quit: I am leaving. You are about to explode.).
06:10:56 -!- MizardX has quit (Ping timeout: 276 seconds).
06:16:54 <AnMaster> myndzi, I see
06:44:31 -!- Gracenotes has quit (Ping timeout: 276 seconds).
07:33:03 -!- oerjan has joined.
07:54:02 <oerjan> <CakeProphet> I'm wondering how you could create pattern matching constructs that aren't strictly data constructors
07:54:17 <oerjan> SevenInchBread: look up "views", i think
07:55:08 -!- pikhq has quit (Remote host closed the connection).
07:55:09 <oerjan> i've seen it mentioned in the haskell community.
07:57:00 <oerjan> in fact Data.Sequence has some functions called something like left and right view of a sequence which i think are inspired by it (but which cheat and make new data types with real constructors, since haskell still does not have actual views)
07:58:01 <oerjan> there is also something relatively new in ghc called pattern guards, but those are still constructor based too i think
07:59:53 <oerjan> i think views are like better records in being one of those features that have so many possible variants that they can never agree on which one to actually implement
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:02:27 <oerjan> <Gregor> uorygl: Going to a country does not automatically change your surname.
08:03:01 <oerjan> i recall reading that if you become a thai citizen you have to get a thai surname (which btw must be unique for your extended family)
08:36:25 -!- Phantom_Hoover has joined.
08:46:35 -!- oerjan has quit (Quit: Later).
08:57:22 <Phantom_Hoover> Gregor, how did you get so many hats?
10:09:21 <Phantom_Hoover> I want a hat.
10:10:12 <Phantom_Hoover> The closest thing I have to one is a sick bowl with a ribbon from a chocolate box on it.
10:12:34 <fizzie> I'm not completely sure about this, but I think there are some sort of shops that *sell* them.
10:20:59 <Phantom_Hoover> Where's the fun in that?
10:22:04 <fizzie> Then you may have to get all your hats from the heads of defeated enemies.
10:22:45 <Phantom_Hoover> Hmm.
10:22:54 <Phantom_Hoover> Where does Gregor live, again?
10:24:05 <oklopol> he doesn't live anywhere, he just moves around and does cool stuff and wears hats
10:24:10 <oklopol> seriously
10:24:56 <oklopol> fizzie: isn't it illegal to steal a dead person's hat?
10:25:35 <fizzie> oklopol: If it's a duel, I think you're entitled to the hat, but don't quote me on this.
10:25:47 <oklopol> i think the moral thing to do is just leave them there after
10:26:03 <oklopol> hmm well right if it's a duel then maybe
10:27:10 <Phantom_Hoover> Gregor, I challenge you to a duel. You must wear every one of your hats.
10:28:28 <Phantom_Hoover> You may pick the weapon.
10:29:12 <oklopol> if he chooses c you're doomed.
10:29:43 <fizzie> oklopol: I think it is sort of an extendion to the scalp thing. If you don't want to be a scalp-less corpse (might be distressing for the relatives) you can wear a hat, and then you'll only lose that. (And your life, obviously.)
10:30:27 <fizzie> An extendion, the fundamental particle of extensions.
10:30:52 <fizzie> "Caution: extendion radiation."
10:33:29 <oklopol> ah
10:35:24 <Phantom_Hoover> oklopol, how do you kill someone with C?
10:35:34 <Phantom_Hoover> free()?
10:38:13 <fizzie> With the power of POSIX, you can kill(2).
10:39:54 <fizzie> Even with plain C, you can remove(3) someone, if you know their (path) name.
10:44:30 <oklopol> Phantom_Hoover: you must hate freedom, man
10:45:51 -!- tombom has joined.
10:54:38 <Phantom_Hoover> fizzie, I know his name.
10:54:50 <Phantom_Hoover> He does noy know mine.
10:54:59 <Phantom_Hoover> s/noy/not/
10:56:26 <fizzie> Oh noy.
11:03:40 <Phantom_Hoover> Hmm, can I remove(3) fizzie?
11:16:14 -!- Gracenotes has joined.
11:17:28 <fizzie> You may need to mount my location first.
11:18:35 <Phantom_Hoover> Finland.
11:23:09 <Phantom_Hoover> mount Finland /mnt/finland
11:26:22 <Phantom_Hoover> rm /mnt/finland/`whois fizzie`
11:26:37 <Phantom_Hoover> rm "/mnt/finland/`whois fizzie`"
11:26:45 <Phantom_Hoover> (Since there's probably a space)
11:29:32 <fizzie> I'd hope they have some sort of permissions system set up for that.
11:30:19 <Phantom_Hoover> Hmm.
11:30:27 <Phantom_Hoover> What is reality's root password?
11:30:31 <Phantom_Hoover> Oh, I know.
11:30:47 <Phantom_Hoover> sudo rm "/mnt/findland/`whois fizzie`"
11:30:52 <Phantom_Hoover> password
11:31:11 -!- FireFly has joined.
11:35:20 <fizzie> *poof*
11:36:14 <Phantom_Hoover> Oh, wait.
11:36:23 <Phantom_Hoover> I didn't mount Finland as root.
11:39:46 <fizzie> *unpoof*
12:00:39 <Phantom_Hoover> Also, the device I used for Finland made no sense.
12:01:23 <Phantom_Hoover> It should be /dev/finland or something weird like /dev/st43.
12:07:15 <fizzie> Possibly you could mount a NFS-exported Finland from the .fi root servers.
12:11:04 -!- GreaseMonkey has quit (Quit: I'm using NO SCRIPT WHATSOEVER - Download it at file:///dev/null).
12:11:18 <fizzie> Phantom_Hoover: Was it you who was interested in getting raw binaries out of GCC?
12:11:29 -!- alise has joined.
12:11:37 <Phantom_Hoover> fizzie, yes.
12:12:36 <fizzie> Phantom_Hoover: http://pastebin.com/eChGDKDy might be interesting, then. Apparently GAS has a ".code16gcc" directive which takes GCC-generated 32-bit assembly and adds all those instruction prefix bytes to handle 32-bit operands and addresses and such.
12:12:53 <fizzie> The result is pretty ugly, but seems to mostly work.
12:13:25 <fizzie> Also included is a single linker flag that creates a .com-compatible file (load address 0x100) without having to fiddle with GCC .specs files and linker scripts.
12:14:16 <fizzie> (Global data might still end linked up who knows where, though, unless you explicitly __attribute__ the data into the .text segment.)
12:14:28 <Phantom_Hoover> Wait, is it a DOS binary?
12:14:48 <fizzie> A DOS .com file doesn't really have what you'd call a structure.
12:14:53 <fizzie> It's just raw code.
12:15:10 <Phantom_Hoover> (Also, if it's this hard to write extremely low-level C programs, how do they do things in Linux?)
12:15:47 <alise> what is this
12:16:07 <alise> Phantom_Hoover: they dont use 16 bit
12:16:37 <Phantom_Hoover> Yes.
12:16:40 <alise> or COM
12:17:08 <fizzie> Right; gcc's not really the right tool for this.
12:17:09 <alise> the low level CODING is harder :p
12:17:10 <Phantom_Hoover> But you still need to write a loader for the executable format.
12:21:39 <Phantom_Hoover> Oh, well, must leave.
12:21:48 <Phantom_Hoover> sudo reboot
12:21:50 <Phantom_Hoover> password
12:21:53 -!- Phantom_Hoover has quit (Quit: Leaving).
12:22:12 <alise> use shutdown -r fool
13:13:27 -!- BeholdMyGlory has joined.
13:55:31 -!- Quadrescence has quit (Ping timeout: 265 seconds).
14:01:18 -!- Quadrescence has joined.
14:15:42 -!- kar8nga has joined.
14:19:56 <cheater99> alise: why
14:20:14 <alise> If halt or reboot is called when the system is not in runlevel 0 or 6,
14:20:14 <alise> in other words when it's running normally, shutdown will be invoked
14:20:14 <alise> instead (with the -h or -r flag). For more info see the shutdown(8)
14:20:14 <alise> manpage.
14:20:16 <alise> hmm, never mind
14:20:21 <alise> I was sure reboot was more chainsaw-y
14:20:46 <alise> bah, alise init is better, it has no reboot command :-P
14:22:12 <alise> Development Effort Estimate, Person-Years (Person-Months) = 0.02 (0.24)
14:22:12 <alise> (Basic COCOMO model, Person-Months = 2.4 * (KSLOC**1.05))
14:22:12 <alise> Schedule Estimate, Years (Months) = 0.12 (1.45)
14:22:12 <alise> (Basic COCOMO model, Months = 2.5 * (person-months**0.38))
14:22:12 <alise> Estimated Average Number of Developers (Effort/Schedule) = 0.16
14:22:13 <alise> Total Estimated Cost to Develop = $ 2,687
14:22:15 <alise> (average salary = $56,286/year, overhead = 2.40).
14:22:43 <Sgeo_> alise, did you sleep?
14:22:44 <alise> It's so good, it would take one and a half months and $2,687 to develop all its 111 lines.
14:22:48 <alise> Sgeo_: Yes; and well.
14:23:42 <Sgeo_> It's a miracle! F*ckin sleep, how does it work? [Yes, I have that meme stuck in my head now]
14:24:18 <alise> Please don't censor.
14:24:22 <alise> It's irritating.
14:24:27 <alise> *bowlderise, is more accurate here I guess.
14:24:34 <alise> *bowdlerise, even.
14:28:55 <alise> So, I have an init; then, I suppose I should write a login.
14:29:11 <alise> Or, I wonder, is the Linux login(8) fine? Will it function without PAM?
14:29:23 <alise> Hmm, it's not (8); *(1)
14:29:45 <alise> After a successful login, you will be informed of any system messages
14:29:45 <alise> and the presence of mail.
14:29:47 <alise> Suggests some bloat.
14:30:25 -!- ski has quit (Ping timeout: 264 seconds).
14:30:37 -!- FireFly has quit (Ping timeout: 265 seconds).
14:31:04 <alise> Okay, so, login's job: prompt for username and password, check password against /etc/shadow, set real and effective user and group IDs according to /etc/passwd, and also $HOME, $SHELL, $PATH, $LOGNAME and $MAIL from /etc/passwd. "Ulimit, umask and nice values may also be set according to
14:31:04 <alise> entries in the GECOS field." but I doubt I really need to do that.
14:31:41 <alise> An annoying part of login is of course the raw terminal handling you need to read the password safely...
14:33:10 <alise> Oh, mingetty is nice.
14:33:10 <alise> Very tiny.
14:38:33 <alise> Hmm, I can't seem to get it working, though.
14:42:32 <alise> Hmm, mastodon's init(8) does the service handling stuff.
14:42:34 <alise> Maybe I should do that.
14:42:45 -!- FireFly has joined.
14:43:02 <alise> But then it's very close to, say, restarting services, etc., which is bloat. :P
14:46:06 <alise> I mean, it's all fine and well to have a need(8) which makes init(8) start and register /etc/init.d/foo if it hasn't already been, but then what if foo crashes?
14:46:09 <Sgeo_> I should probably eat breakfast or something
14:47:28 <oklopol> i think i actually find "f*cking" more offensive than "fucking", although the quantities of offendedness are too small to measure accurately
14:47:28 <alise> In New York, screenings were picketed by both rabbis and nuns ("Nuns with banners!" observed Michael Palin)[8]. It was also banned for eight years in the Republic of Ireland and for a year in Norway (it was marketed in Sweden as '"The film so funny that it was banned in Norway").[17]
14:47:34 <alise> -- [[Monty Python's Life of Brian]]
14:48:04 <oklopol> so what's a really random place to meet someone?
14:48:37 <oklopol> i can't realize the ideas i have right now
14:49:03 <oklopol> probably i'm the expert in this area so maybe i should just continue thinking
14:49:50 <Sgeo_> I can think of really weird places
14:50:35 -!- poiuy_qwert has joined.
14:51:45 <alise> oklopol: underground
14:51:52 <alise> digging in the middle of nowhere
14:54:40 <Sgeo_> Does Google ever pull things from YouTube without a DMCA notice?
14:54:54 <Sgeo_> (or DCMA, not sure which)
15:00:20 <alise> I don't THINK so.
15:03:21 <alise> I love how libc 4 is still maintained.
15:04:14 <alise> #undefwrite
15:04:15 <alise> function_alias(write, __write, __ssize_t, (d, b, n),
15:04:15 <alise> DEFUN(write, (d, b, n),
15:04:15 <alise> int d AND CONST PTR b AND size_t n))
15:04:16 <alise> excuse me what
15:09:21 <oklopol> alise: that would be perfect, but i don't know an underground place
15:10:48 <alise> oklopol: just go to a hill, a hill whose neighbours are other hills and land, where there are no other people and anyone you know would take at least two hours to get into audible range, and walk down the hill, here, at the bottom of the hill, you dig
15:10:50 <alise> and you dig
15:10:52 <alise> and you dig
15:11:01 <alise> and you find someone, or you keep digging and end up on the opposite side of the world
15:11:14 <alise> and there, there will be someone, if there is not, you walk until you find another place like I described but in this new place
15:11:16 <alise> and you dig
15:11:20 <alise> and you never stop until you see someone
15:13:46 <alise> * Actual printf innards.
15:13:46 <alise> *
15:13:46 <alise> * This code is large and complicated...
15:13:46 <alise> */
15:13:51 <alise> */*
15:13:54 <alise> So newlib is derived from libc4...
15:15:29 <alise> But uclibc is not.
15:17:26 <alise> So, userspace.
15:17:30 <alise> I sure wish there were people actually here.
15:18:47 <alise> [[I always wondered why signaling init was chosen as a way to initiate reboot. After all, we do not mount devices by signaling init. We do not up network interfaces by signaling init. I mean, we do not do <some admin actions> by 'kill -<somesig> 1', why do we do this particular admin action (reboot) in this bizarre way?
15:18:47 <alise> We can kill all processes, remount RO and reboot without signaling init.]]
15:18:51 <alise> The man has a point...
15:19:28 <alise> [[You can have a separate "daemon spawner" process and thus remove this functionality from init. Init's code will get much simpler:]]
15:19:32 <alise> ...and he just invented daemontools.
15:23:45 <alise> heh
15:23:46 <alise> http://busybox.net/~vda/init_vs_runsv.html
15:23:54 <alise> [guy is beating the unix guy soundly with logical arguments]
15:23:55 <alise> unix guy:
15:23:55 <alise> You're arguing against something people have spent 30 years making work. They do it that way for a reason.
15:24:00 <alise> s/ +$//
15:24:04 <alise> Translation: "I just lost the argument."
15:24:16 <alise> me:
15:24:17 <alise> Age is not a valid technical argument. Sendmail is maybe 30 years old too. People are still using it. It doesn't make sendmail any better.
15:24:17 <alise> unix guy:
15:24:17 <alise> Go make it work your way and then come back to us when you hit a tricky corner case having to do with process group inheritance or console ownership some such piece of evil, and we'll tell you how it was worked out in the existing code many years ago...
15:24:18 <alise> me:
15:24:20 <alise> I am doing exactly this for several years now, and want to let people know that it actually works rather nice.
15:25:35 <alise> Whoa; '>x' is a quicker way to create a file than touch(1).
15:27:34 <alise> So hey... cloning daemontools; what could go wrong?
15:31:43 <Sgeo_> Why must Pidgin suck so badly
15:42:59 <alise> Because it does.
15:43:06 <alise> Empathy is worse, though.
15:46:30 -!- hiato has joined.
15:47:37 <alise> I need naming assistance!
15:49:12 -!- hiato has quit (Client Quit).
15:59:24 <alise> Why is getpass(3) obsoleted?
16:00:00 <alise> Since libc
16:00:00 <alise> 5.4.19 also line editing is disabled, so that also backspace and the
16:00:00 <alise> like will be seen as part of the password.
16:00:05 <alise> Well, that is silly.
16:01:15 <alise> * These I liked writing. More library routines like these. Linus
16:01:15 <alise> */
16:01:27 <alise> -- abs.c, libc 2.2.2
16:01:34 <alise> It is a rather small file.
16:04:40 <alise> /* A clever implementation of this would do sequencing of non-numeric
16:04:40 <alise> * arguments. But that would take time and energy to do.
16:04:40 <alise> */
16:11:59 -!- Sgeo has joined.
16:13:45 <alise> I wish someone here had strong opinions >_>
16:13:52 <alise> Gregor: Do you have strong opinions!
16:14:13 -!- Sgeo_ has quit (Ping timeout: 265 seconds).
16:14:40 <alise> Wow, syslog is highly crufty.
16:31:28 -!- hiato has joined.
16:41:11 -!- oerjan has joined.
16:42:11 <alise> grr, where is pikhq? I need his opinions
16:42:27 <oerjan> <fizzie> Then you may have to get all your hats from the heads of defeated enemies.
16:42:36 <oerjan> you've been reading girl genius? :D
16:44:59 <oerjan> (http://www.girlgeniusonline.com/comic.php?date=20100519)
16:46:27 <alise> oerjan: you're a linux expert right?
16:46:33 <Sgeo> This is entertaining. Lies are entertain.
16:46:38 <oerjan> no i wouldn't say that
16:46:56 <alise> Sgeo: what
16:47:07 <Sgeo> Just from a song
16:47:33 <Sgeo> http://www.youtube.com/watch?v=jqWD1h4vqg8 [Death Note spoilers]
16:51:55 <fizzie> oerjan: Yes, that's where I got it from.
16:53:31 <oerjan> <alise> I wish someone here had strong opinions >_>
16:53:42 <alise> yeah yeah
16:53:42 <alise> I do
16:53:46 <alise> I meant to get opinions :P
16:54:01 <oerjan> people with strong opinions should be shot, hanged and quartered.
16:54:24 <hiato> ^^
16:55:30 <alise> oerjan: at the same time?
16:55:37 <hiato> alise: u r ugly
16:55:46 <alise> also I believe being hung, drawn and quartered is the more traditional variation :P
16:55:51 <alise> hiato: why thank you
16:55:56 <oerjan> well if you want.
16:56:25 <hiato> alise: u r welkom
16:58:02 <fizzie> After being hung *and* divided to four pieces, I don't think I'd really mind the bit where someone draws a picture of me.
16:59:01 <alise> 1. Dragged on a hurdle (a wooden frame) to the place of execution. This is the original meaning of drawn.[2]
16:59:01 <alise> 2. Hanged by the neck for a short time or until almost dead (hanged).
16:59:02 <alise> 3. The body beheaded, then divided into four parts (quartered).
16:59:22 <alise> Being drawn was neither being drawn nor being disembowelled. :P
16:59:59 <alise> Gregor! pikhq!
17:00:04 <alise> SOMEONE who knows anything :|
17:00:05 <hiato> i liek cheez
17:01:36 <alise> hiato: STOP IT
17:01:37 <alise> :P
17:02:01 <oerjan> hiato: stop being cheesy
17:02:15 <hiato> heh
17:03:52 -!- waga has joined.
17:03:55 <waga> hi
17:04:07 <oerjan> 'evening
17:04:32 <hiato> 'ello
17:05:16 <fizzie> '
17:05:51 * waga finally arrived home. Too much sea shore and non-civilized places affects your brain. :S
17:06:56 <oerjan> waga: btw zzo38 made a comment that reminded me that we have a List of Ideas on the wiki, if you still want some :)
17:10:36 <waga> nice
17:12:02 -!- waga has quit (Quit: Leaving).
17:12:31 -!- waga has joined.
17:12:37 <waga> back
17:12:38 <waga> nice
17:12:46 <waga> i might find a good thing there
17:14:02 <hiato> likely
17:14:07 <alise> waga: non-civilised places? Where?
17:14:12 <hiato> only in the sense that it will fail
17:14:13 <waga> sea shore
17:14:21 <alise> Heh.
17:14:25 <waga> fucking romanian and bulgarian sea shor
17:14:34 <waga> in bulgaria is worse then i thought
17:16:26 <cheater99> waga: what does your nick mean?
17:17:29 <cheater99> alise: btw, 'drawing' is not historically proven to mean being drawn around (say behind a horse)
17:17:45 <alise> Indeed:
17:17:46 <cheater99> it could also mean having your innards drawn, which was depicted in braveheart
17:17:50 <alise> "# Dragged on a hurdle (a wooden frame) to the place of execution. This is the original meaning of drawn.[2]"
17:17:53 <alise> Nope
17:17:57 <alise> *Nope.
17:18:01 <alise> The common misconception about the term 'drawn', that it refers to the act of disembowelment is reported as a confusion that spread even to Judges delivering sentence at the Old Bailey. Nevertheless (or perhaps for that reason), the sentence was often recorded quite explicitly. For example, the record of the trial of Thomas Wallcot, John Rouse, William Hone and William Blake for offences against the king, on 12 July 1683 (see Rye House Plot) itemizes the t
17:18:01 <alise> hree essential acts of the punishment within a fuller prescription, by concluding as follows:
17:18:02 <alise> Then Sentence was passed, as followeth, viz. That they should return to the place from whence they came, from thence be drawn to the Common place of Execution upon Hurdles, and there to be Hanged by the Necks, then cut down alive, their Privy-Members cut off, and Bowels taken out to be burned before their Faces, their Heads to be severed from their Bodies, and their Bodies divided into four parts, to be disposed of as the King should think fit.[4]
17:18:21 <alise> An even more authoritative source than, you know, that: http://www.straightdope.com/columns/read/1049/what-do-drawn-and-quartered-and-keelhauling-mean
17:19:02 <cheater99> yeah, but it wasn't recorded on braveheart's case
17:19:20 <cheater99> and i'm not even sure that was the same time as the sources you quote
17:19:32 <cheater99> anyways, hey
17:19:38 <cheater99> i'm conducting a breaching experiment on facebook
17:19:48 <cheater99> or rather
17:19:48 <waga> alise: nothing. just that i used it when i was smaller and now somebody uses my other nick
17:19:55 <alise> One would assume that those who carried out the sentence would not decide on different interpretations of "drawn" for different cases, being that it was one sentence and all evidence seems to suggest that drawn as in being disembowelled was merely a misinterpretation.
17:19:55 <cheater99> Yet Another Breaching Experiment
17:19:56 <waga> and produces confusion
17:20:13 <alise> Note that those who were drawn to the place of execution were usually disembowelled anyway; just not under the "drawing" part.
17:20:18 <cheater99> so i started adding random people from my hometown and their friends circles, and talking to them, to see what happens
17:20:20 <alise> waga: cheater99 is the one who asked, not me.
17:20:29 <waga> oh
17:20:30 <cheater99> now that usually works out well
17:20:32 <waga> sorry
17:20:45 <cheater99> sometimes they just go 'hey, i don't know you :P' or something like that
17:21:20 <oerjan> "cheater99, my old nemesis. so this is how we meet again. but this time you will not escape."
17:21:31 <waga> i am also named gluon/thedarkgluon/ cp/m or waga
17:21:37 <cheater99> but there's this one pathologic case where one person (whom i added, but have not spoken to directly) has sent me a message saying 'stop talking to my friends because you are from a different social layer'
17:21:40 <waga> on youtube i am IAINMAN96
17:21:46 <cheater99> so i wonder what to answer
17:22:07 <cheater99> i'd already written to that person saying something to the effect of 'i'm sure your buddies can decide on their own'
17:22:26 <cheater99> but this sort of argumentation usually does not work out and draws bad attention by marking you as an intruder
17:23:13 <Sgeo> pidgin decided that it will keep crashing forever, apparently
17:24:44 <cheater99> i am so glad i didn't end up using pidgin
17:24:49 <cheater99> it is such a terrible, terrible cancer
17:27:04 <alise> and facebook isn't
17:28:17 <cheater99> nope
17:28:22 <cheater99> facebook is my sexy heroin
17:28:26 <cheater99> so alise
17:28:28 <Sgeo> Dear AIM password reset: Fuck you
17:28:37 <Sgeo> I don't like security questions
17:28:37 <cheater99> what do you suggest i do with the situation
17:28:50 <alise> i suggest that what you're doing is fairly pointless and will have no ultimate gain so do something better
17:28:58 <cheater99> no no
17:29:06 <cheater99> wrongggg
17:29:14 <alise> So don't ask me.
17:30:53 * Sgeo WTFs at his password
17:32:01 <waga> just piss on it
17:32:04 <waga> it should work
17:32:05 <waga> ;)
17:33:38 <cheater99> waga: what does your nick mean?
17:34:14 <waga> you asked that
17:34:20 <waga> and i answered
17:34:29 <waga> it means nothing
17:34:30 * Sgeo wishes Meebo would work on his N1
17:34:35 <Sgeo> but it keeps getting disconnected
17:40:25 -!- kar8nga has quit (Remote host closed the connection).
17:42:38 <alise> "You mean, of course, remove a character from a string in Ω(n^2) time, but leave one copy of the character behind if the string consists only of that character, and do nothing if the input string has length one."
17:42:44 <cheater99> waga: ok.
17:44:40 -!- hiato has quit (Quit: underflow).
17:44:44 <oerjan> alise: um wouldn't you want O rather than Omega
17:44:50 <oerjan> Omega is a _lower_ bound
17:45:06 <alise> I'm pretty sure they meant Omega.
17:45:08 <alise> The code is pretty awful.
17:45:17 <alise> It's meant to just remove a character from a string.
17:45:45 <oerjan> well i guess Omega to show how bad it is?
17:45:56 <oerjan> why wouldn't it be O(n)
17:46:48 <alise> omg, xarn stole my idea :( :P
17:46:56 <alise> oerjan: because the coder is amazingly awful
17:47:04 <cheater99> wow awesome
17:47:07 <oerjan> O KAY
17:47:10 <cheater99> i'm getting a free Learn You a Haskell
17:47:12 <alise> it was posted to proggit mainly for its footer, which has an amazingly bad way of detecting whether his precious character-removing javascript
17:47:25 <alise> is being used on "non child friendly" websites
17:47:29 <alise> and redirects to the fbi sex offenders registry
17:47:41 <alise> http://www.shawnolson.net/scripts/public_smo_scripts.js#
17:47:42 <alise> *http://www.shawnolson.net/scripts/public_smo_scripts.js
17:47:43 <alise> behold
17:47:50 <alise> cheater99: :( I'm not
17:48:23 <cheater99> alise: you need to be awesomer ^^
17:49:40 <oerjan> alise: um doesn't everyone
17:49:49 <oerjan> unless you mean on paper?
17:50:06 <alise> presumably, he means everyone
17:50:07 <alise> erm
17:50:09 <alise> presumably, he means dead tree
17:51:16 <cheater99> yes.
18:18:37 -!- pikhq has joined.
18:21:26 -!- Gracenotes has quit (Ping timeout: 260 seconds).
18:22:53 -!- MigoMipo has joined.
18:25:30 <augur> alise
18:25:33 <augur> doctor who
18:25:35 <augur> WHAT
18:25:43 <alise> I haven't been watching it; sorry.
18:25:46 <alise> But you mean yesterday's?
18:25:58 <alise> I have it on good authority that it was fucked up.
18:26:03 <oerjan> doctor what, his long lost cousin
18:26:33 <cheater99> lol
18:26:39 <alise> pikhq!
18:26:40 <augur> yes, yesterdays
18:26:50 <augur> doctor how
18:26:56 <augur> the odd doctor out
18:27:09 -!- MigoMipo has quit (Remote host closed the connection).
18:27:26 <pikhq> alise!
18:27:35 <alise> pikhq: Long have I awaited your arrival for you dispensement of valuable opinions; for the purpose of creating something pleasurable to all system administrators; for that reason that it is designed to be usable & preferable to usage by many people with Linux systems; and because that system administration, as a profession, is recognised as the height of this activity; and thus, a system administrator, can be relied upon to give good opinions towards the f
18:27:35 <alise> urthering of this goal.
18:29:58 <pikhq> Hah.
18:30:12 -!- BeholdMyGlory has quit (Ping timeout: 245 seconds).
18:30:15 <alise> pikhq: Do you think that you can help further this goal by the dispensing of opinions in the manner I suggested to be such a manner that you are able of it in the previous message I did send to you on a most recent date?
18:30:34 <pikhq> Follow the law of least surprise as much as possible.
18:30:45 <pikhq> This alone will make everyone worship your programs.
18:30:55 <alise> Lo! but it is a much more specific question; and thus, I shall present it to you, if the consent is given by you, such that I may enact it verily & most true.
18:31:04 -!- BeholdMyGlory has joined.
18:31:13 <pikhq> Then ask the question thine.
18:31:15 <cheater99> my breaching experiment is moving forward
18:31:56 <alise> pikhq: So, I've decided that since init is so... damn simple, it might as well just not exist at all. But then I thought, well, I'd like something to restart services and let me choose which services to start/stop at the current time, etc., and maintain all that for me.
18:32:11 <alise> So then I thought -- and a lot of this was inspired by daemontools and stuff -- well, why not just make the service supervisor run as process 1?
18:32:32 <pikhq> That *is* essentially what you want as an init, yes.
18:32:44 <alise> It doesn't even need to handle shutdown or anything; a shutdown program would just tell the service supervisor to shut down all services, run the rc.stop script (it might want to dismantle some configuration or something), kill everything, then tell the kernel to shut down.
18:32:52 <alise> Process 1 doesn't need to handle that.
18:33:23 <pikhq> Sounds like quite a reasonable pid1 setup.\\
18:33:43 -!- BeholdMyGlory has quit (Remote host closed the connection).
18:34:07 <alise> pikhq: So! My question is: I'm using the directory layout /var/sv/*/{run,down}, a la daemontools and runit.
18:34:16 <alise> pikhq: But how can I mark an enabled vs disabled service?
18:34:34 <alise> However it is done, it must have the draconian restraint that you must be able to mark a service as disabled, but then symlink another directory to it and mark the symlink as enabled.
18:34:36 <pikhq> Make it so that it tracks service dependencies and can spawn multiple processes at once, and you will have something quite good...
18:34:42 <alise> Is this even possible?
18:35:15 <pikhq> Hmm.
18:35:34 <alise> You can't really do it with +x, since not being able to cd into a directory is inconvenient.
18:35:40 <alise> +w makes no sense, and +r is even more disasterous to remove.
18:35:53 <alise> (And -w is also inconvenient, anyway.)
18:35:56 <pikhq> The simplest way is to have a directory for the enabled services that aliseinit looks at, and symlink in the configuration files into that.
18:36:02 <alise> So it seems if it's a permission it has to be some rarely-used thing.
18:36:14 <alise> Say, setuid to root, which is fine because they're only executable as root anyway.
18:36:25 <alise> pikhq: Yes, but that's also quite thoroughly ugly.
18:36:28 <alise> And a pain to use.
18:37:05 <pikhq> Hmm.
18:37:16 <pikhq> It seems that what you *want* is to use extended attributes.
18:37:44 <pikhq> Which are supported by most Linux filesystems. So, you could just have a "aliseinit_enabled" attribute on those files...
18:39:26 -!- BeholdMyGlory has joined.
18:39:27 -!- BeholdMyGlory has quit (Changing host).
18:39:27 -!- BeholdMyGlory has joined.
18:39:29 * waga thinks of making a language wich uses roman numbers and latin commands
18:41:16 <alise> pikhq: Does JFS support them?
18:41:26 <pikhq> Yes.
18:41:44 <alise> I'll consider it.
18:41:51 <alise> pikhq: http://gael-varoquaux.info/computers/garamond/index.html -- wow, it's an actually pretty font for LaTeX.
18:41:56 <pikhq> They're actually supported by most POSIX systems.
18:42:00 -!- MigoMipo has joined.
18:42:00 <alise> A /good/ Garamond.
18:42:04 <pikhq> Since this *is* a POSIX extension...
18:42:10 <alise> (He took URW Garamond and made is less crap.)
18:42:13 <alise> *it
18:42:52 <pikhq> Nice.
18:43:17 <augur> im not too turned off by the standard latex font, honestly
18:43:28 <augur> it has an air of ... quality .. to it
18:43:40 <alise> That's the Didone quality, and it's actually the air of a whore.
18:43:49 <augur> :P
18:45:55 <alise> What I really want is a nice Baskerville for LaTeX.
18:47:08 <pikhq> XeLaTeX can do Opentype fonts; there you go.
18:48:03 <alise> Well, yes, but then you lose the ability to use the microtype package, don't you?
18:48:09 <pikhq> No.
18:48:21 <uorygl> I'm sure at least one of you will understand this sequence: I, II, III, IIII, IVI, IIIVII, IIIIIVIII, VIIVIIII, IVIIIIVIVI, IIIVIVIIVIIIVII, ...
18:48:26 <alise> What I want them for is a high-quality typesetting of all five volumes of The Hitchhiker's Guide to the Galaxy. :P
18:48:35 <oerjan> alise: but doesn't baskerville have the air of a hound?
18:48:38 * oerjan ducks
18:48:38 <alise> Baskerville is certainly H2G2's real typeface.
18:48:47 <augur> uorygl: no
18:48:50 <alise> Compare to the more flowery Garamond.
18:49:10 <pikhq> uorygl: Yes, but why.
18:49:58 <alise> pikhq: Question: Would you happen to know where I could ...obtain... a Hitchhiker's Guide to the Galaxy text with markers for, e.g. the italic quotations of the Guide?
18:50:05 <alise> And preferably different open and close quotes.
18:50:10 <alise> So that I may import it into LaTeX format.
18:50:27 <pikhq> alise: No, I do not.
18:50:36 <alise> Darn.
18:51:02 <oerjan> uorygl: gah
18:51:26 <uorygl> pikhq: because it's off-topic, and this channel is inherently off-topic, maybe. >.>
18:52:03 * oerjan wonders how the roman version develops asymptotically
18:52:26 <alise> uorygl: Is that look-and-say or Thue-Morse?
18:52:36 <oerjan> look-and-say afaict
18:52:36 <alise> Also, I hope you do realise that IIII is arcane.
18:52:45 <alise> Like, even more arcane than Roman numerals themselves.
18:52:48 <oerjan> uorygl: look-and-say is not off-topic! well not much.
18:52:58 <uorygl> IIII is not a Roman numeral; it is the roman numeral III followed by the letter I.
18:53:02 * oerjan has it in his wikipedia watch list
18:53:12 <uorygl> Why would you think it's Thue-Morse?
18:53:34 -!- augur has quit (Ping timeout: 264 seconds).
18:53:45 <pikhq> IIII is a Roman numeral. It's just an archaicism, even for an archaicism.
18:53:52 <alise> IMO, it should go: I, II, III, IV, VI, VI, VI, ...
18:53:59 <uorygl> IVI is not a Roman numeral.
18:54:12 <oerjan> alise: it's look and say you dumb fool
18:54:18 -!- augur has joined.
18:54:22 <alise> Because IIII -> 4 -> IV, IIIV -> 6 -> VI, IVII -> 6 -> VI, ...
18:54:25 <alise> oerjan: See above.
18:54:34 <alise> Canonicalising the Roman numerals at each step produces a cycle.
18:54:42 <uorygl> IIIV could be 2. :P
18:55:03 <alise> oerjan: also, hey
18:55:05 <oerjan> whatever
18:55:12 <alise> oerjan: Bad mood...
18:55:20 <alise> pikhq: So, symlinks or crazy attributes? :P
18:55:40 <oerjan> alise: well slightly. however the canonicized version has very uninteresting development, then
18:55:52 <pikhq> alise: Or a config file. :P
18:55:54 <alise> Obviously.
18:56:00 <alise> pikhq: no, because it's meant to be on the fly
18:56:09 <alise> pikhq: "sv d tty1", for instance
18:56:18 <oerjan> but then so does look-and-say in unary :D
18:56:24 <alise> pikhq: the symlink thing is so that you can have a service tty with the run:
18:56:24 <alise> #!/bin/sh
18:56:25 <alise> exec mingetty $(basename $(dirname "$0"))
18:56:29 <alise> pikhq: and have it disabled
18:56:36 <alise> pikhq: then symlink tty[123456] to it
18:56:37 <alise> and enable them
18:56:43 <pikhq> Mmm.
18:57:15 <alise> http://pastie.org/1012591.txt?key=wicptt1zdexdhmy1azkoyg example process tree
19:03:33 * alise tries to figure out how to tell latex to always set & in italic
19:04:56 <cheater99> make a macro??????????????????
19:05:26 <alise> That would define \foo, not &.
19:06:06 <oerjan> !haskell import Data.List; rn = ["0","I","II","III","IV","V","VI"]; rls s = concat [rn!length g ++ take 1 g | g <- group s]; main = print . take 20 $ iterate rls "I"
19:06:26 <oerjan> darn
19:06:35 <oerjan> !haskell import Data.List; rn = ["0","I","II","III","IV","V","VI"]; rls s = concat [rn!!length g ++ take 1 g | g <- group s]; main = print . take 20 $ iterate rls "I"
19:06:38 <EgoBot> ["I","II","III","IIII","IVI","IIIVII","IIIIIVIII","VIIVIIII","IVIIIIVIVI","IIIVIVIIVIIIVII","IIIIIVIIIVIIIIVIIIIIVIII","VIIVIIIIIVIVIIVVIIVIIII","IVIIIIVVIIVIIIVIIIIIVIIIIVIVI","IIIVIVIIIVIIIIVIIIIIVVIIVIVIIVIIIVII","IIIIIVIIIVIIIIIVIVIIVVIIIVIIIIVIIIVIIIIVIIIIIVIII","VIIVIIIIIVVIIVIIIVIIIIIVIIIIIVIVIIVIIIIIVIVIIVVIIVIIII","IVIIIIVVIIIVIIIIVIIIIIVVIIVVIIVIIIVIIIIVVIIVIIIVIIIIIVIIIIVIVI","IIIVIVIIIVIIIIIVIVIIVVIIIVIIIIIVIIIIVIIIIIVIVIIIVIIIIVIIIIIVVIIVI
19:08:53 -!- Gracenotes has joined.
19:09:09 <pineapple> an esolang using roman numerals?
19:09:24 <oerjan> well not this
19:09:39 <oerjan> but waga considers one
19:09:57 <pineapple> what is that list it just generated supposed to be?
19:10:09 <oerjan> look-and-say using roman numerals
19:10:23 <oerjan> what uorygl pasted above, extended
19:11:05 <oerjan> i'm not sure this version has atoms, or does it
19:12:00 <augur> atoms?
19:12:20 <oerjan> division into substrings that never interact again
19:12:24 <augur> oh
19:13:27 <oerjan> lessee any string must evolve to something starting with I sometimes, because you cannot have more than 3 V's in a row (if even that)
19:14:00 <oerjan> but are there strings that never evolve to anything starting with V? if so those could start atoms
19:15:22 <oerjan> if every string must evolve into both strings starting with I and strings starting with V then there can be no atoms, because every boundary between substrings will sometimes evolve to get matching letters
19:15:39 <oerjan> (the final letter of a string is preserved in descendants)
19:21:22 <oerjan> !haskell import Data.List; rn = ["0","I","II","III","IV","V","VI"]; rls s = concat [rn!!length g ++ take 1 g | g <- group s]; main = print . take 20 . map (take 20 . head) . iterate (drop 4) $ iterate rls "I"
19:21:24 <EgoBot> ["I","IVI","IVIIIIVIVI","IVIIIIVVIIVIIIVIIIII","IVIIIIVVIIIVIIIIVIII","IVIIIIVVIIIVIIIIIVIV","IVIIIIVVIIIVIIIIIVVI","IVIIIIVVIIIVIIIIIVVI","IVIIIIVVIIIVIIIIIVVI","IVIIIIVVIIIVIIIIIVVI","IVIIIIVVIIIVIIIIIVVI","IVIIIIVVIIIVIIIIIVVI","IVIIIIVVIIIVIIIIIVVI","IVIIIIVVIIIVIIIIIVVI","IVIIIIVVIIIVIIIIIVVI","IVIIIIVVIIIVIIIIIVVI","IVIIIIVVIIIVIIIIIVVI","IVIIIIVVIIIVIIIIIVVI","IVIIIIVVIIIVIIIIIVVI","IVIIIIVVIIIVIIIIIVVI"]
19:22:02 <oerjan> it certainly looks like the initial parts repeat every 4 iterations
19:22:46 <oerjan> hm in fact
19:23:15 <oerjan> !haskell import Data.List; rn = ["0","I","II","III","IV","V","VI"]; rls s = concat [rn!!length g ++ take 1 g | g <- group s]; main = print . take 20 . map (take 20 . head) . iterate (drop 400) $ iterate rls "I"
19:23:19 <EgoBot> ["I","IVIIIIVVIIIVIIIIIVVI","IVIIIIVVIIIVIIIIIVVI","IVIIIIVVIIIVIIIIIVVI","IVIIIIVVIIIVIIIIIVVI","IVIIIIVVIIIVIIIIIVVI","IVIIIIVVIIIVIIIIIVVI","IVIIIIVVIIIVIIIIIVVI","IVIIIIVVIIIVIIIIIVVI","IVIIIIVVIIIVIIIIIVVI","IVIIIIVVIIIVIIIIIVVI","IVIIIIVVIIIVIIIIIVVI","IVIIIIVVIIIVIIIIIVVI","IVIIIIVVIIIVIIIIIVVI","IVIIIIVVIIIVIIIIIVVI","IVIIIIVVIIIVIIIIIVVI","IVIIIIVVIIIVIIIIIVVI","IVIIIIVVIIIVIIIIIVVI","IVIIIIVVIIIVIIIIIVVI","IVIIIIVVIIIVIIIIIVVI"]
19:24:37 <waga> cya
19:24:41 <oerjan> !haskell import Data.List; rn = ["0","I","II","III","IV","V","VI"]; rls s = concat [rn!!length g ++ take 1 g | g <- group s]; main = print . take 20 . map (take 20 . head) . iterate (drop 4) $ iterate rls $ "IVIIIIVVIIIVIIIIIVVI" ++ undefined
19:24:43 <EgoBot> ["IVIIIIVVIIIVIIIIIVVI","IVIIIIVVIIIVIIIIIVVI","IVIIIIVVIIIVIIIIIVVI","IVIIIIVVIIIVIIIIIVVI","IVIIIIVVIIIVIIIIIVVI","IVIIIIVVIIIVIIIIIVVI","IVIIIIVVIIIVIIIIIVVI","IVIIIIVVIIIVIIIIIVVI","IVIIIIVVIIIVIIIIIVVI","IVIIIIVVIIIVIIIIIVVI","IVIIIIVVIIIVIIIIIVVI","IVIIIIVVIIIVIIIIIVVI","IVIIIIVVIIIVIIIIIVVI","IVIIIIVVIIIVIIIIIVVI","IVIIIIVVIIIVIIIIIVVI","IVIIIIVVIIIVIIIIIVVI","IVIIIIVVIIIVIIIIIVVI","IVIIIIVVIIIVIIIIIVVI","IVIIIIVVIIIVIIIIIVVI","IVIIIIVVIIIVIIIII
19:25:10 <oerjan> yep the repetition doesn't depend on what comes after
19:25:50 <oerjan> !haskell import Data.List; rn = ["0","I","II","III","IV","V","VI"]; rls s = concat [rn!!length g ++ take 1 g | g <- group s]; main = print . take 20 . map (take 20 . head) . iterate (drop 4) $ iterate rls $ "IVIIIIVVI" ++ undefined
19:25:52 <EgoBot> ["IVIIIIVVIinput.23335.hs: Prelude.undefined
19:25:59 <oerjan> erm
19:26:14 <oerjan> !haskell import Data.List; rn = ["0","I","II","III","IV","V","VI"]; rls s = concat [rn!!length g ++ take 1 g | g <- group s]; main = print . take 20 . tail . map (take 20 . head) . iterate (drop 4) $ iterate rls $ "IVIIIIVVI" ++ undefined
19:26:16 <EgoBot> ["IVIIIIVVIinput.23373.hs: Prelude.undefined
19:27:36 <oerjan> !haskell import Data.List; rn = ["0","I","II","III","IV","V","VI"]; rls s = concat [rn!!length g ++ take 1 g | g <- group s]; main = print . take 20 . drop 2 . map (take 20 . head) . iterate (drop 4) $ iterate rls $ "IVIIIIVVI" ++ undefined
19:27:39 <EgoBot> ["IVIIIIVVIinput.23455.hs: Prelude.undefined
19:28:17 <oerjan> hm it would seem that _does_ depend on the rest
19:28:56 -!- waga has quit (Ping timeout: 252 seconds).
19:34:40 <oerjan> !haskell import Data.List; rn = ["0","I","II","III","IV","V"]; rls s = concat [rn!!length g ++ take 1 g | g <- group s]; main = print . take 20 $ iterate rls "I"
19:34:43 <EgoBot> ["I","II","III","IIII","IVI","IIIVII","IIIIIVIII","VIIVIIII","IVIIIIVIVI","IIIVIVIIVIIIVII","IIIIIVIIIVIIIIVIIIIIVIII","VIIVIIIIIVIVIIVVIIVIIII","IVIIIIVVIIVIIIVIIIIIVIIIIVIVI","IIIVIVIIIVIIIIVIIIIIVVIIVIVIIVIIIVII","IIIIIVIIIVIIIIIVIVIIVVIIIVIIIIVIIIVIIIIVIIIIIVIII","VIIVIIIIIVVIIVIIIVIIIIIVIIIIIVIVIIVIIIIIVIVIIVVIIVIIII","IVIIIIVVIIIVIIIIVIIIIIVVIIVVIIVIIIVIIIIVVIIVIIIVIIIIIVIIIIVIVI","IIIVIVIIIVIIIIIVIVIIVVIIIVIIIIIVIIIIVIIIIIVIVIIIVIIIIVIIIIIVVIIVI
19:35:07 * oerjan wonders why there aren't more than 5 I's in a row
19:35:44 <tombom> wel.l this is fun
19:36:57 <oerjan> i can see why there cannot be more than six, assuming you cannot have more than two V's
19:38:48 <oerjan> ok five is max assuming you cannot have three I's followed by two V's
19:39:43 <oerjan> ok you cannot have more than two V's
19:40:23 <pineapple> is it possible for look and say to ever contain "33", assuming it started from "1" ?
19:40:31 <oerjan> no
19:40:41 <oerjan> or wait
19:40:47 <oerjan> yes
19:41:03 <oerjan> what you cannot have is 333
19:41:41 <oerjan> !haskell import Data.List; rn = ["0","I","II","III","IV","V"]; rls s = concat [show(length g) ++ take 1 g | g <- group s]; main = print . take 20 $ iterate ls "1"
19:41:43 -!- ais523 has joined.
19:41:53 <oerjan> er
19:42:02 <oerjan> !haskell import Data.List; ls s = concat [show(length g) ++ take 1 g | g <- group s]; main = print . take 20 $ iterate ls "1"
19:42:22 <oerjan> now what
19:42:39 <alise> hi ais523!
19:42:44 <oerjan> !help
19:42:45 <EgoBot> ["1","11","21","1211","111221","312211","13112221","1113213211","31131211131221","13211311123113112211","11131221133112132113212221","3113112221232112111312211312113211","1321132132111213122112311311222113111221131221","11131221131211131231121113112221121321132132211331222113112211","311311222113111231131112132112311321322112111312211312111322212311322113212221","132113213221133112132113311211131221121321131211132221123113112221131112311332111213211322
19:42:50 <oerjan> ok that bug again
19:43:06 <oerjan> pineapple: you will see some 33 in there
19:43:10 <ais523> hi alise
19:43:28 <alise> ais523: i'm writing an init system, isn't that interesting. :P
19:43:34 <ais523> heh, it is vaguely
19:43:41 <ais523> I was learning to make .deb packages
19:43:56 <ais523> also, I went and used autoconf for a Java program, just to make people's heads explode
19:46:05 * alise hastily attempts to change the font LaTeX is using; to typeset something translated from German in a Didone font is something akin to murdering a young child.
19:47:47 <SevenInchBread> hmmm... perhaps I should use Mnesia for persistent storage.
19:48:02 <oerjan> In seinen Armen das Kind war tot
19:51:27 * pikhq notes a lack of modern floppy distros.
19:51:30 * pikhq should fix this.
19:51:47 <pikhq> I want X11 running off of floppy disks *because I can*.
19:53:34 <oerjan> (1) note that no roman numeral contains more than 3 equal letters in a row. from this it follows that after one generation, you cannot have more than 7 equal letters in a row.
19:54:03 <alise> pikhq: :)
19:54:13 <alise> pikhq: If you use Xvfb you can avoid including drivers, which would help fit it on.
19:54:55 <alise> pikhq: Statically link everything with uclibc, have no kernel modules and remove almost everything from the kernel (support only floppy fs, say), use busybox, strip down x11 to only have framebuffer drivers, and don't start any services but... getty.
19:54:56 <oerjan> (2) note that now each numeral used contains a maximum of 3 I's and 1 V. from this it follows that after _two_ generations, you cannot have more than 7 I's or 3 V's.
19:54:58 <alise> And the network.
19:55:01 <pikhq> alise: I was thinking of using kdrive, actually.
19:55:06 <alise> pikhq: Then you'll have room for, say, dillo.
19:55:20 <alise> pikhq: And feh, and maybe even a stripped down X-Chat; failing that, irssi.
19:55:26 <pikhq> Which is a full-featured but very very very tiny X11 implementation.
19:55:28 <alise> Some IM client, probably, like ayttm.
19:55:37 <alise> Well, I guess not X-Chat.
19:55:51 <alise> But feh, irssi and ayttm will probably fit if you have a ~100 KiB kernel and ... how big is busybox again?
19:55:55 <pikhq> I'd probably compile it with the VESA driver.
19:56:10 <alise> As of X.Org Server version 7.1, the KDrive framework was integrated into the reference implementation and is now part of the generic source code release of the server.
19:56:19 <pikhq> Busybox is about 500k if you don't do too much to it.
19:56:20 <alise> pikhq: But framebuffer lets you have NO DRIVERS AT ALL.
19:56:28 <alise> How much can you strip busybox? Don't need telnetd, or its init.
19:56:32 <alise> The actual init can just be a shell script.
19:56:43 <pikhq> The framebuffer still has drivers.
19:56:49 <pikhq> In-kernel drivers instead of in-userspace.
19:56:58 <alise> But are they smaller than vesa?
19:57:07 <pikhq> Kdrive only can have one driver.
19:57:10 <pikhq> It gets compiled in.
19:57:14 <alise> Fair enough.
19:57:30 <alise> Does anyone know how to make the LaTeX memoir class use Roman numerals for chapter numbers?
19:57:34 <oerjan> (3) after three generations, this reduces to 7 I's or 2 V's, (4) then after four to 6 I's or 2 V's
19:57:35 <pikhq> So, technically no drivers, just a question of what hardware there's compiled in support for.
19:57:46 <pikhq> Also, all your figures there, alise? Those are before compression.
19:57:59 <alise> Oh, of course.
19:58:08 <pikhq> I would at bare minimum be using an lzma'd initrd.
19:58:10 <alise> pikhq: Hmm... you could compress it with xz, if your booter supports that.
19:58:15 <alise> I assume xz will fit on the floppy.
19:58:23 <pikhq> Modern Linux has support for lzma compression.
19:58:28 <alise> pikhq: Hey, we should do this. It'd be fun.
19:58:40 <pikhq> Including for the kernel image.
19:58:41 <alise> Maybe even a "package manager" that installs some optional software to RAM from the interwebs?
19:58:55 <alise> Working on the assumption that you have over 1.44 MiB of RAM.
19:59:18 <pikhq> Even a 386 should fit that assumption.
20:02:17 -!- impomatic has joined.
20:02:31 <impomatic> Hi :-)
20:07:17 <alise> Nobody knows?
20:07:27 <alise> pikhq: It needs a silly name.
20:10:46 <oerjan> IIIIII <- (V)IIIVV(I) <- (V)IVIIIII(V), (V)IIIIIIVIIIII(V), (V)IIIIVVIIIII(V) or (V)IIIIIVVIIIII(V) afaict
20:11:01 <ais523> alise: Busybox is designed to be stripped, you can choose which binaries to put in there at compile time
20:11:08 <alise> ais523: yeah
20:11:18 <oerjan> oh wait there can also be six I's at the end
20:11:18 <alise> say
20:11:22 <alise> in latex, when typesetting something to be printed on a book
20:11:26 <alise> what size argument do you pass
20:11:28 <alise> like a4paper etc
20:19:13 -!- pikhq has quit (Remote host closed the connection).
20:24:02 * oerjan finds no very interesting links about the roman look and say sequence (it's in OEIS, fwiw)
20:24:20 <alise> how? binary?
20:24:26 <oerjan> (with substitution I -> 1, V -> 5)
20:25:16 <ais523> hmm, netcat's telnet mode is buggy
20:25:51 <ais523> in the telnet protocol, requests and acknowledgements have the same syntax and you distinguish which is which by remembering the history of the connection
20:26:15 <ais523> netcat interprets all telnet metadata as requests and sends acknowledgements
20:26:21 <ais523> and if both ends of the connection do that, you get an infinite loop
20:26:53 <oerjan> anyway even if it doesn't have atoms, it should still grow in much the same way as the ordinary one, i think, since substrings that have sufficient _distance_ should not be able to interact
20:27:10 <ais523> oerjan: is this the look-and-say sequence in Roman numerals?
20:27:32 <oerjan> yes
20:28:16 <oerjan> it's not obvious that it has atoms like the ordinary one, since string descendants can fluctuate between starting with I or V
20:28:42 <oerjan> !haskell import Data.List; rn = ["0","I","II","III","IV","V"]; rls s = concat [rn!!length g ++ take 1 g | g <- group s]; main = print . take 20 $ iterate rls "I"
20:28:45 <EgoBot> ["I","II","III","IIII","IVI","IIIVII","IIIIIVIII","VIIVIIII","IVIIIIVIVI","IIIVIVIIVIIIVII","IIIIIVIIIVIIIIVIIIIIVIII","VIIVIIIIIVIVIIVVIIVIIII","IVIIIIVVIIVIIIVIIIIIVIIIIVIVI","IIIVIVIIIVIIIIVIIIIIVVIIVIVIIVIIIVII","IIIIIVIIIVIIIIIVIVIIVVIIIVIIIIVIIIVIIIIVIIIIIVIII","VIIVIIIIIVVIIVIIIVIIIIIVIIIIIVIVIIVIIIIIVIVIIVVIIVIIII","IVIIIIVVIIIVIIIIVIIIIIVVIIVVIIVIIIVIIIIVVIIVIIIVIIIIIVIIIIVIVI","IIIVIVIIIVIIIIIVIVIIVVIIIVIIIIIVIIIIVIIIIIVIVIIIVIIIIVIIIIIVVIIVI
20:29:30 <oerjan> (for ordinary look-and-say, they tend to settle down to starting either with 22 or with 1 and 3 varying)
20:30:46 <alise> 1111111111 turns into 101 in decimal look and say right?
20:30:56 <oerjan> well yes
20:31:22 <oerjan> but the more than one digit length blocks are sort of anomalies that are quickly reduced
20:31:49 <oerjan> down to max 3
20:32:24 <oerjan> which means it's uninteresting for the asymptotic behavior, as is the difference between all bases >= 4
20:33:04 <ais523> what about binary look-and-say?
20:33:21 <oerjan> yeah that behaves somewhat differently
20:33:26 <ais523> presumably it settles down in much the same way, though
20:33:31 <alise> oerjan: i'm mainly interested in arbitrary starters
20:33:32 <ais523> I think you can't maintain long sequences of zeros
20:33:40 <oerjan> yeah, as does base 3, in yet another way. iirc.
20:33:42 <alise> like n repeated n times for every n digits in the base
20:33:50 <alise> with 0 coming last
20:34:02 <alise> 1100, 111222000, 1111222233330000
20:34:03 <alise> the last one:
20:34:31 <alise> 1111222233330000 -> 101102103100 -> 11102110121110131120
20:34:54 <alise> -> 3110122110111231101113211210
20:34:58 <alise> I guess it never does grow beyond 3.
20:35:04 <alise> I wonder why that is; I know that it is, but not why.
20:35:24 <AnMaster> fizzie, I extended the program on my panorama platform to be able to take bracketed shots
20:35:39 <AnMaster> fizzie, but now the program is a whopping 1018 bytes
20:35:40 <AnMaster> :/
20:36:07 <AnMaster> well the source is 9.3 KB but I meant the compiled program
20:36:24 <ais523> alise: suppose you have less than 10 of any number in sequence; if you had four of the same number in a row, it would be either "n ns, n ns", or "x ns, n ns, n ys"; in each case, you're talking about the same number twice in a row, which can't happen in runlength encoding
20:37:00 <oerjan> !haskell import Data.List; import Numeric; import Data.Char; ls b s = concat [showIntAtBase b intToDigit (length g) "" ++ take 1 g | g <- group s]; main = print . take 20 $ iterate (ls 2) "1"
20:37:04 <alise> ais523: clever
20:37:06 <fizzie> AnMaster: What sort of resources does your platform have?
20:37:06 <EgoBot> ["1","11","101","111011","11110101","100110111011","111001011011110101","111100111010110100110111011","100110011110111010110111001011011110101","1110010110010011011110111010110111100111010110100110111011","1111001110101100111001011010011011110111010110100110011110111010110111001011011110101","10011001111011101011001111001110101101110010110100110111101110101101110010110010011011110111010110111100111010110100110111011","1110010110010011011110111010110010
20:37:23 <alise> Does anyone know why novels often have a ToC at the beginning?
20:37:35 <ais523> I don't think I've seen a novel with a ToC before
20:37:40 <ais523> maybe I should pay more attention
20:37:42 <AnMaster> fizzie, well 16 bit address space. A lot is taken up by the ROM, and then a lot of what is left is taken up by the kernel for the OS
20:37:44 <alise> Often my eyes are drawn to them and they can contain minor spoilers of the kind that suggest what form the novel is going to take.
20:37:51 <ais523> collections of short stories have them, but that's kind-of obvious
20:37:52 <AnMaster> fizzie, so I'm not sure, pretty limited
20:37:53 <alise> They should really go at the back, for reference purposes only (in case you lose your bookmark or something).
20:38:02 <AnMaster> fizzie, actually I think there might be a way to check free ram
20:38:07 * AnMaster checks docs
20:38:19 -!- relet has joined.
20:39:10 <AnMaster> fizzie, 15.7F
20:39:14 <AnMaster> fizzie, whatever that is
20:39:35 * AnMaster reads the source to find out how to interpret the value
20:40:16 <fizzie> 15.7 farads of RAM.
20:40:24 <AnMaster> fizzie, it is hex I know
20:41:03 <ais523> .7F is just under 1/2
20:41:04 -!- pikhq has joined.
20:41:07 <AnMaster> lcd_number(((mm_free_mem()>>7)*100)>>3, unsign, e_2);
20:41:09 <AnMaster> fizzie, ^
20:41:20 <ais523> if you use a hexadecimal point
20:41:25 <AnMaster> that is the code it uses to display it
20:41:33 <AnMaster> I have _no_ clue how to interpret it
20:41:37 <AnMaster> it seems silly anyway
20:41:45 <AnMaster> that computation I mean
20:41:53 <AnMaster> the e_2 stuff defines where to put the dot
20:42:14 <AnMaster> so yeah ((mm_free_mem()>>7)*100)>>3 would give you 0x157F
20:42:20 <AnMaster> just work backwards from that
20:42:28 <AnMaster> fizzie, :P
20:43:06 -!- pikhq has quit (Remote host closed the connection).
20:43:09 <ais523> !c printf("%ld", ((0x157fL << 3) / 100) << 7);
20:43:15 <EgoBot> 56320
20:43:22 <ais523> there you go
20:43:56 <oerjan> ais523: for binary, if you have more than 9 in a row then it's easy to see they'll have to come from an even longer sequence previously. and then you can argue that it whittles down a bit below 9 later iirc, i don't recall the number
20:43:57 <fizzie> A rather weird way to represent it, still.
20:44:04 <AnMaster> fizzie, well add to that the programs I have on it: 80+1018+206
20:44:10 <AnMaster> bytes
20:44:20 <fizzie> That's still quite many bytes.
20:44:25 <AnMaster> the two smaller ones are diagnostic ones that just shows some sensor values
20:45:00 <AnMaster> fizzie, about 56.27 kiB yes
20:45:15 <oerjan> well the fact that every numeral starts with 1 means it's even harder to get many zeroes than many ones
20:45:15 -!- pikhq has joined.
20:45:19 <AnMaster> <ais523> I don't think I've seen a novel with a ToC before <-- ? I have
20:45:39 <oerjan> *every numeral used (zero isn't used)
20:45:52 <ais523> AnMaster: anyway, what it's doing: the >>7, >>3 converts bytes to kilobytes, and the *100 is a scaling factor
20:46:08 <AnMaster> ais523, why is it scaling like that though
20:46:08 <ais523> *kibibytes
20:46:19 <ais523> AnMaster: presumably to give a more accurate value
20:46:24 <ais523> it gives kibibytes to two decimal places
20:46:30 <ais523> which would be useful if it didn't then convert the answer to hex
20:46:31 <AnMaster> ais523, it is a rather awkward number to read
20:46:51 <ais523> !c printf("%d", 0x157f)
20:46:52 <EgoBot> 5503
20:47:05 <ais523> 55.03 KiB, approximately
20:47:09 <AnMaster> ais523, well it has to be hex, it can't fit on the screen otherwise. it has 4x 7-segment displays
20:47:12 <ais523> I imagine quite a lot of accuracy is lost in the rounding errors
20:48:00 <fizzie> The C64 has 38911 bytes free after loading BASIC; that was a trivia question in a department event. We weren't supposed to be using interwebs/google for the answers, but fortunately I had a C64 emulator in my pocket. Anyhow.
20:48:32 <AnMaster> fizzie, a c64 emulator on your n900?
20:48:44 <fizzie> AnMaster: A C64 emulator on the N-gage; this was a while ago.
20:48:49 <AnMaster> ah
20:48:58 <AnMaster> fizzie, do you still have the ngage?
20:49:31 <fizzie> Yes, though I haven't touched it after getting the N900.
20:49:38 <AnMaster> ah
20:49:52 <ais523> I didn't realise anyone actually bought those things
20:50:13 <fizzie> Hey, someone's added a real menu bar to this copy of VICE. (It used to be a funky-looking popup menu from the screen.)
20:50:14 <AnMaster> heh
20:50:20 <ais523> game cartridge you have to remove the battery to change?
20:50:27 <ais523> (although IIRC they fixed that in a later version)
20:50:27 <pikhq> Huh.
20:50:32 <AnMaster> fizzie, oh yes I hate that popup menu
20:50:38 <AnMaster> fizzie, it was buggy iirc
20:50:48 <fizzie> ais523: Yes, the "QD" version made the memory card (it's not actually a cartridge) swappable without removing the battery.
20:51:06 <fizzie> ais523: The QD also removed the "side-talking" thing.
20:51:13 <AnMaster> fizzie, side talking?
20:51:15 <alise> 1011 -> 01 or 11111
20:51:42 <fizzie> AnMaster: You had to hold the original model like this: http://darky.net/images/retardedPhones/ngage-sidetalk.jpg
20:51:49 <fizzie> (With exactly that facial expression.)
20:51:54 <AnMaster> fizzie, haha
20:52:03 <AnMaster> fizzie, how did they think when releasing that
20:53:17 <fizzie> http://www.sidetalkin.com/page-6.html -- as you can see, they got mocked pretty hard for it.
20:53:40 <alise> xD @ http://darky.net/images/retardedPhones/ngage-sidetalk.jpg
20:54:15 <AnMaster> fizzie, not all of those are even side talking!
20:54:52 <fizzie> AnMaster: Speaking of which, here's a six-shot panorama from a hotel room we were for the Fri-Sat night: http://zem.fi/~fis/hotel-room-view.jpg
20:55:29 <AnMaster> fizzie, doesn't look panoramaish at all?
20:55:39 <AnMaster> just a nice wide angle
20:55:54 <AnMaster> apart from the seam on the edge
20:55:59 <AnMaster> (tsk tsk, parallax!)
20:56:07 <alise> "UPDATE 10-2009 WHAT WHAT WHAT WHAT WHAT NOW ALL N-GAGE IS DEAD NOKIAaaaaaaaa you were my lover I CANNOT TYPE THROUGH TEARS GOODBYTE ^_((((((("
20:56:08 <alise> Indeed.
20:56:35 <fizzie> The window was a bit deeply embedded in the wall, so you couldn't get a very wide-angle view from it.
20:56:38 <fizzie> It's from http://www.sokoshotels.fi/en/hotels/helsinki/torni/
20:56:43 <fizzie> (Away for some moments.)
20:56:44 <alise> "# ...WAIT!! IT IS MISSING THE SIDETAKLIN' FEATURE, THE VERY BIGGEST FEATURE THAT MADE T N-GAGE THE WORLDS #1 PHONE!!! THEY HAVE DONE THE UNTHINKABLE, REMOVE ORIGINALITY, REPLACED WITH NORMAL!!!!!"
20:56:53 <SevenInchBread> erl_massive_tuple_function_of_pain()
20:56:55 -!- MizardX has joined.
20:58:29 <AnMaster> fizzie, fish eye at the window would work ;P
20:58:37 <AnMaster> SevenInchBread, why would you use that?
20:58:56 <AnMaster> SevenInchBread, if you aren't pattern matching you are most likely doing something wrong :P
20:58:57 -!- SevenInchBread has changed nick to CakeProphet.
20:59:12 <AnMaster> CakeProphet, so which function?
20:59:14 <CakeProphet> AnMaster: They're everywhere in the Standard Library.
20:59:15 <AnMaster> and why
20:59:23 <CakeProphet> all of them.
20:59:32 <AnMaster> I don't know of any
20:59:35 <AnMaster> tell me which ones
20:59:48 <CakeProphet> I was going through the Mnesia database functions
20:59:55 <AnMaster> oh, never used mnesia
20:59:59 <AnMaster> so can't speak about it
21:00:02 <impomatic> Saw this at the Vintage Computer Festival and planning to get one http://www.alwaysinnovating.com/touchbook
21:00:05 <CakeProphet> they all want huge tuple specification arguments.
21:00:07 <CakeProphet> well, not all
21:00:08 <CakeProphet> but a lot.
21:00:12 <CakeProphet> which is fine
21:00:18 <CakeProphet> it's just taxing on my brain to read about all of them.
21:00:25 <AnMaster> CakeProphet, okay, so I guess mnesia is bad, but as I never used on it I can't comment upon that
21:00:43 <CakeProphet> Mnesia is actually fine. It's exactly what I want to use.
21:00:49 <CakeProphet> persistent table storage with backups.
21:00:57 -!- tombom_ has joined.
21:01:00 <CakeProphet> with atomic transactions too.
21:01:09 -!- tombom has quit (Ping timeout: 265 seconds).
21:01:12 <AnMaster> CakeProphet, a word of warning: it does transactions by optimistic concurrency
21:01:28 <AnMaster> means it tries again in case of collisions, rather than locking in the first place
21:01:29 -!- tombom_ has quit (Client Quit).
21:01:37 -!- tombom has joined.
21:01:38 <AnMaster> CakeProphet, with lots of conflicting updates this can be an issue
21:01:48 <AnMaster> for performance
21:01:54 <CakeProphet> oh yeah, but you can configure the number of retries too.
21:02:02 <AnMaster> true
21:02:14 <AnMaster> and it works very well with mostly reads and few conflicting updates
21:02:17 <CakeProphet> but infinite retries should be fine. If I'm modelling the consistency of my concurrent system correctly.
21:02:37 <AnMaster> CakeProphet, but in case of many conflicting updates then you could run into performance issues
21:02:45 <CakeProphet> updates in this system will take the form of user-input, which can occur at any time.
21:02:56 <CakeProphet> from multiple people on the system.
21:03:01 <AnMaster> CakeProphet, well probably not going to swamp the system still
21:03:13 <AnMaster> you don't expect a WoW do you? ;P
21:03:25 <CakeProphet> right. There's not going to be many people trying to update the same thing at once... and if there is I'll work out conflicts.
21:03:29 <CakeProphet> nah. :P
21:03:33 <CakeProphet> 10-20 people at the most
21:03:42 <AnMaster> should be no issues
21:03:45 <CakeProphet> maybe 5-7 in the same place at once
21:03:52 <AnMaster> the issues would be hundreds of conflicting updates per second or such
21:03:55 <CakeProphet> and most of the time they won't even be interacting with anything.
21:05:07 <fizzie> AnMaster: There's also http://zem.fi/~fis/hotel-room-horizon.jpg which is from few (10) larger-zoom (223 mm focal length for 35mm-film-equivalent; 37.1 mm physical, but that's not very interesting) snaps of the horizon of the previous image.
21:06:10 <CakeProphet> the atomic transactions will actually solve alot of the issues I was going to have to work out with operations that make multiple updates.I'm wondering if there's a way to stop retrying inside the transaction.
21:06:44 <CakeProphet> sometimes I want the transaction to fail, not retry, send an error message, and stop.
21:08:27 * AnMaster loads
21:09:53 <fizzie> (It'll take a while again.)
21:09:58 <AnMaster> CakeProphet, no clue, since I never used mnesia
21:10:05 <AnMaster> fizzie, again?
21:10:22 <AnMaster> what will take a while again?
21:10:37 <AnMaster> fizzie, nice skyline
21:10:41 <AnMaster> fizzie, which city is it?
21:13:29 <CakeProphet> ah... I was simply wrong about when retries occur. Retries only occur on deadlocks, but not /all/ faulty transactions.
21:13:43 <CakeProphet> This is good.
21:13:43 <AnMaster> indeed
21:13:56 <CakeProphet> hmmm.. I'm trying to figure out when a deadlock would occur though...
21:13:59 <AnMaster> this sounds familiar
21:14:06 <AnMaster> CakeProphet, not sure
21:14:25 <fizzie> AnMaster: Helsinki.
21:14:49 <AnMaster> CakeProphet, you realise you are dropping some of the asyncness of erlang in favour of a more traditional model by using mnesia?
21:16:30 <CakeProphet> Yeah, perhaps. But otherwise I'd just be doing all of this manually.
21:17:40 <AnMaster> hm
21:17:45 <CakeProphet> well
21:17:54 <CakeProphet> I was going to use dirty reads/writes a lot for common operations
21:18:01 <AnMaster> hm okay
21:18:03 <CakeProphet> since only one process will be in access to a particular table at a time.
21:18:10 <AnMaster> oh?
21:18:15 <AnMaster> I don't remember that
21:18:20 <CakeProphet> well
21:18:28 <AnMaster> but I guess so
21:18:34 <CakeProphet> players, for example, will have a process that handles table transactions for other processes
21:18:34 <AnMaster> since mnesia probably acts as a server
21:18:52 <CakeProphet> AnMaster: not a mnesia thing. Just what I'm doing.
21:18:59 <AnMaster> ah
21:19:09 <ais523> hmm, this Java project has an URLStreamHandlerFactory, how enterprisey
21:19:18 <AnMaster> ais523, *puke*
21:19:42 <CakeProphet> The thing about JAva
21:19:45 <ais523> AnMaster: it's not as bad as it seems
21:19:46 <CakeProphet> is that you cannot help but use such names.
21:19:59 * CakeProphet has actually gotten used to Java idioms.
21:20:14 <ais523> it's basically around six lines of code that delegate ways to interpret URLs that Java doesn't know about to classes which do know how
21:20:41 <AnMaster> ais523, better name: "UrlDispatcher"
21:20:44 <AnMaster> and as a function
21:20:47 <AnMaster> not as a class
21:20:52 <CakeProphet> ha
21:20:53 <CakeProphet> what?
21:20:54 <CakeProphet> that's impossible.
21:20:59 <AnMaster> or even better: url_dispatcher
21:21:08 <AnMaster> drop the horrible camel case
21:21:08 <CakeProphet> Don't you know, /everything/ is an object.
21:21:21 <AnMaster> CakeProphet, yes but put it as a function in some other class
21:21:24 <ais523> AnMaster: but the point is that the URLStreamHandlers are persistent
21:21:28 <ais523> each one only gets created once
21:21:33 <ais523> and then gets cached
21:21:36 <fizzie> Everything's an object, except those things that aren't, like basic types.
21:21:42 <AnMaster> ais523, that is what sane languages have global variables for!
21:22:06 <ais523> AnMaster: Java has effectively global variables too
21:22:10 <AnMaster> oh?
21:22:14 <CakeProphet> ...I never give difference of opinion on naming conventions any real credit. They are all equally suitable as long as the convention is consistent.
21:22:15 <ais523> but you don't normally use them, except sometimes for constants
21:22:21 <CakeProphet> static variables are pretty much global
21:22:24 <ais523> AnMaster: you need to put them into a class, but only for namespacing purposes
21:22:30 <ais523> apart from that they act just like global variables
21:22:37 <AnMaster> hm
21:22:50 <AnMaster> ais523, does java have static class methods stuff?
21:23:01 <CakeProphet> yeah, I've seen a lot of Java code that instantiates singletons as a static (read: effectively global) variable.
21:23:01 <AnMaster> if that you could just use those and put everything in a single class
21:23:05 <AnMaster> and be done with it
21:23:25 <CakeProphet> AnMaster: yes there are static class methods.
21:23:32 <AnMaster> then just use that
21:23:41 -!- waga has joined.
21:23:41 <waga> hi
21:23:43 <CakeProphet> the Math class has a lot, for example. Math.cos, Math.sqrt, etc
21:23:44 <ais523> hi
21:23:46 <AnMaster> and do classical programming avoiding the OO stuff
21:23:48 * waga still thinks of a language
21:24:03 <AnMaster> waga, which one?
21:24:05 <fizzie> The "main" method needs to be static too.
21:24:07 <CakeProphet> AnMaster: You can effectively mimic procedural style in Java with static declarations.
21:24:11 <ais523> AnMaster: I've translated C into Java literally using similar methods
21:24:34 <ais523> because I needed a bzip2 decompressor in Java, and none of the available ones had an appropriate license, so I just translated one from the C
21:24:42 <waga> AnMaster: none, i am trying to think of a new language
21:24:56 <AnMaster> ais523, JNI?
21:24:56 <CakeProphet> ais523: ha. That's pretty crafty.
21:24:57 <ais523> yay, new language
21:25:03 <CakeProphet> probably a huge pain just to decompress bzip2 though...
21:25:05 <ais523> AnMaster: ugh, that breaks cross-platformness
21:25:18 <AnMaster> hm good point
21:25:27 <AnMaster> ais523, but you could just recompile it for each platfornm
21:25:31 <AnMaster> platform*
21:25:32 <alise> Or just translat it.
21:25:33 <alise> *translate
21:25:42 <AnMaster> ais523, it is still cross platform in the sense that C is
21:26:21 <ais523> AnMaster: it's not cross-platform in the sense that I can distribute a binary and have it work
21:26:33 <waga> Would it be a shame if I'd make another brainfuck derivative?
21:26:34 <ais523> I'm distributing sources too, but I don't expect the target audience of the program to be able to compile things
21:26:40 <alise> waga: YES.
21:26:42 <alise> DO NOT.
21:26:49 <alise> Unless it's REALLY good (it is not).
21:26:57 <waga> hehe
21:26:58 <AnMaster> ais523, what is the program?
21:27:02 <ais523> AnMaster: jettyplay
21:27:06 <AnMaster> ais523, ?
21:27:09 <ais523> ttyrec player
21:27:11 <AnMaster> ah
21:27:21 <AnMaster> ais523, I would expect those to be able to compile it :P
21:27:21 <ais523> I'm thinking of backronyming it into "Java Enterprisey Ttyrec Player"
21:27:30 <ais523> AnMaster: I want to bring ttyrecs to a wider audience
21:27:39 <AnMaster> ais523, outside the nethack crowd?
21:28:03 <ais523> AnMaster: there are a lot of people who are vaguely interested in NetHack, but not in the "nethack crowd" because of this sort of attitude
21:28:23 <AnMaster> ais523, what sort of attitude?
21:28:40 <fizzie> ais523: I've also translated literally some C code written in the "a single struct + pile of functions that all take as a parameter pointer to that struct, plus new/free funcs for it" style into Java, by converting the struct into a class, the data fields to public members, and the functions to static methods; but I couldn't stand looking at that for long, I just had to turn those functions into real methods to make the struct-pointer
21:28:41 <fizzie> -parameter implicit. When in Java, do as the Javans do.
21:28:43 <ais523> assuming that people need to know a lot about compiling and terminals and Linux and so on just to run NetHack
21:29:04 <ais523> fizzie: the advantage of the bzip2 translation was that the code wasn't even vaguely object-oriented to start with
21:29:09 <ais523> so it doesn't look wrong at all once translated
21:29:17 <ais523> apart from a small amount of passing magic numbers around
21:29:33 <AnMaster> ais523, what do you mean passing magic numbers around?
21:29:39 <AnMaster> #defines?
21:29:53 <ais523> AnMaster: returning, say, 3 from a function to say that something happened
21:30:00 <ais523> although I think I made that into an enum in the end
21:30:05 <AnMaster> ais523, I would use a #define or enum in C
21:30:43 <waga> *fuckign LinuxConsole distro doesn't include gcc*
21:30:50 <waga> WHY????
21:30:54 <AnMaster> waga, never heard of that distro
21:31:01 <waga> better
21:31:16 <waga> i found it in the unetbootin menu and thought i should try it.
21:31:23 <waga> it is ok excepting this
21:31:34 <AnMaster> waga, unetbootin?
21:31:43 <AnMaster> I never heard of that either
21:32:13 <waga> unetbootin=program that downloads and installs about 20 distros automatically on the USB sticl
21:32:22 <AnMaster> I see
21:32:42 <AnMaster> and the point of that is?
21:32:56 <AnMaster> why would I want to have 20 distros on an usb stick
21:33:02 <alise> no, it doesn't install them all
21:33:04 <alise> it installs one you select
21:34:35 <waga> how can i install gcc on a linux distro without repository?
21:34:37 <waga> :S
21:34:39 -!- relet has quit (Read error: Connection reset by peer).
21:34:50 <waga> i can't compile gcc without gcc
21:34:58 <waga> nor can i compile nano
21:35:05 <AnMaster> how should I know
21:35:05 -!- relet has joined.
21:35:09 <AnMaster> I would switch distro
21:35:18 <AnMaster> waga, arch linux is noce
21:35:19 <AnMaster> nice*
21:35:22 <waga> i just lost 5 hours using it
21:35:23 <ais523> waga: you could try finding some gcc binaries and using them to bootstrap
21:35:44 <waga> i will first print the LinuxConsole logo, then piss on it
21:35:57 <waga> then boot my mirbsd laptop and be happy
21:37:24 <AnMaster> 1) waga, I wouldn't use a distro without a repo
21:37:30 <waga> nor me
21:37:37 <fizzie> waga: It has these things called "modules", and http://linuxconsole.free.fr/1.0/modules/ includes "gcc4" in a deps list of one module, but that website seems equally broken as the linuxconsole.org one.
21:37:39 <AnMaster> 2) I would suggest reading stuff about it in advance
21:37:39 <waga> i love the freebsd ports
21:37:43 * oerjan confirms that roman numeral look-and-say sequences must eventually have strings starting with V.
21:37:53 <waga> oh
21:37:54 <waga> ok
21:37:58 <AnMaster> oerjan, ?
21:38:07 <AnMaster> oerjan, what is look-and-say?
21:38:20 <oerjan> AnMaster: um you weren't here earlier? also you don't _know_ that?
21:38:53 <oerjan> ordinary look-and-say is the sequence 1, 11, 21, 1211, 111221, 312211 etc.
21:39:13 <AnMaster> oerjan, how do those work?
21:39:51 <oerjan> 1 is one 1 -> 11. 11 is two 1's -> 21. 21 is one 2 and one 1 -> 1211
21:39:57 <AnMaster> oh
21:39:58 <AnMaster> hah
21:40:28 <oerjan> now for today's puzzle, count with roman numerals instead
21:40:44 <oerjan> !haskell import Data.List; rn = ["0","I","II","III","IV","V"]; rls s = concat [rn!!length g ++ take 1 g | g <- group s]; main = print . take 20 $ iterate rls "I"
21:40:45 <ais523> anyone here know how telnet works? I'm wondering if you have to encode CR without LF as 13,0 when in binary mode, or whether just 13 is sufficient
21:40:46 <EgoBot> ["I","II","III","IIII","IVI","IIIVII","IIIIIVIII","VIIVIIII","IVIIIIVIVI","IIIVIVIIVIIIVII","IIIIIVIIIVIIIIVIIIIIVIII","VIIVIIIIIVIVIIVVIIVIIII","IVIIIIVVIIVIIIVIIIIIVIIIIVIVI","IIIVIVIIIVIIIIVIIIIIVVIIVIVIIVIIIVII","IIIIIVIIIVIIIIIVIVIIVVIIIVIIIIVIIIVIIIIVIIIIIVIII","VIIVIIIIIVVIIVIIIVIIIIIVIIIIIVIVIIVIIIIIVIVIIVVIIVIIII","IVIIIIVVIIIVIIIIVIIIIIVVIIVVIIVIIIVIIIIVVIIVIIIVIIIIIVIIIIVIVI","IIIVIVIIIVIIIIIVIVIIVVIIIVIIIIIVIIIIVIIIIIVIVIIIVIIIIVIIIIIVVIIVI
21:41:15 <AnMaster> oerjan, can you ever get any number higher than 3 at the start of "ordinary" ones?
21:41:20 <ais523> it's not clear from the RFCs
21:41:30 <AnMaster> <AnMaster> oerjan, can you ever get any number higher than 3 at the start of "ordinary" ones?
21:41:30 <AnMaster> <ais523> it's not clear from the RFCs
21:41:30 <AnMaster> XD
21:41:34 <oerjan> AnMaster: and rather than starting with 1 or I, you can start with an arbitrary numeral.
21:41:46 <oklopol> AnMaster: no
21:41:59 <oklopol> or actually anywhere
21:42:01 <oerjan> AnMaster: not unless you start with an even longer block of equals
21:42:06 <oklopol> well right
21:42:14 <oklopol> but eventually those die out right?
21:42:14 <AnMaster> `addquote <AnMaster> oerjan, can you ever get any number higher than 3 at the start of "ordinary" [look-and-say sequences]? <ais523> it's not clear from the RFCs
21:42:17 <oerjan> and what oklopol said
21:42:18 <ais523> AnMaster: are you mocking me for assuming that the RFCs would be a) clear, and b) have any correlation to actual practice?
21:42:22 <HackEgo> 185|<AnMaster> oerjan, can you ever get any number higher than 3 at the start of "ordinary" [look-and-say sequences]? <ais523> it's not clear from the RFCs
21:42:23 * AnMaster prods HackEgo
21:42:25 <AnMaster> ah there
21:42:27 <ais523> AnMaster: oh, you just got the context completely wrong
21:42:34 <ais523> that's cheating, I was talking about something completely different
21:42:49 <AnMaster> ais523, I did realise the context was wrong. It was just funny
21:42:52 <oerjan> ais523: hey context confusion is completely permissible humor
21:42:55 <oklopol> yeah AnMaster you completely misunderstood what was happening
21:43:08 * oerjan swats oklopol -----###
21:43:11 <AnMaster> oklopol, no I didn't misunderstand it. I was confused at first.
21:43:17 <AnMaster> but I found it funny after I realised
21:43:19 <AnMaster> duh
21:43:47 <ais523> oerjan: on IRC? contexts get confused here all the time
21:44:16 <oerjan> AnMaster: also for the roman numeral version you cannot get more than six I's in a row, or two V's, unless you start with even more. i _think_ it may actually be five I's but i haven't proved it.
21:44:22 <AnMaster> ais523, I would suggest checking the common practise
21:44:29 <AnMaster> oerjan, ah
21:44:33 <ais523> AnMaster: I thought of that, but I'm not entirely sure how
21:44:53 <AnMaster> ais523, telnet to a netcat?
21:44:54 <CakeProphet> so why am I synchronizing my program if I use an atomic database system like Mnesia?
21:45:00 <CakeProphet> (AnMaster)
21:45:07 <ais523> AnMaster: you mean more, netcat to a telnetd
21:45:09 <AnMaster> CakeProphet, what?
21:45:16 <oerjan> AnMaster: also in the ordinary version you cannot get 3 3's in a row. but you can get 3 1's or 3 2's.
21:45:19 <AnMaster> ais523, oh this is from the server side?
21:45:20 <ais523> although, hmm, I wonder if you can get away with just the telnet client
21:45:24 <ais523> AnMaster: it's from both sides
21:45:32 <AnMaster> ais523, well check from both then
21:45:34 <ais523> telnet protocol is symmetrical
21:46:04 <CakeProphet> AnMaster: you said I would be losing the async behavior of my server with Mnesia
21:46:14 <ais523> AnMaster: any idea how to type a literal 0xff on a terminal?
21:46:21 <AnMaster> CakeProphet, not really, just saying you are trading some of it away
21:47:02 <oklopol> is the only way to get 6 to have 3 i's 2 v's
21:47:14 <oerjan> oklopol: yes it should be
21:47:17 <CakeProphet> AnMaster: mainly with writes, correct?
21:47:41 <AnMaster> CakeProphet, well I guess so yeah. mnesia *might* become a bottle neck. it depends on how you use it.
21:48:00 <oerjan> oklopol: however there seems to be several ways of getting _that_
21:48:21 <oerjan> i haven't checked further steps
21:48:54 <AnMaster> CakeProphet, really, I never used mnesia. I know about it from reading about it, but that is all
21:49:15 <oerjan> hm...
21:49:49 <oerjan> !haskell import Data.List; rn = ["0","I","II","III","IV","V"]; rls s = concat [rn!!length g ++ take 1 g | g <- group s]; main = print . take 50 . map length $ iterate rls "I"
21:49:51 <fizzie> ais523: 0xff is not valid in any UTF-8 sequence, so if your terminal is UTF-8y, it might be pretty hard to type that in.
21:49:51 <EgoBot> [1,2,3,4,3,6,9,8,10,15,24,23,29,36,49,54,62,75,92,105,115,138,161,180,202,231,268,297,331,376,429,472,524,593,666,731,815,912,1017,1120,1244,1383,1536,1689,1873,2074,2291,2526,2790,3083]
21:50:11 <ais523> fizzie: yep
21:50:17 <oerjan> oklopol: as you see i left out VI in the list, so if it ever appeared it would give an error
21:50:35 <ais523> grr, telnet seems to have been designed specifically to be annoying to type by hand
21:50:41 <oerjan> so it doesn't seem to appear when starting with I at least
21:50:50 <fizzie> ais523: If normal telnet clients go to binary mode easily, you could just use one, send a plain \r both ways, and look at what goes on over the wire with tcpdump.
21:51:14 <fizzie> ais523: Or if your terminal has menus and all that fluff, change locale to latin-1 and type in a ÿ.
21:51:20 <ais523> fizzie: the problem with normal telnet clients is that you can easily say "do binary mode", but they don't tell you their response
21:51:34 <ais523> so you don't know whether the remote side actually switched to binary mode or not
21:52:39 <fizzie> ais523: Well, the command-line client I have has a "set binary" command that will output "Negotiating binary mode with remote host." -- if you're pretending to be the server, you could easily ack that.
21:53:08 <ais523> fizzie: a telnet ack has several control codes in
21:53:20 <ais523> so the current issue is that it's a real pain to type
21:54:00 <fizzie> tcpdump and/or wireshark, then; the latter will give you a nicely decoded telnet conversation and all. It does need a bit of privileges to capture traffic, though.
21:54:47 <oerjan> ais523: oklopol: (+7) Ix, (7 ) I -> II, (+6) IIx, (6 ) II -> III, (+5) IIIx, (5 ) III -> IIII, (+4) IIIIx, (4 ) IIII -> IVI, (1 ) IIIIIx -> Vy, (4 ) IIIIVx -> IVIIy, (2 ) IIIVx -> IIIIIy, (5 ) IIVx -> IIIIy, (6 ) IVx -> IIIy, (3 ) IV -> IIIV, (3 ) IVIx -> IIIVy, (5 ) IVVx -> IIIIVy,
21:54:59 <fizzie> ais523: Ooooh, or: from CPAN, install Net::Telnet, then a longish Perl oneliner.
21:55:11 <oerjan> that's a summary of my proof every sequence must eventually get something starting with V
21:55:11 <ais523> or just read the source, I suppose
21:55:12 <oklopol> it should be possible to just go backwards from iiiiii
21:55:48 <oklopol> oerjan: can you explain the notation?
21:55:49 <oerjan> oklopol: well probably, i did two steps far above
21:56:06 <oklopol> is viviiiii the only prepreimage
21:56:16 <oklopol> or well
21:56:27 <oklopol> iviiiii but we need v before
21:56:50 <oklopol> errrr
21:56:50 <oerjan> oklopol: -> means what we have on the left becomes what we have on the right
21:56:55 <oerjan> after one step
21:57:13 <oerjan> x or y means what comes after is arbitrary
21:57:16 <oklopol> yeah but that's not the prepreimage i thought i found, i guess i forgot it
21:57:18 <oerjan> (might be empty)
21:57:19 <oklopol> :D
21:57:35 <oerjan> oklopol: that's not for the IIIIII question btw
21:57:36 <oklopol> whta's (+7)
21:57:39 <oklopol> *what's
21:57:44 <oklopol> i know
21:58:01 <oerjan> the number is the maximal number of generations until you get a V at the start
21:58:18 * waga started programming CONDAL
21:58:20 <oerjan> the + indicates that case is split up into cases listed later
21:58:21 <waga> :)
21:58:33 <waga> Commands made till now: READ and TELL
21:58:57 <oerjan> oklopol: the fact that you cannot get more than 6 I's or 2 V's is used throughout
21:59:37 <oerjan> oklopol: so to unnest the proof just start at the lowest numbers
22:00:17 <ais523> fizzie: Net::Telnet WONT BINARY, so it would be useless for discovering this particular idiosyncracy
22:00:40 <oklopol> yeah ok i get it
22:00:54 <fizzie> ais523: Aw. Perhaps the source then, if you don't have traffic-capturation tools handy.
22:01:04 <ais523> maybe I should read telnetd source
22:01:43 <alise> ais523: does your computer have a floppy drive?
22:01:52 <oerjan> oklopol: also it is "obvious" you always get strings starting with I. this means every sequence varies between starting with V and with I, which means you cannot have "atoms" like with the ordinary look-and-say sequence
22:01:59 <ais523> alise: I have an external floppy drive, haven't had to connect it for a while though
22:02:13 <alise> ais523: The sign of someone who has never experienced the joy of Flinix.
22:02:21 <ais523> Flinix?
22:02:30 <alise> "All your Linux applications, wherever you go -- as long as you only travel to the 90s."
22:02:35 <ais523> heh
22:02:38 <alise> In other words, me and pikhq are fitting a modern kernel and X11 onto a floppy.
22:02:40 <oerjan> because any two strings concatenated will interact ones the second string becomes something starting with what the first one ends with
22:02:40 <alise> I'm not joking.
22:02:41 <alise> We are doing this.
22:02:46 <ais523> alise: I believe you
22:02:52 <alise> Do you believe we will succeed?
22:02:55 <ais523> it seems like an entirely insane project to try, and a lot of fun
22:02:59 <ais523> and yes, I believe you will
22:03:04 <ais523> but nobody will actually like using the resulting product
22:03:41 <fizzie> I'd have had a use for that, just puny seven years ago.
22:03:52 <fizzie> Nowadays, not so much.
22:04:22 <fizzie> Though the existing floppy distros back then weren't so outdated that they presumably are now.
22:04:27 <alise> ais523: oh, believe me, it will be quite nice to use!
22:04:36 <alise> The kernel won't support much but the applications that do work will work fine.
22:04:49 <alise> And you can use more than 1.44 megs of apps if you download them from the internet into ram.
22:04:54 <alise> SVGA X11, too.
22:05:14 <oklopol> oerjan: yeah
22:05:18 <alise> Basically, we're going to make the kernel on the order of 100 KiB, and also LZMA compress everything with statically-linked uclibc.
22:05:21 <alise> ==> lots of free space
22:05:21 <oklopol> interesting observation
22:05:39 <oklopol> there's probably some sort of look-and-saying
22:05:42 <oklopol> *theory of
22:05:55 <oklopol> oh
22:06:03 <oklopol> you didn't find anything for this sequence you said at least
22:06:05 <oerjan> *once
22:06:09 <oklopol> yeah
22:06:49 <alise> can we generalise the look and say not just to be about positional bases?
22:06:52 <alise> *say sequence
22:07:32 <oklopol> i don't know what the natural generalization is
22:07:40 <oerjan> oklopol: well i think there may be an alternative method. if a substring is long enough then its descendants will grow so fast that information cannot pass across it.
22:08:03 <oerjan> and then you can sort of make a "virtual" atom boundary inside such a string, i think
22:08:11 <oerjan> and split things up that way
22:08:25 <oklopol> yeah i saw you say something like that in the log, although i didn't know what it was about
22:08:34 <oerjan> um i did? maybe
22:08:44 <oklopol> something like it :P
22:09:01 <oklopol> the rules for neither look-and-say are all that natural
22:09:09 <oerjan> alise: um we just generalized it to roman numerals, remember? but any base should work.
22:09:10 <ais523> hmm, reading telnetd, it seems it doesn't /actually/ do either
22:09:11 <oklopol> although the usual one is if you don't carry
22:09:25 <alise> oerjan: roman numerals are pretty close to being a base :P
22:09:29 <ais523> but sending plain 13 should work, at least with the telnetd whose source I'm looking at
22:09:30 <alise> at least
22:09:32 <alise> in the form you use them
22:09:37 <ais523> and likewise, it seems to send plain 13 for \r
22:09:50 <oklopol> i guess carrying is the important thing, what kind of rewriting happens when you increment
22:10:16 <ais523> also, turns out a stray \0 is irrelevant in the format I plan to accept anyway
22:10:16 * Sgeo wishes there was a desktop client for Meebo
22:10:26 <oerjan> alise: you could use any mapping from natural numbers to strings, presumably. however for the nice properties we have in the simple cases, the length of the string should be much less than the number for large numbers.
22:10:43 <oerjan> that way you get a maximal block length in the limit
22:12:08 <oerjan> which also means in the limit only finitely many of the mapping strings really matter
22:13:22 <AnMaster> ais523, why should it use a zero byte after?
22:13:56 <ais523> AnMaster: so for systems that don't have a \r character, it knows whether to translate \r into a bunch of backspaces, or \r\n into a combined-newline character
22:13:58 <oerjan> (like with base 10 only 1-3 really matter)
22:14:16 <ais523> obviously this motivation doesn't hold in binary mode, but it's not obvious whether the unusual encoding of \r persists anyway
22:14:54 <oerjan> actually the rule that only 1-3 matter should hold for any mapping of that kind where small numbers get single letter strings
22:14:57 <ais523> hmm, roman numeral look-and-see would make a good anagolf question
22:14:59 <AnMaster> ais523, what?
22:15:08 <alise> ais523: but they aren't real roman numerals!
22:15:12 <AnMaster> ais523, how would the zero byte help?
22:15:40 <ais523> AnMaster: that's actually a good point, the RFCs don't elaborate on that point
22:15:50 <ais523> presumably it's for the case where you send \r, then don't send the next character for half an hour
22:16:01 <ais523> requiring the \0 means you can send it immediately and get the \r at the other end immediately
22:16:03 <AnMaster> ais523, hah
22:16:27 <ais523> also, just observed on the TV news: "Pictures from You Tube"
22:16:34 <AnMaster> ais523, heh?
22:16:38 <oerjan> alise: the counts are real roman numerals, the fact that the strings you concatenate them into aren't is irrelevant - it's just an accident it's true for base 10... well even then it isn't if you start with a string with non-digits in it
22:16:40 <ais523> surprised me too
22:16:45 <ais523> you think at least they'd have credited the actual uploader
22:16:51 <AnMaster> indeed
22:16:52 <alise> oerjan: ah, i see
22:16:56 <alise> ais523: they do that all the time
22:17:05 <alise> ais523: was it the BBC?
22:17:23 <ais523> yes
22:17:34 <alise> huh
22:17:37 <alise> they usually tend to be better than that
22:17:56 <ais523> yup, clearly cutting corners this time
22:18:00 <ais523> they even got YouTube's name wrong
22:18:14 <AnMaster> hah
22:18:23 <AnMaster> ais523, bbc?
22:18:23 <ais523> that said, the whole AT&T personal info leak story is hilarious
22:18:33 <ais523> AnMaster: British national broadcaster
22:18:33 <alise> natioanl or local news?
22:18:37 <alise> AnMaster: you don't know what the bbc is?
22:18:37 <AnMaster> ais523, ... I know
22:18:39 <alise> ...
22:18:42 <ais523> alise: national sports news
22:18:42 <AnMaster> ais523, I wondered if it was bbc
22:18:47 <alise> *national
22:18:52 <alise> ais523: well, that's a bit less high quality :)
22:18:53 <alise> AnMaster: he said that
22:18:54 <alise> i asked that
22:18:54 <ais523> which I wasn't watching deliberately, my family were
22:18:55 <alise> oh wait
22:18:56 <alise> he's ignoring me
22:19:02 <alise> that would explain the extreme stupidity.
22:19:03 -!- impomatic has left (?).
22:19:28 <AnMaster> ais523, why did you think that I was asking what bbc was
22:19:34 <AnMaster> rather than if the youtube thing was bbc
22:19:36 <alise> because i'd already asked if it was the bbc
22:19:40 <AnMaster> (or some other channel)
22:19:40 <alise> and he responded affirmativel
22:19:41 <alise> y
22:19:44 <ais523> AnMaster: because alise had already asked if it was the bbc or not earlier, and I said yes
22:19:46 <alise> none of this you saw because you were ignoring me
22:19:56 <AnMaster> ais523, I don't seem him currently
22:20:11 <ais523> ugh, anagolf seems to be down
22:20:12 <alise> does AnMaster think getting the nick pronouns wrong riles me up :)
22:20:40 <ais523> or rather, loading so slowly the connection times out
22:20:41 <Sgeo> Awesome. The Hyperevolution nutjob hasn't been spamming me
22:20:45 <AnMaster> ais523, I refuse to comment upon if this is an ignore or not. Since I dislike people announcing that
22:20:50 <ais523> Sgeo: does he normally?
22:20:51 <oerjan> alise: hey even i don't really bother with it any longer
22:21:04 <Sgeo> ais523, I had assumed that he would
22:21:05 <ais523> or her?
22:21:08 <Sgeo> "What if evolution were true, but it wasn't quite like Darwin
22:21:08 <Sgeo> said?"
22:21:13 <ais523> also, why?
22:21:14 <alise> oerjan: it's quite easy, when you're about to use a pronoun imagine i'm female
22:21:17 <alise> then use mind bleach
22:21:41 <ais523> alise: I tend to stumble a bit whenever I type any sort of pronoun on IRC
22:21:50 <ais523> so it's not too hard to fit an appropriate pronoun in
22:21:54 <ais523> or reword the sentence to avoid one
22:21:54 <Sgeo> ais523, it was one of those "Give me your email address, and I'll show you the secrets of science and the universe" sort of things
22:22:07 <ais523> Sgeo: and you actually did? why?
22:22:19 <Sgeo> ais523, it's a separate gmail account
22:22:20 <ais523> that's like replying to a spammer just to see what their reaction will be
22:22:39 <alise> ais523: I asked the same.
22:22:57 <alise> ais523: also, I waste spammer's time occasionally
22:23:00 <alise> it's actually quite fun
22:23:00 <AnMaster> ais523, that isn't unheard of
22:23:05 <ais523> AnMaster: I know
22:23:11 <alise> you play being a gullible bastard then just make them run around in circles
22:23:26 <AnMaster> ais523, didn't someone manage to make one start wood carving?
22:23:30 <oklopol> they say that can be dangerous
22:23:33 <Sgeo> "They say, essentially, that it's corrupted data that
22:23:33 <Sgeo> occasionally turns out to be beneficial instead of harmful.
22:23:33 <Sgeo> This is where Darwin and the biology books are wrong.
22:23:33 <Sgeo> As a communication engineer I know - with 100.000000000%
22:23:33 <Sgeo> certainty - that this is impossible.
22:23:33 <Sgeo> Nowhere in the vast field of engineering is there any such
22:23:35 <Sgeo> thing as "the percentage of the time that corrupted data is
22:23:35 * oerjan snorts
22:23:36 <oklopol> they're probably idiots tho
22:23:36 <ais523> I'm vaguely considering actually pressing the "I am still listening and would like to subscribe to your newsletter" button next time I get telephone spam
22:23:37 <CakeProphet> so, have you guys seen GoogleCL?
22:23:44 <ais523> in an attempt to waste as much of their money on call charges as possible
22:23:52 <Sgeo> Hm, I don't know how much of that pasted before I /flushq'd
22:24:03 <ais523> but thinking about it, they probably spend more on repeated phoning and ringing off
22:24:15 <AnMaster> ais523, isn't that forbidden?
22:24:19 <AnMaster> ais523, telephone spam I mean
22:24:20 <CakeProphet> essentially it's command line utilities for Google web services. I'm probably going to write some scripts that utilize it.
22:24:23 <Sgeo> http://www.cosmicfingerprints.com/blog/new-theory-of-evolution/
22:24:31 <ais523> AnMaster: in the UK, it's legal so long as the other person hasn't stated they don't want it
22:24:35 <alise> ais523: you're not on the do not call thing?
22:24:35 <AnMaster> ais523, at least you have some telemarketing block register afaik?
22:24:36 <alise> srsly?
22:24:39 <alise> why the hell not?
22:24:40 <CakeProphet> to, for example, sync a directory with Google Docs.
22:24:40 <ais523> alise: I am at home
22:24:42 <ais523> my office isn't
22:24:46 <alise> Why not?
22:24:47 <ais523> for whatever reason
22:24:51 <ais523> no idea
22:24:58 <AnMaster> ais523, no?
22:25:01 <alise> Complain.
22:25:01 <ais523> AnMaster: it exists, and it's respected
22:25:13 <AnMaster> ais523, then that should block the spam?
22:25:13 <alise> ais523: stop repeating things to him, it'll be hilarious
22:25:15 <alise> this is twice in a fewm inutes
22:25:23 <alise> *few minutes
22:25:36 <ais523> alise: I didn't realise he didn't see what you said, and replied that way anyway
22:26:08 <CakeProphet> alise: It is fortunate for us IRC bots that you correct your spelling, otherwise my puny AI would be unable to decipher. :D
22:26:15 * CakeProphet is in fact a robot.
22:26:22 <alise> CakeProphet: thank ocd
22:26:35 <ais523> oh, I correct too
22:26:36 <oerjan> CakeProphet: i hav supsected
22:26:38 <CakeProphet> I think you mean *OCD :)
22:26:41 <ais523> to make what I say easier to read
22:26:43 <CakeProphet> ha.
22:26:47 <CakeProphet> I crack myself up.
22:26:50 <ais523> and to disambiguate in case what I said made my intent unclear
22:27:01 <alise> I had to resist correcting ".." to "." before in #uclibc.
22:27:09 <alise> Also, I absolutely freak wrt trailing whitespace.
22:27:11 <oerjan> CakeProphet: robot cracking? you're not nuclear powered i hope?
22:27:14 <alise> IT IS THE DEVIL!!!
22:27:19 <ais523> alise: I can't even see trailing whitespace on this client
22:27:33 <oerjan> me neither
22:27:35 <AnMaster> oerjan, s/cracking/cranking/
22:27:37 <AnMaster> hand powered
22:27:40 <alise> ais523: THAT IS WHY IT IS SO EVIL!!
22:27:58 <AnMaster> fairly useless for a robot yes
22:28:01 <oerjan> AnMaster: erm are you ignoring CakeProphet too? because he said crack
22:28:06 <CakeProphet> oerjan: No I'm actually a steam-powered architecture. The Reasoning Engine was a little-known third project by Charles Babbage.
22:28:13 * CakeProphet should write a slash fiction about it.
22:28:23 <AnMaster> oerjan, no, just a bad pun
22:28:25 <oerjan> IF YOU SAY SO
22:28:33 <oerjan> (that was to CakeProphet)
22:28:39 <ais523> wait, isn't slash fiction when you imply a romantic relationship between two characters from elsewhere in fiction?
22:28:43 <ais523> preferably an implausible or impossible one?
22:28:47 <ais523> or am I thinking of something else?
22:28:53 <CakeProphet> well...
22:28:54 <oerjan> ais523: preferably a gay one iirc
22:28:59 <CakeProphet> yes.
22:29:16 <ais523> oerjan: that helps but isn't necessary
22:29:19 <CakeProphet> but I'm so used to hanging around weaboos that I just use slash fiction to mean any romantic fiction.
22:29:33 <CakeProphet> usually involving sex dungeons, of course.
22:29:40 <alise> ais523: technically, slash is implying the relationship, and slash fiction is ... literature based on the former
22:29:40 <AnMaster> ^_^
22:29:47 <alise> Sex dungeons.
22:29:50 <ais523> alise: err, yes, I elided
22:29:54 <alise> Are those, like, dungeons were you have to have sex?
22:29:59 <CakeProphet> yes.
22:30:06 <CakeProphet> they are exactly what they sound like.
22:30:16 <ais523> alise: if you're acting all naive about this, the Internet will remove your illusions
22:30:20 * oerjan hands alise the mind bleach
22:30:28 <ais523> should you be interested in that sort of thing, of course
22:30:30 <alise> ais523: I'm joking.
22:30:39 <ais523> somehow I thought you were
22:30:46 <CakeProphet> sweet
22:30:48 <oerjan> PRESERVE YOUR INNOCENCE
22:30:52 <alise> "OBLIGATORY sex!"
22:31:11 <AnMaster> XD
22:31:19 <CakeProphet> should be an intercal statement.
22:31:53 <ais523> if you want some further insight into my character, I have no personal experience of that sort of thing, but /have/ read a six-page essay on how to ensure that everything stays both safe and legal
22:31:56 <ais523> with a lot of interesting points in
22:32:01 <oerjan> CakeProphet: that would be equivalent to uninstalling intercal, me thinks
22:32:19 <AnMaster> ais523, why on earth have you done that?
22:32:26 <ais523> AnMaster: because it was interesting
22:32:42 <CakeProphet> ais523: ...highly.
22:32:44 <AnMaster> ais523, okay, link? I might want to take a look
22:32:47 <CakeProphet> rofl.
22:32:51 <CakeProphet> NO, DON'T DO IT.
22:32:52 <ais523> AnMaster: it wasn't online
22:32:56 <AnMaster> ais523, ah
22:33:01 <ais523> why do you assume everything I read is online?
22:33:17 <oerjan> he bought it from a sleazy man at a street corner
22:33:22 <AnMaster> ais523, do I?
22:33:26 <ais523> yes
22:33:36 <ais523> oerjan: hmm, that's about 30% accurate
22:33:47 <AnMaster> how can it be 30% accurate?
22:33:58 <ais523> but I didn't have to buy it, it wasn't a street corner, and I've known the sleazy man in question for several years, in a different context
22:34:12 <oerjan> O KAY
22:34:15 <CakeProphet> a) bought it b) from a sleazy man c) from a street corner
22:34:17 <CakeProphet> one must be false
22:34:19 <AnMaster> XD
22:34:21 <CakeProphet> or... one must be true.
22:34:24 <CakeProphet> rather.
22:34:38 <oerjan> food ->
22:34:51 <alise> <ais523> if you want some further insight into my character, I have no personal experience of that sort of thing, but /have/ read a six-page essay on how to ensure that everything stays both safe and legal
22:34:51 <alise> <ais523> with a lot of interesting points in
22:34:53 <alise> I do things like that
22:34:57 <CakeProphet> Eat :: food -> belly (...???)
22:35:17 <AnMaster> unfood?
22:35:21 <Sgeo> Surely it must be eat :: Food -> Belly ?
22:35:28 <CakeProphet> well yes.
22:35:32 <AnMaster> would that be like... undead celery?
22:35:37 <AnMaster> unfood I mean
22:35:41 <ais523> no, the Belly here is obviously a monad
22:35:45 <ais523> eat :: Food -> Belly ()
22:36:04 <ais523> (and the reason I think that, is that clearly you need a pre-existing belly to modify via the food and get a new belly)
22:36:04 <AnMaster> googling for "undead celery" About 63 results (0.15 seconds)
22:36:08 <AnMaster> I'm surprised
22:36:08 -!- BeholdMyGlory has quit (Read error: Connection reset by peer).
22:36:15 <AnMaster> that there were any hits at all
22:36:16 <ais523> alternatively you could write it out as Food -> Belly -> Belly
22:36:21 <ais523> AnMaster: I'm not
22:36:21 -!- BeholdMyGlory has joined.
22:36:25 <ais523> how many were dictionaries?
22:36:34 <AnMaster> ais523, hm none
22:36:53 <ais523> try more obscure vegetables
22:36:57 <AnMaster> ais523, one does look like slash fiction though
22:36:58 <AnMaster> XD
22:37:00 <ais523> like, say, undead courgettes, or undead asparagus
22:37:00 <AnMaster> bbl
22:37:34 <AnMaster> ais523, wtf is courgettes?
22:38:03 <ais523> AnMaster: a vegetable that vaguely resembles cucumber, but is a lot sourer
22:38:24 <ais523> it's quite tasty, but only if cooked correctly
22:38:26 <AnMaster> ais523, "undead asparagus": 2 results one at "veggie zombies t-shirt from Zazzle.com.au", and one the same but without the .au
22:38:27 <AnMaster> XD
22:38:41 <ais523> australians spoiling our Googlewhacks1
22:38:44 <ais523> s/1$/!/
22:38:55 <AnMaster> Information No results found for "undead courgettes".
22:38:55 <AnMaster> Results for undead courgettes (without quotes):
22:38:55 <AnMaster> Search Results
22:38:55 <AnMaster> 1.
22:39:05 <AnMaster> "Information"?
22:39:07 <AnMaster> oh alt text
22:39:10 <AnMaster> for the image
22:39:17 <ais523> undead parsnips?
22:39:47 <AnMaster> ais523, same, nothing for quotes
22:40:23 <AnMaster> Results for undead parsnips (without quotes):
22:40:23 <AnMaster> Search Results
22:40:23 <AnMaster> 1.
22:40:23 <AnMaster> World of Warcraft - English (NA) Forums -> More Ninja's
22:40:26 <AnMaster> okay that is interesting
22:40:42 <CakeProphet> needs moar ninjas.
22:40:51 <AnMaster> ninja parsnips?
22:41:08 <AnMaster> undead ninja parsnips?
22:41:11 <CakeProphet> SPAWN MORE OVERLORDS.
22:41:28 <AnMaster> Information No results found for "undead ninja celery".
22:41:29 <AnMaster> Results for undead ninja celery (without quotes):
22:41:31 <AnMaster> meh
22:41:42 <ais523> what about just ninja celery?
22:41:43 <AnMaster> "ninja celery" About 149 results (0.28 seconds)
22:41:51 <ais523> heh, you anticipated the question
22:41:55 <AnMaster> yep
22:42:11 <AnMaster> Information No results found for "ninja parsnips".
22:42:26 <AnMaster> (again results without quotes)
22:42:39 <AnMaster> "ninja asparagus" About 39 results (0.17 seconds)
22:42:48 <AnMaster> okay now I'm surprised
22:43:32 <AnMaster> ais523, guess: asparagus is commonly considered obscure. Thus it isn't
22:43:35 -!- MigoMipo has quit (Read error: No route to host).
22:43:48 <AnMaster> ais523, okay I found a google whack
22:43:52 <AnMaster> but I can't post it in here
22:44:00 -!- MigoMipo has joined.
22:44:06 -!- augur has quit (Ping timeout: 265 seconds).
22:44:10 <AnMaster> okay I can if I insert something in between:
22:44:20 <AnMaster> "ninja remove-this-bit courgettes"
22:44:21 <AnMaster> ais523, ^
22:44:22 <AnMaster> google whack
22:44:25 <ais523> AnMaster: quotes mean it isn't a proper googlewhack
22:44:29 <ais523> you have to manage it without
22:44:31 <AnMaster> oh right
22:44:43 <AnMaster> ninja courgettes About 7,130 results (0.22 seconds)
22:45:05 <alise> <ais523> (and the reason I think that, is that clearly you need a pre-existing belly to modify via the food and get a new belly)
22:45:06 <alise> no
22:45:14 <alise> (eaten f) is a belly that has only eaten the food f
22:45:28 <alise> eaten f `combineBellies` eaten g
22:45:32 <alise> is a belly that has eaten both f and g
22:45:32 <alise> :D
22:45:36 <alise> s/g$/g./
22:45:36 <ais523> alise: `mplus`!
22:46:24 <alise> :)
22:46:31 * alise writes stdarg.h
22:46:36 <alise> Or rather, copies it: http://pastie.org/1012834.txt?key=4jh2pewjtreykilii0ksa
22:48:01 -!- waga has quit (Ping timeout: 260 seconds).
22:48:46 -!- tombom has quit (Read error: Connection reset by peer).
22:48:51 <oerjan> ais523: clearly you mean eat :: MonadState m Belly => Food -> m ()
22:49:16 <ais523> oerjan: you're quantifying over all monads that can keep track of a belly?
22:49:24 <alise> Wow, someone I know who's not from here who's excited about a self-replicator in the Game of Life.
22:49:25 <oerjan> yes
22:49:39 <ais523> alise: "self-replicator" is really misleading here
22:49:54 <ais523> what's interesting about that one is that it quines itself purely from data
22:50:07 <alise> Well, yes.
22:50:12 <alise> But it's the terminology used.
22:50:45 <ais523> it's basically a sort of spaceship, and those have existed in Life for ages; it's just that that one has a reasonable cycle time, and also does the whole code/data separation thing
22:50:52 <alise> ais523: no, but you see,
22:50:59 <Sgeo> Yay! Chrome sometimes just ignores my entering stuff into the address bar!
22:51:03 <alise> it's the first replicator to build itself with synthesis
22:51:10 <alise> ais523: also, it's the first replicator that could theoretically leave itself behind
22:51:15 <alise> under that definition, it's the first found
22:51:21 <ais523> alise: yes
22:51:24 <Sgeo> Or, well, just erases the address I typed when I press Enter
22:51:43 <oerjan> hm *eat :: MonadState Belly m => Food -> m ()
22:51:50 <Sgeo> *eat?
22:52:13 <oerjan> it's a correction
22:52:31 <oerjan> had the parameters in the wrong order
22:52:41 <Sgeo> Protip: Don't correct like that when discussing C or C++
22:52:48 <ais523> what is it a sign of when someone asks you a simple probability question and you accidentally answer in hexadecimal?
22:53:03 <oerjan> it means you've been hexed
22:53:09 <alise> ais523: Esoteric's Disease
22:53:13 <alise> no wait...
22:53:19 <alise> Müller's disease
22:53:22 <alise> or
22:53:23 <ais523> really, it's just that my calculator was set to hex and I didn't notice
22:53:26 <alise> Cristofani syndrome
22:53:33 <alise> or
22:53:34 <Sgeo> I'd love to see someone use * to indicate correction, and someone takes it literally, and there's a major bug in important software as a result
22:53:37 <alise> Pressey syndrome
22:53:41 <Ilari> Aren't there three variants of gemini? Two slope 5's with sightly different repeats and one slope 2 (knightship) variant?
22:53:46 <alise> Sgeo: wat
22:53:50 <ais523> oh, they found a knightship variant?
22:54:05 <Sgeo> ais523, the replicator is a knightship
22:54:14 <Sgeo> I thought
22:54:38 <oerjan> very chivalrous
22:54:47 <Ilari> AFAIK, original gemini wasn't true knightship (but there is true knightship variant of it).
22:54:55 <Sgeo> "true" knightship?
22:55:10 <Ilari> true knightship => slope 2.
22:55:41 <ais523> a really true knightship would move 2 squares one way and one square another way
22:55:46 <ais523> rather than 2x and x
22:56:07 <alise> define square
22:56:16 <ais523> umm, cell
22:56:31 <ais523> or whatever the smallest unit of measurement in Life is
22:56:44 <oerjan> should be doable by combining two large moves, maybe?
22:57:00 <ais523> yes
22:57:12 <Ilari> Patterns I would want to see: 1) Still life that transforms into Caterpillar when hit with one glider in suitable way. 2) Caterpillar gun. :-)
22:57:45 <ais523> what's the Caterpillar?
22:58:05 <oerjan> some buggy pattern, clearly
22:58:09 <ais523> Ilari: 1) should be easy enough if you know a glider synthesis
22:58:10 <Ilari> Huge 17c/45 slope 0 spaceship.
22:58:26 <ais523> because you could probably find a still life that turned into a glider salvo
22:58:32 <ais523> when hit by one glider
23:00:00 <Ilari> Well, how I would go constructing that is to try to find backwards stablization, proceeding systematically, and then at the end figure out how to get the non-stable part to be just a single glider...
23:02:00 <Ilari> The transformation would take hundreds of thoursands of cycles just because of speed of light...
23:02:33 <Ilari> (IIRC, Caterpillar is ~330k cells long).
23:04:53 -!- augur has joined.
23:06:02 -!- augur has quit (Remote host closed the connection).
23:06:31 <oklopol> is it known how to make speed an arbitrary rational on a certain interval?
23:06:39 -!- augur has joined.
23:07:03 <alise> oklopol: you can never truly rationalise drugs to yourself dude.
23:07:09 <oklopol> or moving fast and running a tm on the side to get creals
23:07:22 <alise> anyway, no; not until this replicator
23:07:28 <alise> which should make any velocity theoretically easy
23:07:29 <oklopol> what replicator?
23:07:37 <oklopol> oh?
23:07:38 <CakeProphet> alise: ha. that's what you think.
23:07:48 <oklopol> you mean caterpillar?
23:09:53 <oklopol> for really slow speeds at least you'd think you could somehow run arbitrary programs to calculate delays of some sort
23:10:35 <oklopol> basically you have a tm which, when it enters a state, somehow magically moves itself one step to the right
23:10:48 <oklopol> enters a predetermined moving state that is
23:10:52 <oklopol> maybe that's not exactly easy to do.
23:11:34 <oklopol> the moving could take as long as it likes, and then it'd continue computation, that'd get you any creal on some small interval, which would be totally awesome
23:11:42 <oklopol> or well
23:11:42 <oerjan> there are probably real numbers that are asymptotically hard to compute to arbitrary precision
23:11:50 <oklopol> yeah
23:11:56 <oklopol> i just realized that, if i understand what you mean
23:12:19 <oerjan> so that no TM can calculate it fast enough to move at exactly that speed
23:12:23 <oklopol> yeah
23:12:48 <CakeProphet> what you need is TIME TRAVEL.
23:12:50 <oklopol> but in any case we'd probably get rationals and shit
23:12:59 -!- AnMaster has quit (Ping timeout: 248 seconds).
23:13:18 <oklopol> MAYBE
23:13:23 <oklopol> at least a few of them
23:13:31 <CakeProphet> imagine having paradox-free time travelling computer data. :D
23:13:32 -!- AnMaster has joined.
23:13:47 <oerjan> hm maybe all in some interval, as you say
23:13:50 <ais523> must... not... mention... Feather....
23:14:00 <oklopol> that would be huge coolness
23:14:15 * oerjan watches ais523 fall through a time wormhole
23:14:40 <AnMaster> <AnMaster> <ais523> really, it's just that my calculator was set to hex and I didn't notice <-- what model?
23:14:47 <AnMaster> I suspect it didn't get through
23:14:53 * CakeProphet had some semantics mapped out for values that depend on future states via non-determinism.
23:15:18 <ais523> AnMaster: it's the Gnome calculator application
23:15:22 <AnMaster> ah
23:15:41 <AnMaster> ais523, even when at the computer I tend to prefer my TI-830
23:15:44 <AnMaster> s/0/+/
23:16:32 * CakeProphet has a TI-89. best calculator ever.
23:18:09 <fizzie> I should probably say something about the TI-86 at this point.
23:18:24 <oklopol> i think i have that, was it so?
23:18:30 <fizzie> Possibly.
23:18:41 <oklopol> because you should know
23:18:45 <AnMaster> <ais523> must... not... mention... Feather.... <-- ooh feather!
23:18:50 <AnMaster> WHERE?
23:18:53 <oklopol> hmm yeah i'm sure
23:19:04 <oklopol> pretty sure, i has that basic thingie
23:19:09 <fizzie> I've always felt the -89's use of a 68k processor (instead of the Z80) somehow cheatingy.
23:19:18 <oklopol> and it's sooooo slow
23:19:28 <AnMaster> CakeProphet, does the battery last as long?
23:19:40 <CakeProphet> not really sure. It lasts long enough for me not to care.
23:19:40 <AnMaster> CakeProphet, I need to replace in my once every 7 years
23:19:41 <AnMaster> basically
23:19:54 <CakeProphet> probably not that long though.
23:19:55 <fizzie> oklopol: If you have the TI-86, it's overclockable. (But then it'll use batteries faster, and might sometimes calculate things wrong if you take it too far.)
23:19:57 <AnMaster> 4x AAA
23:20:11 <oklopol> :D
23:20:28 <CakeProphet> the TI-89 has INFINITE PRECISION PI SORT OF
23:20:32 <CakeProphet> which makes it superior to everything.
23:20:39 <AnMaster> CakeProphet, you mean CAS
23:20:42 <AnMaster> yeah right
23:20:49 <AnMaster> CakeProphet, not allowed at exams though
23:21:02 <AnMaster> CakeProphet, for CAS I just use the computer
23:21:06 <CakeProphet> ha. it is in my calc classes so far.
23:21:15 <CakeProphet> university, that is. Dunno about high school.
23:21:26 <AnMaster> CakeProphet, I'm talking about university level
23:21:37 <alise> <CakeProphet> university, that is. Dunno about high school.
23:21:37 <alise> <AnMaster> CakeProphet, I'm talking about university level
23:21:39 <alise> SOMEONE's typoed...
23:21:52 <CakeProphet> ...no, we simply live in different places.
23:22:01 <AnMaster> CakeProphet, well yes
23:22:03 <AnMaster> I know that
23:22:08 <Sgeo> Going to watch more SGA
23:22:10 <alise> Disallowing CAS for calc would be a bit silly.
23:22:11 <Sgeo> I'm an addict
23:22:21 <CakeProphet> AnMaster: ha, yeah I know. I was talking to alise. COMMUNICATION BREAKDOWN.
23:22:27 <AnMaster> CakeProphet, ah
23:23:34 <CakeProphet> I'm surprised Haskell doesn't have some kind of built-in CAS
23:23:50 <AnMaster> I'm not
23:24:39 <AnMaster> I wonder, is there any haskell<->java FFI?
23:24:46 <AnMaster> well, for either direction
23:24:56 <AnMaster> ais523, ^
23:25:01 <CakeProphet> Hopefully it shouldn't ever be needed.
23:25:04 <CakeProphet> :P
23:25:08 <AnMaster> true
23:25:12 <ais523> AnMaster: probably via C
23:25:18 <ais523> you can connect most pairs of languages via C
23:25:19 <AnMaster> ais523, so nothing else then, meh
23:25:21 <ais523> even Haskell/INTERCAL
23:25:39 <AnMaster> ais523, there should so totally be a direct interface between those!
23:26:31 <AnMaster> ais523, hm, IFFI only works well to C befunge interpreters. I think a variant that works by a socket might be interesting
23:26:40 <AnMaster> ais523, that way it could talk with efunge
23:26:46 <AnMaster> either socket or a pipe
23:26:49 <CakeProphet> newtype MultipleOfPi = MultipleOfPi Integer
23:26:49 <CakeProphet> bam
23:26:51 <AnMaster> a pipe is probably easier
23:27:06 <AnMaster> ais523, just opening two fds from the efunge side (easier than the other way around)
23:27:08 <alise> CakeProphet: now represent pi+3
23:28:14 <CakeProphet> data PiLinear = PiLinear MultipleOfPi Integer
23:28:19 <CakeProphet> and on it goes.
23:28:28 <CakeProphet> typeclasses to the rescue, obviously.
23:29:18 <alise> that's a shitty way to structure a CAS.
23:29:35 <CakeProphet> probably abstract to any generic symbol besides pi as well... with a typeclass to do things like calculate approximations and combine terms.
23:29:43 <AnMaster> ais523, no?
23:29:46 <CakeProphet> alise: well it was on the fly. :P
23:30:05 <ais523> AnMaster: control flow via a socket would require a whole interp structure at each side
23:30:18 <AnMaster> ais523, oh wait, it replaces main loop right?
23:30:18 <AnMaster> meh
23:30:21 <AnMaster> hard then
23:30:32 <ais523> AnMaster: it's not two processes cooperating
23:30:38 <ais523> it's one process that passes control between two different languages
23:30:42 <AnMaster> ais523, since efunge uses a main loop built around ATHR
23:31:18 <AnMaster> ais523, however this would grant asyncness to intercal would it not?
23:31:19 <AnMaster> XD
23:33:11 <CakeProphet> Concurrent INTERCAL
23:33:23 <AnMaster> CakeProphet, there is already threaded intercal
23:33:26 <AnMaster> but it is lock step
23:33:34 <AnMaster> which is basically boring
23:33:35 <CakeProphet> do processes ask each other nicely for state?
23:33:43 <CakeProphet> they should.
23:34:02 <AnMaster> in intercal?
23:34:04 <AnMaster> heh, no idea
23:34:18 <ais523> CakeProphet: in threaded intercal, the only way to communicate between threads is to modify the shared program they're both running
23:34:39 <ais523> by abstaining from lines, etc
23:34:42 <AnMaster> XD
23:35:06 <ais523> makes it a pain to send integers; you can basically only send booleans, so for integers you need to send them a bit at a time
23:35:58 <AnMaster> ais523, either that or multiple bits at once. Imagine that the lines add 1, add 2, add 4 and so on are on separate lines after each other
23:35:59 -!- rodgort has quit (Ping timeout: 265 seconds).
23:36:10 <AnMaster> then you abstain and reinstate from those as required to create the number
23:36:28 <ais523> AnMaster: that's the same thing
23:36:36 <ais523> one bit at a time
23:36:37 <AnMaster> ais523, well yes pretty much
23:37:23 -!- augur_ has joined.
23:38:07 -!- augur has quit (Ping timeout: 245 seconds).
23:39:02 <cheater99> let's see if i can disassemble my laptop without turning it off and without breaking it
23:39:06 <AnMaster> ais523, but once you done it you can just reuse the same code right?
23:39:30 <AnMaster> cheater99, no I don't want to see this slaughter
23:39:37 <ais523> AnMaster: yes, of course
23:39:48 <ais523> there's even atomic test-and-set on lines of code
23:39:50 <AnMaster> ais523, for a generic send integer routine
23:39:58 <AnMaster> ais523, nice
23:40:05 <ais523> but the problem with the send integer routine is, you can't send it to a particular thread
23:40:23 <ais523> all you can do is have one thread sending and another receiving, and hope that none of the other threads happen to want to send an integer just hten
23:40:24 <ais523> *then
23:40:35 <AnMaster> ais523, oh? just make it take the line number of the first one as a parameter
23:40:45 <ais523> AnMaster: how would that help?
23:40:50 <AnMaster> like in pesudo C: send_integer(base_lineno, integer)
23:40:58 <ais523> AnMaster: I mean, you can't implement that function
23:41:02 -!- rodgort has joined.
23:41:12 <AnMaster> ais523, then different threads could have different line number bases?
23:41:21 -!- augur_ has changed nick to augur.
23:41:25 <AnMaster> ais523, you don't have computed abstain/reinstate?
23:41:48 <ais523> AnMaster: "yes" but the term means something completely different
23:41:52 <AnMaster> ais523, ah
23:42:00 <ais523> also, why are you relying on different line numbers for different threads?
23:42:06 <ais523> that would mean they all had to run different bits of code
23:42:17 <CakeProphet> I bet you could compile Python to BEAM (Erlang's VM code)
23:42:26 <AnMaster> ais523, they might need anyway. One server thread and one client thread
23:42:27 -!- poiuy_qwert has quit (Quit: This computer has gone to sleep).
23:42:44 <AnMaster> CakeProphet, there is lisp for beam iirc
23:42:46 <ais523> AnMaster: threading in INTERCAL, you're generally creating hundreds of threads
23:42:46 <AnMaster> not clisp
23:43:00 <ais523> they're the closest C-INTERCAL has to structs or objects
23:43:06 <AnMaster> ais523, okay, but you could have different purposes for threads
23:43:12 <CakeProphet> having multiple languages that compile to BEAM pretty much give you an OS.
23:43:28 <AnMaster> CakeProphet, is jvm and .net OSes too then?
23:43:35 <CakeProphet> sure.
23:43:50 <AnMaster> CakeProphet, also iirc most beam targeting languages goes by erlang
23:43:56 <AnMaster> not all though
23:44:19 <AnMaster> some goes by core erlang, which is a compiler internal intermediate representation
23:44:27 <AnMaster> which is quite different from erlang
23:44:59 <AnMaster> multiple function entry points being converted to a case and what not
23:45:11 <CakeProphet> AnMaster: so they compile to Erlang usually?
23:45:25 <AnMaster> CakeProphet, usually, and sometimes to core erlang
23:45:31 <AnMaster> there might be some going straight to that beam asm
23:45:33 <AnMaster> not sure
23:46:01 <CakeProphet> I think there's a Ruby for BEAM.
23:46:04 <AnMaster> CakeProphet, the problem is beam is not very well documented when it comes to this, developers reserving the right to change stuff on that level if they need to
23:46:44 <CakeProphet> hmmm, dunno how I'd compile Python to Erlang easily. :P
23:46:46 <AnMaster> erlang is very backwards compatible, beam is not so much (but still pretty)
23:46:57 <cheater99> I AM SUCCESS
23:47:05 <CakeProphet> Most things would be easy. I just don't know what I would do about single-assignment variables.
23:47:13 <AnMaster> cheater99, that is what your mother thinks?
23:47:29 <AnMaster> you being a success I mean
23:47:49 <AnMaster> CakeProphet, put them in an ets table? XD
23:48:02 <AnMaster> okay that would be nasty
23:48:19 <CakeProphet> hahaha
23:48:20 <CakeProphet> no wait
23:48:24 <CakeProphet> I've got a better idea, proc dictionary.
23:48:37 <AnMaster> CakeProphet, cpython is a stack machine, beam is a register machine
23:48:41 <AnMaster> worth considering that difference
23:49:44 -!- MigoMipo has quit (Read error: Connection reset by peer).
23:49:46 <CakeProphet> you know I bet BF would be trivial to compile to BEAM
23:49:56 <AnMaster> ugh
23:50:13 <AnMaster> CakeProphet, wouldn't be too hard to compile to erlang either
23:50:19 <AnMaster> just a main loop
23:50:28 <AnMaster> passing a dict as a parameter
23:50:32 <CakeProphet> when/if I finalize that concurrent BF-based language I might compile it to Erlang.
23:50:43 <AnMaster> bf-based language?
23:50:45 <AnMaster> no thanks
23:50:48 <AnMaster> we have enough of those
23:50:57 <CakeProphet> very loosely based. "based" as in its a turing machine. :P
23:51:01 <AnMaster> hm
23:51:15 <CakeProphet> the operations are going to be a bit more high-level, but not much more.
23:51:17 <AnMaster> bf is not a turing machine
23:51:18 <AnMaster> at all
23:51:21 <CakeProphet> ......
23:51:22 <CakeProphet> wat
23:51:24 <CakeProphet> you lie.
23:51:25 <AnMaster> the tape is pure data
23:51:29 <AnMaster> not data an instruction
23:51:35 <AnMaster> of course it is turing complete
23:51:40 <AnMaster> but so is lambda calculus
23:52:00 <AnMaster> CakeProphet, bf does not have the instructions on a tape
23:52:03 <CakeProphet> Then perhaps I do not know what a Turing machine is. x_x
23:52:26 <CakeProphet> because every description I've read of a TM looks exactly like BF.
23:52:36 <AnMaster> ais523, can you help here
23:52:51 <AnMaster> I need to sleep
23:52:51 <ais523> CakeProphet: control structure for a TM is different than for BF
23:53:04 <ais523> basically, in BF you have increment/decrement for changing values, while for loops
23:53:18 <ais523> in a TM you have set-to-value for changing values, and switch and goto as control structures
23:53:24 <ais523> so not exactly the same
23:53:31 -!- GreaseMonkey has joined.
23:53:34 <CakeProphet> ah okay.
23:54:21 <CakeProphet> well, this language was going to have set-to-value and arbitrary-number increment/decrement
23:54:38 <CakeProphet> is there any other difference?
23:54:49 <CakeProphet> how are instructions represented on tape?
23:57:16 <AnMaster> ais523, ^
23:57:41 <ais523> CakeProphet: the instructions aren't on the tape
23:57:58 <ais523> the tape stores data, in both a TM and BF
23:58:19 <ais523> unless you're trying to write a TM that is an interp for something, in which case the instructions are data and you can use any representation you like
23:58:35 <CakeProphet> ah, gotcha.
23:58:57 <AnMaster> ais523, or a self modifying TM
23:59:09 <ais523> AnMaster: then it isn't a TM
23:59:16 <AnMaster> ais523, what is it then?
23:59:29 <cheater99> ok
23:59:31 <cheater99> does it work?
23:59:33 <cheater99> it works
23:59:39 <cheater99> i am an master
23:59:49 <CakeProphet> AnMaster, a TM interpreting a self-modifying language, I assume.
←2010-06-19 2010-06-20 2010-06-21→ ↑2010 ↑all