00:01:22 That is, instead of being forced to use CC-BY-SA, I would like to use CC-SA. 00:01:51 People who want to contribute might not if they know their contributions might not get credited. 00:01:55 zzo38: Well, uh, nobody really wants that except you, so I guess nobody really bothered. 00:01:58 Sgeo: Stop talking crap. 00:02:11 pikhq: Ping. 00:02:59 elliott, gah downloading binary pypy since it started swap trashing on my 4 GB RAM thinkpad 00:03:06 Vorpal: lawl 00:03:18 Then again, my Newspeak IDE tweak is so little code I don't think I'd get credit for it 00:03:19 Vorpal: Do YOU want to look at my kill and tell me what's wrong with it? :p 00:03:26 I still need to figure out how to submit a patch 00:03:47 elliott, not really no, everything is sluggish on both systems atm. minecraft on one, and 90% of userland in swap on the other 00:03:56 /* actually send the signal */ 00:03:56 pid = strtol(argv[i], &endptr, 10); 00:03:56 if (!argv[i][0] || *endptr) badusage(); 00:03:56 if (kill(pid, sig) < 0) { 00:03:56 barf("kill"); 00:03:57 ret = 1; 00:03:59 } 00:04:07 Vorpal: Pop quiz: Why does this always give "invalid argument"/ 00:04:17 elliott, which point in the code gives that 00:04:21 Wait, now it doesn't. 00:04:23 Now it just does nothing. 00:04:24 elliott, try gdb 00:04:28 elliott, gdb and step 00:04:32 Vorpal: No, I hate gdb. I've figured out what the problem is. 00:04:39 elliott, why do you hate gdb? 00:04:42 gdb is awesome 00:04:44 Vorpal: It irritates me. 00:04:49 elliott, WHY? 00:05:08 Vorpal: Because I don't have much connection with the code's execution path; I prefer reasoning about the code. 00:05:26 Vorpal: The most effective debugging tool is still careful thought, coupled with judiciously placed print statements. -- Brian W. Kernighan 00:05:32 gah binary pypy (built 2010-11-25) uses cpython 2.5.2 00:05:33 wtf 00:05:33 At least I am in good company. 00:05:35 Well, I want you to know, that any programs or other works I have written that the license requires attribution, that I give everyone permission to make attribution optional. (The exception is stuff related to things I do commercially; these things will have their own permission) 00:08:51 -!- Mathnerd314 has joined. 00:09:30 elliott, nailor has been *really* busy I see 00:09:39 Vorpal: Seen. 00:10:02 elliott, I can't find the mystery cave though 00:10:09 Vorpal: Down the stairs. 00:10:11 There's a sign. 00:10:19 elliott, yes I seen the sign 00:10:24 then just a normal but well lit cavern 00:10:25 So follow the arrow. 00:10:27 is that it? 00:10:29 Vorpal: That's the mystery cave. 00:10:39 I'm a bit disappointed it is no more mysterious 00:10:39 Whether you consider if mysterious or not is entirely dependent on you. 00:10:56 * elliott decides to move most of kill into a new program, signal(1). 00:12:48 elliott, that is a shitload of glass around that lava 00:13:45 Vorpal: Hm? What lava? 00:14:42 Grrr 00:14:43 elliott, the deep lava cavern, the lava fall starting next to the library 00:14:49 elliott, and going to bedrock or such 00:14:57 Someone vandalized an UnNews article I wrote in 2007 00:15:08 They vandalized it in 2010 00:15:15 That's a bit of a WTF and a Grr 00:15:26 http://uncyclopedia.wikia.com/index.php?title=UnNews:All_atheists_proven_to_be_Muslims&action=history 00:16:20 thats gay 00:16:22 yeah it is 00:16:25 -!- perdito has changed nick to hagb4rd. 00:16:27 (To quote the esteemed vandal of 2007.) 00:17:43 OK, seriously: Why would the barf() code path end up always executing in http://sprunge.us/TYib (unless signal=0 or whatever), with the "Invalid argument" error? 00:17:51 EINVAL An invalid signal was specified. 00:17:51 wtf. 00:17:58 Oh, wait, it's not doing that any more. 00:18:01 It's just... not doing anything. 00:18:10 elliott@dinky:~/code/tools$ bin/kill 1087 00:18:10 elliott@dinky:~/code/tools$ 00:18:10 elliott, didn't you see the lavafall? 00:18:11 -!- augur has joined. 00:18:13 elliott, go do it then 00:18:16 And printing a blank line in-between those for no apparent reason. 00:18:17 Vorpal: no thanks 00:18:26 elliott, it is inside a 3x3 glass pillar 00:18:34 very impressive 00:18:34 cool 00:18:36 and very long 00:18:44 elliott, why not log on and check and then log off? 00:18:57 Okay... apparently a bunch of }s and a return ret; cause an additional newline to be printed. 00:19:13 elliott, the server was there a moment ago, if you are far from spawn he could tp you to me 00:19:35 Vorpal: Not right now. Later, okay? 00:19:37 I'm here all night. 00:19:39 elliott, did you make the function "barf"? 00:19:41 Phantom_Hoover: Yes. 00:19:44 Aha! Sleep can't kill its parent. 00:19:47 elliott, well then I will log off 00:19:53 elliott, I'm going to sleep very soon 00:19:57 I clearly have to use setsid. 00:19:59 Vorpal: Soon, okay? 00:20:19 http://uncyclopedia.wikia.com/wiki/UnNews_talk:All_atheists_proven_to_be_Muslims 00:20:39 -!- oerjan has quit (Quit: ZZZ). 00:21:19 -!- Phantom_Hoover has quit (Quit: YYY). 00:23:52 aha! 00:23:57 Vorpal: I was parsing "-9", not "9" 00:23:59 so the signal was negative :D 00:24:06 that's one bug at least 00:24:34 ok, it now mostly works 00:25:59 Yay, it all works. 00:27:24 -!- hagb4rd has quit (Quit: hagb4rd). 00:27:42 -!- hagb4rd has joined. 00:30:17 My brother's character in D&D game is afflicted lycanthropy 00:30:57 pikhq: So, I currently have cat, date, echo, false, kill, pwd, signal (kill -l, basically), sleep and true in 34K. 00:33:49 Totally awesome. 00:34:29 pikhq: Want a tarball of what I've got so far? Feel free to tell me some programs are utterly hideous; I need advice in that area. :) Also, bin/signals.h is a horrible hack that doesn't do the Right Thing for a few architectures. 00:36:20 pikhq: I'm crazy, so here, have a .cpio.Z: http://filebin.ca/rghto/tools.cpio.Z 00:36:40 pikhq: The Makefile is very me-specific at the moment. If you actually want to compile them, uh, I can get you the relevant toolchain (bootstrapped pcc/dietlibc) 00:37:12 :) 00:37:36 TODO: man pages, all the other useful things out there, testing testing testing. 00:39:57 elliott, in a proper language that parser bug would have been detected at compile time 00:40:15 Vorpal: Not any language where argv is an array of strings. :P 00:40:25 elliott, well what about coq? 00:40:30 Vorpal: "Just use an option parser!" Yeah, I would, except that I'd have to do -n. 00:40:47 Vorpal: It's perfectly possible to write programs in Coq just like Haskell. It's just that usually you have the entire library of rich types working against you. 00:40:53 You can easily define "dumb" non-dependent types in Coq. 00:40:58 hm 00:41:01 And they would readily accept the bug I made. 00:41:19 Vorpal: Of course if this wasn't Unix and tools took proper objects instead of an array of strings... yes, there would be no bug. 00:41:26 You can't be too much smarter than your environment. 00:42:02 Vorpal: Also, when you start using gotos rather than creating a new function, you're crazy! 00:42:21 The code in question: http://sprunge.us/GcNO 00:43:43 elliott, server is on atm. 00:43:56 Eh, I'll come on. 00:45:51 -!- Sasha2 has joined. 00:46:21 -!- Sasha has quit (Read error: Connection reset by peer). 00:47:50 http://zzo38computer.cjb.net/music_storage/seasonstacker.ogg (Please note I did not write this music; I think Purple Motion did. I do not know what format it was originally made in.) 01:02:52 pikhq: Looked at the code? 01:03:14 NEIN 01:04:12 pikhq: The only thing to fear is fear itself and avoiding startup code so that true and false can be 200 bytes!! 01:15:34 pikhq: Psht! 01:16:23 "Plan 9 is a programmable debugger that understands multiple-process programs, and except at its own console, it doesn't run as an exercise in understanding the principles and mechanisms useful in designing operating systems, and not as a product as such. In this way it is analogous to the Unix operating system. In the most general configuration, it uses three kinds of networks, including Ethernet, Datakit, specially-built fiber networks, ordinary 01:16:23 connections, and ISDN. In Plan 9, each network presents itself as a product as such." 01:36:02 pikhq: Ugh. Just realised pcc doesn't have warnings. 01:36:03 * elliott fixes up code 01:48:44 pikhq: Woo, I almost have a vis where "vis ..." = "cat -v ...". 01:48:49 (More or less.) 01:57:48 wtf... 01:59:08 elliott, painterly sure have a nice cobble texture 01:59:14 but why turn the torches into candles 01:59:23 Vorpal: you can select what parts you want, I think 01:59:33 true 01:59:37 elliott, but that is work 01:59:44 Vorpal: Doesn't it have a web interface? 01:59:56 Vorpal: http://painterlypack.net/customizer.php 01:59:57 Vorpal: Yes it does. 02:00:20 Vorpal: I thought you were going to bed "very soon"? :P 02:00:23 also biome grass 02:00:24 hm 02:00:29 that seems lacking 02:00:31 or broken 02:00:47 Largest program so far: kill, at 8775 bytes. 02:01:02 And most of that is all the errno and signal text. :p 02:02:29 huh 02:02:37 Vorpal: if you do "continue" in a for loop, is the i++ part meant to be skipped? 02:04:50 elliott: I like how you do the sane thing with cat's options. :) 02:05:12 (i.e. make a seperate program from them, LIKE IT SHOULD BE.) 02:05:25 pikhq: Yep! And this program actually existed in 8th Edition Unix, although it printed out octal instead. 02:05:39 pikhq: BusyBox also does this, but it calls its program catv, and why name a program after a mistake? 02:05:48 http://man.cat-v.org/unix_8th/1/vis btw 02:06:28 Vorpal: if you do "continue" in a for loop, is the i++ part meant to be skipped? 02:06:31 pikhq: Do you know the answer to that? 02:06:35 It seems to be acting that way. 02:06:35 elliott, which language? 02:06:37 But that seems strange to me. 02:06:38 Vorpal: C. 02:06:48 I believe it shouldn't 02:06:54 very strange 02:06:59 hahahaha WOW 02:07:00 http://www.wikipl.com/index.php/WPL_Code_Guidelines 02:07:04 Good name: CompareTwoTextFilesAndGetTheDifferentLines 02:07:06 Bad names: CompareTwoTextFiles, CompareTextFiles 02:07:11 this MUST have been written on crack 02:07:17 that table is beyond unbelievable 02:07:58 -!- Sasha2 has quit (Ping timeout: 240 seconds). 02:08:28 Vorpal: ok it isn't doing that, my program is just KERRAAAZY :) 02:08:39 -!- Sasha2 has joined. 02:09:05 ok, wtf @ this 02:09:06 makes no sense 02:09:44 pikhq: http://sprunge.us/XRRA PLZ2BE TELLING ME WHY THE CONVERSION LOOP RUNS FOREVER ON /DEV/URANDOM 02:09:54 oh wait 02:09:54 "c" 02:09:55 lol 02:10:24 elliott, what "CompareTwoTextFilesAndGetTheDifferentLines" 02:10:24 still doesn't work though 02:10:25 XD 02:10:29 Vorpal: yeah :D 02:10:56 Vorpal: CompareTheseTwoTextFilesSpecifiedAsUtfEightFileNamesAndGetEveryLineInOneButNotBothAsAListOfUnicodeStrings 02:11:10 Vorpal: CompareTheseTwoTextFilesSpecifiedAsUtfEightFileNamesAndGetEveryLineInOneButNotBothAsAListOfUnicodeStringsAndRaiseAnExceptionIfAnythingGoesWrongDuringTheProcessOfDoingThis 02:11:19 elliott, int loop_counter_variable_used_in_for_loop_to_count_up_from_0_to_100 ? 02:11:25 Vorpal: Yes! 02:11:33 char *string_entered_by_the_user_that_is_dynamically_allocated; 02:11:53 long i_like_muffins_and_also_this_variable_is_a_long_integer_and_it_stores_the_users_current_happiness_level; 02:12:40 night → 02:12:50 wtf is up with this code 02:14:24 Vorpal: wait i have an important question 02:14:36 Vorpal: if your code starts spewing out bits of the environment when outputting /dev/urandom 02:14:42 you probably have a buffer overflow somewhere right :D 02:15:44 what the FUCK 02:16:03 pikhq: Yo. Can you write vis(1) for me? :P 02:16:14 Not ATM. Perhaps later this weekend. 02:18:35 pikhq: I'll just keep hacking at the code then. 02:18:46 pikhq: pikhq cal should make its way in basically intact, as writing cal sounds boring. 02:18:58 pikhq: Hey, Tcl is in good historical company; Multics used [...] to do what Unix does with `...`. 02:19:03 (Source: http://www.multicians.org/unix.html.) 02:19:43 Huh. 02:22:35 pikhq: BTW, I did the same split-option-out-into-separate-command thing with kill. 02:22:49 pikhq: -l is meant to print a list of available signals, and also -l $? is meant to print what signal a process with that exit code was killed by. 02:23:03 pikhq: But GNU kill has something better: -l TERM prints out the number for TERM, and -l 15 prints out TERM. 02:23:20 So I made a signal(1) which can list available signals, and translates signal names/numbers. 02:23:27 And got rid of -l from kill. 02:23:31 Beautiful. 02:23:53 And if you want POSIXly correct, well, screw you. :P 02:24:04 Oh, bin/signal has a bug ... 02:24:05 * elliott fxies 02:24:06 *fixes 02:24:52 hmm what's up with that 02:25:04 pikhq: I'm going to WhatStuffActuallyUsesly correct. :P 02:25:20 Ah, the GNU way without the stupid. 02:26:09 GNUpid 02:29:08 pikhq: [[The precision used may be less than the default six digits of %f, but shall be sufficiently precise to accommodate the size of the clock tick on the system (for example, if there were 60 clock ticks per second, at least two digits shall follow the radix character).]] 02:29:18 pikhq: Does that mean... CPU clock? 02:29:23 Or scheduler clock? 02:30:41 TODO: fix signal, vis 02:31:03 Clearly it means a grandfather clock attached to the computer. 02:31:24 -!- wareya has quit (Read error: Connection reset by peer). 02:32:24 -!- wareya has joined. 02:39:16 Now why is env broken... 02:39:39 pikhq: BTW, I'm going to have probably a separate project moretools that has things like wget, ping, etc. 02:39:44 i.e. the bigger, auxiliary stuff. 02:40:53 Does it have netcat? 02:42:10 pikhq: env(1) done. 02:42:17 zzo38: No; use Hobbit's original netcat. 02:42:22 That's the best anyway. 02:42:32 Whereas things like wget are rather big and could do with shrinking. 02:43:22 The full system, if it is intended to have a connection to the internet, should require netcat. 02:43:34 zzo38: Yes, but moretools is my implementations of things. 02:43:39 For netcat, I'll use Hobbit's netcat. 02:43:47 elliott: OK. You can do that, then. 02:44:10 pikhq: 50K for cat, date, echo, env, false, kill, pwd, signal, sleep, true, vis. signal has some bug that I don't know what it is right now, vis is amusingly broken. 02:44:22 date has one bug (-u shows the correct time, but doesn't say "UTC") 02:45:07 Hey kid! 02:45:09 I'm a computer! 02:45:24 -!- baojian has joined. 02:45:26 Gregor: Hi! 02:45:27 Use short options (I do not like GNU long options) 02:45:37 elliott: Stop all the downloadin'! 02:45:47 zzo38: I do. Well, not for most things, but wget, sure 02:45:48 *sure. 02:45:53 Gregor: Nope! 02:46:00 elliott: Help computer. 02:46:11 Gregor: What is wrong. 02:46:31 elliott: You're doing your part all wrong :P 02:46:43 Use long options if you want to, but in my implementation there will be no long options. 02:46:45 Gregor: I have no idea what you are referencing :P 02:47:08 D-8 02:47:16 elliott: You don't know of the Fenslerfilm GI Joe PSAs? 02:48:46 Well, I googled a minute ago and found http://www.fenslerfilm.com/PSAS.htm. 02:48:56 elliott: Watch them FOREVER 02:49:30 Gregor: What :P 02:49:37 elliott: Watch them once? :P 02:49:39 Does this make any more sense when intoxicated? 02:49:43 *these 02:49:44 *Do 02:49:53 Idonno, but they grow on you like Charlie the Unicorn :P 02:50:11 I liked Charlie the Unicorn first time around. 02:51:54 How 'bout I list the particularly-funny ones? :P 02:52:55 Have you found all of the secrets yet in Godel, Escher, Bach? 02:53:12 (Yes; this book does, in fact, have secret pages.) 02:53:38 secret pages? 02:53:40 pikhq: -rwxr-xr-x 1 elliott elliott 26K Dec 4 02:52 box 02:53:40 elliott: 5, 6, 7, 8, 13, 15, 16, 17, 20, 22 and 24 are the funny ones :P 02:53:49 pikhq: Just sayin'. 02:54:15 Sgeo: Yes. There are secret pages, as well as secret things and obscure things found on the non-secret pages. 02:54:28 pikhq: But I don't like the changes I had to make to the codebase to do that. 02:54:32 How do secret pages work in a physical medium? 02:54:41 pikhq: (I could avoid it if I did each program as an object.) 02:55:06 Sgeo: Figure it out! 02:55:12 Gregor, wtf? 02:55:24 Sgeo: Porkchop sandwiches! 02:56:01 (Hint: Some of the things the dialogues discuss are somewhat related to the way the secret pages work in a physical medium.) 02:56:51 Gregor, those... those can't be derived from the actual cartoon, with stuff dubbed over, can they? 02:57:04 That's what they LOOK like, but the content of the visuals makes no sense in that context 02:57:39 Sgeo: The cartoon had stupid PSAs in it. 02:58:15 How TF does some guy vaporizing people in a burning building... 02:58:21 * Sgeo goes insane 02:58:32 What was the original PSA. I have to know? 02:59:44 Sgeo: They sometimes modified the video slightly :P 02:59:50 Ah, ok 03:01:28 * pikhq giggles 03:01:44 As part of the CGA Collection, I made a variant of the Wumpus game. One difference is there is nine levels on top of each other. You have only one arrow (non-crooked), once used it can never be retrieved. You are usually not told the room number or the direction of the exits. There are other differences, too. 03:02:08 And there is five wumpus instead of just one. 03:02:15 gettimeofday() provides enough bits to accurately measure time from 1970 to 292277026596. 03:02:18 There is also various colored potions. 03:02:25 So very much overkill. 03:04:31 Y29227702.6597K 03:04:55 Wait, I put the decimal in the wrong spot 03:05:02 Meh, correcting jokes ruins them I think 03:08:33 pikhq: -rwxr-xr-x 1 elliott elliott 22K Dec 4 03:07 box 03:08:39 pikhq: This time with separate object files and no code changes. 03:08:43 I am trying to make a Semi-literate Gforth this is what I have so far: http://sprunge.us/KaMH 03:09:18 Please tell me if it is wrong or any other suggestion and so on. 03:09:46 elliott: Hmm. 03:09:50 pikhq: Hmm? 03:09:54 Hmm. 03:10:02 pikhq: Is this the "evil idea" kind of hmm? 03:10:07 No. 03:10:13 pikhq: Aww. 03:10:14 Nice work though. 03:10:34 The box isn't my focus though; the individual programs are. 03:10:37 Perhaps you'd like a shell in there. 03:11:40 Please tell me an opinino of what I have so far this program!!?!. ! 03:12:07 pikhq: If there is a "shell" it will be one optimised to run init scripts and the like. For an interactive shell just use a ksh. 03:12:19 zzo38: Cool. 03:13:30 http://uncyclopedia.wikia.com/wiki/UnPoetia:Walking_in_a_Klingon_Wonderland 03:14:33 I will have to add some things, such as explanation section (I can have a TeX macro switching the category codes between both modes), and then make a variant of Computer Modern for typesetting Forth codes, and then add some things for formatting each word..... 03:14:49 I have not quite figure out yet how to make it format each word. 03:15:28 (The only thing this program does so far is indexing! I do need to add the other things in, too.) 03:17:06 This is because I want to make the "Secrets of SoS" roguelike game to be four books in one book (with tabs sticking out of the pages to beginning of each one). 03:18:29 There is a problem with this program the way it works so far; the words NEXT-ARG REQUIRED BYE are indexed, even though they should not be indexed. 03:19:41 pikhq: Barf. 03:19:42 pikhq: uname. 03:19:49 pikhq: Irritating because I have to join things up with spaces. 03:25:30 pikhq: uname done! 03:28:57 pikhq: I wish pcc had nicer warnings. 03:29:06 (It has very few, and seemingly none if you don't use system headers.) 03:43:15 pikhq: I'm going to tackle test; seems like fun. 03:43:39 Mmm. 03:44:06 Although actually no, not right now, it has some corner cases that look annoying. 03:44:14 Head! Everyone loves getting head in their coreutils. 03:44:34 o.O 03:45:03 Sgeo: What. 03:45:13 http://www.opengroup.org/onlinepubs/009695399/utilities/head.html 03:45:14 Head! 03:45:23 Ok 03:51:13 pikhq: Man, have you seen how laughably minimalist POSIX head is? 03:51:17 pikhq: http://www.opengroup.org/onlinepubs/009695399/utilities/head.html 03:51:22 pikhq: No negative argument, no bytes... 03:54:23 Man, to hell with head for now. 03:58:16 -!- baojian has quit (Read error: Connection reset by peer). 04:12:41 elliott: It's... Just head. 04:12:42 Wow. 04:12:53 This from the same people that brought us pax. 04:13:08 pikhq: I like how their head(1) is useless and yet they've bloated everything else. 04:13:11 Literally useless; I use -c all the time. 04:13:25 Yeah, -c is definitely a useful option. 04:13:52 2399 bin/basename 04:15:16 -rwxr-xr-x 1 elliott elliott 23K Dec 4 04:14 box 04:15:52 if (suffix) { 04:15:53 pathlen = strlen(path); 04:15:53 suffixlen = strlen(suffix); 04:15:53 if (!strcmp(path + strlen(path) - suffixlen, suffix)) 04:15:53 path[pathlen - suffixlen] = 0; 04:15:53 } 04:15:55 Deuglification welcome. 04:16:01 *pathlen, duh. 04:18:35 pikhq: Hey, you did basename too. 04:18:52 pikhq: Um, how did it take you 87 lines and various functions? I've done it in 36 lines of main... 04:20:03 -!- Goosey has joined. 04:21:52 -!- augur has quit (Remote host closed the connection). 04:22:01 elliott: I implemented the precise algorithm POSIX specifies. 04:22:37 pikhq: So did I. 04:22:59 I must have made it more complicated than necessary. 04:23:05 Indeed :P 04:24:16 pikhq: I think I'm going to start replacing uses of strtol with atoi i the codebase, because I don't have to check errors and the like and if you pass a stupid non-number that's your problem ... 04:30:45 -!- Wamanuz has quit (Ping timeout: 276 seconds). 04:31:45 pikhq: Now I'm doing strings. 04:31:51 As in strings(1). 04:31:56 -!- Wamanuz has joined. 04:35:00 pikhq: strings done! 04:35:32 pikhq: Remind me to make these program use mmap sometime. 04:35:33 *programs 04:37:56 -!- augur has joined. 04:44:24 elliott: That's not my job, that's AnMaster's job. 04:44:42 pikhq: Actually, mmap is just plain nice. 04:44:47 pikhq: Think about it: It's orthogonal persistence. 04:44:58 "I want this bit of memory to happen to correspond to this bit of disk." 04:45:03 Let the OS handle the rest. 04:46:01 mmap is definitely a nice function. 04:48:59 Do you know how to make Where Is My Keys Soup? 04:57:16 pikhq: Lol, Wikipedia power abusers: http://en.wikipedia.org/wiki/User_talk:The_last_username_left_was_taken 04:57:23 log-reading ais523: http://en.wikipedia.org/wiki/User_talk:The_last_username_left_was_taken 05:03:20 If the computers were, say, set up by a person who set up the machines identically, and none of the users installed anything... 05:04:56 At least that seemingly isn't case of wikipedia admins abusing their position for advancing agenda (yup, seen that too). 05:08:08 Ilari: Who hasn't. 05:08:35 Me, who doesn't pay attention to Wikipedia politics 05:08:41 Ilari: I love how they go from "same IP address and headers" ========> "STOP QUESTIONING ME IT'S YOUR COMPUTER BECAUSE Q.E.D., NEVER QUESTION MY AUTHORITY" 05:08:53 They must get a real kick out of it. 05:09:09 Does XFF even reveal anything beyond IP? 05:10:10 Shouldn't think so. 05:10:52 You know what might work somewhat? Using cookies 05:10:58 No. 05:11:05 Shouldn't get any false positives from that, I th.. 05:11:10 Actually, n/m 05:14:07 -!- yorick has quit (Read error: Operation timed out). 05:14:24 pikhq: Yeah, I have ABSOLUTELY NO IDEA why vis is failing. I've even made it basically identical with the BusyBox logic. 05:14:28 I'll look into it tomorrow. For now, sleep. 05:14:31 -!- elliott has quit (Quit: Leaving). 05:17:22 -!- yorick has joined. 05:30:50 There is Paranoia RPGness that focuses on High Programmers?! 05:39:11 Now, how do I make the formatting work with this literate Forth system I did, do you know anything about this? 05:42:37 * Sgeo has a DreamWriter 500 05:42:43 * Sgeo wonders how hackable it is 05:45:43 -!- Sasha has joined. 05:46:35 -!- Sasha2 has quit (Ping timeout: 272 seconds). 05:49:26 -!- hagb4rd has quit (Ping timeout: 245 seconds). 05:56:12 -!- evincar has joined. 05:56:23 Hello world. 06:04:46 Sgeo: I have dealt with the DreamWriter before. I do not have one, but I have been able to support copying files to another computer by the serial port and printing them. (Someone else who had it asked me to do that, and having never seen it before, I had to figure it out, so I did.) 06:06:55 So...I have a bit of a problem. 06:07:05 Good language idea, no idea what to name it. 06:07:53 evincar: What is the idea? 06:09:00 zzo38: The language is purely functional in the same sense that Haskell is purely functional (that is, kinda), but instead of abstracting sequential operations using monads, it uses a set of timelines, which may be asynchronous. 06:09:48 evincar: Can you call it "Timehaskell"? 06:09:52 Or, something similar 06:10:21 zzo38: Nah, it's not really like Haskell design-wise. I was just drawing a parallel. 06:10:33 I was thinking of something related to time, light, a timeline, or speed. 06:10:36 Or parallelism. 06:11:33 Maybe you can mix up the letters of some words to make a anagram. 06:12:12 Bit of a cheap trick. 06:12:23 Yes, it is bit of a cheap trick. 06:12:29 I've looked around in other languages, finding nothing really satisfying. 06:15:03 How does Enlight sound? 06:17:13 OK. 06:24:47 That's how I feel about it...it's not thrilling. 06:30:50 But I think it will do. 06:31:21 If you are unsure, make it as a subpage of your user page just with a title numbered, and then move it when you have a proper title. 06:33:56 Oh, it's not an esolang... 06:34:04 ...at least, it's not supposed to be. 06:34:14 I think "Momentum" is better. 06:35:09 OK. 06:37:06 Blah, boring topic. It is an interesting language, though. 06:40:34 -!- evincar has quit (Quit: ChatZilla 0.9.86 [Firefox 3.6.12/20101026210630]). 06:40:59 Haskell is not "kindof" functional 06:41:10 * Sgeo growls at everyone who thinks that IO introduces an impurity 07:15:14 Do you know if there is any way in Gforth to override the prior use of a non-deferred word? 07:36:53 -!- Wamanuz2 has joined. 07:36:54 -!- Wamanuz has quit (Read error: Connection reset by peer). 07:43:17 -!- Sgeo has quit (Read error: Connection reset by peer). 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:03:43 I made a override that I almost got it to work. 08:19:15 -!- zzo38 has left (?). 08:53:44 -!- Phantom_Hoover has joined. 09:17:55 -!- Goosey has quit (Ping timeout: 264 seconds). 09:29:27 -!- sebbu2 has joined. 09:31:42 -!- sebbu has quit (Ping timeout: 276 seconds). 09:35:24 -!- oerjan has joined. 09:41:37 -!- MigoMipo has joined. 10:24:17 -!- sebbu2 has changed nick to sebbu. 10:27:46 -!- Phantom_Hoover has quit (Ping timeout: 245 seconds). 10:29:20 -!- nopseudoidea has joined. 10:37:05 -!- kar8nga has joined. 10:41:09 -!- Phantom_Hoover has joined. 10:46:58 -!- nopseudoidea has quit (Quit: Quitte). 10:50:56 -!- aloril has quit (Ping timeout: 264 seconds). 11:04:18 -!- aloril has joined. 11:07:52 -!- FireFly has joined. 11:46:34 -!- FireFly|n900 has quit (Ping timeout: 245 seconds). 12:19:46 -!- MigoMipo has quit (Ping timeout: 240 seconds). 13:16:29 -!- elliott has joined. 13:17:12 04:47:40 time to buy minecraft 13:17:14 nooga: l o l 13:18:22 22:40:59 Haskell is not "kindof" functional 13:18:23 22:41:10 * Sgeo growls at everyone who thinks that IO introduces an impurity 13:18:28 Sgeo: the IO monad is impure. 13:42:29 -!- nopseudoidea has joined. 13:48:55 -!- nopseudoidea has quit (Quit: Quitte). 14:15:50 -!- geo has joined. 14:17:33 pikhq: I made true and false smaller but they don't work now. :p 14:25:10 -!- geo has left (?). 14:31:55 77861 bytes for false, true, yes, sleep, pwd, echo, basename, uname, signal, link, cat, date, chroot, env, strings, vis and kill, in ascending order of size. 14:32:41 TODO: Figure out some sort of way to only include the subset of error strings that the calls in the program can produce. 14:32:50 Probably by manual specification. 14:35:48 -!- aloril has quit (Remote host closed the connection). 14:42:46 -!- aloril has joined. 14:48:20 -!- yorick has quit (Remote host closed the connection). 15:07:02 Vorpal: HA! 15:07:08 pikhq: And HA! 15:07:25 Vorpal: pikhq: cal(1)'s behaviour is not specified to be locale-dependent (POSIX 2004). 15:07:27 " The cal utility shall write a calendar to standard output using the Julian calendar for dates from January 1, 1 through September 2, 1752 and the Gregorian calendar for dates from September 14, 1752 through December 31, 9999 as though the Gregorian calendar had been adopted on September 14, 1752." 15:07:36 That is all. 15:10:03 char *shortmonths = "janfebmaraprmayjunjulaugsepoctnovdec"; 15:10:06 saves me 11 nul bytes 15:10:08 -!- jcp has quit (Quit: Later). 15:13:02 -!- jcp has joined. 15:14:18 you could probably save the nul byte at the end of that too :D 15:14:38 somehow 15:16:51 -!- Sasha2 has joined. 15:18:39 -!- Sasha has quit (Ping timeout: 245 seconds). 15:19:59 oerjan: wait, yes i could, just a matter of convincing the C compiler :D 15:26:03 -!- Sasha has joined. 15:26:04 -!- Sasha2 has quit (Read error: Connection reset by peer). 15:29:35 oerjan: but hey, I'm not crazy! 15:29:38 sorta! 15:29:50 >_> 15:31:25 oerjan: just because I have false, true, yes, sleep, pwd, echo, dirname, basename, uname, signal, link, cat, date, chroot, env, strings, vis and kill in 80204 bytes doesn't make me crazy! nor that I manually call the linker and use Brian "INTERCAL Style Guidelines" "41 byte ELF executable" Raiter's sstrip utility, which renders the file unreadable by the GNU objdump disassembler! 15:31:47 oerjan: just because I can link them into one executable of 23231 bytes doesn't make me crazy either! It makes me a genius! 15:31:48 yes! 15:31:49 that is what I am! 15:31:52 hahahahahaha! 15:32:30 as long as that's settled then 15:32:42 WHY ARE YOU LAUGHING AT ME 15:32:51 hey WAIT 15:32:54 char *months[] = { 15:32:54 "January", "February", "March", "April", "May", "June", "July", "August", 15:32:55 "September", "October", "November", "December", NULL 15:32:55 }; 15:32:55 char *shortmonths = 15:32:57 "jan" "feb" "mar" "apr" "may" "jun" "jul" "aug" "sep" "oct" "nov" "dec"; 15:33:05 i could just use the first three characters of the months array! 15:33:25 quite so 15:33:53 why do you need null termination on months? 15:35:08 -!- nopseudoidea has joined. 15:35:30 oerjan: good point :P 15:35:43 oerjan: alas the code-based solution does *not* seem to help things. well, using tolower(). 15:35:45 i'll write my own tolower 15:36:47 wait what... 15:36:54 oh 15:37:23 That is all. 15:37:39 elliott, I believe all utils should have that 15:37:44 according to the spec 15:37:59 Vorpal: no, see http://www.opengroup.org/onlinepubs/009695399/utilities/cal.html 15:38:14 Vorpal: it is *expressly* defined, without any mention of locales, to use the 1752-switchover calendar 15:38:24 elliott: apropos locale and cal, if i set it to nb_NO.utf8 the month and day names do become norwegian, although the julian/gregorian jump is still sep 1752 15:38:30 oerjan: that's just what GNU does 15:38:38 oerjan: which is usually completely uncorrelated with what posix wants :) 15:38:47 heh 15:38:51 elliott, I believe POSIX has a blanket statement about locales for output months 15:39:00 oerjan: but in that case, yes, it is correct 15:39:05 Vorpal: [[ The cal utility shall write a calendar to standard output using the Julian calendar for dates from January 1, 1 through September 2, 1752 and the Gregorian calendar for dates from September 14, 1752 through December 31, 9999 as though the Gregorian calendar had been adopted on September 14, 1752.]] 15:39:09 Vorpal: it is hard to get more precise than that 15:39:09 elliott, correct 15:39:14 everything else starts "In the POSIX locale" or the like 15:39:21 but then i'd hazard a guess that most norwegians, just like me, have no f idea when norway switched :D 15:39:26 elliott, but it doesn't say anything about what the output month names should be 15:39:28 Vorpal: ok, find the blanket statement; otherwise I contend you want me to violate POSIX 15:39:34 Vorpal: duh, I know *that* 15:39:51 Vorpal: but the point is that regardless of what locale you're in, the switchover is in sep 1752 and no other date 15:39:53 elliott, and that bit is afaik covered by the blanket statement 15:39:55 elliott, indeed 15:39:56 *no other month 15:40:03 that seems correct 15:40:17 anyway if you want locale support, link these with uClibc or glibc :P 15:40:30 although right now date's default formatting string is hardcoded because I can't figure out how to get it from the locale without Pain(TM) 15:41:11 elliott, gettext? 15:41:38 Vorpal: um posix specifies that each locale should define its own date(1) formatting string 15:41:48 ah 15:41:50 okay 15:41:53 so I would *expect* it to be a standard call or something, but knowing Linux ... 15:42:05 elliott, it is probably by catgets 15:42:09 maybe 15:42:09 Vorpal: anyway gettext is *huge* especially for just one string... 15:42:17 i could just use an env var or something :P 15:42:18 elliott, more than that 15:42:27 Vorpal: not for date 15:42:32 char *fmt = "%a %b %e %H:%M:%S %Z %Y"; 15:42:33 $ date 15:42:34 lör dec 4 16:41:54 CET 2010 15:42:37 Vorpal: the actual month names etc. are done by strftime. 15:42:37 $ LC_ALL=C date 15:42:37 Sat Dec 4 16:42:00 CET 2010 15:42:41 Vorpal: and so are Not My Problem. 15:42:44 elliott, so they are localised? 15:42:52 Vorpal: in whateverlibc with locales,y es. 15:42:53 elliott, you still need to make one library call to make that happen 15:42:53 not with dietlibc. 15:42:56 Vorpal: it's just the default formatting string that's different. 15:43:00 Vorpal: no i don't 15:43:03 strftime looks at the locale 15:43:05 it's specified to 15:43:22 elliott, yes but the locale won't be used without that one library call 15:43:27 trying to remember the name of it 15:43:39 Vorpal: 15:43:40 ENVIRONMENT 15:43:40 The environment variables TZ and LC_TIME are used. 15:43:42 --strftime(3) 15:43:56 setlocale(LC_ALL, ""); 15:44:04 "On startup of the main program, the portable "C" locale is selected as default. A program may be made portable to all locales by calling:" 15:44:09 and then that call 15:44:09 Vorpal: heh 15:44:13 well fuck that, i'll add that later 15:44:43 elliott, I mean it is one call :P 15:44:53 Vorpal: yes, but i have a lot of prorgams. 15:44:55 *programs 15:45:04 Vorpal: I'll do locale support after I implement, say, mount. 15:45:14 porngames 15:45:15 i want to get it useful first 15:45:24 oerjan: patches to add those welcome 15:45:31 O KAY 15:45:32 elliott, mount is not POSIX iirc 15:45:37 :P 15:45:39 oerjan: EVERY PATCH WELCOME 15:45:51 Vorpal: yes, it's useful; usefulness is in fact prohibited by POSIX 15:46:01 Vorpal: this is why POSIX still specifies SCCS commands (and in the same list as normal commands, at that) 15:46:13 hah 15:47:33 * elliott eliminates a division 15:48:29 poor soldiers 15:48:29 * elliott decides to steal most of the cal logic from pikhq 15:48:32 cal is a very ugly command 15:48:41 all the alignment, side-by-side, etc. 15:48:57 Vorpal: oh joy, another MC update 15:49:26 elliott, oh? 15:49:42 elliott, today? 15:49:48 hmm, maybe not 15:49:51 something just came through supposedly 15:49:52 elliott, nothing on his blog about it 15:49:59 "Now supports !" 15:50:03 * elliott dearly hopes that's a legitimate bug in the yellow 15:50:16 elliott, I think it is intentional 15:50:38 shush 15:50:46 elliott, it has been there for ages 15:51:59 Vorpal: http://en.wikipedia.org/wiki/Charles_Bukowski 15:52:16 HAHAHA CROSS-MEDIUM CONVERSATIONS 15:52:23 indeed 15:53:44 AAAAA jimmy wales 15:54:17 wait nothing about crossing mediums in that article 15:55:01 oerjan: no, I mean my conversation with Vorpal 15:55:27 you mean that link wasn't supposed to be on #esoteric? 15:55:42 oerjan: you can't Ctrl+V into minecraft. 15:55:49 so i said "IRC" on minecraft and linked it here 15:55:51 oh 15:56:08 clearly we need EmacsCraftTalk 15:57:00 Why does cal(1) start months with Sunday? 15:57:00 One cannot simply ctrl-V into Mord^H^H^Hinecraft. 15:57:08 Is it perhaps because it is an evil instrument of capitalism? 15:57:13 fizzie, ? 15:57:23 elliott, what would emacscrafttalk be? 15:57:42 Vorpal: Rip out Minecraft's chat input line and replace it with Emacs. 15:57:44 I mean full-blown Emacs. 15:57:46 Modelines and all. 15:58:04 elliott: i think that's locale dependent too 15:58:18 oerjan: yeah but fuck you i'm not implementing locales in cal to start with :D 15:58:23 it's enough of a mess to begin with 15:59:32 huh wait it's not 15:59:51 starts with sunday in norwegian locale too 16:02:02 oerjan: yeah that's just silly 16:02:05 only morons start the day with sunday! 16:02:30 "A future version of IEEE Std 1003.1-2001 may support locale-specific recognition of the date of adoption of the Gregorian calendar. 16:02:39 static const int months_offset[] = {0, 3, 3, 6, 1, 4, 6, 2, 5, 0, 3, 5}; 16:02:39 from man cal 16:02:40 what 16:02:41 pikhq: what 16:02:53 oerjan: well, i'm quoting from the 2004 standard 16:03:02 or at least an indistinguishable draft 16:03:16 well they didn't say how far in the future :D 16:03:18 wait oerjan uses unix now? 16:03:23 or just googled manpages :P 16:03:38 i _do_ have an nvg shell account you know 16:03:57 oerjan: no you use windows on EVERYTHING 16:04:03 including your watch 16:04:06 even if you don't haveone. 16:04:08 IF YOU SAY SO 16:04:09 *have one. 16:04:15 my watch has only one window 16:04:18 it is round 16:08:08 starts with sunday in norwegian locale too 16:08:13 it starts with monday for me 16:08:17 in Swedish locale 16:11:43 sheesh 16:11:48 oh well 16:14:35 -!- wareya has quit (Read error: Connection reset by peer). 16:15:30 -!- wareya has joined. 16:17:26 If you're speaking of cal's first-day-of-week, using a fi locale does Sun → Mon too: http://p.zem.fi/cal-fi 16:18:03 fizzie: I think I'll just make it always Monday to Sunday because that's how everyone worth considering to exist thinks about the week. 16:18:24 (Of course, if I bloat this stuff up with locales (probably behind an ifdef), I'll see what I can do about getting the information from there.) 16:18:46 huh, apparently the cal here is BSD ncal 16:19:16 oerjan: is it linux? 16:19:24 the machine is linux 16:19:29 says uname -a 16:19:40 Ubuntu's cal is from bsdmainutils. 16:19:48 ok 16:19:51 Mine too, it seems. 16:19:52 (Debian.) 16:20:04 oerjan: try "dpkg" then "rpm" to determine approx. distro :P 16:20:24 Or "lsb_release -a" instead. 16:20:35 fizzie: Here, cal does the rather irritating thing of inverse-videoing the current day. I blamed it on GNU, but no! Nobody is safe from the crazy! 16:20:36 It's S as in Standard! 16:20:46 fizzie: Hey, Kitten is non-LSB-compliant. :P 16:20:51 And proud! 16:21:10 dpkg exists, rpm doesn't (at least in PATH) 16:21:12 elliott, are you on MC? 16:21:17 Kitten is angry, kitten is offended. 16:21:32 oerjan: And lsb_release? 16:21:35 fizzie: How did I get that reference without even double-taking... 16:21:42 fizzie: no such thing 16:21:51 My brain's random access times are AWESOME. 16:21:56 Vorpal: No; should I be? 16:22:02 elliott, maybe 16:22:05 do you want to? 16:22:13 Vorpal: I don't know. Are you doing something interesting? 16:22:21 elliott, fishing 16:22:29 Vorpal: what. 16:22:45 elliott, catching fish 16:22:50 utilising a fishing implemenat 16:22:54 implement* 16:23:10 Vorpal: there are no fish. 16:23:21 there are 16:23:26 elliott, they got fixed in MP 16:23:35 Vorpal: what, they exist in SP? 16:23:42 elliott, you don't see any swimming of course 16:23:47 Vorpal: wat. 16:23:48 but you can still catch them 16:24:00 elliott, 3 sticks + 2 strings = fishing rod 16:24:18 The fishing rod generates fish from otherwise plain water, as in real life. 16:24:49 fizzie: Do you always catch a fish -- * this big * -- and then mysteriously lose it seconds later? 16:24:58 You know, like in real life. 16:25:22 Well, there is a timing-related catchery you need to perform, I think. I've never really fished. 16:26:35 TODO: Make basename and dirname call strlen() only once and then work out the new length from the modifications made. 16:26:54 ah /proc/version has: 16:26:56 Linux version 2.6.26-2-486 (Debian 2.6.26-25lenny1) (dannf@debian.org) (gcc version 4.1.3 20080704 (prerelease) (Debian 4.1.2-25)) #1 Thu Sep 16 18:43:30 UTC 2010 16:27:47 elliott, going to check? Also I want to try something 16:28:02 you can hit animals and drag them to you with the fishing rod 16:28:07 I wonder if it works on other players 16:28:14 oerjan: I suggest deleting [[WikiPL]] and [[Talk:WikiPL]] to avoid immense confusion 16:28:26 Vorpal: unlikely, I'm doing other things right now 16:28:37 elliott: i already made a request to the admins in the article 16:29:54 oerjan: oh you're not an admin :D 16:30:30 so it is 16:31:37 oerjan: I think I'm going to clone WikiPL and make it (1) actually a programming language and (2) esoteric because, really, the concept is too good to pass up. 16:31:39 fizzie: elliott: ^ so it was apparently debian 16:31:43 right 16:31:47 also (3) done in a functional language 16:31:56 coughhaskellcough 16:32:12 elliott: wikiplia was done in ML 16:32:24 looks like http://www.wikipl.com/index.php/Main_Page has been updated to s/programming language/programming environment/g 16:32:31 oerjan: yes, but ML has untagged side-effects 16:32:38 oerjan: with Haskell, I'd just ban IO 16:32:39 yes 16:32:47 and limit computations to 30s or whatever 16:33:05 with haskell you can also make your own restricted IO monad 16:33:12 oerjan: indeed 16:33:25 oerjan: but usually it's nicest to deal with input as a presumably-lazy list anyway 16:33:29 at least for simple esolangs 16:33:34 and they rarely have non-stdin inputs 16:35:27 of course only this machine (tyrell) needs to be debian, nvg has other hosts too (i recall there's an OpenVMS somewhere) 16:35:38 oerjan: openvms? awesome :D 16:36:17 [[As another data point, Squeak forces "Han disunification" by encoding the language in bits 24-31 of each UTF-32 element... it's not a coincidence IMNSHO that Unicode support was added to Squeak by a Japanese.]] 16:36:17 :D 16:38:15 -!- MigoMipo has joined. 16:38:55 elliott: when i first joined nvg back in 1991/2 or something, their main machine was VAX/Ultrix 16:39:12 oerjan: I think I'm going to clone WikiPL and make it (1) actually a programming language and (2) esoteric because, really, the concept is too good to pass up. <-- 1) hackiki 2) hackiki 16:39:33 -!- kar8nga has quit (Remote host closed the connection). 16:39:59 at that time the _main_ university system was VAX/VMS 16:40:46 hah 16:41:15 oerjan, in 1992 I had recently learned to speak. You are old 16:41:22 apparently so 16:41:32 bbl 16:46:42 Vorpal: (1) no (2) you are wrong 16:46:53 (3) you don't understand hackiki, or you don't understand what i said, pick one 16:48:37 wtf c-mode. 16:48:39 you are doing it wrong 16:48:40 oh 16:48:41 lol 16:51:26 -!- sftp_ has joined. 16:51:36 -!- cheater99 has quit (Quit: Leaving). 16:51:40 -!- sftp has quit (Ping timeout: 265 seconds). 16:52:06 http://www.vg.no/nyheter/utrolige-historier/artikkel.php?artid=10027789 16:55:36 static void repeat_print(const char *s, int n) 16:55:36 { 16:55:37 for(int i = 0; i != n; i++) 16:55:37 printf("%s", s); 16:55:37 } 16:55:41 pikhq: How did you manage to make that a function. 16:56:07 http://translate.google.no/translate?u=http%3A%2F%2Fwww.vg.no%2Fnyheter%2Futrolige-historier%2Fartikkel.php%3Fartid%3D10027789&sl=no&tl=en&hl=&ie=UTF-8 16:56:34 lovely translation, that 16:56:52 (forspiste = over-ate) 16:56:56 -!- sftp has joined. 16:58:08 -!- sftp_ has quit (Ping timeout: 264 seconds). 16:58:45 http://www.vg.no/nyheter/utrolige-historier/artikkel.php?artid=10027789 <-- fake news? 16:59:00 Vorpal: AP from the looks of it, so no 16:59:06 it's in "Amazing Stories" 16:59:07 um not that i know of... 16:59:28 oerjan, what is "sekk"? 16:59:29 AP, Reuters and probably others all have sections dedicated to weird stuff. 16:59:55 oerjan: "I took the rat in uninvited dogjest" what the hell is dogjest :D 17:00:04 is it like... the kind of joking a dog does 17:00:07 dog jest 17:01:34 do-gjest = toilet guest 17:01:52 Vorpal: bag 17:02:15 hm 17:02:26 -!- sftp_ has joined. 17:03:14 -!- sftp has quit (Ping timeout: 245 seconds). 17:03:16 elliott: it's not AP, it's norwegian news and it says the source is VG itself 17:03:26 also that translation did 50 cm -> 50 inches 17:03:27 oerjan: then google translates VG as AP :) 17:03:27 fail 17:03:33 presumably due to statistical translation 17:03:35 same as Vorpal's error 17:04:05 elliott: huh that's VG Nett in the original 17:04:21 also i noticed it translated 50 centimeter into 50 inches 17:04:57 oerjan: well google translate is all statistical translation 17:05:10 oerjan: you're likely to see AP and VG in similar places but in english vs. norwegian texts 17:05:12 thus the error 17:05:15 same with cm vs. inches 17:05:20 quite so 17:06:22 amazing stories is not far off though, although "incredible" is closer 17:07:22 elliott, I really like painterly 17:07:27 wish there was a high-res one 17:07:56 -!- sftp has joined. 17:08:01 oerjan: http://www.pulpworld.com/images/amazing_stories_2808.jpg 17:09:04 static const unsigned char sep1752[] ALIGN1 = { 17:09:04 1,2,14,15,16, 17:09:04 17,18,19,20,21,22,23, 17:09:04 24,25,26,27,28,29,30 17:09:04 }; 17:09:05 CHEATER 17:09:06 (busybox) 17:11:34 -!- sftp_ has quit (Read error: Connection reset by peer). 17:13:35 heh 17:14:06 -!- sftp has quit (Ping timeout: 240 seconds). 17:14:29 -!- sftp has joined. 17:18:25 December 2010 17:18:26 Mo Tu We Th Fr Sa Su 17:18:26 1 2 3 4 5 17:18:26 6 7 8 9 10 11 12 17:18:26 13 14 15 16 17 18 19 17:18:26 20 21 22 23 24 25 26 17:18:28 27 28 29 30 31 17:18:30 It's a start. 17:20:18 ...looks pretty finished to me... 17:22:40 oerjan: You also need to handle printing entire years. 17:22:58 oerjan: Which are, traditionally, three months side-by-side. 17:23:01 == pain. 17:23:05 right 17:23:14 oerjan: And I also have to handle Julian dates to be Totally Correct(TM). 17:23:15 coroutines maybe? 17:23:18 (different leap year logic) 17:23:28 oerjan: pretty much, pikhq's implementation manually does coroutines 17:23:35 oerjan: by having one step of the coroutine be a function :P 17:23:39 and then building the rest manually 17:23:44 if I wasn't using C I could use proper coroutines, but eh. 17:23:54 -!- sftp has quit (Ping timeout: 240 seconds). 17:23:59 -!- sftp has joined. 17:24:13 Also I have to clean up pikhq's horrible code ;) 17:26:49 elliott: I previously had it as actual Duff's Device coroutines. 17:27:06 pikhq: I believe that I saw that and told you you were crazy. 17:27:07 :P 17:27:26 elliott: Also: my C code there is heavily heavily Haskell-influenced. 17:27:32 elliott: Lots and lots of tiny functions! 17:27:38 pikhq: Yeah... 17:27:42 Functions are the DEVIL, they take up code space :P 17:27:47 (Usually.) 17:27:54 Any reasonably optimising compiler will inline them. 17:28:05 pikhq: pcc produces smaller code in general than gcc, but it's not very smart, so it's safer to do things by hand. 17:28:23 writecentred(months[i], strlen(months[i]), 20); printf(" "); 17:28:24 writecentred(months[i+1], strlen(months[i+1]), 20); printf(" "); 17:28:24 writecentred(months[i+2], strlen(months[i+2]), 20); printf("\n"); 17:28:25 Two or more, use a for! 17:29:19 :p 17:30:05 elliott: Look at BSD cal for a bit. 17:30:09 pikhq: No thanks! 17:30:18 pikhq: Plan 9 cal is quite nice. BusyBox cal is pretty horrid. 17:30:18 Aaaaw. I wanted to induce serious trauma. 17:30:28 BusyBox cal is a derivative of BSD cal. 17:30:32 pikhq: Does *anyone* actually *use* cal? 17:30:34 what 17:30:36 And by association, a derivative of UNIX cal. 17:30:41 pikhq: And if so, WHY 17:30:42 *WHY? 17:30:48 I DON'T KNOW. 17:30:50 IT'S JUST REVOLTING 17:31:06 cal cal calllll 17:31:12 pikhq: I'm sorely tempted to split it into two programs, the second being a "columnaterate" one. 17:31:17 elliott: I didn't even know there was a cal before I wrote it. :P 17:32:21 pikhq: It reminds me of those olde Unix tymes when people actually used this stuff like they would use an actual calendar. (Except it doesn't show the current day, so it's useful for... figuring out what date a weekday is, and vice versa.) 17:32:27 elliott: i _have_ occasionally used cal in the past 17:32:35 oerjan: for what?! 17:32:42 GNU cal, I'm pretty sure, actually shows the current day. 17:32:45 ...for looking up a date? 17:32:46 Yeah, it does. 17:32:49 pikhq: ncal too 17:32:51 pikhq: but it's a bit ugly 17:32:59 and by the time that was implemented everyone stopped using cal :) 17:33:02 And GNU cal's code is probably revolting. 17:33:20 pikhq: They probably employ Greenspun's Tenth Law to implement, not coroutines, but continuations. 17:33:27 Actually, I hope they do. That would be cool. 17:34:23 6375 cal 17:34:27 Surprisingly, it's smaller than cat... 17:34:35 Also broken! Yay! 17:34:43 for (cal1 = cal2 = cal3 = 0; cal1 || cal2 || cal3; line++) { 17:34:45 pikhq: Spot the stupid. 17:34:57 pikhq: Ooh, I should use termios or something to figure out how wide the terminal is, and, and :P 17:35:31 $ bin/cal 17:35:32 2010 17:35:32 January February March 17:35:32 Segmentation fault 17:35:35 a terminal condition 17:35:42 January, February, March, Segmentation fault, April, June, July... 17:35:47 elliott: ... 17:35:54 pikhq: I done broke it somehows. 17:36:06 elliott: bit of a rough spring, there 17:36:15 Astounding considering my avoidance of memory allocation. 17:36:19 oerjan: you'd better swat yourself 17:36:28 pikhq: I haven't allocated memory *once* in this entire coreutils yet. 17:36:34 pikhq: Malloc is my most-hated function. 17:36:45 elliott: Yeah, I'm just saying it's a whole lot harder to do a segfault without malloc involved. 17:36:48 Yeah. 17:36:55 Well. By accident. 17:36:57 Clearly I've overrun some static array. 17:36:58 Or something. 17:37:02 It's really easy to do segfault intentionally. 17:37:15 int main(){*NULL=0;} 17:37:16 for (mo = 0; mo < 11; mo += 3) { 17:37:19 writecentred(months[mo], strlen(months[mo]), 20); write(1, " ", 1); 17:37:19 writecentred(months[mo+1], strlen(months[mo+1]), 20); write(1, " ", 1); 17:37:19 writecentred(months[mo+2], strlen(months[mo+2]), 20); write(1, "\n", 1); 17:37:22 10+2 = 12, so 17:37:36 pikhq: my months array is 17:37:39 static char *months[] = { 17:37:39 "January", "February", "March", "April", "May", "June", "July", "August", 17:37:39 "September", "October", "November", "December" 17:37:39 }; 17:37:46 pikhq: which is also what yours is 17:37:51 pikhq: so how come you didn't overflow that buffer? 17:38:03 for(int i = 0; i < 11; i += 3) { 17:38:03 output_centered(months[i], strlen(months[i]), 20); printf(" "); 17:38:03 output_centered(months[i+1], strlen(months[i+1]), 20); printf(" "); 17:38:03 output_centered(months[i+2], strlen(months[i+2]), 20); printf("\n"); 17:38:07 ^ from your code 17:38:28 I genuinely do not know how. 17:38:38 pikhq: :D 17:39:02 "Age: 12 years" --BSD CVS. 17:39:05 FreeBSD, in particular. 17:39:14 My code is *incorrect* but it works correctly. XD 17:40:13 pikhq: that isn't the bug though 17:40:16 wait what the fuck 17:40:23 oh, have to reset line 17:41:15 pikhq: btw, i've changed it to start the week with monday 17:41:19 because that's the right thing to do. 17:41:43 elliott: I'm gleefully US-centric except when I'm not. :P 17:41:52 pikhq: By the way... 17:41:53 static char *shortmonths = 17:41:54 "jan" "feb" "mar" "apr" "may" "jun" "jul" "aug" "sep" "oct" "nov" "dec"; 17:42:00 pikhq: NUL BYTES TAKE UP VALUABLE BINARY SPACE 17:42:19 o.O 17:42:43 pikhq: You have to understand: right now, cal is *less than 7 decimal kilobytes*. 17:42:53 I can achieve these things because I am a lunatic. 17:42:57 -!- nopseudoidea has quit (Quit: Quitte). 17:43:25 I presume you still have the Doomsday algorithm. 17:44:10 pikhq: Wait. Your code isn't incorrect. 17:44:20 pikhq: Also, what Doomsday algorithm? All the logic is from your code. 17:44:35 pikhq: 3*3 = 9, 3*4 = 12. So, in fact, the conditional exits after 9. 17:44:37 * elliott makes this clearer 17:45:30 Note to self, centring is broken. 17:45:47 elliott: I use the Doomsday algorithm for figuring out which day of the week the month starts on. 17:46:12 doomy day of doom 17:46:17 elliott: Which is an algorithm Conway invented to figure out which day of the week *any day* falls on with mental computation. 17:46:56 pikhq: Is that... efficient? :P 17:47:27 elliott: Depends on your opinions of division and modulus. 17:47:48 pikhq: Division baaaad. Modulo good. 17:48:01 The algorithm, BTW, is starting_day() in my cal. 17:48:01 pikhq: (Division by power of two acceeeeeptable.) 17:48:09 *firstday in *my* cal :P 17:48:20 /* Thirty days hath September, 17:48:21 April, June and November; 17:48:21 All the rest have thirty-one, 17:48:21 Save February, with twenty-eight days clear, 17:48:21 And twenty-nine each leap year. */ 17:48:22 static int monthdays[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; 17:48:28 Nice comment. 17:48:29 Not only do I improve on your code, I give it nice comments too. 17:48:35 MY SERVICES ARE BOUNDLESS 17:48:40 pikhq: (That rhyme is really terrible in the last two lines.) 17:48:46 Yuh. 17:48:49 It's like, hey, guys, you know those leap years we have now?? WE HAVEN'T UPDATED THE RHYME 17:48:51 Damned February. 17:48:56 "Oh well, let's just do it half-assedly." 17:49:13 pikhq: You know, monthdays could be a ... bitmask. 17:49:19 Well. Tritmask. 17:49:26 Actually, bitmask. 17:49:29 Just special-case February. 17:49:52 0b1X1010110101 17:49:55 Where X doesn't matter. 17:50:15 pikhq: Question: Am I crazy enough to think that (monthdays & (2< 6247 cal 17:51:13 Now to make the change. 17:51:41 elliott: So now you're making it clever. 17:51:54 elliott: And it'll *still* be better than UNIX cal. 17:52:25 NOT IF I HAVE ANY SAY IN THE MATTER 17:53:12 YOU DON'T 17:53:20 YOU CANNOT ESCAPE YOUR DESTINY 17:54:24 6367 link 17:54:27 Nope, it's a net loss. 17:54:40 -!- MigoMipo has quit (Ping timeout: 255 seconds). 17:56:58 MoMo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su 17:56:58 1 2 3 Mo 1 2 3 4 5 6 7 1 2 3 4 5 17:56:59 4 5 6 7 8 9 10 Mo 8 9 10 11 12 13 14 6 7 8 9 10 11 12 17:56:59 11 12 13 14 15 16 17 Mo15 16 17 18 19 20 21 13 14 15 16 17 18 19 17:56:59 18 19 20 21 22 23 24 Mo22 23 24 25 26 27 28 20 21 22 23 24 25 26 17:56:59 25 26 27 28 29 30 31 Mo2 17:57:01 what. 17:57:24 what. 17:57:51 pikhq: Would this not be simpler? http://en.wikipedia.org/wiki/Zeller%27s_congruence 17:58:09 Try it. 17:58:19 pikhq: That's work :P 17:59:15 Oh, BTW, if you're *really* anal about it, you might want to make it handle Julian dates correctly. 18:00:00 IANAL 18:00:33 pikhq: I'm going to, hopefully. 18:00:44 pikhq: Because I want September 1752, the whole calendar before that should look right! 18:01:00 pikhq: Anyway, this thing is still, inexplicably, smaller than cat. And link. 18:01:11 I think because I don't have the errno strings in there. :p 18:03:40 6239 cal 18:03:49 Yeah, it's probably errno doing that. 18:04:24 6079 cal 18:04:27 Success! Shrinkage! 18:04:30 Awesome. 18:04:55 * pikhq looks forward to elliot's install disk for kitten. 18:05:02 Two Ts! Two Ts! 18:05:03 I will be disappoint if it won't fit on a floppy. 18:05:10 pikhq: I was about to say. :p 18:05:26 elliot's insttall disk for kitten. 18:05:44 pikhq: 26231 box 18:05:48 " I ANAL" " Success! Shrinkage!" 18:06:02 WHOOPS LOOK AT THAT BASENAME CAL CAT CHROOT DATE DIRNAME ECHO ENV FALSE KILL LINK PWD SIGNAL SLEEP STRINGS TRUE UNAME VIS AND YES IN 26K 18:06:06 -!- Mathnerd314 has quit (Ping timeout: 245 seconds). 18:06:10 I GUESS I FORGOT TO WRITE ALL THE CODE THAT MAKES THAT HAPPEN 18:06:15 IT IS INSTEAD RELYING ON MAGIC 18:06:17 elliott: And that's before upx. 18:06:19 :D 18:06:29 pikhq: I very much doubt UPX will work on this. 18:06:38 Are you sstrip'ing? 18:06:40 pikhq: I'm using sstrip, which is like strip except it uses a fucking chainsaw. 18:06:41 pikhq: Yes. 18:06:45 It won't work. 18:06:50 elliott: Does it highlight the current day in cal? :P 18:06:55 pikhq: If you give one of these executables to objdump, it says it's an ELF, and then just quits. 18:07:13 Gregor: No. I don't actually like how that looks, but want me to implement it to prove to you JUST HOW BADASS I AM? 18:07:15 upx compresses it, and then fails to decompress it. 18:07:20 Cal doesn't process command-line arguments yet but that's a few bytes of code :P 18:07:39 elliott: Where IS this code? :P 18:07:45 Gregor: ~/code/tools 18:07:51 Gregor: I can get you the latest .cpio.Z if you want. 18:08:03 (Format chosen for ridiculousness. .cpio.lzma (not xz) also available.) 18:08:08 elliott: I only want it if you implemented both cpio and compress. 18:08:15 Gregor: Not yet, but soon :P 18:08:29 Gregor: I could finish the dd/sharchiver and get you a dd/shar, though! 18:08:34 Then you'd only need sh and dd. 18:08:58 pikhq: Did I mention I'm calling the linker manually so I can use --gc-sections/ 18:08:59 *sections? 18:09:04 That actually has an impact on the resulting size. 18:09:14 elliott: -Wl,--gc-sections? 18:09:39 pikhq: OK, looks like pcc does, in fact, have -Wl. 18:09:43 pikhq: I'll try that later. 18:09:53 pikhq: I wish I could use -ffunction-sections, but that's gcc-only :P 18:10:05 pikhq: What, UPX compresses box to 14232 bytes. 18:10:13 Now execute it. 18:10:16 It works. 18:10:20 (I strip -s'd it instead of using sstrip.) 18:10:25 Aaaah. 18:10:28 Awesome. 18:10:33 ^QÉ^AÛu^H<8b>^^H<83>îü^QÛsíH<81>ý^@óÿÿ^QÁè1ÿÿÿë<83>YH<89>ðH)ÈZH)×Y<89>9[]Ãh^^^@^@^@Zè½^@^@^@PROT_EXEC|PROT_WRITE failed. 18:10:34 ^@ 18:10:34 ^@$Info: This file is packed with the UPX executable packer http://upx.sf.net $ 18:10:34 ^@$Id: UPX 3.05 Copyright (C) 1996-2010 the UPX Team. All Rights Reserved. $ 18:10:34 ^@<90><90>^j^B_j^AX^O^Ej^?_j Duuuude, that's so wasting space. 18:10:47 lawl 18:10:57 Quick info for achieving the best compression ratio: 18:10:57 · Try upx --brute myfile.exe or even upx --ultra-brute myfile.exe. 18:10:57 · Try if --overlay=strip works. 18:10:58 Though you might want to sstrip it and then use a compressed filesystem, instead of upx. 18:10:58 DON'T MIND IF I DO 18:11:21 upx: packer_c.cpp:43: static bool Packer::isValidCompressionMethod(int): Assertion `0 && "Internal error - LZMA not compiled in"' failed. 18:11:24 Okay, not ultra-brute then. 18:12:35 Aha, there's a non-free UPX. 18:12:37 Let's try that one. 18:13:36 26752 -> 13708 51.24% linux/ElfAMD box 18:13:38 pikhq: HOW IS THIS WORKING 18:13:45 elliott: MAGIC AND AWESOME 18:13:54 ^@$Info: This file is packed with the UPX executable packer http://upx.sf.net $ 18:13:54 ^@$Id: UPX 3.05 Copyright (C) 1996-2010 the UPX Team. All Rights Reserved. $ 18:13:54 grrr 18:13:57 GET THE FUCK OUT OF MY EXECUTABLE 18:14:19 elliott: strip it! 18:14:27 pikhq: Tried that; it gets killed when I start it :P 18:14:32 Aaaaw 18:14:40 what 18:14:44 I just sstrip'd the upx'd box. 18:14:45 It works. 18:14:56 The UPX string is still there though. 18:15:01 But I saved 9 bytes. 18:15:51 pikhq: "But any modification of the UPX stub (such as, but not limited to, removing our copyright string or making your program non-decompressible) will immediately revoke your right to use and distribute a UPX compressed program." 18:15:57 I do not like these people. 18:16:39 pikhq: Hey, you CAN UPX an sstriped executable. 18:16:41 And then sstrip that. 18:16:44 -rwxr-xr-x 1 elliott elliott 13508 Dec 4 18:15 box 18:17:15 pikhq: Did I mention this box has stupid things like two copies of every signal name? 18:26:52 pikhq: Woo! It all works apart from Julian dates. 18:29:49 pikhq: I know that the leap year logic is different for Julian dates. 18:29:50 Anything else? 18:30:09 nope 18:30:16 -!- Sasha has quit (Ping timeout: 245 seconds). 18:30:23 oerjan: that's it? 18:30:23 cool 18:30:34 unless you want to calculate Easter ;D 18:30:38 no :P 18:31:58 September 1752 18:31:58 Mo Tu We Th Fr Sa Su 18:31:58 1 2 14 15 16 17 18:31:58 7 8 9 10 11 12 13 18:31:58 14 15 16 17 18 19 20 18:31:59 21 22 23 24 25 26 27 18:32:00 -!- Sasha has joined. 18:32:01 28 29 30 18:32:03 pikhq: Can I have a failure badge please? 18:32:25 September 1752 18:32:25 Mo Tu We Th Fr Sa Su 18:32:25 1 2 14 26 38 18:32:26 And another? 18:35:13 elliott, why is it so tricky to just skip some days? 18:35:34 elliott, oh and cfunge has jdn/gregorian conversion code if you need it 18:36:30 Vorpal: it isn't tricky to do that at all :P 18:36:34 also, i don't need to conevrt 18:36:35 *convert 18:36:38 just show correct calendars 18:38:11 1 2 15 16 17 18 18:38:11 15 16 17 18 19 20 21 18:38:11 15 16 17 18 19 20 21 18:38:11 21 22 23 24 25 26 27 18:38:11 28 29 30 18:38:12 wat 18:38:29 pikhq: Your architecture sucks and I blame you wholly :P 18:39:26 -!- Sasha2 has joined. 18:39:59 elliott: Your architecture sucks and I blame you wholly. 18:40:05 pikhq: Your architecture sucks and I blame you wholly. 18:41:17 -!- Sasha has quit (Ping timeout: 240 seconds). 18:41:47 -!- hagb4rd has joined. 18:41:47 pikhq: Yay, I have to handle January, February and March 1752 specially too. 18:42:10 hello 18:42:16 elliott: 貴方のアーキテクチャが悪くて、全部貴方之所為です。 18:42:48 pikhq: wat 18:42:53 elliott: Your architecture sucks and I blame you wholly. 18:43:20 elliott: (anata no âkitekutiȳa kà warukute, sènnhù anata no sei tèsu.) 18:43:30 pikhq: Oh jesus christ, 1683 was fucked up too. 18:43:32 H S E The body of Tho[mas] 18:43:33 the sonn of Tho. Lambert gent. 18:43:33 who was borne May ye 13 An[no] Do[mini] 1683 18:43:33 & dyed Feb. 19 the same year. 18:44:16 pikhq: http://web.mac.com/jac314159/CTC/AllArticles/ShortYear.html 18:44:20 pikhq: Fuck everything about this. 18:45:43 elliott: So, proleptic Gregorian calendar? 18:46:15 pikhq: Now technically POSIX says that Julian dates must be handled 18:46:15 correctly. But then POSIX also said that it loved me, and 18:46:15 I'm sick and tired of it. 18:46:19 Problem solved by way of code comment. 18:46:31 s/Julian/*all* Julian/ 18:46:35 (I'm doing sep 1752) 18:46:54 -!- Goosey has joined. 18:48:11 elliott: that was just a case of the year starting in March, i believe. i think that varied from country to country (the original julian calendar started in january, although an even earlier roman one did start in march) 18:48:20 oerjan: yeah. well. fuck that 18:48:56 actually i'm not entirely sure on the last point 18:49:56 -!- Sasha has joined. 18:50:09 -!- ais523 has joined. 18:51:33 -!- Sasha2 has quit (Ping timeout: 240 seconds). 18:52:31 pikhq: BTW, your cal doesn't pad out single months with the extra \ns. 18:54:51 -!- Phantom_Hoover has quit (Ping timeout: 245 seconds). 18:58:53 pikhq: 18:58:53 $ bin/cal 10000000000 18:58:53 1410065408 18:58:54 lol 19:02:33 elliott: I DISBELIEVE IN THAT BEHAVIOR 19:03:14 pikhq: I hereby proclaim it a feature because it's probably more trouble to fix than it's worth and why are you even calling cal like that. 19:04:05 pikhq: Want the current code? 19:04:30 -!- MigoMipo has joined. 19:06:51 -!- Phantom_Hoover has joined. 19:09:16 pikhq: y/n? 19:09:29 pikhq: I have devised an even better archive format than last time to give it to you in. 19:09:31 Gregor take note. 19:10:15 pikhq: what do you use when filebin is down like it is now? 19:10:17 erm 19:10:18 ais523: 19:10:19 not pikhq 19:10:38 Oh, it's up now. 19:11:01 pikhq: Gregor: BEHOLD: http://filebin.ca/wsszc/tools.minixfs.lzo 19:11:07 I dare anyone to come up with a better archive format than that. 19:12:06 Phantom_Hoover, hi 19:12:15 Phantom_Hoover, gave you more cobble, also helped a bit 19:12:27 Vorpal: Dude, shut up and behold my archival format. 19:12:32 An LZO-compressed Minix filesystem image. 19:12:35 I am a friggin' genius. 19:12:52 elliott, you are insane 19:12:59 Vorpal: And a GENIUS. 19:13:17 Vorpal, does the term "evil genius" not come to mind? 19:13:34 Phantom_Hoover, mad scientist 19:14:28 Vorpal, OS design is not, in fact, a science. 19:14:48 $ cal 10000000000 19:14:48 cal: year 1410065408 not in range 1..9999 19:15:44 by year 10000 we're going to need to change the leap year rules anyway unless we want the year to slip 19:16:03 elliott: Insufficient partitions. 19:16:55 oerjan: By the year 10000, we will clearly have eradicated the Earth, making leap years a curious historical artifact. 19:17:14 well that's a possibility 19:18:01 Gregor: That's Y10K incompliant. 19:18:15 Gregor: Anyway, dude, tools.minixfs.lzo. 19:18:18 Gregor: Can you BELIEVE how awesome I am 19:18:18 Phantom_Hoover, have you abandoned MC? 19:19:08 pikhq: Would you like a copy of the pcc/dietlibc toolchain required to build this? It's not very big. 19:19:20 elliott: AHAHAHAH. 19:19:27 pikhq: wut. 19:19:35 elliott: Oracle added ZFS code to GRUB. Which is under GPLv2+. 19:19:40 pikhq: Indeed. 19:19:48 pikhq: But it's a very limited form of ZFS. 19:20:01 Pity. 19:20:15 pikhq: Now do you want the toolchain? :P 19:20:26 pikhq: I swear I'll come up with an EVEN BETTER packaging method for it. 19:20:48 pikhq: Oh, wait... dietlibc remembers its prefix. You'd have to install it into ~elliott/kitten/stage2. 19:20:58 If only Oracle weren't asshats. 19:21:26 "Here's a ZFS Linux kernel module, under GPLv2. Have at." 19:21:39 pikhq: YOU CANNOT AVOID TALKING ABOUT MY COREUTILS :P 19:21:43 elliott: YES I CAN 19:21:53 pikhq: Do you not APPRECIATE them?!?!?! 19:23:46 Vorpal, I was off IRC! 19:24:17 Vorpal: lol @ http://www.pcgamer.com/2010/12/03/the-minecraft-experiment-day-8-alive/ 19:24:20 Phantom_Hoover too 19:24:48 Ah, he updated. 19:25:55 SHOCKING NOTCH SCANDAL AFFAIR 19:25:55 http://twitter.com/dannyBstyle/status/10591046236905472 19:25:57 http://twitter.com/notch/status/10592312375644161 19:25:59 http://twitter.com/notch/status/10595190087622656 19:26:00 http://twitter.com/notch/status/10595258538663936 19:26:05 READ ALL ABOUT IT 19:26:11 elliott, come to think of it, there's a good chance he'll survive that fall, if he aims for the water. 19:26:28 Phantom_Hoover: And a good change he won't :P 19:26:31 *chance 19:27:06 elliott, "So that night, I hatch the most ingenious and original idea any Minecraft player has ever had: I will build a tower! As tall as the clouds! A beacon to guide me home! No-one has ever had this idea before!" <-- idiot. This is well known. Was used a lot before the compass was added 19:27:28 Vorpal: HURR I'M SWEDISH SO I CAN'T FUCKING UNDERSTAND SARCASM 19:27:36 THEREFORE I WILL CALL FUNNY PEOPLE IDIOTS 19:27:53 (AND ALSO IGNORE THE FACT THAT HE'S PLAYING THE GAME WITHOUT READING ANY SPOILERS OR ANYTHING) 19:28:06 ah 19:28:26 -!- impomatic has joined. 19:28:48 Vorpal, that's a new low for you. 19:28:55 "I wonder what command I'll implement next, oh, I know; compress(1)! That sounds EASY!" 19:28:57 Sub-self irony. 19:30:04 Phantom_Hoover, anyway finished one half more layer on the ROU 19:30:06 [[I had the idea of making a beacon on my second day, must be two weeks ago now :D sorry to dissapoint you, but you were certainly not the first, I doubt I was either.]] 19:30:28 Vorpal, how'd you get the ellipse shape? 19:30:55 compress should be a short one 19:31:02 Phantom_Hoover, from looking at the opposite side 19:31:07 Phantom_Hoover, which was done 19:31:28 Vorpal, aaaah. 19:31:37 -!- evincar has joined. 19:31:51 the evil car is back 19:31:55 I've decided that inaccuracy is tolerable since the thing already has tonnes of it. 19:32:43 oerjan: If I am an evil car, do you really want to mess with me? Have you seen any campy horror movies involving evil cars lately? They mean business. 19:33:11 pikhq: WTF. Unified diffs aren't POSIX. 19:33:46 evincar: not lately. i think i saw parts of christine once. 19:34:23 Hmm, Good Old Games is in trouble. 19:34:39 * Phantom_Hoover feels guilty for torrenting FreeSpace 2. 19:34:42 clearly there is nothing unified in POSIX 19:35:54 Standards shmandards. 19:36:20 Phantom_Hoover: in trouble? 19:37:06 Phantom_Hoover, still you might want to check the thing 19:37:29 Phantom_Hoover, I also widened walkway to workshop 19:38:10 Phantom_Hoover, and added drop pool at the bottom of the ladder 19:38:18 -!- Smmick has joined. 19:38:35 hi 19:38:38 Hola 19:40:19 Smmick: Welcome. 19:41:03 hi evincar 19:41:22 Phantom_Hoover, should I extend the middle floor all the way out? 19:43:13 must extend the ke?? 19:43:26 what? 19:43:34 oh that was an off topic thing 19:44:03 Smmick, this channel is about esoteric programming languages, not esoterica btw. Surprisingly many get that wrong 19:46:01 Phantom_Hoover, I'll default to yes then 19:46:40 you know the programming of computers 19:46:42 are called binary numbers 19:46:56 uh... in a way I guess 19:48:09 computers is when data is transferred or messages with just 0 and 1 19:48:31 knows that any hacker like me 19:48:47 elliott, I think this is one for you 19:49:08 jaja 19:49:16 elliott 19:49:57 " knows that any hacker like me" wow X-D 19:50:21 XD 19:50:28 Smmick: Caultrick of the vordemont. 19:50:36 Smmick: Dost thou know otooooooooooooooooooooooooooooooooooooo? 19:50:45 elliott: Clearly POSIX be damned. 19:50:51 Smmick: I'n your mother crappy -- on the news that mroing -- and everyone died. 19:50:56 Smmick: You too shall die soon! Your house I'm at. 19:51:02 Haha, , throough! the window you pretty. 19:51:03 Smmick: Caultrick of the vordemont. <-- what 19:51:05 OCTETS? OCTETS ARE EVIL 19:51:10 Vorpal: DON'T THE VARIABLE 19:51:15 Smmick: YOU DON'T EVEN KNOW ABOUT THE VARIABLE 19:51:28 i cry softly but tomorrow revenger 19:52:10 whether the variables in a PHP Code 19:52:28 elliott, stop acting like an insane markov chain 19:52:29 Smmick: Whether they, yes, indeed, but soon such conerns will be none of yours; the cone-shaped nature of velvet will be REAVEALED unto you !! 19:52:35 Smmick: and that is when i stab 19:52:46 my uncle just in English or Spanish that if no other language or just know there will be 1 19:53:05 Smmick: Your uncle may only be in English or Spanish now... 19:53:07 But soon there will be THREE. 19:53:48 Gregor: I think "HELP COMPUTER" was an unfortunate choice of topic. 19:54:08 elliott: Bahahahaa 19:54:21 i can fix that. 19:54:39 -!- quintopia has set topic: We welcome our new arsenic-based overlords | http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 19:54:55 -!- elliott has set topic: I, for one, am somewhat sparta. | http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 19:55:05 I was going to fix quintopia's but then I got A BETTER IDEA half-way through. 19:55:10 lies 19:55:22 -!- Gregor has set topic: I, for one, welcome our new arsenic-based spartans | http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 19:55:43 -!- quintopia has set topic: We, for Legion, welcome our new arsenic-based spartans | http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 19:55:59 look is at least 3 languages ok 19:55:59 English 19:56:00 Frances 19:56:00 Spanish 19:56:05 ________________ 19:56:12 only if you use them all at once 19:56:14 Smmick: The fourth one is Lojban 19:56:30 -!- elliott has set topic: I, for arsenic, sparta our overlord-based legion. | http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 19:56:38 y.. 19:56:45 Yes, indeed, the arsenics are coming to sparta the legion of overlords. 19:56:48 okay that's good enough. i'll leave that one 19:56:49 I don't parle pas español 19:56:58 `addquote I don't parle pas español 19:57:13 `echo NO I DON WANNA 19:58:32 `help 19:58:34 No output. 19:58:34 Runs arbitrary code in GNU/Linux. Type "`", or "`run " for full shell commands. "`fetch " downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert " can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/ 19:58:37 No output. 19:58:44 :/ 19:58:46 ...not promising 19:59:04 `ls 19:59:06 babies \ bin \ paste \ quine \ quotes \ tmpdir.1875 19:59:25 `addquote I don't parle pas español 19:59:34 266| I don't parle pas español 19:59:35 Failed to record changes. 19:59:35 Where to go to the \ bin \ pasta \ quine \ quotes \ 19:59:40 `cd babies 19:59:42 No output. 19:59:49 `ls 19:59:51 babies \ bin \ paste \ quine \ quotes \ tmpdir.2038 20:00:12 huh. apparently changing PWD isn't allowed? 20:00:23 quintopia: There is no cross-session PWD 20:00:26 between commands anyqway 20:00:27 quintopia: The 'babies' directory was for an unpopular feature that decreed that people had babies every time they said "fuck" :P 20:01:12 `run cd babies;ls 20:01:13 babies.db 20:01:18 `quote 265 20:01:20 265|Thanks to nooga for constructive criticism, his ideas and being a constant annoyance. --http://theendisnear.no-ip.info/ 20:01:23 `quote 266 20:01:25 No output. 20:01:43 Well that's nae good :P 20:02:04 Gregor: your partition has become read-only D: 20:02:15 `run echo hi > foo 20:02:16 No output. 20:02:20 `cat foo 20:02:21 hi 20:02:25 okay maybe not 20:02:25 I disagree. 20:02:29 quote program breakage 20:02:38 Probably doesn't support ñ :P 20:02:49 flail 20:02:56 `cat bin/quote 20:02:57 #!/bin/bash \ DB="sqlite3 quotes/quote.db" \ \ if [ "$1" ] \ then \ ARG=$1 \ ID=$((ARG+0)) \ if [ "$ID" = "$ARG" ] \ then \ $DB 'SELECT id,quote FROM quotes WHERE id='$ID \ else \ ARG=`echo "$ARG" | sed 's/'\''/'\'\''/g'` \ $DB 'SELECT id,quote FROM quotes WHERE quote LIKE 20:03:00 -!- Zetro has joined. 20:03:04 Erm 20:03:06 `cat bin/addquote 20:03:09 #!/bin/bash \ DB="sqlite3 quotes/quote.db" \ \ if [ ! "$1" ] \ then \ echo 'Add what quote?' \ exit 1 \ fi \ \ QUOTE=`echo "$*" | sed 's/'\''/'\'\''/g'` \ $DB 'INSERT INTO quotes (quote) VALUES ('\'"$QUOTE"\''); \ SELECT id,quote FROM quotes ORDER BY id DESC LIMIT 1;' 20:03:37 `addquote ẅ 20:03:39 266|ẅ 20:03:40 Phantom_Hoover, get on MC! 20:03:41 Failed to record changes. 20:03:43 Gregor: wat. 20:03:51 That is why part of the DB Table Base date 20:03:57 `addquote 20:03:57 Add what quote? 20:04:02 elliott: Idonno *shrugs* :P 20:04:05 Wow, that [ ! "$1" ] actually works. 20:04:30 `addquote < elliott> Wow, that [ ! "$1" ] actually works. 20:04:32 266|< elliott> Wow, that [ ! "$1" ] actually works. 20:04:33 elliott: So does your mom. 20:04:40 `quote 266 20:04:41 266|< elliott> Wow, that [ ! "$1" ] actually works. 20:04:50 yeah probably the character thing 20:05:04 OHHH y'know what, I'll bet the problem is committing with a commit message including unicode to the hg repo 8-D 20:05:13 haha 20:06:02 que c'est 20:06:05 ?=???=?? 20:07:09 Talk confused me XD 20:07:10 20:07:13 Talk confused me XD 20:07:35 bye 20:07:44 adios to all 20:07:58 Okidoke 20:08:13 ooo_ooo 20:10:43 bye 20:12:24 -!- Smmick has quit (Remote host closed the connection). 20:16:55 -!- Sgeo has joined. 20:17:28 Is the reason people pushed me away from PLT-Scheme because it called itself a "Scheme" and thus I'd get wrong ideas, or is there something wrong with the language itself? 20:17:39 (It's now called Racket) 20:24:29 -!- Phantom_Hoover has quit (Remote host closed the connection). 20:26:30 -!- elliott has left (?). 20:26:32 -!- elliott has joined. 20:27:08 -!- Phantom_Hoover has joined. 20:27:13 o.O 20:27:20 pikhq: I now have mkdir, with everything apart from symbolic modes. 20:28:15 Note to self: always change monitors *before* disconnecting the output device. 20:30:50 pikhq: I need a profiler except for binary size. :P 20:31:05 mkdir is pushing 10k for no apparent reason. 20:31:16 Any answer to my question? 20:31:24 -!- impomatic has left (?). 20:31:43 Phantom_Hoover, so, did you check my ROU work? 20:32:37 I will now. 20:32:43 What shall I call it... 20:32:59 Phantom_Hoover: "So Did You Check My ROU Work?". 20:33:13 Phantom_Hoover: Or: "Pushing 10K For No Apparent Reason". 20:36:27 -!- zzo38 has joined. 20:37:00 What does "I, for arsenic, sparta our overlord-based legion." mean? 20:37:54 zzo38: I think it's pretty clear. 20:39:20 They talked about arsenic on the radio today. 20:40:33 Just... arsenic? 20:40:35 On its own? 20:41:24 They talked about arsenic based lifeform and how it is related to the other elements in the periodic table. 20:41:25 Now You're Cooking with Arsenic-Based Bacteria! A cookbook for those who wish to destroy both rare endangered species and their friends. 20:42:43 elliott, is your pushing me away from Racket in the past to do with it deviating from Scheme, or other reasons? 20:43:08 Gregor: my favourite cookbook. 20:43:20 Gregor: Also, as opposed to common endangered species? :P 20:44:20 elliott: I meant rare ... Idonno, in some other way I can't describe. Rare as in they're representatives of a rare style of life, which is distinct from the particular species being endangered. 20:45:06 Gregor: What you're saying is, they're not well-done. 20:45:39 elliott: Yes. We need to send them back, they're still red inside. 20:45:57 Gregor: That's what happens when you cook with arse-s. 20:46:01 (That was terrible.) 20:46:18 -!- wareya_ has joined. 20:46:34 Their binomial name is Archaea arsedick 20:46:56 (Note: They're not even archaea, and if they were, that wouldn't be their genus :P ) 20:48:14 Gregor: YES IT WOULD 20:48:29 -!- wareya has quit (Ping timeout: 265 seconds). 20:49:28 On Windows I need to run 7z twice to extract a .tar.gz file. On Linux, I can use a pipe command. 20:50:43 zzo38: Is this at all surprising? 20:51:39 evincar: No, I do not think so. But I think 7z does not have a option to extract twice? 20:52:04 arsenic based life? really? 20:52:32 zzo38, you could use tar -zxf on linux 20:52:55 Vorpal, indeed. 20:52:55 Vorpal: But I used: zcat < filename.tar.gz | tar -x 20:53:13 It s/phosphorus/arsenic/s 20:53:15 zzo38, seems needlessly complicated 20:53:27 Vorpal: they're bacteria that can (optionally) use arsenic instead of phosphorus in their DNA and stuff 20:53:29 Phantom_Hoover, oh, still carbon-based then 20:53:29 And if I make Linux distribution, I would also make it work with pipe commands, too. 20:53:32 Vorpal: technically, that's simpler than "tar xzf", Unix-wise. 20:53:39 elliott, longer to type 20:53:45 oerjan: They prefer phos., though. 20:53:57 Vorpal: Ken Thompson would have something to say about you and it wouldn't be pretty. 20:53:58 yeah 20:54:04 (Probably me too, but still.) 20:54:22 Arsenic comes directly below phosphorus on the periodic table of elements. This is an important part of this reason. 20:55:17 zzo38: however i also read that unlike phosphorus, arsenic combounds are usually destroyed by water, so it is still surprising 20:55:21 (They did talk about the periodic table of elements, on the radio, today) 20:55:23 *compounds 20:55:41 oerjan: Yes, then it would make it surprising. 20:57:56 pikhq: Symbolic permissions are PAIN 20:58:50 elliott, are you using POSIX 2008 for this? 20:59:03 Vorpal: 2004. 20:59:12 elliott, 2004!? 20:59:16 elliott, no such thing 20:59:17 Vorpal: I doubt they changed coreutils much, if at all, in the interim. 20:59:24 Well: 20:59:25 The Open Group Base Specifications Issue 6 20:59:25 IEEE Std 1003.1, 2004 Edition 20:59:25 Copyright © 2001-2004 The IEEE and The Open Group, All Rights reserved. 20:59:32 Such thing. 20:59:36 elliott, that is SUS 20:59:41 Vorpal: Same damn thing. 20:59:48 elliott, SUS against POSIX 2001 20:59:53 :P 21:00:00 Vorpal: So? 21:00:06 elliott, so it is SUS 2004 21:00:12 What's the actual advantage of Wikiplia over a VCS with the privileges of which you are very liberal? 21:00:13 Vorpal: Okay. So what's the issue? 21:00:23 elliott, nothing except you not using 2008 edition 21:00:28 Phantom_Hoover: Well, it's literate programming. 21:00:30 Vorpal: Why is that an issue? 21:00:43 Phantom_Hoover: Consider being able to say [[Count words]] (my_file); 21:00:52 Phantom_Hoover: (Of course, this requires a Sufficiently Smart Wiki.) 21:01:02 elliott, VCS blah blah blah with literate Haskell? 21:01:15 Phantom_Hoover, add in a browser GUI for it 21:01:17 Phantom_Hoover: It's not hyperlinked. 21:01:22 Phantom_Hoover: um did you mean wikiplia or wikipl there? 21:01:28 oerjan, either. 21:01:32 Literate programming is when you make it is both a computer program and a book, both at once. 21:01:36 Also, you could do reordering with a wiki. 21:01:39 zzo38: We know. 21:01:49 argh 21:01:58 * oerjan is starting to regret the move :D 21:02:04 oerjan, what move? 21:02:58 also the esolang wiki is down for me 21:02:59 Vorpal: after discovering that wikiPL wasn't actually a programming language i sort of deleted the esolang article, except i technically moved it to wikiplia instead 21:03:11 oerjan, what is wikiplia? 21:03:39 oerjan, google is nhelpful 21:03:43 unhelpful* 21:04:01 see esolangs wiki, duh ... 21:04:05 a joke language from 2007 that _actually_ was "The free programming language that anyone can edit" 21:04:34 oerjan, ah 21:04:34 Vorpal: um the top google hits are quite relevant 21:04:53 oerjan, maybe if you aren't logged in to gmail 21:05:29 Vorpal: are you maybe getting referred to wikipedia instead? 21:05:52 it's suggested for me that i might mean that instead 21:07:07 oerjan, hm wikidictionary (sp?) for "plia" 21:07:11 * oerjan once again curses google's use of redirecting urls 21:07:13 is the top hit for me 21:07:22 that's no 3 for me 21:08:18 ugh at the = operation in symbolic modes 21:08:23 + is "mode |= bit", - is "mode &= ~bit" 21:08:28 but doing = makes me want to die now 21:09:00 bit <<= who; 21:09:00 switch (op) { 21:09:00 case '=': mode &= ~(7 << who); 21:09:00 case '+': mode |= bit; break; 21:09:00 case '-': mode &= ~bit; break; 21:09:01 } 21:09:02 I think that does it. 21:09:26 Vorpal: http://www.cs.cmu.edu/~tom7/sigbovik/wikiplia.pdf and http://radar.spacebar.org/f/a/weblog/comment/1/893 21:09:33 (note PDF) 21:09:57 fuck! i have to handle "a" too 21:10:03 oerjan: whoa, that guy again 21:10:16 elliott: which guy? 21:10:18 oerjan: he keeps popping up all over my internets. 21:10:22 oerjan: *that* guy 21:10:30 the Wikiplia guy 21:10:33 tom7? 21:10:37 yeah 21:10:45 who is that 21:10:50 a guy 21:11:40 He's elliott from the future 21:11:53 is he? 21:12:51 oerjan: ok this guy wasted *insane* amounts of time on this :D 21:15:51 $ bin/mkdir -m -x x 21:15:51 drwxr-xr-t 2 elliott elliott 4096 Dec 4 21:15 x 21:15:54 ok that did not work :D 21:15:57 yeah, "Since I really implemented the latter (I think the only SIGBOVIK paper that comes even close to being real)" 21:16:50 oerjan: so the thing was the implementation of a programming language written in that programming language, right? 21:16:53 interesting 21:17:45 possibly, as usual i'm too lazy to read the whole thing :D 21:18:03 it was ML at the bottom though 21:19:16 oerjan: i've always wanted to maintain one of those "live"; like, you make a chance to add feature X, tell it "yo update compiler!"; then you rewrite the implementation of feature X to use X, tell it "yo update compiler!", and it runs each successive compiler on the source until fixed-point 21:19:20 You could put in the traditional /* fall-thru */ comment at the end of that =; I had to stare at it a moment before noticing that. 21:19:20 (or warns you if it doesn't reach one) 21:20:11 fizzie: comments take up valuable disk space 21:20:45 elliott: it reminded me a bit of Feather 21:20:47 $ bin/mkdir -m g-x x 21:20:47 drwxr-xr-t 2 elliott elliott 4096 Dec 4 21:19 x 21:20:49 what. 21:20:50 what's t again 21:20:57 sticky? 21:21:02 Sticky indeed. 21:21:21 It's the suid/sgid-bit position except for "other". 21:21:31 lawl 21:21:35 Ugh, shit is le broken. 21:21:46 fizzie: YOU SHOULD WRITE ME A SYMBOLIC MODE PARSER ^__^ 21:21:58 elliott, it should be trivial? 21:22:13 Vorpal: it isn't that trivial really 21:22:19 Vorpal: a lot easier without "a" 21:22:29 Vorpal: also consider that i'm optimising for binary size and mkdir is already the second-largest tool... 21:22:31 elliott, a? 21:22:33 (almost 9k!) 21:22:34 Vorpal: a+x 21:22:35 duh 21:22:43 elliott, yes but why is it an issue 21:22:44 Well, you need to handle "ugo+x" anyway. 21:22:53 fizzie: oh lawd, i don't right now 21:23:01 Vorpal: and then consider that a=xu+g-xoug-r is valid 21:23:08 Also remember to handle +X properly. 21:23:09 just set the "affects who" bitmask to all 1 21:23:20 then and with the modes as you see them 21:23:26 or such 21:23:40 fizzie: I meant to say X with the a= there. 21:23:45 X I will handle later :P 21:23:53 Vorpal: It's not exactly trivial... 21:24:10 elliott, true but easier if you write it without premature optimisation 21:24:11 Vorpal: Especially since a naive implementation will end up interpreting ug+xo+w as ug+xugo+w. 21:24:28 Since you have to clear the bitflag on a new "who" iff you've already set some bits. 21:24:45 elliott, hah, what about the , ? 21:24:57 u+w,g+w is quite common or such 21:24:57 Vorpal: Optional... duh. 21:25:01 elliott, yes 21:25:05 You have to handle the case without htat. 21:25:05 What is it with Americans and their crazy equation of higher education with school? 21:25:05 elliott, but you need to handle it 21:25:12 Vorpal: Go on then, show me the ultra-simple trivial code... I'm not prematurely optimising and it's not super-difficult, it's just really irritating. 21:25:21 elliott, not ultra-trivial 21:25:33 Vorpal: Trivial, then. 21:25:35 You said trivial. 21:25:36 but not as hard as you seem to indicate 21:25:45 elliott, yes but maybe "easy" is better 21:25:45 Vorpal: Very irritating. 21:25:47 Not impossible. 21:26:02 elliott, indeed not imposisble even on an FSA I believe 21:26:07 Vorpal: (If you think I'm just trying to get free code out of you, license it GPLv3 or whatever and I won't touch it with a ten foot pole.) 21:26:07 <3 Newspeak workspaces 21:26:46 The suid/sgid/sticky bits I would think are especially annoying, since they're not at all logical like the rest. 21:26:55 fizzie, indeed 21:27:12 bbl 21:27:15 fizzie: Yeah, I'm not even trying to implement those at this point. 21:27:22 fizzie: SO HAVE YOU WRITTEN IT YET 21:27:29 No, and I'm not going to. :p 21:28:04 You're just afraid. Afraid of the truth. 21:30:14 How does something like u=rwx,g=u work, anyway? Does the g=u use the old or the new permissions of u? 21:30:28 Interestingly, chmod here accepts "o+s" without complaints, but doesn't do anything with it. 21:30:49 The rarely used soid bit. 21:30:50 elliott and Vorpal are bickering, Sgeo is obsessing over a language he'll have forgotten in a week and sshc's a pathetic little weed. 21:30:58 All is right with the world. 21:31:33 Quite so. 21:31:44 fizzie: Yes, it sets what the program thinks every other user is. 21:32:20 Phantom_Hoover: not quite, i cannot think of a pun to go with that 21:32:27 fizzie: Is it just me, or are octal modes even easier to read and write than this symbolic crap? 21:32:28 oerjan, how sad. 21:32:36 oerjan, insult sshc with the use of pun! 21:32:40 fizzie: I mean, +r, +w, +x, sure, and their - versions too. But the rest... 21:32:44 Did I mention how much I hate sshc? 21:33:42 For the mkdir case it doesn't matter, but when doing chmod or something, remember that = has to treat files and directories differently. 21:33:51 it's a lot of hate for someone who hasn't spoken recently 21:33:58 -!- Zetro has quit (Remote host closed the connection). 21:34:35 fizzie: seriously? 21:34:37 fizzie: ;____; 21:34:43 fizzie: who invented symbolic modes. 21:34:51 Satan. 21:34:57 apart from him 21:35:07 Yes, u=rwx will do the same as u+rwx for a directory, but it will remove the suid bit for a file. 21:35:12 well probably hitler, then 21:35:16 fizzie: what. why. 21:35:41 Or in other words, the "= clears unmentioned bits" has an exception that a directory's suid/sgid bits aren't touched, even if you don't specify them. 21:36:02 fizzie: ;_; why 21:36:11 Hey pikhq. 21:39:21 http://d116.com/lispm/3675xmas.gif Christmas discount on a Symbolics 3675! 21:39:23 Actually it seems that what is done to suid/sgid bits on a non-file is implementation-defined, so you could be POSIXly compliant and ignore that distinction. 21:39:56 (But o+s is explicitly defined to be not an error, it just doesn't do anything.) 21:45:40 Incidentally, the "ug+xo+w" and "a=xu+g-xoug-r" you mention up there are not valid. The grammar (for the "actionlist" part of "+xo+w" or such) is a list of "action = op | op permlist | op permcopy", where "op" is [+-=] and "permlist" is a list of [rwxXst] and "permcopy" is [ugo]. 21:46:27 With suitable commas they become legal, of course. 21:47:20 fizzie: Hmm, so you really do only have to clear it on comma? 21:49:02 Within one clause's action list, you can have an arbitrary list of stuff like +rwx-o+g-t=g, but you can't have both [ugo] and [rwxXst] characters within the same op (+, - or =), and ops that have [ugo] must have only one of them. 21:51:15 fizzie: This is a mess. 21:52:34 Maybe I should try this out. Though I don't quite know what things like mkdir do with the "use current permissions" characters; maybe those refer to the usual umask-derived permissions. 21:53:04 fizzie: Oh, all I'm doing is a function to convert a symbolic mode string to the regular octal bits. 21:53:14 fizzie: Right now the "base mode" is 0777, but you could easily take that as a parameter. 21:53:27 (It also does octal, but that's just strtol and hardly worth mentioning.) 21:53:46 Maybe I should try this out too, after all. 21:53:52 fizzie: If you do get it working, a WTFPL license would be nice, since it's much easier to minimise some non-minimised code than to write some small code the first time. :p 21:54:00 Or we could have a golfing competition, and there would be no survivors. 21:54:09 Unfortunately nobody else here actually codes. 21:56:57 -!- Phantom_Hoover has quit (Ping timeout: 245 seconds). 21:57:40 I'll try it out, but I don't think I have a good test set. 21:57:58 Hell, you think I do? 21:58:08 Maybe I could generate all possible productions (of length < K) out of the POSIX grammar, and then compare it with the chmod utility. 21:59:56 fizzie: Or you could just try u=x,g-o,o-x,oug-r,a+x. :P 22:00:03 (I have no idea what that produces when run on initial mode 0777.) 22:03:15 But everybody else here actually codes! 22:04:43 WTF 22:04:52 The scroll wheel doesn't work AT ALL in the Newspeak IDE 22:05:55 Sgeo: The scroll wheel doesn't work at all on my computer, but that is because I disabled it. 22:06:21 But everybody else here actually codes! 22:06:25 zzo38: Phantom_Hoover doesn't. 22:09:38 fizzie: DO YOU FEEL THE PAIN YET 22:09:45 -!- kar8nga has joined. 22:09:52 Not really, but this will be a bit on the large side. 22:10:44 fizzie: I won't hold it against you if you aren't POSIX-compliant with something like mutually-recursive assignments. :p 22:12:00 I think those permcopy ops are actually always resolved against the "old" (as in, completely before any clauses have been applied) mode, if I read the spec right. 22:12:11 -!- evincar has quit (Quit: ChatZilla 0.9.86 [Firefox 3.6.12/20101026210630]). 22:14:25 fizzie: I was just using it as a placeholder for [stupid thing nobody really cares about]. 22:18:27 -!- Phantom_Hoover has joined. 22:19:03 I want to change the topic to "Human slaves / in an arsenic nation". 22:19:18 But I doubt anyone'd get it/ 22:20:00 -!- Sasha has quit (Ping timeout: 260 seconds). 22:20:02 Vorpal: In 2004, a new edition of the POSIX:2001 standard was released, incorporating two technical corrigenda. It is called POSIX:2004 (formally: IEEE Std 1003.1-2004) [4].[3] 22:20:05 Vorpal: Ha ha, you're wrong. 22:20:25 -!- Sasha has joined. 22:21:21 elliott, oh so I was 22:21:37 POSIX 2008 is online though, yay. 22:22:03 elliott, yes since last yeart 22:22:05 year* 22:22:13 or even since two years ago soon 22:22:28 fizzie: http://www.opengroup.org/onlinepubs/9699919799/utilities/chmod.html seems to specify the symbolic modes a little more than 2004, but I may be wrong. 22:22:43 compress is still there, god bless it. 22:22:44 elliott: Okay, it does the same thing with u=x,g-o,o-x,oug-r,a+x (for base mode 0600) than chmod, and works with other spot-testing too, but it's hugely long. 22:23:00 fizzie: Longer than http://git.busybox.net/busybox/tree/libbb/parse_mode.c? 22:23:09 (WARNING: LGPL CODE, YOUR BRAIN WILL VIOLATE THE LICENSE!!11) 22:23:23 http://p.zem.fi/modeparse.c -- there's a plaintext download link there. 22:23:26 Well, maybe not quite that long. 22:23:48 fizzie: Can I has that under WTFPL? 22:23:59 Sure. 22:24:22 Don't use it in a nuclear plant maybe, though. 22:24:30 fizzie: Hoorj. So what are you, in "this code is based on code written by" terms? "fizzie" "Heijkyj Kallasojidio"? "That guy over there"? "turgledurd@zem.fi"? 22:24:32 I don't want to be responsible for a glass crater somewhere. 22:24:39 Duly Noted. 22:24:40 *noted. 22:25:09 I think I've usually just said "use the real-name", so I guess that. 22:25:26 fizzie: Got an email address you want me to put in little angle-brackets to the right of it? 22:25:44 -!- MigoMipo has quit (Ping timeout: 264 seconds). 22:26:27 elliott, so wait, the LGPL is *worse* than the GPL? 22:26:31 Phantom_Hoover: No. 22:26:35 Phantom_Hoover: I'm being silley. 22:26:45 I wonder... I usually use "fis+something@zem.fi" for this kind of stuff, with a suitable +something, but I'm not sure what this could be. Maybe just fis@ then. Unless you figure out a good identifier there, they all go to the same box anyway. 22:26:59 fizzie: fis+kludge@zem.fi? :P 22:27:01 I'll just use fis@. 22:27:02 fis+rwxXst@zem.fi. :p 22:27:04 + is kinda ugly anyway. 22:27:27 mode_t new = old; 22:27:31 Out with the old, in with the new. 22:27:39 who_mask sounds like the best kind of mask. 22:28:08 It does the suid/sgid stuff somewhat sensibly, but those are partially implementation-defined anyway. 22:28:44 -!- Sasha2 has joined. 22:28:45 fizzie: Oh man, you use Allman style. That's perverse, dude. 22:29:02 I think it's actually illegal in most civilised countries. 22:29:36 And C99! If it didn't work I wouldn't be forever grateful. 22:30:00 Is it accidentally C99? It might be, I wasn't especially careful with it. 22:30:03 AND IT GOES OVER 80 COLUMNS OH MY GOD YOU'RE JUST LIKE HITLER 22:30:13 fizzie: You declare two variables in a while loop, so yeah. 22:30:16 It doesn't matter though :P 22:30:18 -!- Sasha has quit (Read error: Connection reset by peer). 22:30:23 But that's a block. 22:30:29 fizzie: (But Allman style really is unforgivable.) 22:30:29 You can declare variables at the beginning of a block. 22:30:33 Oh, wait, yes it is. 22:30:37 I'm just so used to not doing so, you know! 22:31:32 I'd try it out in gcc -ansi -pedantic, but apparently mode_t doesn't exist even with #include under those flags. 22:31:41 It's 22:32:03 Okay, there's C99 in the main function. 22:32:11 if (*str == 'u' || *str == 'g' || *str == 'o') { 22:32:12 case 'u': bits = (old&04700) | ((old&0700)>>3) | ((old&0700)>>6); break; 22:32:12 case 'g': bits = (old&02070) | ((old&0070)<<3) | ((old&0070)>>3); break; 22:32:12 case 'o': bits = (old&7) | ((old&7)<<3) | ((old&7)<<6); break; 22:32:26 How WASTEFUL! I will convert it into a switch statement, because I'm lovely. 22:33:17 Yes, it certainly could be that, though you'd then have to str++ thrice. 22:33:38 fizzie: As far as I can tell, you also have an "ok" variable that is executed iff it wouldn't go to a default clause. 22:33:45 Is there some reason that can't just be a default clause? 22:34:00 Well, it has to break out of the while loop. 22:34:01 I mean, apart from not breaking out of the for without a label. 22:34:09 Yes, that's the only reason for it. 22:34:24 You can gotoize it or something if you like. 22:34:28 I am. 22:34:28 :P 22:36:11 It doesn't do the "don't touch suid/sgid bits of a directory when doing =" thing GNU coreutils chmod does. 22:36:35 fizzie: That seems stupid to me, anyway. 22:36:55 And, well... if you have a suid bit set in the old mode and do a "g=u" mode, it doesn't set the sgid bit. That's a bit debatable anyway. 22:36:57 fizzie: Er. 22:36:58 elliott, fizzie: I'm planning something BIG in MC atm 22:37:02 feel free to come and watch 22:37:02 $ bin/mkdir -m -x x 22:37:04 $ ls -l 22:37:05 d--------- 2 elliott elliott 4096 Dec 4 22:36 x 22:37:16 fizzie: Technically I use int in mkdir.c rather than mode_t; could it be that? 22:37:21 mode = parsemode(optarg, 0777); 22:37:22 is the call. 22:37:32 $ ./tmp "-x" 0777 22:37:32 00666 <- -x [00777] 22:37:35 Vorpal: What is it, then? 22:37:36 Well, that's what my code does. 22:37:54 You get to debug all your minimizations yourself. :p 22:37:56 fizzie: mode_t fixed it. 22:37:56 elliott, a throne room 22:38:01 Vorpal: wat. 22:38:13 fizzie: I haven't minimised it at all yet, actually. :P 22:38:16 Thus making mkdir the largest utility so far. 22:38:25 elliott, what I just said 22:38:36 Oh. Well, then. But I'm not instantly sure why mode_t'd matter; but if it did, good for you. 22:38:42 fizzie: Signed/unsigned? 22:38:45 fizzie: while (*str == 'u' || *str == 'g' || *str == 'o' || *str == 'a') { 22:38:55 fizzie: Now you have no excuse; that's for (;;) with a goto in the default. :P 22:39:09 Sure, sure. 22:39:23 UNFORGIVABLE! Just kidding it's fine, you're cool. 22:39:35 It also has COMMENTS, remember to remove all those. 22:39:36 Actually it's a "for (;; str++)" which is now my favourite type of control structure. 22:40:10 elliott: Mmm, for(;;str++) 22:40:14 fizzie: Those don't take up binary space :-P 22:40:32 -rwxr-xr-x 1 root root 48K Apr 28 2010 /bin/mkdir 22:40:32 -rwxr-xr-x 1 elliott elliott 9.0K Dec 4 22:39 bin/mkdir 22:40:35 Perhaps I shouldn't worry too much. 22:40:40 (And the former one is even dynamically-linked.) 22:40:48 Also you might not exactly want to call abort() there if the mode string has some trailing dirt that was not parsed. :p 22:40:54 fizzie: Fixed that. :P 22:41:03 fizzie: (Made it return -1, i.e. "No! Bad mode! Bad user! You're a horrible person!") 22:41:33 fizzie: Actually, got a simple way to check whether something's a valid mode? That high bit has a limited range of values, I think. 22:42:39 fizzie: I like how your code readily accepts u-+q. 22:42:44 That should be a valid mode. 22:42:51 Oh, wait, no. 22:42:52 * Sgeo decides to try DropBox 22:42:55 Mode_t is just unsigned. 22:42:59 Sgeo: *Dropbox 22:43:31 * Sgeo vaguely hopes that Dropbox doesn't require installation on all computers 22:43:43 I'm willing to install it on this machine, but not my old machin 22:43:45 machine 22:44:00 I think anything >= 0 and <= 07777 is an okay mode; but in things like struct stat they use a mode_t field where the higher bits are for file type. 22:44:29 Sgeo: Of course it does. (Unless you want the web interface.) 22:44:42 elliott, as long as it has a web interface, I'm ok 22:44:49 My taskbar just died 22:45:37 Interestingly, the standard explicitly allows the +, - and = operations without any permissions listed, so "g+" and "a+-" are valid no-ops, and "o=" is okay for basically "o-rwx". 22:47:16 fizzie: I am having great trouble figuring out where to add "oh hey, something invalid" here. :p 22:47:52 fizzie: Hmm, yours accepts u,... 22:48:00 As a nop. 22:48:19 That one might not be quite kosher, that's true. 22:48:29 The "actionlist" part shouldn't be empty. 22:48:31 * Sgeo swears at typo 22:48:58 You could set "actions = 0" at the /* "action = op | op permlist | op permcopy"; always op first */ 22:49:13 comment, then actions++ in the loop below, and if (!actions) ... after it. 22:49:17 If you want. 22:49:21 case '+': case '-': case '=': goto afterwhomask; 22:49:21 default: return -1; 22:49:23 in the ugoa block 22:49:24 seems to do it 22:49:48 (I really want to get rid of that second switch though! But I don't think I can. 22:49:58 i.e. the +-= switch after a condition already proved it true 22:50:01 *can.) 22:51:02 -!- humanB has joined. 22:51:05 Hmh, right; you can either test for +-= after reading the "who" part -- because any action must start with an op -- or count the actions as you're reading them and test for count>0. 22:51:36 fizzie: It's more that I want to replace the outer if with a switch, but there's code common to each action. 22:52:02 -!- humanB has left (?). 22:53:32 fizzie: Hrm, does chmod usually have a race condition? 22:53:37 i.e. read mode, modify, write 22:54:30 -!- MigoMipo has joined. 22:54:33 I don't think I've ever read the code of any chmod utility, but it doesn't sound very easy to avoid. 22:54:47 Can't install Dropbox desktop client on the old machine 22:54:59 And the upload limit for single files from the web interface is 300MB 22:55:42 * Sgeo gos ack to using ... why don't I just use the USB drive? 22:56:23 Hmm, my -p option ignores -m for the outer directories. Now why would that be... 22:56:54 If I can find it :( 22:56:57 Oh, I see. 22:56:58 Wait, what? 22:57:25 Okay, what the fuck. 22:57:26 Heh, GNU coreutils chmod: 22:57:26 $ chmod --r t 22:57:27 chmod: option '--r' is ambiguous 22:57:39 fizzie: What kind of mode is --r? 22:57:40 :P 22:57:45 It's just -r. 22:57:57 fizzie: That is *valid*? Wow. 22:58:06 Well, it works with the usual "chmod -- --r t" thing. 22:58:33 chmod o+=x is nice and confusing :P 22:59:01 Isn't that just equal to o=x? 22:59:11 Yup, but it sure doesn't look like it to a C programmer 8-D 23:00:27 -!- humanB has joined. 23:00:50 97174 total 23:01:03 false, true, yes, sleep, pwd, echo, dirname, basename, uname, signal, link, cat, date, chroot, env, strings, vis, cal, kill, mkdir. 23:01:21 27995 box 23:01:25 When compiled as one executable. 23:01:47 -!- humanB has left (?). 23:01:53 14460 box 23:01:55 When UPX'd. 23:02:06 (Would be smaller without that goddamn UPX copyright notice in there. 23:02:50 Dear old computer: Please do not take two hours to copy a 500MB file from disk to USB drive 23:03:18 * Sgeo wonders if it's actually minutes that I'm seeing 23:04:14 Oh yeah, and all of those are on 64-bit. 23:04:16 It's a bit shame that UPX doesn't do anything really clever, like disfilter in kkrunchy: http://www.farb-rausch.de/~fg/code/disfilter/readme.txt ("disassembling binary x86 code preprocessor that increases compressability by LZ-based compressors or context coders") 23:04:18 On 32-bit, it'd be even smaller. 23:04:28 (kkrunchy is, of course, Windows-only.) 23:05:03 elliott, the throne room will be 25x25x7 at least 23:05:11 Vorpal: 128x128x128 in your face. 23:05:37 elliott, yes but try to fit that in mt vorpal. Also mine will be ready long before your 23:05:43 elliott, also it will not be a single room 23:06:38 $ bin/mkdir -m 0 -p x/y/z 23:06:38 x: File exists 23:06:38 x: File exists 23:06:39 What. 23:07:01 Heh; mkdir here uses default permissions for -p. 23:07:03 That seems wrong to me. 23:07:29 For each dir operand that does not name an existing directory, effects equivalent to those caused by the following command shall occur: 23:07:29 mkdir -p -m $(umask -S),u+wx $(dirname dir) && 23:07:29 mkdir [-m mode] dir 23:07:29 O-kay. 23:09:28 Why was I playing Runescape in my dream? 23:09:56 fizzie: Is umask implicit? 23:11:11 In mkdir() and the like. 23:11:58 What good web browsers are there that work on Win98? 23:12:05 Sgeo: opera 23:12:17 That's it? 23:12:54 * Sgeo watches the time remaining thingy keep going up 23:15:43 * Sgeo is reading some Win32 tutorial 23:15:45 If you mean the syscalls that take a mode_t (like mkdir, open and such), yes, I think those apply the umask always. 23:16:14 "hPrevInstance used to be the handle to the previously run instance of your program (if any) 23:16:14 in Win16. This no longer applies. In Win32 you ignore this parameter. " 23:16:35 * Sgeo is very curious as to what that was used for, exactly 23:17:04 fizzie: So then 23:17:05 mkdir -p -m $(umask -S),u+wx $(dirname dir) && 23:17:08 fizzie: should have mode 0777. Right. 23:17:13 (Presumably?) 23:17:27 Er, maybe not. 23:17:30 fizzie: I'm confused now. 23:17:34 What mode would that correspond to? 23:17:37 * Sgeo loses interest 23:17:57 Sgeo: You can go steal already-loaded data by memory-copying from the previously opened instance, to start faster. 23:18:03 Sgeo: See http://blogs.msdn.com/b/oldnewthing/archive/2004/06/15/156022.aspx 23:20:13 * Phantom_Hoover decides he ought to murder the people who are ruining the cool bits of the Museum of Scotland. 23:20:31 -!- kar8nga has quit (Remote host closed the connection). 23:20:56 That is awfully complicated. But "umask -S" seems to return the symbolicized version of what (0777 & umask) ends up like, so "$(umask -S),u+wx" would just mean "like what mkdir without a mode argument usually does, except the user's write+execute bits are forced on always, even if umask would not". 23:21:04 Presumably because otherwise you couldn't create subdirectories under it. 23:21:38 fizzie: Right, but as far as the argument to the malloc syscall... 23:21:46 Well, default uhh... 23:21:48 BRB 23:21:49 fizzie: Okay, I'll just pass 0777. 23:21:51 Sound reasonable? :p 23:22:14 -!- Sgeo has quit (Read error: Connection reset by peer). 23:22:19 $ bin/mkdir -m 0 -p a/b/c 23:22:19 a: File exists 23:22:19 a: File exists 23:22:22 Now to diagnose this. 23:22:30 Actually, happens with just -p too. 23:23:21 Yes, I think passing 0777 to mkdir(2) is reasonable; if your user gives a -m argument, you're going to have to manually chmod it anyway, unless you really want to do some sort of "okay, here the umask didn't change the mode, so I don't need to" logic. 23:24:01 fizzie: Manually chmod it? 23:24:02 Why? 23:24:14 fizzie: Oh, because of the umask? 23:24:23 Because "mkdir -m a+rwx foo" must set all the bits, not just umask-allowed ones, right. 23:24:23 fizzie: You mean I can't just do mkdir(path, mode)? 23:24:33 fizzie: You can't see it right now, but I'm vomiting. 23:24:37 fizzie: Does chmod really bypass that? 23:24:39 The syscall. 23:24:50 Yes, it does. 23:25:04 Otherwise you'd have no way of setting any non-umask-allowed modes. 23:25:04 There's a rumor going around that the PS3 master key has been found... 23:26:57 If true, this would probably make the PS3 the single most hacked console of this generation. 23:28:40 -!- Sgeo has joined. 23:31:31 -!- hagb4rd has quit (Ping timeout: 245 seconds). 23:31:50 pikhq, wait, there's a single key that gives unbridled access to all consoles? 23:33:31 * Sgeo goes to install Win98 23:34:09 -!- hagb4rd has joined. 23:37:23 elliott, more TV Tropes madness: Crowning Moment of Awesome is now just Moment of Awesome. 23:37:49 ... 23:37:58 what about funny 23:38:20 Still Crowning, AFAIK. 23:38:25 -!- augur has quit (Remote host closed the connection). 23:38:46 Awesome Moment of Crowning is less punny now :( 23:38:58 No, wait, it's been made into "Funny Moments". 23:39:05 ..................... 23:39:37 Phantom_Hoover: i was right 23:39:41 fuck tv tropes 23:39:58 so i guess it's been taken over by "serious" people? 23:40:57 -!- Phantom_Hoover has quit (Remote host closed the connection). 23:42:34 Where did I put my Windows 98 license key? 23:42:56 Sgeo: In the microwave. 23:43:07 -!- MigoMipo has quit (Read error: Connection reset by peer). 23:45:32 An email to myself titled "Random porn" is not helpful here 23:48:52 Sgeo: We needed to know that! 23:49:03 It didn't actually contain any porn 23:50:43 well try the folder named "My Al-Qaeda contacts" 23:51:27 And if not that, steganographically encoded into your PDF copy of "Sodomy and the Pirate Tradition" 23:51:58 I need COMPUTER SCIENCE BOOK ADVICE. As in what to buy. 'cuz I wanna binge. 23:52:11 Candidates: SICP, Purely Functional Data Structures, Land of Lisp, Real World Haskell, ...? 23:52:33 Facebook for Dummies //I'm sure that's on a CS bookshelf somewhere due to stupidity 23:52:57 Didn't you recommend Purely Functional Data Structures to me once? 23:53:14 Yes. I have heard extremely good things about it from sources I trust highly, and I have read other things by Okasaki. 23:53:19 But the book itself I haven't read. 23:53:51 ...there are sources elliott trusts highly? 23:54:17 oerjan: You do know I like people, right? :P 23:54:36 yeah but you never _agree_ with them... 23:55:28 -!- Zuu has quit (Ping timeout: 255 seconds). 23:55:34 oerjan: It's not my fault most people are wrong. :p 23:56:00 true, true. i mean NONSENSE 23:56:01 oerjan: To be fair though, most people in #esoteric aren't indoctrinated into the same cult I am, so it's only natural that you basically just see me disagreeing. 23:56:35 oerjan: your children are all goats! 23:56:51 entirely correct 23:57:01 you were spot on, there 23:57:58 oh right... 23:58:33 oerjan: now *i'm* confused. anyway recommend a CS book to me. (<-- sentence least likely to produce helpful results when directed at oerjan :P) 23:59:03 suggest a bo-- categories for the working mathematician --ok about CS 23:59:06 i am merely confirming that my children are, in fact, all goats. 23:59:17 oerjan: and horses, too 23:59:22 indeed 23:59:26 elliott: http://www.abebooks.com/products/isbn/9780814712368 <-- my advice 23:59:40 Err ... recommendation. 23:59:48 Actually, neither sounds better :P 23:59:58 * oerjan hasn't actually read categories for the working mathematician