00:02:20 Zile vs. full Emacs, why bother with something less than the real thing? 'cause it's "good enough" for some cases 00:04:17 I also use an old 8086 grep ("xgrep") that's only 3k, not as good as GNU grep but gets the job done ;-) 00:04:18 -!- oklofok has quit (Read error: 104 (Connection reset by peer)). 00:04:39 -!- oklofok has joined. 00:07:52 (although ZILE comparison isn't fair, it's a lot harder to build than standard Emacs) 00:08:28 -!- oklokok has joined. 00:12:18 -!- oklofok has quit (Read error: 60 (Operation timed out)). 00:14:13 -!- Rugxulo has quit ("gxis revido"). 00:16:21 sweet, go was ported to bsd by an outsider 00:16:22 in 4 days. 00:16:34 (freebsd) 00:16:37 all tests pass 00:16:55 4990 lines of code changed 00:20:29 4990?! 00:21:12 http://golang.pastebin.com/d39006986 00:21:15 the files changed/modified 00:21:38 he had to do runtime, syscall stuff, os-specific files for the stdlib, and change some misc stuff 00:21:49 anyway, if he did it in 4 days that's great 00:21:52 means that porting should be easy 00:21:59 well, os at least; who knows about arch/binary format 00:22:12 (it's only freebsd/amd64 too, but eh) 00:22:14 (4 days!!) 00:27:28 -!- adam_d has quit (Read error: 60 (Operation timed out)). 00:49:07 The Ruby code generates Python code, which generates Perl code, which generates Lua code, which generates OCaml code, which generates Haskell code, which generates C code, which generates Java code, which generates Brainfuck code, which generates Whitespace code, which generates Unlambda code, which generates the original Ruby code again. 00:49:15 -!- oklofok has joined. 00:52:14 oklofok: The Ruby code generates Python code, which generates Perl code, which generates Lua code, which generates OCaml code, which generates Haskell code, which generates C code, which generates Java code, which generates Brainfuck code, which generates Whitespace code, which generates Unlambda code, which generates the original Ruby code again. 01:06:57 no go? 01:07:13 lawl 01:07:14 not mine 01:07:19 http://www.reddit.com/r/programming/comments/a4j4a/whats_the_best_most_interesting_piece_of_code/c0ftftg 01:07:20 behold! 01:08:59 -!- oklokok has quit (No route to host). 01:09:06 cüül 01:35:02 -!- puzzlet has joined. 01:44:48 -!- immibis has joined. 01:45:25 -!- puzzlet_ has quit (Read error: 110 (Connection timed out)). 02:19:21 -!- bsmntbombdood_ has quit (Read error: 113 (No route to host)). 02:22:02 -!- bsmntbombdood_ has joined. 02:27:26 Hey ehird, are you around? I could use your expertise, perhaps. 02:28:05 Yes. 02:28:08 Are you ignoring me? 02:28:23 ^echo You may be ignoring me, but yes. 02:28:23 You may be ignoring me, but yes. You may be ignoring me, but yes. 02:29:00 I am not ignoring you as of the moment. 02:29:08 Shoot. 02:30:01 So, suppose I want to write a program that, at arbitrary times, stores data meant to persist indefinitely. 02:30:38 Like new users' usernames. 02:31:03 What storage method should I use? 02:39:27 Warrigal: Filesystem. 02:40:28 Yay, you didn't say "database". 02:41:10 Warrigal: New users' usernames, btw? Do you just mean a list of all usernames? 02:41:41 Well, presumably, not just their usernames but stuff like password hashes and other stuff. 02:42:04 Warrigal: Look at /etc/passwd and /etc/shadow (or is it /etc/shadw? I forget). 02:42:09 Well, mostly just /etc/password. 02:42:13 Just do something similar. 02:42:17 Yeah, I've seen /etc/passwd. 02:42:27 If you have username/password/email and you know : is in none of them, just append 02:42:30 username:hash:email 02:42:41 BTW, make sure to do passwords with 02:42:46 http://bcrypt.sourceforge.net/ 02:42:54 wrong one 02:43:01 http://www.mindrot.org/projects/py-bcrypt/ 02:43:03 Is that better than whatever I happen to be thinking of at the moment? 02:43:05 and store the salt, so that it's username:hash:salt:email 02:43:07 Warrigal: Yes. 02:43:14 It's very secure and easy to use. 02:44:15 Why is this Blowfish stuff better than SHA-2? 02:44:36 because it iterates and salts for you 02:44:49 this is important shit, cryptography is really hard, and this way it does passwords very securely and simply for you 02:44:59 Blowfish comes courtesy of OpenBSD. 02:45:08 I think that should tell you all you need to know about it. :P 02:45:18 No it doesn't, OpenBSD's password scheme based on Blowfish does though 02:45:23 Blowfish comes courtesy of Schneier. 02:45:27 ehird: Oh, really? 02:45:28 Hmm. 02:45:35 Which is even more of an endorsement. 02:45:46 Yeah. 02:47:20 I do feel like something I create by my own understanding of password hashing would be more reliable than some thing a certain person points me to. 02:47:43 If you make your own, you *will* be insecure. 02:47:53 Cryptography is really fucking hard. 02:48:12 Well, I'm not going to make my own hash function or anything. 02:48:17 Take a decade or two to learn it before just "creating your own". 02:48:48 Creating cryptographic primitives = no. Combining them = maybe? 02:49:34 Combining them = foolish. Worst case scenario, you make the whole thing less secure. Best case scenario, you have accomplished nothing. 02:50:28 I don't mean combining them into new cryptographic primitives. 02:50:41 Unless password hashing code is a type of cryptographic primitive. 02:51:43 Password hashing is harder than you think. 02:51:48 Here: "To set the password, receive the new password, generate a random number, store the random number, prepend the random number to the password, hash that, and store that. To check a password, prepend the random number to it, hash it, and see if it matches the stored hash." 02:52:02 Is that sort of thing okay? 02:52:21 That specific thing is called a "salted hash". And that is exactly what you should do. 02:54:14 * Warrigal ponders whether he's satisfied his urge to prove himself worthy. 02:55:38 Use a rather large salt, BTW -- each additional bit of salt makes the size of the hypothetical hashing dictionary double. 02:56:06 * Warrigal nods. 02:56:26 I imagine 128 bits would be plenty, and 512 bits would also be plenty. And I like the number 512. 02:59:19 This bcrypt thing looks like it is combining cryptographic primitives to make new cryptographic primitives. Blowfish is a block cipher, not a hash function. 03:00:09 And there's a well-known way of turning block ciphers into hash functions. 03:01:10 Almost certainly true. 03:01:19 I wonder why they don't just use a hash function directly. 03:04:08 You can use the salt to encode some other data, and make hashes unique to each user 03:04:46 Warrigal 03:04:51 py-bcrypt can generate the salt for you 03:04:58 and the reason is for rainbow tables 03:05:24 salts make rainbow tables nearly useless if used correctly 03:06:06 just use py-bcrypts example 03:06:24 * Warrigal ponders decision paralysis. 03:07:07 Just do py-bcrypt. You fail at cryptography forever, like 99% of people. 03:07:09 I mean, salts aren't fundamentally more secure than a long password 03:07:26 just a lot easier to remember 03:07:32 don't give him ideas 03:07:35 also 03:07:38 fail at knowing what a hashed salt is 03:07:46 the password hasher generates a random salt 03:07:49 yes 03:07:51 and cats it with the passwd 03:07:53 and stores it separately 03:07:58 it's not about what the user does 03:08:05 Yer, salts are potentially fundamentally more secure. 03:08:10 No they aren't 03:08:12 just use py-bcrypt, seriously 03:08:13 Databases can get leaked. 03:08:14 just do it 03:08:23 In which case they get the salt too 03:08:41 If a complex password is leaked, its complexity doesn't help. If a hash and a salt are leaked... well, it'll at least take a while for them to find the password. 03:08:59 no, it's the same 03:09:11 What, are you saying that given a hash and salt, it's trivial to find the password? 03:09:12 in fact, easier with the salt 03:09:14 no 03:09:46 If I have a hash and a salt, how does that help me to log in as you? 03:09:47 I'm saying that given, say, a 64-bit password and a 64-bit salt, you have no more security than a 128-bit password 03:10:32 I don't see how. 03:10:50 either way, you're looking for a 128-bit set of data that produces a given value 03:11:25 If a password is leaked, I'm looking for no data. If that hash and salt are leaked, I'm looking for 64 bits of data. 03:11:36 why would the password be leaked? 03:11:43 all sane systems store a hash of the password 03:11:57 (note: there are plenty of insane ones out there) 03:12:16 I'm saying that a hashed password and a hashed, salted password are equally effective fundamentally 03:12:25 Oh, I think I'm failing to see that you're talking about a hash versus a salted hash, rather than a clear password versus a salted hash. 03:12:34 yeah, I think so 03:13:06 now, when storing a large collection of data, salts do have the advantage that a given cleartext won't get the same ciphertext with different salts 03:13:18 Effectively, a salt is an extension of the password that the server keeps track of and doesn't ask for. 03:13:24 exactly 03:13:50 So it's a bit like a method of making a password easier to remember. 03:14:06 right. 03:14:19 and my "advantage" I just mentioned is really just a function of length again 03:14:37 it's for security 03:15:48 it's just so people get the security of having aldsj2ou43as;kdjAWE!(*IU%@K!J$%>!@<#M$LK@!(U#$ (@#OI!JUORJQ 03:15:57 as a password, without needing to remember it 03:16:36 Not *all* of the security of having that as a password. 03:17:05 I mean, having a 0-bit password and making up for it by having a 128-bit hash would be absurd. 03:17:20 s/hash/salt/ 03:17:43 -!- ehird has quit. 03:17:48 Warrigal: well, yeah 03:18:03 In order for that to be secure, logging in would have to be impossible. 03:18:06 -!- Rembane has quit (Read error: 60 (Operation timed out)). 03:18:20 -!- calamari has joined. 03:18:44 also note that the argument about a salt being stored separately from the password for security holds no water; it's no more additionally secure than any other system where the components are held in different locations 03:19:06 e.g. where a random string is XORed with the password pre-hashing 03:20:10 -!- Rembane has joined. 03:20:29 Hi, Remembrane. 03:20:47 http://www.newegg.com/Product/Product.aspx?Item=N82E16819103681 <-- if I owned one of these, it would be a GRegor. 03:35:14 Anyway, I guess that my chief subgoal in doing this project should be to do it badly. 03:35:35 Using a salted-hash scheme I come up with myself is a perfect example of what I ought to do. 03:45:26 -!- Oranjer has joined. 03:45:31 ahhhh 03:49:28 And Oranjer entered the channel of Esoteric, on the network of freenode; and he was enlightened. 03:49:41 cool, I guess 03:49:52 sorry, my laptop broke 03:49:58 I had no access to anything anywhere 03:53:03 -!- calamari has quit ("Leaving"). 03:53:55 awww 03:54:50 anything happening over here? 03:58:39 We seem to be kind of talking about how to make a program. 03:58:46 Specifically, one where people can log in. 03:58:57 okay 03:59:02 what about it? 04:02:42 Well, ehird was advising me that it would be unwise to write my own salted hash scheme. 04:02:54 salted..hash...uh, okay 04:11:19 anyway, for the record, I have been without access to a computer for the last two weeks 04:14:16 -!- Oranjer has quit ("Page closed"). 04:21:36 -!- lifthrasiir has joined. 05:02:33 -!- bsmntbombdood_ has changed nick to bsmntbombdood. 05:38:49 hmm... does anyone know of any languages with syntax that allows a loop to have a condition checked in the middle of the loop with no typing repition? 05:39:32 e.g. rather than getInput(); while(checkInput()) { useInput(); getInput(); } or while (true) { getInput(); if (!checkInput()) break; useInput(); } 05:39:58 s/repition/repitition/ 05:57:26 your second example has no repetition of more than one character (except for "Input", "()", "; ") 05:57:43 without any repetition it's hard to get a source file of more than 256 bytes :) 05:57:53 except with unicode of course 05:58:16 immibis: but then the loop reads wonky 05:58:23 as the condition is not really a part of the loop 05:58:37 I'd be looking for something like do { } while () { }; 05:58:48 that's even wonkier... 05:59:07 do {getInput();} while(checkInput()) {useInput();} 05:59:07 immibis: sure, but then it's clear you have part of the loop condition there 05:59:18 but it's not clear where the loop actually is 05:59:23 right 05:59:23 and what about scope? 05:59:32 which is why I'm asking if people have syntaxes for that 05:59:42 do {int a = 2; } while(1 != 2) {a ++;} <-- error: undefined variable a 06:00:18 In a brackets-mandatory language like Perl, you could have while as a statement be syntactic sugar for if (!condition) break; 06:02:38 midWhile x y z = do x' <- x;if y then z x' >> midWhile x y z else return () -- There. I defined one for Haskell. Happy? 06:03:04 pikhq: no 06:03:40 also, what does the >> do? 06:04:51 proc do {statement1 case statement2} { uplevel 1 [list while 1 [list $statement1 \; if [list ! $case] break \; statement2 ]] } ;# There. I defined one for Tcl. Happy? 06:05:17 pikhq: once again, no 06:05:18 coppro: x >> y = x >>= \_ -> y 06:05:35 pikhq: I have no clue what that means :/ 06:05:58 pikhq: is that just doing one thing after another? 06:06:08 Yes. 06:06:12 ok 06:06:15 you could have said that 06:06:16 And throwing away the result of the first. 06:06:29 Also, that Tcl code is used as follows: do {getInput} {checkInput} {useInput}. 06:08:54 what happens for: do {getInput} {} {useInput} 06:09:17 actually, i suppose there's no point considering it 06:09:20 it's an error anyway 06:09:25 immibis: Impossible in Tcl. 06:09:59 The closest you can get is returning the empty string. 06:27:12 Why am I still awake? 06:30:06 because it's tuesday tomorrow? 06:47:21 Must... stop.. posting.. passwords.. publically 06:47:55 immibis: it's Monday tomorrow! 06:48:13 [19:29]===CTCP time reply “Mon Nov 16 01:29:45” from Sgeo_ 06:48:21 not where sgeo_ lives 06:48:31 and here it's tuesday tomorrow 06:48:54 in 12 minutes it will be Tuesday tomorrow! 06:48:59 * Sgeo_ loved the "SgeoPPW" password 06:49:04 01:29:45? That's not late at all. 06:49:06 (btw, it's changed, so...) 06:49:18 (... says the guy who needs to be up by noon. :P) 06:50:20 01:50:08 now, sgeo_ 06:50:31 I know what time it is 06:50:43 plus double whatever the ping time is from my pc to yours, plus my reaction and typing time 07:12:00 -!- FireFly has joined. 07:20:55 -!- kar8nga has joined. 07:22:26 -!- Sgeo_ has quit (Read error: 104 (Connection reset by peer)). 07:54:15 -!- FireFly has quit ("Later"). 07:59:59 -!- clog has quit (ended). 07:58:21 -!- clog has joined. 07:58:21 -!- clog_ has joined. 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:02:09 -!- immibis has quit ("ChatZilla 0.9.85 [Firefox 3.5.5/20091102152451]"). 08:17:50 -!- adam_d has joined. 09:07:05 -!- adam_d_ has joined. 09:10:54 -!- ais523 has joined. 09:14:03 -!- adam_d has quit (Read error: 60 (Operation timed out)). 09:23:05 -!- fax has joined. 09:30:09 -!- fax has changed nick to facsimile. 09:34:05 -!- GreaseMonkey has quit (Client Quit). 09:47:18 -!- adam_d_ has quit (Read error: 110 (Connection timed out)). 08:00:00 -!- clog has joined. 10:04:04 -!- clog has quit (Read error: 145 (Connection timed out)). 10:04:05 -!- clog_ has changed nick to clog. 10:04:09 -!- oerjan has joined. 10:16:16 -!- kar8nga has quit (Remote closed the connection). 10:23:42 -!- oerjan has quit ("leaving"). 10:27:51 -!- Pthing has quit (Remote closed the connection). 10:54:04 -!- facsimile has quit ("quit"). 11:30:56 -!- facsimile has joined. 11:35:12 -!- clog has joined. 11:35:12 -!- clog_ has joined. 11:44:47 -!- BeholdMyGlory has joined. 11:48:41 -!- kar8nga has joined. 11:49:47 -!- clog has quit (Read error: 110 (Connection timed out)). 11:49:47 -!- clog_ has changed nick to clog. 12:15:02 hi ais523 12:15:07 hi 12:15:11 also, wow at clog 12:15:14 I won't have time for the ick port for a few days 12:15:14 I didn't know it could do that 12:15:17 and ok 12:15:26 due to some university stuff. 12:16:12 ais523, still maybe I should send a patch of what I got. Did you integrate that first patch already? Because I rearranged things a bit (to work better in some ways) 12:16:19 I didn't 12:16:21 and there is the autotools check 12:16:25 I saved it, but haven't tried to integrate it 12:16:39 hm should try to pick out the non-mac specific parts 12:16:43 when it is ready 12:16:45 most likely, I'll look at your patches then try to create one myself that's properly integrated based on yours, and send it back to you for testing 12:16:49 so it is split in two 12:17:04 ais523, you can't really do that for the mac specific stuff though 12:17:20 ais523, anyway this ICK_PATHSEP, where would it be defined? 12:17:24 config.h or elsewhere? 12:17:26 AnMaster: config.h 12:17:34 hmm... as long as there's an autoconf macro for that 12:17:36 ais523, I have no clue how to add THAT to autotools 12:17:37 if there isn't, I'll write one 12:17:41 it should only be a line or so 12:17:48 ais523, you could check on: 12:17:54 #if defined(macintosh) 12:18:01 #elif defined(__WIN32__) 12:18:03 #else 12:18:05 #endif 12:18:06 or such 12:18:24 as far as I know that works. I probably missed something (what about 64-bit windows?) 12:18:50 ais523, btw how do you update bconfig.in? 12:19:00 I mean, autoreconf in the top dir doesn't 12:19:04 AnMaster: look at buildaux/bconfig.ac 12:19:13 oh, if you've done autoreconf in the top dir 12:19:15 then make should update it 12:19:28 ais523, no such file or directory 12:19:38 buildconfig.ac? 12:19:51 umm, buildaux/buildconfig.ac 12:20:14 in fact, you don't even need the autoreconf unless you're upgrading to a newer version of autoconf than the one that was used to generate configure 12:20:20 ais523, I did autoreconf in top dir, and no it wasn't updated 12:20:38 ais523, I had to do that, due to having a different autoconf and automake version 12:20:39 AnMaster: autoreconf updates configure and Makefile.in, such that the makefile updates everything eles 12:20:40 *else 12:20:51 ais523, does that apply to out of tree builds too? 12:21:06 AnMaster: yes 12:21:12 ais523, for native builds? 12:21:14 out of tree builds will update the build system in-tree if it needs updating 12:21:18 for native or cross 12:21:24 well, it didn't work then 12:21:28 as far as I can tell 12:21:48 AnMaster: you need to run make 12:21:51 after the autoreconf 12:21:54 and make updates the buildsystem 12:21:59 ais523, I did that 12:22:12 and buildconfig should have updated accordingly 12:22:55 ais523, further: bconfigh.in and bconfig.h doesn't match. As in bconfig.h contains lines that src/bconfigh.in doesn't 12:23:07 like HAVE_VSNPRINTF 12:23:16 configh.in matches better 12:23:39 hmm, I wonder if bconfigh.in is getting updated? 12:23:42 buildconfig itself is 12:23:53 ais523, in fact as far as I can tell my bconfig.h was based on configh.in and not bconfigh.in 12:24:02 in fact 12:24:04 it even says so 12:24:08 in the top of the file 12:24:12 ah 12:24:17 oh, I know what's caused that 12:24:19 ais523, ? 12:24:21 it's because you aren't cross-compiling 12:24:27 so config.h and bconfig.h are the same 12:24:33 so to avoid running configure twice, it just copies it across 12:24:42 ais523, well yes of course. But I would need things to update when I do changes to things 12:25:01 AnMaster: everything in buildconfig.ac should also be in configure.ac 12:25:15 ais523, plus I doubt there is any modern compiler that can corss compile to classic mac os 12:25:28 looking at apple headers it seems some versions of egcs could 12:25:33 well, in that case you're native compiling on mac os 12:25:38 and config.h and bconfig.h can be the same 12:25:40 and should be 12:25:59 ais523, also some of those defines. I'm a bit unclear on how to test them: 12:26:10 -!- Asztal has joined. 12:26:18 which ones? 12:26:22 /* Define to 1 if you have the ANSI C header files. */ 12:26:22 #define STDC_HEADERS 1 12:26:23 that one 12:26:38 I guess it has them, but what exactly does it test for 12:26:48 surely it doesn't verify *every* header 12:26:56 for strict conformance to ANSI C 12:27:27 I think it runs a test program designed to break badly in non-ANSI 12:27:49 ais523, depends on in which way it isn't ANSI. Missing some specific header but otherwise ANSI? 12:27:53 non-prototypes? 12:28:08 there is also: 12:28:11 /* Define to empty if `const' does not conform to ANSI C. */ 12:28:11 /* #undef const */ 12:28:16 conform in what way? 12:28:43 and finally (did I mention this already?): 12:28:48 /* Define to `unsigned int' if does not define. */ 12:28:49 /* #undef size_t */ 12:28:54 I can't define this 12:29:01 because I get size_t from stdlib.h and such 12:29:04 it's looking for memchr in string.h, free in stdlib.h, and a sane islower 12:29:09 but there is no sys/types.h 12:29:21 AnMaster: ooh, that's an interesting comment 12:29:38 I think probably leaving that as undef is correct, ignoring the details of the comment (the comments are automatically generated) 12:30:04 ais523, well basically, stddef.h stdlib.h stdio.h and so all include some internal SizeTDef.h (I think that was the name in MPW) which defines it 12:30:20 leave it as undef, then 12:30:22 and I get compiler error if defining that in config.h 12:30:43 ais523, apart from const there is also a similar one for volatile 12:30:58 again I have no clue, but I simply guess that they work 12:31:03 const and volatile should only be compiled to the null string if they're completely broken 12:31:14 ais523, define completely broken 12:31:28 ais523, also not null string, that wouldn't work 12:31:30 null comment 12:31:31 would 12:31:36 or wait 12:31:41 what do you mean will null string 12:31:43 ""? 12:31:47 AnMaster: no, nothing 12:31:50 "" is two double quotes 12:31:54 just, as in #define volatile 12:32:11 ais523, another thing was that I had to define YY_NO_UNISTD_H=1 12:32:15 on command line 12:32:17 to make things work 12:32:20 well 12:32:23 and completely broken means that volatile int x; int * volatile y = (int* 0); return !x && !y; causes the compiler to error out 12:32:24 it still wanted isatty 12:32:31 so "work" is stretching it 12:32:39 ais523, oh and the macro for isatty didn't work 12:32:41 because 12:32:48 just before the function using it 12:32:49 there is an 12:32:54 "extern int isatty(int); 12:32:58 s/^"// 12:33:05 so I had to define a function for it 12:33:11 ah 12:33:29 ais523, which means fileno will get called. It seems macs *do* happen to have fileno 12:33:46 but fileno is not ANSI C 12:33:48 it is posix 12:33:54 hmm 12:34:01 we should have a test for fileno too in config.h, then 12:34:15 ais523, I have no system to verify that on, it is lacking it 12:34:23 ais523, oh on macs fileno() is a macro 12:34:24 in a header 12:34:26 not a function 12:34:34 it is just something like: 12:34:55 #define fileno(_f) ((_f)->fileno) 12:35:01 (forgot exact wording) 12:35:22 ais523, unless you explicitly requests a thread safe version, in which case it is a function 12:35:43 should still be checkable 12:36:28 The function one is in some non-standard library btw. Not that configure runs on old macs 12:39:13 * AnMaster notes -s to apt-get doesn't work with "update" 12:39:24 (it's silently ignored) 12:40:28 annoying thing about sheepshaver: it needs sysctl vm.mmap_min_addr=0 12:42:08 I don't think autoconf even attempts to support Mac OS 9 12:42:29 -!- Slereah_ has quit (Read error: 110 (Connection timed out)). 12:42:46 ais523, true. Still, the system headers even have #ifdefs to detect "Visual C++ for NT targeting Macintosh" 12:42:55 that is, those included with MPW 12:43:16 and egcs both running ported to an MPW tool and running on linux but cross compiling 12:44:25 ais523, I need some help with makefile here. Generic question I hope: 12:44:42 I need to set the file type of some files before compiling. Once done it doesn't need to be done again 12:44:49 how would one go about this 12:44:55 some sort of timestamp file? 12:45:02 I have seen that used sometimes, but I have never used it 12:45:16 AnMaster: timestamps are really difficult to get right 12:45:35 are those files generated, or in the distribution? 12:45:37 ais523, what about those h1-stamp or such sometimes seen in larger autotools projects? 12:45:43 ais523, in the dist 12:45:54 I can't compile them if they aren't set to be TEXT files 12:46:00 well, for some of them at least 12:46:34 hmm... is there any chance they might get set to non-TEXT by mistake? 12:46:36 ais523, syslib.* need to be set to be TEXT and have LF line endings before I can even try to generate CR versions 12:47:01 ais523, since this is stored in metadata it would be quite common yes 12:47:02 AnMaster: syslib.* should be corrected to LF in the distro 12:47:13 ais523, won't help. .3i means nothing to a mac 12:47:13 rather than by the build process 12:47:22 .i seems to happen to mean something it tries to convert 12:47:26 AnMaster: no, I mean syslib.3i shouldn't have been distributed with CRLF endings 12:47:26 basically 12:47:28 ah 12:47:32 .i means preprocessed C, normally 12:47:51 ais523, mac os 9 at least is smart enough to try to add file types when getting files from outside sources 12:47:53 why don't you just get the bit of code that runs tr to also set the metadata to TEXT first? 12:47:54 for common ones 12:48:05 ais523, hm maybe. 12:48:17 that makes a lot more sense than trying to set it iff it's not already set 12:48:32 especially if unsetting the filetype doesn't bump the last-modified timestamp 12:48:36 ais523, true. 12:48:50 you'd have to check every time anyway, so why not just set every time? 12:49:19 hm true 12:49:41 ais523, how does the CRLF get there to begin with 12:49:51 AnMaster: a mistake in the official tarball 12:49:52 that needs fixing 12:49:55 I mean, it is really hard to manage to get CRLF with most *nix editors 12:51:56 AnMaster: I was probably editing them when testing on DOS 12:52:02 either that, or they've been that way forever and nobody noticed 12:53:00 hm 12:53:21 * AnMaster wonders if there is any rule in MPW make for "the first source file of the explicit rule" 12:53:29 I can't do implicit here anyway 12:53:42 it is limited to simple suffixes, and they all have different 12:53:47 like .i .3i .4i 12:53:48 and so on 12:53:52 and it needs to begin with a dot 12:54:00 get an error about that otherwise 12:54:00 * ais523 dos2unix $(file $(pcregrep -rl "\r" .) | grep text | cut -d: -f1) 12:54:11 and incidentally wonders how hard that would have been to do without a CLI 12:55:03 ais523, it is odd that Translate complained with filename of file when I did: Translate ... < foo > bar 12:55:04 as in 12:55:09 it told me foo wasn't a text file 12:55:19 it makes me wonder what sort of mess the MPW shell is capable of 12:55:46 whoops, that accidentally converted inside the repo too 12:57:37 * ais523 fixes 12:58:27 ais523, btw does darcs really not version empty dirs? 12:58:40 because my make system is not yet capable of creating those itself 12:58:44 I will need to add that if so 12:59:47 I'm not sure if it versions empty dirs 12:59:50 it's easy enough to check, though 13:00:19 it versions empty dirs just fine 13:00:28 ais523, and there is still that about ick_numerals in both cesspool and numerals.... Hm Or aren't both supposed to be linked into libick? 13:01:15 AnMaster: it isn't defined in both 13:01:18 it's just defined in numerals 13:01:23 but numerals is #included into cesspool 13:01:24 ais523, then why the warning 13:01:29 ais523, ouch that hurts 13:01:37 clearly you're compiling and linking numerals, and shouldn't 13:01:52 well, I am 13:01:54 good catch 13:02:25 ais523, hm? 13:02:34 I'm just checking makefile.am atm 13:02:36 the makefile links both cesspool and numerals 13:02:49 ais523, yes I based it on Makefile.am 13:03:04 yes, that's an error in Makefile.am 13:03:31 ais523, the list of warnings at the end of http://sprunge.us/SCcB might be interesting (from most recent full build, I prefer incremental, because that way the damn emulator doesn't crash, I have to do full builds on a real mac) 13:04:00 I'm a bit surprised libyuk compiles 13:04:32 nothing wrong with those warnings right at the bottom, that while loop really does have no body 13:04:41 ais523, and those a bit above? 13:04:47 since I built those separately 13:04:49 looking at those now 13:05:32 not an issue, it's complaining that there isn't a return statement at the end of the function, but that point in the code's unreachable 13:06:34 ais523, I'm wondering why coopt stuff is even compiled at all, what with mac not supporting that 13:06:59 it can't run the final pass at the end 13:07:03 but it can still instrument the code for it 13:07:10 obviously, you wouldn't /want/ to if the instrumentation can't do anything 13:12:25 hm there is even a MakeDepend thingy, Needs to be updated manually it seems 13:14:48 heh, I was reading http://www.annexia.org/_file/jonesforth.s.txt 13:15:07 and noticed the "Secondly make sure TABS are set to 8 characters" 13:15:26 ofc, they are in Firefox by default 13:15:31 ais523, please see clogs logs when ehird responds to your opions on tab 13:15:39 ooh, that could be fun 13:15:43 before any further discussion 13:17:21 ehird (bouncing a conversation through the logs): oil.y is a whole program written in yacc 13:17:26 without even lex! 13:21:43 nice this thing uses a timestamp file for building folder structure 13:21:56 well, if it was good enough for one of the examples included with MPW.. 13:26:09 * ais523 vaguely wonders what'll happen if Plan 9 is ported to more than 9 architectures 13:30:47 hmm... ehird's strawmanning quite a bit in that log 13:30:55 probably because I wasn't there to explain what I actually meant, I don't think it was deliberate 13:31:11 ais523, you did manage a circular argument however. 13:31:18 not really 13:31:33 I have to agree with ehird's opinion here really 13:31:34 my argument was tab = 8 for historical reasons and because everything does that 13:31:39 therefore, they're too wide to be used for indentation 13:31:44 I don't think I argued that in the other direction 13:31:48 ais523, everything doesn't. There was plenty of examples against it 13:32:00 ais523, and you said that tabs being 4 was a pythonism 13:32:05 which was also wrong 13:32:07 anyway. 13:32:17 ais523: but you haven't provided any arguments for why it shouldn't be changed, except that you needed 8-sized tabs at work 13:32:45 oklofok: because changing when nobody else has just makes you look silly 13:32:52 unless you seriously think tables are useful 13:32:57 quite a lot of people have changed now, and they still all look silly 13:33:32 what do you mean look silly? 13:33:32 also, the thing about my data being 6 or 7 chars so I picked tab = 8 is wrong 13:33:40 I realised that that wouldn't work as it wouldn't give enough horizontal spacing 13:33:53 so I put three spaces before the output so as to push the ends of the data field past the next tabstop 13:33:56 and give me a bit more spacing 13:34:39 well whatever, it's clear you could've used a program for it 13:34:52 oklofok, yes unix even has one 13:34:56 col or something iirc? 13:35:05 hm no not that 13:35:06 AnMaster: highly surprising :P 13:35:08 there is one however 13:35:14 not col 13:36:44 this was output from a Perl script I had about an hour to write 13:37:28 in fact, it was what I wrote to replace the elisp CGI script that not only needed manual intervention, but had no reason to a) be a CGI script, or b) be written in elisp 13:39:33 ehird: I failed to port CLC-INTERCAL even to DJGPP, porting it to Mac is therefore likely to be even harder 13:39:39 old Mac, that is 13:40:58 AnMaster: I don't like indent=4 tab=9 13:41:02 *indent=4 tab=8 13:41:05 I prefer indent=2 tab=8 13:41:08 to save horizontal space 13:41:15 hahaha 13:41:19 indent=4 tab=8 is what ick uses, though 13:41:25 and always has done 13:41:29 ais523, uncommon.c uses indent=2 13:41:29 at least, for generated code 13:41:36 AnMaster: that's because I wrote it 13:41:37 well ok 13:41:48 in fact, you can see which bits of code I've edited 13:41:49 ais523, you said the thing about generated code after (at least on this side) 13:41:54 -!- FireFly has joined. 13:41:55 by looking where the indent is 2 and where the indent is 4 13:42:20 btw, normally I don't approve of mixing indentation styles within a project, but ick was doing it anyway and it's nice to let it be different from everything else like that 13:42:24 ais523, what if you edited just a few lines in a long function? did you change indention for those lines or the whole function or the whole file? 13:42:26 it's not like it makes it particularly harder to read 13:42:29 AnMaster: for the block 13:42:40 ais523, err as in inside { } for if? 13:42:42 yes 13:42:42 *shudder* 13:42:50 you can put an indent-2 block inside an indent-4 function just fine 13:42:52 ais523, one style per file at least 13:42:53 oh god 13:42:57 note that I don't advocate this as good practice at all 13:43:01 I advocate it as icky practice 13:43:14 and it's not something I'd do on any other project, unless it was similarly insane 13:44:13 (and in reference to the log: the DNA Maze indentation was, as you say, selected to annoy fans of all indentation styles equally) 13:44:41 Gregor: is HackEgo's qdb online anywhere/ 13:45:30 AnMaster: the reason for checking for any / in argv[0] is that if it doesn't have one, most systems would look for it in PATH, and if it does have one, it must be the true absolute or relative path 13:46:37 oh it was column 13:46:40 the command i mean 13:46:42 column -t 13:46:44 would be usefu 13:46:48 useful* 13:47:55 history mentions BSD4.3, not in POSIX 13:50:24 wow, I need to logread more often 13:51:40 also, 323-bit processors are a great idea 13:51:47 is 2^323-1 a Mersenne prime? 13:52:20 ais523, why? 13:53:00 AnMaster: because I vaguely want someone to make a processor which uses one's complement and for which the number of possible values in an int (i.e. UINT_MAX+1) is a prime number 13:53:22 also, where -0 is the normal zero, and +0 is a trap representation 13:54:17 anyway, going off to do some teaching, I'll be back in about 3 hours 13:55:06 ais523, do you do something strange with stdout in ick? I need to do printf debugging 13:55:16 * AnMaster remember some freopen stuff 13:55:21 ais523: I think http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/quotes/quote.db is online in the sense that it's current, but it's a binary sqlite3 file, so that's maybe not convenient always. 13:55:34 `ls 13:55:35 bin \ help.txt \ huh \ karma \ paste \ quotes \ share \ tmpdir.15984 13:55:40 `ls quotes/ 13:55:42 quote.db \ quotes.db 13:55:47 which one 13:55:49 ... 13:55:53 `ls -l quotes/ 13:55:54 No output. 13:56:00 `run ls -l quotes/ 13:56:01 total 16 \ -rw-r--r-- 1 5000 0 13312 Nov 16 13:56 quote.db \ -rw-r--r-- 1 5000 0 0 Nov 16 13:56 quotes.db 13:56:13 quote.db; I'm not sure what the empty quotes.db is. 13:56:26 `run du -bsh quotes/quote.db 13:56:27 13Kquotes/quote.db 13:56:35 `run sqlite3 quotes/quote.db VACUUM 13:56:36 No output. 13:56:37 `run du -bsh quotes/quote.db 13:56:38 13Kquotes/quote.db 13:56:40 hm 13:56:49 `run type sqlite3 13:56:50 sqlite3 is /usr/bin/sqlite3 13:57:31 Maybe he does some auto-vacuuming there. 13:57:42 Manually vacuuming the file I downloaded didn't change the size at all, at least. 14:03:27 by the way it seems MPW tries to auto detect indention. In uncommon.c it gave me tab and idention width of 2 14:03:37 but in a file with depth 4 it used that 14:09:16 -!- clog has joined. 14:09:16 -!- clog_ has joined. 14:14:10 ais523, well, my version now looks for when guessdir in uncommon.c is correct. Anyway the check for nix was wrong 14:14:18 it always checked on an ending null byte 14:14:44 (actually it didn't check, it just overwrote that null byte 14:14:45 ) 14:14:57 now I have 14:15:01 if (buf2[i] == '\0') { 14:15:01 if (buf2[i-1] != ICK_PATHSEP) 14:15:01 buf2[i++] = ICK_PATHSEP; 14:15:01 } else if (buf2[i] != ICK_PATHSEP) { 14:15:01 buf2[i++] = ICK_PATHSEP; 14:15:01 } 14:15:04 which seems to work 14:15:14 (because I'm not sure that always will be \0) 14:15:58 still the code working on argv seems broken to me 14:16:06 -!- augur has quit (Read error: 54 (Connection reset by peer)). 14:22:33 -!- clog has quit (Read error: 110 (Connection timed out)). 14:22:33 -!- clog_ has changed nick to clog. 14:43:17 ais523, I'm taking the freedom of adding a new env variable like CC for use on mac 14:43:25 and that would be something like LD 15:00:36 -!- MigoMipo has joined. 15:04:39 ais523, btw clock_gettime() is in libc.so on freebsd iirc 15:04:41 not librt 15:04:51 so that seems like a bug in your perpet.c 15:05:12 you have: 15:05:15 #ifdef HAVE_CLOCK_GETTIME /* implies -lrt is available */ 15:05:15 sourcefile, yukdebug||yukprofile?" -lyuk -lrt ":" ", 15:05:15 #else 15:05:15 sourcefile, yukdebug||yukprofile?" -lyuk ":" ", 15:05:15 #endif 15:11:58 ais523, I get build errors for sort.i 15:13:32 ais523, see http://sprunge.us/XCQY (note: probably CR line endings) 15:13:36 (in the paste I mean) 15:14:54 ais523, oh and the source differs slightly 15:16:53 ais523, here is the diff http://sprunge.us/QHgb?diff 15:18:27 oh it seems -c affects what is generated 15:18:28 great 15:18:41 well the difference is just in comments when both use -c 15:18:45 and it still doesn't compile 15:18:58 (I mean, top and bottom comments) 15:19:19 ais523, so either I hit a compiler bug[1] or I hit a compiler bug[2] 15:19:22 [1] In ick 15:19:27 [2] In MrC 15:40:09 -!- coppro has quit ("I am leaving. You are about to explode."). 16:24:18 -!- puzzlet has quit (Remote closed the connection). 16:24:30 -!- puzzlet has joined. 16:44:30 -!- augur has joined. 16:48:27 -!- oerjan has joined. 16:49:45 oerjan, iwc 16:49:56 darn that was close 16:50:10 i was just checking if you were idle 16:51:04 also, see: alcohol is good for you! ;D 16:52:47 -!- Slereah has joined. 16:56:45 -!- kar8nga has quit (Read error: 104 (Connection reset by peer)). 17:01:01 -!- FireFly has quit ("Later"). 17:06:51 AnMaster: details? 17:06:59 ais523, for what bit? 17:07:08 the compiler bug 17:07:17 ais523: 17:07:19 ais523, see http://sprunge.us/XCQY (note: probably CR line endings) 17:07:22 ais523, here is the diff http://sprunge.us/QHgb?diff 17:07:22 ah 17:07:38 and that diff turned out to be -c vs. not -c 17:07:51 so there is no actual difference and it doesn't work either way 17:08:30 AnMaster: as for your question about stdout, weird stuff happens to at least one of the stdio streams, but stderr should be fine to use 17:09:57 also, that "constant initialiser expected" error looks wrong 17:10:00 as in, the code looks right 17:10:09 in standard C, there's no reason why you can't initialise a variable to an expression 17:10:32 ais523, hm. 17:10:56 although I suppose we can work around that to help out broken compilers 17:11:05 (or just not use the -a option when compiling) 17:11:12 ais523, I didn't use -a 17:11:15 I only used: 17:11:19 -e then 17:11:20 -b -c 17:11:24 those were the only ones 17:11:25 hmm, strange 17:11:33 why is the JIC stuff being linked in then? 17:11:43 ais523, same happens on *nix though 17:11:54 maybe due to being based on 0.29 not current darcs? 17:12:10 no, that wouldn't do it 17:12:19 there must be some statement in a program that causes JIC mode to be turned on 17:12:27 but I'm not sure which it is offhand 17:12:29 ais523, pit/sort.i 17:13:20 ais523, I am able to get gcc to spit warnings about not being computable at load time. Possibly related? 17:13:22 sort.c: In function 'main': 17:13:22 sort.c:666: warning: initializer element is not computable at load time 17:13:22 sort.c:666: warning: initializer element is not computable at load time 17:13:22 sort.c:1419: warning: initializer element is not computable at load time 17:13:24 stuff like that 17:13:25 lots of it 17:13:30 definitely related 17:13:42 ais523, needs -ansi -pedantic though 17:13:57 and even then, it's not a standard violation 17:14:06 ais523, I noticed MrC sometimes got errors a few lines off 17:14:10 because -pedantic says "ISO C89 forbids" for those 17:14:19 happened on yacc/lex code at least 17:14:58 ais523, I'm also able to get icc to output warnings about something similar 17:15:06 sort.c(451): warning #589: transfer of control bypasses initialization of: 17:15:06 variable "icd" (declared at line 665) 17:15:06 variable "icd" (declared at line 1418) 17:15:06 variable "icd" (declared at line 1434) 17:15:07 oh, I see what's happening 17:15:07 like that 17:15:18 and so on 17:15:19 it prints rudimentary jic info for anything 17:15:26 ais523, eh? 17:15:30 but the more jic-requiring features are used, the more info it adds 17:15:39 what? 17:15:46 what is jic 17:15:56 just-in-case compilation 17:16:09 where it compiles syntax errors into table lookups just in case the statement is redefined later 17:17:43 ah 17:18:35 ais523, interesting. One of apple's debuggers refuses to run if a valid printer isn't selected in the printer chooser thing 17:18:38 thingy* 17:18:44 I have no idea why 17:18:57 heh 17:20:02 anyway now the emulator crashed again sig 17:20:04 sigh* 17:21:59 ais523, anyway, so that jic stuff. how to work around it (or whatever) 17:22:18 presumably, put placeholders into the array then copy the actual values over them 17:22:53 would be kind-of annoying to write, though 17:23:02 ais523, I'm not sure I actually understand what is going on in there. As in: what the heck it is complaining about 17:23:23 AnMaster: it's complaining about initialising a struct element to a value that isn't a constant 17:23:35 which is illegal for a static variable, but fine for an auto one 17:24:09 hm 17:24:40 "Compile-time initialization can only be done using constant expressions; run-time initialization can be done using any expression at all. The Old C restriction, that only simple variables (not arrays, structures or unions) could be initialized at run time, has been lifted." 17:24:56 in other words, once it was illegal... 17:25:40 if that is relevant to your problem 17:25:46 ah, that explains a lot 17:25:55 it must be quite a bit before C89, I imagine 17:25:55 (http://publications.gbdirect.co.uk/c_book/chapter6/initialization.html) 17:26:02 but that's no reason not to support it too 17:27:51 ais523, so that one applies to MrC it seems 17:27:58 unless there is some semi hidden option for it 17:30:08 okay saying -ansi on made it repot lots more errors... Like that the , operator is not allowed in constant expressions. I think it got seriously confused there 17:30:26 btw that book is also old, it's labeled as "only historic interest" 17:31:01 (from 1991) 17:32:25 "If you find the material useful and happen to encounter one of the authors, it is unlikely that they will refuse offers to buy them a drink. You may therefore like to consider this material .drinkware.. (Offer void where prohibited by law, in which case fawning and flattery may be substituted.)" :D 17:39:43 -!- augur has quit ("Leaving..."). 17:42:49 http://en.wikipedia.org/wiki/List_of_deleted_pages 17:43:55 facsimile: well naturally that wouldn't be in the main namespace if it existed 17:45:40 ais523, codewarrior's compiler complained just as loudly about that btw 17:46:23 (that's "the other mac compiler" basically) 17:47:20 facsimile: you are also failing at a meta-joke, because it hasn't even been deleted ;D 17:47:37 http://en.wikipedia.org/wiki/Humph 17:48:48 the list does exist, it's at http://en.wikipedia.org/wiki/Special:Search?go=Go&search=Special:Undelete 17:48:51 but it's only viewable to admins 17:48:54 and too long to really be useful 17:49:59 ais523: um, there is also http://en.wikipedia.org/w/index.php?title=Special%3ALog&type=delete&user=&page=&year=&month=-1&tagfilter= 17:50:12 ais523, codewarrior also dislikes some newlines in strings 17:50:12 like 17:50:33 oerjan: that's a list of deletions, not a list of deleted apges 17:50:35 *pages 17:50:48 ick_createdata icd[]={ 17:50:48 {32,0,0,{0,0},(ick_lose(IE000, ick_lineno, "PLEASE NOTE END OF CODE FOR .2 = #1\n\ 17:50:48 "),0)}, 17:50:48 {16, 0, 0, {NULL, NULL}, 0} 17:50:48 }; 17:50:49 it seems 17:50:54 well it complains about the line 17:50:57 oh well, nearly the same thing ;) 17:50:58 doesn't say where exactly 17:51:04 anyway 17:51:08 it dislikes that a LOT 17:51:22 AnMaster: backslash-newline should be deleted by the preprocessor before the compiler even sees the code 17:51:31 if it isn't, at this rate we're going to need a custom preprocessor 17:51:41 ais523, yeah so I guess it is the same thing as not constant 17:51:52 it just said "illegal constant initialiser" 17:51:59 and pointed to the line with ick_lose 17:52:06 well with z 17:52:12 (initializer) 17:52:18 oi autoconf, you're supposed to sort all this stuff out by magic! 17:52:27 ais523, this one too? 17:52:55 no, I was making a general statement 17:53:03 I don't believe it's ever claimed to be able to magically fix generated code 17:53:12 ais523, anyway why is there such a strange newline in that? 17:53:14 I wonder if it would reject stock Mac cpp as broken? 17:53:24 AnMaster: because there was a newline in the original source 17:53:25 it seems completely pointless 17:53:36 and you have to print a syntax error verbatim if it would run 17:53:39 ais523, ok. Anyway it doesn't seem to be preprocessor related 17:53:48 making it on one line still gives the error 17:53:56 err, how did you change that to one line? 17:53:58 just now it points to the right place of the line, 17:54:07 it should be "\tPLEASE NOTE END OF CODE FOR .2 + #1\n" on one line 17:54:09 ais523, backspace to remove the embedded newline 17:54:10 ... 17:54:14 well, with a literal tab rather than \t 17:54:29 ais523, then saved the .c I just edited 17:54:33 AnMaster: backslash-newline is equivalent to the null string 17:54:34 then tried to compile again 17:54:38 did you remove the final backslash? 17:55:00 ais523, well yes. the issue again is the same as with the not constant initialiser above 17:55:01 same issue 17:55:08 just different exact circumstances 17:55:18 see the ick_lose call embedded there 17:55:28 removing the call fixes it for that one 17:55:31 go figure 17:55:36 ah 17:55:51 I see, the issue isn't the backslash-newline, it's the function call in an initialiser 17:55:57 yes 17:56:17 ais523, just codewarrior sucks at telling you where exactly the error happened. in that it is worse than gcc even 17:56:39 while MPW is rather good at it (just getting the line number wrong a bit sometimes) 17:57:23 ais523, btw why does yuk require that it is run directly from ick? 17:57:32 it means it won't work on mac 17:57:37 otherwise I think it could in theory 17:57:39 AnMaster: copyright reasons 17:57:46 oh right, remember now 17:57:51 you can't go around linking GPL code with non-GPL code and leaving it lying around on someone else's hard disk 17:58:10 ais523, so you overwrite the file with zeros once the debugging is done? ;P 17:58:37 no 17:58:52 do you overwrite your browser cache with zeros as soon as you stop looking at the page? 17:58:57 ais523, remember also that there are some filesystems that don't overwrite data ever, rather they try to keep the history 17:58:59 I think there's probably some sort of fair use argument involved 17:59:04 and you can go back to any instant 17:59:22 (until you reach the end of the circular buffer that the whole fs is basically) 17:59:37 (in which case iirc you have to decide what to keep) 18:03:02 -!- kar8nga has joined. 18:53:21 -!- MigoMipo has quit ("When two people dream the same dream, it ceases to be an illusion. KVIrc 3.4.2 Shiny http://www.kvirc.net"). 18:55:53 -!- MigoMipo has joined. 19:25:59 AnMaster: how do you send SIGINT to an MPW application? 19:26:02 if it's possible at all? 19:27:54 ais523, not that I know of 19:27:54 why? 19:28:01 ais523, and I got some stuff to build as SIOW 19:28:05 oh, I was reading through the docs 19:28:16 ais523, what docs. I need docs 19:28:23 AnMaster: the C-INTERCAL docs 19:28:35 oh 19:28:37 and I noticed they talked about C-c (UNIX/Linux) and C-BREAK (Windows/DOS) 19:28:45 and was wondering what the Mac equivalent was 19:28:57 ais523, well I doubt that is possible at all on classic mac 19:29:21 ah 19:29:33 for OS X, it would be control-C (not command-C), right? 19:29:46 ais523, ask ehird not me 19:29:52 and on os x you wouldn't need MPW 19:29:58 yes, I know 19:30:01 heck cfunge builds on os x 19:30:02 it was a mildly unrelated question 19:33:03 ais523, atm this diff "works for me" in uncommon.c http://sprunge.us/YSeQ Until you have a patch for proper doing this in config.h that is what I use 19:33:19 also that only fixes the case of guessdir being correct 19:34:02 ais523, I suggest you read the changes in it however. 19:34:14 anyway my perpet.c changes I guess I need to pastebin 19:35:04 ais523, which is currently this: http://sprunge.us/WGSL 19:35:15 very much work in progress 19:35:39 (I'm not sure getenv even has a sensible meaning in MPW... 19:35:42 ) 19:35:55 (probably it gets vars set in the mpw shell or such) 19:36:45 oh and I should merge the SIOW stuff into that 19:37:47 ais523, other downside with tabs btw: when diff adds the +/- in front they look wrong if used for alignment like you did in some cases 19:38:01 (still works for indention levels, just not for adjustment) 19:38:24 diff has an option to add tabs always after + / - for that reason, although I don't use it 19:38:40 ais523, that seems it would break patch? 19:38:52 I'm not sure, patch can be weirdly tolerant 19:38:55 but probably just for human reading 19:39:01 diff isn't always used with patch 19:41:40 ais523, anyway, any comments on the changes in those files? 19:41:52 not yet, I haven't read them thoroughly 19:42:04 the build system is still somewhat insane, no clean target. and I use ::src: as ICKINCLUDEDIR atm 19:42:16 really, the find_and_fopen stuff needs a rewrite 19:48:39 -!- ehird has joined. 20:20:03 "Thank you for signing up to give us early feedback on Google Wave. We're happy to give you access to Google Wave and are enlisting your help to improve the product." 20:20:06 one issue; i already have it 20:32:46 ehird, google wave? 20:32:56 I assume it is still in beta. but what is it 20:32:59 Your eyes are not deceiving you? 20:33:08 And just google for it, I can't be arsed to explain. 20:33:13 Not that any of the explanations are any good. 20:35:50 oh not even beta 20:35:53 just "limited preview" 20:38:09 http://wave.google.com/help/wave/images/meeting_notes.jpg <-- haha, how macabre if you read the list at the end 20:38:44 ERADICATE 20:39:20 ehird, the stuff above is quite nasty too 20:39:35 (conidering jimmy might be the source of that smell at the end!) 20:41:12 wow, proggit is intermittently erroring 20:41:42 "An error occurred while processing your request. Reference #97.a6a99d50.1258404091.0" 20:42:06 (that was retyped, because I left my mouse at home, and while mice are bad for some things they're excellent for web browsing, including copying info out of a web browser 20:42:08 proggit is written in python 20:42:55 pointing that out can only be leading to a troll 20:42:59 ('python code is unstable, hurr') 20:43:08 meh, you can write unstable code in any language 20:43:15 except Subtle Cough, which isn't powerful enough 20:43:20 and possibly a few of the other esolangs 20:43:35 ehird, hey read the comments ais made on your reply to his tab rant! 20:43:37 it's funny 20:43:49 you could have a real nice flamewar right now 20:43:52 AnMaster: but I'm not angry right now and i do not want to be angry 20:44:14 fair enough 20:44:17 ehird there is no action when you do it when the other person left 20:44:20 oh, I'm reading it anyway 20:44:22 also lets make you angry 20:44:26 it's not the sort of argument that can easily be had by bouncing comments off logs 20:44:35 especially as both people end up taking each other out of context because logs do that 20:44:40 but I won't bother replying to any arguments ais523 makes when i say my responses, unless the ones I logread are logical 20:44:47 which, based on strong historical precedence, they won't be 20:44:48 ehird, "haskell sucks and go's installer sucks and you are young and stupid" <-- angry now? 20:44:56 AnMaster: not yet! 20:44:57 Use the anger. 20:46:27 HULK SMASH 20:46:32 Haskell does not suck. It is 'The perfect advanced programming language for the productive factorial developer' 20:46:34 ehird, what? 20:46:46 that was a star wars reference, not a hulk one. 20:46:46 AnMaster: a reference you probably don't get 20:46:47 with every down arrow i press on this log, I dread more and more I will hit idiocy 20:46:50 but it's what angry people don't 20:46:54 (that I made) 20:47:05 ehird: some of it's idiotic, some is simple corrections, some of it may even be reasonable 20:47:21 I agree with the first part at least, preëmptively. 20:47:28 Haskell does not suck. It is 'The perfect advanced programming language for the productive factorial developer' <-- I was joking... 20:47:36 so was he 20:47:43 AnMaster, -_- 20:47:56 04:54:00 * ais523 dos2unix $(file $(pcregrep -rl "\r" .) | grep text | cut -d: -f1) 20:47:56 04:54:11 and incidentally wonders how hard that would have been to do without a CLI 20:47:56 […] 20:47:56 ehird, oh good point 20:47:56 04:55:46 whoops, that accidentally converted inside the repo too 20:47:57 just drag the repo dir to the Shoot Self in Foot application 20:48:16 ehird: luckily darcs stores the patch infos as binaries 20:48:25 and can reconstruct the entire repo from them in about a minute 20:48:37 besides, I still had the list of files in scrollback, I could just have reversed the change directly 20:48:37 05:26:09 * ais523 vaguely wonders what'll happen if Plan 9 is ported to more than 9 architectures 20:48:37 they use alphabetical chars already 20:48:38 ais523, what command is it? 20:48:41 though they only have 0-8 20:48:56 AnMaster: the first one ehird quoted directly above 20:49:09 the one to convert CRLF to LF recursively in a directory, while avoiding binary files 20:49:29 come to think of it, I should probably have checked whether "text" was in the filename or not, but I'd already looked at the file list to change and that wasn't a problem 20:49:32 ehird, what if it had been ported to more than the size of the alphabet plus 10? 20:49:42 maybe !c 20:49:42 kind-of weird I didn't notice the files in the repo when I reviewed the list... 20:49:45 AnMaster: 36 architectures? go onto capitals 20:49:47 62 compilers 20:49:53 after 62 architectures, congratulate yourself and retire 20:49:57 hah 20:50:46 Now if you want to reply do it slowly and completely because I'm not interested in a flamewar. 20:50:46 05:31:34 my argument was tab = 8 for historical reasons and because everything does that 20:50:46 A good start, at least. My argument was that no, the historical reasons aren't that: it's "insert spaces until the current position is a multiple of 8". Not the same thing, and it incidentally makes it a bitch for alignment that way, which nicely defeats some of your other arguments. And everything doesn't do that; you say it does, but dismiss all counterexamples as being irrelevant because they're just because the world is broken or something. This is irrati 20:51:00 ehird: I'm aware that tabs move to a multiple 20:51:00 *irrational. 20:51:05 I'd mentioned it last time, with the tables 20:51:11 plz, one line replies 20:51:15 otherwise this'll degenerate into a flamewaar 20:51:17 *flamewar 20:51:24 (↑ i have tested this theory quite a few times) 20:51:31 tab = 8 is shorthand for "tabs move to a multiple of 8", just like tab = 4 is shorthand for "tabs move to a multiple of 4", there that's one line 20:53:24 AnMaster mine was a joke too 20:53:25 Yes, but it makes alignment awkward with such multiple-tabs, which eliminates those of your arguments predicated on easy alignment with tabs. 20:53:37 ais523: Can I diverge from the topic of whether "tabs" SHOULD be 8? 20:53:48 ais523: I'd like to have a related, short debate so I can figure out exactly what argument we're having. 20:53:50 yes, that's fine 20:53:54 facsimile, mhm 20:54:03 possibly it's because I haven't had a good flamewar in ages and was deliberately being provocative 20:54:04 did you not get it? 20:54:32 so was he 20:54:32 AnMaster, -_- 20:54:32 04:54:00 * ais523 dos2unix $(file $(pcregrep -rl "\r" .) | grep text | cut -d: -f1) 20:54:32 ehird, oh good point 20:54:40 facsimile, your reply to it was a bit late 20:54:47 now that bit of code's going to end up posted all over the Internet... 20:54:49 facsimile, and yes I was too tried to get it 20:54:54 now I need to sleep very soon 20:55:00 AnMaster: it is very basic try again 20:56:29 ais523: Let's pretend the "tabs" in my world are called floobs. A floob, in code, represents one level of indentation; no visual aspect is implied. The normal user will set one floob to display as N spaces; this way, code can be as compact or as dense as their preference. Obviously, we should use spaces, which are the width of one normal character, for alignment in such a system. We can, in fact, use floobs past the start of the line. For instance (note: plea 20:56:29 don't align comments like this, it's evil) (.=space) 20:56:29 foo().{ 20:56:30 bar;//.abc,.def 20:56:33 //.ghi: 20:56:35 //.code; 20:56:37 //.blah 20:56:39 } 20:56:41 *please 20:56:48 ais523: We can see that no matter how many spaces we display floob as, everything aligns and indents properly. 20:57:15 ais523: Completely independent from the issue of what a tab should be; do you agree that this system is nice and provides good benefits while still being clear-cut, simple and allowing alignment? 20:57:22 A floob is one level of indentation, a space is used for alignment. 20:57:59 ehird: I'd be happy for a character like that to be added to a Unicode; I just don't think it's the same character as tab. Also, you'd have to add support for it to a lot of applications (i.e. configurable width; most won't do that by default), and you'll have to correct the 99% of programmers who ignore the guidelines and just use whatever lines up on their screen 20:58:08 ais523: Please let us ignore the character tab. 20:58:28 ais523: Which makes 90% of your comment irrelevant. This is a *separate* thing. Could you reply again to floobs, ignoring compatibility and tabs? 20:59:02 I suppose that writing all those floobs out would be a bit repetitive in such a case; why not have increase-indent and decrease-indent characters instead, which more closely conveys the semantics of what you're trying to do, and have them render as variable width like above? 20:59:28 ais523: Because that wouldn't be a regular character. Anyway, I am not denying that there are better systems. 20:59:41 ais523: However, do you agree that the advantages of this system over using a fixed number of spaces for indentation are clear? 21:00:11 You can easily backspace and insert indentations without editor hacks, it's easy to adjust code for the situation, it's easy to adjust for your personal preference, it saves bytes, and fundamentally it's just more semantic. 21:00:18 We have indents being indents instead of the "inlined" spaces, so to speak. 21:00:28 I agree there are advantages; there are also a couple of disadvantages (mostly, the difficulty of enforcing it), and it doesn't allow block-indentation easily (but then neither does spaces to indent) 21:00:44 ais523: Please define block-indentation. 21:01:37 ehird: if you want to put a new if { } around your code (say in C; generalise to other languages as necessary), you have to reindent everything inside the block, which is a real pain to do in an editor not designed for that sort of thing 21:01:58 Ah. Well, of course, that is up to the editor. 21:02:17 ais523: Anyway, so we agree that floob is a good thing (maybe not a perfect thing, but a good thing, and definitely good for indentation). 21:02:30 ais523: Please let me type another line. 21:02:36 I just did 21:03:51 ais523: To reply to your first response: Let us assume (please do not jump beyond what I say just yet) that floob actually exists. Even if most programs could only display floobs as a fixed number of spaces, this is not too much of a big deal (assuming the amount of spaces isn't totally created). The programs that can do it can do it, and the rest still work. Let us assume this world exists; do you agree that floobs would still be a good thing? 21:04:41 -!- Rugxulo has joined. 21:04:44 no, because people with nonfloobified editors would try to edit floobish files and cause a huge mess which was partly floobed and partly nonfloobed 21:05:30 Rugxulo: pong? 21:05:46 facsimile: did you answer? where did you get your nick 21:05:52 ? 21:05:53 Deewiant: just wondering if you were here ... did you see my Befunge program to detect version (year)? 21:05:58 I just chose it 21:06:01 (I take it that facsimile != faxathia?) 21:06:06 == 21:06:11 ah 21:06:46 Rugxulo: Nope, haven't been following today's goings-on 21:06:49 i see too, but a different thing 21:06:56 ais523: Let us assume that there is a single, obvious keystroke to insert a floob, and all editors handle them as single characters displayed as N spaces; quite a high number, more than "most people" would use, so it is quite recognisable. Let us also assume that there are convenient reindentation programs available to fix the mistakes, and also that people unaccustomed to code formats already mess up with space indentation, using different widths (or even fl 21:06:56 Do you agree now that floob would still be a good thing? 21:07:05 *or even floobs!). 21:07:06 Deewiant: it was like two days ago 21:07:20 Well, I haven't been following this channel much at all lately :-P 21:07:39 k 21:07:40 yeah Deewiant thinks we're idiots 21:08:03 o_O 21:08:03 (i saw him say once!) 21:08:08 *that 21:08:29 although it was partly due to us being idiots 21:09:34 ehird: assuming you could do something about Python and other similar languages (which cannot be automatically reindented), and that keystroke actually inserted a floob most of the time rather than being rebound to something else by editors that assumed nobody would want to type them, now it's starting to be a bit more reasonable 21:09:38 I think #esoteric is the wrong place to call anybody idiot / genius, we're just "weird" ;-) 21:10:13 ais523: Well, let's just assume the reindentation program changed the right number of spaces at the start of a line (for a configurable amount) to floobs; that would work even on Python. 21:10:22 ais523: More reasonable? 21:11:22 someone want to define "floob" for me? 21:11:22 slightly more, although you still aren't solving the problem of what happens if the Python code's passed between two incompetent developers with different floobwidths before anyone thinks to reindent, which probably would happen far too often 21:11:56 Rugxulo: a hypothetical character which is similar to, say, left-tab from Word (and which is not really the same as tab from ASCII) 21:12:15 please 21:12:18 let's not bring tab into this at all 21:12:22 Rugxulo: ignore us 21:12:24 we are having a trivial debate 21:12:33 why not? Tab is tasty ;-) 21:12:39 Rugxulo: please go away. thx 21:12:44 ;-) 21:12:48 ;-) 21:12:51 ais523: the more you say things about its relation tab, the more you lock in your current definition, making it impossible for me to try and convince you otherwise; in which case why should i bother debating? 21:12:52 *relation to 21:13:24 ehird: I was trying to define for Rugxulo; and this conversation is useful, it's likely to identify the boundaries between a floob and a tab, at least 21:13:29 maybe we should found #esoteric-tab for this stuff? 21:13:50 ais523: my job is to convince you that they don't exist, if you casually explain that the boundary exists, even if this is your current opinion, this definitely does make my job harder 21:14:33 #flooby-wooby-funtime 21:15:35 ais523: so, anyway 21:16:05 ais523: the incompetent's floobwidth difference; sure, but it turns out that code written by such people tends to be of low quality anyway 21:16:12 hey does the name "tab" come from "table" btw? 21:16:16 oklofok: yes 21:16:17 oh wait 21:16:20 as in, i very much doubt that went through such a situation, 21:16:22 would come out better than before 21:16:24 well, "tabulation", which is related to "table" 21:16:27 ais523: can we agree on that? 21:16:30 tabula rasa 21:16:35 yeah 21:17:00 ehird: I think I can agree with you personally, but I think the majority of businesses would incorrectly disagree, and they tend to have quite a large influence 21:17:31 ais523: let us assume that in this world people vehemently disagree about floobs vs spaces, do different things, and the world goes on anyway. :-P 21:18:35 ais523: ok? 21:18:43 this is getting somewhere, i swear 21:18:50 ais523: so, how reasonable now? 21:19:31 ehird: you're asking me to make a lot of assumptions; and in a world where there was vehement disagreement, I'd imagine that using either would be frowned upon depending on who your coworkers were, meaning that the choice would be made for you 21:19:43 ais523: let's assume the project is non-corporate. 21:20:09 ais523: and i'm asking you to make assumptions to show that floobs are good in such a world, then deconstruct that world to try and convince you of its identicality (or closeness) to the real world 21:20:55 ehird: there are a huge number of assumptions already; the editor one seems rather unlike the real world already (what does pressing tab do in a form field of a browser, for instance?) 21:21:00 ais523: irrelevant 21:21:02 please, that's for later 21:21:06 i can't have two arguments at once 21:21:13 ehird: not really, it's in the list of assumptions you've already asked me to make 21:21:18 no 21:21:20 about a fake world 21:21:29 its relation to the real world is not being discussed now 21:21:31 ais523: anyway, do you agree that in such a world, floobs are preferable to spaces for indentation? for projects you have control over. 21:22:03 ehird: if I have a floobified editor, yes, I think so 21:22:24 ais523: even if others who may want to contribute don't? since they'll just see it as 8 spaces, and still know they're floobs 21:22:38 (with perhaps a quick command to turn their mistakes into floobs required) 21:23:26 ehird: you already asked me to assume that floobs rendered reasonably on the majority of editors; I don't consider 8 spaces reasonable for languages that tend to indent heavilly 21:24:01 it may not be ideal, but it's certainly workable 21:24:06 heck, i can almost code with ed 21:24:14 anyway, let us assume that the majority of coders do not have screens as tiny as yours. :-P (note: this is true in both worlds) 21:24:26 by assume i'm really just stating axioms about the world 21:24:47 ehird: not quite true; my screen's relatively large, and as a result I like to fit two files side by side. It comes to about 166 characters wide, which neatly fits two 80-column files side by side 21:24:53 relatively large? 21:24:56 dude. 21:24:57 no. 21:25:09 the only computers with screens lower-res than yours are shitty, shitty netbooks 21:25:11 and they're not much lower 21:25:17 ehird: 1280x800? 1024x768 is the usual resolution, AFAIR 21:25:24 AnMaster: 21:25:28 [21:25] ais523: ehird: 1280x800? 1024x768 is the usual resolution, AFAIR 21:25:30 AnMaster: behold 21:25:39 ais523: I won't even get into most people, but definitely not for coders. 21:25:46 Definitely, definitely, supremely doubly-absolutely not. 21:25:53 also, I thought you set your font size to about twice what I set mine to, so there's probably more columns on my screen than on yours with typical settings 21:26:16 How many columns do you get? 21:26:37 226 with some padding at the left and right (something like slightly below 20px) 21:26:38 for me 21:26:44 in the font i use for code 21:26:52 ah, 166 at about 9px; wow how big is your screen?! 21:26:59 1680x1050 21:27:09 the "normal" iMac res until the latest update 21:27:13 you must measure fonts in a completely different unit to me, then 21:27:21 as those numbers just don't match up with each other 21:27:26 [21:25] ais523: ehird: 1280x800? 1024x768 is the usual resolution, AFAIR <-- *blink* 21:27:31 12pt at ~100ppi 21:27:37 I even run sheepshaver at 1280x800 21:27:39 well 21:27:41 actually not 21:27:43 = ~16px 21:27:52 1200x820 21:27:54 even 21:27:57 ais523: it doesn't look big to me, though 21:27:59 is what I use for sheepshaaver 21:28:05 ais523: it looks like regular english text 21:28:10 1280x800 is a good screen res for embedding 1024x768 VMs and still having room for window decoration, if you hide the panels 21:28:23 fuck 21:28:39 floob 21:28:45 -!- ehird has left (?). 21:28:47 -!- ehird has joined. 21:28:49 funge 21:29:02 rugxglo: shut up; irc client: fuck you 21:29:03 -!- ehird has quit. 21:29:04 ehird: that was a weird reaction... 21:29:04 "Funge you, floob!" 21:29:13 -!- ehird has joined. 21:29:14 *rugxulo 21:29:19 -!- ehird has quit (Remote closed the connection). 21:29:19 ehird: what's up with your client? 21:29:34 -!- ehird has joined. 21:29:39 anyway 21:29:42 hm 21:29:44 ehird: what's up with your client? 21:29:51 ais523: I can assure you that programmers use a bigger resolution than yours. 21:29:54 Almost all. 21:29:55 1680x1050 is a typical desktop res 21:29:56 ... 21:30:01 Or at least almost all that matter. 21:30:03 a laptop res is often a bit smaller 21:30:08 ehird: 1024 x 768 is the desktop screen here, when it's been cable-hacked to actually show anything 21:30:09 AnMaster: 1280x1024 used to be rather typical 21:30:15 ehird, *used to* yes 21:30:16 but 1024x768 is just ridiculous 21:30:17 hey 21:30:23 ais523: PROGRAMMERS ARE NOT NORMAL PEOPLE 21:30:24 my ibook is 800x600 21:30:27 that used to be normal too 21:30:29 just in case you didn't notice... 21:30:35 ehird: this is in a CS department, the computers are standard dual-boot Windows/Linux 21:30:41 " ehird: 1024 x 768 is the desktop screen here, when it's been cable-hacked to actually show anything" <-- cable hacked? 21:30:43 it's designed for programmers 21:30:52 ais523: they're set up by an incompetent bureauocracy 21:30:59 *bureaucracy 21:31:07 AnMaster: there's something wrong with the video driver, the officially-mandated fix is to swap to a crappier cable that puts fewer demands on it, or something 21:31:13 ais523: on a tiny budget 21:31:27 ais523, cable to the monitor? huh 21:31:31 which is about as stupid as Ubuntu permanently blacklisting the pc speaker kernel module to stop the beeping on shutdown 21:31:33 ais523, on your laptop? 21:31:38 AnMaster: on the desktop 21:31:41 ais523: anyway 21:31:45 ais523, wow now that is madness 21:31:51 ais523: I'll just say that – since I'm bored — 21:32:01 ais523, anyway 1024 x 768 can't be a desktop these days 21:32:10 that's even less than what I had 5 years ago 21:32:14 * Rugxulo is 1024x768 now 21:32:19 5 years ago I had 1280x1024 21:32:31 "old" 2002 PC, though 21:32:32 I'm still shocked that modern computers can't all be down-ressed to 640x480 21:32:42 actually hm 21:32:46 1024x768 has a distinctly old-fashioned feel to it nowadays, yes. Especially since laptops went so widescreeny; the iBook is 1024x768. 21:32:49 it might have been 6 years ago 21:32:49 how am I going to ensure portability now? use 320x240, which /does/ seem to work on all computers? 21:32:53 that 1280x1024 21:33:02 320x240? isn't that modex? 21:33:09 Rugxulo: yes 21:33:18 I'm still shocked that modern computers can't all be down-ressed to 640x480 <-- that would be required for boot right? 21:33:28 ais523, anyway, why do you need such a low resolution at all 21:33:34 AnMaster: err, no, computers can boot in other resolutions nowadays 21:33:35 just use the native res of your TFT 21:33:41 ais523, well, normal PCs don't 21:33:44 in my experience 21:33:50 sure 21:33:51 macs do 21:33:53 but while I was growing up, if you wanted to write a full-screen program at a fixed res, you'd make it 640x480 because you knew everyone could set their screen to that 21:33:54 but that's macs 21:33:57 ais523: the fake world I showed is pretty close to the real world. Sure, it's more crufty... and it doesn't work perfectly... but there is wide support for adjustable tabs, and if you use them right it isn't such a big deal. I think that, based on the goodness of flubs, and the relative closeness of the fake world to the real (especially since people who'd contribute to the kind of projects that ours are tend to be intelligent people who care about this sort 21:33:57 stuff) using tabs (flubs) when the community around a language isn't against it is a good idea. (so pretty much C and Go). The only real reason not to is an irrational devotion to historical reasons. Are you an extreme conservative? If not, join us. 21:34:05 ais523, you don't write apps that require a fixed res 21:34:07 *sort of stuff 21:34:13 because that breaks windowed mode badly 21:34:14 (this is back when Windows was the only PC OS anyone had heard of outside programming circles) 21:34:17 really 21:34:30 AnMaster: I used to 21:34:32 any app wanting fixed resolution for either the screen or it's window 21:34:33 is BROKEN 21:34:38 I was younger and less good at programming then 21:34:55 in fact, when I was younger I used to poke around in memory to turn caps lock on 21:35:00 rather than just use toupper on input 21:35:08 ais523, I would use xset led 21:35:12 ais523, *shudder* 21:35:18 Look at me I'm a unix elitist blah blah blah feel bad. 21:35:19 yawn 21:35:27 it was a while before I learnt good programming practice 21:35:28 ais523: you should reply to my comment with a total dismissal so i can get onto flaming 21:35:33 and I learnt about portability the hard way 21:35:36 ehird, actually I have progamatically set it from Delphi once 21:35:45 that doesn't make me a unix elitist 21:36:10 yeah, he's a Linux 64-bit elitist, get it right ;-) 21:36:24 ehird, floobs* 21:36:28 ehird: oh, I got distracted; and if you want a flamy answer, then if we're going to replace the traditional indentation styles, we may as well introduce indent and dedent characters, which actually solve most of these problems 21:36:30 ehird, you wrote "flubs" 21:36:35 It's not that trivial to make heavily-prettified-by-a-proliferation-of-manually-painted-bitmaps based "user interfaces" that are resolution-independent; quite a lot of games have difficulties running in resolutions they haven't anticipated. 21:36:36 (above) 21:36:39 AnMaster: I'll floob YOUR MOM. 21:36:41 ais523: heh 21:36:43 also, I'm surprised you didn't start a second flamewar about Go there 21:36:44 ehird, hah 21:36:51 ais523: at least, maybe, you're more accepting of those who use tabs 21:36:55 I don't know enough about Go to really have an opinion 21:37:04 * Rugxulo bets AnMaster's mom ain't that old 21:37:07 which is good enough for me; I don't really care what you use as long as you understand why I use tabs 21:37:12 ehird: yes, now I think it's based on a deluded view of reality rather than just stupidity 21:37:17 or maybe, an excessively idealistic one 21:37:32 ais523: you're welcome to rebut, but somehow I doubt you're interested. 21:37:36 Rugxulo, oh? define 1) "that old" and 2) amount of money you bet 21:37:55 ais523: anyway, my personal experience with c and go is that using tabs has NEVER caused a single problem, ever. 21:38:00 < 50 ? 21:38:02 I believe this would be AnMaster's experience, too. (but only for C) 21:38:06 ehird: despite not knowing much about Go, if you're in a mood for a flamewar I can come up with some specious strawmanny arguments against it if you like so you can knock them down 21:38:06 (well, maybe bash too) 21:38:17 ais523: That would be fun and less upsetting than formatting discussions. 21:38:24 btw, what would you suggest I use for indentation in a Makefile? 21:38:32 ais523: Tabs, for... quite obvious reasons. 21:38:34 Being that it'll break otherwise. 21:38:42 no, I mean beyond the first level 21:38:46 * ehird cd $GOROOT; hg pull && make install 21:38:57 ais523: Don't have such complex makefiles :P (But tabs) 21:39:13 *hg pull && hg update && make install 21:39:21 *&& cd src && make install 21:39:24 I was reading some Forth today (by another ardent tab=8 devotee), it was indented using tabs and it worked 21:39:28 ehird, tabs worked fine for me with C, C#, Erlang, Bash, Delphi, AppleScript, Python[1] and several other languages. Only language I had issues with it was LISP. 21:39:30 I think indentation styles depend on the language a lot 21:39:32 [1] Yeah I know, and I don't care. 21:39:38 s/make install/./all.bash/ 21:39:39 i am fail 21:39:49 ehird: s////? 21:40:00 Rugxulo, and amount of money? 21:40:01 AnMaster: with python i believe tabs are illegal in py3k 21:40:04 I have no idea how to evaluate that operator 21:40:07 it really isn't good to go against convention so much 21:40:11 ais523: escape second 21:40:18 ehird, hm no, just mixing them is 21:40:23 AnMaster: no, that's in 2 21:40:24 iirc 21:40:41 I thought in 2 it wasn't illegal, just horribly horribly warny 21:40:42 the nice thing about go is that gofmt(1) is totally awesome about indenting code. 21:40:49 and everybody runs it on their code 21:40:57 ais523, pretty sure that is so 21:40:57 AnMaster: I don't know, what's the kroner (sp?) to dollar amount these days? 21:40:59 in fact the official repo mandates running it before submitting a patch, programmatically 21:41:10 I like languages which can be easily reindented 21:41:11 Rugxulo, "kronor" 21:41:23 Rugxulo, google says: 21:41:26 1 U.S. dollar = 6.79698758 Swedish kronor 21:41:32 (incidentally, is it related that I have a horrible habit of annoying people by leaving out semicolons when I write Lua? It was a while before I even realised they were legal) 21:41:33 ais523: come on, go strawmen! 21:41:46 also, lua is meant to be written without semicolons 21:41:52 said people are retards 21:41:53 ehird: as in, x = 1 y = 1 21:41:58 oh, ugh 21:42:00 add some newlines 21:42:06 -!- MigoMipo has quit ("When two people dream the same dream, it ceases to be an illusion. KVIrc 3.4.2 Shiny http://www.kvirc.net"). 21:42:16 incidentally, I use 4-space indentation for lua 21:42:21 so that end end end end stacks up neatly 21:42:26 "When two people dream the same dream, it ceases to be an illusion." 21:42:28 rebuttal: no it doesn't 21:42:45 although I don't write them all on the same line unless the starting for loops (it normally is for loops) also started on the same line 21:42:46 gopack grc _test/crypto/tls.a _gotest_.6 21:42:47 --- FAIL: tls.TestAlertForwarding 21:42:47 Got error: received unexpected value on one of the channels: script.channelClosed{channel:(chan interface { })(0x35a230)}. Runnable events: recv alert 21:42:47 FAIL 21:42:47 make[1]: *** [test] Error 1 21:42:48 reassuring 21:42:51 think i'll go back to the release version 21:43:16 anyway, did you know that Go's concurrency model is somewhat less flexible than INTERCAL's? 21:43:35 * ehird hg update -r release 21:43:35 what *is* Go's concurrency model? 21:43:37 ais523: i am so unsurprised 21:43:40 AnMaster: goroutines 21:43:50 ehird, does it make use of SMP? 21:43:53 yes. 21:43:57 well, ick doesn't 21:44:04 and iirc ick runs in lock-step 21:44:08 FORTRAN, now, those guys are so against tabs. Maybe that's natural, since you have to start the actual code from the seventh column of the file, and use the sixth for continuation line markers, 2nd-5th for line numbers and the first for comment markers; I guess tabs don't really work there. 21:44:09 AnMaster: it could in theory, just it would make your head explode 21:44:12 goroutines are like coroutines except actually concurrent and you can communicate among a bunch of them without worrying about synchronisation 21:44:17 ais523, how so? 21:44:20 they're <3 21:44:24 and the syntax is nice too 21:44:29 wanna see a nice parallel mandelbrot renderer? 21:44:32 AnMaster: up to one statement's worth of desync is allowed at every COME FROM 21:44:34 ehird, how do you communicate among them? 21:44:38 channels 21:44:43 i can't summarise a whole concurrency model >_< 21:44:46 ehird, so message based? 21:44:51 no! 21:44:52 ehird, or stream based? 21:44:52 stfu 21:45:01 ehird, what is a channel then 21:45:03 ehird, or abstention based/ 21:45:04 stfu, floob! 21:45:06 I am not here to explain a whole concurrency model to you that you don't know in one line 21:45:15 gah, that was meant to parody AnMaster but I typoed the ? again 21:45:15 ais523, only? not more? 21:45:30 to anyone who isn't going to ask a ton of questions, behold the tiny, totally-parallel, png-outputting mandelbrot generator with options! 21:45:31 http://groups.google.com/group/golang-nuts/msg/8f07441480e01d80?dmode=source&output=gplain 21:45:34 protip: it's tiny 21:45:37 and readable 21:45:45 grep <> for start 21:46:00 well, there is one unidiomatic bit about the code though 21:46:05 it has a lot of var lines followed by = 21:46:16 the var lines should be omitted and the =s replaced by := 21:46:19 in fact, I'll do that now 21:46:23 more idiomatic mandelbrot, comin' right up 21:46:32 wow, that syntax is giving my brain a bit of a culture shock, as it's trying to work out whether it's C or Python 21:46:34 and getting muddled 21:46:51 esolangs don't do this to me, because the syntax is generally so weird it doesn't get confused with other things 21:46:58 ais523, mine is being confused between pascal and C 21:47:01 it's cleaner C :P 21:47:04 with some pascal influences 21:47:08 anyway, I'm going to make a more idiomatic version of it 21:47:10 how comes your even think about python 21:47:13 that'll be even shorter! 21:47:15 yours* 21:47:21 the := vs = vs == thing is from Algol 21:47:23 err your* 21:47:27 ais523, no, pascal 21:47:32 AnMaster: pascal only had := and = 21:47:36 where = was comparison 21:47:53 ais523, where in there is ==? 21:47:57 whereas, Algol had := (dereference and assign), = (always be the same as, e.g. defining a constant), == (compare) 21:48:05 ais523, there is no == in there 21:48:15 I'm guessing == is Go's equality operator even though it isn't used in that program 21:48:20 on the basis that they're using = for something else 21:48:45 := is define-and-set 21:48:48 (minimal "type inference") 21:48:48 and if you've used = already and you're showing a willingness for equality and assignment to be different, you're likely to make comparison == unless you really want to screw with people's minds 21:48:55 ehird, and == and =? 21:49:01 equality and assign to existing var 21:49:12 ah 21:49:15 AnMaster: see, told you; it's often possible to deduce language syntax without seeing the whole thing 21:49:21 ais523, "meh" 21:49:38 http://gopaste.org/view?paste=D4gSt2N5yPm2A8yAd0W1iSv4U0fFl7N9 More idiomatic version; syntax-highlighted, but inexplicably missing a comment close. Probably a bug in the pasting site. 21:49:41 I think it should compile :P 21:49:50 anyway, brb 21:49:53 -!- Asztal has quit (Read error: 60 (Operation timed out)). 21:50:14 anyway, I at least came up with snappy names for Feather's assignment and clone operators 21:50:20 assignment is <<=, clone is =>> 21:50:41 (they're meant to be relatively long because they're relatively unsafe operations) 21:50:47 Aw, not «= and »=? 21:51:19 fizzie: maybe that'll be optional, but worrying about non-ASCII characters would be a distraction at this stage 21:51:23 even if I can type « and » just fine 21:51:43 =» 21:52:08 -!- Asztal has joined. 21:52:13 «» hm altgr z and altgr x 21:52:14 anyway, the concept's that << is meant to be reminicent of the rewind button on a tape recorder 21:52:15 go learn APL, floob! 21:52:15 how strange 21:52:29 why not altgr+< and altgr+shift+< 21:53:16 uh 21:53:22 < is shift + , for US keyboard 21:53:24 s 21:53:31 At least for the fi keymap, the level-3-shift of the physical <> key is pretty much taken, given that the pipe is there. 21:53:33 so shift + < is impossible 21:53:55 fizzie: there are two pipes on a UK keyboard, | (shift-\) and | (altgr-`) 21:53:57 unless you somehow make "lshift + , + rshift" acceptable 21:54:15 the second one is apparently in EBCDIC but not ASCII, and maps onto all sorts of interesting characters on modern-day computers as a result 21:54:23 but I think this version of X is boring and just maps them onto the same character 21:54:27 -!- Azstal has joined. 21:54:41 Rugxulo: If you had the "altgr" key at all, you could easily put « and » as altgr-shift-, and altgr-shift-., corresponding with the < and >. 21:54:58 My altgr-shift-. is taken but altgr-shift-, isn't 21:55:07 we do have AltGr, but it's not mapped to anything different by default (that I know of) 21:55:11 at least, not in Windows 21:55:35 You have an Alt on the right side of the keyboard, that's different. :-P 21:55:43 < is shift + , for US keyboard <-- yes but it doesn't make sense on a swedish keyboard 21:55:44 yes 21:55:53 you should know I don't use an US one 21:55:59 yes obviously ;-) 21:56:00 shift-< is > 21:56:01 Rugxulo: AltGr is mapped to control-alt in Windows, for no obvious reason 21:56:09 given that you can type control-alt anyway, and mostly don't want to 21:56:16 anyway 21:56:17 But not for control-alt-delete 21:56:24 Deewiant: nope, that one's special 21:56:24 At least for the fi keymap, the level-3-shift of the physical <> key is pretty much taken, given that the pipe is there. <-- iirc fi = sv for keymap 21:56:26 Deewiant: I have ˛ in altgr-shift-, (I guess that's some sort of an inverse-cedilla?) and ¬ in altgr-shift-.; I'm not sure if that new Finnish standard keymap had anything there. 21:56:34 anyway, I'm sure we can agree that http://gopaste.org/view?paste=D4gSt2N5yPm2A8yAd0W1iSv4U0fFl7N9 is totally awesome 21:56:44 admittedly, mandelbrot is embarrassingly parallel 21:56:45 (/me wonders if it works for control-alt-end, the DJGPP-specific equivalent? or control-alt-backspace if you're running an X server?) 21:56:51 but it looks almost identical to sequential code 21:57:10 if what works in DJGPP? 21:57:11 wow, that style's annoying to read 21:57:17 Rugxulo: altgr-end rather than control-alt-end 21:57:20 ais523: what style 21:57:25 ehird: the CSS on that 21:57:29 no it's not 21:57:33 comments are dark grey on black for me 21:57:37 ais523: doubt it 21:57:40 fizzie: I have that as a dead key under altgr-G (for oGonek?) 21:57:41 oh yeah your screen is beyond shit i forgot 21:57:46 The ˛, I mean 21:57:48 it's perfectly readable 21:57:50 also, I can't see the closing */ of the first comment at all 21:57:59 The not sign I lack 21:58:01 yes, I said it was a bug 21:58:06 of the paste site, probably 21:58:08 try reading 21:58:21 comments are dark grey on black for me <-- even on my shitty laptop display that is perfectly readable 21:58:25 but 21:58:32 the background is brownish-darkgrey 21:58:35 NOT black 21:58:44 because I have black console right next to it 21:58:49 well, dark grey on darker grey is rather annoying 21:58:51 and that is very definitely different 21:59:13 ais523: it's readable :P 21:59:21 * ehird determines that the parallel mandelbrot has approximately 40 lines of "real" code 21:59:24 it is a darker colour on my desktop btw 21:59:27 Deewiant: Right, I guessed as much. Incidentally, the new SFS standard puts some sort typographical starting-single-quote thing to altgr-shift-, and something I can't quite make out into altgr-shift-. -- http://www.csc.fi/sivut/kotoistus/kbpropa2rsuomeksi.pdf 21:59:34 (ignore } lines and comments, ignore package/import, ignore whitespace) 21:59:57 ignoring the boilerplate for the flags, 34 lines 22:00:03 (rule 34 on mandelbrot) 22:00:06 I think I have an OWL-windows version of Mandelbrot on here somewhere, which ofc won't run 22:00:14 incidentally, golang.org runs on an http server written entirely in go 22:00:15 unless i have a spare .exe around that I can run via Wine 22:00:16 (so does gopaste.org) 22:00:19 pretty scalable :P 22:00:20 I wonder how much is stupid boilerplate? 22:00:21 fizzie: Looks like the same thing is on both altgr-shift-. and altgr-shift--? 22:00:40 fizzie, SFS? 22:00:42 Deewiant: Yes, that it does. I don't know what's up with that. I had somewhere a nice printed-on-shiny-cardboard copy of that new layout, but I don't know where I put it. 22:00:44 I.e. combining dot above or whatever that thing is called. 22:00:57 I have that on altgr-., incidentally. 22:00:57 AnMaster: The Finnish standardization organization. 22:01:08 fizzie, they are changing from "same layout as sv"? 22:01:10 and why 22:01:36 They're filling in unused parts of the layout, altgr and altgr-shift stuff 22:01:38 'CAUSE IT'S TWO THOUSAND FLOOBIN' NINE !!! 22:01:46 I guess it's fully backwards-compatible 22:01:47 AnMaster: I think it's some sort of Finnish-Swedish combo-project, in fact. And like Deewiant said, they're just adding to the unused parts. 22:01:58 Deewiant, altgr and altgr-shift is completely filled? 22:02:02 wow, 207 lines; about 40 to implement zooming, about 40 to draw the Mandelbrot itself, the rest is boilerplate 22:02:08 Deewiant, at least to me 22:02:15 (and OWL was a method to radically cut the amount of boilerplate in the typical Windows app...) 22:02:24 Rugxulo: you are an irritating person who uses the most annoying emoticons and never has anything to contribute except the cliche hating of the inevitable march of the world that seemiingly every idiot gets as they grow older, or things only interesting to those who do the same. 22:02:24 OWL == Borland?? 22:02:25 plz stop. 22:02:36 Rugxulo: yes, a proprietary library thing 22:02:37 *please 22:02:39 AnMaster: Maybe you're an early adopter without even knowing it. 22:02:47 AnMaster: You mean you actually have a standard for all of it? 22:02:53 AnMaster: And not just that all your keys generate something. 22:02:54 ais523: is it parallel, though? with the cpu-allocation and all automatic? :P 22:02:57 ehird: I didn't realise there was an annoyance scale for emoticons 22:02:58 ehird, it's hard to contribute to topics like Go mandelbrot, floobs, etc. 22:03:11 floobbbb 22:03:14 Rugxulo: So. Say. Nothing. 22:03:14 ... and Finnish keyboard layouts 22:03:18 nothing 22:03:18 see, i can contribute 22:03:23 ehird: I doubt it, you have any idea how creating a thread, process, or whatever the other Windows-specific thing is in Windows? 22:03:23 Deewiant, no. I just remapped a lot myself :P 22:03:27 *how complex 22:03:37 Rugxulo: not funny. 22:03:41 AnMaster: In other words, you were just being silly and misleading everyone. 22:03:42 Deewiant, sadly my pi mapped in seems to be MYSERIOUSLY GONE since a few days 22:03:47 Deewiant, yep! 22:03:58 AnMaster does that a lot. 22:03:59 Great. 22:04:05 i'm not sure what point he's trying to prove by it 22:04:25 ehird, something about there being no point. 22:04:32 * AnMaster waits for it 22:04:49 Great, so you're misleading and hold up ridiculous conversations for no reason whatsoever. 22:04:49 hurry up ehird 22:04:55 æ 22:05:05 ais523, altgr-ä for me is æ 22:05:07 Conversation with you must be one of the most compelling propositions ever dreamt of in the entire history of time. 22:05:14 AnMaster: altgr-a for me 22:05:20 what does altgr-a do for you? 22:05:22 ehird, so when is your "deep. very deep" comment going to come? 22:05:25 ais523: ª 22:05:30 no clue what that is 22:05:34 AnMaster: It didn't even try to be deep. 22:05:35 it's an underlined superscript a 22:05:35 altgr-shift-a is º 22:05:42 more to the point, i have no clue why that is 22:05:48 You were just admitting to being a total dick who deliberately obstructs pointless conversation and annoys people for no point. 22:05:50 So, yeah. 22:06:03 ehird, but you only say that line when I'm not *trying* to be deep 22:06:14 ehird, also 22:06:20 everything I said was true 22:06:21 that 22:06:31 1) Deewiant, altgr and altgr-shift is completely filled? 22:06:33 This is interesting and not boring at all. 22:06:37 2) Deewiant, at least to me 22:06:40 completely true 22:07:54 "True but misleading: an impossible combination" —AnMaster's implication 22:08:25 * Rugxulo thinks ehird doesn't suffer flo^H^Hools lightly 22:08:38 That took you a while to figure out. 22:09:01 ais523, I need some icons for ick programs on mac: 32x32, 16x16 and 8x8. All in 255/16/2 colours. The colour sets are predefined 22:09:03 :/ 22:09:13 the standard "no icon" one is just ugly 22:09:23 so you got it to work now? 22:09:27 AnMaster: shouldn't an icon for ick be ugly, just based on the name pun? 22:09:33 AnMaster: Based on what I've read, you guys have also a new standard keylayout (SS 662241/T1:2006 or whatever), and both ours and yours have been (very slightly) modified so that they are compatible, at least as far as the physically-enscribed parts go. (So that at least you don't have to start manufacturing different keyboards for both the fi and sv markets.) 22:09:33 ais523, err wait, 8x8 isn't needed 22:09:35 AnMaster: draw the face of the most bearded creator of intercal 22:09:38 -!- Asztal has quit (Success). 22:09:46 ehird: more bearded? there are only two 22:09:46 ehird, I can't draw. why did you think I asked 22:09:54 AnMaster: pixel art is easy! 22:10:00 ehird, not to me 22:10:22 actually I think there is high colour too. but I don't have any app supporting editing that 22:10:26 AnMaster: well, just draw a facsimile of ais523's face then, it's very boring (no offense lulz) 22:10:30 ais523: Hence there is a single well-defined most bearded one 22:10:38 in black, transparent and skin, I guess :P 22:10:44 it'd clearly be the best icon you could give! 22:10:55 "meh" 22:11:03 big I? 22:11:05 kind-of hard to represent me in a 32x32 icon 22:11:16 simple 22:11:19 just write 22:11:21 ais523: i can prove you wrong 22:11:25 tab=8 22:11:26 in it 22:11:27 skull and crossbones? poison? nuclear symbol? 22:11:29 done 22:11:32 * ehird finds wolfram si te 22:11:40 http://www.wolframscience.com/prizes/tm23/images/alex_smith_wolfram_turing.jpg 22:11:40 i can reproduce this semi-accurately in a 32x32 icon 22:11:41 AnMaster, lol 22:11:44 at least you might think it's vaguely similar 22:11:45 *site 22:12:04 -!- kar8nga has quit (Remote closed the connection). 22:12:12 4-colour (transparent, black, skin, shadowed skin) 22:12:20 got nothing better to do anyway 22:12:28 actually, I still look like that, but the hair's slightly longer atm 22:12:36 well that's your fault 22:12:50 AnMaster: There are only around 10^2466 different 32x32-sized 256-color images; just generate them all and pick a nice-looking one. 22:13:18 A practical solution. 22:13:24 how about "IX" as the icon (as in "ick's" or nine in Roman numerals)? 22:13:24 fizzie, XD 22:13:32 hmm... other companies like to hire expensive graphic designers to design icons 22:13:47 therefore, by analogy, we should try to see who will pay us the most to use their attempt at an icon, and use that 22:13:48 wait 22:13:55 since when are we a company? 22:14:13 MCMLXXII = 1972, right? that's when Intercal was created, right? 22:14:13 Since now. 22:14:19 AnMaster: since CLC started referring to himself in the plural 22:14:22 ehird, ah 22:14:25 Rugxulo: yes, INTERCAL-72 22:14:25 fizzie: 2^8192, to be exact. 22:14:28 ais523, "CLCs"? 22:14:33 ais523: You could market that as an advertisement opportunity. 22:14:34 "we" 22:14:36 ah 22:14:37 Royal we. 22:14:46 -!- Azstal has quit (Connection timed out). 22:14:52 oh I have done that on some projects before. 22:14:54 CLCs are not amused. 22:15:10 I even went as far as defining "the team" to consist of one person once 22:15:18 was years agi 22:15:20 ago* 22:15:20 this is called insanity 22:15:28 ehird, yes it is 22:15:41 Deewiant: Yes, well. I was going to paste the exact number in decimal form, but 2467 digits was a bit too much, so I just applied a base-10 logarithm. 22:16:47 fizzie, how many petabyte (or whatever) is that? 22:17:17 yottabytes I guess 22:17:18 The prefixes don't go high enough. 22:17:23 AnMaster: The SI prefixes only go up to 10^24, subtracting 24 out of 2467 doesn't really change it appreciably. 22:17:31 fizzie, true 22:17:55 Deewiant, the reading is of the SI-scale! 22:18:00 (bad bad joke) 22:18:00 If you insist, it's around 10^2442 yottabytes 22:18:00 * ais523 wonders how small it compresses to 22:18:15 realisation: I suck at pixel art 22:18:16 do you think you could recursively compress it to less than 1 MB, for instance 22:18:37 (that is, a directory of all possible 32x32 256-color images?) 22:18:40 ais523: It's compressible to 2467 decimal digits. 22:18:42 (Duh.) 22:18:46 ehird: not the number 22:18:48 the actual set of images 22:18:54 ais523, actually yes. I just did: "generate the directory of all 32x32 256-color images" 22:18:55 Indeed. 22:18:56 there 22:18:57 I meant what I said. 22:18:58 compressed 22:19:04 It is a perfectly valid form of compression. 22:19:15 AnMaster: I mean, with a non-custom compression algorithm 22:19:16 There is a trivial O(1) algorithm to decompress. 22:19:22 but rather, one of the existing ones, like LZMA or gzip 22:19:24 ais523: Then we cannot even guess. 22:19:31 ais523, define custom 22:19:33 Well, okay, we can guess. 22:19:35 meh, people have written gzip quines before 22:19:41 so it's probably possible to get it pretty small 22:20:01 Prelude> logBase 2 (10**2467) 22:20:02 Infinity 22:20:09 Each can be compressed to infinity bits. 22:20:12 AnMaster: I guess you could chain the prefixes: it's approximately one exayottayottayotta...[a total of 102 "yotta"s]...yottabyte. 22:21:05 fizzie, define what you do when chaining here? 22:21:21 One million million. 22:21:23 One megabyte == one kilokilobyte 22:21:28 right 22:21:28 AnMaster: multiply, I suppose 22:21:30 well makes sense 22:21:55 Or, to use the symbols, 1 EYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYB. (Using the powers-of-ten variants, not the binary ones.) 22:22:16 what about with binary ones? 22:23:05 Exactly 4 GiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiB, if I count it right. 22:24:34 Based on 2^8192 = 2^(102*80+30+2). 22:25:16 Though, uh, to use "B" there in the end makes no sense, since I was just counting the number of images there, not the size of the generated data. 22:25:28 * oerjan wonders if anyone has used a mosquito for a programming language mascot yet 22:25:36 would seem suitably icky 22:26:12 oerjan: kind-of hard to represent 22:26:14 Each image is 32*32 = 2^10 bytes, uncompressed, though; so that's then just 4 TiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiB of raw data. 22:26:23 you may as well use an upside-down nose or something meaningless like that 22:26:50 Isn't the DDD debugger icon a mosquito-like thing? Or was it just a boring old-fashioned bug-like bug? 22:27:17 * oerjan notes that "the mosquito book" is not programming-related 22:27:27 The logo at http://www.gnu.org/software/ddd/ is just a buggy bug, at least. 22:27:37 great 5 crashes in as many minutes 22:27:38 you could draw a "K" with ice on it (icey k = i-c-k) 22:27:56 I'm sure I saw a mosquito icon in some debugger-like context, but it might've been just a toolbar button somewhere. Maybe the TI DSP development studio crashfest? 22:28:54 walk -> 22:31:18 "Code Composer Studio", and at least not in this screenshot. Well, *somewhere*. 22:33:54 hm 22:34:05 wrong button but bouncer blocked part :) 22:34:08 * AnMaster reads log 22:34:53 not much to catch up on in here, if that's what you're doing 22:38:24 doesn't gzip usually compress in blocks of 50kb or something? 22:38:42 that would automatically mean those pics wouldn't compress enough 22:38:49 14:27:38 you could draw a "K" with ice on it (icey k = i-c-k) <-- made me think of "KDE on Ice" 22:38:52 32k, I think 22:38:53 or something like that 22:39:03 well anyway, in blocks of something 22:39:25 oklofok, so use lzma or bzip2? 22:39:26 LZMA is Lempel Ziv Markov A(... gorithm?), so it supports higher dictionaries 22:39:31 anyway compressing ridiculous things is an interesting topic 22:39:36 bzip2 only goes to 900k 22:39:45 but there are other BWT compressors that do more 22:39:47 anyway if you sorted them a simple differential encoding followed by runlength would compress them very well 22:39:57 oklofok: http://www.encode.ru/forum/ 22:40:40 wouldn't it? 22:41:18 it would be "same number but one more" 22:41:32 i think lzma might theoretically compress the thing quite a lot 22:41:47 assuming it was smart enough to figure out that it repeated every n bytes 22:41:50 let's say we have the pictures lexicographically ordered 22:41:59 oklofok, I said that above 22:42:03 then two adjacent pictures will only have a few bits different 22:42:16 so umm err are you saying this exact same things 22:42:18 *thing 22:42:19 * oklofok reads 22:42:27 not exactly 22:42:30 but almost 22:42:36 lzma doesn't have differential encoding 22:42:49 oklofok, maybe I don't know how lzma works 22:42:53 maybe,* 22:42:54 how it compresses iirc is by copypasting previous sequences 22:43:17 LZMA2 method is better at poorly-compressible data 22:43:18 in any case, we will repeat the same thing quite a lot 22:43:51 night → 22:44:02 in fact, after getting one pic, a massive amount of pictures after it can be done mostly with copy paste 22:44:03 g'nite 22:44:28 solid compression usually can handle this, right? assuming the dictionary is large enough 22:45:05 solid compression? 22:45:10 okay wait 22:45:14 I remembered one thing 22:45:21 "that would be one hell of a tar bomb!" 22:45:22 instead of compressing each file separately, it tries compressing them all as one huge chunk 22:45:26 night really → 22:45:37 well yeah obviously we're doing that 22:45:59 so just use 7-Zip and be done with it 22:46:13 i mean we have so many files we can't use even half a bit for one file 22:46:22 or the result will be too huge to fit this universe 22:46:39 hmm 22:46:43 7-Zip can do semi-solid (as can Rar) 22:46:56 where you don't have to (de)compress the whole thing at a time just to get one file 22:47:22 slightly worse overall compression but much much faster / leaner 22:49:02 anyway, because a whole file will never have occurred before (except when it's the end of some file and the beginning of another), we'll usually have to encode a new file in at least two copy paste chunks 22:49:23 so we'll usually need at least a bit for each file 22:49:45 so we'd probably need something slightly different 22:49:49 oklofok: Also, zlib has a sliding window of N kilobytes, not a "split into blocks and compressed separately" scheme. Still, there is a maximum length for the (length, distance) encoding, and yes, you'd certainly end up with at least a bit per file, probably much more. 22:50:27 seriously, guys, as over at http://www.encode.ru/forum/ ... they are heavy into compression 22:50:28 i'm not saying everything splits into blocks... or is zlib gzip? 22:50:41 zlib == deflate == gzip 22:50:45 oh 22:50:47 == zip (mostly) 22:50:54 As long as you allow a bit of wiggle-room in the ==s. 22:51:00 Rugxulo: i seriously doubt that forum is about this stuff 22:51:08 it's about all kinds of compression 22:51:16 anything compression related 22:51:20 even when compressing stuff that can't fit this universe? 22:51:31 theory too 22:52:02 show me something relevant to this and i'll believe you 22:52:05 Even theoretically speaking, I'm not sure it's a horribly interesting question. I mean, it's not *un*interesting, but still. 22:52:14 oklofok: don't believe me, see if I care :-P 22:52:49 fizzie: more interesting than compressing things that *do* fit this universe in any case 22:53:38 Rugxulo: i'm not saying you should care, i'm saying you shouldn't link irrelevant things 22:53:51 * Rugxulo apologizes for trying to help ... 22:53:54 oklofok: Rugxulo pipes in always, no matter what 22:54:06 ehird: floobs floobs floobs 22:54:15 incidentally that fails to be funny 22:54:24 O FLBY? 22:56:04 "The counting problem, however falsely implies that a small number of states can't reproduce a larger number of states. -- 256^256 = 3.2e+616 : 1-byte=>1-byte => many bytes -- The counting argument is broken when you include cross referenced meaning, as in the above example, combined with recursive manipulation and disclude the infinite range." Gads, comp.compression is such a kook-pot. 22:56:36 I'll disclude your infinite range. So to speak. 22:58:21 I sense some cross-referenced meaning in your statement there. 22:58:53 what 22:59:02 can someone translate that into english 23:00:03 "cross-referenced meaning, combined with recursive manipulation" 23:01:13 oklofok: Yes, uh... it's something about how you first pick one byte, and the a second, and then you can somehow represent a range of 256^256 values, even though there are only 2^16 "states". 23:02:25 Look, it continues with "ie the truth is only as true as the next truth The difference between the earth being round and the earth being flat is not far apart mathematically and neither is true, the earth is neither round nor flat, but both and neither." I don't think you'll be able to extract much meaningful content from there. 23:02:31 (Reading only one line above) Apparently "semi-solid" is the new word for "random access" 23:05:43 -!- Gracenotes has quit (Remote closed the connection). 23:06:37 -!- Gracenotes has joined. 23:12:45 -!- ais523 has quit ("going home"). 23:15:03 -!- Rugxulo has quit ("floob ... I mean food"). 23:30:10 -!- ehird has quit. 23:32:10 -!- ehird has joined. 23:32:38 -!- Sgeo has joined. 23:33:23 ehird is going to kill me 23:33:30 if only 23:33:47 * Sgeo deliberately used Comic Sans MS 23:33:54 For a comic? 23:33:58 No 23:34:02 For what. 23:34:08 A sign in Active Worlds 23:34:18 Not one that most people will see, admittedly, but still 23:34:29 Please kill yourself. 23:34:58 I and some other people will be seeing that sign regularly though 23:42:11 well, then you will probably die of it, like with smoking. i mean comic sans _is_ lethal, right, otherwise would people be so against it... 23:42:21 *why would 23:43:18 http://imgur.com/iQavU.jpg