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