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