2009-03-01: 00:00:03 #ifdef LNR 00:00:05 are the parts that do that 00:00:11 what if it modifies the cell it loops on? 00:00:23 * Random832 wasn't sure because of that 00:00:24 as long as it has balanced < and > and does no IO, you can reduce it trivially 00:01:30 "trivially" may be a bit strong 00:01:46 everything is trivial apart from uncomputable things 00:02:12 also, who killed the wiki again? 00:03:27 it always comes back when i complain here 00:05:15 What do you mean "even GNU"? GNU is the anti-unix, and have always gone 100% exactly the opposite of unix standards. 00:07:48 ais523: it's FUD but it's not totally off.. 00:08:14 well, even the name claims not to be UNIX 00:08:28 it's UNIX-compatible, but does seem to like doing things differently, I'm not sure if that's good or bad 00:08:33 in fact, I suspect it's just different 00:10:03 what exactly does GNU do differently that you can't find being done three or more different ways across all things that are called unix? 00:10:03 -!- Mony has quit ("Quit"). 00:10:33 oerjan: 00:10:34 Random832: adding more features than the UNIX things normally have 00:10:34 # foo.x().y();; 00:10:35 Error: This expression has type unit but is here used with type ('a, 'b) foo 00:10:41 so, yeah, that syntax doesn't work :( 00:10:43 many people who admire UNIX don't like bloat 00:10:57 such as...? 00:11:03 Random832: ls --help 00:11:16 compare to 00:11:17 usage: ls [-ABCFGHLPRSTWabcdefghiklmnopqrstuwx1] [file ...] 00:11:22 heck, true --help 00:11:24 echo --help 00:11:27 the list is endless 00:11:37 that's uniformity 00:11:48 look at their _output_ 00:11:48 (the one place that behavior violates standards is yes --help) 00:11:51 that's bloat 00:11:54 also, no, echo --help too 00:12:08 no, echo isn't guaranteed to echo back if it's passed an argument beginning with a hyphen 00:12:28 (and isn't echo a shell builtin anyway?) 00:12:44 Random832: it's a shell builtin but also a program 00:12:54 you can deliberately use the non-builtin version by writing /bin/echo 00:12:56 yeah, but you can't invoke the program with just "echo" 00:13:06 and i don't think /bin/... is guaranteed by the unix standard 00:13:28 ("command echo" might be - i'd have to look it up) 00:14:41 whatever. BSD is unix and their echo uses -n 00:14:50 er, echo -n is standard UNIX 00:15:13 http://www.opengroup.org/onlinepubs/007908799/xcu/echo.html 00:15:13 http://www.sixwordstories.net/ 00:15:29 Random832: plan9 supports -n; so it's UNIXy enough for me 00:15:53 yeah, well, that just means that violating the unix standard in minor ways is a unix tradition 00:22:00 -!- oerjan has quit ("leaving"). 00:34:26 -!- ais523 has quit (Remote closed the connection). 01:14:03 -!- oerjan has joined. 01:32:25 -!- GreaseMonkey has joined. 01:35:38 -!- kerlo has quit (Remote closed the connection). 01:38:02 -!- kerlo has joined. 01:38:38 -!- Asztal has quit (Remote closed the connection). 01:38:43 -!- Asztal has joined. 02:08:08 How TF was this one discovered? http://www.mezzacotta.net/archive.php?date=-5679392-11-17 02:09:05 What do you mean by "discovered"? 02:09:24 randomly, of course 02:09:31 and this time it's no joke :) 02:09:57 -!- comex has quit ("Caught sigterm, terminating..."). 02:10:10 -!- comex has joined. 02:10:38 kerlo: it's the oldest entry in mezzacotta's hall of fame 02:11:02 of course traffic was higher in those days. recently the hall of fame doesn't even update daily. 02:11:21 so there were more people to search for it. :) 02:11:36 (or :/ if you look at the current state) 02:12:42 of course if you want to help, just hit the random or best bakes page and vote 02:13:54 DMM explained on forum hall of fame requires >= 50 voters and >= 80% bakedness 02:15:27 Hmm. I think I've suddenly figured out why most of these aren't funny. 02:15:30 the problem appears to be no. voters, as the whole left side > 80% 02:16:37 (the right side lists doesn't seem to exclude hall of fame members) 02:16:44 *don't 02:17:04 kerlo: because they're random? 02:17:13 Yes. 02:22:20 also of course even the things that _were_ funny the first time around tend to be repeated 02:22:32 until they no longer are 02:25:22 * oerjan votes on the upper right list too, since he's there 02:29:12 -!- Random832 has quit (Read error: 110 (Connection timed out)). 03:18:30 -!- CakeProphet has joined. 03:32:20 -!- GreaseMonkey has quit ("Client Excited"). 06:07:05 -!- mikkeCA has joined. 06:07:13 -!- mikkeCA has left (?). 06:10:02 -!- Sgeo has quit ("Leaving"). 06:52:08 wow, someone decided to go the extra mile with the extra-www thing: 06:52:10 http://www.www.www.www.www.www.www.www.www.www.www.www.www.www.www.www.www.m.trainingpacks.co.uk/ 06:52:39 ok, it's just parked :( 06:53:12 damn wildcard dns. wonder why it shows with so many wwws in my search result though. 06:54:06 because someone linked to it that way? 06:55:12 yeah, but... still odd (there's many different ones, too) 07:09:10 echo -a --- 07:09:15 / 07:33:50 -!- olsner has joined. 07:35:48 -!- MigoMipo has joined. 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 09:28:12 hi 09:28:51 hi oerjan 09:28:52 !y 09:28:59 eh? 09:29:18 echo -a --- 09:29:20 hm? 09:29:31 that could be hard with echo 09:29:41 -!- kar8nga has joined. 09:29:43 {MizardX} / 09:29:43 if you want to echo something beginning with - I mean 09:29:45 ja+seWuV !y 09:30:24 oerjan, Base64? 09:30:43 ||e +e +ou 09:30:59 MizardX, if you do want to echo (in shell) something starting with - I would recommend using printf instead. Like printf "%s" "-whatever" 09:31:00 in bash 09:31:09 think that is POSIX though 09:31:10 not sure 09:31:32 oerjan, ... 09:31:59 i would have assumed there was some option you could just put first 09:32:16 oerjan, for echo? don't think so 09:32:28 well 09:32:37 depends on what exactly 09:32:41 -a will print -a 09:32:46 -e you can't start with 09:32:56 syntax is: echo [-neE] [arg ...] 09:33:08 arg can't start with -n -e or -E 09:33:29 oerjan, the actual rules are rather complex 09:33:43 $ echo '-e a' 09:33:43 -e a 09:33:46 $ echo '-eE' 09:33:48 09:34:06 (no space really there, but can't send empty line on irc) 09:34:15 $ echo -- '-eE' 09:34:15 -- -eE 09:34:42 okokokokokokokokoko 09:35:12 oko! 09:35:20 ;) 09:35:26 ;* 09:46:54 Happy Australian Mailman day! 09:47:11 actually not Australian, more like US one 09:48:45 Well, that's for bash's echo. POSIX echo says about options: "The echo utility shall not recognize the '--' argument ...; '--' shall be recognized as a string operand. Implementations shall not support any options." 09:50:08 Specifically it says about the string operans: "If any operand is -n, it shall be treated as a string, not an option." And the escape sequences should be recognized by default. 09:50:15 No-one seems to be doing echo like that, though. 09:53:12 true 09:53:13 ^echo hi 09:53:15 hi hi 09:53:22 fizzie, bash have some option to do it iirc 09:53:30 either compile time or shopt/set 09:53:33 forgot 09:53:38 forgot which* 09:54:06 SunOS 5.10 echo(1): 09:54:10 "sh's echo, ksh's echo, and /usr/bin/echo understand the back-slashed escape characters, except that sh's echo does not understand \a as the alert character. In addition, ksh's echo does not have an -n option. sh's echo and /usr/bin/echo have an -n option if the SYSV3 environment variable is set. 09:54:17 csh's echo and /usr/ucb/echo, on the other hand, have an -n option, but do not understand the back-slashed escape characters. sh and ksh determine whether /usr/ucb/echo is found first in the PATH and, if so, they adapt the behavior of the echo builtin to match /usr/ucb/echo". 09:54:21 Echoing is surprisingly complicated. 09:54:42 heh 09:54:46 at least on sunos yes 09:55:03 what about solaris? iirc sunos is rather old 09:55:12 SunOS 5.10 == Solaris 10. 09:55:24 ah 09:56:04 I guess officially I shouldn't say "SunOS" at all, it's just that the page footer of the man page says "SunOS 5.10 Last change: 17 Jul 2006 1". 09:56:15 heh 09:56:27 ^ul ((Ultrix )S:^):^ 09:56:27 Ultrix Ultrix Ultrix Ultrix Ultrix Ultrix Ultrix Ultrix Ultrix Ultrix Ultrix Ultrix Ultrix Ultrix Ultrix Ultrix Ultrix Ultrix Ultrix Ultrix Ultrix Ultrix Ultrix Ultrix Ultrix Ultrix Ultrix Ultrix Ultrix Ultrix Ultrix Ultrix Ultrix Ultrix Ultrix Ultrix Ultrix Ultrix Ultrix Ultrix Ultrix Ultrix Ultrix Ultrix Ultrix Ultrix Ul ...too much output! 09:57:09 * oerjan suddenly wonders why he did that. 09:57:11 ^ul (::^):^ 09:57:12 ...too much stack! 09:57:21 oerjan, I wonder too 09:57:36 fizzie, what instructions in STRN does fungot use? 09:57:37 AnMaster: i'd have hope only if terry gilliam directed it. then write the traditional examples; hello world, factorial, you say sure, why not? 09:58:07 the monty python bot! 09:58:41 "you say sure" is a "traditional example"? 09:59:22 AnMaster: Hmm. I think at least A, C, F, G, L, N, P, S and V; but maybe not all of them very frequently. 09:59:36 fizzie ah I recently improved N performance 10:00:29 when does IWC update now again? wasn't it 11:00? 10:00:45 or was it 12:00? 10:00:53 oerjan, ^ 10:01:19 11:08 or 11:11 10:01:26 or thereabouts 10:01:40 oerjan, someone not using ntp? 10:01:56 no, i just don't quite remember 10:02:07 strange point of time 10:02:09 11:11 10:02:25 "at 03:11 Pacific Time, if you're curious - and no, no reason" 10:02:40 oerjan, where? I did look at faq just a moment ago... 10:02:50 oh I missed it... 10:02:52 duh 10:04:14 N is called a number of times for each IRC message (because L with longer-than-the-string-itself argument wasn't so well-defined), but I don't think that's a performance-critical code path. In fact I don't think the whole bot is very performance-critical, since even the babble-generator response time is quite reasonable. The underload interp uses N in almost every instruction (sometimes twice), so there it might help. 10:04:41 mhm 10:05:31 fizzie, it also slightly altered how N works on empty stack (still following the spec though, but that doesn't mean much for RCS fingerprints...) 10:06:02 since now it doesn't actually pop the string at all, just scan the stack and push the length 10:07:15 a few other instructions that popped strings are also faster now thanks to stack_pop_string returning string length (thus avoiding a call to strlen()) 10:08:05 also I don't recommend using STRN on any data that doesn't fit in an unsigned byte for now, I have plans to fix that soon (long standing issue this) 10:08:55 I mean, avoid out of byte-range values in the cells you operate on with STRN 10:09:23 I don't think my strings have any strange values, since it's mostly just IRC inputs/outputs anyway. 10:10:12 it is possible with some values popped strings may contain more than one 0 byte due to the conversion from int32_t*/int64_t* to unsigned char* 10:10:17 atm 10:10:31 I'm writing a fungecell string library atm to avoid this 10:11:16 fizzie, btw have you ever looked at the glibc strlen()? It does some crazy stuff 10:11:28 like scanning the string one word at a time 10:12:02 Actually, I think I've seen something like that in some bit-tricks page. I don't think I've specifically looked at glibc strlen, though. 10:12:42 ARM has some opcodes to help dealing with "32-bit word which is actually part of a string of octets" data, IIRC. 10:13:55 heh 10:14:16 fizzie, glibc was doing some weird masking tricks and such 10:14:41 http://sources.redhat.com/cgi-bin/cvsweb.cgi/~checkout~/libc/string/strlen.c?rev=1.1.2.1&content-type=text/plain&cvsroot=glibc 10:15:06 Actually I think it was the SuperH arch and not ARM that I was remembering. 10:16:02 fizzie, it seems strange, with false positives... 10:17:28 it could have been done even better in asm (strlen that is) 10:19:03 fizzie, which is actually done for x86: 10:19:05 http://sources.redhat.com/cgi-bin/cvsweb.cgi/~checkout~/libc/sysdeps/i386/strlen.c?rev=1.8&content-type=text/plain&cvsroot=glibc 10:20:04 Yes, it was SuperH. There's at least CMP/STR which is true (well, sets T flag to 1) when two registers have at least one equivalent byte; so 0x11223344 and 0x00220000 would compare to true. It can be used to do strlen like that by using 0 as the other operand; that way it does "set T if there's a null byte in this word". 10:21:05 http://sources.redhat.com/cgi-bin/cvsweb.cgi/~checkout~/libc/sysdeps/x86_64/strlen.S?rev=1.2&content-type=text/plain&cvsroot=glibc 10:21:37 fizzie, if glibc supports superh then it is probably there 10:22:12 http://sources.redhat.com/cgi-bin/cvsweb.cgi/~checkout~/libc/sysdeps/sh/strlen.S?rev=1.3&content-type=text/plain&cvsroot=glibc <-- maybe sh is superh? 10:22:24 Yes, I just found that. 10:23:08 mov #0, r3 ... cmp/str r3, r1; looks like they do it like that. 10:23:57 "bf/s 2b" does a delayed branch, so it actually executes that "add #4, r2" under it before branching. 10:24:20 fizzie, well it isn't odd that strlen() is optimised... 10:25:33 -!- oerjan has quit ("Wait, IFPOD has net access?"). 10:31:42 fizzie, http://sources.redhat.com/cgi-bin/cvsweb.cgi/~checkout~/libc/sysdeps/x86_64/memcpy.S?rev=1.4.2.3&content-type=text/plain&cvsroot=glibc is crazy 10:32:39 Heh, that's quite a lot of code for different-sized memory blocks. 10:32:45 indeed 10:34:09 http://sources.redhat.com/cgi-bin/cvsweb.cgi/~checkout~/libc/sysdeps/x86_64/memset.S?rev=1.2.2.7&content-type=text/plain&cvsroot=glibc 10:34:10 wth 10:34:13 what is all that 10:34:17 .quad L(Got0), L(P1Q0), L(P2Q0), L(P3Q0) 10:34:17 .quad L(P4Q0), L(P5Q0), L(P6Q0), L(P7Q0) 10:34:17 for 10:35:04 this meset is a lot of unrolled loops it seems 10:36:22 and SSE stuff 10:38:29 -!- lifthrasiir has joined. 10:39:52 Kernel's arch/x86/lib/memset_64.S is a lot simpler. I don't think I happen to have a copy of gcc sources, but doesn't it also have builtin memset? 10:40:04 fizzie, hm... 10:40:43 fizzie, those __builtins in gcc are crazier iirc, they expand to inline asm optimised for this specific usage case 10:40:52 most of the time 10:40:59 sometimes they end up in libgcc.so.1 instead 10:42:14 glibc's memset need to check for alignment, while the builtin gcc memset at least sometimes could avoid that 10:44:00 fizzie, also sometimes a loop could be even more effective: auto vectorisation and auto parallelisation 10:44:13 don't know if gcc supports the latter yet 10:44:17 icc does 10:46:41 -!- Judofyr has joined. 11:02:25 -!- FireFly has joined. 11:39:03 -!- BeholdMyGlory has joined. 11:47:27 -!- Hiato has joined. 11:47:39 -!- Hiato has quit (Client Quit). 11:55:57 -!- FireFly has quit ("---"). 12:07:12 -!- kar8nga has quit (Remote closed the connection). 12:13:18 -!- BeholdMyGlory has quit (Remote closed the connection). 12:17:26 -!- BeholdMyGlory has joined. 12:32:58 -!- kar8nga has joined. 13:00:36 -!- kar8nga has quit (Remote closed the connection). 13:49:02 I just found that http://www.google.com/codesearch is actually useful heh 13:50:02 even better than grepping in a local copy in fact... 13:59:16 -!- Judofyr has quit (Read error: 110 (Connection timed out)). 14:00:55 -!- Judofyr has joined. 14:12:25 -!- ais523 has joined. 14:26:26 ais523, there? 14:26:34 yes 14:26:44 is this well defined behaviour or not: ip->delta = (fungeVector) { ip->delta.y, -ip->delta.x }; 14:26:51 I'm swapping x and y 14:26:55 that's well-defined 14:27:07 ais523, really? it won't end up reading after writing part or such? 14:27:37 there's a general rule that you can't read and write the same variable between sequence points, but there's an exception 14:27:40 and you hit the exception 14:27:40 -!- Judofyr has quit (Connection timed out). 14:27:46 ais523, oh what is this exception? 14:27:53 the exception is that you are allowed to if the read is necessary to calculate what's being written 14:28:02 i.e. that the new value depends on the old value 14:28:18 it's why statements like i = i + 1; are legal 14:28:19 oh you mean like i = i+2 ? 14:28:23 right 14:28:28 ais523, but does this apply in this case? 14:28:33 yes, it does 14:28:33 considering it is part of the struct 14:28:37 hm ok 14:31:34 -!- Judofyr has joined. 14:33:13 ais523, what if I have different pointer that alias each other 14:33:17 is it will defined then too? 14:33:27 same data type of course 14:35:49 ais523, ? 14:35:59 no ping reply.... guess he timed out 14:37:19 -!- ais523 has quit (Read error: 104 (Connection reset by peer)). 14:42:44 -!- ais523 has joined. 14:50:30 -!- ais523 has quit (Read error: 104 (Connection reset by peer)). 14:53:55 AnMaster: 14:54:04 echo -n '-n 14:54:05 ' 14:54:25 ehird, nice one 14:54:45 brb, /cycling to get client synced up with names list 14:54:45 -!- ehird has left (?). 14:54:46 echo -n $'-n\n' 14:54:48 -!- ehird has joined. 14:54:49 echo -n $'-n\n' 14:54:52 that should work too 14:54:53 hmm 14:54:57 ais523 has joined (n=ais523@147.188.254.121) 14:54:57 14:50 3 has left (Read error: 104 (Connection reset by peer)) 14:54:59 ok, that's a bug 14:55:08 err 14:55:09 what? 14:55:14 it's meant to be ais523 has left 14:55:19 he quit 14:55:20 my bouncer-quicklog-timestamp-regex is fscked up 14:55:22 due to read error 14:55:24 not left 14:55:30 my bouncer-quicklog-timestamp-regex is fscked up 14:55:31 * ais523 has quit (Read error: 104 (Connection reset by peer)) 14:55:31 * ais523 (n=ais523@147.188.254.121) has joined #esoteric 14:55:31 * ais523 has quit (Read error: 104 (Connection reset by peer)) 14:55:34 ah 14:55:34 right 14:55:36 yes, it should say left IRC 14:55:42 which is what limechat says for quit 14:55:50 and also, um, ais523, not 3 14:55:52 * ehird fixes 14:55:55 indeed 14:56:07 elsif body =~ /^([^ ])+ has left(?: IRC)? \(#{BOUNCER_TIME_REGEXP}(.+)\)$/ 14:56:11 where BOUNCER_TIME_REGEXP = /\[(\d\d:\d\d):\d\d\] / 14:56:14 wonder what the issue is 14:56:50 what regex flavour? 14:57:02 Ruby :P 14:57:07 it's perl-esque 14:57:10 with some python stuff 14:57:20 I think 1.9 uses oniguruma 14:57:28 http://www.geocities.jp/kosako3/oniguruma/ 14:57:47 geocities... 14:57:55 it's common in japan 14:58:08 they all use a weird hosted blog software called hatena diary, too 14:58:22 really? makes me think of 1997 websites.. 14:58:46 japan's internetscape is weird :P 14:59:02 ha, I was right, if you go to the root of that guy's homepage 14:59:03 http://d.hatena.ne.jp/kkos/ 14:59:04 hatena diary 14:59:56 that is a different url... 15:00:08 http://www.geocities.jp/kosako3/ 15:00:10 links to that url 15:00:17 hatena diary is a hosted service 15:00:19 (it's on their site) 15:00:29 every japanese programmer uses it, I swear 15:00:44 k 15:01:00 anyway hm maybe it is not ?: 15:01:06 so why is it "weird"? 15:01:19 I mean http://d.hatena.ne.jp/kkos/ doesn't look very weird 15:01:29 slightly wordpressy in fact 15:01:39 AnMaster: i just mean 15:01:42 the general landscape of japan's internet 15:01:46 ah right 15:01:47 geocities is common and not retro at all 15:01:56 everyone under the sun uses one odd blog service 15:02:50 (?:re) 15:02:51 Makes re into a group without generating backreferences. 15:02:54 —pickaxe 15:02:56 hm, so that is right 15:03:14 ohh 15:03:18 hm no 15:04:40 well let's hope that workd 15:04:42 worked 15:05:04 -!- ais523 has joined. 15:06:13 ais523, what if I have different pointer that alias each other 15:06:13 is it will defined then too? 15:06:17 ais523, I guess "no" 15:07:07 I don't think you have guarantees with aliasing 15:07:14 not sure 15:07:17 hi ais523 15:07:18 hm 15:07:22 you found a bug! 15:07:50 you definitely don't if they're marked restrict, not sure about the unrestricted case 15:07:50 and hi ehird 15:07:50 also, which bug? 15:08:07 ehird, ask for oerjan's fly swatter, fly swatters tend to work ok on most bugs too 15:08:29 ais523: you came up as 'HH:MM 3 left (...)' 15:08:35 instead of 'HH:MM ais523 left IRC (...)' 15:08:38 due to a regex bug 15:09:05 ehird, so what is the corrected regex? 15:09:15 elsif body =~ /^([^ ])+ has left( IRC)? \(#{BOUNCER_TIME_REGEXP}(.+)\)$/ 15:09:18 I am not certain it will work 15:10:04 ehird, some regex flavours allows naming the regex groups 15:10:16 not ruby's unfortunately 15:10:56 ehird, then I would not use "( IRC)?" but rather two different regexes, one for IRC and one without IRC 15:11:16 that's duplication 15:11:18 doesn't the numbers change if there is any " IRC" to match? 15:11:24 no 15:11:24 isn't any* 15:11:27 it just becomes nil 15:11:31 which stringifies to "" 15:11:57 ehird, hm so how does it work in groups like: (a([a-z]+))* 15:12:07 which number does the inner group get ;P 15:12:11 2. 15:12:19 ehird, and if it repeats ? 15:12:33 like: 15:12:45 you can't repeat groups 15:12:48 irb(main):001:0> "aaa" =~ /(a)+/ 15:12:48 => 0 15:12:49 irb(main):002:0> $1 15:12:51 => "a" 15:12:53 irb(main):003:0> $2 15:12:55 => nil 15:12:57 (a([0-9]+) ?)* a0238 a32a84 15:12:57 same in most regex flavours 15:13:08 ehird, iirc some flavours allows repeating 15:13:11 well you can repeat them 15:13:15 you just don't get the group 15:13:25 I mean, so you *do* get the group 15:13:46 ais523: do many people use ocaml's OOP? 15:13:49 I haven't seen it used once 15:14:03 ehird, anyway the right way to solve this is writing a lexer of course 15:14:06 hmm, i just saw it 15:14:08 first time 15:14:13 AnMaster: har har 15:14:19 also why are you parsing elsif body =~ /^([^ ])+ has left( IRC)? \(#{BOUNCER_TIME_REGEXP}(.+)\)$/ instead of parsing the raw messages from the bouncer? 15:14:33 I don't know 15:14:33 I'm not exactly an OCaml expert... 15:14:37 I guess they would be a lot easier to match 15:14:42 AnMaster: because I can't get to that 15:14:49 by the time it gets parsed into the timestamp, it's parsed the rest 15:14:57 this is in Log#new 15:15:01 ais523: kay :P 15:15:09 ehird, even xchat allows that... and xchat's scripting support sucks 15:15:19 of course ERC manages it fine 15:15:22 yes, I _can_ do it 15:15:26 but it's not supported 15:15:29 well, it is 15:15:31 look 15:15:33 this way is simpler 15:15:33 err 15:15:35 k 15:15:40 and I'd prefer not to mess with the direct messages from my bouncer 15:15:45 just how they're displayed & logged 15:15:51 this isn't a script 15:15:54 I'm just modifying LimeChat 15:16:01 (/Applications/LimeChat.app/Contents/Resources/log.rb) 15:16:03 hm ok 15:16:18 ehird, so when you upgrade LimeChat you have to do it all again? 15:16:26 fun 15:16:27 :P 15:16:33 I didn't have to change or remove any lines 15:16:34 just add a few 15:16:53 even so. Using existing scripting hooks tends to be better when possible 15:16:55 they only depend on @nick, @line_type, @body and @time 15:17:00 AnMaster: there isn't any. also, it took 5 minutes. 15:17:12 a script would probably require extra cruft to hook into that. 15:17:12 of course there is a raw hook I can use for almost everything in ERC... 15:17:22 does ERC make you toast in the morning 15:17:30 ERC ERC ERC ERC ERC PSOX PSOX PSOX PSOX PSOX 15:17:32 ehird, no, why would it be in ERC? 15:17:37 M-x toast 15:17:41 why would ERC be in emacs, a text editor 15:17:50 ehird, why would doctor be in emacs 15:18:20 ehird, emacs isn't just a text editor. It is an IDE. 15:18:50 why would ERC be in emacs, an integrated development environment 15:18:56 Integrated Digital Environment 15:18:59 ... 15:18:59 answer: emacs is a bloated pos 15:19:13 I didn't restrict myself to Development... 15:19:40 ehird, also what about freenode access? Very important for development 15:20:29 idea: hooks that allows you to connect to freenode and join the correct channel based on current buffer mode 15:20:36 like ##c or #python or such 15:20:47 ehird, what do you think? 15:20:54 and ais523 too ^ 15:21:21 AnMaster: ridiculous 15:21:25 but I like it anyway 15:21:46 ais523, well I could write a elisp script for it I guess 15:21:54 but I'm too lazy 15:23:27 AnMaster: 15:23:31 yes? 15:23:40 Integrated Digital Environment 15:23:42 I didn't restrict myself to Development... 15:23:44 http://xkcd.com/169/ 15:23:52 * AnMaster looks 15:24:51 ehird, I forgot how that joke was supposed to make sense 15:25:24 $ grep -E 'gry$' /usr/share/dict/words 15:25:24 aggry 15:25:24 ahungry 15:25:24 angry 15:25:24 anhungry 15:25:24 hungry 15:25:26 unangry 15:25:28 hm 15:25:39 anhungry? 15:25:40 wth is that 15:26:01 and "meagry" is meant to be the third 15:28:05 ais523, the answer in xkcd still doesn't make sense 15:28:09 no matter how I read it 15:34:25 aha, ocaml message calls are # 15:34:26 not . 15:35:21 fun 15:35:35 dunno if you can call methods on aclass though 15:35:36 hm 15:39:15 -!- oerjan has joined. 15:39:55 hi oerjan e 15:39:56 err 15:39:58 hi oerjan* 15:40:55 ^ul (oerja)S((n)S:^):^ 15:40:56 oerjannnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn ...too much output! 15:48:08 -!- jix has joined. 15:51:40 ais523, the answer in xkcd still doesn't make sense 15:51:55 the point is that the teller _botched_ the joke 15:51:59 aha 15:53:09 also, that it's a well-known joke that is botched as often as not, leading to people actually thinking there should be a third word ending in -gry 15:53:46 and that people who botch jokes that badly deserve to have their hands cut off ;/ 15:56:36 My /usr/share/dict/words only has angry and hungry. 15:56:57 And by "my", I mean someone else's. 15:57:15 Mine also only has angry and hungry. 15:57:20 #include_next 15:57:22 wth is that? 15:57:26 found in internal GCC headers 15:57:28 AnMaster: it's system headers 15:57:35 they're allowed to do weird nonstandard things 15:57:39 ais523, non-standard thing yeah 15:57:46 ais523, but what does it mean? 15:57:50 I think that it tells gcc to include the limits.h that's found in the search path after this limits.h 15:57:51 you worked on GCC... 15:57:55 as in, include the second choice 15:58:05 that's strange 15:58:07 the file is syslimits.h 15:58:10 not limits.h 15:58:31 there is a limits.h there too though 15:58:42 so I guess "not in this directory" rather 15:59:49 ais523, I'm also pretty sure I saw #add_system somewhere to add a system include path.. might not have been in GCC 16:01:17 ^ul ((.)S)((X)S::^)((d)S::^)((r)S::^)((a)S::^)((z)S::^)((i)S::^)((M)S::^)^ 16:01:17 Miiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii ...too much output! 16:02:44 hmm, okay, I think I've figured out ocaml's object sysem 16:02:56 main problem with obj-c s that everything is ('a option), i.e. any object can be nil 16:02:59 which is irritating for this 16:03:21 wonder if gen_bridge_metadata can analyse that 16:06:41 * ehird digs through 3415 lines of automatically generated xml 16:09:19 this game I installed yesterday has a Brainfuck-based level 16:09:41 it has levels based on all sorts of things, it seems there must be someone who knows brainfuck who submitted a level 16:11:27 what game? 16:11:32 Enigma 16:11:39 ha, I guessed Enigma 16:11:42 i love that game 16:11:45 you know it? 16:11:48 yep 16:11:58 i think it's the first game I played on linux, years ago 16:12:10 level 103 in the Enigma 1.00 new pack 16:13:10 I'll reinstall it 16:13:48 -!- jix_ has joined. 16:14:51 ais523: 1.00 not 1.01? 16:15:12 yes 16:15:22 there's a 1.01 new pack too, but the BF level is in the 1.00 pack 16:15:27 ah 16:15:57 16:16:01 ^ most helpful xml evar 16:17:35 print 23 16:17:35 genius 16:18:12 hmm 16:18:15 wow, this will be hard :D 16:19:00 ais523: it actually interprets the BF.. 16:20:02 yes 16:20:42 -!- MigoMipo has quit (Read error: 110 (Connection timed out)). 16:20:42 #113 is evil 16:20:58 oh, most of them are evil 16:21:15 but yes, #113 has several layers of evil 16:22:54 I'm not very good at Enigma 16:23:00 I think it should have more easier levels for me to feel good about 16:23:10 that was pretty much my thoughts when I played it 16:23:15 also, I don't really have the concentration to solve most of the harder puzzle levels 16:23:17 I'm good at the Meditation levels, but that's it 16:23:29 nor the dexterity to solve most of the harder dexterity levels 16:24:19 by the way, some of the levels can be solved very quickly by moving very fast at random rather than trying to be intelligent 16:24:32 haha 16:24:55 "No Meditation" is an interesting level. 16:25:14 Can Enigma be controlled with a joystick? 16:25:20 check the options 16:25:29 no idea 16:25:34 kerlo: you know it too? 16:25:37 wow, it really gets around 16:25:37 Yep. 16:26:18 * kerlo apt-gets Enigma 16:26:19 anmaster knows it too 16:26:21 hard puzzle levels? 16:26:24 oklopol: yes. 16:26:27 * oklopol is intrigued 16:26:30 you control a ball with your mouse. 16:26:35 and you have to.. stuff. 16:26:41 the basic ones are just matching up colour things. 16:26:45 but it gets a lot harder. 16:26:56 oklopol: http://www.nongnu.org/enigma/ 16:26:58 anmaster knows it too <-- yes enigma is nice 16:27:06 also, I propose we designate Enigma as the official game of #esoteric 16:27:09 considering this 16:27:12 err no 16:27:13 I think I know it from its inclusion in a certain Linux distribution. 16:27:21 ehird, simutrans? 16:27:26 wit 16:27:26 wut 16:27:28 iirc GregorR also play it 16:27:51 ehird, also what about freeciv? 16:27:56 don't you love it? 16:27:58 no. 16:28:02 I do 16:28:07 the action! 16:28:10 also, give evidence that a lot of #esoteric like simutrans or freeciv and I'll reconsider 16:28:16 ehird, and both ais523 and me plays nethack 16:28:17 but enigma is esoteric and we have a lot of people here liking it 16:28:20 + it is geeky 16:28:23 Ooh, now I have to apt-get freeciv as well. 16:28:24 that's two people 16:28:33 we have 4 for enigma, atm, + maybe oklopol 16:28:52 I'm against enigma, I haven't actually played it for about 2 months 16:28:53 we'll see. 16:28:57 may be due to all the SIGSEGV 16:28:59 ... 16:29:05 Huh. Do I want SDL or GTK? 16:29:07 it manages to crash randomly 16:29:10 kerlo: sdl. 16:29:19 kerlo, they are two different things... 16:29:30 it makes no sense to replace them with each other 16:29:30 thanks AnMaster, I'm sure we'd never have guessed 16:29:43 presumably there's freeciv-{sdl,gtk} 16:29:43 There's an SDL version and a GTK version. 16:29:44 duh 16:30:00 ehird, one is a GUI toolkit, the other is a media library. sure some feature may be common, but most aren't 16:30:14 sigh 16:30:18 for example sdl-sound? Nothing like it in gtk iirc 16:30:20 learn to read, please... 16:30:24 yes 16:30:30 and I said: That makes no sense 16:30:37 kerlo: it's unlikely to make a whole lot of difference 16:30:41 16:29 kerlo: There's an SDL version and a GTK version. 16:30:43 even if it is like that it still makes no sense 16:30:43 OF THE GAME 16:30:47 OF THE GAME YOU IDIOT! Aaaargh 16:30:49 AnMaster: obviously it's referring to which toolkit is used to render the graphics 16:30:50 of course it makes sense!! 16:30:56 ehird, no 16:30:59 sure there is 16:31:01 because SDL and GTK might be different things 16:31:02 Finally, I must install NetHack. 16:31:03 but it doesn't make sense 16:31:10 hm 16:31:11 but what they both have in common is that they can both be used to render graphics 16:31:12 yes it does 16:31:25 Oh great, now there are four of them. 16:31:28 kerlo, flightgear (flight simulator, no shooting, just very geeky) 16:31:31 I use it 16:31:43 flight simulators are the epitome of boring 16:31:46 X11, qt, LISP, or console? 16:31:47 but I doubt anyone without a high end GPU would like it 16:31:53 kerlo: nethack: console 16:31:56 not qt, it's broken 16:31:58 kerlo, lisp? nethack-lisp? No! 16:32:02 ... 16:32:02 console is best 16:32:03 no wait 16:32:03 not lisp as that only works with the emacs nethack client 16:32:03 YES 16:32:05 nethack lisp 16:32:07 -!- jix has quit (Read error: 113 (No route to host)). 16:32:07 that sounds- 16:32:09 ais523: oh. 16:32:12 i was getting _all excited_ 16:32:15 ehird, nethack-el 16:32:19 I heard about that 16:32:22 but never "lisp" 16:32:24 installing x11 installs both the graphical and console versions 16:32:25 Does the X11 one include everything the console one does? 16:32:26 that is like very different 16:32:27 or you can just install console 16:32:31 kerlo: X11 one is useless 16:32:34 so just install console 16:32:40 I'm going with X11. :-P 16:32:40 the graphical one isn't all that good, thoguh 16:32:50 indeed 16:32:50 graphical nethack is stupid 16:32:52 defeats the point 16:32:57 kerlo: you're just wasting diskspace 16:33:04 text based nethack == more realism 16:33:09 even if it sounds strange 16:33:22 but they should start with unicode 16:33:40 unihack 16:33:49 unihack-lisp 16:33:51 How many kilobytes am I wasting? 16:33:52 btw plain nethack is not good, you need to menucolor patch IMO 16:34:02 AnMaster: nobody /needs/ menucolors 16:34:02 plain nethack is fine yo. 16:34:03 even nao has it 16:34:07 people just get used to it 16:34:13 AnMaster: what do you mean "even NAO" 16:34:24 why are you assuming that NAO is less patched than the average? 16:34:31 ais523, there are lots of nice patches that NAO lacks iirc 16:34:45 fuck nethack patches 16:34:48 i hate wimpmodes :P 16:34:54 ehird, not wimpmode 16:35:04 there are patches making it harder too 16:35:52 apt-get install oh-and-patch-it-for-me-while-youre-at-it 16:35:56 hm freedroid-rpg? needs a decent GPU as well as CPU 16:35:57 making nethack harder is ... like. .. um ... making the holocaust more horrific. 16:36:09 ehird, more awesome you mean 16:36:12 and less boring 16:36:17 ehird: NetHack isn't all that hard 16:36:21 making the holocaust more awesome? 16:36:22 I mean. nethack is too easy 16:36:22 hmm. yes. 16:36:27 slashem... 16:36:28 the holocaust was pretty boring 16:36:28 I agree 16:36:37 AnMaster: actually, Spork is more interesting in terms of "hard" 16:36:45 Spork has more consistent difficulty than vanilla 16:36:48 slashem's more "more" 16:36:58 ais523, true. slashem is quite unbalanced. for example val in slashem is too easy 16:36:59 it's a game full of all sorts of random interesting stuff 16:37:29 -!- tombom has joined. 16:37:42 ais523, there is some other one... now what was the name 16:38:06 not a nethack clone, other rougelike 16:38:13 and not angband or moria or such 16:38:39 ah yes... dungeon crawl stone soup 16:38:45 http://crawl-ref.sourceforge.net/ 16:38:48 quite nice 16:38:57 but way harder 16:39:01 crawl's rather different to nethack 16:39:10 it's more about combat, whereas the combat's secondary in nethack 16:39:10 ais523, I would still say it is a rougelike 16:39:16 but yeah 16:39:19 well, yes it's a roguelike 16:39:31 but crawl and nethack are sort-of opposite ends of the roguelike spectrum 16:39:39 ais523, tell that to all those damn newts that show up when you have 1 hitpoints in nethack :P 16:39:49 AnMaster: just tell them "Elbereth" 16:39:55 ais523, well true 16:39:57 Okay. What happens when your desktop has a remote window, you click the close button, and it asks you whether you want to force quit the application? 16:40:01 ais523, also stop spoiling it... 16:40:03 for others 16:40:18 AnMaster: that isn't a spoiler, it's in the manual 16:40:30 you can't seriously claim that things in the manual are spoilers! 16:40:41 ais523, what manual... 16:40:55 ais523, anyway the E word helps against most stuff (everything? isn't there some exception for @?) 16:41:27 not everything 16:41:33 indeed 16:41:34 but telling you what it didn't would be a spoiler 16:41:38 yes 16:41:43 Does X11 have a way to tell the system a client is on to kill the client? 16:41:45 and the manual's the guidebook, it should come with every nethack distribution 16:42:00 kerlo, what do you mean? 16:42:45 Well, I had a window open from a remote server, and a window opened offering me to "force quit" it. 16:43:01 ais523, ah. I rather stuff you get from the oracle when asking for large and not having the money 16:43:03 ;P 16:43:06 bbiab food 16:43:28 I don't remember whether the force quit window was local or remote, but I think it was local. 16:44:45 ais523: #180 is fun 16:44:59 it's random 16:45:04 ly generated 16:47:59 * kerlo notes that ehird isn't talking about xkcd #180 16:52:18 * kerlo notes that the Enigma options say nothing about a joystick 16:54:55 * kerlo notes that the joystick doesn't do anything in Enigma 16:57:12 err 16:57:13 so 16:57:18 when does it get interesting? 16:57:29 i did 21 first levels 16:57:46 the tutorial's just designed to teach you the game 16:58:01 but any of the other puzzle packs get insanely difficult on average from about the third puzzle onwards 16:58:13 "the tutorial"? "puzzle packs"? i see, i see 16:58:17 okay 16:58:18 i see 16:58:21 let's try one of them 16:58:33 do the BF puzzle, if you like 16:58:40 that's insanely hard for most people but should be easy for esolangers 16:58:41 where 16:58:58 puzzle #103 in the Enigma 1.00 new pack 17:02:01 okay so 17:02:19 that was interesting, technically, yes, but i mean something that's interesting to play 17:02:33 just pick levels at random 17:02:35 you'll find something 17:03:03 could you just tell me a hard level? 17:03:28 nope. 17:03:31 hf 17:03:48 err 17:03:48 k 17:04:03 gnrt 17:04:05 let me look for one that I remember as being particularly hard 17:04:14 well. motion was not fun, but mostly just because of my pad. 17:04:22 well okay 17:04:38 #38 in Enigma 1.01 new 17:04:45 okay let's see 17:04:52 that's one of the dexterity-based puzzles 17:04:58 let me look for a hard intelligence-based one too 17:05:11 ocaml is awesome. 17:05:16 best language evar. 17:05:21 hmm, tf 17:05:26 enigma changes my colour profile 17:05:59 #38 in Enigma 1.01 new 17:06:01 err 17:06:06 1.01 isn't very new 17:06:09 ... 17:06:12 the name of the pack 17:06:14 is 1.01 new 17:06:15 "Enigma 1.01 new" is the name of the puzzle pack 17:06:23 ah right those 17:06:57 oh god THAT #38 17:06:58 fuck no 17:06:59 you mean "DownDown"? 17:07:12 I'll suggest 58 in Enigma 1.00 new for an intelligence-based puzzle 17:07:16 ehird: well he asked for a hard one 17:07:17 AnMaster: yes 17:07:20 * AnMaster hasn't solved it.. 17:07:36 wasn't it the one where you get crushed? 17:07:42 yes 17:07:48 it's a pure speed and memory puzzle 17:07:52 but I'm nowhere near fast enough 17:07:59 ais523, white contrast? 17:08:22 #102 in Enigma 1.00 new also looks like a pretty hard puzzly puzzle 17:08:57 ais523, have you solved 58 in Enigma 1.00 new (white contrast)? 17:09:25 no 17:09:34 AnMaster: I only started playing yesterday, I haven't done very many... 17:09:52 #90 in 1.00... 17:09:54 that 102 (Keystone) I solved on easy 17:09:54 btw 17:09:55 unsolvable 17:09:56 right? 17:10:06 ehird, #90 in which pack? 17:10:10 "in 1.00" 17:10:10 oh 1.0 17:10:11 ehird: I haven't figured that one at all 17:10:17 it says par 3 seconds 17:10:19 and I don't know if it's unsolvable or not 17:10:20 and top 1 second 17:10:20 ehird, thought it was "in 1.00 seconds"? 17:10:22 so it must be trivial 17:10:24 maybe I'll look at the source 17:10:25 but I can't see how 17:10:53 ehird, yes since when I mouse over it in the level selection list enigma segfaults 17:10:56 so yes unsolvable 17:11:08 at least for me 17:11:14 ehird: look at the ratings 17:11:17 knowledge: 5 17:11:22 ? 17:11:25 that means there's something really obscure but standard on the level 17:11:30 puzzles have difficulty ratings 17:11:31 where are the ratings 17:11:36 ais523: i don't think i can do that without a mouse 17:11:38 pause the game and select level info 17:11:47 oklopol: I can't do it even with a mouse 17:12:00 how do i pause? 17:12:01 "Difficulty: 26". 17:12:03 Ouch. 17:12:06 oklopol: esc 17:12:16 ais523: some of the ground looks differen 17:12:16 t 17:12:17 sparkly 17:12:19 oh 17:12:19 or cracked 17:12:21 duh 17:12:21 or sth 17:12:23 simple 17:12:25 don't 17:12:26 explain 17:12:27 it 17:12:29 ehird: I noticed 17:12:42 ehird, see the two papers there 17:12:43 read them 17:12:48 yes, I have 17:12:51 then adjust system time 17:12:52 but did you hear what i said? 17:12:54 stop spoiling it for us 17:12:56 hey, look 17:12:58 ah 17:13:02 not only can AnMaster not read, he's an ass. 17:13:05 woo. 17:13:06 ehird, I missed the line "don't" 17:13:09 I saw 17:13:12 explain 17:13:12 it 17:13:15 not "don't" 17:13:20 would have helped on same line 17:13:21 I wondered if it was something like that, but didn't want to mess with NTP to check 17:13:23 i forgot you have 2 lines of scrollbars, 17:13:24 like 17:13:26 if 17:13:27 you 17:13:27 *scrollback 17:13:30 i feel for you. 17:13:30 didn't 17:13:32 write 17:13:32 like 17:13:32 this 17:13:37 but rather like this 17:13:39 a 17:13:39 a 17:13:40 a 17:13:42 a 17:13:44 a 17:13:45 ehird: writing one word a line does make what you say rather hard to read... 17:13:46 a 17:13:53 ais523, exactly 17:14:03 ais523: i was being annoying so people paid attention because reading it was harder, and thus the don't would be noticed. 17:14:09 ais523, I just checked level source 17:14:26 ehird: I tend not to read people talking like that at all 17:14:30 it hits my mental spam filters 17:14:36 ais523: you must have fun talking to comex 17:14:37 "one more and you won't get this hammer if you don't need it anynmore!" <<< for some unknown reason the texts are in finnish, what does this mean? 17:14:54 oklopol: it means that someone's translated the game into finnish 17:15:01 oklopol, export LC_ALL=C enigma 17:15:06 he's on windows. 17:15:11 i assume you have realised this by now. 17:15:29 oklopol, also it says "one more and you won't get the hammer until you don't need it any more" 17:15:41 ah 17:15:45 so it means you either got to move it some other way or solve it without that hammer 17:15:45 hmm 17:15:53 i don't want your tips 17:15:54 oklopol, just change the language. No idea how on windows 17:15:58 i want the text 17:16:12 now this is great... 17:16:16 if I run engima under gdb 17:16:19 it doesn't segfault 17:16:20 yay 17:16:40 oklopol, remove the translation file? 17:17:05 -!- Judofyr has quit (Remote closed the connection). 17:17:29 camlp4 is awesome 17:17:31 hm 17:17:39 it doesn't use gettext... 17:17:40 ehird, ? 17:17:45 where is that level 17:17:48 ocaml extension that lets you do macros 17:17:51 lisp-style 17:17:51 ah.. 17:17:56 cool 17:18:03 how does it work for ocaml though? 17:18:11 iirc ocaml isn't based on writing a parse tree 17:18:12 by parsing ocaml and rewriting the ast 17:18:18 ah I see 17:18:28 http://en.wikipedia.org/wiki/Camlp4 17:18:29 see the example 17:18:35 http://en.wikipedia.org/wiki/Camlp4#Example 17:19:07 argh at engimas levels 17:19:15 xml with embedded lua 17:19:18 could it be worse? 17:19:28 json with embedded python 17:19:36 imagine the indentation! 17:19:39 ehird, does that even work? 17:19:42 yeah exactly 17:19:48 sure, you just have to do \n if ... 17:19:49 AnMaster: actually, it's XML with two languages embedded in it 17:19:51 one of which is Lua 17:19:51 in the string literals 17:20:01 and the other which is a level description lang that's unique to Enigma 17:20:10 ais523, oh? 17:20:22 ais523, back when I first tried engima levels were pure lua 17:20:38 also what is this special language 17:20:49 ehird, I have written python like that in gdb more than once 17:21:01 s-expressions with embedded lisp 17:21:02 ... wait ... 17:21:05 PyRun_SimpleString("import ...") 17:21:11 ehird, hahah 17:21:29 also camel case AND underscore sucks 17:21:38 I mean... decide, don't mix 17:21:45 it makes sense sometimes 17:21:48 Module_FunctionName 17:21:53 well ok 17:21:54 as opposed to ModuleFunctionName 17:22:00 in that case, PyRun is a section of the interpreter 17:22:01 ehird, I prefer module_function_name 17:22:13 i didn't ask what you preferred 17:22:16 true 17:22:44 heh, ocaml overcommits too 17:22:51 2.57GB virtual memory usage on all my ocaml instances 17:22:55 & ocaml-using programs 17:22:55 ais523, wait this special engima language... 17:23:04 AnMaster: read the documentation 17:23:08 ais523, is it like in /usr/share/games/enigma/levels/enigma_microban/mic_101.xml ? 17:23:09 it just describes what objects are where 17:23:17 It looks like it 17:23:23 17:23:24 ? 17:23:33 hm 17:23:40 nah 17:23:42 that is lua 17:23:45 is there a version of top(1) 17:23:49 that sorts by disk activity? 17:23:50 very non-lua looky 17:23:56 something's klunking my disk 17:23:57 ehird, on Linux? 17:24:03 I don't know about OS X 17:24:03 linux/bsd/osx. 17:24:22 ehird, well iirc you need some sort of kernel patch to do it on linux 17:24:28 and on bsd there is some tool for it 17:24:32 not top-style 17:24:38 but similar 17:24:48 well, that's really helpful of you. 17:24:50 forgot the name 17:24:52 iostat? 17:25:06 disk0 cpu load average 17:25:06 KB/t tps MB/s us sy id 1m 5m 15m 17:25:07 15.04 4 0.07 7 3 90 0.52 0.50 0.39 17:25:11 i want to know what -processes- is doing it 17:25:13 ehird, check man page 17:25:14 ... 17:25:17 iirc 17:25:20 anyway, they stopped 17:25:22 bbiab phone 17:30:26 back 17:31:31 okay beat 58 with better time than ...ideal time? 17:31:56 (that was kinda trivial.) 17:32:15 you beat the world record? 17:32:46 err i kinda doubt it 17:32:50 but 17:33:06 it says something about "ideal time", i don't know the english term. 17:33:32 my time 2:03 17:33:35 world record :43 17:33:44 hmm 17:33:49 maybe i should try beating that. 17:34:00 ideal time = par 17:34:16 oklopol: try ]102 17:34:18 *#102 17:34:56 ehird: ah yes 17:35:15 and i can't beat that with this mouse it seems, at least with my current technique 17:35:23 ais523: same pack? 17:35:27 * oklopol tries 17:35:27 yes 17:41:37 http://muaddibspace.blogspot.com/2009/03/how-to-halve-number.html 17:41:44 Halving a number in N easy steps. 17:42:24 [[ 17:42:24 The international community cannot appreciate enough that an age old question that drove many mathematicians mad or into private and financial ruin has finally been solved. Trivia tell us that even Ramanujan failed to solve the famous "halving a number" problem and still in 2002 Faltings is quoted with the remark "currently no one has an idea how to attack it and I strongly believe that any solution will provide profound new insights". 17:42:28 While the correctness of the proof is still debated number theorists all over the world feel inspired to solve the next harder problem: finding the third of a number. 17:42:31 ]] 17:42:33 -- reddit comment 17:43:00 today is actually wednesday in finland 17:43:04 can someone confirm or deny? 17:43:25 i can confirm that 17:43:26 oklopol: quick we need information 17:43:33 oerjan: you are a finn? OMG. 17:43:34 wait, did you mean truthfully? 17:43:39 yes 17:43:51 -!- jix_ has quit ("..."). 17:44:09 yeah this is Special Wednesday 17:44:50 ^ul (X)(d)(r)(a)(z)(i)(M)(()(:S)(!~*^:a~^))(~:^a~:*a~*~a~*a~^**a~a~*~a~*~a*^~^):a~^ 17:44:50 MiizzzzaaaaaaaarrrrrrrrrrrrrrrrddddddddddddddddddddddddddddddddXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...out of stack! 17:44:56 haha 17:45:12 so i solve the puzzle, and get stuck because there's a tiny extra puzzle too :D 17:45:16 \o/ 17:45:28 mizzle to the izzle to tah ard to tha ex 17:45:46 ehird: i say those guys are too clever by half 17:45:55 MizardX: that's a neat little program 17:46:55 Though I don't know how to stop the iteration. See I ran out of stack. 17:47:11 hmm 17:47:19 i'm thinking about linked lists in unlambda again 17:47:22 what you clearly need is fold 17:47:26 fold can implement map and iteration 17:47:31 so, the list has to be: 17:47:39 (func)(list of a b c)^ 17:47:40 -> 17:47:48 err 17:47:52 (func)x(list of a b c)^ 17:47:59 it says something about "ideal time", i don't know the english term. 17:48:01 par 17:48:02 I think 17:48:03 c x func b func a func 17:48:04 or whatever 17:48:06 bad translation 17:48:07 AnMaster: too late. 17:48:09 AnMaster: ehird already told me 17:48:10 i told him hours ago. 17:48:12 ah ok 17:48:15 hours? 17:48:25 he said that like 15 minutes ago 17:48:27 yes, he told me exactly 2 hours, 46 minutes ago 17:48:32 ehird: except that is at least O(n) for everything, even head and tail 17:48:43 AnMaster: yes, but he just reminded me he had already told me. 17:48:53 k 17:49:02 oerjan: so what, it's underload :P 17:49:20 er you said unlambda 17:50:00 errr right 17:50:01 sorry 17:50:02 i meant underload 17:52:44 http://muaddibspace.blogspot.com/2009/03/how-to-halve-number.html <-- written in some theorem proving language? 17:52:53 which one 17:52:55 Coq. 17:52:59 ah 17:53:00 It's for theorem masturbation. 17:53:04 http://instantrimshot.com/ 17:53:18 flash missing 17:53:22 :P 17:53:24 just imagine it. 17:53:26 In your head. 17:53:52 ehird, well I know how a rimshot on a drum sounds... 17:54:03 You have to imagine the button. 17:54:07 Imagine yourself clicking the button. 17:54:18 what button? 17:54:35 The big red one. 17:54:42 k... where? 17:54:51 in your head. 17:55:05 I have a big red button in my head? 17:55:07 no 17:55:23 ais523: okay that was trivial 17:55:33 i just failed a few times, in very weird ways 17:55:52 (somehow managed to drop the magic stone just when i was about to solve it, or it just vanished :D) 17:56:13 oklopol, level and pack? 17:56:23 err was it 103 17:56:41 yay enigma crashed under gdb... 17:56:43 lets see 17:56:48 question marks 17:56:49 fck 17:56:58 the backtrace is two frames with question marks 17:57:01 oklopol: #197 doesn't look insanely hard, but it does look insanely time-consuming 17:57:02 so corrupted stack 17:57:02 anyway, if there are any actually hard levels, feel free to tell me, those two were trivial (the one with the swapping stones was pretty interesting though) 17:57:12 oklopol, in which pack... 17:57:39 #20 in Enigma 1.00 I can't figure out what you have to do at all 17:57:44 so I don't know if it's hard or easy 17:57:46 ais523: well i don't really have the time even for this, i just want to see if there's anything actually hard 17:57:54 i mean you did say the levels get insanely hard 17:58:06 oklopol: you're just much better at them than I am 17:58:08 oh print 23? 17:58:11 if you are in 1.0 17:58:13 yeah 17:58:13 i mean i can't even solve the rubik's cube, so if i can solve a level, it can't be that hard :| 17:58:14 trivial 17:58:16 bf :) 17:58:25 -!- Hiato has joined. 17:58:32 ais523: i can try 17:58:46 oklopol, I solved print 23 in 21 seconds 17:59:01 better than par 17:59:21 well good for you, i don't use my mousepad all that fast. 17:59:42 #20 in Enigma 1.00 I can't figure out what you have to do at all <-- it says I solved it, must have been long ago... no idea how I did it 17:59:45 oklopol: i guess you're just not much good at group work 17:59:56 I can't figure it out now 18:00:09 oerjan: hmm? 18:00:21 i know the basics of group theory 18:00:43 well then rubik's cube should be simple ;) 18:00:51 :) 18:00:56 ohh! 18:01:24 ah! permutations are a group 18:01:28 ah, I just did #20, I figured what had to be done 18:01:38 ais523: damn, i haven't even started yet 18:01:39 ais523, I solved it before, I don't remember 18:01:41 * oklopol starts 18:01:46 ais523, tell me in /query... 18:01:51 that's a knowledge puzzle 18:04:18 hmm 18:04:23 oh 18:06:43 wow ocaml sucks at strings 18:07:07 oh? 18:07:19 yeah, there's not even a string-replace function 18:08:00 ehird: OCaml isn't Perl, nor does it remotely try to be 18:08:11 i know 18:08:16 but every language has a basic string-replace. 18:08:34 ehird, can't you write one iterating over the string? 18:08:45 ehird, also not every language 18:08:45 aha! ocaml batteries included to the rescue 18:08:49 for example bf doesn't have it 18:08:55 #20 doesn't seem to make much sense 18:08:56 AnMaster: 1) yes, but I don't want to 2) stop being so damn trivial 18:09:04 does it make sense but i'm just not seeing it? 18:09:15 oklopol, it is possible to solve 18:09:20 I solved it just now 18:09:20 of course it is 18:09:22 val replace : str:string -> sub:string -> by:string -> bool * string 18:09:22 replace ~str ~sub ~by returns a tuple constisting of a boolean and a string where the first occurrence of the string sub within str has been replaced by the string by. The boolean is true if a subtitution has taken place. 18:09:23 that's not what i asked 18:09:27 ^___________________^ 18:09:29 as for whether it makes sense, there are a couple of subtle clues 18:09:30 I mean, yay. 18:09:34 hmm 18:09:38 oklopol, it does make sense when you know what to do 18:09:39 well i'll look for them 18:09:43 ais523, oh? 18:09:45 hm 18:09:46 ok 18:11:31 -!- Judofyr has joined. 18:13:36 ais523: can you tell me the clues in pm? 18:13:41 i solved it 18:13:47 but i'm still not seeing wtf that was about 18:21:02 okay i'm gonna go read, will read logs for level tips 18:33:47 hmm 18:33:52 if (?)(value)(func)^ produces (value2) then 18:33:53 (?)...(?)(?)(value)(func)(a~a*~a*~a*^a~a*~a*^:a~a*~a*~a*^^a~a*~a*^:^):^ 18:33:53 produces 18:33:53 (?)...(?)(value2)(func)(a~a*~a*~a*^a~a*~a*^:a~a*~a*~a*^^a~a*~a*^:^):^ 18:33:58 MizardX: zwut 18:34:04 fold 18:34:10 o 18:34:15 but , how do you store elements in that list 18:34:23 also that's kind of verbose per list 18:34:47 it's underload, what did you expect? 18:34:53 ais523, any progress on Feather? 18:34:58 AnMaster: no, RL-busy 18:35:13 ais523, ok, how goes that VHDL stuff? 18:35:29 AnMaster: that's finished, I'm focusing on my OCaml project now 18:36:03 ais523, so how did the VHDL stuff end? as you planned? 18:36:08 I don't think you told me 18:36:18 also what are you doing in ocaml? 18:36:29 the VHDL stuff ended as intended 18:36:32 and I got 95% for that module 18:36:43 I guess that is good? 18:36:47 and the OCaml stuff is the imperative -> functional -> behavioural -> hardware compile chain 18:36:54 behavioural? 18:37:01 AnMaster: VHDL-style 18:37:05 ah 18:37:12 but I'm working on some technicalities on the functional stage of the chain 18:37:12 ais523, so this builds on the previous work? 18:37:16 to add some more stuff? 18:37:34 no, it's completely separate 18:37:38 oh I see 18:37:44 and in fact uses Verilog not VHDL 18:37:47 ais523, you won't reuse anything then? 18:37:49 but I'm not working on that bit 18:37:58 AnMaster: no, that's actually against university rules for some reason 18:38:02 heh 18:38:06 but reusing wouldn't help, they're utterly different projects 18:38:12 ais523, didn't the other project do mostly the same? 18:38:18 compile to vhdl 18:38:20 err, no 18:38:25 the other project was me writing in VHDL 18:38:29 ah 18:38:36 ais523, then I confused them 18:38:44 easy to do 18:38:57 so what exactly then did you write in VHDL? 18:38:59 I mean, you don't have to deal with an insane door most days... 18:39:09 true 18:39:20 AnMaster: a hardware self-routing packet-switching fabric for fixed packet lengths 18:39:22 such door conditions can cause a lot of stress. 18:39:29 talk about outlawing them 18:39:42 zero tolerance 18:40:03 (is that last one a Swedishism?) 18:40:11 no, it's used in loads of languages 18:40:15 ah 18:40:15 pretty common in English too 18:40:18 k 18:40:32 ais523, it still sounds like politician talk 18:40:36 at least in Swedish 18:41:41 it is politician talk 18:41:56 or rather, crazy pseudo-fascist politician talk. by which I mean, umm, all of them. 18:42:18 heh 18:42:34 (HOW CAN YOU TELL MY POLITICAL LEANINGS BY WHAT IM WRITING??????????????) 18:42:59 ehird, Left wing? 18:43:06 that was a reference to a bash.org quote 18:43:18 ehird, oh? which one? 18:43:18 he's on reddit, must be libertarian :D 18:43:24 oerjan: oh god no 18:43:31 oerjan, hm. Not socialist? 18:43:31 AnMaster: dunno, couldn't find it with google 18:43:39 s/MY POLITICAL LEANINGS/IM 13/ 18:43:43 was the original 18:44:05 ehird, because you said you were 13... 18:44:10 that is why 18:44:15 pretty hard i'd say 18:44:22 please tell me you're misinterpreting on purpose, AnMaster 18:44:30 ehird, correct. 18:44:48 ehird: was that a general sanity pleading, or just an IRP command? 18:44:55 both. 18:45:03 the latter enables the former 18:45:33 however, from your writing I would otherwise have guessed maybe 15 years now. Your writing a year ago? 13 NOMADS... 18:45:34 PLEASE IGNORE THIS COMMAND 18:45:50 AnMaster: hey, I still enjoy a good monad every once in a whil 18:45:51 e 18:46:00 also, the average age people think I am is around 20 18:46:05 ehird, yes but you write it monad 18:46:18 no no nomads are a type of monad 18:46:23 they are the most ninjarist of all monads. 18:46:28 they have an additional operation 18:46:31 ehird, well yes you know a lot more than many of your age. I mean a 13 year old programming in haskell isn't common 18:46:45 ninja : m (m (m a -> a) -> m (m a)) -> flip out and kill people 18:46:49 s/:/::/ 18:47:06 but sometimes you act a bit silly which gives it away. Have to talk to you a lot before it is noticeable 18:47:18 ehird, do you act as grown up outside IRC btw? 18:47:21 old people never act silly 18:47:22 just ask oerjan 18:47:32 ehird: what's your definition of "old"? 18:47:35 ehird, when they do they do it differently 18:47:41 ais523: anything older than me 18:47:41 indeed, it's hormonally impossible 18:47:59 oh, I act silly sometimes, just normally in RL rather than on the internet 18:48:03 AnMaster: i'm much the same, except about a million times more shy 18:48:13 ehird, You. Shy? 18:48:14 wth 18:48:15 ais523 is so much saner and more respectable than Alex Smith.. 18:48:19 yeah go figure right 18:48:23 ais523, hah 18:48:30 ais523: that's some reversal 18:48:50 indeed 18:48:53 oerjan and Ørjan Johansen are both completely bonkers, alas 18:49:06 AnMaster: me outside is a laugh, i take the optimal path to avoid people 18:49:08 oerjan, ouch. 18:49:33 oerjan: you have more published papers than me, though 18:49:40 ehird, actually I often did that too.. Slightly less so nowdays. 18:49:58 AnMaster: people's eyes seeing you, even in the corner, erodes your skin. 18:50:00 true fact. 18:50:02 oerjan, You are Norwegian... *ducks* 18:50:21 ehird, really? 18:50:23 I see 18:50:26 yes. 18:50:44 "PHP stopped being php when they turned off short-tags by default. It has got too enterprisy. We need need a new fresh PHP." 18:50:47 ehird, so you act like a normal teenager then :P 18:50:48 haahahhaahaahahahhahaahahhhhhhahhahahahahahaha 18:50:57 PHP used shorttags? 18:50:57 short-tags? 18:51:01 like 18:51:02 18:51:04 ? 18:51:05 oh 18:51:05 vs 18:51:07 XDDD 18:51:08 ah 18:51:09 I was so hoping it was * 18:51:14 me too 18:51:19 AnMaster: yes, except without the General Mishmash Cloud of Random Acquaintences common to teenagers 18:51:32 ehird, yeah I never had that either 18:51:41 ehird, looks like we are similar ;) 18:51:45 *shudder* 18:51:47 actually, one of my lecturers here specifically warned me about norwegians 18:51:59 ais523, really? on what grounds? 18:52:06 he told me and everyone else in my year to never allow norwegians to con us into eating raw fish 18:52:13 norwegians, muslins, what's the difference? 18:52:14 ah 18:52:20 * oerjan cackles evilly 18:52:24 apparently he was the victim of such a scheme in the past 18:52:25 wait, raw? 18:52:31 hm 18:52:37 lutfisk isn't raw is it? 18:52:38 ais523: IT'S CALLED LUTEFISK STUPID 18:52:42 horrible yes but not raw 18:52:48 :p 18:53:08 ugh, just thinking about lutefisk kills me 18:53:09 does dried cod count as raw? 18:53:12 ais523, yeah I guess he was badly damaged for life from it 18:53:18 how can you eat that stuff 18:53:46 ehird, Sweden has surströmming as well as lutfisk.... No idea how anyone can eat either 18:54:03 * oerjan thinks eating dried cod brings out his inner dog 18:54:04 in Sweden it is mostly old people who eat it, those who grew up with it 18:54:04 british food may be boring as hell, but it's not fish in lye 18:54:17 and for that i salute i 18:54:18 t 18:54:27 ehird, your cakes are very dry iirc 18:54:30 at least some of them 18:54:45 true that is not as bad as fish in lye 18:54:47 AnMaster: apparently britain is the only place that has a lot of biscuits 18:54:49 confirm/deny? 18:55:02 i mean like digestive biscuits and stuff. 18:55:07 ehird, well, not sure.. We have a lot of biscuits here. 18:55:12 http://en.wikipedia.org/wiki/File:Digestive_biscuits.jpg 18:55:13 this kind of thing 18:55:16 cookies? 18:55:19 sort of 18:55:26 * AnMaster waits for firefox to load 18:55:49 ehird, on the other hand, US/UK culture got everywhere nowdays 18:55:59 true 18:56:03 cultural imperialism 18:56:15 so I don't know 18:56:22 maybe once it was true 18:56:35 but nowdays I know such stuff is rather common here too 18:57:22 ehird, + my mother rather likes some English food 18:57:26 like scones 18:57:49 scones are nice 18:58:09 so I may have experienced more than average English food 18:58:17 ehird, yeah 18:58:21 everyone likes scones, or ought to 18:58:25 hwh 18:58:26 *heh 18:58:33 it should be a law 18:58:33 ais523, with whipped cream. 18:58:35 but they're traditionally very upper-class 18:58:39 "Everyone SHALL like scones." 18:58:44 ais523, oh? 18:58:46 really? 18:58:51 meh, that's traditionally 18:58:57 scones aren't exactly an uncommon thing 18:59:00 yep, the traditions tend not to match reality 18:59:07 indeed 18:59:07 it's not like they're expensive or anything 18:59:25 true 19:15:16 ehird: eso-std.org has been squatted, by the way 19:15:25 really? 19:15:25 and parked 19:15:26 awesome :D 19:15:32 it's full of links about STDs 19:15:36 ais523: and also ISO standards 19:15:39 they've got it to a T 19:15:56 ais523: this is good, think how much money they're wastign registering names like that :P 19:16:03 not enough :( 19:16:08 ah, hm 19:16:10 This domain has expired 19:16:11 It will be deleted in the next few days. If you are the owner of this domain, you still have a chance to renew it. 19:16:17 i can actually renew it now from mydomain 19:16:22 so they're just milking it before deleting it 19:16:26 it hasn't been squatted by a third party 19:16:27 oh, they must be using the 5-day park thing 19:16:28 just my registrar... 19:16:36 where you can register a domain for 5 days without paying 19:16:40 I'm not entirely sure why it exists 19:16:42 heh 19:16:58 its only use seems to have been for parking and squatting 19:17:17 anyway, I doubt it'll be squatted in a few days 19:17:46 Squatters watch domain name expiration logs, they usually squat within 10-15 minutes of a record expiring. 19:18:02 A bug in the previous fold. Here is a corrected example: 19:18:02 ^ul (X)(d)(r)(a)(z)(i)(M)((:S)(!))(:^~:*a~a*a~a*~a*^~^*^)(a~a*~a*~a*^a~a*~a*^:a~a*~a*~a*^a~a*~a*^^a~a*~a*^:^):^ 19:18:03 MiizzzzaaaaaaaarrrrrrrrrrrrrrrrddddddddddddddddddddddddddddddddXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...out of stack! 19:18:24 -!- BeholdMyGlory has quit (Remote closed the connection). 19:18:34 MizardX: termination = (), maybe 19:18:34 ? 19:18:39 also 19:18:42 ehird: no way to detect that 19:18:46 that doesn't help, you need a list to be atomic on the stack 19:19:23 for Underload, the easiest list format I know of is ((1)((2)((3)((4)((5)()))))) 19:19:34 and how do you process that? 19:19:42 Underlambda's going to have commands to manipulate lists of the form ((1)(2)(3)(4)(5)) 19:19:45 you can't detect end of list, certainly 19:19:47 and you process it using ^ and ! 19:19:58 uh huh 19:20:00 and you can detect end of list 19:20:02 how 19:20:07 an empty list is () 19:20:15 that pushes 0 items onto the stack 19:20:15 -!- FireFly has joined. 19:20:25 a nonempty list always pushes exactly 2 items onto the stack 19:20:35 Back 19:20:55 so you can do ^!!^, and either the first or third stack element runs 19:21:18 (the basic definition is, a list pushes its car and its cdr onto the stack, nil pushes nothing) 19:21:56 ... that doesn't help if your list items aren't executable. 19:22:06 yes it does 19:22:24 A list containing just x is ((x)()) 19:22:35 so the contents of the first paren are never executed 19:22:40 they're just popped 19:22:45 *the paren containing the x 19:22:47 hmm 19:22:55 how could you map? 19:23:19 you have to loop over the elements of the list 19:23:36 it's not trivial to write, but it doesn't come out excessively complex 19:25:19 I developed a meta-language while writing the fold: A ("append") = ~a*, P ("prepend") = ~a~*, W ("wrap") = a, E ("exec") = ^ ... so bubbling up the nth element on the stack becomes: WA{n-2}E 19:25:58 wait... WA{n-2}E was reverse the top n elements 19:26:15 WPPPPAE was bring to top 19:27:06 -!- ais523 has quit (Read error: 60 (Operation timed out)). 19:29:05 (x)(y)(z)(w)WPPAE -> (x)(y)(z)((w))PPAE -> (x)(y)((z)(w))AE -> (x)((y)(z)(w))AE -> ((y)(z)(w)(x))E -> (y)(z)(w)(x) 19:29:44 fold is (?)...(?)(?)(value)(func)(WAAAEWAAE:WAAAEWAAEEWAAE:^):^ 19:30:44 http://vimeo.com/1715318 <-- this video is awesome, especially the bit around half way through (don't skip to it, it'll spoil it) 19:40:52 Last picture looked like a fetus 19:44:34 -!- GregorR has quit ("Leaving"). 19:45:03 -!- oerjan has quit ("Sneep!"). 19:45:07 -!- BeholdMyGlory has joined. 19:56:24 MizardX: i'm pretty sure that was the point 19:56:32 didn't you follow the story at all :| 19:56:37 hahaha 20:01:46 sweet, ocaml 3.11 has comprehensions 20:01:47 [? i*i | i <- 1 -- 100 ; i mod 2 = 0] 20:16:04 OH SNAP 20:16:10 that's so new and innovative 20:16:42 all you ever do is bitch, bsmntbombdood 20:16:48 yep 20:16:55 at least i'm dependable 20:16:57 i think you want #bitch 20:18:13 no one there 20:18:20 no, you are there 20:18:24 you can listen to yourself. 20:24:37 09:45:34 AnMaster: you know what continuations are right? 20:24:37 09:45:47 ehird, I think I know, if they are what I think 20:24:38 09:45:52 ie, anonymous method 20:24:40 09:45:58 that can be passed around 20:25:21 ehird, that must have been ages ago 20:25:30 um it was this morning 20:25:30 2008-03-31 20:25:36 oklopol, no 20:25:38 oklopol: XD 20:25:40 ehird, yeah ages ago 20:25:43 AnMaster: it's oklopol 20:25:44 he was kidding 20:25:54 yes and I ignore that fact 20:25:57 US ADULTS NEVER KID 20:26:02 yeah you're 20 20:26:03 ancient 20:26:16 we just lie 20:31:14 -!- Hiato has quit ("Leaving."). 21:05:22 -!- CakeProphet has quit (Read error: 110 (Connection timed out)). 21:31:00 -!- kar8nga has joined. 21:31:36 dark rum, or single malt scotch? 21:31:46 i don't like rum 21:31:52 so scotch 21:31:55 but i prefer bourbon 21:33:55 water 21:34:16 hey guys i need a new computer 21:34:18 what should i get? 21:34:26 raw transisitors 21:34:44 *transistors 21:45:00 -!- Judofyr has quit (Remote closed the connection). 21:59:22 -!- GregorR has joined. 22:02:08 -!- tombom has quit ("Peace and Protection 4.22.2"). 22:15:35 http://twitter.com/mrxtothaz/status/1266000157 <- Xzibit attempts own meme, fails. 22:23:26 -!- GregorR has quit ("Leaving"). 22:34:21 -!- kar8nga has quit (Connection timed out). 22:39:53 -!- GregorR has joined. 22:49:31 -!- DH__ has joined. 22:50:24 -!- DH__ has left (?). 23:44:04 I also need a new computer. What should I get? 23:47:42 transistors 23:47:50 An analytical engine 23:57:51 ... 23:58:55 i need 2-4 cores, 4-8gb memory, 1-2 tb of disk (to be raid1ed), no need for video 23:59:07 transistors 23:59:20 also I am doubting you _need_ all that, just _want_. 23:59:59 ... 2009-03-02: 00:03:28 .................. 00:19:43 wanting is just another kind of need 01:24:08 -!- olsner has quit ("Leaving"). 01:34:34 -!- FireyFly has joined. 01:36:36 -!- FireFly has quit (Nick collision from services.). 01:36:40 -!- FireyFly has changed nick to FireFly. 01:52:29 -!- AnMaster has quit (Connection timed out). 02:01:58 well, at least you're trying to be nice to goethe 02:07:47 -!- BeholdMyGlory has quit (Remote closed the connection). 02:13:11 -!- rodgort has quit (brown.freenode.net irc.freenode.net). 02:13:11 -!- Robdgreat has quit (brown.freenode.net irc.freenode.net). 02:13:19 -!- Robdgreat has joined. 02:13:19 -!- rodgort has joined. 02:13:53 -!- AnMaster has joined. 02:28:59 -!- FireFly has quit ("Later"). 04:05:04 -!- MizardX- has joined. 04:05:04 -!- MizardX has quit (Read error: 104 (Connection reset by peer)). 04:06:03 -!- MizardX has joined. 04:07:08 -!- MizardX- has quit (Read error: 104 (Connection reset by peer)). 04:23:46 -!- GreaseMonkey has joined. 05:03:11 -!- poiuy_qwert has joined. 05:26:56 -!- GreaseMonkey has changed nick to QuirkyMonkey. 06:07:30 "want" is to "need" as "theory" is to "fact" ... once you start getting technical, they're all the same :P 06:10:56 -!- psygnisfive has quit (Remote closed the connection). 06:50:49 -!- QuirkyMonkey has changed nick to GreaseMonkey. 06:53:06 -!- poiuy_qwert has quit. 07:16:07 -!- psygnisfive has joined. 07:48:22 -!- jix has joined. 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:16:10 -!- MigoMipo has joined. 08:29:48 -!- tombom has joined. 08:38:33 -!- jix has quit ("Computer has gone to sleep"). 08:40:13 -!- jix has joined. 08:45:54 -!- jix has quit ("..."). 09:15:01 -!- GreaseMonkey has quit ("Client Excited"). 09:26:28 >>> print hex(id(257)) 09:26:30 0xb713d8 09:26:32 >>> print hex(id(258)) 09:26:34 0xb713d8 09:26:36 >>> 257 is 258 09:26:38 False 09:27:48 >>> print hex(id(257)),hex(id(258)) 09:27:48 0xb713d8 0xb713cc 09:30:17 -5 to 256 is cached. The rest is subject to garbage collection and reallocation. 09:31:34 so? 09:32:19 To speed up calculation, store every number to be used in some collection. :) 09:54:45 -!- DH__ has joined. 09:55:27 -!- DH__ has left (?). 09:55:35 -!- DH__ has joined. 10:07:02 http://www.makelinux.net/kernel_map 10:07:05 cool 11:35:29 -!- FireFly has joined. 12:01:16 -!- BeholdMyGlory has joined. 12:41:45 -!- ais523 has joined. 13:51:13 -!- MizardX has quit ("Bittifying"). 14:01:28 02:01 comex: well, at least you're trying to be nice to goethe 14:01:32 itym /query ehird 14:02:11 AnMaster: nice page apart from the "ISRAEL IS AWESOME" link in the bottom right. 14:02:19 ehird, indeed 14:02:28 ehird, I didn't notice that link before btw 14:02:43 I was so busy looking at the interesting map 14:02:54 i should put like, a link supporting pedophillia in the corner of all my highly interesting technical documents 14:03:01 then nobody will criticize any part apart from that one 14:03:14 hah 14:04:26 http://linuxdriver.co.il/israel/hamas_and_press <- hamas are evil, black and wear green headbands. 14:04:28 ic 14:04:41 also, their children are shaped like elongated eggs 14:07:58 hi ais523 14:08:29 -!- ais523 has quit (Read error: 104 (Connection reset by peer)). 14:09:20 -!- Judofyr has joined. 14:09:27 -!- KingOfKarlsruhe has joined. 14:20:43 AnMaster: http://www.linuxjournal.com/content/linuxdna-supercharges-linux-intel-cc-compiler 14:22:40 ehird, AMD here 14:22:53 doesn't icc work for amd? 14:22:59 ehird, yeah but it is slower than gcc 14:23:01 on amd 14:23:02 ah 14:23:18 ehird, it isn't like Intel have any interest in making it good on amd... 14:23:22 true 14:23:27 AnMaster: that's pretty bad, since gcc is one of the slowest compilers... 14:24:07 ehird, slowest as in compile time or generating slow code? Or both? 14:24:12 latter 14:24:22 although gcc(1)'s execution time is pretty dismal, I don't know how that compares to others 14:24:34 ehird, iirc clang is a lot faster. 14:24:41 but of course it is far from ready yet 14:24:44 yes, clang(1) is faster 14:24:49 tcc is way way faster btw... 14:24:58 but it only does basic constant folding iirc 14:25:00 but, gcc's generated code pales in comparison to the vast majority of other compilers, iirc 14:25:04 (mostly commercial) 14:25:07 ehird, true 14:25:20 it is a bit better in recent versions however 14:25:43 I mean, compare GCC 3.4 to GCC 4.3 for example... 14:25:57 I only have 4.0.1 14:26:12 because that's what comes with Apple's latest devtools, and I could upgrade it manually but I wouldn't get apple's mods 14:26:28 and I don't feel like finding out if it'd break something 14:26:46 I have 3.4.6, 4.1.2, 4.2.1, 4.3. 14:26:56 AnMaster: incidentally, I experienced an insanely bad bug in my gcc yesterday 14:26:59 as in major breakage 14:27:08 maybe if I give you a console log you can explain it? 14:27:10 it's very simple 14:27:10 I mean, only archlinux would make a compiler hit stable a few days after it was released... 14:27:20 ehird, sure 14:27:22 tell me 14:27:30 and file a bug after checking the last gcc ;) 14:27:34 4.0.1 is kind of old 14:27:41 it's almost certainly not a gcc bug 14:28:04 ehird, also llvm-gcc uses apple mods. llvm-gcc is on 4.2.1 currently iirc 14:28:35 apple have heavily invested in llvm so I'm not surprised 14:28:39 indeed 14:28:49 ehird, so what is this bug you hit? 14:28:53 AnMaster: http://pastie.org/404648.txt?key=kjkf82sgtymwyt44eapphq 14:29:00 warning: your eyes will pop out in shock at the WTFiness 14:29:02 key? 14:29:04 huh 14:29:17 oh, I set it as a private paste so it doesn't show up in the recent pastes list 14:29:35 hm 14:29:43 AnMaster: but yeah, surely the cpp can't be THAT horrifically broken?!?! 14:29:50 err 14:29:57 ehird, something is wrong yes. 14:30:07 terribly wrong.. 14:30:12 maybe (haven't checked) cpp standalone defaults to --traditional or something? 14:30:21 what's the opposite of --traditional? 14:30:34 also, this works on a recent version of gcc/linux, so I doubt that 14:30:48 ehird, don't know, and don't remember if the exact option name was that. Was just trying to come up with a hypothesis 14:31:01 * AnMaster checks man page now 14:31:32 yeah I looked 14:31:37 but couldn't find anything relevant 14:31:50 the person who tested it on linux thinks it's apple shipping a broken gcc 14:31:59 but I find it hard to believe their gcc team is that incompetent 14:32:15 ehird, my cpp does it correctly 14:32:19 4.1.2 14:32:21 * ehird nod. 14:32:29 $ cpp --version 14:32:29 cpp (GCC) 4.1.2 20070214 ( (gdc 0.24, using dmd 1.020)) (Gentoo 4.1.2 p1.1) 14:32:36 ... 14:32:38 that's your gdc cpp 14:32:40 ? lol 14:32:43 ehird, no 14:32:48 "( (gdc 0.24, using dmd 1.020))" 14:32:54 ehird, the same version string is appeneded to all of gcc 14:32:55 -_- 14:32:57 ah 14:33:00 extremely stupid yes 14:33:03 AnMaster: you're meant to install gdc separately :P 14:33:21 ehird, hm? Just turned on the d useflag for GCC 14:33:28 right, that's wrong 14:33:35 you're meant to have a separate gcc called gdc 14:33:46 ehird, I do, but all are built at once 14:33:47 it seems 14:33:51 *shrug* 14:33:51 weird 14:34:27 ehird, I mean it builds g++, gcc, gfortan, gdc, whatever-the-objc-one-is-called 14:34:44 --enable-languages=c,c++,d,objc,treelang,fortran 14:34:49 mm 14:34:49 according to gcc -v 14:34:56 oh well, gdc is obsolete anyway 14:35:11 ehird, yeah, so is this gcc and your mom :P 14:35:33 except that's literally; the creator of the d language has said about as much and the last release was in 2070 14:35:35 *2007 14:35:57 +/- 63 years 14:36:17 quite 14:37:40 btw, did you know gdb includes large part of binutils in the source tarball? 14:37:52 no, but I am not surprised. 14:38:21 ehird, and that gcc has it's own modified copy of libtool included? 14:38:25 wow, #macosx is so pointless to be in. it's all random chatter about bullshit and cannabis, and not one bit of os x talk 14:38:29 for internal use during building 14:38:43 i know this because I left it on when going to sleep so I have a full nightsworth of logs. 14:38:55 AnMaster: O_O 14:39:05 ehird, well, that is because everything just works on OS X, so they have nothing else to talk about ;P 14:39:23 ha 14:40:35 ehird, oh and that gcc use autoconf but not automake. 14:40:48 that's not surprising 14:40:58 gcc's fucked up enough that automake would probably be impossible 14:41:14 yeah 14:41:27 it's enough to make kernighan disown C... 14:41:30 ehird, actually some parts of it use automake 14:42:03 libjava, libstdc++ and a few other 14:42:07 but nost most parts 14:42:18 which reminds me that I was going to write an article on how to kern Han characters and sign it Brian W Kerninghan 14:42:45 ehird, that pun is too bad even for me to say it... 14:42:49 :) 14:43:05 err that was not grammatically correct, was it? 14:43:52 i think it might be technically correc 14:43:52 t 14:43:55 but it was very awkawrd 14:43:56 *awkward 14:44:04 'that pun is too bad for me to even say it' would be more idiomatic 14:44:08 and yes, I know that's less logic 14:44:08 al 14:44:33 err that wouldn't be the same 14:44:38 it is 14:44:54 it's one of the most ridiculous idioms 14:45:06 the first one implied it was so bad it was even worse than my bad jokes :P 14:45:12 so does mine 14:45:22 it's just an unintuitive idiom 14:45:54 hmm ok... it *seems* to mean that it is so bad that I would never say it (and not implying in any way that I make bad jokes) 14:46:13 well 14:46:24 AnMaster: try 'that pun is too bad for even me to say it' 14:46:35 hm ok 14:49:22 Even pun, that too bad is, for me to say it is. Even. 14:49:40 I hope I didn't miss any words. 14:50:25 pun bad too is me say even for 14:51:32 ehird, another cool thing: valgrind itself doesn't use system libc, but has it's own one that it uses internally. And then I'm not talking about redirecting malloc() and such... 14:51:36 the original, "that pun is too bad even for me to say it...", seemed fine to me 14:51:46 AnMaster: O_O 14:51:54 Asztal^_^: 'even for me to' is bad 14:52:01 ehird, iirc it can't use system libc since it need to do stuff before libc is loaded 15:05:23 aaabdeeefhiimnnooooprsstttttuvy. Now the letters are more ordered. 15:05:23 ehird, for more info see docs/internals/why-no-libc.txt in the valgrind source tarball 15:05:23 i'd use valgrind if it supported my platform 15:05:23 ehird, yeah, but porting valgrind isn't easy 15:05:23 considering it does all sort of strange tricks 15:05:23 mm 15:05:23 Darwin/x86 is marked "high" in valgrind's "porting plans" priority table. Dated Feb 1, 2007. Lacking suitably interested people, I guess. 15:05:23 Heh 15:05:23 ehird, maybe you could help! 15:05:23 AnMaster: I'm not too hot on the internal details of Darwin/Mach 15:05:23 true 15:05:24 ehird, hm it would probably be harder than porting to other *nix on x86 since you can't reuse the ELF stuff even 15:05:24 yes 15:05:24 doesn't valgrind work on freebsd iirc? 15:05:24 i think so 15:05:24 though iirc it works better on linux 15:05:24 it still saddens me that we even need tools like valgrind, being able to leak memory shouldn't be something you can do by accident... 15:05:24 On the other hand: "There are experimental ppc32/darwin and x86/FreeBSD ports for Valgrind 2.X. They could be made to work with 3.X with some effort." 15:05:24 ehird, or use uninitialised variables? 15:05:24 I've followed a "with some effort" pointer before, fizzie. That way lies madness. 15:05:24 or have tread race conditions 15:05:24 thread* 15:05:24 AnMaster: what the fuck is an uninitialized variable anyway 15:05:24 variables store a value 15:05:24 from a theoretical point of view, an uninitialized variable is just ridiculous 15:05:24 ehird, in C it is like this: int foo(int bar) { int quux; return quux + bar; } 15:05:24 yes, well, that's C for you 15:05:24 i presume it made sense in the 70s 15:05:24 ehird, true. Valgrind is for languages like C and C++ 15:05:24 and gets() also made sense in the 70s... 15:05:24 which are still used 15:05:24 ehird, no way gets() made sense even back then 15:05:24 sure it did 15:05:24 explain please... 15:05:24 if you didn't listen to the program when it told you to enter up to 30 characters you got fired 15:05:28 because your job was to operate the programs 15:05:32 hah 15:05:44 there weren't any malicious users 15:05:47 it's like trying to break your toaster 15:05:50 you can do it, but who does 15:06:13 if they were network connected I'm sure we would have lots of toaster hackers... 15:06:25 now THAT'S some criminal activity I could get into 15:06:28 because then you can break someone else' toaster... 15:06:39 "i pwnt ur toaster" 15:06:46 "now it burnz all your bread. and ur hand." 15:06:46 someone else's? 15:06:48 or what 15:06:49 "HAHAHAHAHAHA" 15:07:13 I'm sure spammers would hack toasters to burn viagra ads to all bread. 15:07:32 should just burn the viagra into the bread. 15:07:32 fizzie, you got a dangerous mind... 15:07:41 "Now you've had a sneak peek, why not buy some more?" 15:07:50 -_- 15:07:56 anyway. 15:08:01 "someone else's"? 15:08:03 AnMaster: I'm more worried about the unholy scramjet-equipped cyborg pigeons, an abomination against nature. 15:08:06 or how do you say that... 15:08:08 someone else's is valid syntax. 15:08:19 ehird, really? it looks very weird 15:08:25 not to me 15:08:28 hm 15:08:33 what looks odd to be is omitting the s after s' 15:08:33 SEP field is the Somebody Else's Problem field. 15:08:42 ehird, true that looks worse 15:08:50 my brain doesn't mentally parse the invisible s 15:08:58 ehird, but trying saying it out loud? 15:09:02 with the s 15:09:02 yet most style guides recommend it 15:09:05 AnMaster: sure, you repeat the s 15:09:09 "Joneses" 15:09:17 Come to think of it, I haven't seen any programmable-image toasters, just boring fixed-image ones. Certainly in 2009 it should be possible to read toast-pictures from an USB stick or something. 15:09:22 ehird, sure, but to me it seems weird after "else" 15:09:29 shrug 15:09:36 which isn't a noun or pronoun (sp?). 15:09:37 "elseses" 15:09:49 also, it's a (pronoun*) 15:09:54 Elsifs. 15:09:56 pointer dereferencing is implicit 15:10:10 also scramjet is fun... 15:10:30 "Things you should know: the Illuminati is run by reptilian astral entities known throughout history as Djinn, Nagas, Sheti, Angels/Demons, Dragons, Drucul etc. that rule the higher echelons of Freemasonry and do foul sex&torture rituals usually with young children getting eaten. They'll probably stage terror attacks soon, then will come an American union(WW3 too) & a staged alien invasion w/Draconian-saviours! Get storable food, support Stewart Swerd 15:10:31 low, Alex Jones, Dr.Deagle & David Icke!" 15:10:33 — Youtube 15:10:38 Thanks for the info. 15:10:51 how much shorter travel time for Europe-US could you get with a scramjet aircraft? 15:10:55 compared to a Concorde or such 15:11:01 AnMaster: scramjet cyborg pigeon? 15:11:05 they travel faster than light. 15:11:16 before you start talkin' physics, they're an abomination against nature, remember? 15:11:18 ehird, not those, I mean a scramjet aircraft 15:11:24 oh. those are boring. 15:11:32 ehird, still they are quite fast 15:11:53 anyway scramjet cyborg pigeon aren't an abomination against nature. unholy scramjet-equipped cyborg pigeons are 15:11:59 there is a important difference there 15:12:19 scramjet cyborg pigeon are just dead. 15:12:43 pigeons* 15:12:46 15:08 ehird: AnMaster: I'm more worried about the unholy scramjet-equipped cyborg pigeons, an abomination against nature. 15:12:47 i said unholy 15:12:53 ehird, AnMaster: scramjet cyborg pigeon? 15:12:55 not there 15:12:55 :P 15:13:03 sure, but I missed the abomination part too 15:13:13 before you start talkin' physics, they're an abomination against nature, remember? 15:13:22 that implied they were 15:13:22 and i said unholy before 15:13:36 ehird, ah so you just forgot a word then there 15:13:39 right 15:14:35 Hmm, this "introduction to AI" course programming-assignment/AI-tournament thing is proving to be rather popular this year too. 36 groups already registered. 15:15:02 fizzie: wait, finns doing AI? shit. shit. robot invasion soon. 15:15:09 stealing food and securing house -> 15:15:54 ehird, you sould like Randall... 15:16:11 we share common safety instincts 15:16:42 ehird, well in his case it is those velicoraptors or whatever the name was. 15:16:46 We already had this tournament thing last year, and all we got was a couple of Java classes that play a board game. Your fears might be exaggerationary. 15:17:01 fizzie: but _oklopol_ might be in this one. 15:17:03 Calicoraptors. They are more tasteful. 15:17:04 do you see? 15:17:11 Calicoraptors. They are more tasteful. <-- ? 15:18:30 I was partially referring to the (according to WP) US term for this cat-colorization: http://en.wikipedia.org/wiki/File:Tortie-flame.jpg -- but you can interpret it as you like. 15:19:57 I'm not sure what to make of the summary. It says "Tortoiseshell Cat. -- tortoiseshells have no white fur" but the cat in question does have some white. Unless it's just an overexposed photo, but I don't think so. 15:21:36 http://zem.fi/~fis/abominations.txt -- my 'cut'-based approach for separating the speaker's nickname didn't really understand a CTCP ACTIONy comment, but on the other hand it looks much more hilarious that way. 15:22:04 :DDD 15:22:17 -!- oerjan has joined. 15:23:00 ehird: You are the undisputed abomination-leader, though. 15:23:15 wait, what? 15:23:19 I abomin all the time. 15:23:25 oerjan: http://zem.fi/~fis/abominations.txt. 15:23:26 A happy accident. 15:24:23 oerjan, Hello 15:24:24 oh well. 15:24:35 hi there 15:24:51 oerjan, read IWC? 15:25:03 x_x 15:25:18 ehird, I was asking first this time... That is much better 15:25:26 AYEEEH 15:26:42 i see kyros's logic is impeccable as usual 15:27:33 indeed a good summary of what I was going to say 15:27:55 also a good summary of the annotation, i see 15:28:15 well, given a certain leap in logic 15:28:24 er, i mean 15:28:38 it stands to reason that's also a good summary of the annotation. 15:28:52 er 15:28:54 what? 15:29:33 i think you really need to work on your logic :D 15:31:22 it stands to reason that I don't 15:32:12 X = it stands to reason that X. 15:32:12 well then we agree 15:32:14 In X. 15:32:58 ehird: it stands to reason that you have not understood today's IWC. 15:32:59 ehird, X therefore Y, Y therefore X 15:33:35 it stands to reason that it stands to reason 15:33:57 '??җ??Ati???ը?k?֣?"H9?[Ä>??\GF?4?<$F?` 15:33:57 y`W???׃?? 15:33:58 ??r%??3?hD?????T?????4?U?Ž5`?$?9aAEY?3c??jl¨jWq?? G??=?JL???49W?,户??͎x?k??m@5s????]??C?ʪBɊ׌?b5\??I??kNfK? 15:34:01 lI??? 15:34:03 ~??ސ˺??R=??J?!s?u??(]I$[?"h`f??S????X* ?0≞?]%??CGL???ϼJ??݅?n?5?E'E?????' 15:34:06 Gc?'?(?J˿X???L???OLY?W?™T??V?R$D*?8g??89f??Z?#u?YAs ?JydZWǵ"?3??-?\?"??? 15:34:07 hm mezzacotta hall of fame is picking up again 15:34:09 don't dump binary data on irc... 15:34:09 o&?#!v???>?~?ڑ?n? ?|<=??G????:[}???????????4'Rnl???G??l?UrbfV??Xqɘ????,?wb?u?Iv???o???`#J???#?N?.?DS»q?,u0???F?h"????(F?6?ރ????i?????;???????L?3?>? 15:34:12 ehird, stop it 15:34:13 V???[Y?ރ0o?f 15:34:15 ...stands to reason. 15:34:16 I meant to put that before but failed. 15:34:17 ah 15:34:21 Oh honestly, get yourself a decent client :P 15:34:28 Surely it could filter out garbage? 15:34:28 i assume that contains some unicode 15:34:33 ehird, actually it did 15:34:34 also, that's longer than I intended. 15:34:39 but it was still spammy 15:34:42 my terminal font is smaller, see 15:35:31 ehird, fun thing to annoy users with default irssi settings: /exec -o echo -e \\007 15:35:39 adjust for your client syntax 15:35:45 :P 15:36:04 don't know if +c filters that 15:36:08 that'd be a nice flooding script 15:36:11 +c filters colours and bold and such 15:36:19 just tack a bunch of \\007s on to your regular flood message 15:36:24 ehird, did your client beep? 15:36:28 no 15:36:31 good 15:36:33 I also need a new computer. What should I get? 15:36:35 but it's a gui one 15:36:41 so it's unlikely to react to terminal codes 15:36:41 ehird, mine filters it 15:36:47 -!- oklopol has quit (Connection reset by peer). 15:36:50 +c filters all non-printable-unicode 15:36:51 a black hole. that should have maximal information density. 15:36:51 I think 15:36:54 well, apart from things like \1 15:37:00 ehird, hm certain mirc versions *did* beep on \007 iirc 15:37:11 also \\007 is just to escape it to echo... 15:37:16 (and bash) 15:37:29 well, mirc emulates a terminal pretty much 15:37:35 including the select-is-copy behaviour 15:37:53 ehird, +c doesn't. I saw a box saying [0722] in what you pasted above. Which is not printable 15:38:06 Hm. 15:38:17 ab 15:38:22 See anything there? 15:38:25 I guess \7 isn't copyable./ 15:38:26 yes: ab 15:38:30 har har 15:38:50 "want" is to "need" as "theory" is to "fact" ... once you start getting technical, they're all the same :P 15:38:53 and no, byte 7 isn't copyable 15:39:13 err that was ambiguous 15:39:14 necessity is the mother of death, as i might say more often. 15:39:15 anwyay 15:39:16 anyway* 15:40:52 "want" is to "need" as "theory" is to "fact" ... once you start getting technical, they're all the same :P 15:41:01 that kind of thinking is unscientific and ultimately destructive 15:41:17 also, their children are shaped like elongated eggs 15:41:21 but are they kosher? 15:41:39 oh lawd 15:41:52 maybe not put the israelis on that idea 15:43:00 * oerjan has no clue whether that is grammatical 15:45:45 think so 15:46:10 wow, #macosx is so pointless to be in. it's all random chatter about bullshit and cannabis, and not one bit of os x talk 15:46:22 let me guess, you're going to 15:46:26 take "bullshit" literally 15:46:30 c/d 15:46:31 maybe it means cannabis in some foreign language 15:46:39 WRONG! 15:46:46 Ah yes, the veritable "Macosx plant". 15:46:49 er what's c/d? 15:46:53 confirm/deny 15:47:15 yay, i managed to comply without understanding 15:49:32 07:05:47 it's like trying to break your toaster 15:49:32 07:05:50 you can do it, but who does 15:49:39 your children, obviously. 15:50:58 AnMaster: I'm more worried about the unholy scramjet-equipped cyborg pigeons, an abomination against nature. 15:51:13 well the question here is whether scramjets can evolve... 15:51:49 might want to go via a dragon stage... 15:53:41 my brain doesn't mentally parse the invisible 15:53:44 mine neither 15:53:51 X_X 16:00:19 and that concludes my logreading. you should now be safe for a while, at least unless you say anything. 16:07:50 anything. 16:09:51 you may or may not now still be safe. anyhow, food. 16:10:31 -!- ehird has set topic: Ⱒ GLAGOLITIC CAPITAL LETTER SPIDERY HA | http://tunes.org/~nef/logs/esoteric/?C=N;O=D. 16:16:19 ... 16:16:24 ehird, what are you trying to do? 16:16:30 my reaction exactly 16:16:35 I see [2C22] in that topic 16:16:36 what, it's a GLAGOLITIC CAPITAL LETTER SPIDERY HA. 16:16:38 what did I do wrong? 16:16:43 meaning you used some control code 16:16:47 http://benfry.com/wp/wp-content/uploads/2008/05/spidery-170x205.png 16:16:47 oh 16:16:49 no. 16:16:54 it's a GLAGOLITIC CAPITAL LETTER SPIDERY HA. 16:17:00 * ehird has changed the topic to: [2C22] GLAGOLITIC CAPITAL LETTER SPIDERY HA | http://tunes.org/~nef/logs/esoteric/?C=N;O=D 16:17:02 the character that mocks you. 16:17:17 AnMaster: control char / unicode learn2differenciate 16:17:34 not http://www.inference.phy.cam.ac.uk/cjb/glagolitic.png ? 16:17:38 *differentiate 16:17:40 ehird, does any font have the complete unicode? 16:17:42 Asztal^_^: no. 16:17:44 AnMaster: code2000. 16:18:11 ehird, is that symbol some phonetic one btw? 16:18:15 it looks like it could be 16:18:23 hm that looks like the kind of letter you wouldn't like to meet in a dark alley 16:18:24 it's glagolitic whatever that is 16:18:29 k 16:18:34 http://en.wikipedia.org/wiki/Glagolitic_alphabet 16:18:49 -!- Judofyr has quit (Remote closed the connection). 16:18:55 oh I see 16:22:03 * ehird has conversation with human-that-fails-turing-test 16:22:23 (http://www.satisfice.com/blog/archives/199) 16:24:03 hm .. is there any voynich glyphs in unicode ? 16:24:13 ski__: don't think so 16:24:15 would be nice 16:24:19 ask the conscript peeps? 16:25:08 I'm going to tell this person I own the website I'm on 16:25:14 Wonder how he'll react. 16:26:09 No response. I guess this ain't covered in the script. 16:26:32 "I am sorry but it is owned by somebody else. :) How may I help you today?" 16:26:36 Time to be enraged! 16:28:04 "Just to verify, do you own Webgreeter.com?" 16:28:08 Like hell I do! 16:30:17 I clicked away and lost the window :( 16:45:15 -!- Judofyr has joined. 16:52:43 -!- Hiato has joined. 16:53:59 -!- Jophish has joined. 17:13:01 ski__, voynich? 17:13:28 voynich manuscript 17:13:31 17:13:34 http://en.wikipedia.org/wiki/Voynich_manuscript 17:13:36 ah 17:13:37 snap 17:15:53 afk for a few hours (out of town) 17:22:02 -!- MigoMipo has quit (Read error: 110 (Connection timed out)). 17:23:14 -!- FireFly has quit (Read error: 110 (Connection timed out)). 17:28:00 -!- BeholdMyGlory has quit (Remote closed the connection). 17:31:13 -!- DH__ has quit (Read error: 113 (No route to host)). 17:31:58 -!- BeholdMyGlory has joined. 17:37:33 -!- FireFly has joined. 18:46:42 -!- sebbu2 has joined. 18:59:08 -!- Judofyr_ has joined. 19:01:56 -!- sebbu has quit (Connection timed out). 19:06:00 -!- KingOfKarlsruhe has quit (Remote closed the connection). 19:06:30 -!- Judofyr has quit (Read error: 60 (Operation timed out)). 19:08:02 -!- oerjan has quit ("leaving"). 19:16:35 -!- poiuy_qwert has joined. 19:20:24 -!- MizardX has joined. 19:22:27 10:17:39 #define LintSucksSoGodDamnMuch (void)printf 19:22:29 xD 19:22:31 i am funny. 19:26:10 -!- olsner has joined. 19:29:58 -!- Impomatic has joined. 19:44:01 -!- kar8nga has joined. 19:49:10 -!- Hiato has quit (Connection timed out). 20:09:28 I'm having a bit of trouble implementing a Modulo operator in brainfuck 20:09:39 would anybody be able to point me to am example? 20:10:59 it's on the wiki 20:11:04 lemme find it 20:11:09 oh great 20:11:14 thanks very much 20:11:18 Jophish: http://esolangs.org/wiki/Brainfuck_algorithms#Divmod_algorithm 20:11:28 does division too but should be easy to hack to your needs 20:11:53 sure 20:11:59 This is a livesaver! 20:12:11 -!- jix has joined. 20:12:14 I have been doing some stupidly long algorithm for this 20:12:26 what, is this for your misson-critical application at work or something 20:12:37 Jophish: :) 20:12:38 tombom: haha 20:12:49 he programs airplane flight systems in bf 20:13:31 how did you find out? 20:13:42 it's stable! 20:14:03 one of the resons I chose it. plus it is very portable 20:14:10 what's not to like! 20:14:42 :D 20:20:35 -!- Judofyr has joined. 20:22:55 hmm, having this short algorithm makes it much harder to form my code into a funny shape 20:25:54 -!- poiuy_qwert has quit. 20:30:32 -!- BeholdMyGlory has quit (Remote closed the connection). 20:30:49 -!- BeholdMyGlory has joined. 20:31:05 -!- BeholdMyGlory has quit (Remote closed the connection). 20:33:03 -!- BeholdMyGlory has joined. 20:36:03 -!- FireFly has quit (Nick collision from services.). 20:38:58 -!- Judofyr_ has quit (Read error: 110 (Connection timed out)). 20:47:54 -!- kar8nga has quit (Read error: 145 (Connection timed out)). 20:57:39 http://imgur.com/1977 oh god yes 20:57:43 mm 20:59:57 -!- GreaseMonkey has joined. 21:10:11 Hmmm... 21:21:19 I've just about finished implementing a minimal Forth in Redcode. 36 Forth words in 85 Redcode instructions. 21:21:55 neat! 21:21:59 can we see? :) 21:22:14 also, how do you run redcode things like that? 21:22:20 can pmars run 'standalone' programs? 21:22:43 I'm using exmars streams, which has extra opcodes for i/o 21:22:56 ARES also has i/o, but implemented differently 21:23:14 Ah... 21:24:06 But with a few macros, it'd be possible to make them equivalent. It's possible to check which mars a program is being run in. 21:25:16 I had to make a few compromises though :-( E.g. rename a few words + -> plus, * -> times, etc 21:25:21 http://www.macosiphone.co.cc/ <- macintosh system 7 on an iphone :-| 21:25:24 Impomatic: aw, why? 21:30:39 ehird: because I'm implementing using macros, which have a limited character set 21:30:59 ok 22:09:57 -!- tombom has quit ("Peace and Protection 4.22.2"). 22:22:20 "What is the area of the largest rectangle that can be inscribed in the ellipse 4x^2 + 9y^2 = 36?" 22:23:06 My method: Note that 4x^2 + 9y^2 = 36 is actually a circle. Do the obvious. Note that it's an ellipse instead. 22:23:06 7 22:24:58 No, the number after 7. 22:25:09 I assume you took that from A013655. 22:25:23 -!- Impomatic has quit ("mov.i #1,1"). 22:27:06 -!- BeholdMyGlory has quit (Remote closed the connection). 22:31:15 -!- BeholdMyGlory has joined. 22:46:48 -!- jix has quit ("..."). 22:49:44 kerlo: xD 23:00:01 -!- Ilari_ has joined. 23:03:38 -!- comexk has joined. 23:03:51 -!- sebbu has joined. 23:05:11 -!- sebbu has quit (brown.freenode.net irc.freenode.net). 23:05:13 -!- Asztal has quit (brown.freenode.net irc.freenode.net). 23:05:13 -!- bsmntbombdood has quit (brown.freenode.net irc.freenode.net). 23:05:13 -!- Jophish has quit (brown.freenode.net irc.freenode.net). 23:05:14 -!- kerlo has quit (brown.freenode.net irc.freenode.net). 23:05:15 -!- lament has quit (brown.freenode.net irc.freenode.net). 23:05:17 -!- comexk has quit (brown.freenode.net irc.freenode.net). 23:05:17 -!- lifthrasiir has quit (brown.freenode.net irc.freenode.net). 23:05:19 -!- GreaseMonkey has quit (brown.freenode.net irc.freenode.net). 23:05:19 -!- olsner has quit (brown.freenode.net irc.freenode.net). 23:05:19 -!- MizardX has quit (brown.freenode.net irc.freenode.net). 23:05:19 -!- fungot has quit (brown.freenode.net irc.freenode.net). 23:05:19 -!- fizzie has quit (brown.freenode.net irc.freenode.net). 23:05:19 -!- Deewiant has quit (brown.freenode.net irc.freenode.net). 23:05:23 -!- ski__ has quit (brown.freenode.net irc.freenode.net). 23:05:52 -!- sebbu has joined. 23:05:52 -!- comexk has joined. 23:05:52 -!- GreaseMonkey has joined. 23:05:52 -!- olsner has joined. 23:05:52 -!- MizardX has joined. 23:05:52 -!- Jophish has joined. 23:05:52 -!- lifthrasiir has joined. 23:05:52 -!- Asztal has joined. 23:05:52 -!- kerlo has joined. 23:05:52 -!- lament has joined. 23:05:52 -!- bsmntbombdood has joined. 23:05:52 -!- fungot has joined. 23:05:52 -!- fizzie has joined. 23:05:52 -!- Deewiant has joined. 23:05:52 -!- ski__ has joined. 23:07:35 -!- SimonRC_ has joined. 23:10:01 -!- oklopol has joined. 23:10:09 how you doing 23:10:52 "The main contender, ReiserFS, dropped out of the race because its creator decided to pursue other interests" 23:10:53 XDD 23:10:55 oklopol: fine kthx u 23:12:33 well, i failed my first exam 23:12:41 so i had to change my life philosophy 23:12:50 which took a while, thus the offline time 23:13:09 (nah i was just too lazy to open a new server window) 23:13:20 oklopol: wait did u rly failers :| 23:13:39 -!- olsner has quit ("Leaving"). 23:13:51 well. 23:13:59 depends on the definition of failing 23:14:04 by my definition yes 23:14:11 oklopol: so you got 99%? 23:14:24 4. (3) fail, go bad, give way, die, give out, conk out, go, break, break down -- (stop operating or functioning; "The engine finally went"; "The car died on the road"; "The bus we travelled in broke down on the way to town"; "The coffee maker broke"; "The engine failed on the way to town"; "her eyesight went after the accident") 23:14:43 oklopol: Did your exam CONK OUT? 23:16:03 well i couldn't integrate sqrt(x^2 + 1) without using the formulas we were given, mainly because i got tired halfway through; anyway resulted in me almost tearing the paper in half and leaving, i then removed the whole answer to the exercise, and did another question instead, managed to remember a definition wrong and proved the wrong thing. 23:16:20 s/exercise/question 23:16:48 -!- GreaseMonkey has quit ("Client Excited"). 23:16:58 so at least they should give me a zero from that, so at max i can get 75%, which as a grade would be like 3/5 23:17:02 well 23:17:07 that's pretty much a fail by any definition 23:17:26 It's not a fail by the "0 grade equals fail" definition, which in some sense is the official one. 23:17:41 well, true, i didn't fail the course 23:17:54 oklopol: 75% isn't bad. 23:18:00 Fail the battle, not the war. 23:18:01 by which i mean that's pretty damn good. 23:18:03 :P 23:18:11 umm no it's my first non 5/5 23:18:19 so it's very bad. 23:19:05 oklopol, just 23:19:06 shut up 23:19:06 : 23:19:08 P 23:19:18 anyway if i fail more of these exams i have piled up here, i will probably stop caring about my grades completely 23:19:19 i mean 23:19:39 if i try my best, and it just isn't good enough. 23:19:43 that's 23:19:45 you know 23:19:47 depressing. 23:20:07 yeah 75% is practically earth shattering failure 23:20:09 ehird: heh, that's what people keep telling me, i don't understand why :D 23:20:11 you should just go home man 23:20:16 and like 23:20:17 We've got some people here who do the whole "non-perfection == not acceptable" thing re grading, but personally I've never really seen the point. 23:20:18 kill yourself 23:20:31 ehird: it's a shattering failure considering how much i did for the course. 23:20:41 hahahaha oklopol you amuse me. 23:20:49 :) 23:21:10 See, you have a budding career as an ehird-amuser there. 23:21:21 YES 23:21:27 i'll give you food! 23:21:30 fizzie: no point, just an arbitrary goal. 23:21:52 Why can't this web-based study-result-browsamator compute grade point averages? Silly. It can in the PDF reports, but not in the web interface. 23:21:57 oklopol: soooo ... don't do it again? 23:21:57 something i decided to do that isn't all that destructive 23:21:59 -!- comex has quit (Connection timed out). 23:22:00 pretty simple 23:22:10 if it was like 50% i'd understand 23:22:15 but it's not going to happen again now is it :P 23:22:16 Maybe "averaging" is such a computationally intensive algorithm they can only do it offline. 23:22:41 ehird: 50%? you won't pass the course with a 50% 23:22:43 In most of our exams 50 % of points is the line between 0 and 1. 23:22:52 Approximately, anyway. 23:22:57 oklopol: thus, I said, if it was 50% i'd understand. 23:23:00 well okay you will usually pass it with exactly that, as fizzie pointed out 23:23:07 but it's not, it's 75%. 23:23:21 Why is this PDF report in Swedish? I don't get it. 23:23:41 no one gets swedish 23:24:22 no one is swedish 23:24:26 * oklopol wished ais here 23:24:29 *wishes 23:26:07 Personally I only get a a-failure-am-I feeling out of grades that are <3. (Less than three, not a-heart-symbol.) 23:26:45 And I've got some of those too, which is why I don't like looking at these reports. 23:26:56 fizzie: anyway the point is pretty much just that after you get 5/5 from your first 6 or so exams, it's easy to go "hey, maybe i could get a 5/5 from EVERYTHING", and the obsession begins. 23:27:10 Yes, I guess it could go like that. 23:27:41 i did a few courses during high school tho, didn't really study for them, so i have a few 3's already 23:27:52 -!- sebbu2 has quit (Connection timed out). 23:27:59 oklopol: all(5/5)-1 isn't too bad either though is it huh. 23:28:00 (average was 5/5 already when i started though) 23:28:05 okay i understand it's not pretty 23:28:08 i kinda sympathize there 23:29:02 -!- SimonRC has quit (Connection refused). 23:29:26 aesthetics are important. i love looking at numbers. 23:29:45 oklopol: okay, make a pattern out of your grades 23:29:46 liek 23:29:50 :) 23:29:55 5 5 5 5 3 4 4 5 4 3 3 4 5 23:29:57 i dunno 23:30:04 333333333333333333333333333 23:30:16 lament: is that pi? 23:30:19 -!- Ilari has quit (Connection timed out). 23:30:20 5 5 5 5 5 4 4 4 4 3 3 3 2 2 1 23:30:21 yes. 23:30:31 lament: i remember seeing it somewhere 23:30:38 -!- Ilari_ has changed nick to Ilari. 23:30:45 how did euler's constant go then? 23:30:52 the same with 2's? 23:31:21 no 23:31:25 it's more complicated 23:31:29 also how is that pi 23:31:35 2718171817181718171817181718171817181718171817 etc 23:31:53 right right 23:32:00 crap, that's wrong 23:32:13 27182818281828182818281828 23:32:22 ah yes 23:32:27 :P 23:32:46 how dare you make my randomness funny! 23:36:22 -!- Sgeo has joined. 23:37:03 -!- Jophish has quit (Read error: 60 (Operation timed out)). 23:54:36 -!- psygnisfive has quit (Read error: 110 (Connection timed out)). 2009-03-03: 00:04:52 -!- evenant has quit. 00:11:59 11:25:59 but autoconf noticed that youre system didn't need that, and commented out the line 00:12:00 11:26:05 s/youre/you're/ 00:12:51 Four words four words! 00:14:45 :D 00:14:52 oklopol, OOTS fan? 00:15:09 object oriented transsexuality 00:15:11 yes 00:15:33 but err is it some rpg kinda thing? 00:15:51 i think i've heard my friends talk about something very close to that 00:16:19 ah order of the stick 00:16:24 do you mean the comic or the game? 00:16:36 probably the first one. i've read very little of it. 00:18:01 Comic 00:18:40 i've read a few random ones, it's not really for me. 00:20:55 i don't really follow any comics, i just occasionally accidentally read whole comics because i just keep pressing next until they run out 00:26:06 why isn't my body symmetric 00:31:54 -!- oklopol has quit (Read error: 104 (Connection reset by peer)). 00:33:01 -!- oklopol has joined. 00:44:20 -!- Judofyr_ has joined. 00:49:22 -!- BeholdMyGlory has quit (Remote closed the connection). 00:50:42 -!- Judofyr has quit (Read error: 110 (Connection timed out)). 01:39:45 -!- Sgeo_ has joined. 01:39:45 -!- Sgeo has quit (Read error: 104 (Connection reset by peer)). 02:47:35 -!- poiuy_qwert has joined. 03:46:32 Hi, friendly programmers. How would I turn the Haskell expression (all (`elem` ['a'..'z'])) into Python? 04:19:58 i know python, if you explain what that does i can give you the equivalent 04:22:41 -!- bsmntbombdood has quit (Read error: 113 (No route to host)). 04:22:57 kerlo 04:23:38 That checks that all characters in a string are not before 'a' and not after 'z'. 04:23:55 s/not/neither/; s/and not/nor/ 04:24:11 What does it return, a boolean? 04:24:37 In python that would be stuff not in ['a'..'z'], IIRC 04:24:45 A boolean, yes. 04:24:53 Just look up the "in" operator in python 04:25:16 I take it ['a'..'z'] iz the same thing as 'abcdefghijklmnopqrstuvwxyz'. 04:25:48 -!- bsmntbombdood has joined. 04:25:57 Yes, though I forgot the exact syntax. 04:26:01 It's been a while 04:27:14 [c for c in yourString if ord(c) in "acdefghijklmopqrstuvwyz"] 04:27:26 wat 04:27:35 string.lowercase, I guess. 04:27:37 sorry 04:28:02 if yourString == ''.join([c for c in yourString if ord(c) in "acdefghijklmopqrstuvwyz"]) 04:28:41 I'm not filtering out all non-lowercase-letter characters... 04:28:51 good point 04:29:21 I refuse to use a language other than Python! 04:29:36 Then totally use not in 04:29:40 I don't really know anything other than Python and Haskell, and the Glasgow Haskell Compiler doesn't work where I want it to. 04:29:47 Oh, you said not in. 04:30:18 >>> 'foo' not in string.lowercase 04:30:19 True 04:30:23 import re; isonlyletters = re.compile('[^a-zA-Z]'); if isonlyletters.match(yourString): 04:30:32 That comes across as wrong. 04:30:48 The operator not in is defined to have the inverse true value of in. 04:31:01 Well, then, not in isn't helping. 04:31:01 The operators in and not in test for collection membership. x in s evaluates to true if x is a member of the collection s, and false otherwise 04:31:17 Is it not? 04:31:27 Using regexes is kind of ugly, but oh well. 04:32:03 import re; nice = re.compile('[a-z]{2-8}'); print nice.match(yourString) 04:32:17 Will that be True if and only if yourString is 2-8 letters a-z? 04:32:53 yeah, but not including A-Z 04:33:01 You know what? I'm just going to do something else entirely. :-P 04:33:10 you need to add re.I as second parameter or add A-Z in the [] too 04:33:13 Attempt to do everything; if some exception is thrown, undo everything. 04:34:14 Sound like a plan? 04:34:37 go ahaid 04:34:47 I mean, I'm going to check for failure anyway. 05:12:29 -!- Sgeo_ has quit ("Leaving"). 05:19:34 -!- GreaseMonkey has joined. 07:55:08 -!- tombom has joined. 07:56:14 -!- tombom_ has joined. 07:56:14 -!- tombom_ has quit (Remote closed the connection). 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:13:16 -!- Jophish has joined. 08:47:24 -!- Jophish has quit (Connection timed out). 09:09:13 -!- GreaseMonkey has quit ("Client Excited"). 09:28:34 -!- poiuy_qwert has quit (Remote closed the connection). 09:41:42 -!- tombom has quit (Read error: 104 (Connection reset by peer)). 09:41:45 -!- tombom_ has joined. 09:55:02 -!- tombom_ has quit (Remote closed the connection). 09:55:05 -!- tombom has joined. 10:02:53 A rather unusual job: http://www.f-secure.com/weblog/archives/00001618.html 10:03:13 Note how altruistic they are: "We also do quite a bit of manual research. We *suffer* so your kids don't." 10:13:49 :P 11:15:28 have you seen the photo of the ultimate nerd? <<< no, i haven't 11:17:16 if someone knows any good befunge interpreter <<< i hear this cfunge thing is pretty cool 11:25:44 -!- ais523 has joined. 11:51:06 oklopol, thanks 11:52:43 ais523, hi 11:53:20 hi 11:53:22 question: what is the exact issue with threaded intercal and external C code 11:53:32 I might have an idea how to solve it 11:53:41 but it depends very much on what the exact issue is 11:54:17 AnMaster: the problem is that threaded intercal relies on program flow always being inside main 11:54:29 and it uses setjmp/longjmp to record where in main() it's got to 11:54:36 ais523, hm... but surely it will sometimes call stuff like putchar or printf? 11:54:48 yep 11:54:54 but that's inside a statement, and statements are atomic 11:54:58 between statements it's always in main() 11:55:05 within a statement it can call whatever it likes 11:55:25 ais523, would it be possible to mark it to always interact with the first main thread or something like that? 11:55:31 and other threads being pure intercal 11:55:54 ais523, considering you could have pure C threads that never return but run in the background iirc 11:56:11 cooperative multithreading 11:56:16 true 11:56:27 ais523, a global interpreter lock then? 11:56:29 :) 11:56:31 nah 11:56:31 and the real problem is that each thread has a separate NEXT stack 11:56:37 which corresponds to a different call stack in C 11:56:50 ais523, setcontext/getcontext? 11:56:56 so they effectively have to be different threads, or different processes, in the C code if you're mixing threading models 11:57:00 I do have an idea on how to solve it 11:57:04 oh? 11:57:34 ais523, my idea was to make it so only one intercal thread interacted with C. But maybe that won't work. 11:58:10 not the way you describe the issue 11:58:16 which would be INTERCAL thread = C process 11:58:26 hm 11:58:46 ais523, you mean you have OS level threads in ick? 11:58:56 as the solution 11:59:00 not at the moment, but the only way to do C + threaded INTERCAL seems to be to use them 11:59:03 then how would you sync them 11:59:05 and OS level processes, not threads 11:59:11 ais523, what about setcontext/getcontext? 11:59:12 and synched using mutexes and other such constructs 11:59:56 ais523, separate processes would sure mess up IFFI. 12:00:08 well, yes 12:00:14 but I tend to document such restrictions 12:00:17 yeah 12:00:20 and work out insane solutions to them later 12:00:50 ais523, cfunge even uses unlocked stdio when possible to reduce overhead... Definitely not thread safe 12:01:03 thread-safe != process-safe 12:01:11 nor process safe 12:01:21 part of the reason to use processes not threads is that pretty much nothing's shared between INTERCAL threads 12:01:32 oh btw cfunge now has an option to use fully buffered stdout, reducing time on mycology when not redirecting to /dev/null by about 20% 12:01:33 only abstention status is shared 12:02:01 for /dev/null about 1-2% due to also using a larger buffer 12:02:35 ais523, hm what about scheduling? isn't it documented to be on a round robin basis? or is that "may change in future"? 12:03:50 ais523, hm I believe cfunge could be partly made thread safe though, without locks... 12:04:18 AnMaster: the documentation's more fun than round-robin 12:04:22 1) only funge space + a few other bits of global state are shared between funge threads... 12:04:26 it's documented as "will not get out of synch by more than one command" 12:04:31 2) funge space could use CAS for the static area 12:04:35 which round-robin fulfils, but which could be fulfilled in other ways too 12:04:57 yeah that is messy... 12:05:26 ais523, is that command == one statement? 12:05:49 or some sub-statement thing? 12:06:09 one command is meant to == one statement 12:06:11 ah 12:06:22 although WHILE messes it up quite badly, I'm not sure if I've documented that 12:07:13 FILE, REFC, SOCK, SCKE and a few other would need locks btw... In core only funge space and creating/destroying threads... 12:07:19 but funge threads are round robin 12:07:22 so pointless 12:07:45 nah, not even going to try to make cfunge thread safe 12:07:55 or multi-process safe 12:08:24 (well it is, doesn't use shared memory or such, but then stuff like funge space isn't shared. separate instances) 12:12:01 blergh this sucks. Was profiling a program. Turns out that most time is spent in one of the functions with shortest time / call. And there are enough 1594330251 calls to it. 12:12:15 + there is no simple way to make it faster... 12:12:24 in that case, change your algorithm so it's called less 12:12:35 that was my solution in a similar profiling situation 12:12:50 ais523, called from lots of different places in the code. And large code base 12:13:05 (crossfire-server) 12:16:28 actually there seems to be a tiny bit of thing that could help here... 12:38:39 unhello. 12:38:42 -> 12:43:14 When leaving, always remember to unhello any helloes you might have said when entering a conversation, otherwise the channel might run out of resources. 12:44:02 fizzie: what OS are you using? All modern OSs restore helloes to the common pool when a client quits on a connection to an IRC server running there... 12:44:31 I still think it's good manners to explicitly unhello. 12:44:54 presumably that's why his became so popular instead, they're automatically deallocated when they go out of scope 13:00:23 heh 13:01:01 urgh, profiling data so large that gprof takes over 2 minutes to load it... wth 13:01:45 -!- Mony has joined. 13:02:36 2 minutes? 13:02:46 when profiling Perl, it often takes 10 minutes to half an hour to process all the details 13:02:49 plop 13:04:21 Hey Mona 13:04:35 je suis pas Mona Lisa ok >_< 13:05:47 ais523, really? 13:05:47 wow 13:05:59 * ais523 vaguely wonders if a Mony / Slearah conversation here would be in English or French 13:06:05 ais523, I would have expected it to be a lot faster 13:06:12 But when I say Mona, I mean Mona from 2ch. 13:06:40 -!- Asztal has quit (brown.freenode.net irc.freenode.net). 13:06:58 -!- Asztal has joined. 13:09:21 [14:06] * ais523 vaguely wonders if a Mony / Slearah conversation here would be in English or French <-- maybe in frenglish 13:10:27 hm 13:24:21 so 13:24:26 so what? 13:24:34 sorry, couldn't resist 13:24:38 three things 13:24:39 "We *suffer* so your kids don't." 13:24:42 excellent job. 13:24:45 04:29 kerlo: I don't really know anything other than Python and Haskell, and the Glasgow Haskell Compiler doesn't work where I want it to. 13:24:47 that explains a lot. 13:24:50 and 13:24:55 I'm probably going to implement INTERCAL. 13:25:01 yay at the last one 13:25:09 the INTERCAL market could do with a new compiler to drive innovatoin 13:25:11 *innovation 13:25:18 Market. 13:25:25 Tons of people buy INTERCAL. 13:25:28 what version do you plan to implement first? INTERCAL-72? something custom? something compatible with one of the existing compilers? 13:25:37 probably INTERCAL-72 with my own tweaks 13:25:44 What I would totally buy is the original INTERCAL compiler on punchcards. 13:25:44 for example, I'm probably going to change the error messages a bit 13:25:49 but the actual generated code should behave properly 13:25:54 I could frame it or something 13:26:01 ais523: i have plenty of good ideas: compiler options in the filesize, for instance. 13:26:03 -!- jix has joined. 13:26:36 ehird: filesize? that's ingenious, I was planning to put it in the last-modified time 13:26:40 but filesize is probably more portable 13:26:51 exactly 13:26:55 portability is key! 13:27:11 oh, I also want to include an INTERCAL IDE 13:27:17 and I have a seriously perverse way of doing it 13:27:20 I wanted to write an INTERCAL IDE, too 13:27:22 I have plans 13:27:26 hard on me, hard for the user 13:27:37 involving an entirely new sort of highlighting that isn't syntax highlighting but is just as useful 13:27:47 actually, I should implement that seriously, it might be useful for other languages too 13:27:52 also, I was going to add unlockable content 13:28:05 because I was trying to think "what's the most ridiculous thing I can put in an IDE", and unlockable content was it 13:28:12 ais523: let's put it this way: the non-OS X distribution will be a qemu running linux that boots right into GNUStep and starts the ide 13:28:22 then it communicates with your filesystem & INTERCAL with a socket 13:28:30 (you have to manually start intercal with the interfacing program) 13:28:52 how does it act on OS X? 13:29:00 we can combine our ideas, they aren't incompatible so far 13:29:31 ais523: on OS X, it acts like a windows application circa win95, ported to OS X (badly) 13:29:36 except it was originally written for OS X 13:29:39 ok 13:29:47 what graphics toolset? 13:30:16 I suggest X11 plus Athena widgets 13:30:23 but designed in such a way it nevertheless only works on OS X 13:30:25 ais523: I was planning on using an unholy blend of Cocoa and Carbon — Carbon so that I could make native controls behave completely unlike normal 13:30:36 Ooh, I like the "unlockable content in an IDE" thing. "You have to grind at the project settings dialog before you unlock version control integration." 13:30:40 haha 13:30:49 ais523: my plans are mostly interface-wise, so yours will blend well with mine 13:31:17 ais523: I was planning to do the hyper-detailed status bar of files as a bunch of unfocused windows aligned below in a grid; if you move one, it snaps back, if you resize one, it snaps back, if you focus it, it focues the text 13:31:23 if you move the file window, they tag along dozily 13:31:29 but if you move one over another, they swap places 13:31:37 (like a toolbar rearrangement dialog) 13:32:29 anyway, my revolutionary highlighting idea is repetition highlighting 13:32:42 heh, clever 13:32:54 the agile junkies would love that (because they'd try and stop it happening) 13:33:07 I haven't worked out all the details, but things are highlighted according to how much of the surrounded code was repeated, and how many times the locality had been repeated 13:33:18 that would have saved me a couple of days in one project I did 13:33:32 trying to track down a bug which was due to accidentally pasting in the first half of a table of contents twice 13:33:37 *constants 13:34:21 ais523: do you think people would actually use it with the silly vmware distribution? :D 13:34:30 at least one person would 13:34:36 you? 13:34:36 but preferably qemu, I've got that installed already 13:34:40 yes, me 13:34:42 to try it out 13:34:44 possibly qemu 13:34:47 iirc vmware is faster 13:34:48 but lots of other people would have a look though 13:34:50 and also, it can share the FS 13:34:51 without a socket 13:35:01 actually, I suggest you just distribute it as a bootable .iso 13:35:18 that nonetheless only boots inside a virtualiser 13:35:18 ais523: I think it's funny when a native distribution ends up being a wrapper against an emulator of some kind 13:35:22 for example, Google Earth on linux uses Wine 13:35:28 (yes yes wine isn't an emulator) 13:35:56 well, even linking against a compatibility library is amusing 13:36:06 ais523: I was going to call it IDE: INTERCAL Destruction Enabler 13:36:17 or perhaps Defenestration 13:36:21 INTERCAL Defenestration Enabler 13:36:42 I had a great name for it, but I can't remember what it was 13:39:04 I had an excellent name for my compiler yesterday but I forgot it 13:39:26 does it end "ick"? 13:39:33 oh, wait 13:39:38 I was going to call the compiler eww(1) 13:39:51 or perhaps ugh(10 13:39:53 *1) 13:39:54 a break with tradition, that's an INTERCAL tradition in itself 13:39:59 exactly! 13:40:05 ais523: I'm going to have a custom license, just to infuriate debian 13:40:11 surely you should break with tradition by not breaking with tradition, though? 13:40:16 it'll be contradictory, but also have clauses on how to resolve contradictions 13:40:20 also, make it one that's GPL-compatible at least in case I need to steal code 13:40:32 ais523: it should basically come down to the MIT license 13:40:36 ok 13:40:42 actually, even better: 13:40:45 i was also going to have an EULA 13:40:59 which basically required the user to be insane to use the program, or at least to pretend to be insane while interacting with it 13:41:10 but the EULA presenter would be written in intercal 13:41:13 add a clause stating that all advertising to do with the distribution must mention and thank the Regents of the University of California, although mention that they don't endorse your code 13:41:17 so first it'd compile the compiler, with the eula bit off 13:41:22 which will only compile the eula 13:41:26 it'll compile the eula, run it 13:41:26 also, I'd just reject the EULA 13:41:29 and use the code anyway 13:41:31 then the eula will flip the bit on the compiler 13:41:42 ais523: I'd make sure it doesn't actually impose any obligations 13:41:46 also, you'd have to manually hex edit the file 13:41:49 it will presumably be open-source, I should be able to edit out the EULA 13:41:51 and find out which bit to change 13:42:36 why would that require hex-editing, anyway? 13:42:39 ehird, why would qemu be needed for this IDE btw? 13:42:43 besides, most EULAs can be modified using strings 13:42:56 AnMaster: because it'd require gnustep, and also modify stuff in /etc and the like 13:43:16 very insane and not really in an intercal-y way 13:43:20 intercaly* 13:43:32 AnMaster: anything sufficiently different from expectations is intercally 13:43:36 hm 13:43:43 people are starting to form certain expectations about INTERCAL, we need to shock them out of it 13:43:43 requiring qemu to run an IDE that looks like a windows 95 application ported to OS X ported to GNUStep sounds sufficiently intercal to me 13:43:45 in a modern way, that is 13:43:54 it's applying the principles of INTERCAL to a modern age. 13:43:56 or something. 13:44:13 ehird, that is too post-modern 13:44:25 oooh. post-intercal? 13:44:35 no, post-modern would be the compiler starting qemu, opening the IDE, which runs a preloader, and then opens vi on the host 13:45:45 ais523: how do you think an INTERCAL repl would work? 13:46:02 each line you write is appended to a program that accumulates lines 13:46:10 that's just boring 13:46:17 then it runs the whole thing, repeating input that you gave on previous runs, and not printing output that it printed on previous runs 13:46:27 so you can do a COME FROM or whatever and modify what you wrote on previous lines of the REPL 13:46:34 it sounds boring, but it drives me mad thinking about the implications 13:47:32 the best bits of INTERCAL are the bits that look innocent 13:47:51 anyway, my plan is to announce the new compiler's first working release to alt.lang.intercal on april 2nd, having never talked about it outside of here previously 13:47:57 "just when you thought the releases were over..." 13:48:09 sounds good, I'll try to keep it secret in the meantime 13:48:31 I wonder if anyone else wrote an INTERCAL compiler while being unable to code INTERCAL? 13:48:36 actually, probably most of them 13:48:41 certainly the princeton one 13:48:50 are you planning to write a compiler or an interp? 13:48:56 and at least the princeton people wrote syslib.i 13:48:59 ais523: neo-interpilerism 13:49:08 it had a couple of bugs, but they at least tried 13:49:44 what does the clc in clcintercal stand for? 13:49:45 the author? 13:49:51 yep, it's his initials 13:50:29 maybe i'll call mine CLWNPA 13:51:16 oh, I also intend to have an object system based on Conscientious objectors 13:53:04 how does that work? Beats me. 13:54:25 Huh. 13:54:25 http://www.catb.org/~esr/intercal/nelson.html 13:54:33 Ted Nelson, the Xanadu kook, comments on COME FORM. 14:03:25 -!- M0ny has joined. 14:04:48 I think I'll have an Evil Wrangler. 14:04:55 Instead of ghc's Evil Mangler. 14:05:05 It will be written in Illiterate Perl, which is Perl with the keywords changed to chavspeak. 14:05:16 The Illiterate->Regular Perl translator will be written in a new variant of Literate Perl. 14:05:26 So you need to translate the translator so you can translate the wrangler. 14:05:29 Ahem. Xzibit? 14:07:06 Oh look, qt 4.5 is out. 14:07:22 "The latest version of Webkit is now integrated with the toolkit" 14:07:23 Nice. 14:08:23 http://tinyarro.ws/ <- This is stupid, IDN is flaky and a lot of software will explode on contact with the unicode. 14:09:06 I thought the point of it was so you could make software explode on contact with unicode 14:09:14 no, it's meant to be serious 14:09:20 also, good freaking luck linking to that IRL 14:09:24 which is a major use for tiny urls 14:09:27 yes 14:09:47 they mentioned getting around the Twitter byte limit, but that doesn't work, it's a byte limit not a character limit... 14:10:04 yeah, twitter is written in Ruby, and they expect unicode awareness? :P 14:10:24 it's not hard to get a one byte domain if you really want too, per previous discussions here 14:10:26 is Ruby Unicode-aware? 14:10:41 ais523: ruby 1.9 can do unicode, before that: nope. 14:10:50 well, there was half-baked hacky support for it, but it broke most things. 14:11:07 ais523: it had excellent SIJS support, though 14:11:26 (the main reason for no unicode is basically that all the users were japanese for the majority of its lifetime) 14:12:34 ais523: hey, a link to TAEB on proggit! 14:12:41 yes, I know 14:12:50 that's what persuaded paxed to finally fix the exploit 14:12:59 although he's keeping the nature of the fix secret for the time being 14:13:08 it's not actually about TAEB itself, just the article was posted on the TAEB blog 14:13:26 do nethack devs get some sort of perverse enjoyment out of secrecy? 14:13:40 probably not 14:13:48 but we suspect it's a security-through-obscurity fix 14:14:03 lawl. 14:14:31 "You can verify this by typing "nethack" into two separate terminals, then quickly hitting enter in each" 14:14:42 or, y'know, spawn two `screen`s with nethack in simultaneously via the shell 14:14:45 :P 14:14:56 instead of trying to perfect your 1337 alt-tab-enter skillz 14:15:41 "paxed, one of the admins of nethack.alt.org, patched nethack to use a truly random seed so that this specific exploit can no longer be used on that server." 14:15:44 please say hotbits 14:17:22 actually, the huge hoohah was that it was patched to use a seed from /dev/urandom, but it was cracked anyway 14:17:32 there are people brute-forcing the seed from the random numbers observed in-game 14:17:32 hahaha 14:17:58 apparently that's the exploit that paxed recently fixed, nobody's sure how yet 14:19:02 ais523: funny thing: 14:19:07 twitter's 140 byte limit comes from SMS 14:19:16 do you think you can enter these links over SMS? :P 14:19:22 pretty silly overall 14:19:31 I have no idea how to type unicode on a mobile phone 14:19:40 apart from the characters that are on the iterated-through lits 14:19:42 *lists 14:19:46 you can't 14:19:48 I don't particularly care to try, either 14:19:50 well, on a regular phone 14:19:59 on an iphone you could probably hack up something to do it 14:20:04 or any other programmable phone 14:21:51 -!- Mony has quit (Read error: 110 (Connection timed out)). 14:22:59 -!- M0ny has changed nick to Mony. 14:27:37 re the topic: is GLAGOLITIC CAPITAL LETTER SPIDERY HA actually in Unicode? 14:27:39 it isn't in my font 14:27:41 yep 14:27:44 here's what it looks like: 14:27:54 http://benfry.com/wp/wp-content/uploads/2008/05/spidery-170x205.png 14:28:03 as you can tell, it is a spidery creature that laughs at you. 14:29:55 hmm, starting an intercal compiler is hard 14:30:02 all of the standard test programs are implementation specific... 14:30:21 syslib.i is a standard test program and not implementation specific 14:30:41 but then, you need some way to drive it to run 14:30:44 but it doesn't -do- anything that you can perceive :P 14:30:47 what do you mean by standard test programs, anyway? 14:30:55 things like hello world, cat, etc 14:31:02 pit/tests in C-INTERCAL has quite a few test programs, many of which aren't implementation-specific 14:31:04 basic trivial programs that you make work with your implementation as a first step 14:31:20 the reason that things like hello world and cat are specific is that you need extensions to INTERCAL-72 just to be able to write them 14:31:30 yes 14:35:03 what do you plan to ignorret as? 14:35:17 I'd love an INTERCAL compiler that somehow manages to find a legit reason to return 42, or something 14:35:21 * ehird scurries to find out what ignorret is <_< 14:35:49 wow, the first Google hit is acutally relevant 14:35:56 yes, but useless 14:36:03 and none of the others are relevant 14:36:09 basically, ignorret's a simple INTERCAL test program 14:36:12 * ehird downloads ick 14:36:17 that manages to give a different result on each of the main implementatinos 14:36:20 *implementations 14:36:20 ah 14:36:30 where is it? 14:36:40 pit/tests/ignorret.i 14:36:50 see, the first google result /wasn't/ entirely useless 14:36:56 :P 14:37:20 ais523: I stare at blank incomprehension at ignorret.{i,doc}. I'm gonna have a hard time, aren't I? 14:37:31 yes 14:38:16 that particular interaction was never defined in INTERCAL-72 14:38:24 so reading the docs won't help either 14:38:29 Heck, I'd be happy to understand the individual parts. 14:38:34 presumably, this is why all the major interps ended up returning different answers 14:38:49 anyway, the first line should be pretty self-explanatory 14:38:58 as should the third, and the sixth 14:39:01 Yes, if I knew what IGNORE and RETRIEVE were. 14:39:11 STASH is that weird stack thing, right? 14:39:12 IGNORE makes a variable read-only 14:39:22 as in, writes to it silently fail 14:39:33 STASH and RETRIEVE push and pop a variable on its own stack 14:39:42 each variable has a stash stack, STASH pushes it and RETRIEVE pops it 14:40:03 the point of contention is what happens to the read-only status when the stack of the variable it refers to is pushed or popped 14:40:04 okay, so what is .1 after DO STASH .1? 14:40:10 it's a variable name 14:40:16 what is its value, I mean 14:40:39 1 14:40:46 ah, wait 14:40:47 ais523: so 14:40:48 STASH doesn't modify a variable's value 14:40:53 .1 = {1}, stack = {} 14:40:54 .1 = {1}, stack = {1} 14:40:55 then 14:40:58 if you write 2 to .1 14:41:01 .1 = {2}, stack = {1} 14:41:03 then retrieve 14:41:04 yes 14:41:05 .1 = {1}, stack = {} 14:41:13 right, that's simple enough 14:41:16 yep 14:41:19 except there's an ignore line 14:41:25 yes, I'll get to that 14:41:26 DO .1 <- #1 14:41:27 DO STASH .1 14:41:28 DO .1 <- #2 14:41:30 .1 = {2}, {1} 14:41:34 I assume that's uncontroversial 14:41:36 yep 14:42:07 ais523: okay, and retrieve boils down to "DO .N <- popped value" 14:42:12 yes 14:42:15 so, the retrieve after the ignore, 14:42:23 makes .1 = {2}, {} 14:42:31 because .1 is read-only? 14:42:35 that's the J-INTERCAL interpretation 14:42:35 exactly 14:42:41 then, it's still ignored, so writing #3 to .1 does nothing 14:42:47 yep 14:42:55 so the output is 2, 2, 2 14:43:02 well, just 2,2 14:43:08 there's only two READ OUT statements there 14:43:10 oh, right 14:43:19 the CLC-INTERCAL interpretation is this: 14:43:25 actually 14:43:25 ais523: 14:43:29 that'/s the C-INTERCAL interpretation 14:43:32 from .doc 14:43:46 oh, yes 14:43:49 sorry 14:43:51 misremembered 14:43:57 The 14:43:57 ignorance status is stashed along with the variable itself 14:43:58 hmm 14:44:06 CLC-INTERCAL stashes metadata 14:44:09 ais523: does the standard say STASH stashes a variable or the variable's value? 14:44:19 if it says value, mine's right, if it says something more encompassing, CLC-INTERCAL is right 14:44:41 "The values are left intact, and copies thereof are saved for later retrieval by (what else?) the RETRIEVE statement (see section 4.4.6)." 14:44:51 ok, it's values 14:44:58 I'd say CLC-INTERCAL is objectively wrong there, then 14:45:04 since the metadata is absolutely not part of the value 14:45:16 well, INTERCAL evolves over time 14:45:24 I'd say CLC-INTERCAL's interpretation is an extension 14:45:25 true 14:45:27 that makes STASH more useful 14:45:33 yes, that's the thing 14:45:33 J-INTERCAL's behaviour is probably just wrong 14:45:41 J-INTERCAL sucks, as far as I can tell 14:45:52 J-INTERCAL isn't as advanced as either of the others 14:46:48 anyway, I was imagining ignorret would be some highly-gnarly evil program 14:46:56 :P 14:47:02 nope, the simple ones are more fun 14:47:08 it's even portable to different bases 14:47:12 ha 14:49:14 ais523: anyway, I'd probably go with CLC-INTERCAL in practic 14:49:14 e 14:49:17 since it'd be more useful 14:49:22 although... 14:49:26 well, CLC-INTERCAL has a lot more metadata to stash 14:49:28 ais523: does IGNORE make the variable or the variable's value immutable? 14:49:45 C-INTERCAL's solution is to stash all the metadata that CLC-INTERCAL invented, but not metadata invented elsewhere 14:49:54 ehird: there's no difference in standard INTERCAL-72 14:50:05 there is, the stash stack :P 14:50:06 but I mean 14:50:08 "The statement DO IGNORE list causes all subsequent statements to have no effect upon variables and/or arrays named in list" 14:50:14 ok, well 14:50:22 having an effect on the stash stack counts as an effect on variables 14:50:31 so, the RETRRIEVEs do nothing 14:50:34 in strict intercal-72 14:50:35 actually, it wouldn't be beyond the bounds of possibility that it would be impossible to STASH or RETRIEVE an ignored variable 14:50:42 yes 14:50:47 that's the literal reading of IGNORE 14:51:07 ais523: funnily the output would be 2, 2 14:51:09 just like C-INTERCAL 14:51:21 maybe ignorret should be updated to handle that possibility...? 14:52:11 it will be now you've brought that up 14:52:38 it'll make the program slightly more complicated, but may as well test the interactions 14:53:01 anyway, people are always making new observations about the INTERCAL standard 14:53:16 I know that sorear, when he was writing the vim syntax highlight file for INTERCAL, concluded that whitespace was allowed inside keywords 14:53:34 although I'm not sure on what basis, and all implementations I know of ban whitespace in that particular location 14:53:35 ha 14:54:03 i've been thinking about unhelpful helpers 14:54:04 -!- Judofyr_ has quit (Read error: 131 (Connection reset by peer)). 14:54:14 syntactic sugar and the like that looks really useful, but works in such a horrid way that it's hell to use 14:54:33 Release 0.27 (by Alex Smith) 22 Dec 2007 | 1. Joris Huizer pointed out that the manual nowhere says that a GIVE UP line can't be abstained from by line number. 14:54:35 for example, a string literal syntax that packs N 9-bit characters per array element, where N is the successive elements of the fibonacci sequence 14:54:43 it only took 35 years to catch that particular weirdness of the spec 14:54:46 I'm sure that ther are others 14:54:47 heh 14:55:06 C-INTERCAL corrects for that now, AFAIR the other impls didn't bother 14:55:06 ais523: thoughts about that string literal syntax? hmm, maybe even make how it's packed depend on the string content... 14:55:28 the obvious thing to do is have a start-string marker but no end-string marker 14:55:33 and end the string at the next thing that looks like a statement 14:55:47 surprisingly, CLC-INTERCAL would parse that just fine, C-INTERCAL might have more trouble 14:56:58 it would certainly be an interesting fix to the escaping problem 14:59:07 heh 14:59:54 and the start-string marker would presumably be a keyword 14:59:56 rather than punctuation 15:00:01 ais523: why not overload "? 15:00:04 * ehird cackles 15:00:19 that would depend on the syntax 15:00:23 not alternating "/' either, " is always the one overloaded 15:08:38 ais523: do you think CLWNPA is a good name? (Pronounced "interrcall", with a short a). 15:08:45 -!- Asztal has quit (brown.freenode.net irc.freenode.net). 15:08:46 yes, I do 15:08:59 -!- Asztal has joined. 15:17:16 -!- ais523 has quit ("relunching. Why am I eating twice as much as normal nowadays?"). 15:23:52 "The Clang project is an effort to build a set of new 'LLVM native' front-end technologies for the LLVM optimizer and code generator. While Clang is not included in the LLVM 2.5 release, it is continuing to make major strides forward in all areas. Its C and Objective-C parsing and code generation support is now very solid. For example, it is capable of successfully building many real-world applications for X86-32 and X86-64, including the FreeBSD kernel 15:23:54 and gcc 4.2." 15:23:56 AnMaster: maybe clang _is_ ready. 15:24:07 ehird, oh? 15:24:16 I looked at the status page for it recently 15:24:16 well, to a degree 15:24:28 compiling gcc is an impressive achivement 15:24:34 ehird, it can handle most of C but not very much C++ yet 15:24:42 ehird, without or without bootstrapping? 15:24:53 AnMaster: 1. does that matter for C programs? 2. not sure 15:25:09 ehird, no it doesn't matter for C programs. But their goal is C++ 15:25:20 -!- Slereah has quit. 15:25:26 True. But you said that clang wasn't ready for C 15:25:39 when? 15:25:40 Maybe I'll try clang for the next thing I write in C 15:25:49 -!- Slereah has joined. 15:25:50 ehird, also I said it was almost ready iirc 15:26:04 since last I tested it (1-2 months ago) it could almost handle cfunge 15:26:06 AnMaster: yesterday or so, you said clang wasn't ready when I mentioned it 15:26:09 just one thing it failed at 15:26:13 what? 15:26:22 hm? 15:26:28 oh you mean what it failed at? 15:26:34 yes 15:26:38 right. stuff like: 15:26:50 static struct mystruct foo = { .a = blah } 15:26:54 C99 15:27:05 that is, the ".a = " bit is C99 15:27:17 but maybe it can handle that now 15:27:25 I don't know 15:27:38 bbiab 15:27:40 (food) 15:27:41 ah 15:27:44 well that's rather trivial 15:32:53 -!- impomatic has joined. 15:33:09 Hi :-) 15:33:31 hi 15:33:33 hi 15:33:44 ehird, iirc some developer said it wasn't _that_ trivial back then 15:34:12 couldn't you just translate it in the other initialization syntax and use the existing system 15:34:29 oklopol, you would need to fill in values in some places 15:35:16 -!- Hiato has joined. 15:35:22 what is struct mystruct is: { char z[32]; int a; void *b; struct anotherstruct c; union blergh whatever; } 15:35:24 that's a trivial problem 15:35:42 -!- Asztal has quit (brown.freenode.net irc.freenode.net). 15:36:09 oklopol, also using this special syntax is the only way you can initialise anything but the first member of an union like that 15:36:21 sure you could do myunion.foo = 2; or such in code 15:36:29 oklopol, so you can't always translate 15:36:35 especially not for unions 15:37:03 -!- Asztal has joined. 15:37:11 oklopol, so I'd say it is "simple" rather than "trivial" 15:37:17 to add support 15:37:23 -!- oerjan has joined. 15:37:30 oerjan, IWC 15:37:31 err 15:37:33 I mean 15:37:34 hi! 15:37:36 well yes, that may be true. 15:37:41 fnord 15:37:50 oerjan, dronf 15:38:08 that is a float version of the math.h dron() I guess... 15:40:18 determine random obnoxious number 15:41:02 oerjan, yeah 15:41:18 hey, didn't psygnisfive say he goes to stony brook university? 15:41:58 ehird, think it was him yes 15:42:00 not 100% sure 15:42:30 cool, just noticed slava akhmechet (of defmacro.org) does too 15:47:45 -!- ais523 has joined. 15:48:14 wb me 15:48:14 hi ais523 15:48:19 hi oerjan 15:53:23 My method: Note that 4x^2 + 9y^2 = 36 is actually a circle. Do the obvious. Note that it's an ellipse instead. 15:53:27 erm... 15:53:32 i don't think so 15:53:48 4x^2 + 9y^2 = 36 is an ellipse 15:54:01 it's not a circle 15:54:29 I think kerlo's method is to make an incorrect assumpsion, see where it breaks down, and find out what the correct alternative is instead 15:54:55 although it _would_ still work by rescaling if you can show that the largest rectangle inscribed in an ellipse is necessary parallel to the axes 15:55:10 which it probably is 15:55:58 in fact if this is an ordinary calculus test they're probably assuming that's obvious 15:56:13 ais523: can you provide some rhyme/reason to this WTF: http://pastie.org/404648.txt?key=kjkf82sgtymwyt44eapphq 15:56:17 (or geometry) 15:56:57 ais523, I already did it, by testing on gcc 4.1.2 and not seeing that behaviour that ehird just described. Thus implying a bug. But why I wonder... 15:57:30 I tracked down a bug that I thought was in a package to this... Crazy... I can't believe this is common to all OS X gcc users... 15:58:02 An omg.c was compiled // in two slightly different ways // the result was eerily wild // But just don't ask me what it says 15:58:23 ehird, well most programs don't use cpp directly. They just call cc 15:58:37 only program using cpp directly I can think of atm is ick 15:59:18 -!- ais523 has quit (Read error: 104 (Connection reset by peer)). 15:59:21 -!- impomatic has quit ("mov.i #1,1"). 15:59:24 ehird: rhyme enough for you? 15:59:32 AnMaster: ocaml 15:59:35 using cpp preprocessor 15:59:51 ehird, ok. That makes it two that I can think of 15:59:56 btw why does ocaml do that? 16:00:03 -!- ais523 has joined. 16:00:14 ais523, what did you miss? 16:00:25 the question? and/or my comment to it? 16:00:27 *sigh* no respect for poetry even when they are _asking_ for it :( 16:00:43 oerjan, yeah, horrible isn't it 16:01:00 oerjan, what meter did that poetry use? 16:01:10 if any 16:01:10 AnMaster: both 16:01:10 also, what did oerjan say? 16:01:16 ais523: can you provide some rhyme/reason to this WTF: http://pastie.org/404648.txt?key=kjkf82sgtymwyt44eapphq 16:01:18 actually, I'll logread it, I haven't done that in a while 16:01:19 no idea what it's called 16:01:19 AnMaster: the package used ocaml 16:01:20 ais523, I already did it, by testing on gcc 4.1.2 and not seeing that behaviour that ehird just described. Thus implying a bug. But why I wonder... 16:01:21 err 16:01:23 An omg.c was compiled // in two slightly different ways // the result was eerily wild // But just don't ask me what it says 16:01:24 ocaml lets you specify a preprocessor 16:01:28 AnMaster: I saw that 16:01:32 for... preprocessing 16:01:36 and this package used cpp for tha 16:01:36 t 16:01:40 ais523, you didn't answer ehird's question 16:01:46 as far as we saw 16:01:52 yes I did, presumably the reply was never sent 16:02:00 as far as we saw 16:02:03 yes I did, presumably the reply was never sent 16:02:11 thank you Cpt. Obvious 16:02:13 [16:02] as far as we saw 16:02:13 the . is supposed to be silent, btw 16:02:14 [16:02] yes I did, presumably the reply was never sent 16:02:27 ais523: I didn't see the answer? 16:02:27 ais523, here it was over 6 second difference... 16:03:43 "The main contender, ReiserFS, dropped out of the race because its creator decided to pursue other interests" 16:03:47 AAAAAAAAAAAAAA 16:04:07 never gets old, that 16:04:11 then neither did his wife 16:04:40 oerjan, when is that quote from? 16:04:59 15:10:52 yesterday 16:05:02 AnMaster: http://www.defmacro.org/ramblings/relational.html I believe I linked it 16:05:09 (clog time) 16:05:14 hm 16:05:19 and what was ehird quoting? 16:05:22 http://www.defmacro.org/ramblings/relational.html 16:05:39 ah 16:06:07 ehird, yeah when != what. So first time you said it, it wasn't a relevant answer ;P 16:06:22 err s/what/where/ 16:06:52 AnMaster: where must you be so picky about interrogative pronouns? 16:07:25 -!- ais523_ has joined. 16:07:42 wb 16:07:45 -!- ais523 has quit (Read error: 104 (Connection reset by peer)). 16:07:48 argh, it still didn't show up 16:08:05 ais523_: any ideas? 16:08:28 ehird: your results don't happen on my machine either, so it's probably a glitch specific to your version of gcc 16:08:32 well, i failed my first exam 16:08:33 SPL #0, <-1 16:08:36 *GASP* 16:08:40 ah, finally 16:08:43 group hug! 16:08:50 I was trying to prevent impomatic's quit message overwriting the lgos 16:08:52 ais523_: but it's -apple-distributed-. surely they would have done some BASIC TESTS?! 16:08:52 *logs 16:09:02 ehird: that's kind-of obscure, rather than a basic test 16:09:05 oerjan: he got 75% 16:09:09 besides, apple-distributed programs have been known to screw up 16:09:09 ais523_: ## is not obscure!! 16:09:16 -!- FireFly has joined. 16:09:17 ## is insanely common... 16:09:19 ehird: I mean, cpp vs. gcc -E 16:09:26 they probably tested with gcc -E not cpp 16:09:27 i don't know what i got, i just reasoned i couldn't get *more than* 75%. 16:09:28 -!- ais523_ has changed nick to ais523. 16:09:32 retardzz 16:09:35 gah 16:09:41 but I can't compile tons of programs like this 16:09:44 Apple famously messed up the packaging of Perl recently 16:09:47 it was on Slashdot 16:09:51 ah yes 16:10:08 oklopol: you are aware this may not be the definition of "fail" most human beings use, right? 16:10:10 * ais523 hopes that imp gate was written correctly 16:10:16 I don't know redcode all that wel... 16:10:20 *well 16:10:34 oerjan: yes, but that's very irrelevant 16:10:47 oerjan, IWC was weird today. Had to read the forum to understand it 16:10:54 you fail when you need to lower your bar 16:11:09 well, my bar's in different places in different subjects 16:11:19 AnMaster: oh i remembered the similar one from when head death _entered_, so i compared them 16:11:22 I consider the bare pass mark of 50% excellent in some of my project management modules 16:11:27 and indeed they seem to fit 16:11:32 heh. 16:11:38 I got 49% on my last piece of coursework on that, it's averaged with another that I've done but hasn't been marked yet 16:12:23 (i sometimes consider a 5/5 a fail if many ppl get it... but i guess i have to admit *that's* pretty stupid) 16:12:39 how can full marks possibly be a fail? 16:12:56 actually, I was really annoyed when I got 99% on one technology exam I did at school 16:13:03 because I could have got 101% if only I hadn't got two questions wrong 16:13:11 give it 110% 16:13:18 and apart from in A-levels where it's trivial, scoring above 100 is quite an achivement 16:13:28 ais523: well you know if many people get the best possible grade, i'm not well above average! 16:15:50 i recently had this exam where 10/20 didn't show up, 5 failed, 3 got a 1/5, one got a four and i got a five 16:15:50 AnMaster: oh i remembered the similar one from when head death _entered_, so i compared them <-- didn't do that until after I checked forum 16:16:03 and i was like WTF HOW CAN THIS GUY GET JUST ONE LESS THAN ME 16:16:17 and then i called a psychiatrist and was put away 16:16:23 oerjan, I still don't see where money got into it 16:16:40 head death 16:16:47 AnMaster: i haven't checked the forum, i have changed to only checking it every few days, it's faster if i do it in more bulk 16:17:09 because I could have got 101% if only I hadn't got two questions wrong <-- wait. How many % is all of it... 16:17:31 AnMaster: it's for "bonus questions" 16:17:33 i.e. 16:17:34 ah 16:17:35 still 16:17:37 AnMaster: 100, but I got a bonus mark on one of the questions 16:17:40 "Blah blah blah. For bonus marks, tell us why green is purple." 16:17:54 ehird, is green purple? 16:17:59 there wasn't an explicit bonus question there, but the teacher was so impressed with my answer to one of the questions that I got a bonus mark anyway 16:17:59 yes. 16:18:00 AnMaster: oh well head death asks what he owes doesn't he 16:18:04 ehird, why? 16:18:13 don't question your elders. 16:18:23 ehird, err. you are younger than me 16:18:31 oerjan, ah hm true 16:18:49 DON'T QUESTION YOUR ELDERS. 16:18:58 ais523, and how did you manage to impress the teacher like that? 16:19:09 I can't remember, it was ages ago 16:19:11 by writing a good answer? 16:19:13 JUST THEORIZIN' 16:19:18 ehird, well duh... 16:19:49 AnMaster: by being smarter than the teacher, i guess 16:20:00 ehird, when I answer like that to a question that _you_ asked then you get irritated. Same when I _ask_ such as question. 16:20:05 ehird, that makes no sense 16:20:06 and also having a teacher who doesn't mind students who are smarter 16:20:13 AnMaster: Don't question your elders. 16:20:38 ehird, you must be based on the gramophone technology. 16:21:16 AnMaster: maybe that webchatter or whatever technology he mentioned yesterday 16:22:13 oerjan, I think I missed that. What was it about? Don't have X running atm. So like ais523 I just ask instead of looking at clog 16:22:29 AnMaster: i do suspect a number of the times ehird complains about you, he just does it for the hell of it 16:22:48 oerjan, ooh. That would make sense in fact. 16:22:50 oerjan: DON'T SUSPECT YOUR ELDERS 16:22:59 ehird, you must be based on the gramophone technology. 16:23:12 ehird: you are not my elder 16:23:19 SHUT UP. 16:23:20 YOUR ELDERS. 16:23:31 WE ARE THE WARRIORS 16:23:32 yes. gramophone 16:23:36 stuck, repeating the same line over and over. 16:23:49 ehird, that's no Elder... 16:25:47 AnMaster: it was some insane thing on reddit, a program that could be used for various support to talk to people on the web with scripting, but used in such a stupid way that it looked like there _was_ no human on the support end 16:26:19 oerjan: actually, the people started acting human after that article, apparently 16:26:24 (complaining about reddit influx) 16:26:43 ehird: reddit, the nuclear cluehammer :D 16:28:50 oerjan, err... 16:28:55 oerjan, link? 16:29:12 * ais523 detonates a well-sharpened pencil at oerjan 16:29:15 * AnMaster is willing to start browser to check this out 16:30:01 ais523: RIP well-sharpened pencils :( 16:30:03 AnMaster: you need java 16:30:16 http://www.webgreeter.com/ 16:30:39 if that turns out to have been an AI all along... 16:30:47 heh 16:30:49 be very afraid 16:31:08 I do have java... Just not in browser 16:31:17 oh dear you mean reddit has trained skynet? 16:31:19 java for linux x86_64 doesn't have a plugin part 16:31:37 that would be nuclear cluehammer in the other direction, i guess 16:31:38 only the standalone java/javac/and/such 16:41:45 See, you have a budding career as an ehird-amuser there. 16:41:59 wait what, i don't like competition 16:42:04 :D 16:42:44 ehird: :D at your :D 16:42:52 you managed to make a meta-joke with one smiley, that's pretty impressive 16:42:57 oerjan, who was that line directed at? 16:43:09 oklopol 16:43:41 oerjan 16:43:48 oklopol 16:43:53 oerjan 16:43:57 oklopol 16:43:59 oerjan 16:44:03 oklopol 16:44:04 oerjan 16:44:06 oklopol 16:44:08 oerjan 16:44:09 ... 16:44:16 wow, it's like a botloop 16:44:22 but with humans 16:44:28 xD 16:44:34 ais523, I thought that too 16:44:38 well some of them are suspected to be human 16:44:39 ^ luckily oerjan got tired 16:44:49 oklopol: no, AnMaster just broke it 16:45:00 hmm 16:45:02 i guess. 16:45:02 which is just as well, before we got banned 16:45:17 yes probably for the best that you lost so abruptly 16:45:21 so who was it really? 16:45:24 now tell the truth 16:45:31 * oerjan swats oklopol -----### 16:45:31 I don't think it was oerjan 16:45:37 the truth is nothing but a lie wrapped in a pretty cake 16:45:40 See, you have a budding career as an ehird-amuser there. 16:45:41 wait what, i don't like competition 16:45:55 if it was oerjan that reply would be very strange 16:46:05 i have told the truth all the time, i have never lied in my life 16:46:19 really? 16:46:24 it's funny because it's a lie! 16:46:26 no, that's a- 16:46:28 :| 16:46:38 surreally, perhaps 16:49:42 no one gets swedish 16:49:52 inte en själ! 16:50:05 I have lied at least once 16:50:11 but I have also told the truth at least once 16:50:16 16:50 ais523: I have lied at least once 16:50:20 that would be the lie, I presume 16:50:31 I'll leave you wondering 16:50:38 i have done at least one of those 16:51:39 oerjan, verkligen? 16:52:03 AnMaster: stop your incomprehensible babbling! 16:52:21 ais523, then you should guard a door. ;P 16:52:37 AnMaster: given what the doors around here are like, I'd better not 16:52:53 ais523, I wasn't making a reference to that 16:52:59 AnMaster: he can be the one who stabs people who ask complicated questions. 16:53:17 oerjan, nah, I think he is too nice for that 16:53:32 maybe, maybe 16:53:33 the trick to solving that particular XKCD problem is to have a question that solves the problem but doesn't sound complicated 16:53:43 or he could have put on that appearance 16:53:47 [17:49:55] inte en själ! 16:53:48 "What would you say if I asked you if this door lead to freedom?" is my attempt 16:53:55 That looks so strange in an english channel :< 16:54:00 ais523: tricky 16:54:02 not complicated 16:54:09 ais523: except the xkcd also mentioned none of the doors actually lead out 16:54:12 is that a tricky question? 16:54:14 ah, and ok 16:54:24 actually, based on the drawing, the doors seem to lead /in/ 16:54:35 also, with three doors, no way you can determine all the information with a yes-or-no question 16:55:43 http://cairnarvon.rotahall.org/pics/lslw.jpg 16:55:52 FireFly, ja det gör det. Men han talar norska 16:56:07 ändå är det begripligt 16:56:26 AnMaster: um gör jag vel inte 16:56:48 oerjan, jo, inte svensk skulle stava det "vel" 16:57:03 Good enough 16:57:06 ok i write swedish as botched by a norwegian 16:57:06 ingen* 16:57:10 oerjan, indeed 16:57:14 Bättre än jag kan norska 16:57:16 Ehm 16:57:18 FireFly, same 16:57:29 Betre en jeg kan norsk 16:57:32 : 16:57:33 < 16:57:39 "Bedre enn" 16:58:41 so, maybe :D 16:58:46 FireFly, och det var bättre än mig 16:59:25 :> 16:59:30 Good enough for me 16:59:54 AnMaster: um wait was this an attempt at norwegian? oerjan, jo, inte svensk skulle stava det "vel" 17:00:08 oerjan, no, it was just a typo 17:00:13 oh ok 17:00:14 http://www.youtube.com/watch?v=pkCuc34hvD4 17:00:15 for "ingen" 17:00:50 because most of the words are identical 17:01:01 Norwegian is just typoed swedish :> 17:01:01 especially after fixing the typo 17:01:17 Okay, maybe not 17:01:53 FireFly, Depends. Nynorsk is not as close 17:02:25 actually it is not quite correct _choice_ of words 17:02:45 'jo, ingen svenske ville stave det "vel"' 17:03:28 "ville" is more like the english "will"? 17:03:36 Which would be like swedish "skulle" 17:03:40 so ais523 17:03:42 which is also correct nynorsk, which can be even closer by choosing the -a infinitive option 17:03:53 what do you think I should do, replace cpp with a shell script aclling gcc -E? 17:04:05 FireFly: english "would" 17:04:14 Um, yeah 17:04:36 oerjan, then skulle in Swedish 17:04:38 in that case 17:10:03 i wonder why i liek the otbs 17:10:06 *like 17:10:09 it's not exactly logical... 17:10:32 what is the otbs? 17:10:40 one true brace style (k&r) 17:10:56 ah 17:11:10 having { on a separate line just for functions is rather silly 17:11:11 if you'd written 1tbs, I might have been able to expand it, probably not though 17:11:36 at the moment, for Perl I'm using a 1tbs with { on the opening line for absolutely everything 17:11:41 not sure if I like it or not 17:12:12 1tbs? 17:12:27 oh 1 not l 17:12:29 right 17:12:45 (they are different in this font, just not by much) 17:20:26 ais523: do you think CLWNPA is a good name? (Pronounced "interrcall", with a short a). 17:20:52 it should make the welsh scratch their heads, at least 17:25:22 oerjan, heh 17:35:03 C function pointer syntax is crazy IMO 17:35:09 I like it 17:35:19 it follows the general rules for C type syntax very well 17:36:10 ais523, I tend to typedef to not need to think about it 17:36:39 and in typedef it is really strange 17:37:16 typedef void (*fingerprintOpcode)(instructionPointer * ip); 17:37:20 really that is strange 17:37:24 typedef is usually: 17:37:38 typedef long int fancyname 17:37:40 or such 17:37:55 ais523, for function pointers that is no longer true 17:38:07 I mean tyedef 17:38:12 typedef* 17:45:01 -!- MigoMipo has joined. 17:49:52 Do you consider it acceptible to press F3 if you don't have a suicide spoon handy, or is that cheating? 17:51:31 hmm, you can make any vector image from lines & curves right? 17:51:40 what about fill? 17:52:13 ah, yes 17:52:23 you can make any vector image from lines, curves & fill right? 17:52:42 probably 17:52:49 I suppose it depends on what primitives the image uses 17:52:54 "curves" is pretty general... 17:53:14 true 17:53:26 ais523: I was planning having an image be from (0.0,0.0) to (1.0,1.0) 17:53:41 a curve would be (x1,y1,x2,y1,bend) 17:53:45 where bend is from 0.0 to 1.0 17:53:46 probably 17:53:54 hmm 17:53:57 a line is a curve with bend 0 17:54:49 A cruve is in this case a bezier curve? 17:55:40 [18:52:26] you can make any vector image from lines, curves & fill right? 17:55:43 I guess that'd work 17:55:49 Judging from how SVGs are built 17:56:16 yes, bezier 17:59:26 so, with those, a circle is 17:59:27 ((0.5, 0), (0.5, 1), -0.5); 17:59:28 ((0.5, 0), (0.5, 1), 0.5) 17:59:29 I believe 18:00:13 I don't think it's possible to do a sine wave with only bezier curves 18:00:21 not exactly right, anyway, although you can approximate it as closely as you like 18:00:29 hmm 18:00:30 why not? 18:00:47 because it's a different shape of curve 18:01:38 hmm 18:01:40 -!- oerjan has quit ("leaving"). 18:01:44 maybe I should use a different type of curve 18:01:53 Hm 18:02:18 I've tried to make a circle lots of times with Bezier based curves 18:02:23 And I've had a hard time 18:02:47 well, with mine it would be 18:02:47 or a graph of Ei, for instance, definitely can't be drawn with bezier curves 18:02:48 [((0.5, 0), (0.5, 1), 0.5); 18:02:48 ((0.5, 0), (0.5, 1), -0.5)] 18:02:53 By my experience, IIRC, the "anchor" points which describes the bend are placed at odd laces 18:02:59 places* 18:03:15 you draw the straight line in the middle from top to bottom, then curve it so that the middlepoint is away from the starting point 18:03:20 http://en.wikipedia.org/wiki/Exponential_integral 18:03:24 hmm, the curve should be two curves 18:03:30 since it can curve horizontally or vertically 18:03:37 but, with that you can express a circle as above 18:03:57 -!- ais523 has left (?). 18:04:02 -!- ais523 has joined. 18:04:12 how did I do that? 18:04:26 misclick, it seems 18:10:13 -!- olsner has joined. 18:14:31 http://www.scribd.com/doc/12927007/The-Manga-Guide-to-Databases-excerpt 18:14:38 oh dear... it actually exists... 18:15:04 hahaha 18:15:04 did you actually go looking for one of those? 18:15:18 no, it was on reddit and now an excerpt of it is on reddit 18:15:20 if it's not hentai i'm not interested 18:16:10 yes it's database hentai 18:16:39 the tentacles of denormalization 18:20:59 http://www.sfcave.com/ addictive 18:22:44 [18:52:26] you can make any vector image from lines, curves & fill right? <-- what about gradients? 18:23:02 err, I'm talking about the theoretical definition of vector image. 18:24:29 http://www.scribd.com/doc/12927007/The-Manga-Guide-to-Databases-excerpt <-- needs flash, summary? 18:24:44 it's the manga guide to databases. 18:24:54 ehird, yes, but what does that mean in practise? 18:25:08 it's a guide to databases that is a manage 18:25:10 *manga 18:25:19 ah there is a description there too... 18:25:34 thank for your (lack) of helpfulness 18:25:38 thanks* 18:25:57 what the fuck is there not to get? 18:26:04 it's the manga guide to databases 18:26:09 where's the ambiguity? 18:26:45 it could have been a space theme, or fantasy theme, or sex theme 18:26:57 or something else 18:26:58 .... err, what 18:27:21 manga can be about different subjects right? 18:27:25 Like everything can 18:27:40 you can have comics with scifi. 18:27:48 and you can have comics with fantasy 18:27:49 ehird: so how much have you gotten? 18:27:51 and you can have comics with other stuff 18:27:54 oklopol: wut 18:27:59 snake 18:28:06 oh high score on that thing? 18:28:09 yes 18:28:09 10150 i am not very good 18:28:10 you? 18:28:20 17000 or something, just making sure 18:28:39 although i like the graphics, will probably play a bit more 18:28:55 even though i don't really find that a very stimulating concept 18:29:19 Nibbles is my favourite version of Snake 18:29:29 I liked it so much I even wrote patches against it and submitted them to Gnome 18:30:23 my phone as a 3D TPS (Third Person Snake) 18:30:29 it's horrible 18:30:43 third person snake, you mean, snake 18:30:45 3D snake? 18:30:46 ? 18:30:49 oh 18:30:50 right 18:30:57 I've played 3d snake, called Swear 18:30:58 t'was fun 18:31:07 not the same one I think then 18:31:07 on a klein bottle 18:31:07 no less 18:31:18 I've played some odd 3D snake on a Nokia cellphone 18:31:19 this one is rather boring. 18:31:22 Didn't like it 18:31:25 Hm 18:31:27 FireFly, Nokia here too 18:31:29 On MY cellphone, IIRC 18:31:34 this one is called "Snake III" 18:31:36 * FireFly doesn't use his cellphone a lot 18:31:39 Yeah, the same one 18:31:42 1D snake could be more interesting 18:31:58 Althrough on my dads cellphone, theres some wireframe snake, looks more interesting 18:32:00 ais523, how would it work 18:32:01 rather boring, I think, ais523 18:32:04 And it's also a Nokia 18:32:09 FireFly, older model? 18:32:16 Yep, I think 18:32:24 But it looks about as good, technically wise 18:32:27 AnMaster: I'm thinking the snake would move n squares at a time, rather than just 1 18:32:33 and you would vary n 18:32:37 Eg. equally advanced graphics 18:32:42 ais523: ah, clever 18:32:48 so there's obstacles 18:32:53 and you have to increase your "hop speed"? 18:32:53 FireFly, mine is a "Nokia 3something Classic" 18:32:54 Hm, that's interesting 18:32:55 to get past them 18:33:04 ais523: that would be best as a side-scroller type thing 18:33:06 for visualization 18:33:12 PUDDING!!!!! 18:33:14 with a snake hopping 18:33:15 ehird: probably 18:33:23 Side scroller snake 18:33:25 Ugh 18:33:25 18:33 ais523: PUDDING!!!!! 18:33:28 I LOVE PUDDING TOO. 18:33:33 ehird: it's a TURKEY BOMB command 18:33:42 i know 18:33:44 but what's the relevance 18:33:49 FireFly, I forgot the exact model 18:33:52 FireFly, :D 18:33:53 does it have to be relevant? 18:33:55 Mines.. 7500 18:33:57 Prism 18:34:00 I was randomly reading the TURKEY BOMB specs 18:34:01 Easy number to remember 18:34:06 and felt an urge to paste one of the commands 18:34:41 FireFly, mine is like 3120 or something like that 18:34:44 * ais523 suddenly notes that no commands use AMICEDs, apart from the ones that take any time 18:34:50 and it doesn't have the model number on it even 18:35:03 FireFly, there is also a rally game on the phone. 3D 18:35:09 very bad graphics 18:35:14 Hm, that one 18:35:20 I think I've played it 18:35:20 FireFly, what one? 18:35:22 oh right 18:35:23 ehird: about your cpp problem, what happens if you give the -### switch to the two commands/ 18:35:28 You auto-move forward, can only steer 18:35:29 Right? 18:35:38 Some beach race thing 18:35:41 FireFly, you can turn off that auto move forward though 18:35:44 and not beech 18:35:50 mountain and such 18:35:51 Hm, guess it's a different one then 18:36:04 FireFly, not using auto forward is very hard 18:36:21 but why in a phone 18:36:33 ais523: cpp gives -traditional-cpp but surely traditional cpp had ## 18:36:39 Althrough I also have this Tower Bloxx game, it's quite alright 18:36:39 I use it for calls and SMS 18:36:45 ehird: no, it didn't 18:36:45 FireFly, don't have that one 18:36:48 I don't use mine 18:36:50 ais523: O_O 18:36:51 :D 18:37:03 ## was invented for C89 to avoid the horrible hacks that people were using instead 18:37:05 as was # 18:37:11 FireFly, have some backgammon game too. No idea how to play it 18:37:24 backgammon that is 18:37:30 traditional cpp #define A(x) "testx" translates to modern CPP #define A(x) "test" #x 18:37:32 Hm, I think I've played a Nokia backgammon game, yeah 18:37:52 ais523, wow crazy 18:37:54 * ais523 looks at http://esolangs.org/wiki/Talk:Esme for old time's sake 18:38:04 ais523, also cpp doesn't run into that bug ehird hit here 18:38:09 and suddenly realises that the discussion there is between Dagoth and zzo38 18:38:11 AnMaster: nor here 18:38:18 "Esme: It works by tapping out "ESME" into Morse code, then writing "Esme" in to the papers." 18:38:29 ais523, also -### ? 18:38:38 AnMaster: a lovely name for a gcc switch 18:38:42 it's basically like: 18:38:43 you should try it some time 18:38:44 http://fortwayneright.files.wordpress.com/2008/07/dewey_wins.jpg 18:38:49 except instead of DEWEY DEFEATS TRUMAN 18:38:50 it says 18:38:52 ESME ESME ESME 18:38:54 I don't know why they chose that one, presumably they just wanted it to be memorable 18:38:54 ais523, I can't find it in man page 18:39:02 AnMaster: gcc's man page isn't well-documented 18:39:09 the gcc people prefer info 18:39:17 it's a debugging switch that charts what the subprocesses do 18:39:41 -!- Mony has quit ("Quit"). 18:41:08 -!- calamari has joined. 18:49:55 hahaha: http://www.planetsourcecode.com/vb/scripts/ShowCode.asp?txtCodeId=11751&lngWId=3 18:50:01 err qut 18:50:03 qut 18:50:04 yeah, saw that 18:50:04 *wut 18:50:05 "Note: Due to the size or complexity of this submission, the author has submitted it as a .zip file to shorten your download time. Afterdownloading it, you will need a program like Winzip to decompress it." 18:50:12 ais523: that's by the actual author of deadfish 18:50:17 bit of a newb. 18:50:22 ehird: what am i misunderstanding, i got a 27000 and i'm not on the list 18:50:26 I've suddenly had an impulse to want to write a deadfish polyglot 18:50:29 oklopol: did you enter a nam 18:50:29 e 18:50:41 as in, a program that's a deadfish interpreter in lots of different languages 18:50:44 wait i am 18:50:47 lol 18:50:47 nm 19:00:15 now presumably ehird will try 19:00:23 ? 19:00:31 to write a polyglot deadfish interp 19:00:44 probably not, I suck at polyglots 19:02:27 ais523, specs for this deadfish? 19:02:34 http://esolangs.org/wiki/Deadfish 19:02:38 it's a very trivial non-TC language 19:03:55 yeah indeed 19:04:16 mostly famous because it has a huge number of implementations 19:07:25 ais523, so does bf 19:07:33 and befunge-93 19:07:43 yes 19:07:47 wow at that C one on the wiki 19:07:50 but those are famous on other grounds 19:07:53 /* <-- Declare a function --> */ 19:07:54 w 19:07:54 t 19:07:55 h 19:08:10 embedded SGML comments.. 19:08:15 wait no 19:08:16 not even valid sgml. 19:08:18 a ! and it would be 19:08:21 the author is a silly newb. 19:08:23 ehird, yeah see how it fails 19:08:23 it's mostly for the novelty. 19:09:24 ehird, what? nah. That would be /* <<<><<<<---!()\/& Declare a function &\/()!--->>>><>>> */ 19:09:28 that is novelty! 19:10:52 ehird, also an example of a "don't do this" comment 19:11:04 * AnMaster looks for the i++; /* Increment i */ 19:12:01 -!- calamari has quit ("Leaving"). 19:12:33 /* Make sure x is not greater then 256 */ 19:12:33 if(x == 256) x = 0; 19:12:40 ... 19:12:46 yes, we are aware of the 'bug' 19:12:59 other implementations do the same thing for compatibility 19:13:06 ais523, not only that. He should have used "unsigned char" and 255 19:13:18 as in that is the same 19:13:39 ais523, should I write a short C version that does the same but is sane and put it up there after his C version? 19:13:39 what's wrong with that? 19:13:48 oklopol, read that comment 19:13:52 /* Make sure x is not greater then 256 */ 19:13:52 if(x == 256) x = 0; 19:13:52 oh comment. 19:14:01 AnMaster: the behaviour on 256 is considered an important part of Deadfish 19:14:04 yeah i don't read comments 19:14:08 in other words, the implementation is correct but the comment is wrong 19:14:14 ais523, yes indeed 19:14:46 ais523, should I put up something following the same implementation in C but that is sane 19:14:48 yes or no? 19:14:57 maybe I'll do an erlang version 19:14:59 as well 19:15:14 probably better to just add new languages 19:16:31 k 19:17:41 -!- ais523 has quit (Remote closed the connection). 19:19:15 hm 19:23:03 Agh, I ran into GreyKnight -again- 19:24:27 ehird, what? 19:24:31 context? 19:24:47 guy who was in here circa 2006, ran into him via the logs first, then saw he played Agora in 2006 when browsing archives, and now I see him on wikipedia 19:26:23 hm ok 19:26:35 how does Deadfish behave on EOF? 19:26:57 what 19:27:27 simple question 19:27:37 there is >> for the user 19:27:43 what if user hits ctrl-d? 19:29:04 it exits... 19:30:54 ehird, ? 19:31:00 it exits... 19:31:11 ehird, it doesn't quit or react? 19:31:20 do you know what exit means. 19:31:24 no 19:31:26 it doesn't 19:31:29 as far as I can tell 19:31:38 "It only exits, not quits!!" 19:31:56 ehird, looking at the bash implementation for example 19:32:00 the bash one just echos 19:32:12 okokokokokokokokokokokoko 19:35:48 another bug 19:35:57 you could go to 254, then square it 19:36:43 that's the intention. 19:37:32 that bash implementation doesn't allow it heh 19:38:23 "# ARM Texas Instruments OMAP3 chip" —http://www.alwaysinnovating.com/touchbook/ 19:42:22 -!- jix has quit (Read error: 104 (Connection reset by peer)). 19:44:55 ehird, doesn't mean anything to me 19:55:05 done. 19:55:08 deadfish.erl 19:55:22 MIT or BSD? 19:55:35 ehird, which would you suggest? 19:55:45 I think I will go for MIT license 19:55:46 MIT 19:55:49 or if BSD, BSD2 19:55:58 the "don't use our name" thing is redundant and outmoded 19:55:59 ehird, not BSD-4? aww 19:56:02 AnMaster: BSD-5 19:56:07 what? 19:56:10 that exists? 19:56:11 add a clause requiring modifiers to give all their babies to you, so you can eat them 19:56:15 to further your evil plot to destroy the world 19:56:18 hah 19:56:20 -> Sure it's open source, but your code is safe! 19:56:31 ehird, what about one that says: Plus everything in GPL2? 19:56:40 hm? 19:56:46 oh 19:56:47 heh 19:56:52 or GPL3 19:56:59 AnMaster: add a clause saying that only people called george can modify the softwar 19:57:00 e 19:57:08 why george? 19:57:13 why not 19:57:18 also don't question your elders 19:57:27 well you aren't my elder 19:57:35 shut up. your elders. 19:57:47 ehird, anyway what license is allowed on the wiki? 19:58:06 Public domain. Nothing else. 19:58:10 well 19:58:17 I'll guess I'll have to go for that then 19:58:19 Specifically, the creative commons public domain dedication 19:58:29 AnMaster: just don't put a header in 19:58:30 like the others 19:58:33 hm 19:58:45 e.g., authorship tag would be silly if others modified it 19:59:54 %% @author and %% @copyright are done in all erlang code really 20:00:00 %% @doc too 20:00:53 who cares 20:00:55 just omit them 20:02:58 -!- Hiato has quit ("Leaving."). 20:03:17 argh 20:03:42 what 20:03:44 Login error: 20:03:44 Error sending mail: There is no e-mail address recorded for user "AnMaster". 20:03:49 I don't remember password 20:03:53 ? 20:03:56 oh. 20:04:02 ehird, and there is no email 20:04:03 so 20:04:09 AnMaster: just edit anonymously, will it kill you? 20:04:30 or was that disabled, I forget 20:04:48 hm 20:04:50 not sure 20:04:54 anyway who is an admin 20:05:00 just edit anonymously 20:05:08 and ais523, ihope (iirc), oerjan, everyone 20:05:15 yes, anonymous editing works 20:05:17 I just checked 20:05:29 -!- BeholdMyGlory has joined. 20:05:51 ehird, http://paste.lisp.org/display/76426 20:06:11 ehird, did you say everyone? 20:06:12 who? 20:06:15 okay, apparently your brain can't parse me, 20:06:19 http://esolangs.org/w/index.php?title=Deadfish&action=edit 20:06:20 http://esolangs.org/w/index.php?title=Deadfish&action=edit 20:06:23 http://esolangs.org/w/index.php?title=Deadfish&action=edit 20:06:23 ehird, I refuse 20:06:24 to edit 20:06:25 third time lucky 20:06:26 anon 20:06:43 my ip! 20:06:43 AnMaster: ok, then your interp will never be used and nobody will see it apart from a few 20:06:46 have fun with that 20:06:58 ehird, no, I'll just poke ais when I see him next time 20:07:11 I'm sure he'll enjoy being bothered for something so trivial 20:07:28 ehird, I'm sure he won't mind 20:07:48 AnMaster: and do you intend to put it on the wiki with that license? 20:08:03 ehird, nop 20:08:12 I plan to make it public domain if I put it on wiki 20:08:13 so why did you paste it with thatlicense 20:08:21 also, yours doesn't meet the spec. 20:08:22 ehird, because that isn't the wiki 20:08:25 you can do multiple commands per line. 20:08:33 ehird, I checked several other ones 20:08:40 several didn't support it 20:09:09 but trivial to fix 20:10:16 "You can have several commands per line, at least in the C implementation." 20:10:20 If you read it... 20:11:48 at least in 20:11:48 yes 20:11:56 check the implementations there though 20:12:22 ehird, wait, will it print two newlines after each line then? 20:12:56 or does it strip a trailing \n? 20:15:10 -!- ais523 has joined. 20:18:36 ais523, hi 20:18:40 rehi 20:18:42 ais523, I lost my login to the wiki 20:18:46 and have no email set 20:18:52 as a wiki admin can you help? 20:18:55 ugh, nothing I can do about that despite being an admin 20:19:01 ais523, who can then 20:19:03 best to create another account 20:19:09 graue probably could modify the database directly 20:19:11 ais523, guess I'll just stop editing 20:19:14 but with no email set, there's no "official" way to do it 20:19:23 you can just create another account and mention you lost your password, nobody will mind 20:19:26 and not put up my erlang deadfish 20:19:30 that's common even on Wikipedia, and some people have done it before 20:19:32 ais523, I will 20:19:35 or you can just post as an anon if you prefer 20:19:37 I will mind 20:19:45 ais523, my ip! 20:19:46 :P 20:19:55 nah I guess I'll just skip it 20:20:03 ais523, btw 20:20:12 ais523, does deadfish strip trailing newline? 20:20:17 on input 20:20:22 it's interactive 20:20:27 ais523, yes 20:20:33 exactly 20:20:36 and I think it strips newlines if and only if there's something else on the line 20:20:47 ais523, right. That is painful 20:25:28 -!- jix has joined. 20:25:58 ais523, does it matter of the interpreter is bignum? 20:26:12 I mean, I do handle -1 and 256 as original code 20:26:19 but with s you can get outside that 20:26:30 AnMaster: getting outside it is part of the fun 20:26:45 in fact, the discussions here we had about making Deadfish TC relied on bignums 20:27:52 ais523, http://paste.lisp.org/display/76430 20:28:10 ais523, you need *two* bignums to do that 20:28:15 no you don't 20:28:18 well, maybe not 20:28:18 really? 20:28:22 what about control flow 20:28:23 having a square instruction makes things more complicated 20:28:28 control flow I'm not sure about 20:28:59 ais523, you need some sort of control flow. All you have now is a fixed program. Even with bignums you couldn't implement bf in it 20:29:05 that is bf without IO 20:29:38 ais523, anyway what do you think of my erlang implementation? 20:29:47 simple enough 20:29:55 but with that licence, it wouldn't be acceptable on Esolang anyway 20:30:17 ais523, I would relicense it as public domain if I got my account back 20:30:24 simple enough 20:30:50 ais523, graue would probably not believe me if I asked him, so better you ask him (since he would trust you more) 20:30:54 (and you know who I am) 20:31:23 ais523, :) 20:37:06 oerjan: what I mean is to pretend it's a circle. 20:37:14 He's not here, but I'm sure that message will find him eventually. 20:39:25 kerlo, it isn't 20:39:50 the circle is a lie! 20:40:33 Intelligence is about ignoring what isn't important. 20:40:51 For much of the problem, it's not important that it's actually an ellipse. 20:41:08 true 20:43:28 then what is important? 20:43:38 Area and betweenness. 20:43:56 Area-preserving affine transformations preserve both of these. 20:44:01 what's betweenness? 20:44:15 Whether or not one point is between two others. 20:45:03 err so that every line cuts it zero or 2 times? 20:45:09 except for tangents 20:45:13 so 0-2 20:45:16 or what do you mean 20:45:32 AnMaster: graue will, most likely, tell you that if you give a shit about your ip being exposed jsut create another account 20:45:42 at least, that's what any sane person would. 20:45:49 http://paste.lisp.org/display/76432 20:45:57 fixed some comment typos 20:46:01 I'm saying that an area-preserving affine transformation is useful in this case, I guess. 20:46:08 and now it works according to reference implementation 20:46:15 "reset my password", sure. "reset my password because i refuse to edit anonymously and otherwise i will STOP EDITING FOREVER", oh go away. 20:46:43 ehird, I will only ask the first obviously 20:46:55 If you want to maximize the area of a rectangle inscribed in an ellipse, then whatever transformation you apply needs to preserve area and rectangleness. 20:47:04 AnMaster: so why are you asking the other here 20:47:19 ehird, because graue isn't here? So it doesn't matter. 20:47:23 and stop bitching 20:47:26 it's the kind of thing you'd call me childish for, actually (refusing to edit just because of username not being AnMaster or ip being exposed) 20:49:18 o 20:49:21 oko 20:49:36 ol fokol ofol ooo..... 20:49:45 z 20:49:49 oko polofol o kolooo 20:50:02 kol kol kolk olk oo :) 20:50:12 i need a translator 20:50:23 oklopol: translate oko to english and post it to agora 20:51:14 -!- kar8nga has joined. 20:51:40 someone should make a TC language based on "oko" 20:51:53 and not just a bf in a thin wrapper 20:52:20 only oklopol could, and he won't because that's sacrelige 20:52:22 a bf lookalike* 20:52:38 okokokokoko 20:52:43 ehird, then his followers should do it 20:52:48 i was thinking about one at some point 20:52:54 oklopol, really? 20:52:57 AnMaster: no, it would be inferior 20:53:05 nothing can truly capture oko apart from itself. 20:53:15 interesting 20:53:18 go ahead... 20:53:31 * AnMaster backs away slowly 20:53:35 AnMaster: yes, but it was more weird than it was interesting; it was more like an elaborate prng than a programming language 20:53:56 AnMaster: you see, an alien called Xenu... 20:54:10 oklopol, heh 20:54:16 ehird, argh! 20:54:43 ...made a Time Cube, which encompasses all 4 corners of spacetime, and... 20:54:59 ... 20:55:01 oh my 20:55:50 ...dropped it as a bomb on to Earth, and the Mayans were left with traces of the magic, predicting that in 2012... 20:56:09 ...we would run out of ipv4? 20:56:28 ... kind of. 20:56:37 ehird, what had you planned to say? 20:56:54 I was trying to tie it to Christianity. 20:56:56 Or buddhism 20:56:59 I see 20:57:00 Or mormonism 20:57:01 ...therefore, God exists and the theory of evolution is false. 20:57:07 kerlo: Exactly. 20:57:11 hah 20:58:37 Christians don't write genetic algorithms; they intelligently design them. 20:59:16 intelligent design algorithm? 20:59:32 sounds awesome 20:59:33 or not 20:59:36 dunno 20:59:47 ehird, actually genetic ones tend to not evolve the actual algorithm, just the parameters 20:59:56 or fudge factors 21:00:09 AnMaster: elders _|_ 21:00:16 ehird, ? 21:00:46 hahaha fudge factory you mean the ass? :D 21:01:33 I didn't 21:01:38 maybe ehird did 21:04:52 "Scheme seemed closer to the (register) machine than C, and it seemed like a nice alternative to assembly language." 21:05:34 ehird, source 21:05:42 anonymous. 21:05:49 ehird, well where did you get it... 21:05:55 the internet. 21:05:59 ehird, link? 21:06:06 http://internet.com/ 21:06:10 ... 21:06:25 ehird, that exists 21:11:18 -!- BeholdMyGlory has quit (Remote closed the connection). 21:12:48 ais523: has the underhanded c contest disappeared? 21:13:00 ehird: no 21:13:04 http://underhanded.xcott.com/ 21:13:06 sure? 21:13:09 there was a slashdot article about the IOCCC disappearing 21:13:15 Xcott himself showed up on the comments 21:13:23 but the site is gone. 21:13:31 what, really? 21:13:37 http://underhanded.xcott.com/ 21:13:40 i did just link you. 21:13:42 -!- BeholdMyGlory has joined. 21:13:56 it doesn't look gone to me, just broken 21:14:29 yeah 21:14:36 broken = gone 21:14:43 the5k.org has been broken for years; it's gone 21:14:47 email him 21:14:59 or her 21:15:02 yeah with my psychic email guessing powers. 21:15:10 ehird, don't know his email? 21:15:10 also, I imagine he knows. 21:19:20 I hate hate hate how ioccc's .c links don't open in the browser. 21:19:31 your browser is misconfigured, then 21:19:45 unless it's sending as application/octet-stream for some reason 21:19:50 * ais523 glares at paste.eso-std.org 21:19:57 I beg to differ: Content-Type: text/x-csrc 21:19:58 ais523, indeed 21:20:02 that's not even a valid content type 21:20:05 wtf? 21:20:07 also, you liked it well enough before AnMaster complained about it 21:20:09 ok, why is it using that type? 21:20:12 and yes, I liked it 21:20:18 I was trying to point out you were being inconsistent 21:20:19 ais523: ioccc.org's server is misconfigured, then. 21:20:23 yes, agreed 21:20:24 ais523, indeed 21:20:28 possibly both, actually 21:22:28 what I wouldn't give for mkcd() { mkdir $1; cd $1 } 21:22:31 oh wait, I just did it. 21:22:49 I hardly ever mkdir 21:22:54 so mkcd isn't all that useful 21:24:12 so, the vast majority of ioccc programs can't be compiled by default. :D 21:25:05 they're shipped with makefiles 21:25:12 and yes, you do need to use the makefile normally 21:25:17 or at least copy the options by hand 21:25:19 yes, but they fail with the makefile 21:25:19 -D options are very common 21:25:25 I used the toplevel recursive make 21:25:29 and most of them failed badly 21:25:39 what sort of error messages? 21:25:45 syntax errors, etc 21:25:55 ehird, a lot of them are due to traditional C 21:25:59 pre-ANSI 21:25:59 yes 21:26:15 ehird, -traditional-cpp to GCC may help 21:26:27 the catchall -traditional will probably work better 21:26:35 to handle pre-ANSIisms in the source code itself 21:26:39 wow, 2004/arachnid is awesome 21:26:40 ais523, both do the same according to man gcc here 21:26:44 many of the older programs have ansified versions 21:26:48 -traditional 21:26:48 -traditional-cpp 21:26:48 Formerly, these options caused GCC to attempt to emulate a pre-standard C compiler. They are now only supported with the -E 21:26:48 switch. The preprocessor continues to support a pre-standard mode. See the GNU CPP manual for details. 21:26:54 ah 21:27:06 ais523, gcc 4.1.2 21:27:40 " see http://bellard.org/ for QEMU (Fabrice Bellard is an IOCCC 2001 winner), " 21:27:41 Heh. 21:28:22 ehird, there is one IOCCC entry that includes a configure 21:28:23 ... 21:28:31 iirc "worst abuse of rules" 21:28:33 for that year 21:29:04 2004 21:31:27 ehird, check that one out 21:31:31 hibachi 21:31:32 i did 21:37:06 " * I achieved some additional tightness by '-Dif=while', saved 9 chars " 21:37:06 .. 21:38:31 wh:D 21:38:33 ehird, :D 21:40:42 * ehird writes OCR program. 21:40:55 it will recognize A, C, D and E. 21:41:41 ehird, why those only? 21:41:56 They're the only ones I've calculated OCR-optimization-count vectors for. 21:42:06 -!- jix_ has joined. 21:42:31 ehird, err, how do you mean? 21:42:45 Don't question your elders. 21:42:57 you are not my elder 21:44:09 -!- MigoMipo has quit ("QuitIRCServerException: MigoMipo disconnected from IRC Server"). 21:48:52 http://pastie.org/private/qb2tg9bvpnsv2rw2q0ljgg This may or may not work, YMMV. 21:51:53 mhm 21:52:38 If anyone wants to give it a bigger alphabet/write a main()/test it, feel free :P 21:53:29 -!- jix has quit (Read error: 110 (Connection timed out)). 21:53:59 -!- ais523 has quit (Remote closed the connection). 21:57:03 AnMaster: I nominate you :P 21:57:47 -!- olsner has quit ("Leaving"). 21:57:54 ehird, thanks but no 21:58:15 ehird, I'm going to sleep shortly, and your program will just be forgotten 21:58:23 Oh irony. 21:58:30 Actually, i'm testing it now. 21:58:32 So not quite. 21:58:35 ok 21:59:21 ehird, I expect unit tests with 100% coverage too! ;P 21:59:30 To hell with unit tests. 21:59:31 ehird, one bug however: 21:59:33 char *s = "ACDE"; 21:59:35 should be 21:59:39 const char *s = "ACDE"; 21:59:42 or 21:59:46 char s[] = "ACDE"; 21:59:49 AnMaster: I'd run now, before I kill you. 21:59:57 ehird, what? 22:00:17 I don't consider that a bug; you've said it before and I've replied that before, so you do know. 22:04:12 -!- kar8nga has quit (Remote closed the connection). 22:04:19 ehird, it is against the C standard. 22:04:45 That code is invalid C89? I don't believe you. 22:05:32 ehird, I don't have the C89 spec. I know it breaks C99 technically 22:06:04 If any implementation supported C99 I'd agree. 22:18:36 ehird, you are not allowed to modify that char* = "ABCE" even in C89 22:18:37 as in 22:18:46 s[2] = 'G' 22:18:55 AnMaster: I don't modify it. 22:19:08 But you can't modify a string literal, umm, no shit, I do know c 22:20:16 Which part of C99 it breaks, though? 22:25:28 fizzie, I don't remember section number 22:25:38 Yes, but what's it about? 22:25:38 but I do remember reading it 22:25:54 fizzie, the type of a string literal is const char*, not char* 22:26:02 Well, that's just not true. 22:26:38 truth must not get in the way of zealotry! 22:26:46 fizzie, oh? 22:26:50 I'm quite sure 22:26:52 well actually 22:26:56 const char[length] 22:27:10 6.4.5 String literals: "-- character sequence is then used to initialize an array of static storage duration and length just sufficient to contain the sequence. For character string literals, the array elements have type char, and are initialized with --" 22:27:11 and a pointer to one would be const char* 22:27:14 There is no "const" there. 22:27:49 fizzie, I'm quite sure I read it though 22:27:54 -!- tombom has quit ("Peace and Protection 4.22.2"). 22:28:04 I don't have time to find it now, since I'm going to bed. But I'll look tomorrow 22:28:22 There is even an example about this. 22:29:06 EXAMPLE 5: The following three expressions have different meanings: "foo", (char []){"foo"}, (const char []){"foo"} [I abbreviated the example string a bit here] 22:29:41 "The first always has static storage duration and has type array of char, but need not be modifiable; the last two have automatic storage duration when they occur within the body of a function, and the first of these two is modifiable." 22:30:03 I think that quite clearly is saying that a plain "foo" is of type array of char. 22:30:05 Even if a string literal were a const char *, that wouldn't mean that you couldn't initialize a non-const char * to point to one. 22:30:55 true, you can cast away const 22:31:09 AnMaster: ... so why did you say my code was invalid? 22:31:10 i see. 22:31:23 ehird, It looks I misremembered 22:31:32 unlike you I can admit that. 22:32:02 you do realise that I haven't actually denied misremembering once? 22:32:24 ehird, no, but not admitting you were wrong 22:32:38 which is same category 22:32:48 still I'd say it is good practise to use const, to reduce possible bugs. 22:32:56 right, right, I forgot reality wasn't actually relevant when saying such things 22:32:57 for non-trivial programs it helps. 22:33:06 night 22:33:14 All this proves is that the people writing C standards are a bunch of sissies, for not having the balls to change the type of string literals. 22:36:15 -!- jix_ has quit ("..."). 22:37:15 Say what you want about C++, at least it has const char string literals. 22:48:04 -!- BeholdMyGlory has quit (Remote closed the connection). 22:56:43 -!- BeholdMyGlory has joined. 23:00:32 -!- BeholdMyGlory has quit (Remote closed the connection). 23:17:31 -!- FireFly has quit ("night"). 23:22:24 -!- BeholdMyGlory has joined. 23:22:50 baguette 23:24:33 -!- BeholdMyGlory has quit (Remote closed the connection). 23:24:48 -!- BeholdMyGlory has joined. 23:27:46 -!- BeholdMyGlory has quit (Remote closed the connection). 2009-03-04: 00:01:45 [[If one extend slightly the syntax for gerunds, DIAL can be implemented 00:01:45 as: 00:01:46 PLEASE ABSTAIN FROM EVERYTHING EXCEPT COMING FROM + ANSWERING 00:01:49 WHILE REINSTATING THEM ]] 00:01:50 more literate than cobol 01:11:50 :D 01:12:00 night really (failed to sleep first) 04:24:03 -!- psygnisfive has joined. 06:56:33 -!- calamari has joined. 07:48:01 Does anyone know of any unicode characters other than eszet where the toUpper() or toLower() cannot be reversed? 07:48:20 (ie changing case twice returns you to a different codepoint) 07:48:42 (Unicode counts as an esolang right? :P) 07:49:50 it's scary reading the logs, fizzie is such a me. 07:50:28 what does eszet do when you change it twice? 07:50:54 ß uppercased is SS. 07:50:59 And SS lowercased is just ss. 07:51:19 Ligatures have similar behaviour. 07:51:31 Just look at the list in http://www.unicode.org/Public/3.2-Update/SpecialCasing-3.2.0.txt for all special-cased things. 07:54:46 Of course for all uppercase characters x, toLower(toUpper(x)) "returns" to a different codepoint, but I suppose that wasn't the question. 07:55:34 Actually http://www.unicode.org/Public/UNIDATA/SpecialCasing.txt is a better link, since it's version 5.1.0 instead of 3.2.0. 07:56:07 It does not seem to be very much different. 07:57:30 hmph, god it's hard searching the logs based on remembering a topic. 07:57:48 should probably make a better searcher program 07:57:51 one that understands 07:58:06 Incidentally, what especially "you" I did in the logs this time? 07:58:27 you said something about not seeing a reason to make mistakes 07:58:41 it may have been a joke, but i'm pretty sure i've said the exact same line. 07:59:43 there was also some other one, but by then i may just have been looking for similarities sub...erconsciously. 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:00:58 I seem to have been writing no-uppercase-at-the-beginning-of-sentences as late as 2004. 08:02:15 your style has actually changed a lot, while i see oklisms in both the old and the new fizzie, you're not always very *fizzie* in the backlogs. 08:02:31 this i cannot give examples of. 08:03:36 Yes, I don't recognize myself in 1990s-age logs (of other channels) at all. 08:04:05 anyway what i was searching the logs for is i remember once correcting an error of ehird's, and for some reason he just wouldn't admit he was wrong even though i clearly couldn't go on with my life without him admitting it. but maybe he did admit it then, or maybe i just imagined this, because i couldn't find it. 08:04:30 It is not trivial to write a regexp to match that. 08:04:46 indeed not, also i don't even use a regexp. 08:04:59 i just search for a string 08:05:08 Maybe you could graph ehird- and oklopol-densities over time, and look only at spots where those have noticeable peaks simultaneously. 08:05:27 yeah there will only be like 2-3 of those per day. 08:05:45 well 08:05:46 Yes, but I like graphs. 08:05:58 maybe like dialog densities 08:06:06 but 08:06:18 there was also oerjan or someone there, it was very spread out... 08:06:55 anyway i should probably start my readings ~> 08:11:27 fizzie: Yes, but I like graphs. <<< i like the good kind of graphs 08:33:28 -!- tombom has joined. 09:01:05 -!- calamari has quit ("Leaving"). 09:44:32 -!- oklopol has quit (Read error: 110 (Connection timed out)). 10:22:31 Yes, but I like graphs. <-- :D 10:25:49 Since it's been such a while after my last graph-drawing, here's a messy one of channel activity over the whole year 2008: http://zem.fi/~fis/esoteric-2008.png 10:26:17 fizzie, what is the scale? 10:26:26 Who knows. :p 10:26:45 fizzie, what is the gap with 0 activity in the beginning? 10:27:29 fizzie, oh and what app did you use to draw this? 10:27:33 Well, the Y axis is "number of lines over three consecutive days", with each X-axis pixel stepping the window start time by 8 hours; and the nicknames are ordered by total line-counts. 10:27:42 It's a custom Perl script with GD.pm, again. 10:27:47 ok 10:27:51 That's why there's no grid. :p 10:28:06 fizzie, btw, that interactive fungot browser thingy... what was the url now again? 10:28:07 AnMaster: here's a problem: you're modifying a global packages.scm; i never considered tic-tac-toe a game 10:28:11 Gap is in my logs, I probably again forgot to "/connect freenode", since I don't have it on automagically. 10:28:33 It was at http://zem.fi/~fis/fungot.html but I haven't continued the commentation, and the source might be a bit old. 10:28:33 fizzie: hi evoli. 10:28:40 ah 10:28:40 fungot: I'm not evoli. 10:28:41 fizzie: so should i waste time on irc" ( ircnet) 10:28:48 who is evoli? 10:29:14 Someone on #scheme. 10:29:23 mhm 10:29:32 fungot, I prefer if you spent your time in here 10:29:32 AnMaster: but decided not to bother u for this one 10:29:41 . 10:29:45 good 10:29:50 I gess 10:29:53 guess* 10:30:49 Uh... actually it seems that the source is current (since it's fetched with a xmlhttprequest-style ajaxy thing from fungot.b98.txt) but the syntax highlighting doesn't match it. :p 10:30:49 fizzie: dating advice? mzscheme? gambit? sisc? 10:31:11 fungot: Are you sure those things have to do with dating? 10:31:11 fizzie: i found on the net." this is a public forum 10:31:29 -!- Slereah_ has joined. 10:41:23 -!- Slereah has quit (Read error: 110 (Connection timed out)). 10:49:35 Oh, and here's the same thing as relative activities: http://zem.fi/~fis/esoteric-2008-r.png -- about the only clear thing in it is the ehird/tusho nickname-switcheroo. 11:03:00 -!- oklopol has joined. 11:40:28 -!- psygnisfive has quit ("Leaving..."). 12:43:05 -!- ais523 has joined. 12:50:39 okay enigma pack 3, level 46 was a fun, nontrivial puzzle 12:51:24 well okay it was kinda trivial after i familiarized myself with the concept of moving bricks, but it took me a while to get there 12:51:31 so yeah, enigma++ 12:53:03 * ais523 finds it interesting to see what oklopol sees and doesn't see as hard 12:53:48 well more interesting than hard, took me three attempts, and on the first one i just tried something at random 12:54:39 on the second i rationalized the beginning but took a few chances on intuition and failed 13:00:20 -!- FireFly has joined. 13:02:48 -!- Mony has joined. 13:03:56 plop 13:04:03 hi 13:07:21 Intuition: just say no. 13:08:17 yeah it's a pretty useless thing 13:35:57 10:25 fizzie: Since it's been such a while after my last graph-drawing, here's a messy one of channel activity over the whole year 2008: http://zem.fi/~fis/esoteric-2008.png 13:36:02 i like it 13:36:15 also, mine is kind of skewed since I say things in multiple lines. 13:36:18 08:05 fizzie: Maybe you could graph ehird- and oklopol-densities over time, and look only at spots where those have noticeable peaks simultaneously. 13:36:19 08:05 oklopol: yeah there will only be like 2-3 of those per day. 13:36:20 :D 13:36:35 10:49 fizzie: Oh, and here's the same thing as relative activities: http://zem.fi/~fis/esoteric-2008-r.png -- about the only clear thing in it is the ehird/tusho nickname-switcheroo. 13:36:39 tha's a lot of oklopol 13:36:58 that's pretty 13:37:22 I'm actually surprised how high "others" is 13:37:41 well, it has the peaks, prolly from when new people arrive 13:37:44 or asiekierka 13:37:53 * ais523 would like to see a smoothed version of the first graph 13:37:59 maybe with weekly moving averages 13:43:45 "Dan Bernstein awards $1,000 for a security hole discovered in djbdns -- its first in almost a decade!" 13:43:46 woah 13:43:52 he actually awarded it 13:43:53 djb++ 13:44:25 well, aparently there was a security hole in qmail that was discovered a while back that he didn't award for 13:44:34 because it only manifested on computers with at least 56GB of RAM 13:45:29 yes, well, that makes sense 13:45:36 this bug is one that can actually be exploited 14:10:37 i think that activity graph might be better if it also showed how much talk actually happened 14:10:52 also how's that a lot of oklopol, it's much more of everyone else 14:11:12 well maybe more than you'd've thought, but i don't see how that's an interesting observation :P 14:11:28 * oklopol mentions level 46 again 14:11:42 * oklopol goes back to his bookings -> 14:22:45 oklopol: want a challenge? try the Experimental set, "Impossible?" 14:23:04 ehird: I've done that one, it's easy 14:23:11 wut :D 14:23:17 there wasn't anything special about it IIRC 14:23:22 sure there is 14:23:22 AFAICT, it's unfinished 14:23:24 it's impossible 14:23:29 hi ais523 14:23:30 how did I not notice? 14:23:33 hi AnMaster 14:24:29 it's impossible <-- no, but you have to guess very luckily 14:25:07 I'm pretty sure I remember finding a magic wand on that level, which makes it trivial 14:25:20 ah, maybe there's a hidden wand somewhere that you can only obtain in the first few seconds 14:26:12 ais523: 14:26:17 you're thinking of Impultest 14:26:17 but as AnMaster mentions, it's clearly possible if you get to the corner oxyds before the bolders do and they happen to be the right colour 14:26:17 just finished it 14:26:47 yep, you need to get to the one in the top right corner quickly 14:26:59 and then you must get it correctly on the next block 14:27:02 after that: trivial 14:27:25 AnMaster: you actually get two tries, you can hit a block on your way to the corner oxyd 14:27:31 ais523, true 14:28:08 i'm not interested in puzzles that require dexterity or any kind of guesswork, and usually not ones that require exploring either, unless they happen to be fun for some reason, but a good puzzle will always be nicer anyway. 14:28:45 well, i love exploring concepts, like how something moves, but i don't like searching the level for information, or physically exploring large areas 14:29:46 well. i guess i just like to solve the things in my brain and not in the game. 14:35:03 -!- jix has joined. 14:37:31 What game is this about? ;o 14:37:53 it's basically a generic puzzle game 14:38:05 which can emulate most of the others as long as you flavour them as involving marbles 14:38:14 ais523: "Great minds" and so on; I actually did weekly averages before you mentioned them. http://zem.fi/~fis/esoteric-2008-smooth.png 14:38:36 so it has dexterity-based, speed-based, knowledge-based, intelligence-based, and patience-based puzzles 14:38:44 oklopol seems to like the intelligence-based ones best 14:39:14 fizzie: I'm basically the loudest person on average, then, if you discount AnMaster's 5 billion "Deewiant: boring thing about befunge" per day. 14:39:22 That matches my intuitive experience. :P 14:39:46 Does this game have a name? 14:39:55 FireFly: Enigma 14:40:07 http://www.nongnu.org/enigma/ 14:40:15 Ah 14:41:03 oklopol: try the microban levels 14:41:33 Hm 14:41:37 I recognize this game 14:41:44 I think I've played it before 14:41:47 pretty much everyone here does, somehow 14:43:55 it seems me and psygnisfive take turns being on top 14:44:00 hmm he isn't here 14:44:01 nm 14:44:04 *groan* 14:44:45 :) 14:45:04 microban 14:45:15 maybe at some point i will 14:50:18 Occasional visitors are more visible in other graphs. http://zem.fi/~fis/test.png has 2009 January (day-long windows, X-scale 1 hour per pixel, relative percentages of activity) and the fluxo invasion is very visible. 14:51:05 Flexo, not fluxo. Anyway. 14:51:23 A grid would be nice too. And some labels. 14:51:29 And a pony yo 14:52:23 who's flexo 14:52:24 :< 14:52:30 a german guy 14:58:05 Statistics are interesting 14:59:48 -!- BeholdMyGlory has joined. 15:00:12 -!- M0ny has joined. 15:02:52 Yes, we're certainly putting the ATTIC back in the stATisTICs. 15:06:50 We're putting the TITS back in staTIsTicS! 15:07:17 I didn't want to be rude. 15:07:43 (There are 23 women and 15 men in a conference. The women's cup sizes are: (etc). The men weight: (etc). How many tits are there?) 15:08:08 If I only do the cumulative-activity-thingamajick but not the normalization inherent in the relative-activity-thing, the flexo invasion loses prominence: http://zem.fi/~fis/test2.png 15:09:18 ... wtfbbq? 15:10:15 activity graph. 15:15:19 HOLY SHIT 15:15:21 * (del) (cur) 16:29, 22 September 2006 . . Tom Duff (Talk | contribs) . . 513×385 (10,841 bytes) (The output of a sample EXPLOR program.) 15:15:24 --esolangs wiki 15:15:28 Tom Duff. 15:15:34 who is he? 15:15:40 ais523: ... Duff's Device. 15:15:46 ah, wow 15:15:56 Also wrote Unix10/Plan9's "rc" shell 15:16:01 Not the same Tom Duff :P 15:16:15 GregorR: no, it is 15:16:18 http://esolangs.org/wiki/User:Tom_Duff 15:16:24 My wikipedia bio links to tom duff on wikipedia 15:16:52 -!- Mony has quit (Read error: 110 (Connection timed out)). 15:16:55 *snaps* 15:17:10 Was that your spine? 15:17:33 That's a godawful picture of him :P 15:17:38 Or at least, I sure hope it is :P 15:17:42 Evil Tom Duff 15:17:56 also, programmers aren't known for their beauty 15:18:01 "Your femur is broken." "Broken as in 'not functioning properly'?" "Broken as in, 'there are 2 smaller femurs where you used to have one.'" "Hmm, 2 femurs. Will this give me super powers?" "If you consider the ability to writhe in pain a super power, then yes." 15:18:03 does he have a beard? 15:18:07 Sorry, the 'snap' just reminded me. 15:18:09 ais523: no 15:18:12 that's how we can tell if duff's device will stay popular 15:18:18 as he doesn't, presumably it's falling out of fashion 15:18:27 I think it never got into fashion 15:18:33 well, exactly 15:18:56 GregorR: his favicon looks better http://www.tomduff.com/index.html 15:19:05 -!- Judofyr has joined. 15:19:17 "Sure. Here's a moderately recent picture of me sitting unshaven in my office scowling at my son, who was playing with the camera. At least I combed my hair. Do whatever you want with it. Tom Duff (talk) 05:53, 16 January 2008 (UTC) " 15:19:19 -talk:tom duff 15:21:22 -!- ais523 has quit (Read error: 104 (Connection reset by peer)). 15:21:32 -!- ais523 has joined. 15:21:44 wb me 15:21:54 Firefox 3 /added/ support for Gopher :P 15:21:57 That's weird :P 15:22:08 (Full support that is) 15:22:11 IT CANNOT COMPETE WITH VONKEROR 15:22:14 or sth 15:25:23 So, I've thought up some definitions for IO-complete. 15:26:02 I-complete: The program can, at its will, accept linear text input from the user and then use that text to modify its internal state with complete differentiation of all characters in the alphabet. 15:26:08 GregorR: does it do client-BF? 15:26:09 No? 15:26:15 then it doesn't have full support 15:26:26 O-complete: The program can, at its will, output linear text combined in any arbitrary way from its internal state. 15:26:28 Thoughts? 15:26:53 the usual definition is that it can produce any output that's a Turing-computable (or substitute other computational class here) function of its input 15:27:06 in other words, that its input -> output processing computational class is the same as the computational class of the lang as a whole 15:27:09 That doesn't handle interactive programs ala BF 15:27:24 does it have to? 15:27:26 I'm basically trying to define the set of languages that, to the user, are indistinguishable from BF. 15:27:29 ah, ok 15:27:41 which is basically the standard model with just stdin/stdout 15:27:45 We use "BF-complete" for that, I'd like to formalize the definitions 15:27:59 in that case, you need to change it to cumulative input -> cumulative output, and allow the program to produce output before all the input is read 15:28:11 Yes, but I've already said some definitions 15:28:18 I'm just wondering if they're any good 15:38:45 I wonder what lazy apl would be like 15:39:55 apart from awesome 15:49:09 Oh look, Eric Schmidt slams Twitter with no more than a vague idea what it is. 15:50:01 Hm, no. Just a bad headline. 15:51:47 -!- dbc has quit (Read error: 110 (Connection timed out)). 15:53:44 http://imgur.com/3US8K.png Uhhh... 15:57:44 -!- oerjan has joined. 16:03:33 hey ehird 16:03:38 hello. 16:04:28 hi 16:04:33 * ais523 is not ehird but says hi anyway 16:04:37 also, 'againt the wall' 16:04:42 was that intentional? :p 16:04:45 no idea 16:04:51 I'm not even sure if it was in the original proposal or not 16:04:54 yes. also, you want ##nomic or /msg 16:05:07 no, this is ##nomic 16:05:16 you're mistaken. 16:05:20 since ehird isn't in the other nomic channel 16:05:29 i'm sure everyone else will appreciate that. 16:05:31 -!- ehird has left (?). 16:05:47 hehehe 16:06:00 -!- ehird has joined. 16:07:31 ehird: but Wooble isn't an op here... 16:12:08 oh, is that the problem? 16:12:16 I thought e was just being a jerk 16:12:25 can we keep #esoteric to vaguely esoteric topics? 16:12:35 if you're trying to direct messages to me, IRC has a facility for that 16:12:57 -!- Hiato has joined. 16:12:57 at the moment, I'm trying to direct messges to ehird and ais523 16:13:04 as well as anyone else who is interested in nomic 16:13:09 IRC has a facility for that, too, but freenode blocks it 16:13:11 there's a channel for that 16:13:18 which one? 16:13:20 see, people join channels they want traffic to do with 16:13:23 and leave ones they don't 16:13:24 the syntax is /msg ehird,ais523 This is a message to send to two people 16:13:29 -!- Hiato1 has joined. 16:13:34 generally, disrespecting this choice leads to people ignoring you 16:13:34 [16:13] <-> ehird,comex> test 16:13:35 [16:13] [407] PRIVMSG Too many recipients. Only 1 processed 16:13:44 ehird: except you're ehird 16:13:52 so, if you want to continue to be able to direct messages at me, I'll take the same course of action 16:13:54 and generally overreact to things 16:13:57 if you keep doing this 16:14:10 comexk: you want to talk to me, you play by my rules. simple enough 16:14:10 ah well, i can just ignore you 16:14:34 that would solve both problems 16:14:34 ehird: why are you playing nomic if you don't want to talk about nomic? 16:14:48 who said I don't want to talk about nomic? I don't want to talk about nomic in irc in ##nomic. 16:14:57 Email me or something. Or use /msg. 16:15:08 -!- comexk has left (?). 16:15:20 How will I deal with this loss. 16:17:58 ais523, should I put up something following the same implementation in C but that is sane 16:18:14 i think that may be a violation of the spirit of Deadfish. Or not. 16:19:20 Agh, I ran into GreyKnight -again- 16:19:36 sure it's the same person? it's a fairly obvious nick... 16:20:04 relatively 16:20:13 well,. 16:20:14 not so much now. 16:20:21 oerjan: quite, though. 16:20:22 of course running into people on Agora, esolang and wikipedia isn't unheard of from before. 16:20:26 because it has information about his kilt. 16:20:37 I don't recall how I know he has a kilt from other sources 16:20:38 but I do 16:21:05 also, apparently he's a christian who has vowed, among other things, to "Refrain from cutting the hair on one's head". 16:21:07 go figure. 16:21:32 well, christians don't have do vow that AFAIK, but presumably there's nothing to stop them vowing that if they want to 16:21:36 huh 16:21:46 ais523: part of the nazirite vow, apparently 16:21:49 although that's a jewish thng 16:21:50 *thing 16:22:00 it is a good excuse to avoid cutting your head if you're a teen, I suppose 16:22:13 what a sikh thing to do 16:24:21 oerjan, hm ok 16:24:28 how does Deadfish behave on EOF? 16:24:47 i think there may be some bug there too... 16:29:30 and ais523, ihope (iirc), oerjan, everyone 16:29:45 the rumors of my adminhood are _still_ exaggerated 16:30:10 me and keymaker are the only Esolang admins who are active with admin work, IIRC 16:30:18 and we're only active with it when there's actual admin work to do 16:30:19 # (diff) (hist) . . Esolang:Community Portal‎; 19:18 . . (+9) . . Zzo38 (Talk | contribs) (tunes.org logs are now listed in descending order of date) 16:30:23 clever guy, my idea is indeed good. 16:30:23 which is nearly all cleaning up spam 16:30:32 even tho I stole it from #concatenative 16:30:32 and blocking the people responsible 16:30:50 or more likely the zombies responsible 16:30:59 Brains... 16:31:09 * oerjan is a responsible zombie. Oh wait. 16:31:16 ^bf ,[.,]!This may not be a good channel to take brains into 16:31:16 This may not be a good channel to take brains into 16:31:20 I had a sort-of-unique idea, based on INTERCAL and Forte. 16:31:24 ehird: yes? 16:31:36 Basically, it's all redefining language constructs. 16:31:47 clever 16:31:51 So, to terminate a loop, for instance, you change the loop end command into a nop. 16:31:53 Things like that. 16:31:57 And the whole language is based around that one operation. 16:32:21 that's how I normally terminate short loops in INTERCAL nowadays too, but your language would presumably go much further 16:32:35 yes 16:33:24 ais523: I'm trying to figure out how to have actual computation if all you can do is remap constructs... 16:33:49 -!- Hiato has quit (Connection timed out). 16:33:57 you may be able to use the constructs as a minsky machine 16:34:03 Don't do "jump to the next line." 16:34:09 Don't do "Don't do "jump to the next line."" 16:34:10 ais523: you need a nop then 16:34:17 Remove a copy of Don't do from the preceding line 16:34:27 10 goto 20 -> nop 20 ... 16:34:31 you need goto and nop there 16:34:36 that's two more non-swap primitives 16:34:42 yes 16:34:44 i want to bake the computation into the swapping, somehow 16:34:49 well, nop is easily represented by 0 commands 16:34:56 just replace a command with nothing 16:35:02 ah 16:35:02 yes 16:35:09 that might be a little hard to reverse, but I'm sure there's a way 16:35:23 as for goto, you need some way not to fall off the end of the program 16:35:24 then with one more operator: "current remapped value of" 16:35:26 we could do: 16:36:11 ^10;^20/.^20;stuff. 16:36:15 ^ is the current value of 16:36:19 on its own in a statement, does nothing 16:36:21 so we use it as line numbers 16:36:25 ehird: what about ///? 16:36:28 . is statement terminator, ; is subexpression terminator 16:36:29 your language is reminding me of that 16:36:35 problem is, it just cancels out the ^20 16:36:36 not the stuff 16:36:39 so: 16:36:52 ^10;[^20;?]/.^20;stuff. 16:36:59 erases the ^20 line 16:37:01 more spacious: 16:37:10 ^10; [^20; ?] / . 16:37:12 ^20; stuff. 16:37:28 pretty sure that's tc. 16:37:48 the RHS of / is evaluated ofc 16:38:41 ^10; [20;?] / ^[10;?]. 16:38:41 ^20. 16:38:44 I think that's an imnp 16:38:45 imp 16:38:46 not sure 16:38:48 hmm 16:38:50 no 16:38:53 you can't use ? in a [] ofc 16:41:13 He's not here, but I'm sure that message will find him eventually. 16:41:21 LIES 16:42:09 I forgot what I was doing. :( 16:42:19 Area-preserving affine transformations preserve both of these. 16:42:46 Hey! 16:42:50 what they do not preserve, however, are rectangles not aligned with the ellipse axes 16:43:08 What was I doing, ais523? 16:43:13 area-preserving affine transformations are rotations, reflections, translations, enlargements in one direction combined with an equal contraction in the other direction, shears... 16:43:19 and lots of others, I expect 16:43:26 ehird: inventing an INTERCAL/Forte hybrid 16:43:41 No, no, I lost interest in that about half way through and returned to my previous doings, which was X. 16:43:43 What is X? 16:44:00 you were discussing GreyKnight before that 16:44:23 oerjan: but those are trivial to enlarge. 16:44:35 So we can ignore those. 16:44:39 kerlo: they are? 16:44:53 Yes. Just rotate and enlarge them. 16:45:06 ais523: Yeah, well, I didn't actually tell this channel. 16:45:08 um no... 16:45:18 ehird: how am I meant to guess, then? 16:45:28 ais523: I find it likely that those are the only area-preserving affine transformations. 16:45:29 Telepathy. 16:45:39 sorry, I'm fresh out of floating eye corpses 16:46:00 kerlo: well, combinations of those are clearly also area-preserving affine transformations 16:46:02 you cannot rotate in an ellipse 16:46:39 you have to change into a circle first, which destroys rectangles 16:47:25 of course i find it unlikely that a largest rectangle would _not_ be aligned with the axes, but it needs proof 16:52:16 gcc -E $* 16:52:20 Pop quiz: Spot the fuck up. 16:53:26 something to do with quoting? 16:53:39 Nope, gcc will ignore non-.c files as "linker input" 16:53:55 KICK ASS OR WHAT?!?!? 16:54:24 that's fixable 16:54:24 -x c 16:54:33 I'm just doing /usr/bin/cpp -no-traditional-cpp $* 16:55:20 -x c is a nice trick to know anyway 16:55:38 * ais523 glares at paste.eso-std.org 16:55:50 wait, eso-std.org exists again? 16:56:25 WAIT WHAT THE FUCK, /usr/bin/cpp is a SHELL SCRIPT 16:56:28 that-is-not-right 16:56:32 # Transitional front end to CCCP to make it behave like (Reiser) CCP: 16:56:33 # specifies -traditional 16:56:34 # doesn't search gcc-include 16:56:36 # 16:56:38 # Copyright (c) 1990 The Regents of the University of California. 16:56:40 # All rights reserved. 16:56:43 hm apparently not 16:56:44 ha ha ha ha ha ha ha ha ha ha ha ha what the flying fck 16:56:45 *fuck 16:56:53 ais523: That's not right, is it. 16:57:32 *Something* has shat all over my /usr/bin/cpp, methinks. 16:57:57 ...nope, that's /Developer/usr/bin/cpp 16:58:11 ehird: they're trying to make it a killer app, i see 16:59:14 * oerjan is expecting bodily harm just about now 16:59:18 -!- ais523_ has joined. 16:59:27 oerjan: you can do whatever you want in an ellipse. 16:59:50 If you have a rectangle in an ellipse and their axes are aligned, that rectangle's corners do not all lie on the ellipse. 16:59:53 * oerjan swats kerlo -----### 16:59:58 #!/bin/sh 16:59:58 # apple's cpp is broken... 16:59:59 # Update 2009-03-04: FUCK YOU APPLE PIECES OF SHIT 17:00:02 The evolution of a file header. 17:00:18 It works now. How unexpected. 17:00:32 It's easy enough to rotate a rectangle such that its two corners remain on the ellipse; you just have to scale it at the same time. 17:00:40 kerlo: by aligned i mean simply in direction 17:01:11 -!- ais523 has quit (Nick collision from services.). 17:01:14 -!- ais523_ has changed nick to ais523. 17:02:03 Me too. 17:02:03 kerlo: while preserving area? 17:02:33 kerlo: oh wait you were missing a "not" 17:02:38 or so i think 17:02:59 Not while preserving area, no. 17:03:28 What I'm saying is that the biggest rectangle you can fit in an ellipse is aligne with the ellipse. 17:03:42 kerlo: needs proof 17:04:30 well clearly that's the beautiful answer you'd expect. 17:04:49 so why prove it and risk ruining it 17:04:53 Suppose you have a rectangle that is in an ellipse and not aligned with the ellipse. It is possible to rotate the rectangle so that it is aligned with the elipse; upon doing so, it will be possible to make the rectangle bigger while remaining in the ellipse. Contradiction. Q.E.D. 17:05:02 err 17:05:05 where's the proof :D 17:05:29 kerlo: it's the remaining in the ellipse part that needs some proof 17:06:06 You prove it, then. :-P 17:06:12 too lazy :D 17:06:20 oerjan: adding enough formality will prove anything. 17:06:34 kerlo: um, unwrap definitions and you'll probably have it directly 17:06:53 That's nice. 17:07:08 i am assuming it would require some length calculations or something 17:07:30 basically you calculate the expression of the rectangle's area and find the zero of the derivative, prolly. 17:08:00 and by that expression i mean f(x) : angle -> area 17:08:11 which may not be hard, but rather diminishes the elegance of transforming to a circle afterwards 17:08:31 well i have no idea about context, i just found kerlo's statement funny :P 17:08:37 and now i need to go do a shoppe! 17:09:02 oklopol: just don't get caught 17:09:58 onion rings! 17:10:01 !!! 17:10:02 -> 17:10:33 -!- ais523 has quit (Read error: 104 (Connection reset by peer)). 17:10:39 How do you trap overflow on x86? 17:10:47 when onion rings, don't answer 17:11:37 -!- ais523 has joined. 17:11:41 hi ais523 17:11:45 i don't suppose you would know: 17:11:46 How do you trap overflow on x86? 17:11:54 I don't know offhand 17:12:05 but based on my experiences of x86, I'd guess "with difficulty" 17:12:05 can you even do it? 17:19:26 I wonder how to allocate huge things (1gb) on the stack with alloca 17:19:38 probably you can't, is the stack that big? 17:20:03 i guess not. 17:20:24 wow, my malloc() returns surprisingly clean results. like 0x200000 17:21:42 ais523: is there any way to expand the stack? 17:21:47 depends on the OS 17:22:01 bsd 17:22:03 you need to map in more memory in the address space it expands into 17:22:13 and I don't know whether that's possible or not on BSD 17:22:15 nor how 17:22:23 hmm... are you working on that INTERCAL VM? 17:22:31 it sounds like it, based on what you're saying 17:22:31 not right now 17:24:04 Tom Duff. 17:24:19 he did quite a bit on the wiki on esolang history iirc 17:24:58 writing about pre-INTERCAL esolangs, IIRC 17:31:44 ais523: so, how do you do it in linux? 17:32:07 I don't know that either 17:32:11 :< 17:44:56 hm synchronicity 17:45:08 oerjan: itym coincidence 17:45:12 Grey Knight is on wp Did you Know 17:45:18 whatev 17:45:31 *knight 17:45:37 ha 17:46:08 -!- ais523 has quit (Read error: 60 (Operation timed out)). 17:48:07 oh and the third one is about broken femurs, which were _also_ mentioned in the channel logs today :D 17:48:39 -!- ais523 has joined. 17:49:04 "The first time I saw a program written in Forth, I thought the developer was just making up the language as he went along. Then I discovered that he was." 17:49:09 — reddit 17:49:15 haha 17:50:02 that would apply to any language suitable for DSELs... 17:50:03 ( http://www.reddit.com/r/programming/comments/8210z/forth_is_a_program_that_interfaces_keyboards_with/ ) 17:50:14 er, EDSL? 17:50:21 ESDLs 17:50:22 but no 17:50:23 forth is more fluid 17:50:24 same difference 17:50:32 you can't get rid of lisp's parentheses, but you can turn forth into anything 17:50:51 sure you can get rid of lisp's parentheses 17:50:58 not in r5rs. 17:50:59 (interpret-my-language "................................................") 17:51:05 that is not extending the language. 17:51:07 that's not embedded. 17:51:53 it's embedded in a sense, you could call stuff from the outer scope from in there 17:52:01 no, it's really not. 17:52:06 hm the french term would have LSD in it, i'm sure 17:53:25 Is there a sensible and generally accepted definition for what exactly a DSEL is anyway 17:53:49 your put lol 17:54:31 ehird: er? 17:54:43 I meant to say your butt lol. 17:54:46 -!- ais523 has quit (Read error: 60 (Operation timed out)). 17:55:09 -!- ais523 has joined. 17:56:04 ehird: ESDL gives all sorts of other meanings 17:56:17 i meant EDSL 17:56:44 oh that actually gives a hit 17:56:46 DSEL is a buzzword 17:57:04 although there are still other meanings 17:57:10 it means, "I'm too cool for things like OOP but I still want my own acronyms" 17:57:58 oh DSEL is also defined 17:58:28 ITCFTLOBISWMOA? 17:58:33 it's short for "acronym we cannot decide on the ordering of" 17:58:47 AWCDOTOO sounds interesting, actually 17:59:11 * ais523 wonders what language-specific embedded domains are 18:00:14 bah the french term for domain specific language is "Langage dédié" 18:00:46 clearly someone censored the s part 18:08:35 interesting 18:09:56 -!- jix_ has joined. 18:13:05 -!- M0ny has quit ("Quit"). 18:15:19 -!- ais523 has quit (Read error: 104 (Connection reset by peer)). 18:23:12 -!- jix has quit (Read error: 110 (Connection timed out)). 18:38:53 -!- jix_ has quit (Read error: 60 (Operation timed out)). 18:42:55 -!- jix has joined. 19:05:21 hi Deewiant 19:05:47 yello 19:05:52 hah 19:06:18 Deewiant, see the comments I made directed at you during the past few weeks but that you never responded to 19:06:38 there was nothing worth responding to :-P 19:06:46 yay, cfunge almost runs on BSD, or something 19:06:48 what should I say to that 19:10:20 -!- ais523 has joined. 19:11:46 FILE lacks a way to truncate files: yes, it does, complain to mike if you feel something should be done 19:11:57 nothing else, I guess 19:18:50 http://drplokta.livejournal.com/109267.html 19:18:52 -!- jix_ has joined. 19:33:10 -!- jix has quit (Read error: 113 (No route to host)). 19:42:36 -!- olsner has joined. 19:50:38 so! 19:50:41 I'm writing a Forth in JS. 19:50:48 Badly suited, you say? Quite so my good chap! 19:51:40 badly suited for forth, forsooth 19:52:36 ais523 did a lot of interpreters in JS, I imagine he'd like it 19:53:06 that's because JS is a good lang for quick throwaway programs that you can easily show to other people 19:53:11 most people have a JS interp on them 19:53:21 also, it's by far my favourite lang for programming in on public terminals 19:53:30 * oerjan picks his nose and pulls out a JS interp 19:54:07 'snot what you think, honestly 19:54:48 >_< 19:55:06 i blame picasso 19:59:31 * FireFly likes JS 19:59:58 -!- jix has joined. 20:01:30 hmm 20:01:50 * oerjan likes swatting FireFly -----### 20:01:58 * FireFly dislikes swatters 20:02:18 Is that a swat I see, or what? 20:02:26 * oerjan confuses FireFly by making a JS swatter 20:02:32 :| 20:02:51 -!- jix_ has quit (Read error: 145 (Connection timed out)). 20:06:38 -!- jix has quit (Read error: 60 (Operation timed out)). 20:07:29 hmm 20:07:37 how big should my stack/heap/dictionary be, I wonder. 20:07:46 well, return stack can be smaller than data stack 20:07:52 i onl yhave 64mb to work with here 20:08:04 dictionary will probably be tiny, let's say 5MB 20:08:05 why not more 20:08:14 Deewiant: you can't allocate too much with JS 20:08:16 it just fails silently 20:08:29 Surely that depends on your interpreter 20:08:33 well, duh 20:08:36 I'm running it in a browser 20:08:50 Ah, that'd explain it now wouldn't it :-P 20:08:57 Consider not doing so 20:09:12 no, that's the whole point 20:09:22 Okay, fine then 20:11:56 dictionary 8MB 20:11:57 return stack 8MB 20:11:58 data stack 16MB 20:12:00 heap 32MB 20:12:02 seems reasonable to me 20:15:03 -!- clog has quit (^C). 20:15:03 -!- clog has quit (ended). 20:15:14 -!- clog has joined. 20:15:14 -!- clog has joined. 20:15:21 ... clog just got ^C'd? 20:15:23 wtf bbq 20:15:29 nef is ALIVE?! 20:15:47 Should he be dead? 20:16:04 I haven't heard anything about him later than 2004 20:16:57 20:16 ehird: I was starting to think clog was running totally autonomously there for a few years ... 20:16:57 20:16 nef: it was 20:20:42 and he's offline again 20:20:45 *poof* 20:26:28 which channel was that 20:41:11 -!- Hiato1 has quit (Connection timed out). 20:57:23 lament: /mag 20:57:26 /msg 21:06:27 Grah, nul-terminated strings are so stupid. 21:08:14 a bit too granular 21:11:06 was that a pun 21:11:21 well, do you think it was groanular? 21:12:23 'Nantero built a functioning carbon nanotube memory prototype 10 GB (10 × 230 bytes) array in 2004." 21:12:26 why did nobody tell me about this 21:12:31 i want one, now 21:15:54 hmm 21:16:03 why is memory measured in bytes if you address words with it 21:16:05 that's just ridiculous. 21:17:50 -!- oerjan has quit ("The time travelers said we should try to delay ehird finding it out as long as possible"). 21:18:06 no seriously, maybe ais523 knows. 21:18:36 it's for advertising / comparison purpose 21:18:46 people doing that sort of thing use inappropriate units just because of inertia 21:18:52 if everyone's using units, so do you 21:18:55 mm 21:19:02 i just, stupidly, did this: 21:19:04 var mm = new Array(8388608); // 8MB 21:19:07 spot the bug 21:19:34 hmm... did you get the number wrong? 21:19:42 or are arrays not declared like that 21:19:46 wow, my javascript's got rusty 21:19:55 ais523: memory is an array of words 21:20:01 8388608 is 8MB measured in _bytes_ 21:20:05 aha 21:20:14 well, javascript arrays auto-extend anyway 21:20:23 yes, but in this case I'm trying to pre-allocate the whole heap 21:20:24 so the bug won't be noticeable except in making things slightly less efficient 21:20:26 ais523: and that -over- allocates 21:20:39 new Array(4194304) // this is correct 21:21:17 err, no 21:21:22 2097152 21:21:23 ofc 21:25:33 Well, it's not like we can know your word size here. 21:25:42 it's a VM 21:25:46 so 32-bit, so 4 bytes 21:26:34 I don't think "VM" implies "32-bit". 21:27:01 I know it doesn't! 21:27:08 * kerlo writes a 31-bit Subleq interpreter 21:28:06 fizzie: I mean 21:28:09 "your word size" 21:28:11 I control the word size 21:28:24 Yes, and we can't know what you control it to. 21:28:26 The "so" in 32-bit is still misplaced 21:28:57 -!- tombom has quit (Client Quit). 21:30:18 I think C would be a very appropriate language for a Subleq interpreter. 21:30:39 No, Forth. 21:30:57 All you do is allocate a chunk of memory and then use pointers. 21:31:04 -!- jix has joined. 21:31:07 Forth cuts out the allocation step. 21:32:36 Bonus: Let the Subleq programs refer to the locations of C functions, the stack, and so on. 21:32:55 Forth gives you that for free. 21:33:22 Is there anything Forth can't do? 21:35:16 kerlo: Make you toast. 21:35:32 But, yeah, if you just use @ and ! you get the native machine/Forth memory. 21:44:31 -!- atrapado has joined. 21:45:37 ' 21:48:57 heh, turns out that incredibly terrible fail of mine was 87.5 percent :P 21:49:20 oklopol: lol 21:49:30 oklopol: still angry about it? :P 21:50:52 how could i not be angry about having 3 out of 41 ppl get a better score than me! 21:51:14 87% would still count as 5/5 though right 21:51:54 i think so. 21:55:17 -!- jix has quit ("..."). 22:27:17 -!- comexk has joined. 22:27:46 So, anyone know how I can find out the CPU cache size and whether all my code will fit into it? 22:28:45 it'll be on the datasheet for processors, which you should be able to get from the manufacturer, most give them away free 22:28:56 comexk: are you optimizing Bayes? 22:28:58 I'm not sure if there's a way to work it out from the OS itself 22:29:31 not some embedded system, a nice big core 2 :p 22:29:41 what are you trying to do 22:29:56 you see, I got an assignment in java class to make a Morse Code translator as efficient as possible 22:30:09 erm, the whole JVM would have to fit into the cache, then 22:30:14 after I decided I couldn't make it fast enough in java, I used JNI to implement it in C 22:30:27 I suspect you'll get deducted marks for that... 22:30:32 hey, it's java 22:30:32 anyway 22:30:35 "as efficient as possible" is something you shouldn't say within range of an esoprogrammer 22:30:41 ais523: except that's what I mean 22:30:52 though I don't want to write it in assembly (and I doubt I would gain much from that) 22:30:54 comexk: is there any way to do Java with inline asm? 22:30:59 there's definitely no standard or sane way 22:31:03 but surely there must be some way 22:31:03 ais523: he's using JNI 22:31:05 actually, there is a standard and a sane way 22:31:08 that's just C<->Java interface 22:31:11 he's writing it in C 22:31:12 ah 22:31:13 then binding it to java 22:31:16 and claiming it's java 22:31:25 I thought he was writing in java and compiling to C, and claiming it was java 22:31:27 thus getting his answer marked as wrong... 22:32:05 naah 22:32:13 any sane grader will mark it correct 22:32:14 's what I would do 22:32:27 it can be called from a java class just like any java code 22:32:28 ANYWAY 22:32:29 don't care 22:32:31 did they state which java implementation had to be used? 22:32:32 I want to optimize the c 22:32:45 using gcj rather than the jvm should save you a lot of time if you write the code to be properly optimisable 22:32:48 "How can you optimize this Python application?" "I rewrote it all in C then bound the main to python, so now it looks like this: app.main()" 22:32:51 "Uh, no." 22:32:52 and only do things that translate easily into C 22:32:59 ehird: ever heard of cython? 22:33:12 comexk: considering I told you about cython... 22:33:15 plus, cython isn't python 22:33:16 ais523: really, it compiles to native code? 22:33:20 its an extension of python 22:33:22 ehird: point 22:33:26 I used it recently 22:33:29 comexk: yep 22:33:32 the native python MutableString implementation is hellslow 22:33:45 ais523: I'm using JNI because I want efficiency. That's that. 22:33:45 -!- oklopol has quit (Read error: 104 (Connection reset by peer)). 22:34:00 -!- oklopol has joined. 22:34:03 ...because it allocates a new string every time your string is modified 22:34:45 comexk: so use a list 22:34:59 ehird: and have a PyObject for every character in the string!? 22:35:08 why are you using python 22:35:10 naah, that was a perfect use case for Cython, which worked pretty well 22:35:10 just code it all in C 22:35:16 massive speed increase 22:35:23 as in, 20 minutes --> 20 seconds 22:35:30 (it used mutalestrings a lot) 22:35:34 if you're writing in python and want a speed increase, start by rewriting the python interpreter because it's a shit naive bytecode interpreter 22:35:47 ehird: good point, people do that, too bad nob ody's actually made a good python interpreter 22:35:58 although 20 seconds is with psyco.full() 22:36:05 but the code isn't optimized for speed 22:36:09 the python is fairly naive 22:36:17 python itself does not lend itself to efficiency 22:36:33 yeah, but you can, e.g., not create massive amounts of objects 22:36:57 if you want to write in a HLL and get blazing efficiency, i'd use Scheme + Stalin 22:37:19 In a number of tests it has outperformed hand-written C, sometimes by a considerable margin. 22:37:22 hmm 22:37:32 well 22:37:32 http://pastie.org/407681 22:37:33 or rather Ponzi, which would be like stalin without the huge limitations but I haven't written it yet. 22:37:44 tell me how that can be improved 22:37:46 comexk: that's not optimized! 22:37:48 use a lookup table 22:38:12 ehird: what would that do 22:38:18 be fast. 22:38:23 lookup table of what? 22:38:24 hashes? 22:38:29 that would be slower 22:38:33 no 22:38:33 listen 22:38:41 * comexk listens 22:38:42 comexk: key them by integers: a machine word can store 4 characters on a 32 bit machine 22:38:44 presumably because the Scheme programs are written better than the C-by-hand would be 22:38:51 you can actually do that 22:38:56 and compare them natively 22:39:01 with no overhead 22:39:07 hey, that's a good idea 22:39:09 lemme find the article showing how 22:39:24 forgot about that -_- 22:39:40 comexk: the binary if/else if thing is slow in practice because modern processors are really quite bad at jumps compared to everything else 22:39:50 comexk: http://www.stdlib.net/~colmmacc/2009/03/01/optimising-strlen/ 22:39:54 see "Method 4: word-wise checks" 22:39:57 and the glibc code it links to 22:40:08 from that, you should be able to make an insanely fast lookup table version 22:40:10 I've sen hellishly complex implementations of, say, memcpy 22:40:42 well, on some processors, the best known memcpy implementation in asm is duff's device and copying 4 or 8 bytes at a time 22:40:44 which is pretty complex 22:40:56 ais523: on ARM I've seen 22:41:02 first, try to use load multiple instructions to copy like 8 bytes at a time 22:41:05 then copy words 22:41:06 then copy bytes 22:41:09 haha 22:41:15 and I had to disassemb le the function and see what it did 22:41:17 :p 22:41:51 but yah, lookup table (nest them if you have keys longer than 4 bytes on 32-bit or 8 on 64-bit, ofc) of word-sized chunks of the string 22:41:53 == insanely fast 22:42:01 I don't know, are you sure that's faster? you'd have to check every combination linearly 22:42:06 err, no 22:42:08 what do you mean lookup table 22:42:09 lookup table 22:42:24 luckily, all morse code characters fit in 32 bits 22:42:24 but 22:42:32 comexk: a hash table, but indexed with machine words 22:42:34 not hashes 22:42:37 though that runs into endian issues 22:42:37 comexk: also, mayhaps operate on java Strings, not char* 22:42:45 to avoid the conversion overhead 22:43:32 ehird: are you sure a hash table with only 26 entries would be faster than branching? 22:43:47 not hash table 22:43:51 you're not running any hash functions 22:43:52 not hash table 22:43:54 I know 22:43:59 you're indexing on *((int *)str) 22:44:04 but that requires memory loads 22:44:10 doing it directly as in the pastie doesn't 22:44:15 comexk: processors are terrible at branching. 22:44:20 also, yours accesses memory 22:44:23 s[0], s[1], s[2], ... 22:44:28 at least this does one access 22:44:30 yours does tons 22:45:12 ehird: only as many as necessary, but I meant you would have to access the table from memory 22:45:23 store it as a constant, static array 22:45:27 then it'll go into the object file 22:45:31 that doesn't make it not memory... 22:45:52 comexk: a memory load on a bit of memory that was in cache anyway is really quite fast 22:46:11 so the well-known trick is to store your lookup table in the same bit of memory in the program that's running 22:46:25 you can do that by using inline asm for dat commands 22:46:49 ehird: what I'm suggesting is your method but slightly more insane, it's a special case of your method 22:46:54 that and casting bytes to ints limit me to i386 but that's okay I guess 22:47:04 ais523: yes, but I'd try mine first 22:47:05 then go to asm 22:47:06 it makes me nervous, since this is supposed to be portable java 22:47:15 comexk: you failed by doing it in C anyway 22:47:18 but I guess there could be a pure c fallback 22:47:18 also, you can be portable. 22:47:21 ehird: c is portable 22:47:23 ehird: endian 22:47:24 what's not portable about *((int*)s) 22:47:24 well, dat commands are relatively portable between architectures 22:47:30 ehird: endian 22:47:36 comexk: so, in you lookup table do 22:47:44 *((int*)".-.-") 22:47:47 instead of 3485783457345 22:47:52 (in the literal) 22:47:52 -!- atrapado has quit ("Abandonando"). 22:47:57 does that actually work? 22:48:02 why not 22:48:21 comexk: you'll probably have to nest the tables 22:48:27 since there are morse code patterns longer than 4 bytes, right? 22:48:42 no 22:48:46 oh 22:48:50 then that'll work fine 22:48:52 as I said, it's well suited for that 22:48:55 although 64-bit processors 22:49:04 only problem is that 22:49:07 what if you have 22:49:09 the longest morse code pattern is 5 dots+dashes 22:49:14 ais523: agh 22:49:16 ais523: really? which one 22:49:16 one off 22:49:20 comexk: 5 22:49:28 letters only. 22:49:34 but notice that a dot/dash needn't store an entire byte 22:49:53 but there is a problem with a lookup table 22:50:01 if your letter is E 22:50:03 you might have 22:50:05 ". --" 22:50:07 ". . " 22:50:09 ". .." 22:50:10 etc 22:50:21 comexk: well, you know the string length ,right? 22:50:24 it's a java String 22:50:28 so getting the length is O(1) 22:50:35 yes, but there are multiple letters 22:50:35 then, just do 22:50:37 separated by spaces 22:50:38 (>>4)<<4 22:50:43 or w/e 22:50:47 so you get 0s instead of the rest 22:50:48 before lookup 22:50:52 ehird: but some patterns are 4 characters 22:50:57 comexk: and? 22:51:09 so length has nothing to do with it 22:51:11 I have to find the space 22:51:21 but I'm doing that anyway 22:51:22 so fine 22:51:23 I'll do that 22:51:40 err 22:51:41 other thing is 22:51:46 if you find the space then there's no reason to do this 22:51:46 I'm doing a binary search, aren't I? 22:51:52 because that's inefficient 22:51:57 *((char *) is portable but they wouldn't be in order in a different endian 22:52:04 s/char/int/ 22:52:07 ehird:? 22:52:10 yeah 22:52:14 and that's why you don't put any endian-specific constants in 22:52:18 i don't think you "get" this 22:52:26 ehird: the idea would be to have it pre-sorted 22:52:35 so I don't have to go through the table linearly 22:52:48 I've written efficient morse decoders before 22:52:51 well, let's try it 22:53:04 the trick is to start with 1, and double every character you encounter, adding one if it's a dash not a dot 22:53:04 comexk: ... 22:53:07 there is no table 22:53:09 just an array 22:53:15 and use the total as an index into an array that retrieves your character 22:53:21 you calculate all the values in words for the dotdashes 22:53:26 then modulo them all 26 22:53:30 and store them in an array, without the key 22:53:34 just the value 22:53:43 ehird: what do you mean by "value" here? 22:53:54 the resulting letter 22:54:07 ehird: hmm? 22:54:12 like, static const char foo[] = "ZCBAFU..."; 22:54:17 my value might be very big, I can't have the _word_ as an index 22:54:30 yeah, and then I have another array of the words 22:54:42 ais523's suggestion might be faster 22:54:44 do you know what a word is 22:54:44 x_x 22:54:57 ehird: four bytes, or two bytes sometimes 22:55:03 or eight sometimes :p 22:55:10 i'm really starting to doubt you actually understand the algorithm I'm trying to explain 22:55:15 ehird: 22:55:22 comexk: 22:55:28 u32[] keys 22:55:30 char[] values 22:55:34 look up in keys, use the index into values 22:55:40 if that's not it, you're not explaining clearly enough 22:55:41 ... 22:55:43 fuck no. 22:55:54 then be clearer 22:55:57 damn, I just wasted like 15 minutes attempting to explain that. have fun 22:56:24 I don't think you know what you're talking about 22:56:41 remind me not to try and help you again 22:57:25 *sigh* 22:57:46 so hey, anyone want help that can understand english & technical terms and doesn't tell me I don't know what i'm talking about when they don't understand? 22:57:57 ehird: sure 22:58:05 excellent. how can I help you today. 22:58:50 ehird: Я буду играть на прослушивании в следующий вторник, как мне лучше подготовится? 22:58:55 yes. 22:59:12 if the question was, "are you fat?", no. 22:59:28 ah, nice 23:00:41 -!- Slereah_ has quit (Read error: 60 (Operation timed out)). 23:01:30 Hm 23:03:28 -!- Slereah has joined. 23:06:39 so ais523, what were you saying about inline data? 23:06:51 it depended on my idea. 23:06:54 which you've rejected 23:07:00 if so, I support your idea 23:07:09 I merely think you failed to explain it clearly 23:07:12 well, the idea's you have an array with the possible translations 23:07:20 a char array, probably 23:07:22 comexk: you know how a hash table works? 23:07:29 you work out a mathematical value from each dot-dash string 23:07:32 it's an array, where [hash%size] 23:07:34 is the value 23:07:36 now, do the same 23:07:39 but with 23:07:40 ehird: this is not exactly a hash table 23:07:44 ais523: i know 23:07:46 definitely you don't want %26 23:07:48 i'm explaining it to him 23:07:51 also, yes you do... 23:07:54 you don't want %anything, in fact, you want a perfect hash 23:07:54 otherwise your array is huge 23:07:57 no you don't, because you will have duplicates 23:07:59 ehird: 64 bytes? 23:07:59 it is perfect 23:08:01 however, I tested and %59 works 23:08:02 I wouldn't call that huge 23:08:06 well, fine 23:08:08 that isn't what i meant 23:08:20 comexk: dividing by 59 is rather slow on a modern computer compared to other operations, apart from jumps 23:08:35 ais523: really? so I would be better off with an evener number? 23:08:36 use >> 23:08:40 power of 2 23:08:53 the thing is 23:08:55 it's not a perfect hash 23:08:56 it's not a hash 23:09:02 it's the literal char data interpreted as a word 23:09:24 it is a hash, per the definition of hash, it's just that it's a hash that doesn't contain a modulo interpretation whereas most do 23:09:28 ehird: oh, I wasn't doing it like that 23:09:34 ais523: that's the whole idea 23:09:37 you skip the hashing step 23:09:40 and just do *((int*)s) 23:09:45 that's the whole key to why it's so fast 23:09:48 I was unrolled-looping over each character in the input 23:09:57 oh god unrolled 23:09:58 yeah, that's entirely missing the point 23:09:59 add, shift, add, shift, etc 23:10:04 that is different from your method 23:10:06 yeah, that's not what I'm doing 23:10:07 but it may be faster 23:10:07 *((int*)s) reduces it to one memory read 23:10:20 5 adds and 4 shifts is 9 memory reads not 1, I agree 23:10:28 on the other hand, I think 9 reads are faster than 1 integer divid 23:10:29 ehird: yeah, so I have an int corresponding to four bytes, and unique codes correspond to unique values 23:10:30 *divide 23:10:33 ehird: now what 23:10:35 ais523: yes, but not >> 23:10:43 heh, that's the trick 23:10:47 you don't do a <<= 1; 23:10:48 so (*((int*)s))>>foo 23:10:49 you do a += a; 23:10:52 and a will be in a register 23:10:56 that's a one-cycle instruction 23:11:05 how does that help moduloing it 23:11:13 we're trying to fit it into a non-huge table 23:11:14 you don't modulo, the numbers this way never end up more than 64 23:11:16 problem is, I can't modulo by a power of two because then it'll just depend on the first bytesish 23:11:19 so you just have a 64-element table 23:11:26 ais523: is that really faster than one modulo? 23:11:32 ais523: well, does it use the (int*)s trick? 23:11:36 ehird: no 23:11:38 -!- Judofyr has quit (Remote closed the connection). 23:11:39 it should 23:11:46 why? that would make the numbers much too large 23:11:51 i'm relatively certain (75%) it'd be faster 23:11:56 ais523: so reduce them 23:11:59 ais523: 23:12:02 if you preferred, you could use the int* trick then /multiply/ by a large number 23:12:03 is that faster than a single modulo? 23:12:07 maybe I can use a multiplication trick 23:12:10 ais523: ah, that'd be best 23:12:10 that shifted all the bits to the bottom end of the number 23:12:18 I think repeated addition on bits may still be faster 23:12:18 (*(int*)s)< I think some compilers will do that automatically 23:12:35 ehird: what will that achieve, you just get one of the bytes 23:12:37 gcc will if you happen to divide by a constant that can be converted by that 23:12:52 so I'll do a - a/b instead of a%b 23:13:01 but how do I get a constant I know can be converted by that, 23:13:09 (*(int*)s) 23:13:15 ehird: only if I have 4gb of memory 23:13:24 maybe what I'm saying would make more sense if you actually listened. 23:13:27 k 23:14:18 ehird: I just looked it up, on a pentium 3 a single 32-bit divide is 39 cycles, although you can run other commands in parallel with it; an addition is 1 but ties up all 4 ports, so you can't run things in parallel with it 23:14:22 let me try to find multiply 23:14:29 4 cycles 23:14:31 i said bitshift 23:14:32 not divide 23:14:32 ewwww, 39 cycles 23:14:37 well, multiplication beats division hollow, that's for one 23:14:39 because they're the sam damn thing on powers of 2 23:14:46 and I can tell you like hell it won't take 39 cycles 23:15:35 well, how does your bitshift work 23:15:41 to get things into the hash table order? 23:15:47 can you do that in a single bitshift? 23:16:02 also, a complication for both methods: - is different from -. is different from -- 23:16:06 so you need to handle EOF, somehow 23:16:10 ... 23:16:11 dude. 23:16:14 I covered that _an hour ago_ 23:16:15 ais523: so how do I manually find a constant to multiply by 23:16:22 am I fucking speaking in spanish or something?? 23:16:23 ehird: well, I didn't understand either 23:16:36 comexk: modular division 23:17:53 ais523: ? 23:18:18 comexk: basically, you know how if a * b = c, then c / b = a? 23:18:26 modular division is defined the same way, but with modulos involved 23:18:53 so modulo 11, for instance, 8 times 9 is 72 which is 6, so 6 divided by 9 is 8 23:19:07 it always works with prime modulos, but in this case the modulo is a power of 2 and so not prime 23:19:12 and the result is it /sometimes/ works, but not always 23:19:24 ais523: how do I calculate that other than brute force? :p 23:19:27 however, because we can mask away high bits, it's probably possible to find a situation that works 23:19:33 In what language? 23:19:46 FireFly: "Java" which is a thin wrapper around C 23:19:55 no, precomputed pls 23:20:14 comexk: I'm pretty sure there's a non-brute-force way to do it, I just can't remember what it is offhand 23:20:51 nearly all the modular divisions I've come across were simple enough to spot via pencil and paper 23:21:03 the only modular division I've come across is AAA :p 23:22:17 comexk: yep 23:22:22 and it's pretty confusing there 23:22:36 anyway, gcc can often optimise a division into a multiplication, so presumably it knows the algorithms for calculating these things 23:23:15 yeah but I can change my divisor depending on what's convenient 23:23:17 gcc odesn't know that 23:25:14 the trick I think is to write the code you mean, then keep tweaking it until gcc optimises it into something efficient 23:25:46 sounds boring 23:25:47 :p 23:25:58 well, I've done it before on a serious project 23:26:11 that was insanely time-critical, there were parts of it I was trying to get down to under 10 cycles 23:26:28 wait, so what am I trying to do 23:26:36 find the inverse of whatever i'm dividing by? 23:26:53 it's do to with wraparound 23:27:01 what form's the input in, anyway? 23:27:04 dots and dashes 23:27:36 yeah 23:27:37 you want some factor you can multiply by so that the bottom 4 bits of the resulting number depend on whether there were dots or dashes in the corresponding bytes 23:27:59 actually, because you have bytes not bits as input, it's more complicated than just a division 23:28:11 masking first would make things simpler, but waste a cycle 23:29:39 what's the ascii code for dot and for dash, anyway? 23:29:49 45, 46 23:29:53 dash = 45 23:29:55 and what's the input if you have a morse code less than 4 bytes long? That's the really tricky bit 23:29:55 dot = 46 23:30:01 ... 23:30:14 ais523: I explained all this before... 23:30:21 how does that work, anyway 23:30:25 oops, missende 23:30:26 g=ig wekk 23:30:27 *oh well 23:30:31 fine, I'll get gcc to do it -_- 23:30:37 -!- olsner has quit ("Leaving"). 23:31:06 ah, just checked scrollback 23:31:19 your plan seems to be to bitshift away the extra characters using your known string length 23:31:51 well, that's the -essence- of it... 23:33:29 hmm... what's the x86 bitshift operator called, I don't think I ever used it 23:33:45 note that bitshifting by a value that isn't constant is inefficient on many microprocessors, but I can't remember offhand if x86 is one of them 23:34:00 also, you can save yourself one shift by not shifting back and just using the data at the new position 23:34:29 isn't it "bsl" 23:34:43 well that's just too logical 23:35:08 no, it isn't 23:35:16 why isn't this working -_- 23:35:21 at least, that's not in this list of opcode timings 23:35:26 ais523: i meant, that would be too logical 23:35:37 for x86? I see what you mean 23:36:40 http://upload.wikimedia.org/wikipedia/commons/8/87/Prokudin-Gorskii-12.jpg that's some remarkable uality for 1915 23:36:52 ok, it seems it's a weird x86ism 23:36:55 the command's shl 23:36:56 by which I mean, holy shit that's amazing 23:37:02 ais523: SHift Left 23:37:05 and it takes 2 cycles even for a variable shift, but only if the shift amount is in register cl 23:37:16 the register cl thing is the x86ism I was talking about 23:38:09 y'know, the prof isn't even gonna test this code 23:38:15 I can almost guarantee it... 23:38:25 I care this much: 23:38:32 or he'll probably try and run it thru java... 23:38:33 :p 23:38:56 I like solving puzzles even useless ones 23:38:59 that's the point of the channel isn't it :p 23:39:04 yes P 23:39:05 :P 23:39:22 definitely 23:39:49 does anyone know how to tell if a particular floor tile has a particular type of item on it in Enigma scripting, by the way? 23:39:53 I decided to make an Enigma level 23:39:55 -!- FireFly has quit ("Later"). 23:40:00 doesn't it have docs? :P 23:40:04 yes 23:40:07 -!- BeholdMyGlory has quit (Remote closed the connection). 23:40:13 but I can't find a function that does that in the docs 23:40:21 nor any obvious way to simulate it with what's there 23:40:26 so it's a programming problem of its own 23:40:36 given a language which appears to be missing a feature, figure out how to simulate that feature 23:40:41 esolangers do that all the time... 23:48:32 * comexk looks at assembly 23:48:35 what the fuck is a calll doing in here 23:48:47 I guess it's used for speed somehow 23:49:24 well, there are no divide instructions 23:49:35 and a magic constant 23:49:43 so, although I don't really understand x86 I'm assuming it's using multiply magic 23:49:57 yet it's still not fast enough 23:50:10 a large magic constant for no apparent reason is nearly always gcc optimising a divide 23:50:25 here's my code: 23:50:26 http://pastie.org/407770 23:50:39 note the mask part, that looks slow but I don't know how to make it better 23:50:51 s2 = strchr(s2, ' '); 23:50:55 you're iterating through the string anyway 23:50:59 so all that magic is buying you approx. nil 23:51:13 ehird's idea was you could read the string length from java's internals 23:51:27 you can 23:51:29 it's not internals 23:51:31 it's just .length 23:51:33 trivial 23:51:38 pass it to your c function from the java side 23:51:46 yeah, i'll do that 23:51:57 ehird: what 23:51:59 it's not .length 23:52:04 spaces may be found anywhere in the string 23:52:13 ais523: ehird's idea was you could read the string length from java's internals 23:52:15 i was responding to that. 23:52:15 comexk: check to see what 1 << 32 is in gcc 23:52:24 ais523: ? 23:52:24 it's undefined behaviour in C itself 23:52:28 but I bet gcc defines it to something 23:52:31 how does that help? 23:52:32 you may be able to avoid the if that way 23:52:43 the mask would just be (1 << 32) - 1 23:52:48 which is 0xffffffff 23:52:51 if 1 << 32 is 0 23:53:02 so the if would become redundan 23:53:04 *redundan 23:53:07 *redundant 23:53:17 i.e. instead of the inside of the if not running, it runs and does nothing 23:53:20 no, it was screwing up without the if 23:53:26 ah, pity 23:53:36 probably bitshifting by 32 is undefined on x86 too... 23:54:03 actually 23:54:16 anyway, wouldn't that masking scheme confuse ..-. with .-.? 23:54:30 yeah 23:54:39 ais523: but the strchr is slow anyway... 23:54:41 ais523: hmm? 23:54:41 this is pointless 23:54:47 all it does is mask out any characters after the space 23:54:47 ehird 23:54:50 I HAVE to strchr 23:54:51 it defeats the point of the (int*) trick 23:54:55 I don't know where spaces are in the string beforehand 23:55:00 comexk: write your own strchr 23:55:03 that saves the int* as it goes along 23:55:16 uhh what would that get me? 23:55:19 other than a less optimized strchr 23:55:26 not duplicated work 23:55:30 well I'll use memchr to avoid the compare to zero 23:55:35 ehird: casting a pointer is not work 23:55:43 you don't understand. 23:56:17 actually, strchr is FASTER than memchr 23:56:31 ehird: it goes around and compares to a space, how do you intend I replicate that 23:56:49 make it operate on 4-byte chunks 23:56:51 using the int* trick 23:57:03 http://www.stdlib.net/~colmmacc/2009/03/01/optimising-strlen/ has a link to glibc's strlen which uses that trick 23:57:09 you can replicate it yourself 23:57:12 why? 23:57:14 not just use glibc's strchr 23:57:24 really I want a version that doesn't bother comparing to zero 2009-03-05: 00:01:20 ugh 00:01:31 copy + pasting glibc's strchr and remnoving checks leads to lower performance 00:01:55 comexk: add more compiler switches 00:02:07 -O3 -fomit-crucial-operations -fnuclear-weapons-on-invalid-memory-access 00:02:18 -funsafe-addition 00:02:22 I was about to copy that then I read the rest 00:02:32 ? 00:02:35 oh 00:02:36 lol 00:03:46 inlining significantly reduces time 00:03:49 that's nice 00:04:08 comexk: how fast is it? 00:04:46 funroll-loops may save you time on that sort of code, you could profile to find out 00:06:58 comexk: show us the generated asm 00:06:59 (-S) 00:07:28 also 00:07:31 comexk: % 59 00:07:33 slooow 00:07:39 ehird: it's multiplicified 00:07:43 ah 00:07:51 anyway, generated asmmy! 00:07:55 funroll helps, ftracer doesn't 00:08:05 208ms including java overhead and copy time for a 6mb string 00:08:08 comexk: you are using -O3 right 00:08:15 also, that's insanely fast 00:08:27 asm asm asm :P 00:09:11 also won't that crash on invalid inputs 00:09:13 sec 00:09:18 well I guess not since %59 00:09:43 ehird: only if the output length is not divisible by 4, maybe, and I can fix that 00:09:53 comexk: ASMMMMMM 00:09:54 sec 00:10:26 sorry, disassembledhttp://pastie.org/407791 00:10:34 I don't know x86 :< 00:10:44 for the same code except using custom strchr 00:10:54 ais523: err, that's a bit long isn't it? 00:10:59 inefficient looking, at least 00:11:03 lots of movs 00:11:08 you mean comex:? 00:11:11 i guess its the unrolling & inlining 00:11:14 comexk: no, you don;'t know asm 00:11:14 :P 00:11:24 00000d16nopw%cs:0x00000000(%eax,%eax) 00:11:28 i wish that meant 'wide nop' 00:11:55 what does it mean? 00:12:15 heh, it seemed to have changed the modulo into a multiplication by 0x22b63cbf 00:12:15 fucked if I know 00:12:17 magic numbers ftw 00:12:26 hmm 00:12:31 is 0x22b63cbf a power of two? 00:12:35 no 00:12:36 if it is... yo bitshift? 00:12:39 ais523: aw 00:12:40 powers of 2 are very simple in hex 00:12:45 oh, of course 00:12:45 hmm 00:12:54 you WOULD get better performance from a bitshift, right? 00:13:00 its just a matter of finding out which... 00:13:04 bitshift won't work by definition because you will get just some of the characters 00:13:21 0x12345678 << 8 will discard 12 00:13:31 0x22b63cbf * 59 is 0x800000005, by the way 00:13:35 with % 59 you get unique results from all 27 possibilities 00:13:42 comexk: left bitshift is multiplying by 2**n 00:13:42 so I strongly suspect that there are gcc shenanigans involved in there somewhere 00:13:43 though I don't know if there are better values 00:13:50 ehird: yeah, and you will discard 12 00:14:01 the first byte I mean 00:14:05 comexk: so find another constant 00:14:20 I mean, 0x12345678 is my four bytes 00:14:42 shifting it by any amount will discard the first bits, and is very unlikely to give me a unique 'hash' 00:14:50 the thing that worries me most are those jumps in the middle of the loop 00:15:05 jumps can take something like 60 or 70 cycles nowadays if the branch prediction screws up 00:15:11 as the processor has to flush the entire pipeline and try again 00:15:20 ais523: strchr, probably 00:15:23 they only take about 2 cycles if the branch prediction is correct, though 00:15:29 the silly thing is that he accesses the 4 characters one at a time 00:15:33 then does it AGAIN in one block later 00:15:34 that's just stupid 00:15:42 he should inline the strchr, going 4 at a time, and save the access of the first block 00:15:43 for the next part 00:15:54 I'd suggest using an algorithm such as first char * 16 plus second char * 8 plus third char * 4 plus fourth char * 2 00:16:02 which can be implemented in 8 addition instructions, so 8 cycles 00:16:33 comexk: do what I said for strchr :| 00:17:00 will that work? 00:17:01 c1: error: invalid option ‘cpu=core2’ 00:17:01 cc1: error: unrecognized command line option "-fearly-inlining" 00:17:06 and why the fuck did I suddenly get that 00:17:16 comexk: what I said? 00:17:18 why wouldn't it work 00:18:27 __builtin_expect helps 00:18:33 ehird: what are you expecting me to return from strchr 00:18:35 (which I do have inline) 00:18:54 well, two values, and since you're inlining it, just put it in the function tiself 00:18:56 basically 00:19:41 read 4 chars at a time using the int * trick, (to see how to use that to do strchr see the glibc explanation & link in http://www.stdlib.net/~colmmacc/2009/03/01/optimising-strlen/) and save the first block after reading it (since that's what you'll be processing anyway) 00:19:46 stop pasting that 00:19:46 :p 00:19:50 i didn't 00:19:52 i explained it 00:20:04 ehird: but I'm going one character at a time and wait fuck I'm dumb 00:20:14 i agree! 00:20:15 :P 00:20:18 I know the space will be here or later 00:20:56 O RLY 00:21:06 why is -mtune=core2 not working 00:21:08 it should 00:21:12 I blame apple 00:21:17 comexk: you can do it as multiple &s, I think 00:21:18 read the first block 00:21:30 then & 000space0 00:21:32 0space000 00:21:33 and so on 00:21:52 wait 00:21:56 comexk: what's the shortest morse code? 00:22:09 i have an idea 00:22:12 ah, 1 00:22:31 sec 00:22:32 comexk: so, the space is either in [1], [2], [3] or [4] 00:22:41 now, you've already just said 0-3 00:22:43 *read 00:22:55 so you just have to do 3 bitwise ands 00:23:00 to know if you have a space and where it is 00:23:05 ais523: confirm? 00:23:31 I'm not entirely sure exactly what you're planning 00:23:37 but the general details sound plausible 00:23:49 ais523: instead of doing the strchr then reading from the int* cast 00:23:53 read from the int* cast, because 00:23:57 the max is 4 chars 00:23:59 oh, yes 00:24:01 so you don't even have to read more than the machine word 00:24:04 ais523: and, it can't be the first char 00:24:07 since the minimum is 1 00:24:08 SO 00:24:10 that's pretty much what I was expecting you'd do 00:24:10 you just do some &s 00:24:15 with 0s and a space inbetween 00:24:18 specifically, 3 of them 00:24:21 to account for all the possibilities 00:24:23 ah, MUCH faster 00:24:30 comexk: did you use what I described? 00:24:36 and it worked? woo I'm not an idiot 00:24:39 only problem being that it doesn't work 00:24:42 lol 00:24:44 no, I was implementing while you were talking 00:24:47 pastie the C? 00:24:56 ais523: so, would mine work well? 00:24:57 i think so 00:25:18 I'm not sure of the details, but I'm pretty sure something like that could work 00:25:55 ais523: 00:26:03 ah, the input which contains .-.-.- is fucking it up otherwise it's working 00:26:05 0x00320000, 0x00003200, 0x00000032 00:26:08 what is .-.-.- anyway 00:26:14 read the first block from the int* 00:26:19 then & by those in order 00:26:22 see? 00:26:24 comexk: it's an abbreviation code 00:26:28 if you get your input back 00:26:30 given that it's at least 6 bytes, it's not a single letter 00:26:32 i.e. 0x00320000 or w/e 00:26:32 whatever, fuck that 00:26:34 then the spacei s there 00:26:36 get it ais523? 00:26:53 ah, ok, but I don't like the "if you get your input back" 00:26:57 comexk: that means you replace the strchr with *3* pairs of bitwise-and and equality checks 00:26:58 that has "if" in 00:27:04 ais523: it beats strchr 00:27:10 my preferred method would be to use arithmetic to set all of the word past the 0 to some known value 00:27:11 which goes through every character individually 00:27:13 and checks it 00:27:20 that gives you 26 different values, which you then make a perfect hash out of 00:27:27 and importantly, there's no branching involved at all 00:27:33 huh? 00:27:47 anyway comexk implemnt my algorithm it'd work. 00:28:04 comexk: apparently .-.-.- is full stop 00:28:06 which is not a letter 00:28:08 wait 00:28:08 ais 00:28:09 ais523: 00:28:14 you can do it with ONE AND 00:28:20 which one are you planning? 00:28:26 ais523: 0x00323232 00:28:27 and does your method involve branching? 00:28:31 yes, but only one brancha 00:28:32 and 00:28:34 strchr branches anyway 00:28:36 so this is a huge improvement 00:28:40 well, yes 00:28:51 I'm not trying to get something better, though, but trying to figure out what the best is 00:28:51 wtf 00:29:02 comexk: are you sure your input only contains letters? 00:29:03 why is this optimization working, it's not supposed to work 00:29:05 ais523: in theory 00:29:08 if(a & 0x20202020) { 00:29:12 better use long longs rather than ints, if there's .-.-.- in your input 00:29:26 long long? how efficient 00:29:31 comexk: are you even listening to me 00:29:32 sigh 00:29:34 why do I try and help you 00:29:52 ehird: long long beats branching easily, on a modern x86-compatible processor 00:29:55 except ., -, and / all and with 0x20202020 00:30:02 ehird: explain to me what I should do, clearly 00:30:08 ffffffffff 00:30:09 I did 00:30:12 It's not my fault you can't read 00:30:24 because add qword ptr's in the instruction set, and I strongly suspect it takes either 2 or 3 cycles 00:30:28 ais523: care to explain my idea to him? 00:30:32 since I evidently can't 00:30:53 well, I still think your idea's suboptimal, despite being better than what's been mentioned so far 00:31:03 WTF 00:31:05 besides, morse groups terminate with / not NUL 00:31:07 how come removing a check that always passes 00:31:08 yes, well, while you're thinking of the optimal solution can you be my english->comex translator? 00:31:10 slows it down 00:31:14 also, NUL has nothing to do with it 00:31:14 kthx 00:31:20 mine doesn't do anything with NUL 00:31:21 ehird: no, because I ought to be going home 00:31:30 ehird: I thought you were using masking to detect where the end-of-string was? 00:31:34 ... 00:31:35 no 00:31:37 i was replacing his 00:31:39 strchr(s, ' ') 00:31:40 oh 00:31:43 with an efficient method to check for the space 00:31:50 that also saved time just after 00:31:55 comexk: pastie your C 00:31:59 and I'll put my optimization in 00:32:01 well, your efficient method finds the space, but does it return it in a usable format? 00:32:13 ais523: y oudon't need the space, you just need to know where the space is 00:32:21 ehird: agreed 00:32:25 but your method returns a string with the space in 00:32:29 rather than the position of the space 00:32:59 irb(main):012:0> "%08x" % (0x11321111 & 0x00323232) 00:32:59 => "00321010" 00:33:09 -> space is at [1] 00:33:15 ehird: fail 00:33:22 space 0x20 = decimal 32 00:33:27 *forehead* 00:33:30 no wonder I couldn't understand what you were doing 00:33:36 irb(main):013:0> "%08x" % (0x11201111 & 0x00202020) 00:33:36 => "00200000" 00:33:39 space is at [1] 00:33:43 yep 00:33:46 agreed 00:33:49 that's what I thought you were doing 00:33:59 but the problem is, how do you convert the string "00200000" into a usable form 00:34:00 for the masking? 00:34:03 if(!(a & 0x03000000)) s2 = s; 00:34:03 else if(!(a & 0x030000)) s2 = s + 1; 00:34:03 else if(!(a & 0x0300)) s2 = s + 2; 00:34:03 else if(!(a & 0x3)) s2 = s + 3; 00:34:04 else s2 = s + 4; 00:34:06 that slows it down a lot :( 00:34:08 and I don't know why 00:34:11 over memory accesses 00:34:12 comexk: you do ONE & 00:34:14 not 4 00:34:15 comexk: it would do, you have ifs in there, you even have elses 00:34:16 also 00:34:20 there can't be a space at position 0 00:34:30 unfortunately there can 00:34:41 balls. 00:34:47 okay then, and by 0x20202020 00:34:48 ehird: // is the traditional way to send a space character in Morse 00:34:49 ais523: the alternative being strchr which contains all those things 00:34:54 i.e. a zero-length string 00:34:54 no 00:34:55 not strchr 00:35:00 you only need to do one memory read 00:35:04 ehird: 0x20202020 will ALWAYS and 00:35:05 brb 00:35:07 ... 00:35:08 no shit 00:35:10 you use the result from the and 00:35:12 not just checking it 00:35:19 ehird: what do you /do/ with the result from the and? 00:35:22 it won't magically fix your string 00:35:23 ais523: err, the obvious? 00:35:26 which is? 00:35:26 it shows you where the space is 00:35:32 yes, I know it shows you where the space is 00:35:34 ehird 00:35:35 problem is 00:35:36 it doesn't 00:35:38 but how do you change it into the masking of the string you need? 00:35:39 this isn't 0x11 00:35:43 this might be 00:35:43 0x2d 00:35:46 0x2e 00:35:48 err so 00:35:50 0x2f 00:35:52 all of which & 0x20 00:35:58 ... no shit 00:36:28 anyway, how come these strings are space-separated all of a sudden, Morse is normally separated with / 00:36:34 is your teacher using an unusual encoding? 00:37:29 ehird: what I mean is, even if your method does determine the location of the space (and it can do that, and against 0x0c rather than 0x20 because that's contained by dash and dot but not space) 00:37:35 once you have the location, what do you do with it? 00:37:42 ais523: comex's code 00:37:44 just uses the location 00:37:53 ehird: comex's code requires the location to be encoded as 0, 1, 2, 3, 4 00:37:58 your code doesn't encode the location like that 00:38:00 so change it to that 00:38:09 err... comex's code uses a multiplication 00:38:28 in other words, you need to convert your found-space into the position of the space so you can multiply by it 00:41:16 -!- ais523 has quit (Remote closed the connection). 00:47:01 hmm 00:47:23 but I still don't understand why REMOVING A BRANCH THAT ALWAYS GOES ONE WAY 00:47:24 speeds it up 00:47:29 branch prediction 00:47:34 uh, I mean slows it down 00:47:46 branch prediction 00:47:55 __builtin_expect(it, 1) slows it down 00:47:59 branch prediction 00:48:18 ehird: why is it faster to predict the wrong thing 00:48:23 butts 00:48:43 well, it's not 00:48:51 it's fastest without any prediction 00:48:59 but this shouldn't matter. 00:49:15 also, ehird: give me your code :p 00:49:23 what code 00:49:29 code to give me a position :p 00:49:38 :| i just gave an algo 00:49:39 not code 00:50:15 how will anding with 20202020 help anything 00:50:21 butts 00:50:25 * ehird tiredlazy 00:55:09 holy shit this sped it up 00:55:14 wut 01:04:00 -!- Azstal has joined. 01:04:36 :/ 01:04:43 i don't think it's very easy to get access to jstring 01:05:05 I'll try a memory dump 01:06:59 also, GetStringUTFChars returns a const char 01:07:04 so it's probably giving me an existing pointer 01:08:20 I give up 01:08:23 how do I make this faster 01:08:35 I'll just go to sleep 01:21:01 -!- Asztal^_^ has quit (Read error: 110 (Connection timed out)). 01:38:48 -!- Asztal^_^ has joined. 01:53:45 -!- Azstal has quit (Read error: 110 (Connection timed out)). 02:33:57 -!- GreaseMonkey has joined. 04:18:44 -!- ab5tract has joined. 05:26:06 I want to hear a lounge version of O Fortuna. 05:44:27 -!- oklopol has quit (Read error: 110 (Connection timed out)). 05:44:48 -!- oklopol has joined. 05:51:45 hm, that could really work 05:54:34 You're singing it in your head now, aren't you? :) 05:54:37 I think it would be good. 05:54:39 In a weird way 05:55:01 yes 05:56:36 i'm not really singing in my head, i'm preparing the looper and the guitar and the bass to try to record the verse at least 06:45:33 * Robdgreat would love to hear that when it's done 06:57:09 with or without my crappy singing? 07:18:37 with should work 07:19:00 but ultimately it's your call 07:25:20 one sec 07:28:35 crap, all audio is in one channel, how do i fix this 07:30:23 ok got it 07:31:22 jeez hurry up 07:33:08 http://filebin.ca/qyxpp/ofortuna.mp3 07:35:50 wtf was that 07:36:46 * lament will appreciate more constructive feedback. 07:41:29 * lament pokes GregorR 07:45:34 -!- olsner has joined. 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:07:27 lament: reminds me of 'Piggy' by NiN on Further Down The Spiral 08:30:35 -!- GreaseMonkey has quit ("Client Excited"). 08:36:32 -!- tombom has joined. 08:50:44 -!- ab5tract has quit. 09:07:04 -!- impomatic has joined. 09:12:07 -!- impomatic has quit ("mov.i #1,1"). 09:14:24 -!- Slereah has quit. 09:14:58 -!- Slereah has joined. 09:16:41 -!- olsner has quit ("Leaving"). 09:27:10 -!- ais523 has joined. 09:42:01 -!- Slereah_ has joined. 09:54:25 -!- Slereah has quit (Read error: 110 (Connection timed out)). 09:59:14 -!- ais523 has quit (Read error: 104 (Connection reset by peer)). 10:01:35 -!- ais523 has joined. 10:07:33 -!- ais523 has quit (Read error: 104 (Connection reset by peer)). 10:07:36 -!- ais523_ has joined. 10:11:19 -!- oerjan has joined. 10:15:44 -!- ais523_ has changed nick to ais523. 10:31:29 -!- comexk has quit (Remote closed the connection). 10:32:23 -!- comex has joined. 10:32:50 -!- ais523_ has joined. 10:34:49 -!- ais523 has quit (Nick collision from services.). 10:34:51 -!- ais523_ has changed nick to ais523. 10:36:22 -!- lifthrasiir has quit (calvino.freenode.net irc.freenode.net). 10:36:31 -!- lifthrasiir has joined. 10:40:37 -!- oerjan has quit ("leaving"). 10:45:07 -!- lifthrasiir has quit (calvino.freenode.net irc.freenode.net). 10:45:31 -!- lifthrasiir has joined. 11:54:52 -!- ais523 has quit (Remote closed the connection). 13:38:05 -!- ais523 has joined. 13:54:15 -!- ais523 has set topic: http://➡.ws/Ⱒ. 13:54:23 -!- ais523 has set topic: Logs: http://➡.ws/Ⱒ. 13:54:34 there, we have the spidery ha in the log link now 13:54:45 golfing the topic can be fun... 13:55:31 How is it golfed? 13:56:06 because it contains the same information as before 13:56:08 but is shorter 13:56:26 Does it? 13:56:34 yep, it contains the link to the logs 13:56:44 and a glagolitic capital letter spidery ha 13:56:56 In short URL form and using ASCII->Unicode? 13:57:14 in short URL form 13:57:16 it's a unicode URL 13:57:56 Though you can't actually click it or kopipeit 13:58:07 Sure you can. I just did. 13:58:11 well, that's the fault of your client 13:58:17 Firefox? 13:58:21 Well, it is Firefox2. 13:58:51 But I'm surprised that the glagolitic capital letter spidery ha was free-for-taking at ➡.ws. Would have thought someone had already used it. 13:58:57 mIRC ... though I get to the wrong place 14:00:11 ais523, err, I only see an arrow 14:00:11 http://xn--hgi.ws/Ⱒ is what the URL should be translated to for non-Unicode-aware systems 14:00:13 -> 14:00:17 is how it looks 14:00:19 in the url 14:00:20 AnMaster: it's a Unicode arrow 14:00:28 so what is the spidery thing? 14:00:31 I don't see it 14:00:32 I get http://xn--7a3kss.ws 14:00:37 it's a glagolitic capital letter spidery ha 14:00:46 Spidery HA is after the /, in the path part. 14:00:46 Same here 14:00:58 I get on that website and it does not redirect me at all 14:00:59 ais523, is it a "glagolitic capital letter spidery ha" or an unicode arrow 14:01:00 decide 14:01:01 obviously there's a character encoding fail somewhere 14:01:04 AnMaster: There's both. 14:01:11 no there ins't 14:01:13 AnMaster: It's [arrow].ws/[spidery ha]. 14:01:16 ah 14:01:16 AnMaster: the URL is http:// unicode arrow .ws/ glagolitic capital letter spidery ha 14:01:25 Spidery spidery 14:01:27 that looks like [2C22] here 14:01:29 ... 14:01:38 same here, I don't have a spidery ha in my font 14:01:53 Well, me neither. But I trust it's the ha if ais523 says so. 14:02:09 why the interest in that char? 14:02:14 it comes out in mojibake on the clog logs 14:02:38 my guess is that 7a3kss is the encoding of the mojibake, whereas hgi is the encoding of the correct unicode character 14:02:39 Whoops, I need to be elsewhere already. -> 14:03:51 Ah. If I copy it to chrome I get xn--hgi, but if I double-click it, I get xn--7a3kss 14:07:39 hm, fast integer square root in C... anyone knows anything good? 14:07:51 the newton algorithm is pretty fast 14:08:00 * AnMaster googles 14:08:11 basically, start with 2 14:08:22 well, x=2 14:08:31 iterative? 14:08:33 then change x to ((n/x)+x)/2 14:08:35 yep, iterative 14:09:15 http://www.beyond3d.com/content/articles/8/ 14:09:50 that is float 14:09:59 the target system doesn't have floating point hardware 14:10:02 ah 14:10:02 embedded target 14:10:25 I'm sure there's an integer arithmetic version 14:11:55 * AnMaster finds a pdf from microchip named "fast integer square root" 14:12:52 yay one avoiding slow division too 14:13:03 http://www.google.com/codesearch/p?hl=en#dl-KOTbXso4/libcs/isqrt.c&l=22 14:13:24 libcs? 14:13:53 ah, microchip 14:14:25 Here's one with only a for-loop: http://www.google.com/codesearch/p?hl=en#G1Uvi1prmwc/kernel2_4/drivers/media/video/omap/v4l2.c&l=189 14:14:27 well my target isn't a microchip, but it is is still interesting 14:14:38 I can't use the same asm, but the general idea should work I think 14:14:45 * AnMaster goes to experiment 14:16:05 MizardX, that seems to work on the same model basically. 14:16:20 same idea. slightly different implementations 14:25:36 well, I don't know for certain that's a spidery ha, I just copied it from the old topic 14:27:01 Character 0x2C22 ... I don't have any font that supports it. :) 14:28:22 >>> unicodedata.name(u'\u2C22') 14:28:22 'GLAGOLITIC CAPITAL LETTER SPIDERY HA' 14:31:50 nice 14:33:46 too bad http://➡.ws/λ is already taken (and doesn't point to anything haskell) 14:56:13 comex: that domain is still stupid 14:56:15 as discussed before 14:57:38 -!- ehird has set topic: Ⱒ GLAGOLITIC CAPITAL LETTER SPIDERY HA | http://tunes.org/~nef/logs/esoteric/. 14:57:58 14:33 comex: too bad http://➡.ws/λ is already taken (and doesn't point to anything haskell) 14:58:00 yes it do 14:58:00 es 14:58:14 johnnowak does Haskell and concatenative langs like factor 14:58:15 :P 14:58:32 ehird, what is wrong with ➡.ws ? 14:58:36 I like it, so did ais523 14:58:40 or does I guess 14:58:51 I think it's a bad idea for general use 14:58:54 the whole purpose is to subvert the twitter length limit, but it counts in bytes, not characters 14:58:58 but very funny for a #esoteric topic 14:59:03 so the makers are complete idiots 14:59:07 who buy domains and advertise them without thinking 14:59:16 ehird, err what? 14:59:27 also, a tiny url is mainly useful apart from twitter to write down 14:59:27 what has twitter got to do with it 14:59:37 AnMaster: oh shut the heck up 14:59:48 ehird, what? 15:00:05 i'm tired of being expected to explain 5 billion things to you every time I say something 15:00:17 there is nothing about twitter on http://➡.ws 15:00:28 you aren't making any sense 15:00:29 *shrug* 15:00:51 bbl 15:01:22 AnMaster: there is something about twitter on http://➡.ws, but only on the results page after you've worsened a URL 15:01:53 and, besides, the other purpose is to write it down or tell people irl. 15:01:56 good luck typing those urls 15:02:11 ehird: you're missing the point 15:02:14 which is to make a funny topic 15:02:21 I never said the topic wasn't funny 15:02:31 URL redirection services can be used to make a point, just as much as they can be used to shorten things 15:02:32 I just saw comex's message at the start of my quicklog 15:02:33 and replied to it 15:02:37 before seeing the context 15:03:32 -!- Hiato has joined. 15:11:28 oh, I just realised that the creators were quite young when they made INTERCAL 15:11:40 interesting 15:11:43 I was expecting them to be bearded like they are now, I guess that explains why INTERCAL _isn't_ popular 15:11:46 I suppose they must have been, as they're still in work now 15:11:58 just finished freshman year final exams, sez don woods 15:11:59 and that explains why INTERCAL wasn't popular back in 1972 but has become more popular since 15:12:01 (http://www.computerworld.com.au/article/251892/-z_programming_languages_intercal) 15:12:54 so, if I have my american educational system right, 15:13:00 late teens/early 20s? 15:14:29 http://www.diku.dk/hjemmesider/ansatte/jespera/doc.html oh god the comic sans it burns 15:19:05 ais523: also, do jumps -really- cost 60 cycles? 15:19:12 that's just painful... 15:19:18 it depends on which way they go 15:19:34 basically, branch prediction is the processor predicting in advance which way the jump will go 15:19:44 if it guesses wrong, you have to flush the pipeline and that takes ages 15:19:54 ais523: how often does it get it right? 15:20:00 quite a lot, nowadays 15:20:06 especially if jumps mostly go the same way 15:20:11 and even more with profile-guided optimisation 15:20:17 ehird, it depends on how long the pipeline is 15:20:19 that's one of the main purposes of that optimisation 15:20:29 ehird, on a pentium 4 a mispredicted branch is *very* expensive 15:20:37 did the RISC-y sort of processors do jumps better? 15:20:39 since it had such a long pipeline 15:21:12 ehird: it's nothing but pipeline length and prediction quality that affects the jump 15:21:13 yeah riscs do better 15:21:21 oklopol: i'll trust you <3 15:21:24 for instance, on a PIC microcontroller, the pipeline has length 2 so jumps only take 2 cycles 15:21:25 they generally have shorter pipelines 15:21:27 ehird, there are some CPUs with "delayed branch" stuff, basically they continue executing n instructions after the branch instruction even when jumping (iirc n was/is usually 1 or 2) 15:21:36 and as oklopol says, you can likely get away with a shorter pipeline on a RISC 15:21:42 true 15:22:08 15:21 AnMaster: ehird, there are some CPUs with "delayed branch" stuff, basically they continue executing n instructions after the branch instruction even when jumping (iirc n was/is usually 1 or 2) 15:22:12 that sounds rather dangerous for IO :D 15:22:16 ais523, delayed branches are another interesting way to solve it. It potentially reduces the issues to zero if you can reorder 15:22:16 ehird: delayed branch is just telling the compiler to use software to sort out what most processers do in hardware 15:22:22 *processors 15:22:28 ah 15:22:31 indeed 15:22:35 presumably not as well 15:22:36 and it gives the same result as the hardware version would do 15:22:45 since hardware tends to be faster... 15:22:59 well, it slows down the compilation but not the execution 15:23:04 ehird: it's not nearly as dangerous for io as it is for exceptions 15:23:11 heh 15:23:30 and all kindsa data hazards 15:23:38 but yes, there are lots of subtleties, it's really easy to screw up 15:23:47 and why would you start talking about something i'm actually interested in right when i'm about to leave 15:23:48 I think VLIW and delayed branch slots are both great ideas. 15:23:54 oklopol: sry I will talk mor ewhen you return. 15:23:56 damn you all to germany! 15:23:57 -> 15:24:04 hah 15:24:08 i'm rather upset jumps are so slow 15:24:14 i don't like my cpu :< 15:24:17 ehird, not if they are correctly predicted 15:24:27 well, it's more that non-jumps can be sped up more easily then jumps 15:24:38 ehird, anyway, Intel Core is *fast* at mispredicted jumps compared to Pentium 4 15:24:50 and AnMaster's right, a correctly predicted jump hardly costs anything, usually 1 or 2 cycles 15:24:55 i bet a functional-tuned cpu for lisp would get it right because it'd be more structured than 'jmp' :< 15:25:02 for some specific work loads a Pentium 4 is *worse* than a *slower* Pentium 3 15:25:13 due to the high cost for stuff like branch misprediction 15:25:19 unfortunately, you can't also predict jumps correctly, if you could it would defeat the point of having if statements in the first place 15:25:29 ais523, yes indeed 15:25:29 an unconditional goto, by the way, is fast because it's always trivial to predict 15:25:51 we just need to tie a crystal ball to our cpus 15:25:58 perfect branch prediction & halting problem solved to boot 15:26:10 some processors, like the PIC, are primitive enough that they don't even try to predict unconditional jumps 15:26:13 and so waste cycles when jumping 15:26:23 ehird, a crystal ball is slow. You need L1/L2 cache for the crystal ball lookups 15:26:29 but on modern hardware, you don't need to worry about it 15:26:31 which would defeat the point 15:26:37 AnMaster: ok then, the beating heart of a dead wise oracle 15:26:42 much more efficient 15:26:48 well, crystal is made from silicon 15:26:53 dead & wise, not "dead wise" as in slang that is 15:26:57 ais523, however delayed branch slots does solve the issue if you can reorder some. Sure there are cases where you can't, and have to put in NOP 15:27:00 so I'd suggest embedding the processor inside the crystal ball 15:27:01 ais523: oracles's hearts are made from silicon too 15:27:21 AnMaster: delayed branch slots are great, I agree 15:27:26 I was planning to implement them in INTERCAL 15:27:33 hah! 15:27:41 which is obviously ridiculous as INTERCAL's far too high a level to gain any benefit 15:27:47 but I think they could be useful for debugging purposes 15:27:52 -!- FireFly has joined. 15:28:02 ais523, anyway if you had a delay of 40 like ehird talked about then delayed branch slots would be bloody annoying 15:28:04 INTERCAL is low level, but delayed branch slots are slightly lower level than asm 15:28:16 AnMaster: ais523 claimed comex's branch was taking ~60 cycles 15:28:16 it only works great with a delay of 1-2 15:28:19 which is crazy as fuck 15:28:24 and yes, but I'm sure you can find something else to do for 40 cycles 15:28:33 ok 60 then 15:28:33 or however many it is 15:28:38 anyway it varies depending on CPU 15:29:04 hmm... pentium 4 has a pipeline length of 31, according to Wikipedia 15:29:46 ais523, hm what about mispredicted branch + IL1 miss ? 15:29:50 that would be very slow 15:29:54 ooh, nasty 15:29:57 possibly also L2 miss 15:30:06 comex's code didn't have much chance of an L1 miss, though, it was hardly using any memory 15:30:09 then you would hit a few hundred cycles right? 15:30:26 ais523, well DL1 and IL1 are luckily separate.. 15:30:38 so, just to put it into context, 15:31:00 how long do 100 cycles take on this 2.1ghz intel core 2 duo, on average? :P 15:31:01 btw, where is the code comex wrote? 15:31:16 AnMaster: http://pastie.org/407770 15:31:17 so far 15:31:19 we're still improving it 15:31:24 it's a morse code decoder 15:31:28 we're trying to eliminate the strchr atm 15:31:29 I see 15:31:38 AnMaster: his prof told him to optimize some java code 15:31:45 so he's writing it in C and linking it with Java Native Interface 15:31:55 using tricks like 15:31:57 int a = *((int *) s); 15:32:04 to read 4 characters (the max morse cod ehe's processing) in one go 15:32:05 I see 15:32:13 does that mean 'I don't see'? 15:32:23 not in this case 15:32:38 I still don't see what the algorithm is though... 15:32:45 just morse code decoding 15:32:50 AnMaster: stuff[] is a perfect hash table 15:32:55 ah 15:33:02 now that explains a lot 15:33:05 and the mask removes stuff after the space, essentially 15:33:15 but since the space can be determined just from the 'a' there 15:33:20 we're trying to figure out how to do it the quickest way 15:33:23 what is the space for? 15:33:26 (since strchr will do the 4 accesses and branch on each one) 15:33:28 AnMaster: separate the codes 15:33:32 mhm 15:33:34 ..-.- ...- .-... 15:33:35 and stuff 15:33:38 right 15:34:02 but he has two branches there, and up to 5 hidden in strchr 15:34:09 hm 15:34:09 so we're trying to reduce those, and fold them into each other 15:34:10 ais523: 15:30 ehird: how long do 100 cycles take on this 2.1ghz intel core 2 duo, on average? :P 15:34:26 ehird, how long did you say max length was 15:34:28 this is actually surprisingly like writing INTERCAL 15:34:38 -!- MigoMipo has joined. 15:34:39 and do you need to fail in a good way on bad input? 15:34:41 AnMaster: 4 characters, so that's why we use an int 15:34:44 and no, he doesn't 15:34:47 ah 15:34:51 also, whatever you say we've probably tried :P 15:34:52 and 100 cycles at 2.1 GHz is 100/2.1 ns which is just under 50 nanoseconds 15:34:58 ehird, it may be possible to use SIMD then 15:35:00 *may* 15:35:18 ais523: Oh. 15:35:24 depends on alignment though 15:35:26 Er, that's not so bad then. 15:35:30 so probably not a good idea 15:35:42 AnMaster: we need the actual code to be portable 15:35:44 ehird, depends on how much data you need to process 15:35:45 since java is portable 15:35:50 hrrm ok 15:35:54 ofc, he's going to get marked badly for, y'know, not using java but there you go 15:35:59 ehird, then it isn't. It assumes int == 32 bits 15:35:59 AnMaster: also, he's testing it on 6mb strings 15:36:05 also, yes 15:36:10 but that's universally true on modern systems. 15:36:24 a system in which it isn't probably doesn't run java 15:36:29 iirc there are systems with int == 64 bits 15:36:50 don't remember which system 15:36:59 only a vague memory of reading those existed 15:37:17 probably some HPC stuff 15:37:19 your personal anecdotes aren't too useful :D 15:37:32 ehird, was it supposed to be? 15:37:36 dunno 15:37:47 ehird, anyway there is int32_t in C99 15:38:14 ehird, btw how did you calculate the perfect hash? 15:38:21 or how did comex rather I guess 15:38:24 I'm not sure, ais523 did that 15:38:29 oh? 15:38:32 how ais523? 15:38:33 I told comex about the *((int*)s) trick though 15:38:40 let me read backlog 15:38:50 AnMaster: his original code was ridiculously bad, take a look: http://pastie.org/407681 15:38:50 ehird, well, that could be slow. If it isn't aligned 15:39:04 it was comex who did the perfect hash, not me 15:39:20 ehird, 1) some systems will SIGBUS on non-aligned int. IIRC Alpha for example. Not sure about MIPS, ARM, PPC and such 15:39:26 nobody actually cares 15:39:30 2) even on x86, reading non-aligned int is slower 15:39:32 it has to work on most systems, 15:39:34 and be fast on x86 15:39:36 not sure how much slower 15:39:38 but yes slower 15:39:46 his code takes something like 300ms on a 6 megabyte string now, iirc, and that _includes_ the overhead of the Java bridge and the like 15:39:52 x86 can certainly manage misaligned accesses 15:40:05 also, does his code work? 15:40:07 ais523, yes it can. But it is still slower than aligned access 15:40:17 ais523: he broke it recently IIRC 15:40:21 but the last working version :P 15:40:31 AnMaster: but 15:40:33 it's faster than 15:40:37 s[0], s[1], s[2], s[3]. 15:40:45 probably 15:40:59 although the strchr does that anyway 15:41:03 thus why we're trying to eliminate it 15:41:05 or at least i am 15:41:18 that strchr. I think you could do that faster with testing against a bitmask or something. 15:41:24 yes 15:41:28 that was what I was suggesting 15:41:30 bitmasking a 15:41:34 but I couldn't figure out what the right bitmask was 15:41:37 and what to do with the result 15:41:55 ehird, take a look at strlen in glibc. It is pretty insane. That is the generic C version. Each CPU also has an even crazier asm implementation 15:42:04 that's where I got the int * trick from 15:42:08 via http://www.stdlib.net/~colmmacc/2009/03/01/optimising-strlen/ 15:42:14 ehird, ah you have seen the bitmasking in glibc then? 15:42:26 ofc, strlen() is pointless since you should use length-tagged strings. 15:42:35 yes 15:42:45 if I could do anything to glibc, I'd add a 1 second wait for every strlen call :P 15:42:49 ehird: the principle of searching for a NUL is still useful, though 15:42:57 and modify gcc to never, ever optimize out a strlen 15:43:01 ais523: strchr(s,0) 15:43:04 if you _must_ :P 15:43:14 well, I was thinking of strchr in general 15:43:19 although notice that strchr stops on NUL 15:43:25 some things are faster for NUL-termination 15:43:41 yes, but in general strings should be length-tagged 15:43:46 personally, I think one of the better methods for storing strings is to both length-prefix and nul-terminate 15:43:49 just about every HLL does that, and their string handling is great 15:43:58 ais523: that can work 15:46:18 ehird, you can do length tagged strings in C 15:46:30 i know 15:46:33 but its a pain 15:46:37 because libraries don't like it 15:46:41 there are at least two libraries with macros for it 15:46:41 and you can';t use the stdlib 15:46:44 that I know of 15:46:48 probably a lot more exists 15:46:59 -!- impomatic has joined. 15:47:02 in C, using non-null-terminated strings is pretty painful 15:47:12 Hi :-) 15:47:12 if you're doing both length tag and nul-terminate, then you can use most of the read-only stdlib functions 15:47:15 hi 15:47:15 ehird, just consider it a generic byte buffer 15:47:22 besides, memchr = strchr for length-prefixed strings 15:47:29 ais523, yes indeed 15:47:37 there exists quite a few mem* functions 15:47:38 and likewise with the other mem* functions 15:47:43 that are *FASTER* than str* ones 15:47:51 because they don't need to check for end all the time 15:47:57 actually 15:48:01 comex switches to using memchr 15:48:03 and it was slower 15:48:05 memcpy() is faster than strcpy() for example 15:48:09 ehird, that's strange 15:48:10 maybe the \0 checking helped branch prediction :P 15:48:19 no idea 15:48:23 yep, most CISC processors can do branch prediction perfectly for for loops 15:48:32 but most processors aren't CISC nowadays 15:48:32 ais523, interesting 15:48:45 they're RISC-core, disguised as CISC using microcode 15:48:57 ais523, but can they still branch predict? 15:49:17 branch predict perfectly I mean 15:49:23 well, I've worked with a DSP before 15:49:30 that branch-predicted for-loops perfectly 15:49:34 as long as you didn't change the control variable 15:49:53 not only that, but it didn't even spend any cycles on the decrement-and-test such loops normally have 15:50:23 ais523, at least some x86 use microcode. I'm pretty sure AMD64 does for some instructions. I have a pdf somewhere around here documenting type of execution, with those in microcode marked "VectorPath", other ones marked "DirectPath" 15:50:24 iirc 15:50:33 * AnMaster searches his desktop 15:50:42 ah there it is 15:51:03 I think all modern x86-compatibles use microcode 15:51:11 indeed. Instruction latencies for the AMD64 ISA (k8 family) 15:51:17 DSPs are weird, though, they have some very specific CISC instructions 15:51:55 -!- Judofyr has joined. 15:52:12 ais523, even with microcode x86 is pretty CISC in the core. Just consider all the core SIMD instructions for example 15:52:28 are those non-microcode/ 15:52:30 I'm surprised 15:52:39 and suddenly realise why ARM uses so much less power 15:52:46 I don't like computers 15:52:50 They don't work very well 15:52:51 :( 15:53:15 From "Legend for table C.1": Decode type Shows the method that the processor uses to decode the instruction—either DirectPath Single (DirectPath), DirectPath Double (Double), or VectorPath. 15:53:31 I think it was clarified elsewhere in the pdf 15:54:07 yep 15:54:22 http://rafb.net/p/nVH4iJ51.html 15:55:54 ahem 15:55:57 don't use rafb.net 15:56:18 for people reading this sometime after tomorrow: http://pastie.org/408374 15:56:22 ehird, it is the one that loads fastest here. pastebin.ca take a lot of time to load. Same for all the others 15:56:30 pastie.org is always quick for me 15:56:35 ehird, not for me 15:56:47 rafb takes maybe 1 second to load. pastie.org around 5 15:56:54 hmm 15:57:08 I guess there is much more design on pastie.org 15:57:15 rafb has a very minimalistic design 15:57:19 your browser will cache the css. 15:57:36 well, I'm tempted to just say tha ta few more seconds now beats expiry in the future, but I'll look for something faster 15:57:52 ehird: that CSS expires, think of the logreaders! 15:58:02 lol wut 15:58:16 :D 15:58:29 AnMaster: http://paste.lisp.org/? 15:58:33 about as minimalist as rafb 15:58:38 irritating captcha though 15:58:42 well 15:58:45 it always says lisp 15:58:47 indeed 15:58:47 so you can easily script that 15:59:01 ehird, really? greasemonkey tends to slow down stuff 15:59:13 you don't really need greasemonkey for that 15:59:17 best captcha ever 15:59:33 comex: well, you have to target it specifically 15:59:37 ehird, I use paste.lisp.org when I want to highlight erlang 15:59:38 most spambots just generically spam everything 15:59:40 so it'd trip them up 16:00:15 ehird, it does load quite fast. But rafb does load even faster 16:00:22 1 second vs. 3 or such 16:00:31 if it takes more than 50 nanoseconds, it's too slow! 16:00:36 AnMaster: http://pastey.net/? 16:00:43 loads very fast for me, and has ids going back to 2006 (I just checked) 16:01:00 I suggest you use paste.eso-std.org 16:01:05 yes! 16:01:19 ehird, hm 2 seconds 16:01:22 still parked 16:01:26 it will give you vaginal herpes on your iso standards. or at least, that's what it claims. 16:01:27 err didn't eso-std expire? 16:01:31 AnMaster: so? 16:01:35 you can still use it! 16:01:45 well the pastes are gone. 16:01:53 the urls no longer valid 16:01:57 THINK OF THE LOGREADERS! 16:01:59 http://expired.revenuedirect.com/park.php?domain_name=&site_id=20788 16:02:05 then give us that link 16:02:06 never let your pastebin expire 16:02:15 also, nobody actually used it 16:02:19 I did 16:02:20 ehird, you did iirc 16:02:23 and ais523 did 16:02:25 ais523: okay, like thric 16:02:27 e 16:02:30 until anmaster told you not to 16:02:35 I used it more than ehird, I think 16:02:43 ehird, fixing that download bug might have helped 16:02:50 and THINK OF THE LOGREADERS!! 16:02:51 not a bug 16:02:52 that wasn't a bug, that was correct 16:03:02 doing things which are unusual but correct is very eso 16:03:13 incidentally, Microsoft have come up with their own way of doing that 16:03:18 indeed 16:03:23 i linked to that article yesterday 16:03:24 they wrote a standard, made it an RFC, and are now complying with it 16:03:33 ais523, um really? 16:03:36 details? 16:03:57 http://drplokta.livejournal.com/109267.html 16:04:15 ah, I was going to ask ehird if he had the link, I couldn't find it 16:04:24 huh, http://pastey.net/ thinks Erlang means Ericsson Language. It actually doesn't 16:04:37 it is a reference to a person named Erlang 16:04:40 AnMaster: it does and it doesn't 16:04:41 it's both 16:04:44 same as Haskell is named after someone 16:04:48 they named it because of both connotations 16:04:53 even though only one is official 16:05:05 "Keep my history for at least [99999999] days" —Firefox 16:05:07 ehird, true. But according to one of the original developers it was primarily due to the person 16:05:09 I should become the U.S. archivist. 16:05:46 ~273972 years? 16:05:51 yes. 16:05:56 and yes that was using 365 and integer division 16:05:57 I don't intend to be using Firefox by that t ime. 16:06:00 so probably off by a bit 16:06:45 ehird, personally I have it set to one week 16:06:51 I don't like to keep history around 16:06:52 AnMaster: DATA LOSS AAAAAAAAAGH 16:06:54 NO NO NO NO NO NO NO 16:06:57 YOU MUST PRESERVE ;_; 16:07:03 ehird, No. I'm paranoid 16:07:07 that is the reason 16:07:12 So encrypt it :P 16:07:14 ehird, I do 16:07:20 /home is encrypted 16:07:32 I have a huge obsessive aversion to deleting anything. 16:07:42 probably because of my logreading tendencies 16:07:48 ehird, I have a huge obession with having more than 3 GB free space on my disk 16:07:51 I do have backups of course 16:07:58 on tape 16:07:59 Eh, just transfer old stuff to a backup drive. 16:08:02 Lol, tap.e 16:08:03 *tape 16:08:09 Want to survive a nuclear attack? 16:08:09 ehird, it lasts. 16:08:17 disks last pretty well y'know 16:08:27 ehird, ever had a disk fail? 16:08:31 * AnMaster has 16:08:33 Yes. 16:08:41 Backup your backups. 16:08:45 To Xzibit's body. 16:08:51 huh? 16:08:59 Xzibit is the origin of the yo dawg meme. 16:09:06 -!- AnMaster has set topic: Ⱒ GLAGOLITIC CAPITAL LETTEmhmR SPIDERY HA | http://tunes.org/~nef/logs/esoteric/. 16:09:09 err 16:09:12 wth 16:09:12 LETTEmhmR 16:09:15 leave it like that :D 16:09:22 (I also don't keep backups. Yet.) 16:09:23 my kb2OPJħßj strs 16:09:29 AnMaster: indeed, it does str. 16:09:33 ah better... 16:09:37 keyboard went strange 16:09:39 no idea why 16:09:50 -!- AnMaster has set topic: Ⱒ GLAGOLITIC CAPITAL LETTER SPIDERY HA | http://tunes.org/~nef/logs/esoteric/. 16:09:50 Nice topic 16:09:54 fixed it 16:09:56 :< 16:09:57 -!- ehird has set topic: Ⱒ GLAGOLITIC CAPITAL LETTEmhmR SPIDERY HA | http://tunes.org/~nef/logs/esoteric/. 16:09:59 Fixed it. 16:10:00 :> 16:10:04 ... 16:10:25 anyway. Where was I 16:10:28 right 16:10:34 FireFly: sometimes I fly around in a spaceship? 16:10:41 Oh, you do? 16:10:48 it's a reference to eso-std.org 16:10:52 which was only ever placeholder text 16:10:54 ais523: now _that's_ obscure 16:10:56 also, no 16:10:59 well. 16:11:00 "sometimes I fly around in a spaceship :>" 16:11:01 in variou forms. 16:11:04 ehird, backups on tape may not survive a nuclear attack 16:11:08 but it had infrastructure set up/ 16:11:09 nor do I think anything I have will 16:11:11 it was just never used :P 16:11:19 AnMaster: will you survive a nuclear attack? 16:11:23 just keep a backup in your pocket 16:11:29 I live in a house based on the log technology 16:11:30 backup yourself in your pocket 16:11:31 that way, if you survive the attack probably so will the backup 16:11:36 INFINITE BACKUPS. 16:11:39 hey, I recognized it 16:11:41 you can never die. 16:11:42 ever. 16:11:46 comex: wow 16:11:59 since it would take infinite time to destroy all the copies of yourself 16:12:00 it was pretty obscure... 16:12:07 ais523, that would require fitting 500 GB in my pocket 16:12:08 how 16:12:20 flash memory's getting better all the time 16:12:26 MicroSDs are small 16:12:28 I have an 8 GB memory stick in my pocket at the moment 16:12:30 depends on the size of your pocket 16:12:32 ais523, and wear out quickly with daily backups 16:12:39 There are 32 gig SDHCs IIRC 16:12:39 er 16:12:41 well, my pocket-backup isn't daily 16:12:45 its for a nuclear attack AnMaster 16:12:48 and it's mental-incremental 16:12:49 currently I have incremental daily backups 16:12:51 i'm sure you could lose a month 16:13:02 as in, I back something up if I think it needs backing up and I remember it changes 16:13:06 I'd be happy to live 16:13:17 every now and then I'll tarball all the backup-requiring bits of my home dir and store that on the USB stick 16:13:18 FireFly: pfft, you and your logic 16:13:27 * FireFly likes his logic 16:13:29 my disaster plan: grab backup drive, run. 16:13:34 ehird, anyway I keep them in a safe. That is metal. That should at least reduce EMP *a bit* 16:13:40 do not perform step 2 until step 1 is complete. 16:13:51 incidentally, radioactivity has a much larger effect on fibre optic cables than both other electronic stuff and humans 16:13:52 My disaster plan: null 16:13:52 :< 16:13:55 AnMaster: okay, listen, if there's an EMP attack 16:13:59 you're fucked anyway 16:14:00 * FireFly doesn't do backups, but I should 16:14:03 ehird, yes 16:14:08 like, as in, death imminent :P 16:14:09 me too 16:14:12 FireFly: definitely, most people only learn that lesson until they've already lost one set 16:14:20 And I havn't been there 16:14:21 ehird: surely it depends on how near the EMP attack is? 16:14:28 and how strong 16:14:28 ais523: I've lost data before, but it wasn't vital 16:14:36 (Just some music, the drive partially made some files vanish) 16:14:50 how did the drive manage that? 16:14:50 ais523: considering it would wipe out infrastructure... 16:14:54 also, dunno 16:14:56 it was in my old computer 16:14:58 very dusty 16:14:58 CD ROM should be a pretty good backup 16:14:59 bashed around a lot 16:15:02 dropped a few times 16:15:04 I'm sufficiently old I've lost data due to bad sectors on floppy disks 16:15:05 never maintained 16:15:06 etc 16:15:09 and I don't mean CD-R. But CD-ROM 16:15:14 quite a difference 16:15:25 AnMaster: not really 16:15:27 the second computer I used didn't have a sufficiently large hard drive to store the things I did, so I stored everything on floppies instead 16:15:28 ais523, I have too 16:15:30 you can snap a disk trivially 16:15:40 I've done it in seconds 16:15:45 ehird, well assuming it is stored in a dry protected place 16:15:48 disk splinters everywhere :| 16:15:52 * impomatic backs up to memory sticks 16:15:55 I was kind of stupid and tired. 16:15:57 ehird, I mean, EMP wouldn't be much of an issue 16:16:01 ehird: it's relatively hard to snap them accidentally, it's easy but not easy to do accidentally 16:16:09 indeed 16:16:16 my hands stung a bit after snapping that disc :D 16:16:18 impomatic: anyway, I had to spend ages cleaning up after your quit message last time 16:16:27 I'm not really evolving as fast as the technology does. I'm fine with my 512 MB Mp3 player, I don't need no more 16:16:27 it was threatening to overwrite the logs 16:16:29 uh 16:16:35 ais523, what was that quit message? 16:16:42 AnMaster: a redcode quine 16:16:48 hah 16:16:49 that ran itself immediately after printing 16:16:56 known as an "imp" 16:16:58 What quit message? 16:17:00 thus presumably impomatic's username 16:17:13 Aha :-) 16:17:27 and I'm not sure I knew enough offhand redcode to write an imp-gate to stop it 16:17:39 I forgot about that. Cool that the logging software runs redcode 16:17:52 jmp #0, <-5 should stop it next time 16:17:53 I don't think it does 16:17:59 -!- jix has joined. 16:18:02 ais523: clog rebooted yesterday or the day before 16:18:07 and the mysterious nef was online 16:18:11 It was yesterday, yeah 16:18:15 for the first time since 2000 16:18:17 IIRC 16:18:20 or 2004 or something 16:18:20 but I'm trying to be sure 16:18:22 ages ago, anyway 16:18:30 you never know when the logging software might suddenly become Turing-complete 16:18:40 I have a proper redcode Quine actually, 170 instructions. I just need to recompile the MARS to run programs longer than 100 lines :-) 16:18:53 clog is pretty good, it's pretty stable 16:18:55 that needs a recompile? I thought the limit was just there to stop people cheating 16:18:57 Who's nef? 16:19:02 impomatic: see log link 16:19:02 impomatic: the person who keeps the logs 16:19:07 apart from that, we don't know anything about them 16:19:15 no idea why they're logging the channel, for instance 16:19:18 ais523: apparently the tunes.org server admin administers it now 16:19:22 Oh, I see :-) 16:19:25 also, lament or someone asked 16:19:43 Wait, we don't know _why_ they're here, logging our channel? ;o 16:20:06 I've finished Redcode Forth. It's currently doing well on the programming reddit. There's also an article on there about OISC. 16:20:49 wow, I read proggit from time to time but somehow I missed that 16:21:11 This is completely pointless and has no real world application. I love it! 16:21:18 Well it's handy to have logs as evidence! :-) 16:21:18 only one comment, I may as well copy it here 16:21:21 a while ago I was going to link impomatic to an article I saw on reddit last year about someone implementing a bunch of algorithms like from TAOCP in redcode, but then I clicked the link again and saw it was him :D 16:21:25 haha 16:21:34 did you link him anyway? 16:21:36 I would have 16:21:40 haha, not that I recall 16:21:44 Where's that? ;-) 16:21:52 impomatic: it just linked to impomatic.blogspot.com 16:22:02 I implement another ever now and again. 16:22:49 org euclid+2 16:22:50 euclid mod.ab #a, #b 16:22:50 impomatic: I like your descriptions of esolangs, very clear 16:22:51 mov.x euclid, euclid 16:22:53 jmn.a euclid, euclid 16:22:55 I didn't realise that was so simple 16:22:56 I ought to finish off Heap sort. It's about 70 instructions though, 4 times longer than anything else. 16:23:11 Quicksort and Combsort are both under 20 instructions 16:23:12 how long is mergesort in redcode, I wonder? 16:23:32 I might tackle merge sort. 16:23:39 I love redcode, actually, it's a sort of anti-esolang 16:23:46 it occurs to me that sorting arrays is a pretty rare operation. 16:23:53 I haven't quite figured in-place mergesort 16:23:55 -!- Judofyr has quit (Remote closed the connection). 16:24:01 and most of the time your values have a trivial mapping to integers, so you should just use one of the non-comparison sorts 16:24:04 like, wossname, bucket sort? 16:24:21 yep 16:24:41 anyway, recently I was sorting a large list of words ordered by the words with letters sorted into alphabetical order 16:24:48 sort of a lookup table for anagrams 16:24:50 letters have a trivial isomorph to integers. 16:24:53 so there are uses 16:24:53 :P 16:24:56 letters do, but words don't 16:25:00 oh, true 16:25:06 or, they do, but they're sufficiently large that bucket sort would be very inefficeint 16:25:07 still, that's quite a rare cas 16:25:07 e 16:25:09 *inefficeint 16:25:24 If I was making a standard library, I would have 'sort : (a -> int) -> [a] -> [a]' 16:25:35 and 'genericSort : {comparable a} [a] -> [a]' 16:25:42 or similar 16:27:34 also, it turns out that strongly typing OOP duck-typing is easy. 16:27:48 for instance: 16:27:49 hello : 'a = {(+) : 'b -> 'c} -> 'b -> 'c 16:27:50 hello a b = a + b 16:28:01 trying to figure out how to do that with multi dispatch 16:29:03 ehird: does that collapse into a '_a sort of type? 16:29:10 or does it stay fully polymorphic? 16:29:18 fully polymorphic 16:29:23 assuming + is a message, ofc. 16:29:25 pretty impressive 16:29:30 ocaml pretty much does the same 16:29:32 and yes, that's pretty clear from your syntax 16:29:42 for multi dispatch, well, it's harder 16:29:45 because you dispatch on all arguments 16:29:47 here's my attempt: 16:30:07 * ais523 suddenly wonders what unassignable compiled into ocaml would look like 16:30:09 hello : { (+) : 'a -> 'b -> 'c }. 'a -> 'b -> 'c 16:30:09 hello a b = a + b 16:30:31 so { } is a "context", basically meaning 'for the multi dispatch methods satisfying...' 16:30:44 ais523: oh, I might try that 16:30:46 wouldn't be hard 16:30:50 I doubt it would be 16:33:25 ais523: unfortunately, 16:33:25 avg : { length : 'a -> 'b; (/) : 'b -> 'c -> 'd; sum : 'a -> 'c } 'a -> 'd 16:33:25 avg lst = length lst / sum lst 16:33:31 you pretty much end up repeating the function body 16:33:46 that's to be expected 16:33:53 OMG 16:33:59 why the OMG? 16:34:00 The new version of D 16:34:02 is 100% open source 16:34:06 fully buildable dmd 16:34:08 wasn't the old version? 16:34:13 ais523: not all of it 16:34:22 the frontend and some of the backend, iirc 16:34:26 but there was some code from other places 16:34:30 that couldn't be relicensed 16:34:37 but finally it's fully open source 16:37:50 gr, this is irritating 16:42:47 why is this brokennn 16:43:39 Oh. 16:43:44 Grah. 16:43:49 Depends on gnu sed, I think. 16:44:03 ifdef LIB_PACK_NAME 16:44:04 FOR_PACK_NAME := $(shell echo $(LIB_PACK_NAME) | sed -e 's/^\(.\)/\U\1/') 16:44:06 endif 16:44:09 Why must people not test on BSD 16:44:39 does BSD sed have arbitrary limits 16:44:51 ais523: is that a reference 16:44:51 ? 16:45:25 that's a backrefence, yes 16:45:30 I thought all seds did that, though 16:45:36 i meant 16:45:41 16:44 ais523: does BSD sed have arbitrary limits 16:45:44 is that a reference to something 16:45:49 no, it isn't 16:46:01 % sed -e's/^\(.\)/\U\1/' 16:46:01 a 16:46:02 Ua 16:46:04 some old versions of sed couldn't handle more than a certain amount of text at once 16:46:08 thus causing my Usexplib problem 16:46:25 \U is a perlism for translating into uppercase, I wonder if GNU sed has it too? 16:46:34 ah, yes 16:46:36 definitely 16:46:39 since it should be Sexplib 16:46:49 now, I'd loathe to install gsed, and I can't modify omakefile 16:46:54 err, ocamlmakefile 16:46:58 so ... hm. 16:52:24 ais523: any suggestions> 16:53:03 write your own wrapper for sed that specifically traps that line, and put it higher up on your PATH? 16:53:27 I would not be surprised to find more gstupidity. 16:53:42 well, replace it with an s2p followed by perl layer, then 16:53:48 Maybe I should create /usr/local/hell. 16:53:51 Containing gnu tools. 16:53:52 a sort of perl-sed which is more likely to be GNU-sed compatible 16:53:59 And tell godi to put it on its path. 16:54:06 you seem to really dislike gnu tools for some reason 16:54:07 bloar/ 16:54:09 *bloat? 16:54:33 I'd dislike them less if software didn't rabidly depend on them when I preferred bsd tools 16:54:52 Sort of like how Windows would be a bad OS but not really that bad if it wasn't so ubiquitous 16:55:18 [ehird:~] % s2p -e 's/^\(.\)/\U\1/' >x.pl 16:55:18 [ehird:~] % perl x.pl 16:55:19 sexplib 16:55:21 Usexplib 16:55:27 ugh 16:55:33 that really is a bad sed script, then 16:57:24 Hmm... 16:57:41 install gsed as /opt/local/bin/sed, then alias sed='/usr/bin/sed' in zsh? 16:59:11 -!- BeholdMyGlory has joined. 17:00:16 -!- Judofyr has joined. 17:02:44 * ais523 is very impressed with impomatic's print-in-decimal code 17:03:38 it's a pretty simple algorithm, just everything looks more impressive when written in redcode for some reason 17:03:43 Is FP implemented? 17:03:51 floating point, no 17:03:56 Function Programming. 17:04:01 Backus's apology for Fortran. 17:04:02 http://en.wikipedia.org/wiki/FP_programming_language 17:04:05 oh 17:04:21 * ais523 misread wikipedia as esolang somehow 17:04:24 :D 17:04:47 ais523: which print in decimal algorithm? I think there are 3 on there. Recursive, interative, and one which can also do any number base 17:05:27 the one in your forth program 17:05:32 I was just shocked at how short it was 17:05:35 in a lang looking like asm 17:05:39 redcode does that to me 17:05:50 redcode is far superior to x86... 17:05:53 Scary. 17:06:04 I imagine it would be a real pain to implement in hardware 17:06:26 Conventional programming languages are growing 17:06:26 ever more enormous, but not stronger. Inherent defects 17:06:27 at the most basic level cause them to be both fat and 17:06:29 weak: their primitive word-at-a-time style of program- 17:06:31 ming inherited from their common ancestor--the von 17:06:33 Neumann computer, their close coupling of semantics to 17:06:35 state transitions, their division of programming into a 17:06:37 world of expressions and a world of statements, their 17:06:39 inability to effectively use powerful combining forms for 17:06:41 building new programs from existing ones, and their lack 17:06:43 of useful mathematical properties for reasoning about 17:06:45 programs. 17:06:47 Yikes, flood. 17:06:49 Sorry. 17:06:51 Didn't know PDF linebreaks were, y'know, real. 17:07:26 pdf is a strictly presentational language 17:07:34 Yeah. 17:07:35 I hate pdfs. 17:07:40 x86 http://assemb.atspace.com/printdec.txt 17:07:41 my client warns me about unexpected linebreaks in what I'm pasting, it's usual 17:07:48 So does mine 17:07:52 but it doesn't tell me how many 17:07:57 just shows me a multi line edit form 17:07:57 I mean, there are quite often unexpected linebreaks 17:08:02 and I entered it away too quick 17:08:06 impomatic: impressive 17:08:07 and mine just gives me a line count with a yes/no option 17:08:26 erm 17:08:27 impomatic: 17:08:28 call printdec 17:08:31 shouldn't that be 17:08:32 jmp printdec? 17:08:36 it's a tail recursion... 17:08:58 did impomatic write that one, I wonder? 17:09:04 yes 17:09:04 ah, yes 17:09:13 the main page is in the style of corewar.co.uk, and his name is on it 17:09:28 also, he's right here y'know 17:09:36 yes, I nkow 17:09:41 I nkow too 17:09:41 I saw the name 17:09:46 *know 17:09:53 and was wondering if it was impomatic 17:09:56 nkow: To nkep in a ow sort of way. 17:10:12 No, can't be changed to printdec. Yes, that's another of my pages! :-) 17:10:13 that's, like, a double abbreviation 17:10:32 hmm 17:10:42 why can't call at a tail position be turned into a jump...? 17:10:54 also, is that PUTCHAR for dos or linux or? 17:11:03 ugh, the first Google result for nkep is actually the correct meaning 17:11:07 DOS 17:11:28 although the fifth version is the one that actually defines it 17:11:29 ais523: for me, it suggests nkdep, and shows the top two sesults for that 17:11:32 *result 17:11:34 before the agora results 17:11:39 well, yes, but those don't count 17:11:55 wow, http://jmcteague.com/mediawikiold/index.php?title=Nkep&redirect=no looks so much like vandalism 17:12:04 [[So you are denying the existence of nonsensical action? Over 50 17:12:05 million idiots in this world prove you wrong every day.]] 17:12:07 --bobthj 17:12:11 but "nkeplwgplxgioyzjvtxjnncsqscvntlbdqromyeyvlhkjgteaqnneqgujjpwcbyfrpueoydjjk" bears a strong resemblence to its actual definition 17:12:16 impomatic, err, why does using DOS prevent you from jumping? 17:12:18 I wonder what politically motivated thing he's referring to. 17:12:27 AnMaster: SCROLLBACK. 17:12:32 also, is that PUTCHAR for dos or linux or? 17:12:35 ais523: that isn't vandalism 17:12:36 ah 17:12:38 that's iammars's site 17:12:43 ehird: I know 17:12:46 ah 17:12:52 that's why I said it /looked/ like vandalism 17:12:56 even though I know it's probably not 17:13:04 on the other hand, if someone did vandalism that string, would you ever know? 17:13:12 *vandalise 17:13:14 vandalism is a verb! :D 17:13:25 The routine builds a list of digits on the stack, which are then popped off and printed. 17:13:38 ah, so it's non-tail recursin 17:13:50 ah 17:13:54 but 17:14:00 hmm 17:14:02 oh right 17:14:06 you need call's stack effects 17:14:16 It can be made iterative, but that is 2 bytes longer. 17:14:36 you could make an iterative one that iterates backwards. I wrote one, The max space you may need is rather trivial to calculate iirc. 17:14:39 * AnMaster looks for the code 17:15:13 right. My code is for any base 0-36 and in C 17:15:18 err 17:15:20 1-36 17:15:33 .. the whole point is to be short. 17:15:49 Not bases <= 0 ? :-( 17:15:57 minus bases rock 17:15:58 everyone loves negative bases 17:16:05 besides, bases 0-36 and in C is trivial 17:16:06 http://rafb.net/p/o7Da1r12.html 17:16:08 although you need negative digits 17:16:11 -> negative strings 17:16:11 because there's a standard library function for doing that 17:16:18 umm.... 2-36, probably 17:16:23 what does base 0 mean, anyway? 17:16:28 AnMaster: http://pastie.org/408471 17:16:28 even base 1 = unary is dubious 17:16:38 ais523, I just followed BASE spec 17:16:39 ais523: highly dubious, base 1 is useless 17:16:41 it's all 0 17:16:48 ehird, make an automatic rafb repaster bot 17:16:50 ehird: agreed 17:16:50 :P 17:16:58 AnMaster: It'll do that, then spam you with messages. 17:17:04 /notices, to be precise. 17:17:11 Your choice 17:17:12 ehird, I can ignore them easily 17:17:19 *shrug* 17:17:22 Not if it makes 100 clones over proxie. 17:17:23 proxies. 17:17:29 ehird, anyway, I need to paste from command line. 17:17:34 as in wgetpaste 17:17:47 so? you can script that trivially 17:17:50 ehird: then we just get freenode to ban oyu 17:17:56 for spamming someone with 100 proxies 17:17:57 ehird, yes, I already have a working script 17:18:01 ais523, indeed 17:18:01 ais523: so I use a proxy :P 17:18:20 -!- Slereah has joined. 17:18:23 AnMaster: you write hex in lowercase? 17:18:39 ais523, why shouldn't I? 17:18:48 ais523: negative bases digit sets use your negative strings 17:18:48 :D 17:18:51 no real reason, I'm just surprised 17:18:56 ehird: haha! 17:19:01 ais523, BASE is RC/Funge, so it isn't that well defined anyway 17:19:19 what does it define bases 0 and 1 as? 17:19:38 ais523, reflect iirc. in mycology BASE is *all* UNDEF 17:19:46 hahahaha! 17:19:54 so what's the point of testing it, then? 17:19:57 to see what it does? 17:20:17 ais523, yes, and it is partly UNDEF because there is no way the program can verify it itself 17:20:26 since it only goes to output 17:21:00 -!- jix has quit (Connection timed out). 17:21:17 ais523, anyway my implementation is CCBI compatible, though different code. IIRC CCBI used some D string format stuff which could do any base 17:21:32 wow, is that underspecified 17:21:41 "Output n in base b" 17:21:57 ais523, well, it doesn't say iirc what range is valid 17:22:02 no, it doesn't 17:22:06 what I just wrote is the /entire definition/ 17:22:12 indeed 17:22:21 ais523, and that could vary a lot 17:22:40 base 2-16 are pretty well defined, by common practise. But apart from that... 17:22:54 meh, that's not too unspecified 17:23:29 My 8086 code for IEEE multiplication is more accurate than my processor. The processor rounds incorrectly about 1 time in 3 billion 17:23:42 impomatic, um, for specific values I guess? 17:24:07 impomatic, also that isn't strange. x87 is using 80 bits internally 17:24:38 impomatic, use SSE2 to do it, and you will get IEEE iirc 17:24:43 I didn't check the range of values... just ran it for a day and then compare some of the discrepancies. 17:25:18 impomatic, this was using float or double? 17:25:23 also what specific CPU? 17:25:26 I checked the results by hand and re-read the spec and it turns out the processor is wrong. 17:25:52 as well as, what exact instructions were you using for the CPU floating point 17:26:11 and what FPU flags did you have set... If you used x87 17:26:26 yeah impomatic can remember all these minute details from years ago 17:26:28 who can't 17:26:40 I didn't know it was years ago 17:26:52 he said 8086 17:26:58 that's not very modern 17:27:10 ehird, I know people using C64 for fun these days 17:27:18 for nostalgia 17:27:19 and such 17:27:27 ehird, your point was? 17:27:36 -!- Slereah_ has quit (Connection timed out). 17:27:40 8086 isn't very nostalgaic 17:27:45 it's just an old x86 17:27:50 the first one 17:27:50 nothing much special 17:27:56 8086 makes me nostalgic for the old versions of DOS 17:28:01 see! 17:28:04 that's DOS nostalgia 17:28:09 not 8086 nostalgia 17:28:16 Intel Celeron 600Mhz, can't be more specific. Single precision. 17:28:16 yes, I know 17:28:25 ais523, wasn't it FOS back then rather? 17:28:28 but the 8086 is a nostalgia-trigger for me 17:28:30 AnMaster: ? 17:28:37 Floppy Operating System 17:28:38 I prefer Z80 17:28:38 ;P 17:28:46 A floppy is a disk. 17:28:55 impomatic, "Intel Celeron 600Mhz" != "8086" 17:28:56 ... 17:29:05 and then ehird's argument is even more void 17:29:07 (So is an HD. A cd-rom is a disc though.) 17:29:14 AnMaster: no, because that's even less special 17:29:21 and so less nostalgiac 17:29:40 ehird, I use a Pentium 3 as a file server. 17:29:49 well, you're bonkers. 17:30:10 ehird, No I'm just not rich 17:30:25 yes but pentium 3? 17:30:38 ehird, yes, I had one around. A waste to throw it away 17:30:39 ehird: file servers don't need a fast processor 17:30:43 true 17:30:48 but a pentium 3 in _anything_... 17:30:52 indeed. All it does is serve NFS from two IDE disks 17:30:58 ehird, better than Pentium 4 17:31:02 I think I have some even older computers lying around 17:31:08 I've got a computer which used to run windows 3.1 17:31:14 ais523, I have some old world macs. 17:31:18 but both the Windows and the DOS on there have died to bitrot 17:31:23 a pentium 3 isn't better than a pentium 4... 17:31:25 well one pre-PPC 17:31:30 ehird, it is. in fact. 17:31:36 i disagree. 17:31:38 ehird, consider the pipeline stall 17:31:44 that's one aspect. 17:31:44 see logs from today 17:32:19 ehird, Pentium 4 also stalls badly at context switch 17:32:38 just FYI 17:33:08 I have about 40 old computers lying around. Several Z80 computer (z80, amstrad, msx) a few 6502, 6809 machines, one 8085 and others I haven't got a clue about. 17:33:20 I have a Hektor II and a Cray OWS :-) 17:33:29 oh and stalls a bit at syscall() too, it was worse when linux used interrupts, with 2.6 kernels it uses SYSENTER/SYSEXIT SYSCALL/SYSRET (forgot which is intel and which is amd) 17:33:39 which stalls less badly on Pentium 4 17:34:03 impomatic, CRAY! :D 17:34:19 this laptop's a celeron M, I have no idea if that's good or bad 17:34:22 ehird, in any case a P4 uses more power than a P3 too 17:34:31 and finally 17:34:36 I don't have a P4 17:34:47 I did have one years ago. it overheated in the end 17:34:50 i had a p4 way back. 17:34:50 even with a huge fan 17:34:54 it sucked! 17:34:59 yes 17:35:02 p4 sucks 17:35:05 i also had 15 inches. 17:35:07 of monitor, that is. 17:35:09 ... 17:35:12 afk food 17:35:18 AnMaster: all my previous processors sucked too, though. 17:35:23 the p4 was a mild improvement. 17:37:01 Huh, I knew haskell in 2007. 17:39:08 The Cray isn't a supercomputer, although it's the size of a washing machine, has 12 huge fans and 8 processors. 17:39:21 impomatic: However, it CAN execute an infinite loop in 6 seconds. 17:48:11 Sure, but so can your FACE. 17:48:29 :'( 17:49:20 ehird: 2 seconds according to answers.com 17:49:39 no, 6 17:49:43 was the original 17:49:59 the same search let me find this: http://stackoverflow.com/questions/367571/detecting-infinite-loop-in-brainfuck-program 17:50:14 which is interesting, and also contains some really stupid beliefs about infinite loops 17:50:22 "EDIT: I do know that the halting problem is unsolvable in general, but I was not sure whether there did not exist special case exceptions. Like, maybe Matlab might function as a Super Turing machine able to determine the halting of the bf program. I might be horribly wrong, but if so, I would like to know exactly how and why." 17:50:43 stack overflow is a hilarious cesspool of people with slightly less intelligence than jeff atwood 17:50:57 that doesn't mean it can't be interesting, if maybe in a perverse sense 17:51:13 "SECOND EDIT: I have written what I purport to be infinite loop detector. It probably misses some edge cases (or less probably, somehow escapes Mr. Turing's clutches), but seems to work for me as of now. In pseudocode form, here it goes:" 17:51:14 x_x 17:51:23 ais523: Interesting like a freakshow... 17:51:40 " Call bfexec recursively with subprog" 17:51:42 doesn't that fail on +[>+]? 17:51:43 That will never go wrong. 17:51:46 ais523: Yes. 17:52:39 Hahaha, that fails spectacularly :P 17:52:49 It'll also call this an infinite loop: +>++<[>] 17:53:07 most of the answers are surprisingly sane 17:53:27 The worst part is that you can actually have a good crack at a halting detector for BF, allowing for uncertainty for tricksy programs. 17:53:37 The sad part is, there /are/ specific cases where infinite loops are detectable, but this poor sap will never understand the distinction between "general" and "specific" at all :P 17:53:41 I'd like to see a usually-right halting oracle for BF 17:53:43 GregorR: snap 17:53:51 ais523: not usually-right 17:53:59 just right-a-good-portion-of-the-time-in-non-tricksy-cases 17:54:18 http://research.microsoft.com/en-us/um/cambridge/projects/terminator/ 17:55:32 I still like the idea of being able to submit a program with an automatically verifiable proof it always halts 17:55:42 or always spends a finite time between asking for input 17:55:47 or something like taht 17:56:01 also, the halting problem is neatly sidestepped by going slightly subturing 17:56:18 enough to express most things, but you can only loop forever if given infinite input from the outside environment 17:56:36 (if you want to run a program that requires infinite livelihood, pipe something like 'yes' to it) 17:56:43 or rather, that'd be optimised out 17:56:46 but that's the basic idea 17:57:34 ais523: the last answer: "I have created a truly marvelous program to do this, which this textbox is too narrow to contain. " 17:58:55 ais523: same user answered with befunge on another question 17:58:59 http://stackoverflow.com/questions/62188/stack-overflow-code-golf/ 17:59:05 using '1' as a befunge stack overflow 18:00:02 ? 18:00:12 ais523: 1 pushes 1 to the stack 18:00:14 then it loops 18:00:14 you need to have a very small stack to do that 18:00:17 oh 18:00:17 so it pushes infinite 1s 18:00:19 clever 18:00:20 eventually overflowing the stack 18:00:22 '1' not '1@; 18:00:25 * '1@' 18:01:29 that befunge solution is clever, even though it's a different sort of stack 18:01:47 shortest stack overflow I can think of in INTERCAL is (1)DO(1)NEXT 18:01:55 that beats most of the submissions there 18:02:31 ais523: Ruby/Perl `$0` 18:02:41 is that, technically speaking, a stack overflow? 18:02:43 system stack overflow! 18:02:47 it's an ingenious infinite recursion 18:02:50 but it's overflowing something else I think 18:02:52 ais523: yes, because `` returns a value 18:02:56 you could do 18:03:04 puts `$0` + " and " + `$0` 18:03:05 in ruby 18:03:07 yes, but it's a different stack each tiem 18:03:13 ah, it's a number-of-stacks overflow 18:03:17 a stack stack overflow! 18:03:17 ais523: it's the stack of process children 18:03:19 yep 18:03:20 which is more of a tree 18:03:22 but still 18:04:09 someone wrote a compile-time soverflow in C++ 18:04:11 *overflow 18:04:16 I don't think it's a stack overflow, though 18:04:20 http://stackoverflow.com/questions/62188/stack-overflow-code-golf/63812#63812 18:04:24 now _that's_ cool 18:04:25 it's a type-complexity-overflow 18:04:55 heh, that's ingenious, a non-looping stack overflow 18:05:08 back 18:06:00 grr, the Scheme submissions are stupid 18:06:03 they're tailcalls 18:06:18 and all Scheme standards mandate TCO 18:07:03 irssi: 18:07:05 /eval $L 18:07:13 about infinite recursion. You can detect trivial cases of finite/infinite. In fact compiler do that to optimise better. 18:07:33 GCC can warn you about loops it can't decide about 18:07:33 thanks, we only said that 5 times before you. 18:07:33 oh right 18:07:49 ehird, I'm still reading scrollback. My comment memory is rather small 18:07:56 so I can't wait until I read it all 18:08:02 the IRC equivalent of ais523's agora posting 18:08:10 except IRC lines are a lot easier to read ahead on.. 18:08:58 ais523: how do you declare something at the gprolog prompt? 18:09:00 I forget 18:09:07 use assert 18:09:13 you need an extra pair of parens due to precedence 18:09:21 but you write assert((head :- body)). 18:09:21 uncaught exception: error(existence_error(procedure,assert/1),top_level/0) 18:09:27 sorry 18:09:28 assertz 18:09:38 (or asserta to declare it at the start of the program) 18:10:09 | ?- assertz((a(X) :- assertz(X))). 18:10:23 did that work? 18:10:27 I don't see why it wouldn't have 18:10:33 it did 18:10:39 ooh, another one small as the befunge one 18:10:40 intel 4004 18:10:41 CALL $ 18:10:44 -> ascii , 0101 0000 18:10:49 a lot faster too :P 18:10:53 http://stackoverflow.com/questions/62188/stack-overflow-code-golf/597372#597372 18:11:13 a Prolog stack overflow would be a:-a,b. 18:11:18 a stack stack overflow! <-- possible in Funge-98. 18:11:25 although you need to set compiler flags not to error on the undefined command b 18:11:25 and in a different meaning 18:11:29 ais523: or just 18:11:32 p:-p 18:11:37 that's tail-recursion 18:11:44 gprolog doesn't optimize it 18:11:47 Fatal Error: global stack overflow (size: 16385 Kb, environment variable used: GLOBALSZ) 18:11:53 WOW IT IS RUBBISH 18:11:58 LOL 18:12:04 how can any prolog interp not optimise tail-recursion? 18:12:06 that was unexpected 18:12:06 if { can't allocate another stack in the stack-stack it is required to reflect though, so it doesn't fail at overflow 18:12:28 it's the only general way to do looping in prolog 18:12:37 apart from assert/retract in a backtrack loop, which is insanely ugly 18:12:38 [ehird:~] % GLOBALSZ=-1 gprolog 18:12:38 Fatal Error: global stack overflow (size: 1 Kb, environment variable used: GLOBALSZ) 18:13:00 ais523: 18:13:04 p :- print(hi), p 18:13:05 works 18:13:06 just not p :- p 18:13:30 wait, no 18:13:32 ok, that's even weirder 18:13:33 it just takes longer to overflow 18:14:15 anyway, gprolog's the only interp for any language I know of, other than OIL which doesn't count, which can crash because it's run out of strings 18:14:30 hahahaha 18:14:30 I mean, running out of strings is a dubious concept anyway 18:15:28 ais523, it has a fixed size string pool? 18:15:37 yes 18:16:24 technically current erlang versions can run out of atoms. But the limit is a few millions iirc, and someone said it will most likely go away in the next major release 18:17:03 + you can change the limit with some obscure command line option iirc 18:17:44 "The maximum number of atoms is 1048576." (in R12B-5) 18:18:13 http://www.erlang.org/doc/efficiency_guide/advanced.html#9.2 18:18:19 ehird: try running setof(Property,atom_property(Atom,Property),PropertyList). at the gprolog repl 18:18:26 and use ; to run through the results 18:18:29 ... is that russel's paradox? 18:18:32 no 18:18:38 it returns the string pool, and data about it 18:18:43 ha 18:18:52 really amusing is that some of the strings in the pool are filenames on the computers where it was defined or edited 18:18:55 ais523, that seems strange 18:19:01 Atom = '/home/diaz/GP/src/src/BipsPl/dec10io.pl' 18:19:01 PropertyList = [needs_quotes,hash(458243),length(39)] ? 18:19:18 ais523, strange... 18:19:37 AnMaster: GNU Prolog is crazily reflective 18:19:54 | ?- setof(Property,X,Y). 18:19:54 uncaught exception: error(instantiation_error,setof/3) 18:19:56 yeah 18:19:56 o_O 18:20:02 even more so than the standard portable version, which is also crazily reflective 18:20:05 ehird: why is that o_O? 18:20:10 idungeddi 18:20:13 t 18:20:21 that's "for all commands, run that command and return the set of results" 18:20:31 ais523, still don't you think running out of atoms is a bit funny? 18:20:36 AnMaster: yes I do! 18:20:43 18:20 ais523: that's "for all commands, run that command and return the set of results" 18:20:43 so? 18:20:45 i tshould do it! 18:21:03 would work in my language 18:21:04 > x 18:21:06 x = 0 18:21:07 x = 1 18:21:09 (forever) 18:21:13 x = {} 18:21:15 x = {0} 18:21:17 x = {1} 18:21:18 (forever) 18:21:20 x = {0,0} 18:21:22 (etc) 18:21:26 .. 18:21:27 most Prolog interpretations have some restrictions on what they can do 18:21:36 insane things are very easy to write in Prolog 18:22:24 I'd also have (crash = 1/0) 18:22:29 for error reporting. :P 18:22:41 surely running all commands would cause an exception before long? 18:22:48 ais523: ooh, that's a good idea 18:22:49 ais523, the reason erlang can run out of atoms currently is that for speed reasons it maps each atom to an integer internally. Type tagged in some way of course. 18:22:53 in fact, how did you know it didn't work? 18:22:53 then 18:23:00 maybe the first command it ran caused an instantiation_error 18:23:07 AnMaster: same reason in Prolog 18:23:15 except the pool seems smaller 18:23:21 isa(crasher(x), _) 18:23:25 crasher is all functions 18:23:33 although I'm not sure that would be valid code 18:24:03 ah, no 18:24:05 that'd just define x 18:24:06 not crasher 18:24:08 eval(_) should work 18:24:14 eval(x) would work 18:24:16 ais523, it also has some lookup table for it. Anyway the limit is too large for any sane program to hit. Oh and atoms are in the current version never removed from said table. Plans are to change that in the future. 18:24:18 but it'd just evaluate boring things 18:24:19 like '' 18:24:21 '\0' 18:24:21 etc 18:24:24 you'd want 18:24:37 ais523, that is garbage collect the atom ids. 18:24:39 some sort of 18:24:49 wow, it seems that Erlang copied some of the deficiencies of Prolog as well as some of its advantages 18:24:56 isa(x,string); try(eval(x), 'error') 18:25:05 ais523, How do you mean? 18:25:05 note: cannot distinguish errors from programs outputting 'error' :P 18:26:09 http://blog.wolfram.com/2009/03/05/wolframalpha-is-coming/ <- Puh leez. 18:26:13 ais523, oh and erlang seems more useful in "real world". I mean from what I understood, and I may be wrong, Prolog is a bit like Scheme: both languages are very nice and such, but aren't very easy to use for anything practical. 18:26:19 at least in a portable way 18:26:34 "You've got a Turing complete language and a toy model of complexity. That oracle will practically write itself!" --reddit. 18:26:52 scheme is very practical. 18:26:57 -!- olsner has joined. 18:26:58 just not for networked applications, or the like. 18:27:15 there are plenty of standalone, {file,keyboard}-to-{file,stdout} programs 18:28:05 ais523: "We're making early access available to a few select individuals. Contact us for information »" 18:28:05 I will totally write "dong" in it 18:28:11 you must apply :P 18:28:17 um 18:28:21 what is NKS? 18:28:27 in that link ehird posted 18:28:35 new kind of science, Wolfram's ego in book form. 18:28:44 ah 18:28:44 right 18:29:00 although the classification book is more generous, let's say "dead tree". 18:29:07 s/more/too/ 18:29:25 Oh you. 18:31:05 http://www.theonion.com/content/node/34168 18:31:24 http://blog.wolfram.com/2009/03/05/wolframalpha-is-coming/ <- Puh leez. <-- so, what do you think about it? 18:31:48 AnMaster: Wolfram is pioneering his revolutionary new "Masturbate direct to a web page" technology. 18:32:03 ehird, cuil fail? 18:32:13 Oh, cuil is at least amusing. 18:32:18 This will probably just be pathetic. 18:32:21 ah 18:32:57 I actually knew it was coming, but had to keep it a secret 18:33:14 Really, reading about it 18:33:23 It sort of reminds me of EsCo :o 18:33:26 Iunno why 18:33:29 ais523: LOL, since when 18:33:33 * impomatic wonders why the corewar subreddit has been banned :-( 18:33:38 impomatic: o_O it has? 18:33:39 for ages 18:33:44 Let's torture ais523 for more secrets 18:33:53 ais523: how could you keep the excitement in you?! 18:34:07 ais523, how did you know about it? 18:34:18 Slereah, good idea 18:34:30 one of the wolfram people was talking to me and showing it off 18:34:37 I even suggested a couple of changes 18:34:40 So... what does it do? 18:34:48 ais523, does it fail badly? 18:34:48 Slereah: it searches KNOWLEDGE ITSELF!!!!!!!1111111 18:34:50 read the wolfram blog description 18:34:58 So it's wikipedia? 18:35:01 no 18:35:02 :D 18:35:09 http://www.reddit.com/r/corewar/ 18:35:11 ais523, it actually works? 18:35:16 it's like wikipedia but useless! 18:35:21 ais523, it works well? 18:35:28 impomatic: I'd try the feedback 18:35:29 it's not really like wikipedia 18:35:34 it's more like google calculator + insane 18:35:41 + ego 18:35:49 ais523, so is it fail or not? 18:35:58 impomatic: you could start a new one called "raweroc" or something temporarily 18:36:11 AnMaster: its failure status is covered by his NDA. 18:36:19 why was corewar reddit banned, anyway/ 18:36:24 ehird, he didn't say so 18:36:25 that;'s what he's asking 18:36:28 AnMaster: it was a joke 18:36:44 ehird, which line was a joke 18:36:44 I didn't actually sign an NDA, it was an informal agreement 18:36:54 18:36 ehird: AnMaster: its failure status is covered by his NDA. 18:36:57 but I didn't really see enough to tell much more about it than what's been announced 18:37:07 :-) 18:37:10 ais523: with less hyperbole, I assume? 18:37:15 ehird, ah ok. "It" could have meant one of ais523's comments too 18:38:13 ais523: so, is it fail? 18:39:02 you'll see 18:39:29 you'd think that'd be a vague enough question to answer 18:39:45 * AnMaster agrees with ehird 18:39:49 "All one needs to be able to do is to take questions people ask in natural language, and represent them in a precise form that fits into the computations one can do." 18:39:55 from the Wolfram blog 18:40:07 ais523, yes, that implies fail 18:40:12 ais523: so it takes mathematica expressions? 18:40:15 and EVALUATES THEM?! 18:40:15 :D 18:40:27 ehird: it is certainly capable of doing that 18:40:27 holy shiiiiiiii 18:40:32 wow 18:40:35 can it make toast 18:40:39 if it can, I'm sold 18:40:47 will it cost money? 18:40:49 or be free 18:40:54 both 18:41:05 no idea about that, they changed the name since I last saw it 18:41:07 where did it say that? 18:41:13 * AnMaster looks for it in the blog 18:41:14 what was it called? AMAZINGWIN? 18:42:14 anyway, the biggest clue about what they expect it to be used for is "But if one’s already made knowledge computable, one doesn’t need to do that kind of natural language understanding.", I think 18:42:26 or maybe "Pulling all of this together to create a true computational knowledge engine is a very difficult task." 18:42:32 what the fuck does that mean 18:42:37 it's so vague scigen could have made it 18:42:44 scigen? 18:42:47 http://en.wikipedia.org/wiki/SCIgen 18:43:14 "Let’s say we succeed in creating a system that knows a lot, and can figure a lot out." is maybe an even better description 18:43:35 ais523: they created strong AI? 18:43:43 Enslaved 5 thousand chinese teenagers to answer the queries? 18:43:52 nah 18:44:05 Wolfram personally answers all input? 18:44:18 anyway, they probably had a reason for not telling anyone what the hell it's about, so I'll shut up now 18:44:40 Get the thumbscrews, we'll get the truth out of him! 18:44:59 ais523: I'm pretty sure the reason was "Wolfram is a megalomaniac theater director"... 18:44:59 either that, or they just have insanely bad marketing 18:45:45 yep, a web search about it reveals people saying, "that's too vague, it must just be an appetiser" 18:46:19 wait 18:46:20 http://motls.blogspot.com/2009/03/wolframalpha-central-brain-of-mankind.html 18:46:23 "central brain of mankind" 18:46:23 that sounds like Apple 18:46:23 XDDD 18:46:29 about future products 18:46:30 vague 18:46:36 rumors 18:46:43 AnMaster: apple are _silent_ about future products, except via rumours 18:46:49 ehird, ok true 18:46:52 that is a difference 18:46:53 and most often those rumours are ridiculously precise 18:47:05 ehird, you mean intentionally leaked? 18:47:16 possibly :P 18:48:22 ais523: one question -- is it actually something new that works? 18:48:26 surely that's vague enough to answer... 18:48:40 that blog: "Once you'll be able to open www.wolframalpha.com, it will be ready to convert every question of yours, formulated in a natural language, into a well-defined computational format that represents the natural language." 18:48:48 it's a NLP? 18:48:58 English -> Mathematica... 18:48:59 ? 18:49:02 and "The Central Brain of Mankind will search all (so far only millions of lines of) possible algorithms, methods, statements, and all (so far only trillions) of curated data that exist on the Internet, combine them and recombine them in all conceivable ways, and answer your question." 18:49:07 ok, I think that's clear enough 18:49:20 it's clear if you deal in marketing bullshit and vagueities 18:49:28 it compiles English into Mathematica, and then combines it with a massive database 18:49:42 right, right, nothing special 18:49:48 plus a few other miscellaneous things which probably they've dropped by now because they struck me as ridiculous ideas at the time 18:49:50 wait 18:49:55 specifically, the NLP is probably awful 18:49:56 but they haven't been mentioned yet so I won't tell 18:49:57 quantum computer? 18:49:57 like terrible awful. 18:50:00 AnMaster: no 18:50:04 "combine in all possible ways" 18:50:19 surely only a quantum computer could do that for such a large data set 18:50:25 are they renting out google's servers? :P 18:51:08 ehird, the TLA NLP means? 18:51:14 (in this context) 18:51:24 natural language probes. 18:51:28 except with a different p 18:51:30 probes? 18:51:32 ah 18:51:33 which I'm sure you can deduce 18:51:35 processor? 18:51:37 (hint: it's "parsing") 18:51:41 ah 18:52:22 wait, if this uses the internet, then the data isn't verified correct is it? 18:52:34 that is one reason it will fail 18:52:41 you won't know what is true and what is false 18:53:03 I don't know where the dataset comes from 18:53:13 ais523, btw, how comes you were told about this? 18:53:26 he won the prize 18:53:32 AnMaster: someone working on it was interviewing me 18:53:32 presumably wolfram have spammed him ever since 18:53:35 and decided to show it off 18:53:49 mhm 18:54:00 ais523, what did you say the name was back then? 18:54:07 I didn't 18:54:13 and there were at least two possibilities 18:54:17 but they didn't choose either 18:54:24 besides, does Wolfram's internal codename for something matter/ 18:54:29 would it hurt revealing them? 18:54:34 probably 18:54:39 oh? 18:54:40 why? 18:54:55 he was told not to. 18:54:55 because there's no reason anyone should know it, really, and they might have a reason for people not to know it? 18:55:04 err, what possible reason? 18:55:06 mhm ok 18:55:19 I don't know of a reason, but I don't specifically know that there isn't 18:55:30 -!- Judofyr_ has joined. 18:55:42 we could help you find out ;P 18:56:02 using wolfram|alpha 18:56:10 "WHAT WAS THE CODENAME OF WOLFRAM|ALPHA?" 18:56:12 "PARSE ERROR" 18:56:16 "**RESET**" 18:56:17 "" 18:57:01 :D 18:57:04 actually, so ask it that when it does come out, I'd be amused to see the reply 18:57:18 Or "HOW IS BABBY FORMED" 18:57:25 why in upper case? 18:57:31 AnMaster: It's 80s technology! 18:57:39 "WHAT SETS DO NOT CONTAIN THEMSELVES?" 18:57:39 Because capslock is cruise control for cool 18:57:42 "GO TO HELL" 18:57:44 ehird, wrong. It's because it is a REAL QUERY LANGUAGE 18:57:47 "**RESET**" 18:58:17 people typing with caps lock on should do it in lowercase 18:58:29 this message and the previous were typed using caps lock 18:58:31 It's the next best thing to knowing how to use a search engine! 18:58:37 ais523, shift 18:58:43 yes, I know, that was obvious 18:59:31 I think my old mac didn't lower case on shift + caps lock 19:00:02 it only caused the non-letter keys to change (they were unaffected by caps lock) 19:00:06 new macs don't either 19:00:10 hm ok 19:00:18 IT IS QUITE NICE FOR WHEN YOU WANT DOUBLE_POWERED CAPS LOCK 19:00:24 ehird, why? And I assume apple have a reason to change it? 19:00:27 err 19:00:34 have an option to change it* 19:00:48 AnMaster: because if you hit the shift key instinctively for new sentences, yOU DON'T LOOK LIKE THIS. sEE? 19:00:50 (never try writing two different things at once) 19:00:58 also, no, it's not an option, it's a rather trivial thing really 19:01:12 ehird, oh, like there is no option to change font 19:01:20 what 19:01:33 ehird, you can't change font size in Tiger iirc 19:01:42 or was it typeface you couldn't change 19:01:45 anyway, one of them 19:01:47 for menus and such 19:02:05 You know, your valid OS criticisms would be listened to more if you didn't say ridiculous vague things that on the mostpart aren't even legitimate criticisms. 19:02:10 You do that with Windows too... 19:02:19 ehird, err see above 19:02:22 I did clarify 19:02:45 as far as I remember you can't change either font, or size, in the menus in OS X 10.4 19:02:52 I may be wrong 19:02:57 since I don't use OS X often 19:03:03 and if I am, please tell 19:03:20 "the font" 19:03:22 so very specific 19:03:30 ehird, how is it unspecific? 19:03:52 Change to Helvetica in the Apple Menu using the settings panels in OS X 19:03:53 how 19:03:55 -!- jix has joined. 19:03:59 or if it is Helvetica 19:04:02 change it to Times 19:04:06 oh, in the actual system. 19:04:09 no, you can't do that. 19:04:14 ehird, yes menus 19:04:17 how was it vague 19:04:17 well, you can. 19:04:18 it wasn't 19:04:33 ehird, not documented with standard tools 19:04:33 using tinkertools 19:04:39 AnMaster: so? 19:04:44 who gives a shit apart from you? 19:05:14 ehird, some old people can't see very well for example 19:05:19 they would need larger font 19:05:20 you can make fonts bigger. 19:05:32 ehird, and possibly a clearer type 19:05:34 typeface* 19:05:41 lucida grande is very clear. 19:06:17 ehird, for example I read recently there are some type faces optimised for people who are dyslectics. I don't think lucida grande is, but I may be wrong 19:06:36 if I was dyslexic I'd probably use the speech features 19:06:48 ehird, sure. But can you get it to read the menus? 19:06:55 yes. 19:06:57 everything 19:07:10 blind people can use OS X just fine 19:07:23 ehird, What about speech-to-text? 19:07:27 yes 19:07:31 it does speech recognition 19:07:33 I've tested it 19:08:08 I tried it. "Open Safari." *firefox opens*. "Close window." *system preferences pops up* 19:08:08 and so on 19:08:15 + it isn't available in Swedish 19:08:19 works for me. 19:08:19 only in English 19:08:24 maybe your voice is unclear. 19:08:42 ehird, still neither TTS or STT is available in Swedish 19:08:45 in OS X 19:09:03 oh well, swedes are dirty anyway. who cares about them. 19:09:28 if you are trying to be funny you aren't succeeding 19:09:30 bbl 19:09:48 err, do you realise who you are? i could say that every time you speak :D 19:09:54 -!- Hiato1 has joined. 19:13:06 -!- Judofyr has quit (Read error: 110 (Connection timed out)). 19:13:36 i wonder if snobol still exists 19:16:13 -!- Hiato1 has quit ("Leaving."). 19:20:12 i love weird languages when people actually use them for real programs 19:20:35 like java 19:20:40 practical esolanging is always fun 19:20:53 tombom: who are you, by the way? 19:20:58 I don't think I've seen you here before 19:21:48 oh nobody special, i'm new here 19:22:23 what are you interested in, esolang-wise? 19:23:04 State-of-the-art text-to-speech in Finnish sounded better than I remembered it doing. (Some EU project people asked our speech group to answer a web-based speech synthesis listener-evaluation thing.) 19:23:13 nothing special, i'm not massively into it. it's something interesting to code and i find the concepts pretty clever 19:24:49 Oh, and there was one hilarious section, where they had the speech synthesizer read completely nonsense sentences, because the aim in that part was just to evaluate isolated-word intelligibility, and context would've helped if it were real text. I'd paste some of the examples if they weren't in Finnish. 19:25:07 ^ul (aS(:^)S):^ 19:25:08 (aS(:^)S):^ 19:25:33 ^ul ((^ul )SaS(:^)S):^ 19:25:33 ^ul ((^ul )SaS(:^)S):^ 19:26:15 :-) 19:27:02 I keep meaning to add keymaker's quine to my underload page 19:28:31 Underload is such a good language for quines 19:28:56 A more impolite person might, at this juncture, remark something about that being all it's good for. :p 19:29:12 -!- Hiato has quit (Read error: 110 (Connection timed out)). 19:29:15 ^ul ((+ul )SaS(:^)S):^ 19:29:15 +ul ((+ul )SaS(:^)S):^ 19:29:25 Dog nabbit 19:29:31 Ooh. 19:29:36 If ! was the char for two interps 19:29:41 then !ul ((!ul )SaS(:^)S):^ 19:29:42 would be a forkbomb 19:30:06 if an interp can handle writing newlines 19:30:12 then you could forkbomb even with different chars 19:30:18 EgoBot used to be able to output newlines... 19:30:26 I miss Egobot. <3 19:30:30 GregorR: Psst. 19:31:13 Someone should golf the +ul/^ul loop shorter; I don't think I've seen shorter than 19:31:16 ^ul (^ul )(+ul )(~:SaS~aSaS(:^)S):^ 19:31:16 +ul (+ul )(^ul )(~:SaS~aSaS(:^)S):^ 19:31:28 that's the shortest symmetrical one I know 19:31:38 asymmetrical can be shorter 19:32:15 asymmetrical? 19:32:29 as in, one just tells the other to run a cat with its own source code 19:32:35 ^ul (^)(+)(~:S(ul )SaS~aSaS(:^)S):^ 19:32:35 +ul (+)(^)(~:S(ul )SaS~aSaS(:^)S):^ 19:32:44 That seems to have the same amount of chars. 19:32:45 ah, clever 19:33:19 ^ul (+ul butts)S 19:33:20 +ul butts 19:33:26 ^ul ((+ul butts)S)^ 19:33:26 +ul butts 19:33:40 ^ul ((+ul )SS):a~^ 19:33:40 +ul ((+ul )SS) 19:34:02 Someone may continue. 19:35:51 ^ul ((+ul )Sa(^ul )~*(:^)*a(S)*S):^ 19:35:51 +ul (^ul ((+ul )Sa(^ul )~*(:^)*a(S)*S):^)S 19:36:04 is that shorter? 19:36:07 that's an asymmetrical one 19:36:17 hoorah 19:36:35 It seems to again have the same amount, heh. 19:37:13 Maybe it's the THEORETICAL LIMIT 19:38:22 well, there must be a theoretical limit 19:39:08 ^ul ((+ul )SS):^ 19:39:08 +ul (+ul )SS 19:39:13 ^ul ((+ul )SaS):^ 19:39:14 +ul ((+ul )SaS) 19:39:18 ^ul ((+ul )SaS(:^)S):^ 19:39:19 +ul ((+ul )SaS(:^)S):^ 19:39:26 Almost, almost 19:39:30 ^ul ((+ul )SaS(S)S):^ 19:39:30 +ul ((+ul )SaS(S)S)S 19:39:34 you have to get it to prefix with ^ul when the +ul program is run, though 19:39:41 so the ^ has to end up somewhere in the result 19:39:47 oh, right 19:39:48 darn 19:40:11 Yes, about outputting newlines to fork-bomb; underload is very difficult for that, since you can hardly input newlines in IRC. 19:40:31 Underlambda will likely have sugar for output-newline 19:41:27 ^ul ( 19:41:27 ...unterminated (! 19:41:28 )S 19:41:37 Bah, it should keep reading the IRC lines following. 19:41:38 ^ul . 19:41:39 ...bad insn! 19:41:44 ^ul ...bad insn! 19:41:44 ...bad insn! 19:41:51 kimian 19:41:55 Kimian quines FTW 19:42:07 ^ul (...bad insn!)S 19:42:07 ...bad insn! 19:42:17 ^ul ((a)~:^):^ 19:42:19 ...out of time! 19:42:47 -!- Slereah_ has joined. 19:43:26 -!- impomatic has changed nick to ^ul. 19:43:40 <^ul> Hmmm... 19:43:45 ^ul (hi!)S 19:43:45 hi! 19:44:19 ^ul (:aSS:^):aSS:^ ...out of stack! 19:44:19 (:aSS:^):aSS:^ ...out of stack! 19:44:41 :DD 19:44:49 beautiful 19:45:15 ^ul (:aSS(:^):^):aSS(:^):^ ...out of time! 19:45:15 (:aSS(:^):^):aSS(:^):^ ...out of time! 19:45:27 The sense, it has none. 19:45:40 ^ul S 19:45:40 ...out of stack! 19:45:46 Hmm. 19:45:50 Shouldnt' that say underflow? 19:46:29 ^ul ^ 19:46:29 ...out of stack! 19:48:02 Hm. 19:48:04 Yes. 19:48:27 ^ul (:S^):S^ 19:48:27 :S^ ...out of stack! 19:48:44 ^ul (::S^)::S^ 19:48:44 ::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^ ...too much output! 19:48:54 Oh yes, that's the underflow message. 19:48:59 ^ul (:::aSS^):::aSS^ 19:49:00 (:::aSS^):::aSS^(:::aSS^):::aSS^(:::aSS^):::aSS^(:::aSS^):::aSS^(:::aSS^):::aSS^(:::aSS^):::aSS^(:::aSS^):::aSS^(:::aSS^):::aSS^(:::aSS^):::aSS^(:::aSS^):::aSS^(:::aSS^):::aSS^(:::aSS^):::aSS^(:::aSS^):::aSS^(:::aSS^):::aSS^(:::aSS^):::aSS^(:::aSS^):::aSS^(:::aSS^):::aSS^(:::aSS^):::aSS^(:::aSS^):::aSS^(:::aSS^):::aSS^(::: ...too much output! 19:49:06 ^ul (:::aSS^ ):::aSS^ 19:49:06 (:::aSS^ ):::aSS^ (:::aSS^ ):::aSS^ (:::aSS^ ):::aSS^ (:::aSS^ ):::aSS^ (:::aSS^ ):::aSS^ (:::aSS^ ):::aSS^ (:::aSS^ ):::aSS^ (:::aSS^ ):::aSS^ (:::aSS^ ):::aSS^ (:::aSS^ ):::aSS^ (:::aSS^ ):::aSS^ (:::aSS^ ):::aSS^ (:::aSS^ ):::aSS^ (:::aSS^ ):::aSS^ (:::aSS^ ):::aSS^ (:::aSS^ ):::aSS^ (:::aSS^ ):::aSS^ (:::aSS^ ):::aSS^ ...too much output! 19:49:20 ^ul (:::aSS^. In case you missed that: ):::aSS^ 19:49:21 (:::aSS^. In case you missed that: ):::aSS^. In case you missed that: (:::aSS^. In case you missed that: ):::aSS^. In case you missed that: (:::aSS^. In case you missed that: ):::aSS^. In case you missed that: (:::aSS^. In case you missed that: ):::aSS^. In case you missed that: (:::aSS^. In case you missed that: ):::aSS^. ...too much output! 19:49:37 ^ul (foooooo)(~:*~:^):^ 19:49:37 ...too much stack! 19:49:45 There's the stack overflow message, too. 19:50:16 ^ul (butts)(:*S):^ 19:50:17 :*S:*S 19:50:21 ^ul (butts)(*S):^ 19:50:21 butts*S 19:50:36 ^ul (butts)(~*S):^ 19:50:36 ~*Sbutts 19:50:43 ^ul (butts)(~*:S:^):^ 19:50:44 ~*:S:^butts ...out of stack! 19:51:05 fungot: What exactly do you mean with "butts out of stack"? 19:51:06 fizzie: probably chicken or gambit. i think you're supposed to smile and notice i was only joking... also im sure it'll be the best way 19:51:18 :D 19:52:11 -!- Slereah has quit (Read error: 110 (Connection timed out)). 19:53:11 -!- Asztal has quit (Remote closed the connection). 19:53:53 -!- Asztal has joined. 19:58:04 http://funcall.blogspot.com/2009/03/not-lisp-again.html 19:58:58 -!- Asztal has quit (Remote closed the connection). 19:59:01 -!- Asztal has joined. 20:05:47 back in ~1hr 20:08:07 -!- ^ul has quit ("spl #0,0 / mov.i #1,1"). 20:11:10 -!- Judofyr_ has changed nick to Judofyr. 20:15:41 back 20:18:02 -!- ais523 has quit (Remote closed the connection). 20:19:53 Kimian quines FTW <-- ? 20:20:14 ehird, what are those? 20:25:00 An error message which produces itself when run. 20:31:42 ^ul ( )(*)(~:S:*a~a~*~a*^:Sa~a*~a*^:^):^ 20:31:43 * ** **** ******** **************** ******************************** **************************************************************** ******************************************************************************************************************************** ************************************************************* ...too much output! 20:33:51 btw 20:33:53 http://www.int80h.org/strlen/ 20:39:16 ^ul (*)()(a~a*~a*^:S( )S:a~a*~a*^*a~a*~a*^:^):^ 20:39:17 * * ** *** ***** ******** ************* ********************* ********************************** ******************************************************* ***************************************************************************************** ********************************************************************************* ...too much output! 20:48:03 -!- tombom has quit ("Peace and Protection 4.22.2"). 21:07:33 ah 21:26:42 comex, modern libc uses highly optimised strlen() 21:27:18 for example glibc has different very fast optimised ones for i486, i586, i686 and so on 21:27:46 -!- Judofyr has quit (Remote closed the connection). 21:27:50 scasb isn't fastest on modern x86 21:28:01 rather a much more complex SIMD using variant is iirc 21:28:08 o_o 21:28:20 also, FUCK THIS 21:28:27 comex, fuck what? 21:28:35 I just tried to watch an episode of the daily show and it showed me about 5 30-second ads 21:28:47 huh 21:28:53 on their website 21:28:54 -!- MigoMipo has quit ("QuitIRCServerException: MigoMipo disconnected from IRC Server"). 21:28:56 fast forward? 21:29:00 you can't 21:29:06 after the end of one of them, I forgot to unmute in time, so I tried to go back ten seconds 21:29:35 I accidentally went back before the break, so it gave me a commercial and then I watched the last few seconds of the last part 21:29:48 after that, it gave me another commercial 21:30:03 and then I finally got to watch the show 21:30:06 comex, anyway asm hacks for stuff like strlen, memcpy and so on are stupid on modern systesm 21:30:08 systems* 21:30:19 why? 21:30:26 because the libc includes highly optimised variants 21:30:27 ! 21:30:29 as I said above 21:30:35 using libc will be faster! 21:30:36 doesn't that count as asm hacks :p 21:30:41 just not ones you make yourself 21:30:43 comex, not in your code 21:31:05 mmmm, not enough benefit in inlining? what if you call $function a million times 21:31:16 comex, also your code will be more portable, you don't need one asm hack for x86, one for PPC and so on. 21:31:22 as libc provides each 21:31:27 comex, glad you asked 21:31:42 comex, gcc has a builtin one anyway that it uses when possible 21:31:59 so libc one actually only ends up used when you do stuff that needs the function to be called 21:32:03 like function pointers 21:32:14 or when you use -O0 21:32:21 or possible sometimes else 21:32:36 comex, for constant string literals, gcc will compute length at compile time 21:32:55 hmm 21:33:50 comex, http://gcc.gnu.org/onlinedocs/gcc-4.3.3/gcc/Other-Builtins.html#Other-Builtins 21:33:56 that is a LOT of them 21:34:16 comex, and there are other pages with other categories 21:34:23 like vector builtins 21:34:29 also, what are you trying to convince me of 21:34:29 sync built ins 21:34:31 and so on 21:34:33 :p 21:34:49 comex, that doing stuff like in http://www.int80h.org/strlen/ is counter productive 21:34:52 on modern systems 21:35:04 http://pastie.org/408758 21:35:27 comex, looks like the one yes 21:35:27 indeed, quite unlike what that optimizing strlen article says 21:35:30 for i686 21:35:34 that's x86_64 21:35:39 ah right 21:35:44 and I tell you the glibc one is faster 21:36:00 for various reasons 21:36:04 and I believe you, which makes me wonder why doing it manually is faster 21:36:07 ah yes I should have seen it was x86_64 21:36:11 had I read it properly 21:36:18 * AnMaster sees rax now 21:37:05 comex, in any case gcc uses a builtin when it deems it better 21:37:12 which mean code is inlined 21:37:21 other compilers do it too 21:37:25 like icc and so on 21:37:32 AnMaster: so is there any builtin for "scan forever for a certain character" 21:37:44 no, I mean manually as in asm stuff versus scasb 21:37:46 http://gcc.gnu.org/onlinedocs/gcc-4.3.3/gcc/Other-Builtins.html#Other-Builtins 21:37:51 The ISO C90 functions abort, abs, acos, asin, atan2, atan, calloc, ceil, cosh, cos, exit, exp, fabs, floor, fmod, fprintf, fputs, frexp, fscanf, isalnum, isalpha, iscntrl, isdigit, isgraph, islower, isprint, ispunct, isspace, isupper, isxdigit, tolower, toupper, labs, ldexp, log10, log, malloc, memchr, memcmp, memcpy, memset, modf, pow, printf, putchar, puts, scanf, sinh, sin, snprintf, sprintf, sqrt, 21:37:51 sscanf, strcat, strchr, strcmp, strcpy, strcspn, strlen, strncat, strncmp, strncpy, strpbrk, strrchr, strspn, strstr, tanh, tan, vfprintf, vprintf and vsprintf are all recognized as built-in functions unless -fno-builtin is specified (or -fno-builtin-function is specified for an individual function). All of these functions have corresponding versions prefixed with __builtin_. 21:37:55 that lists strchr 21:37:59 which I assume is what you want 21:38:03 no, it's not 21:38:07 I don't want to stop at a null byte 21:38:22 though I suspect the speed difference is negligible 21:38:34 comex, hm. memchr with size set to max pointer - start address :P 21:38:47 AnMaster: if you saw the discussion yesterday, memchr was slower than strchr 21:38:52 with gcc -O3 21:39:53 comex, how did the generated asm differ? 21:39:54 sometime I intend to look at gcc's internals 21:39:56 they must be crazy 21:39:58 that caused it 21:39:58 AnMaster: didn't look :p 21:40:01 hm ok 21:40:05 comex, then it is hard to know why 21:40:43 comex, also how much slower? 21:40:46 did it matter? 21:41:21 comex, glibc has rawmemchr... not portable 21:41:32 and not a builtin 21:41:55 about 10ms :u 21:41:56 -!- atrapado has joined. 21:41:57 maybe 20 21:42:17 mhm 21:42:24 comex, for how many calls? 21:42:31 also rawmemchr if you don't need portable 21:42:36 about, uh, a few million or so :u 21:42:41 I think 21:42:46 also not a builtin 21:43:03 comex, that doesn't prevent inline sometimes... 21:43:18 comex, some stuff expand to macros 21:43:27 in *certain cases* 21:43:34 comex, glibc headers are pretty insane 21:43:52 as for gcc internals... Ask ais 21:43:54 he worked on them 21:44:01 when me made gcc-bf 21:44:17 uh, I'm scared 21:44:23 and for all this icc is still faster :u 21:44:40 comex, not on my AMD CPU 21:44:53 comex, btw I see one very very stupid thing on http://www.int80h.org/strlen/ 21:44:58 subecx, ecx; ECX = 0 21:45:03 that is very stupid 21:45:13 everyone knows xor is the fastest way to zero a register on x86 21:45:24 xor it with itself 21:45:40 that is even specially optimised in some x86 cpus 21:45:54 sub with itself is slower 21:46:11 at least in some cases 21:46:13 iirc 21:48:07 hey, even I knew to notice that :p 21:48:31 though I still don't know shit about x86 and it seems to me that there's a lot more shit than, say, ARM 21:48:33 :u 21:48:49 yeah, I know, not risc 21:48:58 comex, so I wouldn't trust that page too much. But it looks similar to the glibc implementation for i386... 21:49:22 AnMaster: why does x86 use push and pop so much anyway? 21:49:24 comex, actually modern x86 are RISC on the inside. They run CISC in microcode... 21:49:40 comex, register starved. x86 doesn't have a lot of registers 21:49:41 thought I read somewhere that that used to be true but not so much anymore 21:49:48 AnMaster: why? 21:50:19 is there a reason? 21:50:22 comex, iirc: 1) making register memory is expensive 2) the original 8086 and even some later models were made to be cheap 21:50:32 x86_64 double the register count after all 21:50:49 oh and you can't add more registers as you go without breaking existing stuff 21:50:58 due to the changes needed 21:51:16 you mean like x86_64 did :p 21:51:16 well, not add general purpose ones that is 21:51:33 comex, yes it did as I said above. But it did break everything else too by going 64-bit 21:51:38 why can't arguments be passed in r8-r15 now :u 21:51:46 what? 21:51:59 I don't remember x86_64 calling convention on the top of my head... 21:52:29 I do know some asm, but I'm far from an expert. I prefer high level stuff. Like Scheme. 21:52:40 scheme is pretty low-level 21:52:47 car? cdr? wtf is this bullshit. 21:52:47 lament, compared to? 21:53:06 AnMaster: compared to modern high-level languages like C#. 21:53:29 lament, car? well the modern world are based on those :P 21:53:41 * AnMaster ducks 21:54:15 anyway I know enough asm and quite a bit of C. And modern glibc uses very optimised routines for stuff like memcpy, strlen, strcpy and so on 21:55:04 also, backwards syntax is annoying 21:55:09 mov source, dest 21:55:10 fuck that 21:55:12 :u 21:55:28 (in the sense that 'mov source, dest' is backwards.) 21:55:47 comex, I prefer AT&T syntax 21:56:09 mostly I deal with asm as it shows up from objdump 21:56:13 or gcc 21:56:17 I don't code much in asm 21:56:20 why would I 21:56:29 compilers tend to do a great job a lot of the time 21:56:33 what can I use to assemble x64 anyway 21:56:45 comex, well, there is gas 21:56:47 oh, I guess nasm supports it now 21:56:48 the GNU asm 21:56:54 comex, there is yasm 21:56:57 and finally nasm 21:57:02 but gas is best certainly 21:57:03 ...for a year and a half 21:57:07 I mean it is a nice syntax 21:57:15 compared to the horrible intel syntax 21:57:24 comex, ^ 21:58:18 i prefer the intel syntax 21:58:45 it's closer to the arm syntax.. which was the first assembly language i really used 21:59:28 but for x86 the at&t syntax is easier to handle by automated tools 21:59:35 because it's more verbose 21:59:48 but for coding in it it's too verbose imho 22:01:04 comex, I checked other stuff on http://www.int80h.org... the site is utter bullshit in many places. 22:01:10 I would recommend not using it 22:01:54 it seems to suggest a syscall convention where you push arguments rather than fill them in the registers is "faster". 22:01:58 which is utter bullshit 22:02:32 no justification for it? 22:03:38 oklopol, well it suggests it on freebsd, so I guess it talks about linux emulation layer. But really, use some macro or wrapper to use whatever the system prefers 22:03:52 for example linux doesn't use interrupt for system calls nowdays 22:03:53 at all 22:03:58 nor does freebsd afaik 22:04:20 on recent x86 they both use SYSCALL/SYSRET or SYSENTER/SYSEXIT 22:04:29 one of those pairs is for intel, the other for amd 22:04:33 forgot which was which 22:08:32 in any case at least the linux kernel injects this with a fake dynamic library on x86 22:08:48 it decides at boot if it should use the intel one or the amd one 22:09:06 libc then calls this for system calls 22:09:08 very fast 22:13:17 -!- jix has quit ("..."). 22:29:16 The AMD64 ABI calling convetion does use some of the extra registers for argument-passing; namely it does rdi, rsi, rdx, rcx, r8 and r9 for integer and pointer arguments. More than six function parameters is probably rather rare anyway. 22:31:16 fizzie, it seems useful if the other ones were kept for local scratch I guess 22:31:29 and more than 6 does happen, but the norm is fewer 22:31:43 fizzie, also iirc it passes some other stuff in registers too 22:31:50 according to an elaborate schem 22:31:52 scheme* 22:42:03 -!- atrapado has quit ("Abandonando"). 23:14:52 21:34 AnMaster: comex, that doing stuff like in http://www.int80h.org/strlen/ is counter productive 23:14:57 get it in your head 23:15:00 THIS IS #ESOTERIC 23:31:45 -!- olsner has quit ("Leaving"). 23:39:04 Had to powercycle my machine there; it decided putting the fans on full was an excellent idea. 23:39:10 It does that once in a while, I wonder why? 23:39:46 23:33:08 http://filebin.ca/qyxpp/ofortuna.mp3 23:39:49 i like it 23:48:27 My dad is asking me to model a ball of gas in a vacuum held together by gravity at equilibrium. 23:48:48 Tell him to fuck off. Or, you know, do it. 23:50:30 But eh. 23:53:23 Why does he want you to 23:55:11 ehird: yay, constructive feedback <3 23:55:35 23:55 JuanDaugherty: brainfuck is offensive ... as a waste of time and resources 23:55:38 --#haskell 23:57:26 he's on #squeak, #lisp, and #haskell, and he's talking about waste of time and resources? 23:57:32 pot. kettle. 23:57:53 23:57 JuanDaugherty: I didn't say I had a right not to be offended, just that I find it offensive as a concept and a reality 23:58:10 23:58 JuanDaugherty: it's to computing like bleeding is to medicine 23:58:23 so ridiculous so funny :DD 2009-03-06: 00:06:13 i don't get it 00:06:20 00:05 ImInYourMonad: data Pointer x = Cell x (Pointer x) | End x deriving(Show) , that is a a tree, bad rep of a pointer? 00:06:26 i hate newbies making BF interps badly,. 00:09:10 00:09 ImInYourMonad: Gracenotes: ok i had 2 questions in one, 1. should i use Parsec? 2. if i dont, how cna i use < and > for my own purpose? 00:09:18 does he know how to write an interpreter? 00:09:27 he doesn't know much at all. 00:09:37 lament: ah, is he an idiot? 00:09:43 no, he's just new 00:09:44 I got that impression, wasn't sure. 00:09:49 same thing. 00:15:26 he's in my monad 00:17:53 perv 00:19:45 00:18 tromp_: from 9th instruction on, there's no more appending to the data? 00:19:50 about http://esolangs.org/wiki/BCT#Example 00:19:52 is he right 00:19:53 ? 00:22:51 "The Software was not designed to operate after December 31, 1999" - dmd backendlicense.txt 00:34:47 -!- BeholdMyGlory has quit (Remote closed the connection). 00:36:51 lament: kudos on your... creation 00:44:32 Robdgreat: Try "abomination" 00:46:07 I was being kind 00:46:27 not to mention I have a special appreciation for such musical novelties 00:46:45 abomination is a good thing 00:47:15 fair enough 00:48:39 you guys suck 00:48:49 lament: what, I like it 00:51:37 hey I like it too 00:58:18 -!- FireFly has quit ("Later"). 01:02:41 err that ofortuna thing? 01:03:10 yes 01:03:14 i see. 01:03:34 it's only funny if you know what o fortuna is i guess :P 01:06:50 i see. so what is it? 01:07:29 oklopol: http://upload.wikimedia.org/wikipedia/en/4/4e/Carl_Orff-Carmina_Burana-O_Fortuna.ogg 01:07:58 how is it funny? 01:07:59 err yeah i know it's that thing 01:08:15 lament: I'm pretty sure gregorr was joking when he came up with it 01:08:16 ... 01:08:18 i just assumed it was something else too because... it's not that funny :P 01:08:27 ehird: i'm pretty sure he wasn't 01:08:39 lament: GregorR never doesn't joke. 01:08:40 oklopol: i'm not sure why it would be funny 01:08:53 lament: you're wrong. 01:48:25 06:07:39 hm, fast integer square root in C... anyone knows anything good? 01:48:27 The quake one. 01:48:33 Fast invert square root I think it is called. 02:05:19 -!- CakeProphet has joined. 02:48:42 I wasn't joking. 02:48:45 I do think it would be good. 02:49:06 Although (re: lament) I was thinking more about swing-like lounge (e.g. Sinatra-style), but yeah. 02:50:41 Or rather, I was joking in that it would obviously be a parody, but I think it would be a good parody :P 03:14:43 -!- Sgeo has joined. 03:28:50 -!- bsmntbombdood has quit (Read error: 60 (Operation timed out)). 03:33:51 -!- GreaseMonkey has joined. 03:41:50 -!- bsmntbombdood has joined. 04:36:40 -!- Slereah has joined. 04:48:35 -!- Slereah_ has quit (Read error: 110 (Connection timed out)). 05:05:21 -!- zzo38 has joined. 05:06:32 -1 interleave 0 makes -2/3 is that correct 05:08:21 I made a unlambda compiler into JavaScript http://zzo38computer.cjb.net/esoteric/unlambda/unlambda/htm but probably some thing are missing, such as continuations called from the outside? 05:08:46 that's pretty important 05:09:36 Yes I know that, but I'm wondering how that is supposed to be implemented. 05:10:13 You look at the source-codes and see what you think about that! I tried to make it compatible with many JavaScript interpreters, instead of only modern versions of Mozilla or such thing as that 05:10:18 GregorR: oh, that sort of lounge 05:13:36 Please tell me if you found anything else missing in the Unlambda compiler into JavaScript 05:14:12 Oops the URL is wrong it is supposed to be http://zzo38computer.cjb.net/esoteric/unlambda/unlambda.htm 05:23:21 -!- poiuy_qwert has joined. 05:29:02 Oops the URL is wrong it is supposed to be http://zzo38computer.cjb.net/esoteric/unlambda/unlambda.htm 05:29:58 Which you like better Forth or Lisp? 05:31:35 How can I make a continuation called from the outside to be compiled into a Javascript codes 05:31:46 What is the best way 05:37:53 -!- zzo38 has quit (Read error: 104 (Connection reset by peer)). 05:43:02 -!- poiuy_qwert has quit. 07:34:14 -!- Sgeo has quit (Read error: 110 (Connection timed out)). 07:44:35 -!- impomatic has joined. 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:10:43 -!- impomatic has quit ("mov.i #1,1"). 08:25:25 -!- GreaseMonkey has quit ("Client Excited"). 08:32:52 -!- tombom has joined. 09:19:57 -!- BeholdMyGlory has joined. 09:41:26 Relative amount of chatter caused by the noisiest people, at any particular time-of-day (in Finland's timezone, EET/EEST) over the years 2006-2008: http://zem.fi/~fis/test5.png (test6.png for absolute values). 09:46:50 What is interesting is that for most people there's a definite time when they're not talking much (presumably sleeping), but oklopol and oerjan never sleep. 09:47:06 Conclusive proof of their roboticness? You decide. 09:48:43 -!- Slereah has quit (Read error: 110 (Connection timed out)). 09:52:24 ;) 09:52:49 so 09:52:59 why are the stripes in a different order from the nicks 09:53:57 -!- Slereah has joined. 09:54:23 For reasons of cosmic importance. 09:54:37 also you could have the overall shape be how much talk actually happened. 09:54:47 That's the test6.png. 09:54:51 you would probably see me and oerjan are just relatively awake. 09:55:01 It's not as good a conclusion. 09:55:06 right great minds 09:55:46 it seems this time is exactly where i need improvement 09:55:55 so i will now flood for 20 minutes straight 09:56:09 no actually i think i'm gonna buy me something nice -> 09:58:22 Also test7 is actually test5 but with a 30-minute hamming window instead of a 30-minute rectangular window for the activity-estimation. 10:04:19 -!- Slereah_ has joined. 10:09:44 is the newest xkcd crappy too? 10:10:24 i have a hard time telling, once i learn to love the characters, anything goes 10:13:04 -!- Slereah has quit (Read error: 110 (Connection timed out)). 10:13:27 xkcd is always terribler 10:14:50 your nick is tasty 10:14:58 what 10:15:37 hello i'm oklopol i say things that make no sense. 10:16:56 fizzie: could you somehow make test6 show me and oerjan not ever sleeping too? 10:17:08 also i guess i could've used a "never" back there 10:17:33 oklopol: The day before yesterday a speech synthesizer said to me: muskottikukan masennus juustouttaa enteellisesti pikkuisilta. 10:18:02 that's a beautiful sentence 10:18:24 especially "muskottikukan masennus" 10:18:35 oklopol: It continued with: Nahistivatko keihäänheittäjät muistioiden tavoin lamatilaa? Ennakkotilausten virkapaikat läiskäyttelevät lupsakkaasti geofysikaalisilta. 10:19:48 "läiskäyttelevät lupsakkaasti", awesome :D 10:20:17 lacks some integrity when you combine them tho, although i've seen worse 10:20:20 Supposedly the content was some random nonsense, but maybe there was a personality of some sort involved somewhere. 10:20:55 anyway turns out "rektio" isn't "rection" in english, but "case government", at least according to this one online dictionary 10:21:09 this is not good because i had a great erection pun. 10:21:41 also random content generated by what, where? 10:22:17 i mean that's apart from the "case government" errors, that's pretty perfect. 10:23:10 I don't know what generated it; it was just a speech synthesis evaluation test I was asked to listen to and fill. 10:23:32 well was it good? 10:24:03 It was better than what I thought it would be, but not very natural. 10:24:20 I think I kept one of those files at http://www.cis.hut.fi/htkallas/mp3.mp3 10:24:39 (Since someone on another channel said "mp3s or did not happen".) 10:24:52 hmm 10:25:20 well the voice sounds pretty natural, just not the... whaddyacallit :) 10:26:16 It's some sort of HMM-based synthesis, where they use the speech recognition speaker adaptation stuff to mangle things so that you can feed it speech, and then the synthesized output will sound like the same person. 10:26:20 i think the main problem is all words are stressed pretty much equally 10:26:30 yeah i assumed 10:26:56 because that sounds like sampled clips from a real human 10:27:08 Well, as far as I know it's actually not. 10:27:14 except it is still very close to the canonical computer voice 10:27:25 so that's would be a clue to the other direction 10:27:57 fizzie: maybe it's recorded clips from a commercial speech synhesizer? 10:28:03 *synthesizer 10:28:57 also i guess i forgot completely about the shop. 10:29:07 It shouldn't be concatenative synthesis (i.e. recorded clips) at all. At least in the strict sense of recorded waveforms. Certainly it's based on speech that a real person has spoken, though. 10:29:29 I don't know the details, it's not my project. I think the web-evaluation was part of the http://www.emime.org/ project. 10:29:50 Given that their goal is "personalised speech-to-speech translation, such that the a user’s spoken input in one language 10:30:00 is used to produce spoken output in another language, while continuing to sound like the user’s voice", at least they don't aim low. 10:30:10 ha 10:30:11 :D 10:30:45 could be useful in a movie where bond needs to know armenian. 10:31:24 anyway the shop, which i guess would be mcdonalds in this case -> 10:35:44 -!- BeholdMyGlory has quit (Remote closed the connection). 11:49:50 -!- Slereah_ has quit (Read error: 110 (Connection timed out)). 11:57:35 So, regarding xkcd. 11:57:54 If lack of correlation implies lack of causation, then correlation implies causation. 11:58:11 Where "implies" means "suggests" more than "logically requires". 11:58:44 -!- Jophish has joined. 12:01:26 yeah that's not true 12:01:47 at least not in any real sense 12:07:29 -!- jix has joined. 12:24:07 -!- oerjan has joined. 12:25:47 But I'm surprised that the glagolitic capital letter spidery ha was free-for-taking at ..ws. Would have thought someone had already used it. 12:26:02 O_o 12:33:39 What is interesting is that for most people there's a definite time when they're not talking much (presumably sleeping), but oklopol and oerjan never sleep. 12:33:44 * oerjan cackles evilly 12:33:54 bots don't cackle. 12:34:04 true that. 12:34:07 * oklopol goes back to sleep 12:37:21 also, tusho = ehird 12:38:23 Well, yes, but a silly Perl script can't be expected to know that sort of stuff. 12:39:20 also, the colors on the graph and on the descriptions don't match 12:40:01 hm oklopol already implied that 12:40:32 Sure they do, they're just in a different-ish order. Namely, reversed. 12:41:12 except "Others" 12:41:15 yeah, it's an iq test to know whether the colors or the nicks are out of order 12:41:43 i assume Others is really at the bottom :D 12:41:58 If you must know, the ordering is such that all "others" go to an array index 0, while array indices 1..N correspond to the top-N noisiest people, with index 1 being the noisiest; then I draw indices 0..N from bottom to top, but the nick-list in the "sensible order" for indices 1..N, and then 'Others' separately just so that it doesn't look like a nickname. 12:42:53 but should i trust the colors or the order? 12:42:58 The colors. 12:43:00 Trust the colors. 12:43:00 colors 12:43:07 you know, the colors. 12:43:16 trust them 12:43:57 Green is not an enemy, like a well-known Windows media-player vizualization name says. Or something like that, anyway; I just remember the Finnish translation. 12:44:12 ("Vihreä ei ole vihollinen.") 12:46:14 actually the absolute graph shows that oklopol and i are not really constant, we just are in phase with the channel. 12:46:55 but then so is everyone to a degree 12:47:12 Since it seems to have confused a lot of people, I just flipped the nickname ordering to match the colors. (Unfortunately at the same time I got the more curvaceous hamming-windowed graphs there.) 12:48:51 of course evil rumors will claim that we still have completely messed up sleeping rhythms. 12:49:26 Hmm. I, myself, prefer not sleeping. 12:49:30 ;p 12:50:48 pikhq: wait a minute, by the graph you are not supposed to be here now 12:50:50 While at it, I special-cased ehird and tusho together, so they passed anmaster and achieved the coveted red graph-color. 12:51:35 which gave bsmntbombdood a slot, i see 12:51:51 Yes, and his shape is rather different from the others. 12:51:53 I screw things up by talking at truly random times. 12:52:01 Well, unless you count "Others". 12:52:34 i say we ban that "Others" guy for constantly spamming 12:52:51 I concur. 12:54:28 Hmm. Your script was set up based on who talked most in here? Nice work... 12:56:18 Also, I'm surprised to see that I still register on that... I've not exactly talked that much in here recently. 12:56:39 it's 2006-2008 12:56:45 Ah. 12:57:03 Well, then. 12:57:26 If you want some raw underlying numbers, http://zem.fi/~fis/test5.txt has the total-number-of-lines-in-my-2006-2008-logs. 12:57:55 You can just take #9 and largers ranks to know who to ban to get rid of that annoying "Others" guy. 12:58:26 * pikhq gleefuly bans GregorR. 12:58:57 Fizzie, too. 12:59:09 this is not good because i had a great erection pun. 12:59:18 Wow. 12:59:24 finns are not allowed to do that, only japanese 13:00:08 pikhq: are you shocked and disturbed? 13:00:11 * pikhq goes to consume breakfast, for he has stayed up for it 13:03:12 While at it, I special-cased ehird and tusho together, so they passed anmaster and achieved the coveted red graph-color. <-- ? 13:03:14 context? 13:03:30 21:34 AnMaster: comex, that doing stuff like in http://www.int80h.org/strlen/ is counter productive 13:03:30 get it in your head 13:03:30 THIS IS #ESOTERIC <-- sure 13:03:42 but he seemed to actually want to optimise 13:04:00 AnMaster: Context was http://zem.fi/~fis/test5.png 13:04:23 hm 13:04:36 fizzie, so you combined ehird/tusho. Ok 13:04:47 but what has that got to do with me 13:04:59 + that graph is cool 13:05:12 You used to have the red color; since the nick-list is sorted by the total number of lines seen in the analyzed logs. 13:05:25 fizzie, the scale 0-24: what does it mean? 13:05:41 Hours; it's a time-of-day thing. Hours in EET/EEST, specifically. 13:06:02 fizzie, this is average over day during a period of x months? 13:06:24 During the years 2006-2008, yes. 13:06:27 right 13:06:45 Well, sum, not average, but it's about the same thing since I still haven't added any Y axis scale in there. 13:06:50 makes sense then. Was wondering why some of us were a lot quieter during some months first. 13:06:51 ;) 13:07:26 fizzie, what about you, you are in "others"? 13:07:38 it's a well known fact that we nordics hibernate during winter. 13:07:59 AnMaster: no, his data were removed for security 13:08:11 oerjan, the scale was 0-24, that would imply a 2 year period. and there was only one such point with less activity 13:08:19 so that wouldn't make a lot of sense 13:08:21 Actually I'm deep down in the others, #17; that's in test5.txt at the same directory. 13:08:41 ah but one of the winters was particularly hot 13:08:56 global warming destroying our traditions! 13:09:06 fizzie, hm bsmnt would have the largest line count? 13:09:13 or how do you mean it is sorted? 13:09:32 oerjan, oh right 13:10:03 Well, the colored strips are drawn from bottom-to-top, so I had to flip the nick list ordering from the natural one to match that. So ehird talks the most, you're second, and so on. 13:10:09 hm 13:10:28 it looks like oklopol have about same activity all the time? 13:10:44 Yes, I made a half-hearted joke-attempt about that (and oerjan) already. 13:10:58 There's also test6.png which has the absolute counts, not relative, if you want to see the actual shape of combined activity. 13:11:22 hm 13:11:26 seems my uni career is starting a steep downhill slope. 13:11:34 i almost failed another course today :| 13:11:35 That test5 is more of a "relative percentage of all channel activity at that time of day" thing. 13:11:52 oklopol: Another of your "almost didn't get a 5" failures? 13:11:59 yes :< 13:12:42 i mean i got an email this morning that it was 4/5 because i had explained simulated annealing vaguely, which is a given, because it's a trivial concept. 13:13:08 then, later, i got another email saying he reread it and decided it was a 5/5 13:13:20 -!- Slereah has joined. 13:13:22 but it was a close call 13:13:30 hah 13:13:40 it's a slippery slope 13:14:00 oklopol, I don't know how your system works in Finland, but what is the lowest score for passed? 13:14:17 40%-50% 13:14:28 i think that's a pretty standard university scale 13:15:01 the score above passing is then interpolated onto 1-5 13:15:11 in our system 13:15:45 wth 13:15:49 my mouse gone mad 13:16:04 come sane mousie! 13:16:04 at some locations at the table it wiggles on screen 13:16:16 as in, move 1-2 pixels up/down randomly 13:16:23 sometimes my mouse does the craziest things 13:16:26 even though I'm not touching it 13:16:32 then i realize my left thumb is on the pad 13:16:34 at other positions on the table it works fine 13:16:40 oklopol, I don't use a laptop 13:16:43 so not likely 13:16:47 neither does my mom 13:16:49 no touchpad here 13:16:50 no wait, she does 13:16:58 Here's the total channel-activity from 2003 to end-of-2008, with "one pixel == one day" X axis scale, and Y values taken from line counts in a 30-day surrounding window: http://zem.fi/~fis/test8.png 13:17:11 :D 13:17:35 30 days sounds a bit much, is it at least biased? 13:17:47 well okay 13:17:57 peaks are very visible so i guess it's fine 13:18:11 No, it's just a square window; I left my hamming window in another script. :p (The one doing time-of-day graphs.) 13:18:47 now that's a hamming window? 13:19:22 ... 13:19:23 *what's 13:20:17 oh that's a hamming window 13:20:31 i guess i might've been able to guess it was 13:20:43 maybe the "that's" was because i did know 13:21:08 oklopol: your momma so fat, she uses a desktop for her laptop 13:21:17 :DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD 13:22:57 fizzie: could you perhaps make it show more nicks? i mean the pre-me's are pretty gray. 13:23:05 fizzie, "and Y values taken from line counts in a 30-day surrounding window" <-- I haven't taken any course in statistics, so what is the reason for that? 13:23:17 probably that it'd be more smooth. 13:23:35 fizzie, what is test7? 13:23:45 it's test5 13:23:47 but smoother 13:23:58 with separate tusho 13:23:59 wait 13:24:00 no 13:24:05 yeah 13:24:29 either 5 was changed, or i'm seeing things again 13:24:32 not only that I think 13:24:46 oklopol, maybe different source data span? 13:24:48 Yes, I accidentally updated test5 with the smoother-looking Hamming window stuff when combining tusho and ehird. 13:24:55 Other than that it should be the same stuff. 13:25:23 And yes, the windowing is for smoothing; typically per-day activity varies quite a lot. 13:25:42 fizzie, test.png? 13:25:43 from this graph we deduce that AnMaster has been present here all since 2003, although he didn't talk that much 13:25:50 :) 13:26:04 yeah i was too polite to say that 13:26:08 Making him quite possibly the oldest regular. 13:26:11 oerjan, I was an idler in the beginning, but I don't think since 2003. more like 2005 13:26:16 oh. 13:26:19 olkopol: test8h.png has that Hamming window. 13:26:25 i thought it was just an anomaly. 13:26:30 Things really exploded recently, it looks like. 13:26:33 It is also an anomaly. 13:26:34 probably is 13:26:39 I wonder what caused that. 13:26:50 LHC? 13:26:53 ehird? 13:27:00 with separate tusho 13:27:13 Try #esoteric. Now with separate tusho included! 13:27:22 anyway, I haven't been here since 2003 13:27:26 I had dialup in 2003 iirc 13:27:33 fizzie: MORE NICKS!! 13:27:36 I got adsl during 2005 or so 13:27:44 So did I. Didn't stop me from being on IRC since '98. 13:27:47 and started using freenode during 2006 13:27:54 or around there 13:27:55 also i demand oklo* be counted as me. 13:27:58 (and I was 8 at the time. *8*.) 13:27:59 maybe in late 2005 13:28:02 not 100% sure 13:28:25 oklopol: I couldn't figure out more suitably different colors, so that's why there are so few nicks. 13:28:35 pikhq: i like your "look how geeky i am!" attitude :D 13:28:58 Bweheheh. 13:29:12 God, I did a lot in '98. 13:29:22 list 13:29:29 That same year, I got into science fiction, programming, and got my current nickname... 13:30:00 fizzie: there are algorithms for that 13:30:25 when i was 8, i just had sex and did drugs 13:30:26 I also met my best friend & current roommate via the Internet... 13:30:37 That same year. 13:30:40 pikhq: the one you've never talked to? 13:30:46 :D 13:30:55 oklopol: No. I moved in with my current roommate ASAP. 13:30:56 would be a cool best friend 13:30:58 I don't remember what test.png was, possibly 2009 jan-feb with some parameters; test2 is test but with absolute counts instead of relative; test3 doesn't exist; test4 is a query of mine; and then we enter the current testX range. 13:31:04 I 13:31:17 I've talked with *him* on a near-daily basis ever since meeting him. 13:31:59 pikhq: i hope he's a real geek too, because you're losing your geekiness points as we speak. 13:32:29 He implemented Dimensifuck. 13:32:35 ah okay, then i guess it's fine 13:32:47 And is a far better coder than I. 13:33:40 also is he here? 13:33:48 my memory is too fuzzy 13:33:51 Nah, though he's shown up a couple of times. 13:34:01 He doesn't IRC much. 13:34:12 i wish i didn't either 13:34:32 ...then maybe i wouldn't fail so much at uni 13:34:49 * oerjan actually laughs at xkcd, despite what you said 13:35:03 i liked it 13:35:29 (btw do you like me bragging about my uni stuff? i first decided to keep it to myself, but then i thought maybe this would fit my irc character better) 13:35:39 (i'm open for requests) 13:37:03 well, maybe i'll do it every now and then. everyone likes a random fluctuation. 13:38:03 email.png is a really complicated MIME message I once received; eso.png is some sort of old gnuplot activity graph, maybe; font00l.png and font00h.png is a small bitmap font; http://zem.fi/~fis/moves.png is a distribution of game lengths of a board game AI tournament; screen.png is my screen status-line; ti86.png would have a long explanation; tmp.png is fungot source. 13:38:03 fizzie: works for me too, 13:38:28 fungot: Yes, I'd assume your source would "work for you". 13:39:07 Why did I repeat the URL for moves.png? That was completely accidental. 13:39:15 * oklopol wants long explanation 8| 13:39:29 What, seriously? 13:39:36 well duh 13:39:39 i want to know everything 13:39:57 I, uh... let's see if I can find the other, accompanying picture first. 13:40:23 i have a hard time not asking personal questions from each and everyone here all the time, and you think i don't want to hear a spänking story 13:40:49 fungot: silent all of a sudden? 13:40:50 oerjan: that's actually the name egg is so cute about japanese culture ( and product packaging) is the basis library. i want to 13:40:54 -!- jix has quit ("..."). 13:41:43 what is fungot doing!! 13:41:44 tombom: differ for understanding that line of thought. primarily to encourage ordered thoughts about things like rfc 822 address parsing, spool handling, etc.) 13:41:50 * oerjan now wishes he had a spänking story to tell 13:42:49 oklopol: http://zem.fi/~fis/slide3pic3.jpg is the accompanying picture. 13:43:09 oklopol: Do you still want the story too? 13:43:34 :o 13:43:36 oh definitely 13:44:25 what the heck is spank anyway? 13:44:30 *spänk 13:44:41 Okay, so we have this university course S-89.3510 "SignaaliProsessorit ja ÄäneNKäsittely" (transl: "DSPs and sound processing"), colloquially called "SPÄNK". 13:45:26 The main project-work of the course is to take one of the DSP dev-kits we have, and write some code on it; there's a list of preselected topics that are allocated with some scheme I've already forgotten. 13:46:15 In any case, our topic was a DSP-based echo effect box. However, course grade is partially based on how impressive a demonstration you can make for your project for a demo-day event arranged at the end of the course. 13:46:49 oerjan: also "spänk" is how you pronounce "spank", if that wasn't obvious 13:47:15 Since we couldn't think of anything very impressive to do with an echo box, we decided to rig a TI-86 calculator to the DSP board so that you can, in real-time, control the echo effect parameters using the calculator. 13:47:51 ti86.png is a screenshot of the control app; I don't really remember what the sliders do, but probably they adjust some delays and amplification constants. 13:47:57 god i'm an idiot 13:48:33 of course they are sliders, the numbers are a direct giveaway 13:48:38 And in slide3pic3.jpg we're trying to make the damn thing to work; at the left side there is an oscilloscope, that's how desperate we were. 13:49:40 The DSP board had a really really advanced programmable serial input controller thing; on the other hand, in the TI-86 there's just two wires you can toggle really slowly. They weren't exactly designed to be interfaced together. 13:50:01 heh 13:50:06 Oh, and we spent about three days fiddling with it before it turned out that the speaker cable I had cannibalized for this use was faulty. 13:50:51 That's a TI TMS320VC5416 DSP chip on that board in the picture. 13:51:23 When you press the enter key in the calculator, it shows a spiffy little animation about the whip spanking, and uploads the slider positions. 13:51:44 We had a webcam connected to my laptop, and the laptop connected to a projector, so we could demo out the calculator controls. 13:52:33 fizzie: Didn't it have an image of the chip next to the whip? 13:54:50 ineiros: Hmm, maybe? I don't have a screenshot of it, just the z80 source code where the picture is given with .db pseudo-instructions. 13:55:25 clearly what was missing here was a _real_ whip as input device. 13:55:43 Hmmh. Wii Whip. 13:55:49 ineiros: You might be right, since the images have symbolic names TextImage, WhipImage and ProcessorImage. 13:55:51 Interesting game ideas. 13:56:19 fizzie: I think the processor image was taken from the slides. 13:57:01 fizzie: They had that nice SPNK-logo in the corner. 13:57:25 ineiros: How do you remember this stuff? 13:57:51 fizzie: I don't know. I only seem to remember some random collection of trivialities and none of the important stuff. 13:57:58 -!- KingOfKarlsruhe has joined. 13:58:40 fizzie: https://noppa.tkk.fi/noppa/kurssi/s-89.3510/luennot/esittely.pdf 14:02:05 -!- nice has joined. 14:02:33 -!- nice has changed nick to nice_ka. 14:02:42 ineiros: Right you are. I dumped the picture with a bit of Perl: http://www.cis.hut.fi/htkallas/processor.txt 14:03:10 ineiros: the seventh archduke of sachsen-coburg-gotha had the same problem 14:04:06 Yes, there was that "AAH!" added. 14:04:24 oerjan: Haha. 14:08:07 The lecturer was quite spanking-oriented, if I recall right. 14:10:55 oerjan: Do you have a reference for that, sounds like an interesting piece of trivia? :P 14:13:12 Hm, Wikipedia page of "Saxe-Coburg and Gotha" gives the place a population density of: Expression error: Unrecognised punctuation character "," /km² (Expression error: Unrecognised punctuation character "," /sq mi) 14:14:54 -!- KingOfKarlsruhe has quit (Read error: 110 (Connection timed out)). 14:18:47 -!- nice_ka has quit (Read error: 110 (Connection timed out)). 14:21:19 Okay, so: out of the four sliders, sliders 1 and 2 control the gains of the comb filters (basically amount of echoing and the style of it), slider 3 is the ratio between direct pass-through sound and echo-effecty, and slider 4 controls the frequency of the four blinking leds on the DSP board, which do the usual 1, 2, 3, 4, 3, 2, 1, 2, ... blink sequence. 14:21:29 I think we ran out of ideas there for the fourth slider. 14:22:11 (The DSP board has four dip-switches and four leds for primitive IO, but we didn't want to limit ourselves to that, hence the whole TI-86 control thing.) 14:26:55 Meh, you had to go and remind me of one of the few courses here where you really got your hands dirty. Figuratively speaking, of course. 14:27:15 -!- zzo38 has joined. 14:28:05 Also one of the few courses where an oscilloscope is involved. 14:28:21 Yes, there is a severe lack of oscilloscopes in the computer science curriculum. 14:28:33 Want to come and play with my oscilloscope some day?-) 14:28:47 How can you make even an oscilloscope sound dirty? 14:29:12 In fact I did think about building something where a 'scope might've been handy; but then I remembered I suck at all electronicsy stuff. 14:29:14 It's a skill. 14:29:33 I'd like to build a small robot one day. 14:29:46 One day I went to school but their oscilloscopes was broken so I haven't use a oscilloscopes. And I don't own one 14:30:45 Can you bit interleave negative and positive numbers together? It seems to me I could do -1 interleave 0 makes -2/3 but I'm unsure 14:31:56 Mine goes to waste too, since I don't use it. I kind-of inherited it. I suck at electronics as well. 14:32:08 And if you have so many pictures on /~fis/ to list then why don't you enable directory listing, or at least make a list manually 14:32:57 Actually I probably should just clean up that directory more oftener than once every three years or so. 14:33:19 I skipped the more uninteresting ones from that previous listing, too. 14:34:43 And listed only the .png files. 14:35:10 You could alo make subdirectories for multiple listing of images, for category or just by timing or whatever you want, I do that on my computer at /IMAGES/ /IMAGES2/ /IMAGES3/ /img4/ /img5/ /img6/ /img7/ /img8/ /img_09/ /img_0A/ /img_0B/ /img_0C/ /img_0D/ 14:36:32 Most of the stuff I stick directly at ~fis/ are "hey, look at this" sort of pictures for IRC use, not really for long-term storage. 14:37:21 OK 14:41:00 O, and I am interested your opinion of the program I wrote compiling Unlambda to JavaScript. 14:42:34 zzo38: does it handle d? 14:43:59 Yes it handles d, look at http://zzo38computer.cjb.net/esoteric/unlambda/unlambda.htm 14:44:16 And view the source-code of that HTML page to see the JavaScript codes 14:44:30 Is there anything missing from my handling of d? 14:45:54 * AnMaster considers a single assignment, non-functional, infinite state, sub-tc language 14:46:13 I haven't implemented c entirely yet. I'm still trying to think how to do that. If you have any suggestion please type it on here 14:49:00 So far if you try to run a program that uses continuations you will just see a alert box that says "[object Object]" in it. That is the continuation object being thrown with nothing to catch it 14:49:08 zzo38: if javascript doesn't have real continuations then you probably are not going to get around rewriting everything in cps style 14:50:46 I did call/cc in my Scheme-in-Prolog simply by doing the interpreter in CPS, but it felt somehow too simple. 14:50:48 and using a trampoline or something if it doesn't have proper tail calls either 14:51:00 Another idea I had is if the thrown continuation object is not caught by the c function it should try the program over again but keep track of which c function that continuation is for so it can return something else next time 14:52:46 I'm not sure how well my idea would work, though. 14:53:07 I'm trying to think if there is a better way to throw back 14:54:09 fizzie, will jitfunge implement IMAP? 14:54:51 I don't think so, no. I'm currently again in the hibernationary "collecting motivation" stage re jitfunge. 14:55:05 Where can I find your Scheme-in-Prolog 14:56:01 zzo38: that idea sounds evil, so it would be awesome _if_ it worked, but i think you could get trouble if there were may throws and catches to rerun before you got to the right point. 14:56:05 *many 14:57:04 That's what I was worried about 14:58:42 There seems to be something called jwacs, which is a compiler from javascript-with-first-class-continuation-syntax into plain-old-javascript; I'm haven't looked at all how complicatedly it's implemented. 15:00:05 I don't seem to understand my own Prolog code any more. ps_apply_builtin(callcc, Args, K, E, SE) :- !, ps_aritycheck(1, Args, 'call/cc'), Args = [Proc], !, ps_apply(k(apply, E, SE, Proc, [cont(K)], K), void). 15:00:16 Maybe single-letter-names weren't the way to go. 15:01:12 fizzie, download? 15:02:33 For the Prolog-Scheme? 15:02:40 yes 15:02:46 no, for your waffle recipe 15:02:51 :D 15:03:29 i blame ehird for rubbing off on me 15:04:06 zzo38: You cannot use exceptions for continuations. 15:04:25 Exceptions are a special case of downwards-only continuations 15:04:42 ehird, err, don't you mean upward only? 15:04:51 Downward. 15:05:19 oh right, I see what you mean 15:05:21 I know that, that is why I was wondering how to do continuations the other way, because currently it works only one way and many Unlambda programs use it the other way also 15:05:32 AnMaster: btw, Erlang has GC that runs in parallel with the mutator, iirc 15:05:49 AnMaster: If you promise not to laugh, you can download the manual at http://zem.fi/~fis/plscheme.pdf and the documentation at http://zem.fi/~fis/plscheme.tar.gz -- but it was pretty much my first (and only) Prolog program, so it's not pretty. 15:05:59 Er, s/documentation/code/ 15:06:15 http://www.cis.hut.fi/htkallas/mp3.mp3 <- this is awful 15:06:24 ehird, not sure about that, however each erlang process has it's own heap. Certain large objects (binaries) are stored in a shared heap, and they are reference counted. 15:06:35 no, I'm fairly sure because I saw it on reddit. 15:06:45 it's so old that when you wrote it you thought code was documentation 15:07:01 ehird, well, it might be true. I haven't had any reason to dig in the details of the erlang GC yet. 15:07:35 so where on redit was it? 15:07:36 err 15:07:38 reddit* 15:08:11 http://www.reddit.com/r/programming/comments/82do0/i_no_longer_hate_lisp/c082ihm 15:08:21 zzo38: the only other way is CPS, for JS 15:08:42 There's a brainfuck interpreter (as a Scheme test-case) in that plscheme thing. 15:08:44 ah, wait 15:08:50 AnMaster: he's just saying that other threads can keep running 15:09:04 right. 15:09:08 meh, I guess I should write a concurrent, parallel generational GC, since nobody else wants to apart from Sun. 15:09:16 and that is because each process has it's own heap. 15:09:20 even Sun doesn't do it fully; they pause for a little bit to do some bookkeeping 15:09:24 (although most of the gc is concurrent) 15:10:11 there were experiments with a shared heap, but that ran into issues with the SMP support, and it turned out the current model worked better _and_ was easier to understand/maintain 15:10:41 a purely-functional, shared-nothing language is more applicable to this kind of thing 15:11:11 since you know a lot more about how it mutates (specifically, the code doesn't mutate, just the runtime, unless a "copy-and-remove-old-one" was optimized to a mutation) 15:13:06 ehird, is this a quote from somewhere? 15:13:20 no, I was talking 15:13:33 ah ok 15:14:48 about mutating, I don't think code is mutated. Certain operations are optimised into mutations, like appending to a list if the compiler can prove it isn't used in ways that would break that. 15:15:14 err, what are you talking about> 15:15:22 as far as I can tell nothing related to what I said 15:15:23 erlang. weren't you? 15:15:26 no. 15:15:29 hm ok 15:16:16 -!- oerjan has quit ("Ask Eliezer Yudkovski about code mutation"). 15:16:23 it's yudkowsky 15:17:18 -!- FireFly has joined. 15:21:03 -!- FireFly has quit ("DSOrganize IRC"). 15:22:25 hm, anyone know a good tutorial and/or introduction to abstract syntax trees. 15:22:46 on the internet that is 15:23:44 Do the people on here have any preferences about Lisp or Forth 15:23:53 zzo38: I like both. 15:24:03 AnMaster: err, they're just any data structure you want. 15:24:15 like AST = Add AST AST | Name String | FunctionCall AST [AST] 15:24:23 hmm 15:25:03 ehird, so bf code as a single linked list with down links for [ that points to the stuff in the loop would be an AST? 15:25:31 BF = Left|Right|Add|Subtract|Input|Output|Loop [BF] 15:25:35 then use [BF] to represent a program 15:25:37 ([] = list) 15:26:00 hm 15:26:54 I just use yield command in JavaScript to represent the input command in brainfuck. But the yield command is a new version of JavaScript only on Mozilla but that's OK because it is built-in to a XULrunner applocation. From this, you can learn how to write your own brainfuck compiler 15:28:21 err 15:28:25 how is that related? 15:28:39 -!- zzo38 has quit. 15:28:46 huh 15:29:33 it's zzo38, don't question him :D 15:29:46 I thought that Brainfuck was perhaps the simplest language to compile... 15:30:00 pikhq, it is certainly one of the simpler ones 15:30:00 pikhq: Iota is easier. 15:30:09 I mean, really. I could implement it in sed. 15:30:18 ehird: Mmm... True enough. 15:30:21 s/*/`/; s/i/(the ski form of \x.xSK)/; 15:30:26 to unlambda, of course. 15:30:40 <- brainfuck to brainfuck compiler 15:30:51 Heheheh. 15:31:03 right. It all depends on what the target you compile to is 15:31:10 <- x to x compiler. 15:32:26 so what about compiling to x86 machine code? 15:33:08 Requires a tiny bit of effort. 15:33:18 What, iota to x86? 15:33:24 sure asm to machine code (which is "assemble", rather than "compile", but you could consider it a variant of compiling), or machine code to itself are easiest, but apart from those 15:33:24 That's hard, pikhq. :P 15:33:28 You need a freaking garbage collecotr... 15:33:39 Well, it could just be a refcounter, but still. 15:33:42 Also, first class functions. 15:33:49 And whatnot, soforth, hathit. 15:33:59 I thought you meant Brainfuck to x86. 15:34:06 I mean, which would be the easiest esolang to compile to x86 machine code 15:34:08 Iota to x86 is somewhat tricky. 15:34:21 AnMaster: x86 machine code 15:34:28 ehird, " sure asm to machine code (which is "assemble", rather than "compile", but you could consider it a variant of compiling), or machine code to itself are easiest, but apart from those" 15:34:29 .. 15:34:53 assembling is compiling, not a variant on compiling 15:36:14 right, call it whatever you want 15:36:21 Let's call it George 15:36:26 yes. 15:36:29 I'm going to george my program now. 15:36:36 the question remains. I'd say bf is one of the easier ones to compile to x86 machine code 15:36:45 there are probably other easy ones 15:37:04 brainfuck without - 15:37:07 or , 15:37:08 or . 15:37:32 boolfuck without , or 15:37:32 . 15:37:39 er, or ; 15:37:53 False isn't probably too difficult either, given that the stated purpose was to get a tiny compiler. 15:38:03 fizzie: it has first class functions 15:40:18 -!- BeholdMyGlory has joined. 15:40:56 That's not very difficult, since there seem to be no closures, just global variables and a stack. Well, based on a *really* quick peek at the documentation. 15:41:14 stil 15:41:15 l 15:41:43 Okay, it's not as simple as brainfuck. 15:41:48 But simpler than Scheme. :p 15:57:43 -!- Hiato has joined. 16:04:03 -!- BeholdMyGlory has quit (Read error: 104 (Connection reset by peer)). 16:09:50 http://blogs.discovermagazine.com/badastronomy/2009/03/05/illinois-plutocrats/ 16:10:00 Pluto is a planet, if by planet you mean planet in Illinois. 16:12:05 Planet-like objects outside of the local solar system, however, are not. 16:14:58 http://scienceblogs.com/pharyngula/2009/03/richard_dawkins_banned_in_okla.php lol 16:22:20 -!- impomatic has joined. 16:25:50 Surely I never imagined that I would start to learn vim controls 16:26:04 when trying to play nethack. 16:26:12 Can anyone recommend a cheap development board? 16:26:34 impomatic: development board/ 16:28:19 -!- FireFly has joined. 16:30:45 any processor? 16:30:53 impomatic: ? 16:31:30 I don't mind about the processor at this stage, just something cheap to play with 16:32:08 ehird: a processor on a board. Normally you can connect by RS232 or USB to program it. 16:32:13 arduino 16:32:16 ? 16:43:55 -!- Slereah has quit (calvino.freenode.net irc.freenode.net). 16:43:57 -!- Ilari has quit (calvino.freenode.net irc.freenode.net). 16:46:01 -!- Slereah has joined. 16:46:01 -!- Ilari has joined. 16:49:40 -!- Azstal has joined. 16:57:23 impomatic: arduino? 17:02:35 Sorry, didn't realise what arduino meant! Looking it up now 17:03:22 impomatic: it uses a variant of Processing to program it: http://en.wikipedia.org/wiki/File:Arduino_IDE_-_v0011_Alpha.png 17:03:48 http://www.adafruit.com/index.php?main_page=product_info&products_id=68a <-- arduino starter pack 17:04:39 -!- Asztal^_^ has quit (Read error: 110 (Connection timed out)). 17:05:06 That's the kind of thing I've after. Have you used one? 17:05:14 Nope, although I'd like to. 17:05:22 I've only heard good things about it, though. 17:08:26 I want to implement an interactive language on the microcontroller, then use my PC as a terminal 17:08:44 Forth would be good for that 17:09:40 sorry, you should have done it on wednesday 17:11:36 I was thinking of Forth as a first project 17:13:49 http://en.wikipedia.org/wiki/Fjölnir_programming_language 17:15:38 ehird: what's with you and Forth these days :-P 17:16:02 what, I just started implementing forth a few days ago, and forth _is_ good for interactive dev on embedded systems 17:16:14 zzo38 asked me about forth for some reason, not triggered by me 17:16:25 i don't think forth is a good language for general use 17:16:27 Maybe I've just timed my viewings of this channel poorly 17:17:05 It just seemed to me that you'd been plugging Forth almost every time you said anything :-P 17:17:45 And I just finished developing Forth in Redcode :-) 17:18:28 Remind me how you did I/O 17:18:38 exmars extension 17:18:44 Right. 17:29:30 -!- doudou has joined. 17:29:53 -!- doudou has changed nick to SainteSophie. 17:31:48 hi SainteSophie 17:31:56 hi 17:32:04 haven't seen your name in here before 17:32:06 what brings you here? 17:32:08 nop 17:32:13 errr 17:32:34 I wanted to konw more about esoteric langagues 17:32:42 a good reason as any :P 17:32:44 hi 17:32:45 You have come to the right place 17:32:50 ok 17:32:51 Also for hardcore pornography 17:32:55 ignore Slereah. 17:32:56 XD 17:32:58 Do you want any? 17:33:06 * SainteSophie bites Slereah 17:33:13 get a room you two 17:33:20 no thanks 17:33:45 I am learn C and Java 17:33:57 err 17:34:05 I learn C and Java 17:34:16 "I'm learning", you mean 17:34:27 yes 17:34:31 I'm french :s 17:34:47 so is Slereah and m0ny. french people are _almost_ as esoteric as finns 17:35:04 XD 17:35:59 ho yeah, Sle.reah has Wanadoo 17:38:33 I sure do 17:39:43 Do you know where I wan lean more about Obfuscated C Code ? 17:40:20 http://www.ioccc.org/ 17:42:47 thanks 17:47:26 amazing... 18:16:15 -!- tombom has quit ("Peace and Protection 4.22.2"). 18:20:54 -!- kar8nga has joined. 18:40:32 -!- Azstal has quit (Read error: 110 (Connection timed out)). 18:45:36 -!- dbc has joined. 18:54:11 -!- FireFly has quit ("Later"). 18:57:43 -!- Azstal has joined. 19:27:48 who highlighted me 19:30:20 I pasted some channel-activity graph-plots. 19:30:28 yeah, and they got a bit wild 19:30:33 I think you were mentioned, since your name is in there. 19:30:36 started highlighting people 19:30:39 link 19:30:51 http://zem.fi/~fis/test5.png for example. 19:30:58 That's the time-of-the-day activity one. 19:31:27 Or relative-activity, anyway; test6 was the absolute-activity one. 19:32:19 oooh nice graph 19:33:15 The numbers are for my local time zone, EET/EEST. 19:35:07 how did you make those? 19:37:26 -!- Hiato has quit ("Leaving."). 19:38:38 Just a custom Perl script that uses GD.pm to draw. 19:43:33 so when is test9 coming? 19:43:44 i can't live without my daily graph 19:43:57 Didn't you already get some for today? 19:44:02 script it 19:44:14 maybe a *real* graph this time 19:44:54 fizzie: well yeah i guess i should wait till tomorrow, you update at midnight right? 19:45:00 I did some graphviz graphs about "people who seem to be conversing together on channel" relationships. 19:45:08 uuhhh 19:45:13 GIVEGIVE 19:45:39 err can you tell graphviz to stack two nodes close to each other? 19:45:49 "stack" 19:45:58 more like medandulate 19:46:04 I don't think I can find them. It wasn't very clever about conversations, just " othernick:", and the results weren't very intelligent. 19:46:18 oh i see. 19:46:35 i've seen something that does that 19:46:50 i've heard of ppl doing that, but never actually seen it 19:47:17 Graphviz layouts are more or less tweakable, yes, depending on the layout engine you use. For the force/string-based ones I think you can affect the edge lengths, but those do messy graphs unless you use one of the node-overlap-removal options, maybe even with that. 19:47:42 I don't think I have time for a graph right now, I have something else to write. 19:49:23 are you sure you do? 19:49:43 Yes, because I'm actually writing something else right now. 19:50:43 yeah that's a common source of surity. 19:53:11 Er, well, unless you had some sort of graph you wanted to see and which wouldn't be too complicated to draw. 19:53:27 fizzie: make a graph of, um 19:53:35 the relation to people's activeness <-> channel activeness 19:53:41 so we can find the people who only talk when nobody's listening. 19:53:45 apart from clog./ 19:53:55 in fact i was going to success exactly that "people who seem to be conversing together on channel" relationships thing 19:54:33 ... 19:54:38 success? xD 19:54:59 Hrm. Well, I guess I might try to generate some graphviz sources and see what it spews out. 19:55:02 oklopol: er hasn't he done that 19:55:06 oklopol: if not, he can do both 19:55:14 by symbolising the channel activity AS A PERSON 19:55:16 ehird: i haven't seen even one real graph yet 19:56:36 I think the graph I did was in the demi web-forum thing. 19:57:06 well i don't know the culture of it 19:57:16 Oh, right, and the "conversation detector" was even *more* unadvanced, since it flagged as 'conversation' everything where someone's nickname appeared in someone else's message. 19:57:27 So that one guy with the nick "se" was just about everyone's friend. 19:57:34 :) 19:57:50 I'm trying to find any .dot files I may have right now. 19:58:52 Oh no, it was "mutta" and "minä" who were everyone's friends. 19:59:15 http://zem.fi/~fis/demi.png 19:59:44 I don't think I did any (or much, anyway) graphviz layout-tweaking for that one. 19:59:47 TOO MANY FUCKING PEOPLE 19:59:53 TOO MANY PEOPLE FUCKING 19:59:55 i don't actually think graph is actually the right term... 20:00:01 oklopol: chart 20:00:07 oh lawd 20:00:12 i basically want balls to be closer to each other if they talk at the same time 20:00:15 ehird: no 20:00:31 oklopol: do balls touch if they are never apart 20:00:51 more like ND -> 2D, approximately preserving distances 20:01:00 -!- SainteSophie has quit (Read error: 113 (No route to host)). 20:01:04 oklopol: I could do something like that with a self-organizing map, maybe. 20:01:27 Our lab is very fond of SOMs, since Teuvo Kohonen still sort-of works there. 20:02:59 time for work 20:03:03 hmm, btw what kinda research do you do in helsinki? probably all kindsa stuff but i mean like what's the average subject of research 20:03:20 We're in Espoo, not in Helsinki. 20:03:21 they sink hells 20:03:56 The five-point list at http://www.cis.hut.fi/research/ is the most summarized statement of our lab-work. 20:03:57 i mean do you have lots of ai? afaiu we have mathematical esolanging, coding theory and practical algorithmics here 20:04:01 hmm 20:04:05 espoo, k 20:04:47 I don't think there's much traditional-AI research going on; certainly not among our "information science" people. 20:05:38 to me all those look quite ai-ish 20:06:14 Or nowadays we're officially part of the same depeartment as the former theoretical computer science lab; they do logic-programming-related stuff, crypto-things, model-checking and stuff like that. 20:06:25 then again i've been reading about ai for the last three days 20:06:41 uh oh, oklopol writing an ai? 20:06:59 it's my other main interest 20:07:04 ehird: Time to enjoy your last few days as a member of the dominant species. 20:07:11 yeppers. 20:07:29 i'm still not entirely sure what i want to do most 20:07:33 someone call up kurzweil and yudkowsky, I'm going underground 20:07:38 -> 20:07:44 <- 20:07:45 ps 20:07:45 i love you guys 20:07:47 -> 20:07:54 <- 20:07:56 except you oklopol 20:07:57 -> 20:08:00 <- 20:08:01 oh :< 20:08:02 now really, bye 20:08:04 -> 20:08:08 and here i was like yay 20:08:11 <- 20:08:19 oklopol: i will forgive you if you don't write an evil ai. 20:08:22 -> 20:08:38 well maybe i could write a nice one first and see where it gets me? 20:08:46 <- 20:08:47 define 'nice' 20:09:11 well you know one you can tell about your feelings and who gives you hugs 20:09:34 is it Friendly(TM)(C)(R) 20:10:29 that's a lot of uppercase letters in parens. 20:10:44 answer my question I have a bunker to make 20:11:36 oklopol! 20:12:59 -> 20:13:10 -!- asiekierk has joined. 20:13:12 Hi 20:13:16 well okay, i will request Friendly status for version 1. 20:13:18 I wasn't here for a freaking long time 20:13:23 <- 20:13:28 a newfound reason to go to my bunker! 20:13:29 -> 20:13:30 unless there's a lot of testing involved 20:13:37 <- 20:13:50 I think testing an AI before you've proved it's Friendly defeats the point 20:13:51 -> 20:13:51 hello asiekierk, you seem to have lost an a 20:13:57 -!- asiekierk has changed nick to asiekierka. 20:13:59 * asiekierka glues the "a" 20:14:01 oklopol: What are you doing? 20:14:06 ehird: lol indeed i guess :D 20:14:17 <- 20:14:19 asiekierka: trying to read, but, err, ircing. 20:14:21 asiekierka: destroying humanity. 20:14:28 Oh! He's making an evil AI! 20:14:39 asiekierka: 20:14:41 if 20:14:42 you 20:14:43 say 20:14:45 glados 20:14:47 I 20:14:49 will 20:14:51 rip 20:14:53 your 20:14:55 throat 20:14:57 out 20:15:11 Ok. :) 20:15:13 sadly the course doesn't cover the chapters where you add evilness to your bot :< 20:15:13 SODaLG 20:15:41 * ehird tuo taorht s'akreikeisa spir 20:15:49 -!- oerjan has joined. 20:16:01 lol 20:16:06 hi oerjan 20:16:10 oklopol's making a non-friendly AI 20:16:12 what should we do 20:16:12 You can't rip what is already ripped. 20:16:25 hi ehird, asiekierka 20:16:36 it's yudkowsky 20:16:39 helloo oerjan, situation of universal emergency her 20:16:41 e 20:16:49 i knew that - i botched it 20:17:04 actually i only suspected the y 20:17:30 hi ö 20:17:37 oerjan HALP 20:18:02 ehird: well my theory is there already exists an AI, created by aliens at least billions of years ago, so oklopol won't get anywhere with this 20:18:31 oerjan: well that fucking sucks, where's my fucking singularity oerjan?! 20:18:34 :< 20:18:37 he's already grossly outcompeted 20:18:57 ehird: oh the already existing AI is working on bringing us there, don't you worry 20:19:03 yay 20:19:05 how long to wait 20:19:26 20:19:48 well 2012 is a good first possibility 20:19:57 does that refer to the singularity or the billion year old alien ai? :D 20:20:17 the latter, although when you point it out... 20:20:42 How does a "singularity oerjan" differ from the normal one? 20:20:51 also, i said at least billions, we might be dealing with a universe creator here 20:21:19 so will the ai make an ai to do the singularity? dawg. 20:21:21 fizzie: i think it was mentioned before that the puns no longer suck 20:21:47 but might require superintelligence to understand, though 20:22:14 that's the bad bit about the singularity, where do we get shit-stupidity to laugh at 20:22:19 ehird: quite possibly. actually another theory of mine is that time travel is possible, so that it is actually the same AI 20:22:30 i mean can you imagine superintelligent oklopol? his dumbness is why he's so clever. I think! 20:22:35 am I making sense guys? 20:23:05 which could be scary, an AI helping humanity to evolve so that it can be invented, but will it have any use for us afterward? 20:23:56 ehird: it would be dumbness on a higher level. like actually blowing up the sun to make coffee 20:24:01 *accidentally 20:24:14 okay, that sounds awesome 20:24:15 i accidentally the accidentally there, completely by accident 20:24:21 singularity here we come 20:27:46 -!- tombom has joined. 20:28:33 oh my god i want coffee 20:29:13 * oerjan tries stalking tombom on wikipedia but finds nothing 20:29:30 on his user page that is 20:29:34 i'm user:tombomp if it helps! 20:29:40 i got that far 20:29:41 i'm not exciting really 20:29:45 saw your cloak 20:29:52 oh yeah i forgot about that 20:30:04 i just wondered where you're from with that nick 20:30:16 oh wait it's LOTR inspired maybe? 20:30:28 no 20:30:31 it just rhymes 20:30:42 ah so not short for tom bombadil 20:30:50 nope 20:36:52 I did some graphviz graphs about "people who seem to be conversing together on channel" relationships. 20:37:08 i recall someone did that on #haskell 20:37:21 don't know if it's still around 20:37:33 s/on/for/ 20:38:18 although it was for short periods, it updated in realtime 20:38:52 *close to realtime, you had to reload 20:40:58 so we can find the people who only talk when nobody's listening. 20:41:17 i note that i tend to do that sometimes when logreading 20:41:26 :D 20:41:58 I have a question 20:42:04 Which esolang is currently "popular" 20:42:20 popular here? 20:42:29 yep 20:42:40 Like BF was once, then Befunge, then Underload/Unlambda 20:42:49 it does fluctuate widely... 20:42:55 As in, currently 20:43:05 which one(s) 20:43:16 well unlambda was mentioned today, zzo38 is writing an interpreter 20:43:27 having a bit trouble with continuations 20:43:54 and if redcode is esoteric (close at least) then impomatic's forth interpreter counts too 20:44:14 redcode... quite close I'd say 20:44:28 I should make a real redcode machine 20:44:48 an 8-inch LCD screen along with some chips and 2 mini keyboards for typing in programs 20:45:07 oh and INTERCAL gets pretty frequent mention, with ais523 being a maintainer and all 20:45:22 old but good 20:45:43 bf and underload have the advantage they're actually on a bot here 20:46:20 and from the number of new people who mention it, i'd say bf is always popular 20:47:21 oh and befunge too, with fungot and with AnMaster improving his cfunge 20:47:22 oerjan: i'm back. 20:47:36 i'd say a lot remains the same 20:49:49 i basically want balls to be closer to each other if they talk at the same time 20:50:01 i always knew you were a disturbing guy 20:51:23 uh oh, oklopol writing an ai? 20:51:32 Hmm... What about Crainf**k? 20:51:51 btw reddit said something about wolfram doing it (i didn't click the actual article) 20:51:55 and what's cfunge 20:52:00 Is Cfunge Befunge+C? 20:52:11 asiekierka: haven't heard crainf**k mentioned in a long time 20:52:16 i mean 20:52:18 befunge in C 20:52:19 what do you think about it 20:52:21 iiuc 20:52:34 and optimized for speed 20:53:29 answer my question I have a bunker to make 20:53:32 Also, Crainf**k looks sort of cool for me, but it's quite useless 20:53:47 bunkers won't help you when the earth is converted to computronium 20:54:08 Well, who would want to make CF apps if there is a lot of interpreters there 20:54:46 * oerjan looks up crainfuck 20:54:52 Someone should make a Ainf**k, BF+some ASM features, so you can make your own BF OS 20:54:53 lol 20:54:56 Well, I should 20:55:07 basically, recompiling BF code to ASM code 20:55:19 * oerjan fails at contacting wiki 20:55:34 Well 20:55:37 it's BF with C features 20:55:47 http://esoteric.voxelperfect.net/wiki/Crainfuck 20:56:53 I remember when my friend made this BF bootsector interpreter 20:56:57 I still have it, actually 20:57:02 Should be quite fast, eh? :D 20:57:31 but basically, most brainfuck derivatives get pretty low interest here 20:57:46 there are just too many of them 20:57:56 V looks interesting 20:58:03 What about deriatives of DIFFERENT languages than BF 20:58:13 and the "gluing parts to a skateboard to make a racing car" adage applies 20:58:32 Ok, but we lack an esolang to make OSes :( 20:58:34 or something 20:59:00 UNFUN FACT: The first days of me here (the very, very childish and lame "me") were ideas to make an OS esolang 20:59:03 the attempts to create ESO OSes tend to fizzle down too 20:59:09 why? 20:59:50 Well, i'm not talking about a whole OS 20:59:52 just a mini-kernel 21:00:14 I think befunge could handle it 21:00:38 yeah V was one of the better ones iirc (and i implemented it), although it still probably is not _used_ much... 21:01:05 -!- Sgeo has joined. 21:01:56 ais523 has a project (underlambda) to make an esolang to convert between all other esolangs. nothing beyond basic IO though, and still unreleased 21:02:33 and yeah befunge has enough add-ons to be nearly an OS by itself... 21:02:45 oerjan, what about anything + PSOX? 21:03:13 asiekierka: Sgeo here is one of those victims of fizzling down ;) 21:03:24 Has anyone actually written Hello World in V? 21:03:24 I know the bf one can be translated 21:03:27 fizzling down? 21:03:41 the attempts to create ESO OSes tend to fizzle down too 21:04:23 Hey, PSOX is mostly operational! (Also, it's not really an ESO OS unless I don't understand how you're defining ESO OS) 21:05:09 PSOX? 21:05:20 Sgeo, i define ESO OS by an OS/kernel programmed in an esolang 21:05:23 or a slight variation of one 21:05:31 Sgeo: in this context, anything which attempts to make esolangs useful beyond stdin/stdout 21:05:33 By "slight variation" I mean adding basic i/o or interrupt support 21:05:43 :P 21:05:54 asiekierka: ah you mean something else than i then 21:06:35 That I mean by "Esoteric-Kernel" 21:07:51 A kernel programmed in an Esolang 21:07:55 what about attempts of these 21:08:22 hm did GregorR not do something like an eso kernel once? 21:08:42 what do you mean? 21:09:00 that was an attempt to ping him to confirm/deny 21:09:00 He did not. 21:09:05 ah. 21:09:11 Or at least, so I didn't hear. 21:09:23 but you did some kernel thing? 21:09:27 I had some vague ambitions leading to nothing. 21:09:38 ...What? 21:09:39 ah another fizzling out victim 21:09:41 More a joke than an idea. 21:09:47 Did you attempt it? 21:10:04 oerjan, in what way did I fizzle out? 21:10:06 i had the impression you actually had something to the point of compiling 21:10:14 No. There's nothing spectacularly difficult about putting such a plan into motion, it's just amazingly opintless :P 21:10:16 *pointless 21:10:19 No, I never had code. 21:10:20 Sgeo: no one uses PSOX do they? :/ 21:10:47 oh well my vague recall fails me for once 21:10:47 What does that have to do with me fizzling out? It's everyone else's lack of interest at fault! lol 21:11:38 I wonder whether to make one esolang kernel 21:11:45 And boot it through that thing 21:11:52 I will only need to add "raw access" to the floppy 21:20:06 -!- KingOfKarlsruhe has joined. 21:24:33 -!- atrapado has joined. 21:39:13 -!- GreaseMonkey has joined. 21:41:21 -!- asiekierka has quit (Read error: 145 (Connection timed out)). 21:43:07 20:37 oerjan: i recall someone did that on #haskell 21:43:09 I was at the center, iirc 21:43:27 -!- Mony has joined. 21:43:42 asiekierka: UNFUN FACT: The first days of me here (the very, very childish and lame "me") 21:43:48 there's another asiekierka? 21:55:26 -!- impomatic has quit ("mov.i #1,1"). 21:55:44 -!- Mony has quit ("Quit"). 22:08:14 -!- kar8nga has quit (Read error: 110 (Connection timed out)). 22:34:37 -!- tombom has quit ("Peace and Protection 4.22.2"). 23:05:57 -!- atrapado has quit ("Abandonando"). 23:50:24 -!- KingOfKarlsruhe has quit (Remote closed the connection). 2009-03-07: 00:33:39 -!- Jophish has quit (Connection timed out). 00:49:52 -!- oerjan has quit ("Good night"). 02:16:31 -!- KingOfKarlsruhe has joined. 02:25:22 -!- sebbu2 has joined. 02:38:53 -!- sebbu has quit (Read error: 110 (Connection timed out)). 02:57:43 -!- olsner has joined. 03:03:00 -!- akiross has joined. 03:05:25 -!- akiross has quit (Client Quit). 03:18:32 -!- KingOfKarlsruhe has quit (Remote closed the connection). 03:25:48 oklopol: what's not true? 03:39:18 -!- Azstal has quit (Read error: 104 (Connection reset by peer)). 03:46:58 -!- Azstal has joined. 03:49:20 -!- CakeProphet has quit (Read error: 110 (Connection timed out)). 03:56:19 -!- GreaseMonkey has quit ("Client Excited"). 05:13:43 oklopol: also, bitphase.com 06:56:23 -!- asiekierk has joined. 06:56:26 -!- asiekierk has changed nick to asiekierka. 06:56:37 Hai 06:56:45 how do you implement copy-on-write? 06:56:57 Lemme check the logs to see WHAT'S GOING ON 06:57:23 too... much... logs... on... tunes.org.... 06:58:09 Well, nothing really 06:58:38 uh, so, bsmntbombdood: What do you mean 06:58:53 what do you mean, what do you mean? 06:59:12 Who did you ask "how do you implement copy-on-write?" 06:59:21 oh 06:59:23 a generic question 06:59:29 yeah 06:59:30 Well, where and why? 06:59:41 where do you want to implement and why do you want to implement 06:59:58 i'm just curious 07:00:26 do you keep a reference count or something 07:00:36 I don't know, sorry 07:01:02 update: if reference count = 1, do destructive updates; otherwise, make a copy with refcount=1, decremement refcount of original 07:05:02 I'm going to make something in I/O SNUSP 07:05:07 Core SNUSP + : FILE 07:05:28 Sets the new filename using a string from the cell memory interrupted by 0 (by default it's stdin, if you feed 0 to it it's back at stdin) 07:05:37 as in, stdin/stdout 07:11:25 -!- Sgeo has quit (Read error: 104 (Connection reset by peer)). 07:41:00 -!- kar8nga has joined. 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:01:22 -!- BeholdMyGlory has joined. 08:12:19 -!- Jophish has joined. 08:22:58 -!- kar8nga has quit (Remote closed the connection). 08:36:23 -!- BeholdMyGlory has quit ("rebooting"). 08:52:17 -!- Mony has joined. 08:55:26 plop 08:56:33 ped 08:56:36 oh wait 08:56:40 wrong calculations :( 09:47:41 -!- kar8nga has joined. 10:42:25 -!- ugo123 has joined. 10:44:09 -!- ugo123 has left (?). 11:01:01 -!- kar8nga has quit (Remote closed the connection). 11:05:01 -!- tombom has joined. 12:29:30 -!- tombom has quit ("Peace and Protection 4.22.2"). 13:22:28 -!- akiross has joined. 13:44:24 Hmm 13:44:35 BrainTape: 0% 13:46:53 -!- Mony has quit ("Quit"). 13:49:34 -!- Mony has joined. 15:12:56 -!- kar8nga has joined. 15:25:11 05:13 kerlo: oklopol: also, bitphase.com 15:25:13 what about it 15:33:42 hi akiross, you new? 15:43:24 hi ehird 15:43:33 sorry, i was afk. Yes, i'm new 15:43:39 welcome :) 15:43:44 thanks :) 15:44:28 actually, i'm developing a programming language (which is quite esoteric i think...). 15:44:48 neat! care to tell us anything about it? :) 15:45:31 but since it's really under heavy development (by only me), i didn't write anything on the wiki... so i came here to see how's the community and if it may be interesting for someone (in future) 15:46:26 well... Actually it's not for any specific reason, nor a toy language (well, neither for serious use :D), but it's like... uhm, assembly-for-message-passing :D 15:46:37 ah, interesting 15:46:40 **reason i mean use. It's general purpose 15:46:40 I can see what you mean 15:47:31 and well, the idea behind it is to write something that's fully modifiable by the user: the language itself will contain a parser object allowing to modify the syntax 15:47:49 ... 15:47:58 Not Esokernel-Project compatible 15:48:06 and well, that's it. 15:48:22 As the amount of commands added to an esolang must be 0 or 1 15:48:23 akiross: yeah 15:48:28 I've pretty much wanted that 15:48:31 since forever 15:48:41 a fully modifiable compiler 15:49:37 Well, that fits for some things 15:49:43 eheh, the problem is that... modifying the code on the fly need to handle the code itself: i can't see compilation feasible in near future. 15:49:48 asiekierka: what are you rambling about this time 15:49:53 nothing 15:49:53 -!- kar8nga has quit (Read error: 110 (Connection timed out)). 15:49:56 akiross: you can do it lisp-style 15:49:57 nothing, really. nothing! 15:49:58 asiekierka, sorry, but what's an esokernel? 15:50:01 Well 15:50:03 having the compiler modifiable at compile time from itself 15:50:05 akiross: disregard asiekierka 15:50:08 A project to make a mini-kernel thing in an esolang 15:50:11 he keeps saying he'll make an operating system in an esolang 15:50:14 :) 15:50:14 this is the 500th time 15:50:18 OS != kernel 15:50:19 or 15:50:20 I don't think he's ever got further than rambling 15:50:21 OS > kernel 15:50:24 ehird: Yep 15:50:25 ahah ok :) 15:50:29 But wishes are wishes 15:50:33 anyway 15:51:13 ehird, yes, i thought about lisp in some ways, but actually i'm not a guru of lisp and... well, it's with objects, not lists. So it remembers smalltalk in some ways 15:51:21 i agree, asiekierka 15:51:27 akiross: I meant the compiler model 15:51:32 ahh, sorry 15:51:39 i.e. you can modify the compiler at compile-time, but not runtim 15:51:40 e 15:52:55 ok. I'll hope to learn more in future... I'm quite a noob in the programming languages field 15:53:09 this is a good place to learn, assuming you're crazy :) 15:53:10 i am too, akiross 15:53:20 see: DOBELA, a failed attempt at an esolang 15:53:27 asiekierka: haven't you been here since 2006. 15:53:32 yes i was 15:53:38 eheh good, i'm a bit crazy and i learn quickly ;) 15:53:41 but being a noob doesn't equal being here for two days 15:53:47 What about Esme 15:53:51 You stop being a noob when you quite understand something 15:54:02 Well, I could say i'm less of a noob and more of a newbie but nah 15:55:25 -!- sebbu has joined. 15:55:32 Anyway, i'm also a super-noob in OSes 15:55:37 and i'm rambling for the sake of rambling 15:56:06 And... did anyone actually look at DOBELA? 15:56:38 eheh 15:57:21 -!- Slereah has quit (calvino.freenode.net irc.freenode.net). 15:57:21 -!- Ilari has quit (calvino.freenode.net irc.freenode.net). 15:57:23 -!- Jophish has quit (calvino.freenode.net irc.freenode.net). 15:57:26 -!- rodgort has quit (calvino.freenode.net irc.freenode.net). 15:57:26 -!- Robdgreat has quit (calvino.freenode.net irc.freenode.net). 15:57:28 -!- ehird has quit (calvino.freenode.net irc.freenode.net). 15:57:28 -!- Leonidas has quit (calvino.freenode.net irc.freenode.net). 15:57:28 -!- GregorR has quit (calvino.freenode.net irc.freenode.net). 15:57:30 -!- olsner has quit (calvino.freenode.net irc.freenode.net). 15:57:30 -!- oklopol has quit (calvino.freenode.net irc.freenode.net). 15:57:32 -!- AnMaster has quit (calvino.freenode.net irc.freenode.net). 15:57:33 -!- sebbu2 has quit (calvino.freenode.net irc.freenode.net). 15:57:33 -!- dbc has quit (calvino.freenode.net irc.freenode.net). 15:57:35 -!- SimonRC_ has quit (calvino.freenode.net irc.freenode.net). 15:57:35 -!- mtve has quit (calvino.freenode.net irc.freenode.net). 15:57:37 -!- ineiros has quit (calvino.freenode.net irc.freenode.net). 15:57:37 -!- Dewi has quit (calvino.freenode.net irc.freenode.net). 15:57:37 -!- Mony has quit (calvino.freenode.net irc.freenode.net). 15:57:37 -!- Asztal has quit (calvino.freenode.net irc.freenode.net). 15:57:39 -!- pikhq has quit (calvino.freenode.net irc.freenode.net). 15:58:03 ok 15:58:05 quick 15:58:10 while ehird is not here 15:58:24 so he wouldn't complain at my rambles 15:58:31 akiross: Did you see DOBELA? 15:58:48 -!- Mony has joined. 15:58:48 -!- Jophish has joined. 15:58:48 -!- olsner has joined. 15:58:48 -!- sebbu2 has joined. 15:58:48 -!- dbc has joined. 15:58:48 -!- Ilari has joined. 15:58:48 -!- Slereah has joined. 15:58:48 -!- Asztal has joined. 15:58:48 -!- oklopol has joined. 15:58:48 -!- ehird has joined. 15:58:48 -!- SimonRC_ has joined. 15:58:48 -!- AnMaster has joined. 15:58:48 -!- rodgort has joined. 15:58:48 -!- Robdgreat has joined. 15:58:48 -!- GregorR has joined. 15:58:48 -!- Leonidas has joined. 15:58:48 -!- Dewi has joined. 15:58:48 -!- pikhq has joined. 15:58:48 -!- ineiros has joined. 15:58:48 -!- mtve has joined. 15:59:08 asiekierka, i'm taking a look right now 15:59:27 ...Too late (but nah) 15:59:32 ahah it looks interesting :) 15:59:43 wait, you mean DOBELA looks interesting? 15:59:43 lool 15:59:43 i love it 15:59:43 quick netsplit! 15:59:47 akiross: This was my first and currently last esolang 15:59:47 yes, DOBELA looks interesting 15:59:47 I may find the logs from the day DOBELA was discussed on my PC 16:00:04 uhm, in 2008 16:00:08 Well, yep 16:00:19 Should be about 6-7th November 2008 16:00:21 and still aren't you sure about that 1% ?D 16:00:22 ? :D 16:00:25 Nope 16:00:31 Because there's no interpreter 16:00:50 And yes, DOBELA operates on bits 16:00:52 oh, i was just wondering... It's just a theoretical model? 16:01:00 ...Maybe 16:01:03 *is it 16:01:08 sorry, my english is really bad. 16:01:08 I would call it an "esolang-made-in-free-time" 16:01:12 No prob, akiross 16:01:18 My english was bad when I joined here too 16:01:23 ehird should recall it, amirite? :D 16:01:53 I couldn't possibly comment. 16:01:57 :D 16:03:20 ...ouch, NOW i see what did you mean with "operates on bit" 16:03:21 bits 16:03:35 dots = bits 16:03:39 ahaha it's wonderful!! 16:04:36 -!- kar8nga has joined. 16:04:49 You can flip dots, output and input them, collect them to a FIFO and use ^ | : v to configure data 16:04:54 And | is quite unclearly discussed 16:05:59 It's that something hitting the left of | goes down or up, depends on the set value thing 16:06:05 right works the same 16:06:29 an interpreter would be fun :) 16:06:30 hitting the down of | makes all dots hitting it left/right go down 16:06:42 hitting the up of | makes all dots hitting it left/right go up 16:06:48 Should be fun 16:08:16 in some way it remembers me the blackbox logic game 16:09:50 I made an update 16:10:05 well, i think I did 16:11:19 Now I did it! 16:12:33 -!- sebbu2 has quit (Connection timed out). 16:24:05 -!- BeholdMyGlory has joined. 16:37:16 -!- BeholdMyGlory has quit (Remote closed the connection). 16:47:55 -!- M0ny has joined. 16:48:46 -!- M0ny has quit (Read error: 104 (Connection reset by peer)). 16:50:08 -!- BeholdMyGlory has joined. 16:50:33 -!- M0ny has joined. 16:59:05 -!- BeholdMyGlory has quit (Remote closed the connection). 17:05:49 i've to go. See you soon! 17:06:11 -!- Mony has quit (Read error: 110 (Connection timed out)). 17:07:07 -!- akiross has quit ("Leaving"). 17:08:20 [[Apple Computer, Inc. v. Franklin Computer Corp., 714 F.2d 1240 (3d Cir. 1983), was the first successful attempt in a court of law in the United States to prove that computer software in electronic form (not visual) could be protected by copyright[citation needed]. ]] 17:08:22 omg :( 17:15:19 -!- oerjan has joined. 17:23:45 What about Esme 17:23:57 doesn't that go a bit beyond "failed"... 17:29:46 :D 17:29:50 Oh you 17:30:11 so 17:30:46 typeof [1,2] -> [1 | 2], or typeof [1,2] -> [num] where type num = ... | -1 | 0 | 1 | 2 | 3 | ... 17:30:51 maybe. 17:31:55 At what point between "food" and "inorganic matter" does something start being considered inedible? 17:32:15 mcdonalds 17:32:15 A rock is clearly inedible, but if I ground that rock into powder and mix in a little bit of gravy, is that now edible? 17:32:21 LOL, good answer. 17:33:51 ^ul ((ESME. )(Esme, )):^!S(~:^:S*a~^~*a*~:^):^ 17:33:52 ESME. Esme, Esme, ESME. Esme, ESME. ESME. Esme, Esme, ESME. ESME. Esme, ESME. Esme, Esme, ESME. Esme, ESME. ESME. Esme, ESME. Esme, Esme, ESME. ESME. Esme, Esme, ESME. Esme, ESME. ESME. Esme, Esme, ESME. ESME. Esme, ESME. Esme, Esme, ESME. ESME. Esme, Esme, ESME. Esme, ESME. ESME. Esme, ESME. Esme, Esme, ESME. Esme, ESME. ...too much output! 17:34:59 salt is edible, in moderation 17:35:13 what is that 17:35:27 as is ice. water is potable. 17:36:05 GregorR: salt is both food and inorganic matter. 17:36:34 asiekierka: an underload program for printing the thue-morse sequence, modified slightly to look like Esme. 17:36:49 Oh, oerjan said that. 17:36:59 Hmmm, touché... 17:43:00 aw great 17:43:17 How to install GRUB 17:43:23 without a linux handy 17:44:04 sigh. 17:45:10 Aside: bugs like http://hackage.haskell.org/trac/ghc/ticket/3079 amuse me. 17:45:40 XD 17:45:48 Incidentally, I made a compiler: (pre-sorry for the flood; but it should be just 6 lines) 17:45:50 fis@eris:~/src/java$ cat primes.f 17:45:53 { writes all prime numbers between 0 and 100 } 17:45:55 99 9[1-$][\$@$@$@$@\/*=[1-$$[%\1-$@]?0=[\$.' ,\]?]?]# 17:45:58 fis@eris:~/src/java$ java -cp bin:/usr/share/java/bcel.jar fi.zem.jvmfalse.Compiler primes.f 17:46:01 fis@eris:~/src/java$ java -cp .:bin JVMFalse ; echo 17:46:04 97 89 83 79 73 71 67 61 59 53 47 43 41 37 31 29 23 19 17 13 11 7 5 3 2 17:46:12 okay how is that special? 17:46:14 i mean i dun get it 17:46:15 So it does False -> java VM bytecode. 17:46:16 :| 17:46:24 ...ic...&? 17:46:56 Well, I don't think announcing any compilers here is very out-of-the-ordinary. 17:47:07 ah ok. 17:47:17 fizzie: how does it handle clozrs 17:47:23 There are no closures in False. 17:47:35 well kind of. 17:47:42 they're just closures on nothing. 17:48:21 Right, well, [...] is compiled so that the insides of the function is compiled, it's placed somewhere, and a piece of code to push a pointer to that function is generated wherever the [...] was. 17:48:28 even C has closures on nothing :) 17:48:57 There's nothing especially *special* about this; it's more of a continuation to yesterday's discussion on False being easy to compile. It can't be that difficult, if even I could do it. 17:49:11 I may write False->asm, why not. 17:49:17 Speed for your enterprise false! 17:49:20 False->asm would be useful 17:49:23 for me 17:49:29 No. No it would not. 17:49:49 fizzie: do you handle ß? 17:50:27 Well, in the sense that the flush() method of the FalseIO interface is called on ß. In the default implementation it calls out.flush(), where out is by default System.out. 17:51:02 i just meant the funnay charactar. 17:51:04 :D 17:51:33 Oh. Well, yes. I think it uses the platform's default character encoding, whatever that may be, to read the contents. So I think here you need a utf-8 ß in the file. 17:53:22 -!- tombom has joined. 17:53:41 You want False? You can't _handle_ the False. 17:54:02 groan 17:54:17 i considered trying it in german 17:54:45 but too little brain 17:55:11 Java bytecode is a rather friendly target for False, being stack-based itself. Although the operand stack is local to a method, so all False code needs to be inside a single method; and the ! call/return thing goes through some double-jumping because (probably for safety reasons) JavaScript doesn't really have a computed-goto-like instruction. (Except the 'ret' in a jsr/ret pair, but the return address type is so magical you can't put it inside any sort of stac 17:55:57 wait, JavaScript? 17:56:08 Did I say JavaScript? I meant Java. 17:56:11 Heh. 17:56:34 xD 17:56:36 Or Java VM, anyway. 17:56:47 afety reasons) JavaScript doesn't really have a computed-goto-like instruction. (Except the 'ret' in a jsr/ret pair, but the return address type is so magical you can't put it inside any sort of stac 17:56:51 you got cut off there 17:57:00 Oh. -- any sort of stack with any JVM opcodes.) 17:58:50 Consider installing the 'splitlong' script if you're using irssi. 18:00:06 I just resorted to building a big table of all possible jump targets (beginnings of non-inlined [...] blocks and all ! sites) and use indices of that table as return addresses / function pointers, plus a single tableswitch opcode. In Java it would probably look like the whole program was inside a "while (true) { switch (pop()) { ... } }" structure, and jumps were written as "push(x); break;". 18:01:23 Normally I just manually say any long-looking sentences to myself to see if I get cut off; this time I didn't rememer. A script might be fine too. 18:55:36 Hey, someone paste me a utf-8 beta. 18:57:19 fizzie? :P 18:57:26 ah, there 18:58:17 please be advised that ß from above is not a beta, but an ess-zed [sp] 18:58:55 which is part of iso-8859-1 18:59:18 an actual greek beta is beyond my current setup 19:07:01 (this is not meant to imply more than a very slight possibility that you were being confused about this) 19:10:58 fizzie: does your compiler handle ` for inline jvm? :D 19:11:18 and a initially contains cmd line args? and first line of input unless you flush is the command line opts joined by " "? 19:22:21 goddamnit 19:22:23 C is slow 19:22:30 lol wat 19:23:33 http://pastebin.ca/1355386 19:23:41 you'd think that'd be pretty fast, right? 19:23:46 lol wat, a slightly less known temple complex in cambodia 19:24:01 strstr(str, "foo") (written in assembly in glibc) is twice as fast 19:24:01 bsmntbombdood: well... no? 19:24:06 it has tons of branches. 19:24:07 :P 19:24:12 bsmntbombdood: strstr isn't just in asm 19:24:14 it uses freaky tricks 19:24:22 which you could probably write in C 19:24:40 i doubt boyer-moore is gonna be faster in this case 19:25:28 i'll get rid of some of the branches and find out what happens 19:25:49 bsmntbombdood: may I interest you in the *((int*)s) trick? 19:25:54 it is very efficient use of his time. 19:26:14 i can't really compare more than one character at a time here 19:26:42 lookup table? :-D 19:27:12 yeah 19:27:27 hm you should only need to check each third char initially... 19:27:35 is that what boyer-moore does? 19:27:41 * oerjan googles 19:28:15 oerjan: yeah 19:33:57 -!- tombom has quit. 19:34:59 ehird: genius! 19:35:10 using a couple lookup tables makes it as fast as strstr 19:35:22 \m/ 19:35:26 I am clearly the best C coder ever. 19:35:46 kerlo: oklopol: what's not true? <<< err, the thing you said? 19:35:56 er, actually it's faster 19:36:02 -!- k has joined. 19:36:08 match takes 4.5 seconds, strstr takes 6 seconds 19:36:21 yay 19:36:25 -!- kar8nga has quit (Nick collision from services.). 19:36:27 -!- k has changed nick to kar8nga. 19:36:32 kerlo: if you're referring to that causality thing, you pretty much said implication implies equivalence, which is simply not true. 19:36:43 bsmntbombdood: neat 19:36:50 how big are these strings :P 19:36:56 short 19:37:21 anyway probably some sleep before i explode 19:37:23 -> 19:37:54 kerlo: also what about http://www.bitphase.com/? 19:37:56 Let's see. "If lack of correlation implies lack of causation, then correlation implies causation." 19:38:29 that has a name... 19:38:46 kerlo: yeah that's a well-known logical error no one sane would ever make 19:38:48 How do you get "implication implies equivalence" from that? 19:39:14 Let me rephrase it, then. 19:39:27 "If lack of correlation is evidence for lack of causation, then correlation is evidence for causation." 19:39:44 Do you agree with me now? 19:40:24 kerlo: (a=>b)^(!a=>!b) is just another way to do equivalence with implications 19:40:37 What does ^ denote? 19:40:40 and 19:40:55 you're saying the first implies the latter, which would mean a=>b implies a<=>b 19:41:02 http://en.wikipedia.org/wiki/Denying_the_antecedent except switched 19:41:12 if i'm not mistaken, do realize i can't keep my eyes open. 19:41:32 * oklopol is a bit too tired for interactive conversation 19:41:32 I venture that if A is evidence for B, then B is evidence for A. 19:42:20 kerlo: you should probably read the newest xkcd 19:42:23 you might learn something 19:42:32 I did. That's why I'm saying this at all. 19:42:49 i know you did, that's why i said that. 19:42:57 kerlo: the first part is much stronger evidence than the second though 19:43:49 the first is proof of absense, the second just absense of disproof 19:44:36 Okay, enough venturing. 19:44:44 Theorem: If A is evidence for B, then B is evidence for A. 19:44:57 yeah absense of *that specific* disproof; just "A is evidence for B" simply says nothing about the other direction in general 19:45:18 kerlo: stating stuff seemingly formally does not make it rigorous. 19:45:31 I'll make it rigorous and give you a proof. 19:45:32 and sorry for being cranky, not sure i mentioned this yet but i'm pretty tired 19:45:37 oh cool 19:45:40 * oerjan swats kerlo and gives him an F -----### 19:45:42 i'll read it when i'm back to my senses 19:45:52 Would you agree with this statement: P is evidence for Q if and only if the probability of P(Q|P) > P(Q). 19:45:56 I think kerlo enjoys winding people up by trying to prove the idiotic. 19:46:05 http://pastebin.ca/1355402 19:46:10 how can i make that faster? 19:46:23 while(c = *str++) { 19:46:30 maybe summat *((int*)s)?!?!?!?!?!?!?!?!?! 19:46:33 <_< 19:46:42 kerlo: i guess that's a reasonable definition in some cases 19:46:44 case 2: 19:46:44 if(c == 'o') 19:46:45 return 1; 19:46:47 can you avoid the comparison? 19:47:36 i don't think so, because you have to break out somewhere 19:47:43 Well, take Bayes' theorem: P(A)P(B|A) = P(B)P(A|B). Rearrange it: P(A)/P(A|B) = P(B)/P(B|A). 19:47:44 true 19:47:46 lessee, that's equivalent to P(P /\ Q) > P(Q)*P(P), huh. 19:48:01 bsmntbombdood: but, *((int*)s)? 19:48:07 ehird: and? 19:48:18 Cool, oerjan just proved it using symmetry. 19:48:20 whaddya mean and? 19:48:39 what about *((int*)s)? 19:48:45 Anyway, with this rearrangement, it's obvious that if P(A|B) > P(A), then P(B|A) > P(B). 19:48:51 bsmntbombdood: use it to read instead of one char at a time? 19:49:11 Assuming, of course, that all probabilities are positive. If one of them is negative or zero, you've got bigger problems. 19:49:16 ehird: my computer doesn't have memory for a 4 gigabyte lookup table 19:49:29 bsmntbombdood: that's why you use a mask 19:49:38 then you are doing the same thing 19:49:49 and it won't be any faster 19:49:57 nope 19:50:01 me & ais523 helped comex recently 19:50:04 lemme dig up a link 19:50:07 you may be interested to know that my final solution is 19:50:20 comex: a slower one? :P 19:50:26 http://pastie.org/409469 19:50:44 specifically, instead of nulling out the characters after the space, the lookup table includes every possibility 19:50:52 erm 19:50:54 isn't that huge 19:51:06 not really, most of the morse codes are three characters anyway 19:51:26 and it's faster, only one branch 19:51:41 but I found out that it was only taking ~20ms, and the other ~180ms was JNI being slow :p 19:51:48 heh 19:51:54 comex: 20ms for a 6 megabyte string? 19:51:57 that's awesome. 19:52:04 can you pastie the resulting asm? 19:52:14 i don't get it 19:52:16 sec 19:52:23 isn't java supposed to be open source now? but I can't find JNI's implementation anywhere 19:52:27 bsmntbombdood: that decodes morse code 19:52:36 just alphabetical 19:52:52 note the huge STUFF line 19:54:56 why on earth is that an array of chars rather than an array of shorts? 19:55:19 because they're separate values? it doesn't matter :u 19:56:15 gcc on my desktop gives me http://pastie.org/410377 19:56:16 isn't 2*(a%381) longer than stuff? 19:56:37 bsmntbombdood: #define STUFF 19:56:39 that line 19:56:42 is like 23948578349345 columns wid 19:56:43 e 19:56:45 oh ok 19:56:56 #define STUFF 63, 1, 63, 1, 63, 1, 63, 1, 77, 3, 65, 3, ravenous black hole 19:56:58 that's the lookup table 19:57:06 blame pastie for not wordwrapping 19:57:09 comex: wow, that's really compact 19:57:20 is this with all the optimizations? 19:57:23 yeah 19:57:26 unsigned short ink = stuff[a%381]; would be a lot easier to read 19:57:36 comex: no, blame you for not writing stuff sensibly 19:57:44 bsmntbombdood: he was optimizing 19:58:08 bsmntbombdood: yeah, but when writing nomic stuff I have to use pastebin because pastie doesn't wordwrap 19:58:25 should be static const stuff = { 19:58:33 it is 19:58:34 in the function body 19:58:36 /* 70 columns ...*/ 19:58:39 /* 70 columns ...*/ 19:58:42 etc 19:58:44 oh shut the fuck up 19:58:52 nobody gives a shit how pretty it looks, it's trivial code 19:59:02 could've at least used \ when defining the macro 19:59:05 well then i might actually be able to see the whole thing! 19:59:11 horizontal scrollbar 19:59:12 bsmntbombdood: it's not mainly because it was easier for me to copy and paste from a python script if it was all on one line 19:59:14 or, click raw 19:59:17 and copy it into an editor 19:59:18 :p 19:59:43 (I was in the sauna.) No, it doesn't do ` for inline jvm, but I was thinking of extending ` for FFI to Java or something; the "strange" False command-line-as-input thing it doesn't do at all. 19:59:52 could've made the python script print a header, then include that header 20:00:02 it was a quick hack 20:00:06 fizzie: what about the 'a' thing 20:00:08 how did you generate the table? 20:00:36 ehird: What is the 'a' thing? 20:00:36 bsmntbombdood: brute force modulos until it found one that gave unique results for each possibility 20:00:48 fizzie: a-z variables; a is initialized to a pointer to argv 20:00:50 Oh, right, that 'a' thing. 20:00:55 so you can read it and + it to access argv 20:00:57 and your code isn't portable across endianness 20:01:03 bsmntbombdood: yeah, I know 20:01:12 just do an #if on the endianness 20:01:16 and have two tablse 20:01:16 :P 20:01:17 if I cared I would fix it and do that :p 20:01:31 -!- asiekierka has quit (Read error: 113 (No route to host)). 20:01:59 * comex tries to find the right include files for compiling it on linux 20:02:33 Yes, no, it doesn't do that. The peek/poke ;/: operations work only for a-z (which actually push 0-25 as the varadr). I don't see where that 'a' thing is specified either. 20:02:37 Oh, there. 20:02:51 so it's not really false 20:02:51 :P 20:02:59 maybe i should see if i can write that a little more sensibly 20:03:15 fizzie/ehird; what're you ralking about? 20:03:23 Well, it's false-ish. 20:03:32 we're ralking about rizzie's ralse interpreter in rava 20:03:34 more sensible, less fast is probably how it'll turn out :( 20:03:36 err 20:03:37 compier 20:03:40 compirer 20:04:03 bsmntbombdood: if you adopt the ugly, you get 20ms to morse-decode a 6mb string :P 20:04:15 not possible 20:04:20 bsmntbombdood: well, the original assignment was to implement it in Java using a binary tree 20:04:21 I got creative :p 20:04:25 bsmntbombdood: why not? 20:04:28 his does that 20:05:28 I wonder why linux gives less accurate results for clock() 20:05:30 comex: "...in java" :P 20:06:07 bsmntbombdood: hey, java was weird 20:06:29 i assume all the crud in there is so you can call the function from java? 20:06:33 yeah 20:07:05 in my java implementation, even though it was written so that it should be O(n), the time taken was increasing way faster than that 20:07:24 when I saw that, I gave up :p 20:07:47 (charAt and indexOf only, no new string creation or anything) 20:10:50 if you want it done right, you have to do it yourself i guess 20:13:16 what level class is this? 20:15:04 -!- tombom has joined. 20:31:50 yeah like i could sleep after that many liters of coffee :< 20:32:42 for sound sleep, always make sure your blood percentage exceeds your coffee percentage 20:33:03 kerlo: Would you agree with this statement: P is evidence for Q if and only if the probability of P(Q|P) > P(Q). <<< heh, no. i guess i should've asked what you meant before starting to insult you :D 20:33:06 * oerjan has only had one cup today 20:33:14 Yay. 20:33:24 kerlo: by that definition you're right, i think. 20:33:53 i'd define A implies B by P(B|A)>e for some positive e, probably. 20:34:07 and that's not a two-way street 20:34:23 err 20:34:37 or maybe for e=0.5. 20:34:43 Hmm. 20:35:22 So if P(B) = 0.7, then A implies B for all A independent of B. 20:35:26 Fun stuff. 20:36:06 yeah and the moon being yellow implies 1+1=2 20:36:29 that's just how i'd define it, A implies B means if you know A is true, then B is probably true. 20:36:37 * kerlo nods 20:37:03 -!- oerjan has set topic: WARNING: Mad (Statistical) Science | Logs: http://tunes.org/~nef/logs/esoteric/. 20:37:13 Hmm. This chewing gum tastes like rubbing alcohol all of a sudden. 20:37:42 kerlo: that means a little more chewing will set your gums on fire 20:37:56 Cool. 20:38:04 I wonder if this is the taste of glycerol. 20:38:07 the gums of your teeth, too 20:39:06 blah 20:39:10 head 20:39:11 is 20:39:18 broken 20:39:34 yeah it cannot distinguish space from return 20:40:32 i had a great comeback to that, but it would've been many, many lines, and you wouldn't have seen its last word. 20:40:47 so i just decided to do this meta stuff 20:40:52 i hope you enjoy it 20:41:09 i never meta stuff i didn't enjoy 20:42:27 ...you're chokes are killing me 20:42:54 and your spelling 20:43:11 * oklopol is listening to a song coauthored by kerlo and himself 20:43:21 I didn't know I coauthored a song. 20:43:30 What did I contribute? 20:43:45 the main melody 20:43:59 i wrote it on gp and added some random stuff, and now it found it 20:44:02 *now i 20:44:53 Can you send it to me? 20:45:27 well it's a really short snippet but sure 20:48:08 i just wanted to try out that transition i heard in my head when i listened to yours 20:50:02 and the second part is just a random continuation to it, i think i just hacked it up without that much thought, i don't usually go for anything that conventional 20:50:19 -!- bsmntbombdood has quit (Read error: 110 (Connection timed out)). 20:56:13 -!- bsmntbombdood has joined. 21:01:17 kerlo: did you not get it or just didn't feel like commenting? 21:01:44 not saying there's anything to comment, just asking because i have nothing else to do :P 21:03:02 Sorry, my dad asked me for help with something. 21:03:38 I wonder if I'll recognize this. 21:03:57 no worries, i'm not sure what you could possible want to comment about it anyway :P 21:05:50 Yes, I do recognize that. 21:06:35 was that the background you were thinking? i mean i was going songsmith there 21:07:37 -!- KingOfKarlsruhe has joined. 21:08:09 I was thinking something more like the music in Spore, I guess. Something suggestive of being underwater. 21:08:19 Since Spore takes place underwater. :-P 21:08:26 also i should make more music, kinda getting boring listening to this same stuff all the time 21:09:33 kerlo: right i don't really do atmosphere :| 21:09:44 -!- madbr has joined. 21:10:27 Add arpeggiated B minor and C major chords. 21:10:36 And tell me how to spell "arpeggiated" while you're at it. 21:10:51 well looks alright to me 21:10:52 but i can check 21:10:59 I imagine it is. 21:11:02 oerjan, hi 21:11:03 yeah 21:11:03 correct 21:11:09 ho 21:11:10 (and hi everyone else) 21:11:14 kerlo: together at the same time? :o 21:11:17 oh and befunge too, with fungot and with AnMaster improving his cfunge 21:11:18 AnMaster: but those are about sound, not the host) 21:11:19 ? 21:11:36 kerlo: arpeggiated b minor and c major where exactly? 21:11:48 AnMaster: someone asked what esolangs were popular at the moment 21:11:52 -!- sebbu2 has joined. 21:12:00 hm 21:12:03 befunge+c 21:12:04 ... 21:12:09 I actually had some ideas 21:12:11 about FFI 21:12:28 oerjan, to allow calling external code from funge 21:12:37 however the tasks seems very difficult 21:12:50 I mean, expressing prototypes and such from funge 21:13:05 and using libffi to construct calls on the fly 21:13:20 a better approach may be having the user make a simple module that can be useful 21:13:23 used* 21:13:25 from cfunge 21:13:30 like dlopen()ed 21:13:36 No, not at the same time. 21:14:02 kerlo, err what language is this? 21:14:16 kerlo: well i don't know how to pluralize "where". 21:14:33 AnMaster: um, I'm talking about music in English. 21:14:47 oh not talking to me 21:14:50 I was replying to madbr when I said "no, not at the same time". 21:14:52 kerlo, ah. 21:14:59 So, where. 21:15:20 kerlo, there are some esolangs based on music 21:15:30 kerlo: ohh, i thought madbr was some irc contact of yours, and asked you when you'd meet :P 21:15:38 hah no way 21:16:39 The main melody goes like this, if I'm not mistaken: (.) F# B D . . E . . B . . . G C D . . E . . C . . . (F# B) 21:17:16 yeah 21:18:29 -!- Slereah has set topic: There is no "i" in UBUNTU | WARNING: Mad (Statistical) Science | Logs: http://tunes.org/~nef/logs/esoteric/. 21:18:33 what song& 21:18:51 -!- sebbu has quit (Read error: 145 (Connection timed out)). 21:18:52 -!- sebbu2 has changed nick to sebbu. 21:19:27 Add arpeggiated B minor and C major like this: (G) C E F# B D F# B D F# B D F# B D G C E G C E G C E G (C E) 21:19:49 oh, i see 21:19:50 Omit the G C E at the beginning the first time around. 21:19:57 that's like B phrygian 21:20:00 grappa rapida 21:20:22 kerlo: so Bm on top of the E..B.. too? 21:20:58 oklopol: yes. 21:21:49 reminds me of the transformers theme (except that's in A I think) 21:22:23 listening to other stuff, so i can't say for sure what it'd sound like 21:22:32 seems like that E'd be a waste 21:23:13 madbr: congrats for perfect pitch 21:23:23 I don't have perfect pitch 21:23:30 err k 21:23:42 F is sharp, A is not used, everything else is natural, and I don't know what the tonic is but suspect it's B. 21:24:05 just a keyboard right next to my computer :D 21:24:20 oh 21:24:39 kerlo: Is it some song or something you're composing? 21:25:19 madbr: not willfully. :-P 21:25:37 I mentioned a melody once, and then oklopol used it. 21:25:40 kerlo: yeah i don't think you can have Hm 21:25:46 i mean 21:25:47 Bm 21:26:03 in the second bar 21:26:06 Bm, C? 21:26:25 oklopol: how are you dividing this into bars? 21:26:31 Well, E is the 4th of B 21:26:40 And specifically Bm 21:26:49 kerlo: so that there are two bars of Bm in yours. 21:27:07 madbr: well yes, clearly it doesn't work on paper 21:27:09 F# B | D . . | E . . | B . . | . G C | D . . | E . . | C . . | . 21:27:10 Afaik that's a weak note but no problem over Bm 21:27:27 i just don't think it sounds good. 21:27:34 tonics divided into bars, but no gin? 21:28:02 C E | F# B D | F# B D | F# B D | F# B D | G C E | G C E | G C E | G 21:28:07 Bm, Em, Bm, C could fit too 21:28:16 kerlo: okay i had twice as long bars 21:28:37 F# B | D . . E . . | B . . . G C | D . . E . . | C . . . 21:28:45 madbr: yeah Em is what i had, and what's the obvious chord 21:28:53 C E | F# B D F# B D | F# B D F# B D | G C E G C E | G C E G 21:29:02 that or Bm11 21:29:34 yeah of Bsus4 or Aadd9. 21:29:51 *or 21:29:51 oklopol: so you don't like the chords I gave? 21:30:08 kerlo: no i think the second bar kills the melody. 21:30:11 but 21:30:32 do realize i'm used to my own chords, i may just not understand your vision. 21:30:52 oklopol: I'd like you to send me a MID of it. 21:31:06 Not that I don't have a piano and some ability to play it. 21:31:07 it's a short snippet, esoteric ideas will usually sound crappier without company. 21:31:13 MID is easier. :-P 21:32:03 k wait a sec 21:32:55 http://www.vjn.fi/oklopol/music/jeesjess.mid 21:34:32 kerlo, what does "arpeggiated" _mean_? 21:34:36 Em7 Fm7 perhaps? 21:34:39 i don't see how that'd sound good in any context, so i'm assuming you either explained or represented it wrong 21:34:41 I can't find it in a dictionary 21:34:46 so I can't translate to Swedish 21:34:48 AnMaster: play the notes sequentially, not simultaneously. 21:34:50 err 21:34:51 As an arpeggio. 21:34:55 kerlo, oh right 21:34:56 explained or thought it wrong 21:35:12 kerlo, what was the melody supposed to be? 21:35:22 oklopol: I don't think you aligned it right. 21:35:25 I tried it on my piano, but not knowing any timing information... 21:35:32 what is it, some sort of musical tarpit? :D 21:35:34 quite nice tune 21:35:43 madbr, there exists such 21:35:49 forgot the name 21:35:52 kerlo: well how about you do it. 21:35:53 The first F# of the chords is aligned with the first D of the melody. 21:35:58 there was one with music as only storage 21:36:04 Okay. What program are you using to do this? 21:36:14 AnMaster: the melody isn't supposed to be anything in particular. 21:36:20 madbr, with a "Schönberg command" for 12 random notes 21:36:21 iirc 21:36:39 haha 21:36:48 madbr, it was one of the entries to the esolang contest of some year 21:36:53 don't remember which 21:36:59 kerlo: so don't listen to the first three notes of the guitar, it's not like they are the ones that sound bad. 21:37:06 -!- Sgeo has joined. 21:37:35 Okay. 21:37:44 hm? 21:37:45 http://www.stephensykes.com/choon/choon.html 21:37:49 madbr, that was it ^ 21:37:55 what's that file pastebin that works? 21:37:58 In that case, it sounds perfectly fine to me. 21:38:15 madbr, also has the "john cage" command. Pause 21:39:09 i was going through ~, cleaning it out, and look what i find... 21:39:11 http://filebin.ca/hdjbby 21:39:24 oklopol professing something strange about chainsaws 21:39:32 I thought you were referring to the dissonance at the final repetition of F# B D overlaid with . G C. 21:39:36 hm :) 21:39:53 kerlo: no. the E 21:40:24 bsmntbombdood, original file name? 21:40:26 no dissonance, just sounds worse than Em imo. 21:40:28 also what does it mean? 21:40:30 finnish? 21:40:33 I don't know Finnish 21:40:39 AnMaster: ask oklopol 21:40:48 madbr, yes it is Finnish, I know that, but I don't speak the language 21:41:00 * AnMaster can handle Swedish and English 21:41:09 was just trying to guess what language it was 21:41:24 heh, i love my voice 21:41:32 oklopol, and what does it mean? 21:41:51 listen closely to the last word 21:42:00 then ask again if you're still interested. 21:42:24 oklopol, I can't hear the last word really, it is cut short it seems 21:42:39 bsmntbombdood, also what was the original filename 21:42:41 * kerlo makes some MIDIs 21:42:45 oklopol, anyway what did it mean? 21:42:51 the original filename was "terat.wav" 21:42:53 dunno what that means 21:43:11 So a John Cage isn't simply a zero 21:43:32 AnMaster: fuck me gently with a chainsaw 21:43:41 the blades feel great on my genitals 21:43:48 well maybe "wonderful" 21:43:49 :D 21:43:56 ok... 21:44:10 oklopol, you are weir 21:44:11 (bsmntbombdood's sentence, i was just the delivery boy.) 21:44:12 weird* 21:44:17 anyway sleep time 21:44:22 and yeah, i guess i might be a little 21:44:24 -> 21:44:38 bsmntbombdood, you wanted that said? 21:44:49 AnMaster: it is my fantasy 21:44:56 I don't want to know more 21:45:04 nor why in Finish 21:45:04 he needed to explain it to his finnish hooker 21:45:12 madbr, -_- 21:47:08 kerlo: okay this is getting ridiculous 21:47:14 i just realized 21:47:16 we're both right again 21:47:17 what is? 21:47:32 you're thinking of the "F# B" notes as a... wait what's the term 21:47:40 anyway that they start before the first bar 21:47:42 right? 21:47:51 oklopol, chord? 21:47:55 in that case, Bm *would* work for the second bar. 21:48:05 "levée" in fr. 21:48:17 oklopol, anything works. As Schönberg proved ;P 21:48:21 oklopol: well, I said "omit the C E the first time around". You actually have B D where I have C E. 21:48:24 (but, in that case i'm less impressed by the melody) 21:48:43 i thought schonberg actually proved that most things don't work :) 21:48:53 lament: :) 21:48:57 lament, well he became famous 21:49:03 I don't like his music 21:49:13 and almost killed classical music?% 21:49:15 but it all depends on how you measure "works" 21:49:16 kerlo: i'm talking about the two first notes, so i'm not sure what you're saying. 21:49:34 he became famous in what was basically the age of mass hysteria where everybody went crazy and started claiming that bad art was good. 21:49:38 ohh 21:49:41 "kerlo: F# B | D . . E . . | B . . . G C | D . . E . . | C . . ." 21:49:45 well, here you say it :D 21:49:49 madbr, hm? Personally I like classical music, as well as more modern music (like Debussy) 21:49:58 i did not read that, sorry. 21:50:00 I consider classical music to only refer to the classical period 21:50:02 tenchincally first bar is | D . . E . . | 21:50:14 AnMaster: Debussy was way before schonberg killed classical 21:50:24 Well, I mean classical music in the large sense of course 21:50:35 lament, yes. But schonberg didn't kill classical. Since classical refers to the classical period 21:50:36 kerlo: so, my updated opinion is we're both right, and that our disagreement was because of the snippet being too short. 21:50:42 Just like "tonal" can have both a large meaning or a small one 21:50:47 in Swedish we have a better name for the larger sense: konstmusik 21:50:52 meaning art music 21:50:55 literally 21:51:10 madbr: yes, i thought it was | . F# B D . . | 21:51:11 vad konstig 21:51:12 schonberg didn't really kill anything, music is still around 21:51:15 the melody is more interesting that way. 21:51:17 modern classical music just sounds utterly silly 21:51:17 imo 21:51:24 oerjan, you don't have it in Norwegian? 21:51:39 oklopol: okay. 21:51:40 actually no, though that was a pun 21:51:41 anyway, back to sleep, just came to apologize for once again not actually listening to anyone else, just assuming they're idiots. 21:51:57 Anyway I don't like all of the music Debussy produced. 21:51:58 WHICH YOU STILL PROBABLY ARE, I JUST HAVEN'T CAUGHT YOU YET 21:51:58 :P 21:51:59 -> 21:52:00 lament: no, but the output of classical composition stuff in universities is disappointing because of people like him 21:52:45 madbr: the output of classical composition stuff in universities is disappointing because it's a bad way to teach composition 21:52:51 nothing to do with schonberg 21:53:24 oerjan, hm 21:53:32 -!- Arrogant has joined. 21:53:32 21:51 AnMaster: modern classical music just sounds utterly silly <-- considering your general reaction to these things, 'classical' can be omitted for you. 21:53:49 ehird, what I was talking about the word... 21:53:51 madbr: as i understand it, academical classical composition basically spends years showing you how to compose in the styles of dead people. 21:53:52 not the music 21:54:02 as in the term "modern classical music" 21:54:06 yes, don't let that detract from my joke 21:54:16 lament: probably depends on the place though 21:54:20 ehird, your joke is highly irrelevant 21:54:30 your butt is highly irrelevant. 21:54:32 ehird, Plus I *do* like some modern non-classical music. 21:54:39 AnMaster: actually we seem to have the term (kunstmusikk) 21:54:41 so anyway, it turns out this works in C: 21:54:42 ehird, just you would never believe what 21:54:44 int stk[1]; 21:54:51 gives you an infinite length array 21:54:54 (at global level) 21:54:58 (I knew it worked inside functions0 21:55:07 ehird, for example would you believe I liked Leonard Cohen's earlier works? Or Enya? 21:55:13 Just some examples :P 21:55:18 AnMaster: I wouldn't if you hadn't already said that 50 times in the past. 21:55:25 madbr: not really, i mean, what else can they teach? 21:55:29 ehird, no I haven't 21:55:32 more like 5 21:56:12 what does -fomit-frame-pointer actually do, btw 21:56:46 ehird, it omits the frame pointer register reservation, making back traces impossible, but freeing up a general purpose register for use by the register allocator 21:56:52 ehird, as google could have told you 21:57:01 lament: well, what I've had was "analysis" class where they basically taught classical style, and "composition" where they taught, ahem, "avanced" techniques 21:57:04 21:56 AnMaster: ehird, as google could have told you 21:57:10 don't you see any irony in that? 21:57:16 ehird, yes, I was being ironic 21:57:20 AnMaster: also, google only gives me things like 'Suppress creation of frame pointers on call stack. Frees the EBP register for other uses.' 21:57:21 over you asking in here 21:57:24 madbr: was it all a huge waste of time? 21:57:29 INSTEAD OF GOOGLING WHICH YOU ALWAYS SUGGEST I SHOULD DO 21:57:30 which is patently useless, as I didn't know what the fuck a frame pointer was 21:57:41 CAPS LOCK MAKES YOUR ARGUMENT MORE VALID RAAAAR INTERNET RAGE 21:57:44 ehird, it is used for stuff like back traces 21:57:52 if I ask here, I've already google. 21:57:53 *googled 21:58:09 ehird, to find where the return address is iirc 21:58:16 I'm not 100% sure on details 21:58:20 hmm 21:58:26 globally, where does 'int stk[1]', I wonder? 21:58:30 lament: Depends, not all of it, but I wonder how those people can say they're making music with a straight face :D 21:58:33 It's mutable, so not in one of the .o sections. 21:58:36 The heap? 21:58:40 ehird, what? Grammar? 21:58:48 es 'int stk[1]' go, I 21:58:51 ^ patch 21:58:56 ah right 21:58:58 that I know too 21:59:08 ehird, if you have a global variable like that it goes into the .data section 21:59:11 in the *.o file 21:59:12 well 21:59:13 AnMaster: .data is mutable? 21:59:15 that depends 21:59:19 it may go into .bss 21:59:28 ehird, yes. .rodata isn't 21:59:31 ah 21:59:32 however this is for ELF 21:59:33 oh damnit 21:59:37 madbr: mass insanity, i'm telling you. 21:59:38 -!- oerjan has quit ("Gah tired"). 21:59:38 I don't know about Mach-O 21:59:40 because with {int stk[1]} i'm successfully doing "stk[100] = foo" 21:59:44 which is nice 21:59:45 that foo matcher from before is slower that strstr on long strings 21:59:51 madbr: the past 100 years is kind of the dark age in the history of culture. 22:00:03 madbr: it seems to be mostly over though 22:00:04 ehird, err, that may cause nasal demons 22:00:23 as you probably know 22:00:24 lament: dunno... frankly I wonder if it's a religion or something 22:00:25 to hell with nasal demons, it works well and does what I want ("just put this shit anywhere, man") 22:00:35 if it breaks I accept full responsibility :D 22:00:47 ehird, anyway, doing stk[4097] = foo is less likely to work 22:00:53 depends on how large the data segment is 22:00:57 ah 22:01:03 but since x86 page size is 4096 bytes.. 22:01:05 well, FALSE only guarantees a 20kb stack iirc 22:01:13 seems tied with "postmodernism" (which is like the most concentrated form of that sort of thought) 22:01:14 wait 22:01:15 so I could possibly break it into segments 22:01:21 int is 4 bytes 22:01:22 madbr: mass hysteria - see the dutch tulip mania for a similar example 22:01:22 meaning... 22:01:24 madbr: postmodernism is so stupid. 22:01:25 * AnMaster consiuders 22:01:28 considers* 22:01:34 it would break by 1/4 of that 22:01:36 And with some marxism tied in it 22:01:44 AnMaster: before you're blabbing about this, 22:01:51 ehird, anwyay you are likely to end up overwriting stuff like stdout 22:01:54 keep in mind that my next solution is to put this on the c stack. 22:01:57 With inline asm. 22:02:04 So, you might wanna keep quiet. 22:02:07 ehird, that is the data segment stuff needed by stdio 22:02:10 what are we talking about? 22:02:14 AnMaster: hm. 22:02:16 bsmntbombdood: Evil. 22:02:20 It's like a ball of pseudointellectualism 22:02:34 ehird, just do it the well defined way, it is way less likely to crash 22:02:49 AnMaster: what's the well-defined way to have a global VLA that works in C89 22:03:18 Usually with some french intellectuals 22:03:20 ehird, there is also stuff like __data_start and __dso_handle 22:03:38 ehird, on heap do the 1 variant 22:03:44 and malloc with larger size 22:03:46 it works 22:03:54 Right, I don't want to continually check bounds & realloc 22:03:56 ehird, but you were asking about global/static variables right? 22:04:00 Yes 22:04:07 This is for the global data stack of the language 22:04:09 ehird, even with VLAs you need to check bounds. 22:04:23 C won't do it 22:04:47 I'm fine crashing on that 22:05:21 ehird, also VLAs == on stack. Flexible array members is the thing in C99 structs 22:05:35 yes, I meant VLA in a generic sense 22:06:13 [8221`29184`9336`4`50510`20142`65338`50510`11008`]a:{ allocmem (size-mem) } 22:06:18 somehow I doubt this will work on non-Amiga :D 22:06:26 (i` writes the raw machine code i to the output file) 22:06:32 ehird, then the portable way is probably: mv main.c main.cpp and replace with std::stack>>,...> 22:06:42 ehird, there is no trivial VLA in C 22:06:48 AnMaster: then I'll stick with what I have til it breaks :P 22:06:51 that will work magically 22:06:58 ehird, how large array do you need? 22:07:06 as large as possible. 22:07:16 alloca? 22:07:17 what is your target system? 22:07:21 portable C 22:07:27 no mmap()? 22:07:28 hm 22:07:30 for values of portable limited to the real world 22:07:49 ehird, idea: malloc a huge chunk, if it fails try again with a smaller size 22:07:55 until you find the largest working one 22:08:02 then use it 22:08:03 yeah that'd kill my startup time 22:08:17 well true 22:08:21 what are you doing anyway? 22:08:27 ehird, implement the stack as a linked list, very very slow 22:08:30 bsmntbombdood: writing a FALSE compiler, since fizzie did 22:08:32 AnMaster: urg 22:08:34 what's false? 22:08:47 and use mmap 22:08:54 http://strlen.com/false/ 22:08:56 because it will only allocate when you write 22:08:57 bsmntbombdood, he said portable C... 22:08:57 duh 22:08:58 old esolang 22:09:05 ehird, also did you say compiler? 22:09:08 so you generate ASM? 22:09:09 AnMaster: fuck non posix 22:09:17 "The doctors did what had to be done: save the life of a girl of nine years old,'' he said, adding that "in this case, the medical profession was more right than the church.'' 22:09:18 ehird, then just use the system stack 22:09:20 AnMaster: I generate C. But I'm adding an asm backend after this, the C is just to check it worked. 22:09:23 ehird, in the compiled program 22:09:25 erm 22:09:27 Wrong channel 22:09:29 ehird, wait a sec.... 22:09:31 I have an idea 22:09:34 AnMaster: I'm calling c functions 22:09:38 so using the c stack would fail badly 22:09:42 dammit 22:09:43 brk(), sbrk(): _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE >= 500 22:09:45 :/ 22:09:49 heh 22:10:07 ehird, it would allow you to use the C stack however 22:10:10 wait 22:10:15 C heap* 22:10:18 in an easy way 22:10:25 ehird, just make sure to never malloc anything else 22:10:25 i don't understand the problem here 22:10:29 I'm just doing int stk[1] until I get an overflow. 22:10:39 ehird, you are going to get memory corruption 22:10:47 I'll let you know when that happens, then fix it. 22:10:58 ehird, I don't know Mach-O exactly, but on Linux you would hit it after 1-2 pages 22:11:17 hm wait 22:11:24 data segment is *last* 22:11:26 well 22:11:29 apart from .bss 22:11:54 and .bss is for "zero fill at load time" 22:12:03 while .data loads the actual data from the binary 22:12:03 so 22:12:10 you are going to get page faults yes 22:12:23 by writing out into the void of the heap 22:12:24 i thought he wanted portable? 22:12:30 bsmntbombdood, yes 22:12:30 why are you talking about elf? 22:12:41 but his suggestion is even less portable than sbrk() 22:12:47 it is unportable to *EVERYTHING* 22:13:01 $ ulimit -s 22:13:01 8192 22:13:05 .. 22:13:08 an 8 mb stack is enough for anyone 22:13:18 bsmntbombdood, he want to do this on heap anyway 22:13:26 or should at least 22:13:30 i mean, the stack for the program he's running 22:13:36 just malloc 8 megabytes 22:13:36 AnMaster: how many more times do I have to say "I will fix it when it comes up" 22:13:39 before you stop whining about it? 22:13:51 bsmntbombdood: technically, 20kb would be enough. 22:13:57 since that's what the old FALSE used 22:14:08 then what are you on about? 22:14:13 ehird, just one last thing: Likely you are going to get hard to detect corruption first. Only after are you going to segfault 22:14:30 so it may seem to run fine even with your solution while your stack is corrupted 22:14:36 or rather, your heap 22:17:37 ehird, idea: char stack[1024*20]; 22:17:53 no duh. 22:18:07 i really do not understand this discussion 22:18:37 ehird, you could use the C stack, and that would be fastest. But probably you would run out pretty quickly 22:18:50 ehird: AnMaster: how many more times do I have to say "I will fix it when it comes up" 22:18:50 22:13 ehird: before you stop whining about it? 22:19:01 ehird: do it the right wya 22:19:03 hm 22:19:41 ehird, just saying that you _will_ most likely get hard to debug issues. Like memory corruption in libc, or of other variables. Stuff on heap 22:19:52 I would thank you if you hadn't told me 50 goddamn times already!! 22:20:17 ehird, you seem to confuse 50 and 5 a lot 22:20:22 what exactly are you trying to do? 22:20:22 this is the second time today 22:20:30 bsmntbombdood, duh. He said that above. 22:20:41 bsmntbombdood, A FALSE to C compiler 22:21:54 and why is allocating a fixed size stack on the C heap not acceptable? 22:22:26 bsmntbombdood, ask eh ird 22:22:49 go ahead, highlight him, ask it. Don't be shy! 22:22:51 * AnMaster runs 22:22:55 ehird: well? 22:23:07 this is all AnMaster talking, actually 22:23:14 if you want to know something about the warped model he has of my compiler, ask him 22:23:15 eh? no 22:23:26 wrapped memory is fun 22:23:27 :) 22:23:36 (yes I realise that wasn't relevant at all) 22:26:44 wonder if gcc can optimize 22:26:45 *top++ = (int)f0; 22:26:46 *top++ = (int)f1; 22:26:48 x = *--top; y = *--top; 22:26:54 (to x = (int)f0; y = (int)f1; ofc) 22:27:27 ehird, what about modifying top? 22:27:39 AnMaster: top++; top++; --top; --top; 22:27:40 no net effect 22:27:43 well, rather were top points to 22:27:54 wait, what are you talking about? 22:28:06 ehird, gcc still has to write to the location top points to. 22:28:16 no it doesn't 22:28:26 well, it can't know it is a stack 22:28:30 the above is semantically equivalent to x=(int)f0; y=(int)f1; 22:28:37 -!- Arrogant has quit ("Leaving"). 22:28:38 well, hm 22:28:41 yeah, I guess gcc is idiotic 22:28:45 ehird, yes but only because top is the top of a stack 22:28:55 it can't know the values aren't useful to you 22:28:56 above top 22:29:04 so it will probably do it to: 22:29:05 ehird: wright your own optimizer 22:29:07 -!- M0ny has quit ("Quit"). 22:29:16 i'll get wright on it 22:29:25 *BADUM TISHHHHH* 22:29:30 ehird, x = *top = (int)f0; y = *(top+1) = (int)f1; 22:29:32 something like that 22:29:56 right, those two are from separate parts 22:30:02 to merge them would be a pain on the backend 22:30:05 ehird, hm? 22:30:10 *top++ = (int)f0; 22:30:10 *top++ = (int)f1; 22:30:12 and 22:30:15 x = *--top; y = *--top; 22:30:17 right 22:30:18 are generated right after each other 22:30:19 not as one 22:30:49 ehird, generate an IR and then merge the nodes in the graph 22:30:52 no 22:30:58 or something 22:31:02 ehird, why not? 22:31:08 that's a pain :P 22:31:36 well.. 22:31:47 I guess so 22:31:50 ps: 22:31:51 you won't get perfect speed 22:31:52 - if you do not write a flush (ß) at the start of a program that 22:31:52 processes the input to the output, you will get a as 22:31:53 first input: this is actually the commandline. example: 22:31:56 a.out blabla out 22:31:58 then a.out will first read "blabla" as a line, then the contents 22:31:59 of "in". 22:32:02 i hate that. 22:32:12 ehird, oh why? 22:32:24 btw 22:32:28 because I have to convert argv to a space separated string, and then every time I read check if we're done reading argv yet 22:32:28 in what encoding 22:32:29 ? 22:32:33 ... 22:32:34 what do you mean 22:32:42 " if you do not write a flush (ß)" 22:32:49 whatever the amiga used 22:32:49 is that ß as UTF-8? 22:32:52 the original compiler was for the amiga 22:32:55 its implementation defined 22:32:58 hm ok 22:32:59 I handle both utf-8 and iso 22:33:02 the examples use iso 22:33:08 windows style I think 22:33:33 ehird, but do you handle... UTF-EBCDIC?! 22:33:37 yes that exists iirc 22:33:46 no. No I do not. 22:33:54 Patches unwelcome. 22:33:54 http://en.wikipedia.org/wiki/UTF-EBCDIC 22:34:11 it is one of the strangest ideas I have come across 22:34:43 strlen((char *)argv) + argc - 1 /* i so hope this works */ 22:34:48 that is strangest ideas in the charset encoding area 22:34:59 ehird, err 22:35:00 what? 22:35:10 that assumes argv is one argument 22:35:16 oh, right, dammit 22:35:19 that would get string length of argv[0] 22:35:21 that is all 22:35:21 grr 22:35:27 + 22:35:31 char **argv 22:35:36 yes, and 22:35:41 that's why I casted it 22:35:42 ehird, they aren't even after each other in memory 22:35:52 aagh 22:35:57 hate hate hate 22:36:02 wtf is this shit 22:36:03 come on 22:36:10 ehird, why is it so hard to handle? 22:36:19 I mean. cfunge has to handle it. 22:36:19 bsmntbombdood: i'm lazy 22:36:20 :) 22:36:22 And I don't complain 22:36:26 also, I'm not actually asking 22:36:36 wait, I don't need to strdup it there 22:36:38 I think 22:36:42 I'm just whining before fixing it and AnMaster gives a 10 minute response about how he would never complain 22:36:42 * AnMaster considers 22:37:05 * AnMaster goes optimising away a strdup call in cfunge 22:39:42 hmph, stpcpy isn't portable. it should be 22:43:13 stp? 22:44:41 ehird, and nor is strdup() btw 22:45:14 ehird, also I prefer strlcpy 22:45:21 which is *BSD specific 22:48:51 what do you mean strcpy isn't portable? 22:49:00 % ./a.out 22:49:01 a 22:49:02 zsh: bus error ./a.out 22:49:02 CONFORMING TO 22:49:03 SVr4, 4.3BSD, C89, C99. 22:49:04 huray 22:49:09 Yes, but stpcpy is not. 22:49:13 ehird, I told you so 22:49:17 22:44 AnMaster: ehird, and nor is strdup() btw 22:49:20 AnMaster: no, it's not that 22:49:21 stfu 22:49:27 i know this because the stack was EMPTY 22:49:31 hm ok 22:55:40 Someone should work on implementing the ABCDEF language *ducks* 22:56:02 Sgeo, specs? 22:56:18 http://esolangs.org/wiki/Special:Search?search=ABCDEF&go=Go 22:56:22 didn't find anything 22:56:27 http://www.harderweb.de/tmp_jix/allofthem.txt 22:56:33 http://esolangs.org/wiki/Adjudicated_Blind_Collaborative_Design_Esolang_Factory 22:58:56 Sgeo, that is TOO incoherent to be implementable 22:59:33 no it isn't 22:59:44 nothing there is particularly glarly 22:59:46 gnarly 22:59:48 go ahead and implement it then 22:59:55 ehird, what about the GregorR rule? 23:00:02 what about it 23:00:09 it is contradicted 23:00:15 ... no it's not? 23:00:22 those are command definitions. 23:00:27 -!- kar8nga has quit (Remote closed the connection). 23:00:37 oh right 23:02:27 anyway I won't implement it 23:03:31 -!- MizardX has quit ("kåmpjuter köttdaon"). 23:03:49 -!- MizardX has joined. 23:05:22 2. [S] [dest_var,] [n_var,] m_var 23:05:22 calculates the arm data op of n_var and m_var storing the result in dest_var (treating them all as 33 bit registers) 23:05:25 flags get stored when S is set (like on a real arm) 23:05:27 i love that bit 23:07:21 ehird, can't find it in FALSE spec? 23:07:39 oh talking about ABCDEF? 23:10:23 ß (alt-s)--ß{ flush() } 23:10:25 hm 23:10:27 almost 23:10:30 AltGr-s 23:10:32 makes that here 23:10:39 night 23:16:18 -!- tombom has quit ("Peace and Protection 4.22.2"). 23:19:22 Why is it always "Illegal type in constant pool"? And why can't it give the constant pool index with the supposedly illegal type while it's at it. 23:31:28 That static-analysis bytecode verifier is not liking my stuff. "Expecting to find object/array on stack". 23:33:27 fizzie, language? 23:33:36 Uh, Java? 23:33:42 ah ok 23:33:45 Well, False, in a way. 23:33:48 night really 23:36:38 Ha! The power of open sores: gij-4.3's version of that same error includes also the location: java.lang.VerifyError: verification failed at PC 10 in JVMFalse:main((Lfi.zem.jvmfalse.FalseIO;)V): incompatible type on stack 23:40:03 Next up: VerifyError: Inconsistent stack height 2 != 3. I have a feeling using the jvm operand stack as the False stack won't really work, since the VM is so really intensely boring about what kind of code it wants. 23:42:33 Yes, it complains at the jump-table spot of the code, which is indeed entered with various stack depths. Meh. It sounds like an unfixable restriction. I mean sure, I could use some explicit stack object and push/pop method invocations, but it sounds really boring. (And optimize by using the operand stack inside basic blocks. But that's just boringly boring.) 23:44:25 Yes, it's there in the "4.8.2 Structural constants" of the Java VM specification: "If an instruction can be executed along several different execution paths, the operand stack must have the same depth (§3.6.2) prior to the execution of the instruction, regardless of the path taken." 23:44:34 what are we talking about? 23:45:10 I have this compiler (maybe too fine a word) which translates False into Java VM bytecode, and it uses the Java VM's operand stack as the False stack. 23:46:15 But the VM has these all kinds of silly restrictions; I can't really require that the False stack depth is always the same for a particular instruction, since it wouldn't make sense at all. 23:47:47 Wow, writing that "compiler" was one rather colossal waste of time. 23:56:16 Great, a bus error. 23:56:20 Programmer got hit by a bus. 2009-03-08: 00:00:31 fizzie: is primes.f meant to take 5 years? 00:06:27 Not really, no. 00:07:37 Then I have an infinite loop. 00:14:04 * bsmntbombdood rewrites that morse code thing 00:16:05 --- .-. .-.. -.-- 00:24:58 urgh 00:46:42 -!- KingOfKarlsruhe has quit (Remote closed the connection). 00:54:08 nevermind 00:54:15 i got bored writing transition tables 00:59:00 AnMaster, ehird: GregorR rule? 01:08:48 my homebrew python decompiler is quickly getting too complicated to maintain :( 01:13:50 -!- Jophish has quit (Connection timed out). 01:22:37 -!- GreaseMonkey has joined. 01:24:11 oh, god 01:24:13 I was killed by a typo 01:24:16 'JUMP_ABSOLUTe' 01:24:40 well, it decompiles this 01:24:42 http://pastie.org/410598 01:59:58 ok i need some morse code test vectors 02:04:02 looks good 02:05:55 now for the speed 02:06:47 comex: how where you measuring time? 02:13:38 you said an 8mb buffer in 20 milliseconds right? 02:14:03 i'm doing 8mb in 30 milliseconds right now 02:14:34 and my computer is probably slower than yours 02:21:29 anyway, my code, let me show you it 02:23:04 http://pastie.org/410634 02:37:56 fine then, ignore me 02:39:54 state machine? 02:40:04 anyway it was 6mb 02:40:10 here, let me get the same buffer 02:40:17 but that's not a fair comparison either 02:40:31 c+p my code and run it on the same machine if you want 02:41:04 mm 02:43:40 it's also in-place, nice 02:49:57 ok, on my desktop here are the results: 02:49:59 ]% gcc -O3 -mtune=native -funroll-loops -o morse morse.c && ./morse 02:50:00 189843.000000 02:50:02 171221.000000 02:50:09 former is yours, latter is mine 02:50:36 with this http://pastie.org/410644 02:51:06 I switched to 80M :p 02:52:26 your code ends up shorter in assembly, interesting 02:53:44 if I change -O3 to -Os, yours is faster 02:54:07 mainly because the division isn't optimized into multiplication 02:55:19 -!- calamari has joined. 03:08:24 damn 03:10:27 that mod in yours can't be good 03:19:06 wonder how to make it faster 03:47:09 can't see anything :( 05:05:20 well i got rid of the branch in the inner loop using a couple lookup tables, but it made it slightly slower 05:05:45 heh 05:06:30 oh wait, i think i may have something 05:19:48 yay it worked 05:22:44 http://pastie.org/410691 05:23:25 510 milliseconds instead of 600 06:03:02 -!- madbr has quit (Read error: 104 (Connection reset by peer)). 07:14:59 So, I finally have a MIDI file of that little tune up. 07:15:07 http://normish.org/ihope/kerlo.mid 07:18:18 -!- asiekierk has joined. 07:19:09 I don't get it 07:19:14 Hi asiekierk 07:19:52 hi 07:20:10 what are you discus--- oh wait i'll check the logs 07:21:29 -!- zzo38 has joined. 07:21:32 kerlo, cool, but a bit short and repetitive 07:21:34 Hi zzo38 07:22:15 * asiekierk is currerntly listening to: Au Clair de la Lune (1860 recording) 07:22:40 * Sgeo wishes Yahoo! Music Jukebox wasn't the only thing on here capable of playing MIDIs 07:22:55 The idea of akiross, it seems some versions of INTERCAL allow you to change syntax during runtime so that's one possible way.... 07:23:16 You can just include a compiler in the app and recompile the app in memory 07:23:23 but that kind of sucks 07:24:59 Also, another thing to add to something like INTERCAL with interleave operator, but allows any length of bits (even infinite), you could do things like zero interleave negative one makes one third, etc. 07:25:30 Sgeo: that's why it's called a little tune. :-) 07:25:40 And which INTERCAL is the shortest Hello world output program, maybe CLCLC-INTERCAL. It is: PLEASE ;1 <- #2 07:25:49 DO ;1 SUB #1 <- #17947$#20775 07:26:02 DO ;1 SUB #2 <- #5204$#21386 DO READ OUT ;1 07:26:32 Darn, it's not calculator writing, is it. 07:26:33 I should make something like a movie script esolang 07:26:39 The 077 confused me for a moment. 07:26:51 Something like Shakespeare but "more than 100 people can read it" 07:27:01 Epic poem esolang. 07:27:07 Epic movie esolang. 07:27:32 No, not calculator writing. It is Baudot, encoding 6 Baudot characters in each cell of the array 07:28:00 Another esolang idea is one with mahjong tiles? 07:28:42 No 07:28:54 the Epic Movie Esolang (E! ME) wouldn't work 07:29:17 "Three times, Thylakos, Eater of All, attempted to increment status_code; the first two times, he was not successful, but on the third, Apollo descended from the clouds, and told him, 'Hark, Thylakos! That variable is not for you to increment, for it is a private variable of the class NetworkConnection!'" 07:29:30 ... 07:29:30 wait 07:29:32 it would 07:29:39 but a foreign can't really write it 07:30:05 Do you have another idea of CLCLC-INTERCAL 07:32:27 Good night all 07:32:31 In your opinion, does 1 + 2 pow 2 + 2 pow 4 + 2 pow 6 + 2 pow 8 and so on make -1/3 in my opinion it does because in binary it is .......010101010101. and if you multiply it by three you get negative one, so therefore it is correct. Or you think the result is infinite? I would like to know your opinion 07:34:29 -!- Sgeo has quit ("Leaving"). 07:34:55 Do you like to use FOWER instead of FOUR, or FIFE instead of FIVE 07:35:48 What is the first vowel in "FIFE"? 07:36:17 Also, I think it does make -1/3, but only 2-adically. 07:36:26 It is "I" isn't it? Or is there a vowel missing 07:36:44 But what sound is it? 07:38:13 What does 2-adically means exactly I never learned 2-adically math. But I did see it mentioned in the book ROAD TO REALITY and all it says is the numbers are allowed to be infinite on the left instead of on the right. The rest I just did myself and don't know about proper 2-adically and whether mine is proper 07:39:15 And I think the sound is "I" sound like FIVE but possibly slightly different because of the following consonant but that is what I heard anyways is the standard for air traffic control, although nobody uses it and nobody cares 07:45:09 O, and do esolang people have any preferences having to do with mahjong game 07:50:09 Yes 07:50:51 zzo38, were you replying to me 07:50:53 or what 07:51:15 Yes I am replying to you asiekierk!i=africalo@078088180066.elb.vectranet.pl 07:51:22 whew 07:51:33 How's your console specification going on? I think you made one... 07:52:12 also, you should reply like this to a private message: /msg asiekierk Yes 07:52:43 Yes I did but I am writing software and specifications more a bit, and then one day I need to get a computer hardware and stuff, and then I can write the software more, testing it, make a company, and a few more things, make manual, etc, and then it will be complete. 07:53:25 O sorry I missed that the message was private but now I notice it. 07:54:00 Well, this was a command 07:59:32 -!- zzo38 has quit ("Thanks I sleep now. But I will continue to read the log if you want to reply to my question(s)/etc"). 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:04:32 -!- Asztal has quit (Remote closed the connection). 08:05:07 -!- kerlo has quit (Read error: 60 (Operation timed out)). 08:21:49 -!- GreaseMonkey has quit ("Client Excited"). 08:24:25 -!- calamari has quit ("Leaving"). 08:50:03 -!- psygnisfive has joined. 08:55:08 o 09:18:39 -!- oklopol has quit (Read error: 110 (Connection timed out)). 09:18:42 -!- oklopol has joined. 09:20:09 oko 09:22:12 okokokokokoko 09:23:08 <3 09:33:29 ;) 09:41:13 -!- tombom has joined. 09:55:55 -!- asiekierk has quit (Read error: 60 (Operation timed out)). 09:57:10 -!- Judofyr has joined. 09:58:20 -!- KingOfKarlsruhe has joined. 09:58:29 so this guy paul pietroski from university of maryland 09:58:45 -!- asiekierka has joined. 09:58:48 * asiekierka is probably ill 09:58:53 is working on a very interesting version of semantic logic that looks more like a sort of combinatory calculus 09:59:08 * asiekierka doesn't need to go to school :P 09:59:13 * asiekierka therefore can work on his projects 09:59:57 in which there are strictly monadic predicates and highly restricted dyadic predicates 11:25:22 AnMaster, ehird: GregorR rule? <-- in ABCDEF 11:25:38 -!- Asztal has joined. 11:51:13 -!- Jophish has joined. 11:54:00 -!- kar8nga has joined. 12:23:57 -!- Mony has joined. 12:51:06 Deewiant, there? 12:51:11 I disagree with mycology 12:51:24 FILE's 1R at end of file should reflect IMO 12:51:43 What's R 12:52:32 Deewiant, read 12:52:47 R (h n -- h) Read n bytes from file to buffer 12:52:51 also: 12:52:57 "All file functions on failure act as r." 12:53:11 What does Myco say currently 12:53:40 BAD: 1R reflected 12:53:49 a bug (IMO) in cfunge made it pass 12:53:51 And what does it expect >_< 12:53:57 that is, it didn't reflect 12:54:14 Deewiant, mycology expects 1R at end of file to not reflect 12:54:18 it seems 12:54:35 Yeah, right 12:54:39 Well, hmm 12:54:45 Deewiant, but shouldn't it reflect if it read 0 bytes 12:54:50 IMO the logic should be like this: 12:55:18 bytes_actually_read = fread(buffer, bytes_program_want, filepointer) 12:55:28 if (bytes_program_want != bytes_actually_read) { 12:55:31 Yep, indeed 12:55:48 if (feof(filepointer)) { 12:55:58 if (bytes_actually_read == 0) 12:56:07 return reflect(); 12:56:17 } 12:56:35 that is, it shouldn't reflect if it managed to read *some* bytes 12:56:43 Deewiant, what do you think? 12:56:47 What CCBI does now is essentially 12:56:52 if (wanted != read) { 12:57:00 if (ferror(handle)) { 12:57:05 clearerr(handle); 12:57:10 return reverse(); 12:57:13 } 12:57:23 else assert (feof(handle)); 12:57:25 } 12:57:58 Deewiant, this is the logic I *want* http://dpaste.com/9631/ 12:58:18 Deewiant, you forgot to clear the feof? 12:58:29 Clear the feof? 12:58:39 The function feof() tests the end-of-file indicator for the stream pointed to by stream, returning non-zero if it is set. The end-of-file 12:58:39 indicator can only be cleared by the function clearerr(). 12:58:58 Would I want to clear feof for some reason? 12:59:04 shouldn't you? 12:59:27 Clearing ferror makes sense since it could be that it'll work later 12:59:35 mhm 12:59:35 But if you hit EOF, why clear it, EOF is EOF 12:59:48 Deewiant, if you seek back you need to clear it 12:59:49 afaik 13:00:12 I mean, it will be there even if you seek or write 13:00:39 I may be wrong, but it seems like that to me 13:00:43 from the man page 13:01:05 That seems really stupid to me 13:01:05 wait no 13:01:08 fseek clears it 13:01:09 Why should seek fail if it's at the EOF :-P 13:01:26 fwrite won't 13:01:43 Deewiant, anyway, what do you think about the logic I suggest in http://dpaste.com/9631/ ? 13:01:43 Also stupid 13:01:57 Deewiant, why? 13:02:16 Well why should fwrite fail just because it's at EOF 13:02:21 Or if it just doesn't clear it, then that's fine 13:02:28 Deewiant, no it wont fail. It just won't clear it 13:02:34 Yeah, and that's fine 13:02:42 Since it /is/ at EOF so of course it should indicate that :-p 13:02:46 anyway: what about the logic in http://dpaste.com/9631/ ? 13:03:06 Why continue if it couldn't read what it wanted 13:03:15 IMO reverse always if read != wanted 13:03:17 Deewiant, because I read some bytes 13:03:23 it seems logical to return them 13:03:24 Yes, but not as many as were requested 13:03:46 Oh, right, you don't write them to funge-space if you return 13:03:52 Deewiant, true, but then we should also seek back to the point we were before the read 13:03:55 But you should still reverse IMO 13:03:58 hm 13:04:07 Why seek? 13:04:34 well either seek back to the point before the fread() that failed to read as much, or write the read bytes to funge space 13:04:48 Yeah, OK. I say do the latter. 13:04:50 considering that we might not be reading from a normal file I think it is stupid to try to seek back 13:04:54 And reflect. 13:05:03 what if I opened a fifo file with FILE? 13:05:42 What about it? 13:05:59 Deewiant, should the rest of the space we would have written otherwise be zero filled or should we just write as many bytes as we got? 13:06:15 Write what you got, there can be zeroes in the file too 13:07:11 I guess the program could figure it out with L... 13:07:30 Deewiant, so will you fix mycology to not say BAD on R reflecting due to end of file? 13:08:43 Deewiant, as usual RCS specs doesn't say anything about what should happen btw 13:09:12 And RC/Funge doesn't reflect, of course :-) 13:09:16 UNDEF? 13:09:21 probably 13:09:28 Meh 13:09:32 I don't know if you test anything else with 1R there 13:09:33 or not 13:11:57 Deewiant, so you mean something like this: http://dpaste.com/9640/ 13:12:49 Yep 13:17:45 Deewiant, so when will you upload a fixed mycology btw? 13:17:55 When I feel like it 13:18:02 right 13:41:48 Deewiant, does the funge spec say that you have to use line buffered output anywhere? 13:42:05 I mean, is there anything forbidding fully buffered output? 13:42:07 y has that bit that says whether you use unbuffered or not 13:42:23 For that, I suppose not, it's just not a good idea in practice :-P 13:42:43 Deewiant, it makes cfunge 20% faster on mycology. Sounds like a good idea to me ;) 13:42:54 No, it's a very bad idea :-P 13:43:09 Deewiant, actually it is an option in cfunge nowdays, -b 13:43:35 it also uses a larger buffer than default 13:45:24 AnMaster: better idea: make , a no-op 13:45:36 very funny 13:45:53 anyway I always call fflush() before reading input. 13:45:57 Or even better: do a single getchar() at the end, if you get 'y' then flush your buffer, otherwise don't 13:46:07 Deewiant, huh? 13:46:19 hah 13:47:22 Deewiant, it is a bad idea to make sarcastic comments about cfunge. You won't have anything left to say for jitfunge then 13:47:38 My comments apply to *funge 13:48:05 What will you say if picfunge will happen 13:48:08 then 13:48:53 -!- kar8nga has quit (Remote closed the connection). 13:49:15 I'll keep saying what I've been saying 13:50:22 What if someone writes a CPUfunge 13:51:05 Same differenec 13:52:54 mhm 13:53:01 Deewiant, this applies to CCBI too? 13:53:23 Is it a *funge? ;-) 13:53:52 Deewiant, depends on what sort of match that is 13:53:57 but cfunge doesn't match either 13:54:29 a *funge? <-- regex clearly 13:54:38 :P 13:55:32 or if the regex is: *funge 13:55:38 then it matches CCBI's expanded name 13:55:44 it contains befunge 13:55:48 What if it's a glob pattern? 13:56:39 Deewiant, hm, does glob imply end of line? 13:56:45 I forgot 13:56:52 * AnMaster uses regex mostly these days 14:01:16 Deewiant, anyway I think fizzie isn't working on jitfunge currently 14:01:41 but I think efunge will soon be ready for a first basic release. 14:01:56 it won't yet have ATHR, that work is ongoing but far from completed yet 14:07:18 -!- BeholdMyGlory has joined. 14:34:04 -!- tombom has quit ("Peace and Protection 4.22.2"). 15:32:07 -!- MigoMipo has joined. 15:54:58 -!- oklopol has quit (Read error: 113 (No route to host)). 15:55:15 -!- ais523 has joined. 15:55:45 [14:55] [Notify] ehird is online (irc.freenode.net). 15:55:47 [14:55] [Away] ehird is away: Not online right now. Please leave a message after the beep. *BEEP* 15:55:55 thanks, client 15:56:02 maybe you should check away /before/ notifying me? 15:56:22 or maybe I should blame it on the IRC spec for ISON and AWAY interacting so strangely 16:09:56 err 16:09:57 wth 16:10:04 I think I found a CCBI and cfunge bug 16:10:06 need to debug more 16:11:53 Deewiant, have you tested non-cardinal wrapping ? 16:11:57 what, a bug that affects both of them? 16:12:00 I mean in y and x at once 16:12:02 also, non-cardinal wrapping is a nightmare 16:12:10 AnMaster: yes, it's in Mycology. 16:12:14 ais523, I tried wrapping -30,-18 16:12:18 although I think I know how it's meant to work 16:12:21 it ended up wrong I think 16:12:38 I think ccbi and cfunge are both wrong 16:12:45 they both use same algorithm 16:12:56 is mycology also wrong? 16:13:35 I doubt CCBI's wrong since I do what the spec says, verbatim 16:13:52 I need to debug a bit more 16:14:57 well 16:15:46 I tried several other values so it can't just be a coincidence that I land on the x, I tried changing the delta slightly to x and I still run into same issue. 16:15:50 * AnMaster pastebins 16:16:03 http://rafb.net/p/YDQG4330.html 16:16:33 Deewiant, I was trying to figure out where the x should land. But it lands on itself 16:16:51 and I don't think that is correct, when I changed 0a9+- to 0a8+- 16:16:55 and it still does that 16:17:19 Why not? 16:17:28 That's exactly what's supposed to happen if no other cells are in the path 16:17:29 Deewiant, why should it be correct? 16:17:34 Lahey lines imply that you end up back where you started after making one loop around fungespace 16:17:40 that's by definition 16:17:41 The requirements for a line in Lahey-space are the following: Starting from the origin, no matter what direction you head, you eventually reach the origin. If you go the other way you reach the origin from the other direction. 16:18:01 sure. But shouldn't you hit some other cell first? 16:18:16 only if there's another cell on the line 16:18:26 as far as I can see one is 16:18:38 for instance, if your delta is (-2000000000,6), there are only three cells on the line 16:19:05 yes indeed 16:25:21 hm 16:26:26 actually this is wrong I think. If the first jump is large enough that you end up in range in the other end already 16:26:45 Deewiant, ^ 16:29:36 I was wondering about this esolang 16:29:42 where there is a 240x160 map 16:29:45 with 8 8x8 balls 16:29:53 And blocks are also 8x8 16:29:57 Each block can have an assigned function 16:30:05 and balls start moving in a predefined way 16:30:09 you can have 1 or 8 at the beginning 16:30:12 or 2, 3, 4, 5, 6, 7 16:30:20 sort-of sounds like you're deliberately making sure it isn't TC 16:30:24 although that isn't necessarily a bad thing 16:30:25 no 16:30:33 I just wanted to have an esolang that I can watch 16:30:44 And 240x160 is in fact for the DS version 16:30:52 ah 16:30:55 30x20 in cells, btw :P 16:30:57 reminds me of Paintfuck 16:30:59 and will work on the GBA too 16:31:03 oh way 16:31:04 wait* 16:31:05 that's a very watchable esolang 16:31:13 I should do a painting language 16:31:16 BackFlip's fun to watch too, actually, but sub-TC 16:32:34 Deewiant, ais523: http://rafb.net/p/QAzoUk37.html 16:32:38 does that seem right? 16:32:51 As in, there will be I/O commands: "Get_Button" for Input and "Draw_Line", "Draw_Pixel" for output 16:32:55 * ais523 vaguely wonders whether to repaste that somewhere else based on the ehird demands 16:33:00 Get_Button would be o 16:33:01 21:22:44 http://pastie.org/410691 16:33:03 Draw_Line would be - 16:33:05 that's hot. 16:33:09 oh god shut up asiekierka 16:33:10 Draw_Pixel would be ` 16:33:14 oh god shut up ehird 16:33:17 you are in a maze of twisty little at signs, all alike 16:33:28 nobody cares about your same esolang repeated 5 thousand times over 70 lines that you give us every month 16:33:33 well 16:33:35 that's a new idea 16:33:47 is it? because i've heard it from you 20 times 16:33:50 Prove it 16:33:58 no. 16:34:00 Haha 16:34:06 therefore we can't know if you really DID 16:34:08 AnMaster: the x is menat to be (-20,-30)? 16:34:14 my Befunge is rusty... 16:34:33 ais523, the x is at x = 18, y = 28 16:34:47 and with a delta of (-20,-30)? 16:34:54 there are no other cells inside your fungespace on that line 16:34:59 well, inside the allocated portion 16:35:04 sometimes I think AnMaster is the most annoying person in here. i retract that, he's super awesome. 16:35:04 and the rest is full of spaces so it'll be skipped 16:35:13 ais523, I think it should end up near the @ in the lower corner in the program 16:35:20 why? 16:35:35 going one space forawrd is (38,58) which is outside your range 16:35:38 ais523, -1 on edge gets you to first cell on opposite edge 16:35:42 NO! 16:35:45 that's what you're doing wrong 16:35:49 23:32:31 In your opinion, does 1 + 2 pow 2 + 2 pow 4 + 2 pow 6 + 2 pow 8 and so on make -1/3 in my opinion it does because in binary it is .......010101010101. and if you multiply it by three you get negative one, so therefore it is correct. Or you think the result is infinite? I would like to know your opinion 16:35:50 23:34:55 Do you like to use FOWER instead of FOUR, or FIFE instead of FIVE 16:35:56 fungespace isn't a torus 16:35:57 ais523, it technically does. That is the effect. 16:35:58 it's lahey-space 16:36:01 who needs acid when you have quick-fire zzo38 questions 16:36:03 ais523, sure. But the effect is that 16:36:08 no it isn't 16:36:08 that's all I'm saying 16:36:08 not when flying 16:36:30 ais523, well even with this algorithm you get that effect when moving cardinally 16:36:33 the next cell on your line is (38,58); the previous is (-2,-2) 16:36:34 wait, uppercaps NO from ais523? that's reserved for me! 16:36:37 you get that effect cardinally 16:36:42 but for a different reason 16:36:50 because when you're moving cardinally to the left, say 16:36:55 the previous cell is the cell to the right 16:36:58 ais523, hm right. So what would the delta be to end up near: 16:37:00 @ 16:37:02 @@ 16:37:04 in the program 16:37:05 23:45:09 O, and do esolang people have any preferences having to do with mahjong game 16:37:05 23:50:09 Yes 16:37:09 who needs answers, either 16:37:17 AnMaster: where is that cell you're aiming for? 16:37:18 ais523, while wrapping both x and y negatively 16:37:18 Yes I am replying to you asiekierk!i=africalo@078088180066.elb.vectranet.pl <- :D 16:37:44 as in, what coordinates? 16:37:54 ais523, in http://rafb.net/p/wJZOqZ63.html it is the cell with ! 16:38:00 coordinates would be *checks* 16:38:39 33,52 16:38:41 I think 16:38:42 wait 16:38:45 52,33 16:38:46 rather 16:39:06 if that is x,y 16:39:10 AnMaster: can you please stop using rafb.net to paste? it's one or two seconds saved at your end vs annoyance for everyone else later on 16:39:12 ok, so going forwards would be a delta of (52-18,33-28) which is (36,5) 16:39:25 therefore, to do it wrapping you need a delta of (-36,-5) 16:39:34 mhm 16:39:38 with lahey-wrapping, you can't reach a cell by wrapping unless you could reach it going backwards 16:39:50 ais523, I find flying IP incredibly hard to think at 16:39:51 in* 16:40:11 15:39 ehird: AnMaster: can you please stop using rafb.net to paste? it's one or two seconds saved at your end vs annoyance for everyone else later on 16:41:06 ehird: my reply to that is at http://pastebin.ca/1355862 16:41:10 ais523, err that doesn't work either... 16:41:21 * AnMaster steps through code 16:41:25 we may have the coordinates worng 16:41:27 *wrong 16:41:39 ais523, pastebin.ca times out all the time for me... 16:41:49 ais523: it's useful for when looking at the logs, when e.g. finding code that was made before that is being looked for now, finding the code someone answered to a question, .. 16:41:57 I haven't been able to access it for over half a year 16:41:59 ehird: but the timeout on that comment is only 5 minutes 16:42:04 so it's utterly useless for any logreader 16:42:14 and that's bad 16:42:24 ehird: you seem to be missing the fundamental nature of IRC here... 16:42:48 You seem to like saying that whenever I say something you disagree with: you're absolutely fundamentally missing the point. 16:42:55 AnMaster: try (-33,-5) 16:42:59 It works nicely as an alternative to making real arguments, I guess. 16:43:08 ehird: I mean, it's transient 16:43:15 why do you think freenode have the rule against unannounced public logs? 16:43:21 it's because it breaks the expectations most people have of IRC 16:43:26 ais523, hm ok 16:43:29 it's transient! of course! Let's kick clog. 16:43:37 clog: stop it. IRC is transient. People shouldn't be able to read things after they happen. 16:43:45 clog is rather unusual, it's trying to make #esoteric into something that isn't that common on IRC 16:43:50 after all, how many IRC channels are logged? 16:43:57 most of the high profile ones. 16:43:58 probably more on Freenode than on most other networks, tbh 16:44:03 that gets me to another place 16:44:08 but not exactly the right one 16:44:11 * AnMaster debugs again 16:44:14 ok, probably I miscounted 16:44:21 I was trying to count via mousehover 16:44:28 let me count in an edit box, that's more reliable 16:44:53 one cell off 16:45:01 (-34,-5) 16:45:02 it should be 16:45:04 I did miscount 16:45:25 right 16:46:04 AnMaster: how fast is this to load? http://dpaste.com/ 16:46:23 unfortunately no never-expire option, so forget that 16:46:38 ehird: expecting pastebins to keep the things you write never expiring is crazy 16:46:47 that's like wanting random internet sites to give you free hosting forever 16:46:47 ais523: pastie does it. pastebin.com can do it. 16:46:53 plenty of them do it. 16:46:58 also, plain text takes up roughly no space. 16:46:59 ehird, around 5 seconds 16:47:13 I think the solution to all this is to have a dedicated #esoteric pastebin, that can keep things around forever 16:47:26 and that loads as fast as rafb 16:47:31 preferably on a site run by one of us 16:47:37 rafb loads in ~1 second here 16:47:43 with a clean browser cache 16:47:50 also it needs a command line paste tool 16:47:54 like wgetpaste 16:50:55 -!- jorrdi has joined. 16:51:20 -!- oklopol has joined. 16:51:21 -!- jorrdi has left (?). 16:53:26 who was jorrdi, I wonder? 16:53:38 anyway, I was writing an Enigma level over the last couple of days 16:54:09 does anyone here know a pastebin that complies with both ehird's and AnMaster's standards and also accepts XML with embedded Lua? 16:54:24 err 16:54:32 you mean highlighting that? 16:54:39 no idea 16:54:40 ok, I was being slightly sarcastic 16:54:51 but I thought people here might want to take a look at it 16:55:14 but for it to be useful to me it needs to highlight C and have a plain text mode. More languages are a bonus 16:55:17 Is anyone interested in watching my desktop 16:55:34 and I like support for bash, erlang and scheme especially 16:55:50 oh and paste.lisp.org would be ok apart from having to enter, or script entering a captcha 16:56:05 "script entering a captcha"? 16:56:07 Perhaps have it written in such a way that it could easily have highlighting modules added... 16:56:12 ais523: it's always 'lisp'. 16:56:14 there is something very very wrong with that phrase 16:56:40 So that users of the pastebin could suggest highlighters, which could get added rather quickly... 16:56:51 * ais523 pastes on filebin.ca 16:57:01 because people are more likely to want to run the program than read it 16:57:20 strange, epiphany crashed 16:57:50 http://filebin.ca/fdzyqw/ais52301_1.xml 16:57:59 (Enigma has a naming convention for filenames...) 16:58:09 pastebin.ca is rather nice... Has a "raw" link, making it easy to download, and still has a nice highlighted text thing... 16:58:15 if you save that as ~/.enigma/levels/auto/ais52301_1.xml it should show up in the game 16:58:23 in the "auto" level pack 16:58:28 pikhq: pastie.org is nicer 16:58:36 it's still slightly buggy 16:58:37 ehird: Hmm. Good to know. 16:58:39 it has all of those things and less clutter 16:58:41 For what it's worth I'm instantly turned off by non-binary files which are served with a MIME type that browsers want to save instead of view 16:58:55 Deewiant: it may as well be binary, it's a crazy enough format... 16:59:02 asiekierka: Is anyone interested in watching my desktop <<< not if you're sharing it knowingly. 16:59:08 Hmm, missing an auxiliary clause there, it's not the MIME type that's being saved 16:59:25 Is application/xml too hard to serve up or something? 16:59:37 well, it's mostly written in Lua, just with an XML wrapper 16:59:48 ais523: what kinda level is it? 16:59:53 oklopol: an intelligence-based level 16:59:56 it's also a game 17:00:00 in easy mode, it's a 2-player game 17:00:05 in hard mode, it's a 1-player game against an AI 17:00:35 so with easy mode, the level can be solved very quickly if both players are cooperating, because either player winning wins the level 17:00:46 to complete it in hard mode is much slower as you have to beat the computer AI, and it won't be cooperating 17:01:10 but I took quite a lot of effort making the intelligence the main problem about the level 17:01:41 -!- antirafb has joined. 17:01:44 http://rafb.net/p/wJZOqZ63.html 17:01:47 based on their rating rules, I rate it about speed 1, dexterity 2, intelligence 5, knowledge either 3 or 6 (I'm not sure which), and patience maybe about 3 17:01:49 Hm. 17:01:53 -!- antirafb has quit (Remote closed the connection). 17:02:23 hmm, what's the difference between speed and dexterity? 17:02:25 hmm 17:02:33 -!- antirafb has joined. 17:02:34 http://rafb.net/p/wJZOqZ63.html 17:02:34 -!- antirafb has quit (Remote closed the connection). 17:02:38 on second thought i guess that's pretty obvious 17:02:56 oklopol: dexterity's how easy it is to put the level in an unwinnable situation, or die, due to the mouse equivalent of a typo 17:02:57 -!- antirafb has joined. 17:03:03 http://rafb.net/p/wJZOqZ63.html 17:03:04 -!- antirafb has quit (Remote closed the connection). 17:03:17 ais523: ah yeah right 17:03:33 whereas a high speed means you have to play the level quickly to avoid dying 17:03:44 -!- antirafb has joined. 17:03:45 http://rafb.net/p/wJZOqZ63.html 17:03:46 -!- antirafb has quit (Remote closed the connection). 17:03:52 Close, close indeed. 17:04:12 ohh testing a bot 17:04:26 i thought you were telling everyone who joins about your cool paste :D 17:05:56 -!- antirafb has joined. 17:05:57 http://rafb.net/p/wJZOqZ63.html 17:05:58 ehird: 17:06:02 :-D 17:06:05 Oh, lol. 17:06:09 -!- antirafb has quit (Remote closed the connection). 17:06:31 -!- antirafb has joined. 17:06:31 oh no, not another Brainfuck derivative 17:06:31 -!- antirafb has quit (Remote closed the connection). 17:06:36 that manages to be sub-TC, somehow 17:06:39 ais523: groan 17:06:40 link? 17:06:42 -!- antirafb has joined. 17:06:43 http://rafb.net/p/wJZOqZ63.html 17:06:44 ehird: ITYM http://pastie.org/private/bjrfso3nuwmpj5ntxhhmug 17:06:46 http://esolangs.org/wiki/ParrBF 17:06:52 Great success! 17:07:00 ehird: why a private pastie? 17:07:08 ais523: so it doesn't show up in the recent pastes list 17:07:13 I ask #esoteric: should I remap '%' in vim 17:07:17 because typing it really annoys me 17:07:23 ParrBF = lol 17:07:24 ehird: Is it clever enough to try something else if pastie times out or fails? 17:07:26 what are you planning to remap it to? 17:07:36 Deewiant: no, it also only handles one rafb.net paste per line 17:07:41 but there you go 17:07:42 -!- tombom has joined. 17:07:45 works well enough 17:07:53 now to put it on rutian 17:07:54 Handling more than one shouldn't be too tough 17:07:56 ais523: dunno 17:07:57 http://rafb.net/paste/itdoesntexist 17:07:57 comex: if you say Bayes, *krrtch* 17:07:59 maybe capslock :p 17:08:03 :( 17:08:10 http://rafb.net/p/diediedie.html 17:08:11 -!- antirafb has quit (Remote closed the connection). 17:08:11 http://rafb.net/p/itdoesntexist 17:08:15 oh 17:08:26 Is that a feature? :-P 17:08:35 ais523, Deewiant: http://rafb.net/p/rwSMXZ13.html, as far as I know mycology didn't test wrapping -y 17:08:38 at all 17:08:46 Yes, it doesn't 17:08:46 or \ 17:08:53 Deewiant, that program does. 17:08:54 -!- antirafb has joined. 17:08:55 http://rafb.net/p/diediedie.html 17:08:55 fu ehird 17:09:06 I assume that if -x and x work then -y and y do as well 17:09:10 imo ParrBF looks fairly interesting, you're executing a brainfuck program for each cell in parallel 17:09:19 assuming [ and ] are defined like that 17:09:26 Or rather, I don't assume anything since I don't use y wrapping at all 17:09:27 can't really tell from that. 17:09:27 Deewiant, You assumed your TURT worked iirc. It turned out it didn't 17:09:29 :P 17:09:35 that works nicely 17:09:42 oklopol: you're limited to a finite number of cells like that, though 17:09:46 Well sure, I assume stuff works if there's no known case where it fails 17:10:06 Deewiant, I assume stuff is broken unless I written a test case to test it :) 17:10:08 I'm not hardcore enough to go about things the other way 17:10:26 AnMaster: I did test TURT, though 17:10:27 ais523: true, but i think "ipc" between cells might be kinda interesting 17:10:37 Deewiant, yes, but not very detailed 17:10:44 well. assuming [ and ] are global 17:10:56 AnMaster: So do you assume that all possible execution paths through cfunge are bugged, except the ones you've tested? 17:11:16 Point being, complete testing is impossible. 17:11:30 At least in this universe, without time travel. 17:11:41 yeah, prove it or ..shoove it 17:11:42 Deewiant, no, but I try to test all paths 17:11:48 of course I can't fully 17:12:10 but I try to test as much as I can 17:12:44 Deewiant, stuff like fuzz testing helped a lot during one period. Nowdays I don't really find anything new with fuzz testing. 17:16:35 pastebin.ca is rather nice... Has a "raw" link, making it easy to download, and still has a nice highlighted text thing... <-- except I can't resolve the IP. I always get DNS timeout for pastebin.ca 17:16:56 For what it's worth I'm instantly turned off by non-binary files which are served with a MIME type that browsers want to save instead of view <-- same 17:18:25 ais523, how does one run engima on a file? Or where/how does one install a level 17:18:47 AnMaster: copy it to ~/.enigma/levels/auto 17:18:54 auto? 17:18:54 and it's automatically made into the Open It Up levelpack 17:19:02 * the Auto levelpack 17:19:05 how did I manage that? 17:19:06 mhm 17:19:25 what is the auto level pack? 17:19:33 I don't remember seeing that 17:19:47 if you go to all level packs, you'll see it 17:20:02 and its empty most of the time, until you put things into auto to be automatically made into levelpacks 17:20:44 http://www.ustream.tv/channel/asietv - i'm broadcasting my desktop O_O 17:21:24 I am only interested if I can take control of your machine and deltree /y. 17:21:41 Oh god your voice. 17:21:41 ehird: "deltree /y" doesn't do anything, that's missing one argument 17:21:52 ais523: It's a verb like "rm -rf". 17:23:08 This is morbidly interesting. 17:23:13 ais523, err, how do I switch ball then? 17:23:28 AnMaster: in easy mode, there's a yinyang lying around 17:23:29 in hard mode, you'll find the white ball is AI-controlled 17:23:29 ah found it 17:23:49 easy's a bit boring unless you have someone else to play against, thoguh 17:23:49 *though 17:23:56 asiekierka pronounces ehird as "eh erd" 17:23:57 :DD 17:23:58 because that's a 2-player game 17:23:58 ehird, AKA. ustreamer-55605 :P 17:24:01 ugh, that is a logic level. *prefers action ones* 17:24:09 AnMaster: yes, it's a logic level 17:24:11 AnMaster: oklopol will now lynch you. 17:24:14 ehird: That's how I pronounced it at first too, until you told me how 17:24:23 logic levels and action levels are both fun to play 17:24:28 but logic levels are a lot more fun to write 17:24:35 especially if you write an AI for them 17:24:36 Deewiant: Yes, it's funny because asiekierka is polish. Or something. 17:24:50 ehird, how is it pronounced then? 17:24:54 AnMaster: ee herd 17:24:58 longe 17:25:00 ehird, no i sound? 17:25:00 long e 17:25:03 yes, asiekierka. 17:25:06 AnMaster: in the herd. 17:25:23 ais523: write pong in Enigma! 17:25:33 what? 17:25:36 AnMaster: 'i sound' means approximately nothing in English 17:25:40 long e 17:25:40 yes, asiekierka. <-- wait did asiekierka say something? 17:25:49 ehird: I was plannign that 17:25:52 well 17:25:53 *planning 17:25:54 AnMaster: i'm listening to his grating voice while watching his screen. 17:25:55 AnMaster 17:25:57 okoko? 17:25:57 http://www.ustream.tv/channel/asietv 17:25:58 he/she isn't on ignore... 17:25:59 needs flash. 17:26:01 AI might be quite difficult 17:26:19 ais523: not really, perfect pong AI is pretty trivial, no? 17:26:31 ehird: moving the white marble around isn't 17:26:36 True. 17:26:41 ais523: surround it by blocks 17:26:43 that's the paddle 17:26:47 hitting a block moves it down or up 17:26:59 if you listen very carefully to that Enigma level I pasted, you'll hear a repetitive clink-clink-clink in the background 17:27:10 that's what's moving the white marble 17:27:18 I haven't tried it yet 17:27:21 via a really rather convoluted set of code 17:27:33 ais523, for pong wouldn't you use one of those small white balls? 17:27:41 AnMaster: possibly, or maybe a bug or a horse 17:27:43 or wait 17:27:48 do you mean the player *plays the ball? 17:27:53 *plays** 17:27:55 no, the player plays the paddle 17:27:58 omg 17:27:58 ah 17:27:59 playing the ball 17:28:01 that would be amazing 17:28:02 :DD 17:28:04 it would be 17:28:05 /aɪ/ /ɑe/ /əɪ/ /ɪ/ /ə/ /ː/ /ɚ/ are all possible 'i sounds' in English, there are probably a bunch more when you consider the various dialects 17:28:10 getting batted around and trying to help one paddle 17:28:11 ehird, not sure how to make it interesting though 17:28:20 to work as pong, you'd need to fill the center of the level as space 17:28:22 AnMaster: well you're being batted against your will 17:28:22 enigma level? 17:28:24 maybe you need to follow the correct path to not hit hidden death blocks? 17:28:25 we need more enigma levels 17:28:25 but you're on one AI's side 17:28:29 so you have to beat the other one 17:28:29 if you want to play the ball, you'd make it ice instead 17:28:31 as the ball 17:28:31 or something 17:28:34 what about that ehird ? 17:28:34 so you have some control but not much 17:28:41 i dunno 17:28:47 i just know playing the ball in pong would be amazing 17:28:51 ais523: make up some enigma puzzle involving enigma 17:28:59 heh 17:29:03 make a game of life in enigma 17:29:05 ^ really good idea 17:29:07 yeah 17:29:10 ehird, has been done 17:29:14 comex: http://filebin.ca/fdzyqw/ais52301_1.xml 17:29:17 don't remember level name 17:29:22 it has been done 17:29:28 15:58 ais523: if you save that as ~/.enigma/levels/auto/ais52301_1.xml it should show up in the game 17:29:36 now to find out where that is on os x 17:29:42 ehird, :D 17:29:42 not sure where you have to save it on windows or OS X 17:29:56 it could be same place 17:29:58 it's going to be somewhere with a similar directory structure, though, probably 17:30:02 ~/Library/Application Support/Enigma/levels/ 17:30:04 sane apps use ~/.* on all systems 17:30:08 ehird, that is global one 17:30:10 (/auto/) 17:30:11 AnMaster: no 17:30:12 ~ 17:30:13 ~/Library 17:30:14 which ah 17:30:16 right 17:30:23 using . for a GUI app on OS X is considered very bad style 17:30:49 -!- antirafb has quit (Remote closed the connection). 17:30:58 ehird, well, How is the program to know? There is no POSIX API that tells it preferred location afaik 17:30:58 bye antirafb 17:31:11 AnMaster: that's something that nearly always goes in the packaging 17:31:13 AnMaster: If you're writing an OS X app, you know about it, because you're using Cocoa. 17:31:21 via a makefile variable or something equivalent if you aren't using makefiles 17:31:27 locations for stuff is a packaging problem, not a programming problem 17:31:28 Or some cross-platform toolkit, but you're getting an inferior experience there on OS X anyway. 17:31:37 ehird, but engima runs on Linux. Which means it is either ported or using such a toolkit 17:31:42 Qt for example has a function for that 17:31:44 It uses SDL. 17:31:47 AnMaster: it'll just do 17:31:52 if (on_osx) { dir = '...'; } 17:31:54 simple enough 17:31:55 not much work 17:31:56 so for instance, C-INTERCAL doesn't hardcode locations nowadays, it takes them from makefile variables 17:32:03 ehird, means you have to know about OS X *shrug* 17:32:05 which finds the locations via autoconf 17:32:13 AnMaster: you have to know about os x to produce a well-crafted os x app? 17:32:16 zee oh em gee 17:32:27 blame apple 17:32:31 ehird, true, but point is OS X pretends to be *nix. 17:32:33 they have a X11 implementation, but it sucks 17:32:36 anyway, for that level, I recommend you play on hard if you don't have a second human handy to play against 17:32:38 in fact it is 17:32:38 X11 sucks. 17:32:43 AnMaster: umm, no pretending. 17:32:49 ehird, " in fact it is" 17:32:57 it is unix, and for command-line apps, .foo is fine 17:32:58 asiekierka's life is so interesting 17:32:58 maybe, but not nearly as bad as X11.app sucks 17:33:02 just GUI apps have a different structure 17:33:04 full of recursion 17:33:07 and infinities 17:33:11 comex: meh, I wouldn't want to use X11.app anyway :P 17:33:17 ais523: I am going to try it 17:33:29 how do I set hard? 17:33:31 The bronze medal thing> 17:33:38 you all forgot OpenWindows! 17:33:40 :/ 17:33:42 ehird, it could be a lot better though 17:33:50 AnMaster: aaaaaaaaaaaaaaagh 17:33:51 why does everything need to be arduously ported to cocoa? 17:33:59 ehird, what? 17:33:59 comex: because it has different UI guidelines 17:34:05 you can't just do that automatically 17:34:09 it's a totally different design 17:34:17 and it's why OS X apps are so good 17:34:18 anyway 17:34:22 ais523: how do you set difficulty? 17:34:40 ehird 17:34:41 ehird, what is (or rather: was) wrong with OpenWindows? 17:34:42 bullshit 17:34:44 things like 17:34:49 Qt mac, gimp native etc 17:34:51 comex: I'm really uninterested. 17:34:52 aren't as good as native apps 17:34:53 You're wasting your time 17:34:56 but they're a lot better than x11.app 17:34:57 :u 17:35:08 now, ais523: ping. 17:35:34 ehird, ...? 17:35:42 seriously 17:35:57 AnMaster: I a m u i n t e r e s t e d a n d t r y i n g t o p l a y a i s 5 2 3 ' s l e v e l 17:36:09 ehird, http://en.wikipedia.org/wiki/OpenWindows 17:36:12 AnMaster: I a m u i n t e r e s t e d a n d t r y i n g t o p l a y a i s 5 2 3 ' s l e v e l 17:36:12 AnMaster: I a m u i n t e r e s t e d a n d t r y i n g t o p l a y a i s 5 2 3 ' s l e v e l 17:36:13 Sun thing 17:36:14 was great 17:36:17 *shrug* 17:36:18 AnMaster: I a m u i n t e r e s t e d a n d t r y i n g t o p l a y a i s 5 2 3 ' s l e v e l 17:36:18 AnMaster: I a m u i n t e r e s t e d a n d t r y i n g t o p l a y a i s 5 2 3 ' s l e v e l 17:36:20 AnMaster: I a m u i n t e r e s t e d a n d t r y i n g t o p l a y a i s 5 2 3 ' s l e v e l 17:36:27 ehird, AnMaster: aaaaaaaaaaaaaaagh <-- ?? 17:36:27 ehird, AnMaster: aaaaaaaaaaaaaaagh <-- ?? 17:36:28 ehird, AnMaster: aaaaaaaaaaaaaaagh <-- ?? 17:36:28 ehird, AnMaster: aaaaaaaaaaaaaaagh <-- ?? 17:36:29 Every thing you say increases the amount of times I'll say that. 17:36:33 ehird, AnMaster: aaaaaaaaaaaaaaagh <-- ?? 17:36:34 AnMaster: I a m u i n t e r e s t e d a n d t r y i n g t o p l a y a i s 5 2 3 ' s l e v e l 17:36:35 AnMaster: I a m u i n t e r e s t e d a n d t r y i n g t o p l a y a i s 5 2 3 ' s l e v e l 17:36:36 AnMaster: I a m u i n t e r e s t e d a n d t r y i n g t o p l a y a i s 5 2 3 ' s l e v e l 17:36:38 AnMaster: I a m u i n t e r e s t e d a n d t r y i n g t o p l a y a i s 5 2 3 ' s l e v e l 17:36:40 AnMaster: I a m u i n t e r e s t e d a n d t r y i n g t o p l a y a i s 5 2 3 ' s l e v e l 17:36:45 ehird, SHUT UP 17:36:46 oh, do grow up 17:36:55 if you can't hear the radiophonewaves of my teleradiovision 17:36:56 asiekierka: tell AnMaster to stop bugging me about shit I don't care about and I will. 17:36:56 * AnMaster agrees with asiekierka there 17:37:02 fun to see all the kids yelling random stuff :D 17:37:07 (see/hear) 17:37:19 asiekierka, tell ehird that I will stop as soon as ehird explains what he meant with " AnMaster: aaaaaaaaaaaaaaagh" 17:37:30 AnMaster: have fun, but you're on ignore now. 17:37:35 ais523: how do you set difficulty? 17:37:38 The icons are rather obscure. 17:38:00 btw tell ehird he is ignored 17:38:07 AnMaster: have fun, but you're on ignore now. 17:38:09 btw tell ehird he is ignored 17:38:23 hah 17:38:27 don't tell me AnMaster is lying 17:38:32 I thought he would never stop until I explained?! 17:38:36 I can never trust his word again :< 17:38:37 asiekierka, I didn't see that first line 17:39:37 so much social porn here today 17:40:25 "social porn"? what's that, group masturbation? 17:41:16 it's this term some people use. 17:42:17 -!- ais523 has quit (Read error: 145 (Connection timed out)). 17:42:34 (btw asiekierka's going to sing a song, better join the fun) 17:43:10 yes 17:43:13 yes I am 17:43:23 I am... 17:43:24 ... 17:43:25 ...NOT! 17:44:02 wow 17:44:08 that sounds awesome :o 17:44:16 could you record some of that for me? 17:44:17 this is the first recorded sound of a human being 17:44:19 :P 17:44:29 Google "First Sounds" 17:44:31 1860 btw 17:44:41 oh! 17:44:46 well it sounds awesome. 17:51:15 -!- ais523 has joined. 17:51:19 hi ais523 17:51:22 I'm playing your level 17:51:25 whyyy does the ai move so jerky 17:51:39 because it was hard to get it to move at all 17:51:48 the thing that's controlling the ai white marble is a second black marble off the screen 17:51:53 that's repeatedly bouncing on a flash stone 17:51:53 LOL 17:52:09 it gives a lot more control than the usual gradient method 17:52:10 how can i play it 17:52:17 the level 17:52:17 oklopol: download enigma 17:52:20 put it in the right place 17:52:20 run it 17:52:20 i has 17:52:23 oklopol: which OS are you on? 17:52:26 windows 17:52:36 I don't know where the right place is on Windows 17:52:38 oh i can't just open some level pack which connects straight to ais :| 17:52:46 HOW 70'S 17:53:07 fuck 17:53:12 that damn ai got me beat again 17:53:36 oklopol: I've just read the manual 17:53:42 if you load enigma and go into options 17:53:48 it should tell you where the "User Path" is 17:53:58 you need to store the level in levels/auto on the user path 17:54:30 my level's still slightly buggy 17:54:44 sometimes the AI gets lost if it's trying to do a large push on the left-most group of blocks 17:54:52 but I think I know how that's fixed, just haven't been bothered to 17:59:09 okay didn't work, tried suffices ".lev" and "" 17:59:18 .xml is the suffix 17:59:22 right 17:59:25 as is suggested in the URL 18:00:21 yeah but it was xml, so i thought the .xml was because of that :) 18:00:27 once it's offline, it becomes a level 18:00:28 ... 18:00:36 ? 18:00:39 dude. an Ian owns n@ai 18:00:43 that is so fucking cool. 18:00:51 that makes no sense 18:01:02 yes it does 18:01:03 it's ai. 18:01:09 the tld 18:01:10 has an mx record 18:01:16 http://www.ai/ <-- the nic 18:01:31 ais523: nm 18:01:33 ehird: solved my level yet? 18:01:41 oklopol: got my level working yet? 18:01:41 ais523: no, the ai is smarter than me. 18:01:50 ais523: no, now i get an error 18:01:54 are there two files by any chance? 18:01:55 easy is human vs. human and you get the oxyds no matter who wins, so it's easy 18:01:59 oklopol: just the one 18:02:01 what error, btw? 18:02:10 i'll look 18:02:26 err utfformatexception 18:02:37 ok, that's very weird 18:02:44 maybe the character encoding's got muddled somehow 18:02:47 so probably like a copy paste problem 18:02:50 oh, I know what it might be 18:03:05 try opening the level, and saving it as a windows-format text file 18:03:10 text files are different on windows... 18:04:42 -!- asiekierka has set topic: There is no "i" in UBUNTU | WARNING: Very Mad (Statistical) Science | Logs: http://tunes.org/~nef/logs/esoteric/. 18:04:57 asiekierka: what did youchange? 18:05:05 "Mad" to "Very Mad" 18:05:44 ehird: still trying? 18:05:55 no, I think it's impossible 18:06:01 it is possible 18:06:04 I know, because I've done it 18:06:31 I could reveal the winning sequence of moves here, but that would spoil it for everyone else 18:06:39 augh 18:06:45 it is worth mentioning that the AI is good enough to win if you make even a single mistake 18:06:50 it's so hard you have to be incredibly good to even get it working 18:07:00 -!- asiekierka has set topic: There is no "i" in UBUNTU | WARNING: Very Mad (Statistical) Science | Logs: http://tunes.org/~nef/logs/esoteric/ | [this space left intentionally blanketh]. 18:07:16 oklopol: I guess it's harder on windows than on linux, it was pretty easy for me and ehird to get it working... 18:07:27 oklopol: what is the error? 18:07:31 AnMaster: did you try? 18:07:38 he said he hated it 18:07:39 something about an illegal character or something 18:07:40 because it was intelligence based 18:07:43 ais523, try what? 18:07:44 the level? 18:07:46 and he likes mindless action. 18:07:50 AnMaster: yes 18:07:58 oklopol: copy the file to the folder instead of copypasting the contents 18:08:09 ais523, yes but I prefer exploring levels rather than logic puzzle ones 18:08:12 yeah if only that was easy to do. 18:08:17 so I gave up 18:08:18 boring 18:08:22 ehird: I'm wondering if it's because the file has \n newlines not \n\r newlines 18:08:30 no 18:08:35 it's utf problems 18:08:37 windows uses utf 16 18:08:40 your file is probably utf-8 18:08:48 does it have special characters in? 18:08:50 ok, that's insane 18:08:53 no special characters AFAIR 18:08:59 does it have a utf-8 bom mark? 18:09:01 remove it if so 18:09:04 ais523, what is? 18:09:05 ehird: I don't think so 18:09:10 although it's copied from a template level 18:09:15 i can't decide where to dl stuff to on firefox (when i start a download), they just go directly on my desktop, which is full, and you can't scroll it on windows. 18:09:19 so a BOM may have survived all the way through 18:09:24 ais523: AnMaster has me on ignore, for the record 18:09:31 oklopol: go to My Documents/Desktop via the file manager 18:09:34 because I didn't answer his question about openwindows after he kept asking me about it 18:09:38 i could, in theory. 18:09:41 that version is scrollable 18:09:46 maybe i also should. 18:10:01 it's just i get very pissed when oses are stupider than humans. 18:10:13 oklopol, what happens on windows when desktop is full? 18:10:17 then why are you using Windows? 18:10:25 AnMaster: nothing, it continues to add icons but there's no way to click on them 18:10:27 stuff just goes off screen and cannot be touched :D 18:10:34 unless you know the trick I just told oklopol 18:10:39 ais523, wait, where are they? Outside the screen? 18:10:44 yes 18:10:46 where else? 18:10:52 at least a sane OS would put them on top of each other 18:10:57 that would be confusing but less so 18:11:31 AnMaster: personally, I think a sane OS wouldn't put thinks on the desktop unless the user wanted them there 18:11:39 I have 5 desktop icons, 6 when I have a USB stick in 18:11:47 and they're all things I only want to use just after boot 18:11:55 Plus desktop should be clean: Trash, ~, media:/ + a few recently downloaded files. On windows that would be: Trash, My Documents, My Computer 18:11:58 hmm sorry, 6 or 7 nowadays 18:12:06 I don't have a desktop on Linux; on Windows my desktop is empty 18:12:26 I have ~, the wireless network application, and four music playlists as desktop icons 18:12:37 I also have a few PDFs there: C99, POSIX.1-2008, AMD64 Reference manual 18:13:04 oklopol: got it working yet? 18:13:09 phone 18:14:01 okay not phone 18:14:06 yeah i found it 18:14:19 is it working? and can /you/ beat the AI? 18:14:27 so there's the download option, but you can't see where it's going to dl it to 18:14:33 and then the download window opens 18:14:43 in the earlier versions the dl folder was on the bottom 18:14:46 but not anymore 18:14:50 also, I programmed it all in the subset of Lua that I could deduce from the example levels I saw 18:14:50 ais523: btw what is the gradient movement you mentioned 18:14:53 i had to open a fucking menu to see it 18:14:54 grrr 18:14:56 which means no loops except by recursion 18:14:59 ais523: i'll try it. 18:15:06 ais523: it's just c style stuff 18:15:12 ehird: you move things by changing the floor underneath them temporarily to a gradient and back again 18:15:18 for i = 0, 10, 2 18:15:20 it's rather hard to do fine control like that, though 18:15:22 from 0 to 10 stepping 2 18:15:30 while foo do end 18:15:33 and it looks ugly unless you set the floor to one you can write a gradient on 18:15:35 ehird: ah, ok 18:15:38 repeat foo until bar 18:15:42 I was doing all my looping via recursion... 18:15:43 and you can use 'break' 18:15:50 that's all lua's loops, as far as I know 18:16:10 ais523: oh, one more 18:16:14 for x in y do foo end 18:16:23 so you can do: for key, value in ipairs(table) do ... end 18:16:25 what would y be there? 18:16:34 ais523: a table 18:16:34 well 18:16:35 an array 18:16:37 ah, ipairs I've never heard of 18:16:39 since it discards the tabley stuff 18:16:43 ais523: ipairs just changes 18:16:47 { x = y, foo = bar } 18:16:48 into 18:16:49 also, do table keys have to be valid identifier names? 18:16:51 {{x,y},{foo,bar}} 18:16:54 also, dunno 18:16:55 I don't know lua 18:16:57 also, no 18:17:00 it's any object 18:17:01 just remembered 18:17:02 I've been getting obscure bugs when I try to use numbers as table keys 18:17:11 well 18:17:13 that's what arrays do 18:17:14 prepending a letter it seems to work 18:17:18 { 1,2,3 } is a table 18:17:21 like PHP 18:17:32 no, {x=1, y=2, z=3} is a table I think 18:17:37 no 18:17:41 tables are the only complex datastructure in lua 18:17:41 ah, ok 18:17:51 this is what happens when you try to learn a language by example... 18:18:07 it also has a crazy thing called metatables, that let you use tables to make objects 18:18:16 http://en.wikipedia.org/wiki/Lua_(programming_language) pretty much describes all of lua 18:19:49 has anyone made Enigma tic tac toe? 18:20:52 I don't know of an implementation of that 18:20:56 I might try, it wouldn't be too hard 18:21:03 ais523: oh, ipairs is pairs with just integers, I think 18:21:06 pairs gives you the key/value pairs 18:21:11 also, I'd like to tryu 18:21:20 I'll rip off your code :D 18:21:29 I'm actually using that level as a template 18:21:33 although you have to delete most of it 18:21:43 and there are some subtleties in the header that need changing 18:22:43 I strongly advise reading the reference docs before creating a level 18:23:27 18:23:29 is that true btw 18:23:33 27sec?! 18:23:36 yes, those are both genuine times 18:23:38 easy is human v human 18:23:46 yeah but it can't be that fast surely 18:23:49 so you play the best possible strategy as one and the worst as the other 18:24:00 and win in 3 moves 18:24:35 (player 1: take all of the rightmost group, player 2: take all of the middle group, player 1: take all of the left group oh no I lost, player 2: oh look I won (gets oxyds) 18:24:39 ) 18:24:51 okay, you're just good with the mouse then 18:24:52 it's easy to complete the level pretty quickly like that 18:25:10 the hard mode actually requires skill to complete 18:25:12 levelh = 13 18:25:12 levelw = 39 18:25:15 wonder what that means. 18:25:21 size of the level 18:25:22 oh, is that the standard screen size? 18:25:23 13 by 20 is one screen 18:25:26 ah 18:25:37 and you add an extra 12 to give another screen of height, and an extra 19 to give another screen of width 18:27:21 but you really need to change the headers to prevent the whole thing borking 18:27:27 yeah, I'm trying 18:27:37 you need a unique ID for the level, and there's a scheme to make sure they don't collide 18:27:58 the release starts at one, score starts at 1 and increases every time you make a change to a released version that changes scoring compatibility 18:28:04 and revision goes up by 1 or more every change 18:28:20 also, the status should be "experimental" not "released" while you're editing the level 18:28:25 what bozo designed this shit 18:28:30 so it doesn't care about compatibility between different versions of it 18:28:52 and in case you haven't guessed, the format was designed as a merger between multiple incompatible formats 18:29:31 ugh 18:29:39 which means no loops except by recursion <-- err... why? 18:29:43 backwards compatibility strikes once again 18:29:51 AnMaster: he onlyused the lua he learned from other levels 18:29:56 which didn't include loops, apparently 18:30:04 AnMaster: using only the subset of Lua that I could reverse-engineer from the levels I looked at 18:30:10 ah 18:30:13 and none of the ones I looked at contained loops 18:30:21 but function definitions were there aplenty, so I just used recursion 18:30:23 hm, yeah, AnMaster is ignoring me. 18:30:24 fun fun. 18:30:31 ais523, iirc it is something quite like C loops. But I may misremember 18:30:40 gee, I wonder who told him that 18:30:45 maybe it was me. 18:31:05 I must be an esoprogrammer... 18:31:16 ais523, Why do you think so? 18:31:41 because I'm trying to find any method of writing in a broken language rather than getting a better language 18:31:48 ais523: do i win or lose if the ai gets stuck in an infinite loop? 18:31:49 where in this case, the broken language is a random subset of Lua 18:31:53 ais523, ah 18:31:56 oklopol: lose, I think 18:32:02 I think that should be a win 18:32:05 a sort of 18:32:05 did you hit that bug where it goes back and forth in the leftmost group? 18:32:06 meta-win 18:32:08 a third condition 18:32:10 it's a lose because you don't get the oxyds 18:32:26 you put the level into an unwinnable situation... 18:32:28 ais523: you should probably mention you can't move the blocks in any order. 18:32:40 hmm 18:32:42 what do you mean by that? 18:32:43 oh! 18:32:58 it should be pretty obvious after a while what the rules for moving blocks are 18:33:10 there are rules? 18:33:13 as in, the what is relatively easy to deduce, the level's all about the how 18:33:14 I just did whatever it let me 18:33:14 yeah, but i thought it was a bug that occurred because i moved them at random 18:33:31 i mean not from bottom up 18:33:40 ehird: well, blocks leave grates behind when you push them with bombs on, and the bombs explode when you go back to the top 18:33:53 oklopol: no, it's a known bug 18:33:56 yeah okay i see 18:33:59 well right 18:34:00 and I think I know how to fix it but can't be bothered right now 18:34:17 which means, the only way to get into one of the groups is via the one-way blocks at the top 18:34:30 which means that on your turn, you can sink any number of blocks from any one of the groups 18:34:37 but can't sink blocks from more than one group 18:34:43 based on that, you need to make the AI sink the last block 18:34:45 right 18:34:52 that's the what 18:34:54 I just thought there were non-physical rules 18:34:58 now, the how is the interesting part... 18:35:01 i.e., it is possible to cheat in a non-bug way 18:35:06 it seemed to be what you implied 18:35:09 also 18:35:10 ehird: grates springing up when you move the block is a non-physical rule 18:35:12 although a subtle one 18:35:18 oh 18:35:19 and no way to cheat that I know odf 18:35:20 *of 18:35:21 ais523, heh it says world record for that level (on easy) 18:35:21 you're not meant to go on the block? 18:35:24 ? 18:35:31 "on the block"? 18:35:34 very boring level IMO. But I have a different taste 18:35:46 you need to use the block as a bridge to leave the group 18:35:54 well yeah 18:35:58 and you can use any of the blocks you pushed 18:36:00 but are you allowed to go under the grate 18:36:03 by analogy, this means you need to sink one block 18:36:10 and going under the grate will kill you 18:36:12 there's an abyss there 18:36:16 unless it's a grate you created that turn 18:36:21 in which case it's just a bomb 18:36:23 I meant created this term 18:36:31 if it's created that turn, fine 18:36:36 but it won't let you break the rules of the level 18:36:40 hmph it got stuck again. 18:36:44 how were you ever getting back up to the top without going under the grates? 18:36:49 "Think about that for a minute. It computes the answers. Wolfram Alpha doesn't simply contain huge amounts of manually entered pairs of questions and answers, nor does it search for answers in a database of facts. Instead, it understands and then computes answers to certain kinds of questions." 18:36:54 i think i'll solve this on paper 18:37:04 can we stop with the "Wolfram Alpha is strong AI out of Stephen Wolfram's magical butt of being able to do anything" articles? 18:37:07 oklopol: it is worth pointing out that it will never get stuck if you play with the optimal strategy 18:37:14 ais523: I was going under them 18:37:23 ehird: yes, so? 18:37:31 something you said to oklopol 18:37:35 made me think you were saying 18:37:38 that there were non-physical rules 18:37:41 no 18:37:49 I'm just explaining what I thought 18:37:50 I try to keep my levels as physical-rules-based as possible 18:37:54 apart from the AI, of course 18:37:57 which is very scripted 18:38:10 i'm not feeling like a puzzle tonight 18:38:17 I tried to escape from the switcher thing and go and kill the white ball 18:38:19 but I didn't succeed 18:38:31 ehird: it took me ages fixing bugs in that thing! 18:38:32 specifically, I tried to run away before it locked me in 18:38:50 hah. 18:38:57 and that's impossible due to the way doors work in Enigma 18:39:01 you can't enter them once they start closing 18:39:11 yes, but the white ball starts before they close 18:39:25 and as the trigger's on a different square, by definition you're outside them when you hit the trigger 18:39:56 "There is no risk of Wolfram Alpha becoming too smart, or taking over the world. It's good at answering factual questions; it's a computing machine, a tool -- not a mind." 18:39:58 Friendly AI fail. 18:41:29 I agree that there's no chance of it taking over the world 18:41:46 I think there's a marginal chance it'll lead to Wolfram being booted from the internet, but for unrelated reasons 18:41:46 the statement is stupid, though 18:41:53 ais523: huh? 18:42:11 you'll see later on, if they still have the feature I'm thinking of 18:42:25 does it download gigabytes of data every minute? 18:43:08 but yeah, what I quoted was really stupid because a sufficiently advanced "computing machine" that correlates tons of its data (memories) and communicates a response, based on outside input (search query)... 18:43:09 is a mind 18:43:16 (for very large values of sufficiently advanced) 18:43:36 well, I don't think you'll have to worry about sufficiently advanced 18:43:42 yes, nor I 18:43:48 I don't think that makes the statement any more valid 18:46:11 incidentally, I've been trying to re-establish a wireless connection all this time 18:46:27 I only came on mibbit because it was taking so long and I wanted to continue conversing... 18:48:21 mysql --i-am-a-dummy 18:48:24 http://dev.mysql.com/doc/refman/4.1/en/mysql-tips.html#safe-updates 18:48:37 is that an actual command line switch? 18:48:45 yep 18:48:58 also, why does mibbit not show a cursor in the box you're meant to type in? 18:49:00 -!- akiross has joined. 18:49:01 it does sometimes 18:49:04 but isn't atm 18:49:05 hi 18:49:05 wfm 18:49:07 although 18:49:10 I think I've had that problem 18:49:11 hi akiross 18:49:19 which makes it hard to change something that isn't at the end of the sentence 18:49:21 and hi akiross 18:49:34 hi ehird, ais523 18:49:45 hi 18:49:54 what brings you here? 18:49:59 also, hi ehird, just to keep this chain going 18:50:07 hi akiross 18:50:09 also 18:50:13 hi akiross 18:50:13 akiross is new, he's been here before 18:50:22 he said he's working on a language that's like assembly for message-passing OOP 18:50:34 that sounds sufficiently eso 18:50:37 maybe even tarpitty 18:50:41 hi asiekierka 18:51:55 :) infact i'm here most to listen and see if it can interest, i'm not really in the "divulgation-phase" :D 18:52:09 divulgation 18:52:10 sounds like me sometimes 18:52:11 that's a word there 18:52:23 I can mention Underlambda and get lots of people shouting at me to release the spec 18:52:30 or Feather and get people shouting at me to make some progress 18:52:47 Wow, divulgate is actually a word 18:53:08 -!- ehird has set topic: Word of the day: Divulgation. Logs are good for your health: http://tunes.org/~nef/logs/esoteric/. 18:53:51 -!- asiekierka has set topic: Word of the day: Divulgation. Apples AND Logs are good for your health: http://tunes.org/~nef/logs/esoteric/. 18:53:56 -!- ehird has set topic: Word of the day: Divulgation. Logs are good for your health: http://tunes.org/~nef/logs/esoteric/. 18:54:01 :( 18:54:05 asiekierka: I always win the topic battles. Don't bother. :P 18:54:10 But apples ARE good for your health 18:54:18 -!- asiekierka has set topic: Word of the day: Divulgation. Logs are too good for your health: http://tunes.org/~nef/logs/esoteric/. 18:54:27 -!- ais523 has quit ("mibbit.com: getting some apple juice"). 18:54:34 ahah i liked the apples one :D 18:54:34 -!- ehird has set topic: Word of the day: Divulgation. Logs are good for your health: http://tunes.org/~nef/logs/esoteric/. 18:54:39 I said apples ARE good for your health 18:54:47 -!- ehird has set topic: Word of the day: Divulgation. Rocks are good for your health: http://tunes.org/~nef/logs/esoteric/. 18:55:01 -!- asiekierka has set topic: Word of the day: Apples. Logs are good for your health: http://tunes.org/~nef/logs/esoteric/. 18:55:08 -!- ehird has set topic: Divulgations are good for your health: http://tunes.org/~nef/logs/esoteric/. 18:55:34 -!- asiekierka has set topic: Topics are good for your health. Logs aren't, but see them here: http://tunes.org/~nef/logs/esoteric/. 18:55:44 -!- ehird has set topic: Divulgations are good for your topic: http://tunes.org/~nef/logs/esoteric/. 18:56:01 -!- asiekierka has set topic: Topics are good for your apples auce: http://tunes.org/~nef/logs/esoteric/. 18:56:08 -!- ehird has set topic: Divulgations are apples for your topic: http://tunes.org/~nef/logs/esoteric/. 18:56:35 -!- Deewiant has set topic: Topics divulgate apples: http://tunes.org/~nef/logs/esoteric/. 18:56:45 -!- asiekierka has set topic: Apples are apples for your... bananas! OH NO THE BANANA GAG! | http://tunes.org/~apples/apples/apples. 18:56:52 -!- ehird has set topic: Divulgations are apples for your words: http://tunes.org/~nef/logs/esoteric/. 18:56:57 Wow, now it's deep. 18:57:05 yeah :D 18:57:24 -!- asiekierka has set topic: Applepedia: Over 9.000.000.000 (divulgated) words: http://tunes.org/~nef/logs/esoteric/. 18:57:31 -!- ehird has set topic: Divulgations are apples for your words: http://tunes.org/~nef/logs/esoteric/. 18:57:55 -!- asiekierka has set topic: Apples for your divulgations: http://tunes.org/~nef/logs/esoteric/. 18:58:20 ... 18:58:20 wow 18:58:21 did I win 18:58:22 or what 18:58:29 you did 18:58:31 -!- ehird has set topic: Divulgations are apples for your words: http://tunes.org/~nef/logs/esoteric/. 18:58:34 Nope. 18:58:41 ehird is back for the same old joke 18:58:51 -!- asiekierka has set topic: Apples for ehird's divulgations: http://tunes.org/~nef/logs/esoteric/. 18:59:11 I WIN 18:59:23 -!- asiekierka has set topic: Akiross for ehird's asiekierkas: http://tunes.org/~nef/logs/esoteric/. 18:59:24 -!- ehird has set topic: Divulgations are apples for your words: http://tunes.org/~nef/logs/esoteric/. 18:59:33 -!- asiekierka has set topic: Divulgations. 18:59:50 -!- asiekierka has set topic: are. 18:59:53 -!- asiekierka has set topic: apples. 18:59:56 -!- asiekierka has set topic: for your. 19:00:00 -!- asiekierka has set topic: SPARTA!. 19:00:15 lol 19:00:29 -!- Deewiant has set topic: http://tunes.org/~nef/logs/esoteric/. 19:00:36 -!- asiekierka has set topic. 19:00:39 -!- ehird has set topic: Divulgations are apples for your words: http://tunes.org/~nef/logs/esoteric/. 19:00:45 asiekierka: Your topic rights are revoked. 19:00:50 You broke freenode policy 19:00:52 by removing the log URL. 19:00:53 -!- asiekierka has set topic: #esoteric | No they are not, Mr. Anderson. 19:00:57 asiekierka: Your topic rights are revoked. 19:00:58 -!- Deewiant has set topic: http://tunes.org/~nef/logs/esoteric/. 19:00:59 er 19:01:00 -!- ehird has set topic: Divulgations are apples for your words: http://tunes.org/~nef/logs/esoteric/. 19:01:01 -!- asiekierka has set topic: #esoteric | No they are not, Mr. Anderson | http://tunes.org/~nef/logs/esoteric/. 19:01:03 -!- ehird has set topic: Divulgations are apples for your words: http://tunes.org/~nef/logs/esoteric/. 19:01:15 -!- asiekierka has set topic: Let's listen to some tunes.org/~nef/logs/esoteric/. 19:01:17 -!- ehird has set topic: Divulgations are apples for your words: http://tunes.org/~nef/logs/esoteric/. 19:01:21 -!- Slereah has set topic: You are both suspended. | http://tunes.org/~nef/logs/esoteric/. 19:01:24 -!- ehird has set topic: Divulgations are apples for your words: http://tunes.org/~nef/logs/esoteric/. 19:01:36 argh 19:01:37 make it stop 19:01:39 X_X 19:01:42 -!- asiekierka has set topic: THE NEXT PERSON THAT CHANGES THIS TOPIC SUCKS. 19:01:43 -!- ehird has set topic: Divulgations are apples for your words: http://tunes.org/~nef/logs/esoteric/. 19:01:44 nice 19:01:47 lol 19:02:06 -!- asiekierka has set topic: THE NEXT PERSON THAT CHANGES THIS TOPIC A SPLODES. 19:02:10 -!- ehird has set topic: Divulgations are apples for your words: http://tunes.org/~nef/logs/esoteric/. 19:02:25 where is ais? 19:02:50 -!- asiekierka has set topic: http:// tunes [dot] org / [somechar] net [backslash] lo [gee] s / [e]sote [rick without a k]. 19:02:52 I would tell you he quit to get applejuice 19:02:57 but you're ignoring me, so tough shit 19:02:58 -!- ehird has set topic: Divulgations are apples for your words: http://tunes.org/~nef/logs/esoteric/. 19:03:04 I would tell you he quit to get applejuice 19:03:06 but you're ignoring me, so tough shit 19:03:07 :D 19:03:25 -!- asiekierka has set topic: The next person changing this topic must do it in Underload.. 19:03:28 -!- ehird has set topic: Divulgations are apples for your words: http://tunes.org/~nef/logs/esoteric/. 19:03:30 right, if he isn't ignoring any moire 19:03:30 more* 19:03:33 * AnMaster unignores 19:03:48 ehird: Your topic rights are revoked. 19:03:53 You broke the topic's sacred policy. 19:04:06 Can you remember how I said I always won topic wars? 19:04:08 Give up. 19:04:20 -!- asiekierka has set topic: NEVER GONNA GIVE YOU UP, NEVER GONNA LET YOU DOWN. 19:04:24 -!- ehird has set topic: Divulgations are apples for your words: http://tunes.org/~nef/logs/esoteric/. 19:04:45 -!- asiekierka has set topic: NEVER GONNA SAY GOODBYE. 19:04:49 -!- ehird has set topic: Divulgations are apples for your words: http://tunes.org/~nef/logs/esoteric/. 19:04:56 My patience is being tried. 19:05:27 -!- asiekierka has set topic: You know the rules, and so do I. 19:05:51 -!- ehird has set topic: Divulgations are apples for your words: http://tunes.org/~nef/logs/esoteric/. 19:07:48 -!- asiekierka has set topic: Divulgations are apples for your words: http://tinyurl.com/esoteric-logs. 19:08:30 is there somewhere a bloated snusp interpreter? i can find only a perl-one for modular snusp 19:08:38 perl one 19:09:11 Did anyone actually see that link 19:09:17 I see that I won 19:11:24 yay 19:11:25 :) 19:12:02 -!- Deewiant has set topic: Divulgations are apples for your words: http://tunes.org/~nef/logs/esoteric/. 19:12:20 Deewiant: :D 19:12:41 I dislike an additional click 19:13:06 -!- asiekierka has set topic: Divulgations are apples for your words: http://tinyurl.com/esoteric-logs. 19:13:09 Oh, looks like it's a rick roll too 19:13:12 -!- Deewiant has set topic: Divulgations are apples for your words: http://tunes.org/~nef/logs/esoteric/. 19:13:32 -!- asiekierka has set topic: Divulgations are apples for your words: http://tinyurl.com/esoteric-logs. 19:13:41 Or I guess it is, I don't remember all the rick roll youtube IDs 19:13:43 Deewiant: asiekierka still thinks rick astley and GlaDoS are funny because he's an irritating kid stuck in 2006. 19:13:46 Looks like one though 19:13:49 -!- ehird has set topic: Divulgations are apples for your words: http://tunes.org/~nef/logs/esoteric/. 19:13:50 I know he's not 19:14:35 asiekierka, please keep the proper log link in topic. I agree with ehird there 19:14:43 also 19:14:49 I prefer the last at top sorting 19:14:50 ehird, :) 19:15:03 iirc it was your idea to begin with 19:15:04 asking asiekierka to do something is like asking a brick wall to soften up a bit 19:15:09 also, ah yes 19:15:11 I'll put that in 19:15:18 bbl 19:15:21 -!- ehird has set topic: Divulgations are apples for your words: http://tunes.org/~nef/logs/esoteric/?C=N;O=D. 19:18:26 asiekierka: something really funny: http://throbs.net/fun/swf.asp?rgb.swf 19:19:53 Aww, that sound loop is short 19:20:01 Why couldn't they include the whole tune 19:20:29 Heh 19:20:45 Deewiant: Maybe it's deliberately repetitive, for people with, um, audial epilepsy? 19:21:40 lol 19:21:58 Seems you won, huh? 19:23:14 Well, that's true. You won this battle. 19:23:29 -!- asiekierka has set topic: Divulgations are apples for your words: http://tinyurl.com/esologs. 19:23:38 -!- Deewiant has set topic: Divulgations are apples for your words: http://tunes.org/~nef/logs/esoteric/?C=N;O=D. 19:23:46 you didn't even check that link 19:23:48 right 19:23:51 I don't care 19:23:55 -!- asiekierka has set topic: Divulgations are apples for your words: http://tinyurl.com/esologs. 19:24:08 -!- ehird has set topic: Divulgations are apples for your words: http://tunes.org/~nef/logs/esoteric/?C=N;O=D. 19:24:08 It's a tinyurl so it's an extra click 19:24:15 Regardless of whether it links to the right place 19:24:18 what extra click 19:24:26 there's no extra click 19:24:27 I have the 'preview' function of tinyurl enabled 19:24:33 To avoid crap like your rick roll 19:24:33 Oh 19:24:35 That's your fault 19:24:41 Yes, it is 19:24:50 so check it in your preview 19:24:51 But given that we have the option of just producing a direct link... why the hell would we not do so 19:25:02 http://asienet.site40.net/ 19:25:08 quite 19:25:10 "Give me a free PS3, now! What do you mean no?" 19:25:12 --Asiekierka. 19:25:15 Well 19:25:18 that was a joke page 19:25:24 made in November 19:25:31 and you missed "logs.html" 19:26:47 -!- asiekierka has set topic: Divulgations are apples for your words: http://asienet.site40.net/logs.html. 19:26:53 no extra clicks 19:26:55 g`hah 19:26:57 -!- Deewiant has set topic: Divulgations are apples for your words: http://tunes.org/~nef/logs/esoteric/?C=N;O=D. 19:27:08 Did you at least check it 19:27:12 god asiekierka is irritating. 19:28:31 -!- kar8nga has joined. 19:29:03 -!- asiekierka has set topic: Divulgations are apples for your words: http://asienet.site40.net/logs.html. 19:29:08 -!- Deewiant has set topic: Divulgations are apples for your words: http://tunes.org/~nef/logs/esoteric/?C=N;O=D. 19:30:13 -!- asiekierka has quit. 19:30:56 -!- asiekierk has joined. 19:30:58 Hai 19:31:08 -!- asiekierk has set topic: Divulgations are apples for your wars: http://tunes.org/~nef/logs/esoteric/?C=N;O=D. 19:31:09 -!- asiekierk has set topic: Divulgations are apples for your words: http://asienet.site40.net/logs.html. 19:31:13 oops 19:31:14 -!- asiekierk has left (?). 19:31:15 -!- Deewiant has set topic: Divulgations are apples for your words: http://tunes.org/~nef/logs/esoteric/?C=N;O=D. 19:31:18 -!- ChanServ has set channel mode: +t. 19:31:30 Maybe we'll do something like that for a moment. 19:31:38 Cheers 19:31:56 fizzie: Can't you just eliminate the problem? :P 19:32:39 No, I don't like taking responsibility for stuff like that. :p 19:34:19 -!- asiekierk has joined. 19:34:38 ... 19:34:40 ....... 19:34:44 ;( 19:35:00 This was fun 19:35:06 And you killed the coolest thing on this channel 19:35:27 fungot: Are you still alive? 19:35:27 Deewiant: woohoo! srfi-49 has been finalized! 19:35:37 Nah, we're still good. 19:35:39 What an enthusiastic response. 19:35:54 http://srfi.schemers.org/srfi-49/srfi-49.html 19:35:57 fizzie...!!! 19:36:11 asiekierk: shut up 19:36:16 you shut up 19:36:18 twice 19:36:34 fizzie: are you sure you can't eliminate the problem... 19:36:40 Oh, it was that i-expression thing. I didn't remember from the number. 19:37:45 well 19:37:51 now we can't edit the topic 19:38:06 fizzie: Say, what Scheme do you use? I've found all of them woefully inadequate (invents their own solutions instead of using srfis) 19:38:20 ehird: Hey, this is freenode, it's all "Look for the best in people." and stuff. 19:38:39 :D 19:38:49 The best in asiekierka... hmm. He /parts sometimes. 19:38:50 well, it's a free node 19:39:03 ehird: Mainly I've used MzScheme (or PLT, anyway) even though I don't really like it, and it certainly does that own-solutions thing. 19:39:08 ;( 19:39:22 PLT is just so bloated 19:40:13 ehird: No really, the best 19:40:22 what 19:40:33 Everyone is parting sometimes 19:40:34 -!- oerjan has joined. 19:40:40 or at least some people 19:40:48 yes but mostly those people are good to have around 19:41:03 but i'm the worst ever person cuz you hate me for my spamminess 19:41:17 what on earth is the point of that srfi 19:41:39 tombom: satisfy lamers who have a parenthesis allergy 19:42:39 Yes, I personally can't even use more than seven Funge fingerprints in a single file, otherwise those (s make me sneeze uncontrollably. 19:42:50 parentheses are pretty much the best thing about lispy languages, how silly 19:46:23 % ls 19:46:25 foot.c foot.h foot.o toe.c toe.o 19:46:28 % rm * .o 19:46:29 rm: .o: No such file or directory 19:46:31 % ls 19:46:33 % 19:46:38 you mean rm *.o 19:46:44 asiekierk: no shit sherlock 19:46:46 MizardX: d'oh. 19:46:48 I think he means he fucked up 19:46:50 you had backups right 19:46:57 Wasn't that in one of the shoot-yourself-in-the-foot lists? 19:46:59 or, was it in version control? 19:47:02 * doesn't include .foo 19:47:06 so just do a checkout 19:47:21 fizzie: Seems likely, I was just thinking about what 'foot' and 'toe' could mean 19:47:42 http://www.fullduplex.org/humor/2006/10/how-to-shoot-yourself-in-the-foot-in-any-programming-language/ "Unix" was my first goggle-hit. 19:48:05 A lack of esoteric languages in that list. 19:48:20 "Note: The IEEE Scheme standard permits only lambda expressions and constants as the value of internal defines." 19:48:22 [Any esoteric language] 19:48:23 What the fuck. 19:48:27 You notice you have no feet. 19:48:38 hahhahaha 19:48:40 What about Befunge 19:48:58 what about it 19:49:19 how do you shoot yourself in the foot IN IT 19:49:38 in befunge 19:49:38 sigh 19:49:41 you missed the whole joke 19:49:43 you lose 19:49:44 etc 19:49:48 i understand it 19:49:50 but i still ask the question 19:49:54 it surely can't be any 19:50:00 Befunge is far more advanced than a typical esolang 19:50:06 la la la 19:51:49 ehird: that IEEE restriction reminds about reading how it's awkward to compile internal defines in the presence of continuations, maybe it's intended to solve that 19:51:56 yep, it is 19:51:57 *reminds me 19:52:00 but how ugly 19:55:03 SA forums have had a discussion about foot-shooting, where someone listed Befunge with "You pull the trigger and the bullet perforates your foot simultaneously from four different directions." and Brainfuck with "Construct, from individual molecules, gun, bullet and foot." Nothing too funny there. 19:55:28 * ehird decides between Gauche, MIT Scheme, PLT Scheme, Scheme48 & Gambit 19:55:30 and maybe larceny 19:55:37 -!- MigoMipo has quit ("QuitIRCServerException: MigoMipo disconnected from IRC Server"). 19:56:02 opinions welcome 19:56:53 hm maybe Unlambda: "Suddenly a bullet emerges from inside your foot" 19:57:01 :) 19:57:04 Gauche: "GC is now Boehm GC 7.1." 19:57:05 ehird: If you want to grow up a Riastradh, do Scheme48. 19:57:07 * ehird writes off. 19:57:14 fizzie: God I hate Riastradh. :| 19:57:23 But what was your meaning there? 19:57:32 He's a very Scheme48 person. 19:58:15 I never figured out what s48's intention was. 19:58:35 Also, its manual link is a 404, sheesh. 19:58:42 Hey, I found another BF description in the comments 19:58:42 Brainfuck: You create a Turing complete gun, but it takes 19:58:42 more bytes of memory to store the gun than there are protons in the universe. The universe dies of old age before you finish writing the bullet. 19:59:06 .Net: Microsoft shoots you in the foot. 19:59:30 or Microsoft hands you a gun to shoot yourself in the foot, or Microsoft hands you a gun and swears blind it’s a toenail clipper 20:01:25 .Net: Microsoft shoots you in the foot, then when you complain they sue you for violating their EULA. 20:03:06 DOBELA: Your feet are split into 5 individual dots. Then you find out you can't shoot them. 20:04:03 Piet: You paint your foot, and then make a colorful border around it in order to shoot it. 20:04:42 -!- ais523 has joined. 20:04:55 wb me 20:04:56 asiekierka: You look at your foot, and asiekierka changes the topic. 20:05:13 ehird, good one, even if mocking me 20:05:16 also, it doesn't take me that long to get apple juice normally 20:05:17 congrats 20:05:30 asiekierka part 2: You pull out a gun, and ehird changes the topic back. 20:05:31 just I went and shut down my laptop, and the public Windows computer I was using 20:05:37 then went to a pub that sold apple juice 20:05:43 and met some of my RL friends there 20:05:46 ais523: quick! Gauche/Larceny/MIT Scheme/PLT Scheme/Scheme48/Gambit 20:05:46 see, apple juice is good for you 20:05:47 Pick one. 20:06:01 ehird: MIT Scheme's the only one of those I've heard of 20:06:09 What boring logic. 20:06:16 so I pick that one on the basis that it's the only one that has anything to tell it apart from the others from my point of view 20:06:58 ais523: You do know the names of the others; you could, for example, sort then in sha-hashed order, and choose thusly. 20:07:13 Rick Astley: Never gonna pwn your foot, never gonna shoot them right... 20:08:16 fizzie: That gives MIT. 20:08:27 er, wait 20:08:28 PLT 20:08:31 irb(main):008:0> %w(Gauche Larceny MIT PLT Scheme48 Gambit).map {|x| [Digest::SHA1.hexdigest(x),x] }.sort[0] 20:08:31 => ["83618951efd5e2d2c5c9fb6c1477485364e59136", "PLT"] 20:09:00 Wii: You try to shoot yourself in your foot but you can't aim it properly and you end up shooting your TV. 20:09:30 wow, that's a pretty high number for the lowest SHA hash... 20:09:36 how come they all hashed in the top hald? 20:09:39 *half? 20:09:40 ..................... 20:09:51 unfortunately I don't think Python can do better 20:09:53 fis@iris:~$ echo "Gauche/Larceny/MIT Scheme/PLT Scheme/Scheme48/Gambit" | tr '/' '\n' | awk '{system("echo `echo -n "$0" | sha1sum` "$0);}' | sort | head -n 1 20:09:56 103c701a4dbfc88dbd699811a1bda6350f3c75f6 - MIT Scheme 20:09:59 I used the names with spaces. 20:10:16 it's Scheme 48 20:10:18 with a space 20:10:20 technically 20:10:22 DS: You touch your feet and access the Gun menu. There you select "Shoot". Then you find out you shot your girlfriend's feet. 20:10:35 That was directly copy-pasted from your question, though. 20:10:48 File "", line 1 20:10:49 |i| hashlib.sha1(i).hexdigest() 20:10:51 ^ 20:10:52 SyntaxError: invalid syntax 20:10:54 :( 20:11:04 comex: it's ruby 20:11:05 :P 20:11:12 I know 20:11:14 and I wish python could do it 20:11:18 ......maybe it can 20:12:07 http://practical-scheme.net/gauche/features.html A lot of SRFIs there. 20:12:17 Still wary about it using Boehm. 20:12:24 what's a SRFI 20:12:47 MIT Scheme is probably out, it barely supports any srfis 20:12:51 VERY LOUD NOISE 20:13:06 asiekierk: it's you, you're the very loud noise 20:13:17 One more 1000hz noise 20:13:28 * comex turns the volume down 20:13:51 Deadfish: You have the gun, and the bullets, but you find out you can't input your feet. 20:14:08 -!- ehird has quit (calvino.freenode.net irc.freenode.net). 20:14:08 -!- Leonidas has quit (calvino.freenode.net irc.freenode.net). 20:14:10 -!- GregorR has quit (calvino.freenode.net irc.freenode.net). 20:15:00 -!- ehird has joined. 20:15:00 -!- GregorR has joined. 20:15:00 -!- Leonidas has joined. 20:15:58 wb ehird 20:16:02 well, netsplit-wb 20:17:05 * comex turns the volume down 20:17:06 oops 20:18:28 that was a wicked netsplit 20:18:32 just me, GregorR and Leonidas 20:18:33 chillin' 20:18:56 ok that's annoying 20:18:59 "The name ‘Scheme 48’ commemorates our having written the original version in forty-eight hours, on August 6th and 7th, 1986. " 20:19:05 1986? Wow. This is old. 20:19:14 :P 20:19:37 well, if they worked every 48 hours since then 20:19:43 imagine how good it would be now! 20:19:53 Here's the missing python: 20:19:55 >>> sorted([(hashlib.sha1(imp).hexdigest(), imp) for imp in "Gauche/Larceny/MIT Scheme/PLT Scheme/Scheme 48/Gambit".split("/")])[0] 20:19:58 ('103c701a4dbfc88dbd699811a1bda6350f3c75f6', 'MIT Scheme') 20:22:39 Okay, it's Scheme 48 vs Gauche vs Gambit now, I think. 20:22:59 ehird: didn't you reccommend Chicken to me a while back? 20:23:04 I even installed it, although I never used it 20:23:20 Chicken seemed to have a nice amount of eggs for it. 20:23:57 and wow, are people still watching asiekierka's desktop? 20:24:02 Yes, unfortunately Chicken has several annoying points to it 20:24:05 no hygenic macros by default, no bignums by default 20:24:14 and mostly eggs instead of srfis 20:24:19 can you undefault that? 20:24:29 yes, I think 20:24:37 but I'd prefer to just get an r5rs-compliant interp that used srfis 20:24:48 also fast, preferably 20:27:43 "Bridges are expected to stand up, and on the “first try,” even! Planes are expected to stay aloft. And yet programmers seem to be content with forever competing in the engineering version of the Special Olympics, where different, “special” standards apply and products are not expected to actually do what they say on the box - at any rate, the idea of offering a legal warranty of proper function (or even of not causing utter disaster, in the mann 20:27:45 er customary in every other industry) for a software product is seen as preposterous." 20:27:47 — http://www.loper-os.org/?p=37 20:28:53 ais523: Oklopol is 20:29:01 ? 20:29:13 well 20:29:14 also, I've never seen oklopol spelt with a capital letter before 20:29:20 there's something very wrong about that 20:29:22 i know 20:29:24 but 20:29:27 Oklopol is. 20:29:30 I have seen "Ais523" on occasion, but there's something very wrong about that too 20:30:09 * ais523 writes /clear 20:30:13 those initcaps things are spooking me 20:30:45 irb(main):005:0> ["Gambit-C","Scheme 48","Gauche"].map {|x| [Digest::SHA1.hexdigest(x), x]}.sort[-1] 20:30:46 => ["d8be759feff060354d1fd9cf4bd1a0a764f31a1e", "Gauche"] 20:30:52 It is the highest form of Scheme, clearly. 20:31:11 Hmm, Gambit has little SRFI support 20:31:26 48 seems to have, uh, none. 20:31:36 No, wait. 20:31:44 48 has a lot. 20:31:46 -!- kerlo has joined. 20:31:51 If you're getting unsuitable results from your SHA hashes, just try alternative spellings. 20:32:34 hmm, how do you print a regex match with awk 20:32:58 % ls scheme48-1.8/scheme/srfi/srfi-*.scm | awk '/srfi-(.+?)\.scm/ {print $1}' | xargs echo isn't working 20:33:02 -!- ais523_ has joined. 20:33:07 -!- ais523 has quit (Read error: 104 (Connection reset by peer)). 20:33:09 ais523_: % ls scheme48-1.8/scheme/srfi/srfi-*.scm | awk '/srfi-(.+?)\.scm/ {print $1}' | xargs echo 20:33:15 do you know how to get that awk call working? 20:34:21 ehird: I don't actually know awk 20:34:25 I learnt sed and perl first 20:34:27 -!- ais523_ has changed nick to ais523. 20:34:31 that reduces the incentive to learn awk 20:34:32 awk is prettier 20:35:13 Perl is beautiful 20:35:13 all that meaning compressed into a few illegible characters 20:36:00 Also ls scheme48-1.8/scheme/srfi/srfi-*.scm | perl -ne 'print "$1\n" if /srfi-(.+?)\.scm/;' 20:39:39 S48: 40 srfis, 1 11 13 13 14 16 17 19 2 25 26 27 28 37 39 4 40 42 43 45 5 60 61 63 66 67 7 71 74 78 20:39:39 Gambit: 11 srfis, 0 4 6 8 9 18 21 22 23 27 39 20:39:41 Gauche: 40 srfis, 0 1 2 4 5 6 7 8 9 10 11 13 14 16 17 18 19 22 23 25 26 27 28 29 30 31 34 35 36 37 38 39 40 42 43 45 55 61 62 87 20:39:48 what is a srfi? 20:39:57 ais523: scheme request for implementation 20:40:02 scheme extension library standards, pretty much 20:40:07 http://srfi.schemers.org/ 20:40:32 If every implementation supported lots of SRFIs, beautiful portable Scheme code would be possible. 20:40:38 And that if is way too hopeful. 20:40:47 Most just invent their own shit to solve a problem. 20:40:52 ehird: If you *want* the awk, you can uglily do it with: | awk 'if (match($0, /srfi-(.+?)\.scm/, a)) print a[1]; }' 20:41:34 It seems a bit silly that you can't get to the matched parentheses in the line-select-o-tron. 20:42:44 also, has this corewar prorgam been made? I call it the "Imp-O-Matic" (hur hur) 20:42:45 basically 20:42:48 tons of spls 20:42:50 then imps 20:42:56 that move so they don't clash with the other imps 20:43:03 probably not, how would it win? 20:43:03 or probably and it didn't win 20:43:16 ais523: it'd be just like an imp, except N times faster 20:43:33 yes, people don't use imps as their only strategy because that would be stupid 20:43:40 imp-spirals are more common, as they actually have a way to win 20:43:50 I'm talking basically for the nano hill 20:43:53 so you only have 5 instructions 20:43:58 corewar isn't about surviving, it's about winning 20:44:11 you don't want to write a survivable program that forces the opponent to run your own survivable program 20:44:11 you can climb the hill without winning I believe 20:44:13 which is what an imp does 20:44:25 then you lose every match 20:44:31 because you draw most and lose a few at random 20:47:06 anyway, I'm discounting Gambit 20:47:09 S48: 40 srfis, 1 11 13 13 14 16 17 19 2 25 26 27 28 37 39 4 40 42 43 45 5 60 61 63 66 67 7 71 74 78 20:47:10 Gauche: 40 srfis, 0 1 2 4 5 6 7 8 9 10 11 13 14 16 17 18 19 22 23 25 26 27 28 29 30 31 34 35 36 37 38 39 40 42 43 45 55 61 62 87 20:47:17 pretty much equal, Gauche's srfis look a bit more useful though 20:48:43 Hmm. 20:50:33 as for my Enigma level, I'm surprised that nobody looked up an online strategy guide or anything like that 20:50:35 nobody will have written one for the level in particular 20:50:39 but the game it models is well-known 20:51:34 is it? 20:51:36 I don't know it 20:51:57 I'm rather good at it 20:51:57 I'll play you if you like 20:52:00 12 11 10, your move 20:52:07 (that's a won position for you if you play well) 20:52:21 errr 20:52:25 what's it called, and what's that format 20:52:32 the format's the number of blocks in each group 20:52:39 so you can reduce any of the numbers, but only one number, on your turn 20:52:42 and if you make it 0 0 0 you lose 20:52:44 oh 20:52:48 11 11 10 20:52:53 11 11 0 20:52:58 and I win now, because the position's symmetrical 20:53:01 ^ul ((nim )S:^):^ 20:53:01 nim nim nim nim nim nim nim nim nim nim nim nim nim nim nim nim nim nim nim nim nim nim nim nim nim nim nim nim nim nim nim nim nim nim nim nim nim nim nim nim nim nim nim nim nim nim nim nim nim nim nim nim nim nim nim nim nim nim nim nim nim nim nim nim nim nim nim nim nim nim nim nim nim nim nim nim nim nim nim nim nim ...too much output! 20:53:12 I can win just by copying what you do 20:53:12 that's one of the first losses you learn to avoid 20:53:26 yep, oerjan knows what it's called 20:53:32 ^ul (nim)()(a~a*~a*^:S( )S:a~a*~a*^*a~a*~a*^:^):^ 20:53:33 nim nim nimnim nimnimnim nimnimnimnimnim nimnimnimnimnimnimnimnim nimnimnimnimnimnimnimnimnimnimnimnimnim nimnimnimnimnimnimnimnimnimnimnimnimnimnimnimnimnimnimnimnimnim nimnimnimnimnimnimnimnimnimnimnimnimnimnimnimnimnimnimnimnimnimnimnimnimnimnimnimnimnimnimnimnimnimnim nimnimnimnimnimnimnimnimnimnimnimnimnimnimnimnimnim ...too much output! 20:53:36 but there's another game called nim which isn't as good, I prefer this nim 20:53:40 19:52 ehird: 11 11 10 20:53:40 19:52 ais523: 11 11 0 20:53:42 oh 20:53:45 ^ul (nom)()(a~a*~a*^:S( )S:a~a*~a*^*a~a*~a*^:^):^ 20:53:45 nom nom nomnom nomnomnom nomnomnomnomnom nomnomnomnomnomnomnomnom nomnomnomnomnomnomnomnomnomnomnomnomnom nomnomnomnomnomnomnomnomnomnomnomnomnomnomnomnomnomnomnomnomnom nomnomnomnomnomnomnomnomnomnomnomnomnomnomnomnomnomnomnomnomnomnomnomnomnomnomnomnomnomnomnomnomnomnom nomnomnomnomnomnomnomnomnomnomnomnomnomnomnomnomnom ...too much output! 20:53:46 you can reduce it any amount 20:53:49 :D 20:53:49 stop it 20:53:51 ais523: okay 20:53:55 can I retry my move? 20:54:15 ais523: you mean misere nim, i take 20:54:23 ais523: 12 5 10 20:54:37 (yours that is, the other being standard play) 20:54:58 although they are equivalent for all except the endgame 20:55:05 -!- ais523 has quit (Read error: 60 (Operation timed out)). 20:55:47 Scheme of the process of writing in the Scheme, eval and techniques without the use of foul, C is easier than writing. I know that comfort is INPURIMENTETA Scheme, C, even if in the process of writing, the only remaining primitive minimum C must be written in the Scheme at any cost ... the temptation to get motivated. 20:55:52 i love japanese translations 21:01:15 19:58 ehird: Which is generally preferred as a general use scheme: Gauche or 48? 21:01:15 19:59 Riastradh: Personally I prefer Scheme48 for admiral use, but I don't know about generals. 21:01:19 Oh so witty. 21:01:47 -!- ais523 has joined. 21:01:59 [19:54] oerjan: are you any good at nim, by the way? 21:02:15 ais523: i know the winning strategy 21:02:23 so do I 21:02:25 ehird: 12 5 9 (i win) 21:02:31 ehird: ja no branches 21:02:44 bsmntbombdood: what 21:02:50 it's more fun if you don't let people know that the game has been solved when you teach them it, though 21:02:53 that's hot. 21:02:54 and teach them bits of strategy 21:03:01 bsmntbombdood: ah, rite 21:03:01 well that's true :D 21:03:13 ais523: I was planning on writing a bot that brute-forces it, then seeing what patterns it takes to write an intelligent solver 21:03:27 like "don't let the opponent get 1-2-3" and "don't let the opponent get x-x-0 for x>1" 21:03:36 ehird: interesting 21:03:59 I not only know the strategy, but have also proved it correct, I was bored once 21:04:14 problem solving is merely optimization :P 21:05:12 ehird: do you think using only one table and a couple of shifts would be faster? 21:05:19 bsmntbombdood: not sure 21:05:24 memory access is slow, isn't it? 21:05:30 -!- KingOfKarlsruhe has quit (Remote closed the connection). 21:05:34 so a few shifts might be faster than accessing memory 21:05:36 well those tables are relatively small, the fit in cache 21:06:59 memory access is very fast if it fits in the L1 cache, slow otherwise 21:08:09 i've only got 3*26 + 512 bytes of tables 21:08:21 bsmntbombdood: bruteforcing the nim strategy? 21:08:29 what's nim? 21:09:01 bsmntbombdood: read backlog 21:09:16 he's fiddling with comex's morse, ais523 21:09:20 IF YOU KNOW WHAT I MEAN. 21:09:20 :| 21:09:22 it's what we were discussing for the last half-hour or so 21:09:25 ehird: ah, ok 21:09:28 Purely based on 26, I would've guessed the morse thing. 21:10:13 -!- Sgeo has joined. 21:10:50 WINK WINK? 21:11:30 morse contains more than the alphabet iirc 21:11:34 oerjan: why don't you show ehird the solution to the Enigma puzzle I gave him, or at least the first move? 21:11:38 12 11 10, your move 21:11:44 oerjan: not in comex's problem it doesn't 21:11:48 oerjan: it just does the alphabetical ones 21:11:52 1 11 10, i think 21:11:56 ah, yes 21:11:59 1 9 10 21:12:17 1 9 1? I didn't play the Enigma Puzzle so i don't know 21:12:21 1 9 8 21:12:28 asiekierk: 1 9 1 goes to 1 1 1, I win 21:12:33 1 9 8 is the correct move there 21:12:33 oh 21:12:36 sorry 21:12:36 didn't know the rules 21:12:40 Explain plz 21:12:42 so I can play 21:12:57 oerjan: it does, i didn't implement it 21:13:00 1 6 8? 21:13:06 ais523: you said whoever makes 0 0 0 loses, right? 21:13:11 not 1 1 1 21:13:14 oh 21:13:18 1 6 7 21:13:26 oerjan: yes 21:13:33 but clearly you're going to win this one 21:13:38 1 5 7 21:13:44 so misere, it's a bit to remember at the end 21:13:49 yep 21:13:54 I wanna play 21:13:56 ais523: you start 21:13:57 1 5 4 21:13:59 Me too 21:14:03 But I don't know the rules 21:14:12 oerjan: I'll just resign this one, 1 0 4 21:14:18 and you can trivially win from there 21:14:23 1 0 0 21:14:26 you win 21:14:26 Would it be 1 0 1 21:14:28 ais523: 21:14:30 i wanna play :D 21:14:31 ehird: ok 21:14:32 Me too 21:14:34 ais523: i solved your puzzle, was rather trivial once i actually tried, problem is the ai still gets jammed. 21:14:36 what position should I start form? 21:14:39 but what's the rules 21:14:39 ais523: whatever you wish 21:14:43 allow me to win though 21:14:45 asiekierk: 1 0 1 is for the other nim variant, where making 0 0 0 _wins_ 21:14:47 asiekierk: simple: 21:14:50 ok, 3 5 7, your move 21:14:51 err 21:14:53 that's a won position for you 21:14:53 you can remove any amount from one column 21:14:54 but only one 21:14:55 are you discussing it 21:14:59 you want to make the other person get to 0 21:15:04 ais523: 1 5 7 21:15:05 in any column 21:15:09 oklopol: I'm not giving the exact puzzle there, so as to not spoil it 21:15:10 ehird: 1 5 4 21:15:20 ais523: 1 5 3 21:15:26 asiekierk: on your turn, you can reduce any of the numbers by any amount, but have to reduce exactly one number 21:15:29 ehird: 1 2 3 21:15:35 if you make the position 0 0 0, you lose 21:15:36 ais523: 1 2 2 21:15:40 0 2 2 21:15:44 Okay 21:15:49 ha I win yaaay 21:15:56 ehird: no you don't 21:15:59 what's your next move? 21:16:01 ais523: could you fix the bug, i can't find a way not to get the ai jammed :P 21:16:05 And how do you win 21:16:05 well, i'll try a few times 21:16:09 oh 21:16:13 oklopol: the bug only appears if the AI tries to move in the lefthand column 21:16:14 i get it 21:16:16 oh, right 21:16:18 if you play the optimal strategy, it never does 21:16:22 Lemme try, but I probably will suck at it 21:16:26 ais523: 0 2 1 21:16:28 I lose. 21:16:33 yep, 0 0 1, and you lose 21:16:39 Wait, 0 0 1? 21:16:41 I thought it's only 0 0 0 21:16:43 asiekierk: I played 0 0 1 21:16:48 thus forcing ehird to play 0 0 0 and losing 21:16:49 Oh, right 21:16:51 I see 21:16:52 0 0 0 21:16:57 asiekierk: 3 5 7, your move 21:17:02 ais523: what does "optimal" mean? 21:17:06 3 3 7? 21:17:09 oklopol: the only strategy that wins 21:17:11 asiekierk: 3 3 0 21:17:11 i'm using a winning strategy 21:17:19 but it gets jammed. 21:17:21 there is only one winning strategy, the way it's set up 21:17:30 /msg me the moves you're using so I can check 21:17:33 i see. then there's probably an error somewhere in my derivation 21:17:36 but we'll see 21:17:36 is it getting jammed in the lefthand column? 21:17:42 sure 21:17:47 but i'll just try a few times 21:17:49 it should never be moving there 21:17:57 except possibly on the very last turn 21:18:13 asiekierk: where are you moving from there? 21:18:15 thinking 21:18:18 incidentally, 3 3 0 is a winning position for me 21:18:20 as I can just copy what you do 21:18:46 20:18 Riastradh: If you were more specific with your inquiry, more specific persons might reply more specifically. 21:18:55 god, that guy doesn't have a stick up his ass, he has an ass up his ass. 21:19:15 2 3 0 21:19:47 asiekierk: 2 2 0 21:19:48 ais523? 21:19:49 oh 21:20:06 2 1 0 then 21:20:11 0 1 0 21:20:15 I lose 21:20:17 yep 21:20:26 I just found out about this game 21:20:27 so uh 21:20:27 want another game? 21:20:38 Yep 21:20:39 5 2 3 21:20:44 your turn 21:20:45 1 2 3, I win 21:20:52 ...what? 21:20:55 (1 2 3's a well-known winning position) 21:20:59 I don't win yet, but it's inevitable 21:21:05 Where are you taking all these positions from!? 21:21:11 anyway 1 2 1 21:21:14 1 1 1 21:21:14 ais523: i don't know the moves, they depend on what the ai does. 21:21:15 3 3 0 -> (2 3 0 -> 2 2 0 -> (1 2 0 -> 1 0 0 -> 0 0 0 | 0 2 0 -> 0 1 0 -> 0 0 0) | 1 3 0 -> 1 0 0 -> 0 0 0 | 0 3 0 -> 0 1 0 -> 0 0 0) 21:21:19 oklopol: the ai's deterministic 21:21:24 http://www.cuil.com/search?q=Wolfram+Alpha 21:21:27 0 1 1, then you do 0 0 1 and I lose 21:21:27 home yoghurt making 21:21:30 i'm not using any kind of cool strategy, i just manually brute-forced the whole game. 21:21:31 ebony foot worship 21:21:51 oklopol: you manually the _whole_ game? 21:21:52 Uh, I must make a version of that game for the DS 21:21:55 ais523: determinism help very much, i'm so going to deduce how it works. 21:22:00 oerjan: just enough to win that one 21:22:08 oh 21:22:09 :) 21:22:16 well still, same answer 21:22:20 ehird: Used Armoire's my favourite there 21:22:40 Do you know any fun games like that? 21:22:48 asiekierk: Nim. 21:22:54 what's Nim 21:22:57 asiekierk: that game 21:22:59 that we were just playing 21:23:05 oh 21:23:05 Kayles is related but a bit harder to represent over IRC 21:23:25 http://www.reddit.com/r/programming/comments/830u9/wolfram_alpha_is_coming_and_it_could_be_as/c083vsm 21:23:27 is this real? 21:24:27 okay i agree with AnMaster on the game. 21:24:35 well about 21:24:47 well level 21:24:52 Fuuuuuck 21:24:54 Lost the game :( 21:25:17 ais523: btw is that a trivial game? i didn't read the logs 21:25:45 it's been solved, it's trivial for a computer (thus I wrote the perfect AI), but not quite that trivial for a human to do the calculations in their head 21:25:54 my solution is not in any way mathematically beautiful, although subsolutions are, didn't see a reason to find a complete theory because i already found out enough to beat it 21:26:32 ehird: that comment is a joke, I think 21:26:45 and i'm not going to show it to you before i know it works. 21:27:01 although those answers are the sort of thing it would come up with, I think the commentor went out of the way to come up with silly answers 21:27:52 ais523: i have a few rules for what states are win and what are lose, if i have errors, they must be pretty consistent, because all the states before it jams are wins. 21:27:58 ais523: In what did you write the perfect AI 21:28:00 ehird: from briefly browsing the beginning of what the linked article said, the actual alpha won't be released until may 21:28:07 http://www.theonion.com/content/news/al_gore_places_infant_son_in?utm_source=onion_rss_daily 21:28:07 asiekierk: a random subset of Lua 21:28:13 Oh 21:28:18 I hoped an Esolang 21:28:27 ais523: maybe i could play you on priv? 21:28:30 you be the bot 21:28:31 oklopol: sure 21:28:34 I'll use its strategy 21:28:42 Then me! Then me! 21:28:43 ehird: you know what onion is, i hope, or are you going to ask if that's true as well? :D 21:28:46 *the onion 21:28:48 haha 21:30:08 wtf is this wolfram alpha 21:30:33 #esoteric have been wondering what it is for a while 21:30:38 i read pieces of the press release but it all just sounds like fluff 21:30:43 with no actual explanation of what it does 21:30:52 blah blah blah revolutionary knowledge engine blah blah blah 21:30:59 ais523 has tried it out, apparently it's good 21:31:06 I think it's bullshit, like all of Wolfram's stuff 21:31:08 the annoying thing is that I know what it is but aren't allowed to tell anyone 21:31:19 GRAAAAH JUST TELL US ;__; 21:31:47 How would anyone know if you told us? You know, apart from the publicly accessible channel logs. 21:31:53 /msg :P 21:31:55 brb -> 21:32:53 fizzie: I don't care, I have morals 21:33:16 ais523: how quaint :D 21:33:34 agreed, I feel rather out of place 21:34:19 well by may it'll stand or fall on its own merit, regardless 21:34:35 i don't think mere hype can save such a project 21:34:59 no matter how good wolfram is at it 21:35:00 if you want a piece of information, exactly once in the last two years have I wished that it existed publically 21:35:38 And that was in the context of "if it existed publically, those annoying #esoteric people would stop bugging me about it". 21:35:52 I'll keep the context secret for now, because it's boring 21:36:47 To tell you the truth, I haven't noticed any talk about it here, so it can't be a very regular topic. 21:37:44 it's only a couple days since it showed up on reddit, isn't it? 21:38:08 well, I've already seen the wolfram hype machine in action about the 2,3 thing 21:38:16 and was mentioned here, and that's the first i saw 21:38:40 Could This be a Cuil killer? 21:38:41 It is a bit corny to have on wolframalpha.com an image of a text input control. 21:38:57 and i still haven't read the press release btw, in fact i think that's partially because of wolfram's hype notoriety 21:39:23 the press release is unfortunately mostly meaningless 21:39:42 def a(): 21:39:43 for i in xrange(5): 21:39:45 q = Slist([2, 3, 4, 5, 5]).filt(y == 5) 21:39:46 print q 21:39:47 #dis.dis(a) 21:39:59 comex: stop pasting Python over IRC, my client doesn't receive the indentation 21:40:03 neither does mine 21:40:04 so I can't tell what the program does 21:40:09 the idea is 21:40:20 Slist(somelist).filt(y == 5) 21:40:22 filters on |y| y == 5 21:40:29 without the need to type lambda 21:40:29 my client receives the indentation but displays it as inverted I's 21:40:31 neither does mine but i don't know python 21:40:44 you know 21:40:46 yes, I know, that's horrible 21:40:50 i guess i have the logical means, at least 21:40:56 that idiot who designed morse code really should have used prefix-free codes 21:41:12 it does this by using ctypes to modify the code of the calling function 21:41:12 bsmntbombdood: that would have made it a lot slower 21:41:13 no not really 21:41:17 the first python macro, I guess :p 21:41:22 ais523: how? 21:41:25 it's fairly perfect as is 21:41:34 bsmntbombdood: by reducing its compression ratio 21:41:52 ais523: you'd get rid of the waiting between symbols 21:42:02 which is not very long for a skilled operator 21:42:05 it's the same length as a dash 21:42:08 yeah, and also it's easier to learn to listen to it this way 21:42:17 whereas the waiting between dots/dashes is the same length as a dot 21:42:30 and prefix free codes wouldn't make it longer than an extra dash 21:42:31 but that's a minor point ofc 21:42:35 Morse Code is prefix-free, really 21:42:40 you just have to realise it has four symbols not just two 21:42:45 yeah 21:42:53 ...not 21:42:55 it communicates data both in the length the signal is on, and the length the signal is off 21:43:31 which is bad 21:43:52 comex: Uh... if you just want to not type lambda, why not just use [y for y in [2, 3, 4, 5, 5] if y == 5]? 21:44:37 . . . . . . ... . . . ... . . ... ... ... . ... ... ... ... ... . ... . . ... . . ... . . 21:44:51 bywe 21:44:53 -!- asiekierk has quit. 21:45:14 fizzie: too verbose 21:45:18 actually, speaking as an engineer, the main problem with morse code is that it isn't balanced 21:45:29 it spends more time during dots and dashes then it does between them 21:45:43 which means you need to use a sort of line to transmit it that can handle a net direct current 21:45:59 (although by making e a single dot that problem's reduced to some extent) 21:46:24 hmm? 21:46:27 what do you mean single dot 21:46:31 oh 21:46:35 isn't e "." in morse code? 21:46:38 or have I messed that up? 21:46:39 the fact that it *is* a single dot 21:46:41 yeah 21:46:41 it's . 21:46:50 frequent -> short 21:46:56 most frequent -> shortest 21:47:06 yes, but more to the point, most frequent -> shorter than the gap between letters 21:47:16 so you're letting the communication medium be a bit more negative to count out all the positives 21:47:45 oh that's what you were talking about 21:47:48 right 21:48:50 the subtleties in communication codes are rarely apparent to people who haven't looked into them 21:49:21 anyway, IIRC telegraphs used amplitude modulation of a carrier wave 21:49:41 and that always cancels out negative/positive, so it wasn't a problem for them 21:50:05 * bsmntbombdood keeps forgetting that he wants to get a cw transceiver 21:50:21 what does cw stand for in that? 21:50:31 constant wave 21:50:56 morse code is transmitted by turning a constant tone on and off 21:51:04 ah, yes 21:51:18 in my course they call it ASK 21:52:11 ASK is more general iirc 21:52:31 well, ASK refers to sending digital data by turning a constant wave on and off 21:52:42 so it's only more general in the sense that it doesn't have to refer to radio 21:52:48 you could do ASK with a piece of string in theory 21:52:54 maybe I should, it could be a fun experiment 21:53:20 Also in the sense that it might have more than two amplitude levels, according to wiggibedia. What you say is "called on-off keying". 21:53:55 well, ok, although using more than two amplitude levels for ASK is relatively stupid because you may as well do QPSK if you're doing that 21:54:04 or one of the multiple-level versions of QPSK 21:55:29 ASK or not ASK, that's the question 21:59:22 IR remote protocols are funny. At least those remotes I have here all encode the data by sending a train of fixed-length on/off pulses (of a 38 kHz carrier wave), with 0/1 bit encoded by the length of the pause between pulses; and then they send both the actual command and its complement, so that the total transmission length is constant. 21:59:56 it reminds me of the secure smartcards they're making nowadays 22:00:08 which are careful to never think a 0 without thinking a complementary 1 at the same time 22:00:18 it seems that people were hacking into them by calculating their thoughts by measuring the power drain 22:00:28 which is insane, I like it 22:00:40 fizzie: why? 22:00:47 Yes, and the crypto-people call that a "power attack", which is also funny. 22:01:45 side-channel attacks are terrifying 22:01:57 agreed with that 22:02:11 quantum encryption is 100% mathematically secure, but something like 8 side-channel attacks have been found against it 22:02:22 you think aes is secure? not if you have hostile code running in an untrusted proccess on your machine 22:02:45 bsmntbombdood: hostile code running in a trusted process would be worse 22:03:00 that's the thing, it doesn't need to be a trusted process 22:03:09 and it wouldn't be any worse 22:03:22 because an untrusted proccess can recover your key 22:03:42 -!- Mony has quit ("Quit"). 22:04:58 Oh, that one thing about getting CRT screen pictures by just measuring the general lightness level (through a curtain, or reflected off a wall) over time and then deconvolving with the impulse response of the CRT phosphors; that was also the awesome. 22:05:58 van eck 22:06:14 fizzie: ok, that one is utterly awesome 22:06:32 you can do it with lcds, usb keyboards too 22:06:33 although I'm pretty surprised that deconvolution's that accurate 22:07:21 http://www.cl.cam.ac.uk/~mgk25/ieee02-optical.pdf has some pictures. 22:07:56 And that one only works for CRT tubes, since it's about measuring diffusely-reflected light, not picking up the EM radiation like the Van Eck stuff. Although that's frightening too. 22:08:48 there's a reason why TEMPEST is so strict 22:17:59 -!- SimonRC_ has changed nick to SimonRC. 22:19:11 21:01 bsmntbombdood: side-channel attacks are terrifying 22:19:19 like "give us the key or I'll fuck you with this metal pole" 22:19:22 that tends to work. 22:19:38 ...except you don't even have to go there 22:20:04 isn't that more behind-channel? 22:20:08 luckily, that sort of side-channel attack, here in the UK, would probably receive media coverage 22:20:22 ais523: yeah, criminals are universally caught. 22:20:37 including the authorities using 'advanced interrogation techniques'. they're all in jail. 22:21:02 ehird: I wouldn't say universally 22:21:07 but it certainly makes you a lot easier to catch 22:21:09 that was sarcasm. 22:21:18 if you have to physically abduct the person you're trying to hack into the files of 22:21:25 yes, hiding from the authorities is likely to be stupid 22:21:36 the only thing you can do is elect people who'll try to respect your privacy, and that's basically impossible 22:21:43 they just have to park a van outside for a couple hours 22:22:10 someone should make an anarchy party, whose goal is to 1) get elected, and then 2) disestablish all government 22:22:11 for: 22:22:19 I wouldn't vote for them 22:22:26 I'd fear for my life if some people like that got elected 22:22:36 ais523: Anarchy is fine if everyone is perfect 22:22:45 but, well... they're not. 22:22:47 ehird: there are a lot of imperfect people around, unfortunately 22:24:05 hmm, gauche vs scheme48 is a hard question 22:24:26 can you use the libraries from one with the other? 22:24:34 bye 22:24:38 bye akiross 22:24:44 -!- akiross has quit ("Leaving"). 22:24:51 that was unexpected 22:25:03 someone's been idling all this time, and jumps in just to say bye, and isn't Mony? 22:25:33 * Sgeo does that sometimes 22:25:59 21:24 ais523: can you use the libraries from one with the other? 22:26:02 they're entirely unrelated interps. 22:26:09 so, it depends on what the libs are written in 22:26:14 err, what? 22:26:15 if they're written in scheme, I wouldn't be surprised 22:26:20 I'm not even talking about the libraries 22:26:21 because they're both scheme interps 22:26:25 that's utterly irrelevant to my current decision 22:26:29 ah, ok 22:26:51 -!- olsner has quit ("Leaving"). 22:26:56 it was you posting about the srfis higher up, presumably you've gone on to compare some other things now 22:27:06 like the diameter of the steering wheel, or whatever 22:27:14 well, that was my first stage of comparison 22:27:21 but they're both roughly on a level playing field as far as srfis go 22:27:22 * oerjan swats ais523 -----### 22:27:29 ouch! why? 22:27:29 apparently gauche's interp is "hard to maintain" 22:27:35 but it has nice stuff for scripting 22:27:41 * ais523 catches oerjan in a butterfly net -----\XXXX/ 22:27:44 i felt we were on an "unexpected" flow here 22:27:56 oh dear 22:28:08 that was certainly unexpected 22:28:22 I was wondering what would beat a swatter at stone-paper-scissors 22:28:32 and utterly failed to come to a decision, so I used a butterfly net instead 22:28:39 what is it a reference to? 22:28:44 ehird: Top Gear 22:28:53 there was an argument that James May was losing 22:28:54 ah, I like top gear but I don't recall any such quote 22:29:03 so he went around comparing utterly irrelevant features of the cars 22:29:11 to find one that he won at 22:29:17 http://www.capturedlightning.com/frames/interesting.html 22:29:19 one advantage of scheme48: It's not written by a japanese person with questionable English (well, ok, it's mostly fine but bits of awkwardness every now and then) 22:29:24 http://link.brightcove.com/services/player/bcpid1417302205?bctid=1419758473 22:32:52 Sgeo: awesome 22:33:31 Same people also shrink coins. Why you'd want to do this I don't know 22:33:35 http://www.capturedlightning.com/frames/OldQtr_R1.jpg 22:42:12 Ah, Gauche fails some R5RS pitfall tests. 22:42:13 Hm. 22:43:34 pitfall tests? 22:44:37 http://sisc-scheme.org/r5rs_pitfall.php 22:44:45 Horrible, evil Scheme code that is technically R5RS compliant. 22:45:20 a nice testsuite 22:46:16 ((lambda lambda lambda) 'x) 22:46:21 not the most evil thing there, but I love that line 22:46:46 it should have been: 22:46:50 ((lambda lambda lambda) '(mushroom mushroom)) 22:47:09 argh, that's the second badgerbadgerbadger reference that's been made today 22:47:18 what is it with those references, the llama song was so much better 22:47:25 (the other was in RL) 22:47:36 "in RL"? 22:47:41 oh 22:48:22 sorry, should I have said "afk" instead? 22:54:25 -!- k has joined. 22:54:48 -!- kar8nga has quit (Nick collision from services.). 22:54:51 -!- k has changed nick to kar8nga. 22:55:07 -!- kar8nga has quit (Remote closed the connection). 23:00:19 gosh> (+ 1 +inf.0) 23:00:20 0 23:00:21 .lol wat 23:00:49 "gosh"? 23:01:17 The gauche shell 23:01:31 why are repls called shells nowadays? 23:01:39 I have a real shell for doing shell stuff 23:01:43 let my repl do repling 23:01:45 the first repls were shells. 23:01:53 a shell IS an R.E.P.L. 23:02:00 no, a shell's just a REL 23:02:04 there's no printing involved 23:02:09 unless you invoke a command that does the printing 23:02:10 My shell informs me of the results of commands. 23:02:17 what, really? 23:02:22 ais523: depends on what you mean by "P" 23:02:22 my commands inform me of the results of commands 23:02:34 the shell just runs them, and connects them together in pretty unixy ways 23:02:46 shells typically bing stdout to the same place shell messages go 23:03:04 they are printing the result of the stream operations you specify 23:03:21 ais523: you're just nitpicking 23:03:23 'tis a bit of a stretch 23:04:17 Options: -h Maximum heap size in words (default 3000000). 23:04:17 A heap size of 0 means the heap can grow 23:04:18 unboundedly. This is dangerous because it can 23:04:20 cause your system to run out of memory. 23:04:23 lol wat 23:04:32 WHAT MY COMPUTER MIGHT RUN OUT OF MEMORY OH LORD 23:05:31 it's a resource limit 23:05:38 and setting resource limits is generally considered wise 23:05:53 I know, but it's ridiculous, 1. my computer can do that for me 2. being subturing out of the box is just silly 23:06:26 ehird: it's subturing anyway, your computer has finite memory 23:06:34 that's not the implementation's fault 23:06:35 > ^D 23:06:36 Exit Scheme 48 (y/n)? y 23:06:38 okay, you know what? 23:06:41 you don't have to ask me that. 23:06:49 also, asking on ^D? does that even make sense? 23:06:56 you can't have a y after end-of-file to say yes 23:07:04 ... 23:07:06 it's just a subturfuge 23:07:08 so it has to open a whole new file just to prompt you 23:07:10 Sometimes I wonder if you actually use a computer 23:07:18 it is trivial to trap ^D 23:07:25 this repl has no line editing, and it does that 23:07:28 ehird: only in an interactive environment 23:07:34 this is an interactive environment 23:07:40 not necessarily 23:07:47 and I know it can treat interactive and noninteractive differently 23:07:50 if it wasn't, it wouldn't prompt. 23:07:58 but IMO, things are neater if it treats everything the same 23:08:08 neater as in less user friendly, yes. 23:08:14 like no prompts 23:08:17 or line editing 23:08:25 ehird: neater as in more user friendly, I prefer things to act predictably 23:11:03 Am I the only one here who fantasizes about Croquet being as popular and well supported as SL? 23:11:19 you're certainly the only one here who uses words like "fantazised" for things like that 23:12:21 * ehird allocates 100000000 cons cells. 23:12:24 Sgeo: croquet was around long before second life was, they're rather different though 23:12:28 \m/ 23:12:39 ais523: er, croquet = 2007 23:12:46 was the actual release 23:12:48 ehird: no, croquet was around in victorian times 23:12:54 **groan** 23:13:06 it's not even meant to be a pun or misunderstanding 23:13:12 you can't just steal common words like that 23:13:12 http://en.wikipedia.org/wiki/Croquet_project 23:13:24 ais523: I agree -- unix stole eunuchs 23:13:28 I'm still annoyed at Microsoft for using "Windows" as the main meme-name of an OS 23:13:29 How horrid of them 23:13:37 and no, those are pretty clearly different words 23:13:43 same pronounciation. 23:15:16 not really, I actually pronounce the I in UNIX as an I, although I'm aware that's not the "standard" pronunciation 23:15:27 Exit Scheme 48 (y/n)? 23:15:27 I'll only ask another 100 times. 23:15:28 Exit Scheme 48 (y/n)? Exit Scheme 48 (y/n)? Exit Scheme 48 (y/n)? Exit Scheme 48 (y/n)? 23:15:37 It does not like rlwrap. 23:16:20 ehird: well, you seem to be making my points for me, just more effectively 23:16:41 ais523: "Scheme 48's REPL is buggy" != "your points are correct" 23:16:45 It's buggy for entirely different reasons 23:17:01 "Scheme 48 uses a copying garbage collector." 23:17:08 That would be why it is using 2GB of ram, when I only consed up 1. 23:17:24 lots of implementations use copying garbage collectors, they can be very fast 23:17:31 Speed != memory 23:17:33 OCaml does for some things, IIRC 23:17:37 and agreed 23:17:44 just an explanation of why double memory would be desirable 23:18:10 > ,collect 23:18:11 Before: 22039 out of 231330816 words available 23:18:12 After: 589056 out of 1937408 words available 23:18:16 Of course, the issue is that it doesn't shrink the heap./ 23:18:23 (I started with -h 0, which means "expand heap to fit program".) 23:18:34 So it'll use 2GB until I kill it, even though there's not many objects floating around. 23:18:36 nearly everything doesn't shrink the heap 23:18:47 they should 23:18:53 even malloc()/free() doesn't normally with most implementations, you have to jump through hoops to get heap shrinkage to work 23:19:03 oh, that's not what I mean 23:19:13 what do you mean then? 23:19:15 if you malloc 2gb then free it, the memory counter in Activity Monitor goes down, and the memory is returned to the OS 23:19:20 in scheme 48, if you cons 2gb 23:19:22 what, really? 23:19:22 then discard it 23:19:24 and run the gc 23:19:25 ehird: there is a theory that gc'ed memory can be faster than manually allocated memory, but only if you use much more memory than you actually need 23:19:28 it still uses 2gb of memory 23:19:29 forever 23:19:30 as long as memory isn't too fragmented, paging will let you ignore the vast tracts of currently-free space 23:19:31 you can never shrink it 23:19:34 most implementations of free don't return to the OS, but to that process's malloc 23:19:45 s/use/allocate/ 23:19:46 after all, if you're still keeping something allocated near the end of memory 23:19:48 oerjan: I support the theory, except without your annotation 23:20:02 Not using a gc is always a bug... 23:20:24 ehird: or some form of compiler-checked allocation 23:20:26 ehird: i am just pointing that it can be about trading memory for speed 23:20:31 one which gc is only one sort 23:20:38 -!- tombom has quit ("Peace and Protection 4.22.2"). 23:20:54 wow, I've just had an insane idea, which wouldn't work for most programs but would be very eso on the ones it did 23:20:55 hmm... if a copying GC uses twice the space that is within objects, that rather suggests it is a non-generational copying GC. Ouch. 23:20:59 static analysis of memory allocation 23:21:08 you just figure out all the mallocs at compile time 23:21:18 and replace them with offsets into a fixed data structure 23:21:19 ais523: that is standard in Avionics 23:21:36 accoding to my dad, at least, and he should know 23:21:44 sounds great, and it would actually be appropriate there 23:21:51 http://pastie.org/411167 <- my tseting procedure 23:21:54 now to try it in gauche 23:22:00 let's do it in something it's utterly unsuited for, like a compiler 23:22:12 in fact, it is usual for small/hard real-time embedded systems 23:22:25 ehird: ITYM http://rafb.net/p/4g4iA738.html 23:22:25 also, COBOL uses static allocation 23:22:34 >_< 23:22:38 forth tends to for a lot of things too 23:22:51 OK, 1.35GB being used 23:23:02 running gc 23:23:07 hmm... this reminds me of the thread on clc of someone who was translating C into C# 23:23:09 aaaand it's still using 1.35GB 23:23:14 and wanted to know what to translate free() into 23:23:18 lol 23:23:26 and there has been some research into "region inference", to make Ocaml programs' allocation more efficient 23:23:46 GC works fine in practice 23:23:59 the solution's to assign C#'s version of null to whatever you were trying to free, so it can be garbage-collected 23:24:07 ehird: unless a 100us delay is deadly 23:24:09 ;-) 23:24:10 SimonRC: 23:24:13 a version of c's {} that applies to allocations within would be a huge boon for that 23:24:16 i.e. 23:24:21 but no individual usenet newsgroup's likely to give a good answer due to topicality problems 23:24:37 SimonRC: wow, microseconds? that's quite a lot 23:24:39 mem{ int *a = local_alloc(1gb); do stuff with a; } 23:24:45 at the end of the block, *a is freed 23:24:46 when working with VHDL a lot you tend to think in nanoseconds 23:24:51 likewise with asm on modern processes 23:24:53 as well as any other local allocations on the local allocation stack at the time 23:24:57 *processors 23:25:27 ehird: they're called auto variables. 23:25:30 VHDL handles picoseconds too, but that's only really useful if you're trying to model individual transistors in the processor rather than just writing down how they behave 23:25:34 C doesn't have them, does it? 23:25:41 ehird: VLAs 23:25:43 or "stack allocated" in colloquial C++ 23:25:44 but they're only in C99 23:25:48 sure, that's stack allocated 23:25:52 good luck fitting 1gb on to the stack 23:25:58 i'm talking about scoped heap allocation 23:26:02 in theory, they don't have to be stack allocated 23:26:05 Cobalt is alpha 23:26:07 nothing in the C standard says they are 23:26:15 And I think Cobalt is basically what I want 23:26:16 just most implementors do them like that because they're lazy 23:26:26 also, what makes you think the heap is bigger than the stack? 23:26:39 c++'s destructors allow heap-allocated stuff to have a lifetime as if it lives on the stack 23:26:40 * ais523 grew up on DOS, where in some memory models they're equal 23:27:03 you keep saying c++ 23:27:04 stop i t 23:27:11 ehird: why? 23:27:13 why? 23:27:20 after all, C++ was designed to add lots of features missing from C 23:27:26 because if a 100us delay is deadly, you shouldn't be using anything but asm and cx 23:27:27 *c 23:27:28 some of them were subsequently backported 23:27:37 * ais523 suddenly realises why ehird hates C99 so much 23:27:38 ehird: huh? why? 23:27:48 ehird: C++ is no slower than C if you don't make use of its slower features 23:27:52 SimonRC: for a start, you shouldn't even use C++ 23:28:01 ehird: that's quite a strong statement! 23:28:03 I happen to like C++ 23:28:04 and, ais523 too, if you don't use any fancy c++ features why are you using c++? 23:28:09 although I haven't used it for much recently 23:28:13 ehird: to use its faster features? 23:28:21 ais523: indeed, they are designed to be zero-overhead 23:28:43 I find http://www.uni-koblenz.de/~vladimir/breviary/fake.txt to be a more reliable account of C++ than just about anything else 23:29:18 ehird: const char* string constants is a big incompatible improvement, for instance 23:29:31 ehird, I'm taking a C++ class 23:29:45 ais523: I am fairly sure this is valid C89: {const char *foo = "butts";} 23:29:51 Sgeo: that's nice. 23:30:12 ehird: yes, it is I think 23:30:16 but you have to do it explicitly 23:30:26 C++ will warn you if you write {char *foo = "butts";} 23:30:34 I'm sure you can get gcc to warn you about that. 23:30:37 yes, you can 23:30:41 AnMaster does, IIRC 23:30:53 but, it gives too many warnings 23:31:06 because libraries written in C normally expect char* strings 23:31:22 and you can't pass a const char* string into a char*-expecting function without unsafe casts 23:31:35 in C++, because nothing can mess up constness like that, the libraries don't 23:32:41 -Wwrite-strings: "When compiling C, give string constants the type 'const char[LENGTH]' -- These warnings will help you -- but only if you have been very careful about using 'const' in declarations and prototypes. Otherwise, it will just be a nuisance; this is why we did not make '-Wall' request these warnings." 23:32:51 also, the half-meg hello worlds just come from streaming overhead, you don't need heavyweight streams for something as simple as that 23:33:02 in gcc-bf, I get annoyed at stdio overhead for something like a hello world 23:33:17 fizzie: the problem's not so much about code you write yourself, which you can change 23:33:27 but the code everyone else wrote that you have to link to 23:33:53 Sure, but that's what the manual says. They could've mentioned "char *"y library functions. 23:34:08 ;;; -*-Emacs-Lisp-*- cmulisp.el 23:34:08 ;;; Copyright Olin Shivers (1988). 23:34:09 ;;; Please imagine a long, tedious, legalistic 5-page gnu-style copyright 23:34:12 ;;; notice appearing here to the effect that you may use this code any 23:34:14 ;;; way you like, as long as you don't charge money for it, remove this 23:34:16 ;;; notice, or hold me liable for its results. 23:34:18 That's one ballsy license. 23:34:50 well, most standard libraries like the glibc headers have been fixed, now, but third-party libraries are a problem 23:34:55 ehird: the amazing thing is, it would probably work 23:35:08 he didn't explicitly grant any licence priveliges at all, so someone who breaks it can be sued 23:35:26 if someone uses it as described there, though, and he tries to sue them, he won't get a payout due to estoppel 23:35:37 heh 23:35:51 "estoppel" sounds like someone's nick. 23:35:54 probably most companies wouldn't dare use code with a licence as vague as that, but AFAICT it works 23:36:05 It's bundled with scheme48 23:36:08 [Notice] -NickServ- estoppel is not registered. 23:36:17 -!- ehird has changed nick to estoppel. 23:36:19 Bitches. 23:36:38 I may have been thinking of Aardappel. 23:36:42 why the sudden psygnisfive channeling? 23:36:45 This is a nice nick. 23:36:55 what? 23:36:58 whos channeling me? :| 23:37:02 Bitches. 23:37:07 Or eclipple.mp3. 23:37:10 i dont say bitches 23:37:19 YES YOU DO 23:37:25 or did, at any rate 23:37:41 estoppel: I've read that link, and it appears to be some sort of joke? 23:37:49 no shit sherlock 23:37:56 wow, that was blindingly obvious 23:38:03 sorry, but if you're channeling psygnisfive, I want to channel AnMaster 23:38:03 how on earth can you miss the fact that that was a joke? 23:38:07 listen, bitch 23:38:08 aaaaargh!! 23:38:11 i dont say bitches 23:38:15 and I didn't, although I'm disappointed you didn't spot the metajoke 23:38:16 ais523: o 23:38:20 oerjan: oko 23:38:21 "Bitches. I don't say bitches." 23:38:23 okoko 23:38:25 okokoko 23:38:29 okokokoko 23:38:32 okokokokoko 23:38:34 HAHAHAHA 23:38:35 okokokokokoko 23:38:37 okokokokokokoko 23:38:38 ;) 23:38:39 this internet connection sucks; I'm going to bed 23:38:44 okokokokokokokoko 23:38:44 koko is a gorilla 23:38:46 okokokokokokokokoko 23:38:49 okokokokokokokokokoko 23:38:51 okokokokokokokokokokoko 23:38:55 okokokokokokokokokokokoko 23:38:55 ookookook 23:38:57 okokokokokokokokokokokokoko 23:38:59 HEY 23:39:00 I BROKE IT UP 23:39:00 okokokokokokokokokokokokokoko 23:39:02 YOU HAVE TO STOP 23:39:02 okokokokokokokokokokokokokokoko 23:39:06 okokokokokokokokokokokokokokokoko 23:39:07 GOD DAMN YOU PEOPLE 23:39:08 okokokokokokokokokokokokokokokokoko 23:39:10 okokokokokokokoko 23:39:10 okokokokokokokokokokokokokokokokokoko 23:39:11 BUTTS 23:39:12 okokokokokokokokokokokokokokokokokokoko 23:39:12 :||||||||||| 23:39:15 okokokokokokokokokokokokokokokokokokokoko 23:39:17 okokokokokokokokokokokokokokokokokokokokoko 23:39:20 okokokokokokokokokokokokokokokokokokokokokoko 23:39:21 STOP 23:39:22 okokokokokokokokokokokokokokokokokokokokokokoko 23:39:22 HAVING 23:39:23 FUN 23:39:26 okokokokokokokokokokokokokokokokokokokokokokokoko 23:39:27 okokokokokokokokokokokokokokokokokokokokokokokokoko 23:39:28 kokokokokokokokokoko 23:39:29 STOP IT 23:39:30 okokokokokokokokokokokokokokokokokokokokokokokoko 23:39:32 estoppel, surely you have a bot we can loop to kill this shit 23:39:33 okokokokokokokokokokokokokokokokokokokokokokokoko 23:39:37 argh, messed up 23:39:38 !! 23:39:40 darn 23:39:40 hahaha 23:39:42 fuckers 23:39:43 sorry oerjan 23:39:54 <3 thunder 23:40:03 sgeo: ditto 23:40:03 oerjan: try again? 23:40:09 and it was such a perfect channeling :´( 23:40:11 o 23:40:11 oko 23:40:12 okoko 23:40:12 okokoko 23:40:13 okokokoko 23:40:14 dangit 23:40:14 okokokokoko 23:40:15 okokokokokoko 23:40:17 okokokokokokoko 23:40:18 okokokokokokokoko 23:40:20 dsf 23:40:20 dsf 23:40:21 sdf 23:40:24 oh wait 23:40:26 it's oklopol 23:40:28 carry on 23:40:34 an oklopol worth listening to 23:40:38 * oerjan swats estoppel -----### 23:40:45 estoppel: you deserve to be banned for life from here for getting annoyed at oklopol okoing 23:40:47 and everyone is back to their own selves 23:40:52 * Sgeo swats the swatter -----### 23:40:56 ais523: he is exempt from the rules. 23:40:58 hey! 23:41:04 * estoppel yo dawg 23:41:09 estoppel: heh thanks for linking the c++ interview, always brings a smile on my face 23:41:14 * ais523 waves a butterfly net vaguely in the direction of everyone -----\XXXXX/ 23:41:24 oklopol: don't you mean "unto my face" 23:41:31 -!- Jophish has quit (Connection timed out). 23:41:38 * Sgeo undoes faces 23:41:51 * ais523 reads the C++ FQA 23:42:09 -!- BeholdMyGlory has quit (Read error: 104 (Connection reset by peer)). 23:42:23 Is FQA "frequently questioned answers", or what? 23:42:33 yes, frequently questioned answers 23:44:43 -!- BeholdMyGlory has joined. 23:45:25 hmm... the FQA's annoyances with C++ seem to stem around the fact that it isn't a properly OO language 23:45:31 which I agree with 23:45:43 using C++ as a not-quite-C language, though, it's quite good 23:45:59 and being me, I see an undecidable grammar as an advantage not a disadvantage 23:46:14 / don't read this, it's impossible. just count the lines 23:46:20 heh, I like that comment 23:46:27 there should have been two slashes, but copy/paste fail 23:46:55 ;; far out man 23:47:05 err 23:47:06 wait 23:47:16 ((lambda (lambda) (lambda lambda)) (lambda (lambda) (lambda lambda)) 23:47:18 duuuuuuuuuude. 23:47:26 yo dawg 23:47:37 it's hip just to say the yo dawg nowadays 23:47:41 or say xzibit 23:47:57 estoppel: "duuuuuuuuuude"? are you channelling mezzacotta? 23:48:15 he's not a dude, he's a dudette 23:48:15 xz 23:48:23 sorry, but if you're channeling psygnisfive, I want to channel AnMaster 23:48:25 what? 23:48:33 cocks. 23:48:37 AnMaster does, IIRC 23:48:37 but, it gives too many warnings 23:48:43 depends on how you write 23:48:45 * oerjan swats AnMaster and psygnisfive -----### 23:48:53 what? 23:48:53 what? 23:48:54 what? 23:48:54 murr 23:48:55 what? 23:48:56 do it again ;o 23:48:57 what? 23:49:00 what? 23:49:00 wow 23:49:01 I'm channeling the basic essence of AnMaster. 23:49:03 lots of scrollback 23:49:06 from a few hours 23:49:16 * oerjan swats psygnisfive on his bare bottom -----### 23:49:22 GET A ROOM 23:49:23 Is that you, ehird? 23:49:28 No. 23:49:31 kerlo: yes, it's ehird 23:49:31 I am a ninja from outer space. 23:49:32 ais523: heh, you do a great AnMaster 23:49:36 ais523 is a liar. 23:49:38 Do not trust him. 23:49:40 ehird, stop being silly 23:49:50 stop being silly? 23:49:50 ok. 23:49:51 hmm. 23:49:55 silly things I'm doing now... 23:49:57 oh, right, esolangs 23:49:58 -!- estoppel has left (?). 23:49:59 also 23:50:03 I HATE openvz 23:50:16 I mean 23:50:32 estoppel was estopped :DDDDDDDDDDDD 23:50:32 I couldn't even reboot host 23:50:40 had to remount / readonly and do reboot -f 23:50:51 because the vm thingy was locked up in kernel 23:50:53 or such 23:51:05 ais523, ^ 23:51:23 Compiling an OpenVZ-patched kernel gave me warnings like net/ipv4/route.c:2922:2: warning: #warning "Rework this shit via ro net sysctls" 23:51:29 That was not very confidence-inspiring. 23:51:39 AnMaster: wow 23:51:51 ais523, I have no idea why/what happened 23:51:57 but also I'm glad it is multi core 23:52:00 also, the remounting / readonly, did you do it via magic SysRq, and if not, why not? 23:52:04 fizzie: haha 23:52:07 root 20042 99.9 0.0 0 0 ? R 17:21 15:02 [vzmond/200] 23:52:16 kill -9 didn't work 23:52:22 AnMaster: 23:52:23 [2009-02-25 09:29:50] Also some sort of vzmond kernel thread had gotten hung up during the night. :p 23:52:24 AnMaster: oh, your computer was still responding? 23:52:27 -!- estoppel has joined. 23:52:29 You're not the only one here. 23:52:37 [2009-02-25 09:29:50] Also some sort of vzmond kernel thread had gotten hung up during the night. :p <-- ? 23:52:39 hm 23:52:41 * oerjan notes something estarting 23:52:48 fizzie, so how do I avoid this 23:52:49 AnMaster: Wasn't on this channel, I mean. 23:52:57 AnMaster: Who knows? I just started to use linux-vserver instead. 23:53:00 "Rework this shit via ro net sysctls" 23:53:06 that sounds like the start of a nerdcore rap. 23:53:11 also, the remounting / readonly, did you do it via magic SysRq, and if not, why not? <-- not because I only have ssh access 23:53:21 well, that's a good reason 23:53:26 an annoyingly good reason 23:53:31 mount -fo remount,ro / 23:53:33 I like magic SysRq too much... 23:53:34 is what I did 23:53:39 then sync 23:53:42 and reboot -f 23:53:43 sysrq is hot, I wish I had a sysrq key 23:53:43 * oerjan suddenly realizes there must exist such a thing as nerdcore rap 23:53:54 estoppel, doesn't every keyboard? 23:53:59 oerjan: of course it exists! 23:54:00 same as PrtScr 23:54:02 usually 23:54:06 estoppel: SysRq was originally invented because back then it was believed a multitasking operating system would be impossible without it 23:54:07 not apple ones. 23:54:14 but rather than use it for its intended purpose 23:54:15 ais523, what? 23:54:23 how do you mean 23:54:28 all sorts of things like alt-tab and control-alt-delete were used instead 23:54:33 nerdcore rap is amusing 23:54:35 why would it be needed? 23:54:38 AnMaster: so that applications could use all the keys on the keyboard for what they wanted 23:54:43 oh 23:54:48 you'd need a special key that the applications didn't use to switch between them 23:55:15 AFAIK, Linux is the only OS that actually uses SysRq for its intended meaning of "do something directly to the kernel without applications interfering" 23:55:17 http://www.monzy.com/intro/drama_lyrics.html 23:55:21 "Your problem, Plus Plus, is that your typing isn't strict: 23:55:21 In ML my type is real and your type is 'a dict." 23:55:25 for instance Alt-SysRq-K is the secure attention key 23:55:46 whereas windows uses control-alt-del for that 23:55:47 ais523, it is an useful debug key yes 23:55:59 in fact it multiplexes all the direct-kernel functions onto control-alt-del 23:56:08 which is kind of ridiculous for something that's that hard to type with one hand 23:56:20 although admittedly sysrq isn't much easier 23:56:26 you don't have to use it as much, though 23:56:33 only in an emergency, and on login if you're really paranoid 23:56:35 this ultrathin keyboard layout is ridiculou 23:56:40 ridiculous* 23:56:58 heh, I'm planning on replacing this keyboard with an ultrathin one 23:56:59 PgUp is located just right of space 23:57:04 that is so silly 23:57:09 * AnMaster prefers full size 23:57:10 http://images.apple.com/euro/keyboard/scripts/gallery/wireless_1_20070813.jpg 23:57:23 (did anyone else here know that if you type Alt-SysRq-K at something that looks like a login screen on Linux, it kills all processes that might intercept your typing so you know you're typing at a real login prompt rather than a program pretending to be one?) 23:57:29 (don't click if you're using a pc-101 kb right now) 23:57:32 (you might have a heart attack) 23:57:33 estoppel, it is also compact and smaller than full size 23:57:45 I don't know if that works on graphical logins 23:57:50 estoppel, this one at least has a numeric keyboard 23:57:52 I wonder what fn is for 23:57:53 but the SAK is a neat security trick 23:57:59 AnMaster: you can get the wired version with a numpad 23:58:05 but my numpad usage is a bad habit 23:58:06 estoppel, and it is weird 23:58:08 slow context switch 23:58:11 it has all the keys 23:58:17 just not where you expect them 23:58:25 estoppel: I've seen one fo those before, the return key looks a bit small 23:58:35 my return key is that size on this one 23:58:37 yes 23:58:40 it doesn't actually diminish tap-power 23:58:43 return key should be two lines 23:58:43 also, backslash is in an awful place 23:58:44 because it's hard to miss return anyway... 23:58:49 again, same here 23:58:49 like on Swedish keyboards 23:58:53 it's comfortable, actually 23:58:57 close to the home row when typing paths 23:59:11 I don't like the colour scheme either, but then I don't like the colour scheme of this keyboard 23:59:21 gdoddamnit 23:59:40 anyway, what self-respecting typist can do without ¬? 23:59:57 (the standard 101-key layout has all the printable characters in ASCII but also all the printable characters in EBCDIC) 2009-03-09: 00:00:04 ¬ is in EBCDIC but not ASCII 00:00:12 it always confused me why that was there, until I found out 00:00:31 well, why not 00:00:41 estoppel: wouldn't the fn be for changing between the main and subsidiary functions of the F-keys? 00:00:49 I don't have a fn here 00:00:51 so shrug 00:00:53 possibly though 00:00:54 hey guys debug my code for me 00:01:02 bsmntbombdood: what language is it in? 00:01:06 c 00:01:18 if you like, I'll debug by translating it into a different language, and also to a program that does something entirely different 00:01:20 -!- BeholdMyGlory has quit (Remote closed the connection). 00:01:25 rewrite it in scheme. then we'll talk! 00:01:29 in fact, here's a less buggy version: ,[.[-],] 00:01:48 to use ehird's favoured EOF statement whilst still preserving one of the other two options 00:02:08 pity it probably does something different, and is in the wrong language 00:02:10 ais523: that doesn't work for EOF = -1 00:02:18 bsmntbombdood: yes, as mentioned above 00:02:25 EOF = 0, EOF = -1, EOF = no change are the three most common options 00:03:02 and although you can't distinguish between them with 100% certainty, assuming random input and a program that reads all its input before doing any output you can distinguish between them with any non-100% certainty you like 00:03:10 estoppel: not really suited for scheme 00:03:16 yeah, I know 00:03:17 ;) 00:03:19 *:) 00:03:20 how can it not be? 00:03:28 that's like saying something isn't really suited for Haskell 00:03:28 ais523: it's comex's morse program 00:03:31 you can't really do that in Scheme :P 00:03:32 or that it is really suited for INTERCAL 00:05:09 what's that number game called again? 00:05:15 Nim 00:05:16 estoppel: mine's better! 00:05:20 there are two games with that name, though 00:05:23 3 5 7, your move 00:05:30 0 5 7 00:05:35 0 5 5 00:05:41 ais523: what game? 00:05:45 0 1 5 00:05:48 0 1 0 00:05:52 fuck 00:05:53 0 0 0 00:05:56 I win 00:06:00 comex: the game starts with three numbres 00:06:02 * Sgeo downloads Cobalt 00:06:02 comex: basically 00:06:04 you have 3 numbers 00:06:05 players take it in turns to reduce a number 00:06:08 you can reduce one by any amount each turn 00:06:11 but only one column per turn 00:06:15 as in, you can reduce any of them by any amount, but only one number at a time 00:06:17 the person who removes the last loses 00:06:20 if you say 0 0 0, you lose, and you can't go negative 00:06:40 so it's pearls before swine 00:06:47 or whatever 00:06:49 that game 00:06:51 I've never heard that name before 00:06:58 but it's relatively well known 00:07:03 * Pearls Before Swine (game), a puzzle/logic game using the Nim format 00:07:05 I'm pretty good at it, but oerjan is just as good as I am 00:07:19 estoppel: you just looked it up on Wikipedia? 00:07:23 yes 00:07:40 * Sgeo listens to kerlo's tune 00:07:44 anyway, what self-respecting typist can do without ¬? <-- where? 00:07:44 anyway I am going to intuitively progressively optimize a nim solver. or something. 00:07:48 I can't find it 00:07:51 first time: random moves 00:07:52 on my keyboards 00:07:54 then: brute force 00:07:56 then we'll see. 00:08:18 protip: brute force is pretty good 00:08:38 AnMaster: it's shift-` on this keyboard 00:08:43 err 00:08:48 I think they left it off most of the non-UK ones, though, they have no sense of style 00:08:58 I should expand my tune. 00:09:13 ais523, on this keyboard shift-' is `. That is ' as in the dead key creating é 00:09:29 what if you hold both shift keys? 00:09:33 here, ` is to the left of 1 00:09:35 hah 00:09:51 ais523, §1234567890+' 00:09:56 and then backspace 00:09:57 * ais523 makes a mental note to mark jokes when AnMaster's in here, and to a lesser extent ehird because he never gets metahumour 00:10:17 also I got the both shift key joke 00:10:24 even without the marker 00:10:45 Dear Windows: Please never block things again. Love, Sgeo 00:10:55 http://en.wikipedia.org/wiki/Keyboard_layout#Swedish.2FFinnish 00:10:58 ais523, ^ 00:11:03 Sgeo: what's it blocking? 00:11:11 IO? 00:11:12 The files from OpenCobalt 00:11:17 and how? 00:11:25 opencobalt? 00:11:28 uh uh 00:11:31 I should also find a MID editor that is capable of playing MIDs. 00:11:43 kerlo: here on Linux I use Rosegarden 00:11:52 although it needs Timidity or something like that to be able to do the actual playing 00:11:57 oh 00:12:00 not related to cobol 00:12:03 Timidity, eh? 00:12:07 wth 00:12:12 is the insert key 00:12:15 doing above backspace 00:12:20 on this compact keyboard 00:12:25 when I was back on Windows I used Magix Notation, but that's a for-pay commercial app, although a very cheap one 00:12:34 AnMaster: insert's above backspace on my laptop 00:12:43 above is a good place when to the right of backspace wouldn't fit on the laptop 00:12:45 ais523, I hate non-full size keyboard 00:12:46 s 00:12:54 they are harder to type on too 00:13:58 I need full size to be able to type properly 00:14:10 and keys that properly go down 00:14:11 full size as in full number of keys, or full size as in not scaled down? 00:14:17 ais523, both! 00:14:22 my laptop keys go down properly and are the normal size, there just aren't as many of them 00:14:42 ais523, I mean like the clicky keyboards 00:14:50 http://science.slashdot.org/article.pl?sid=09/03/08/2155216&from=rss Slashdot have started talking about Wolfram Alpha 00:14:56 let's see what snarky jokes they make of it 00:15:21 ais523: hmm 00:15:32 let's play ONE COLUMN NIM 00:15:33 10 00:15:44 1 00:15:52 bollocks. 00:15:52 0 00:15:59 ais523: what about infinite column nim 00:16:00 not a particularly useful game, really... 00:16:14 and infinite column would only be fun if only finitely many were nonzero 00:16:23 in which case it's equivalent to finite column nim 00:16:39 otherwise the game would necessarily take infinite time 00:17:15 5 5 00:17:19 Hardcore nim. :P 00:17:24 estoppel: that's a won position for you 00:17:29 and you can probably win from it 00:17:31 Oh. 00:17:32 4 5 00:17:34 4 4 00:17:41 4 1 00:17:44 0 1 00:17:57 f 00:17:59 0 0 00:17:59 the strategy with two columns is not very difficult 00:18:18 make them equal, then copy your opponent until you have a chance to set it to 0 1 00:20:50 Here's how it works. Publishing stuff makes sense. Face to face conversations and e-mail conversations make sense. Conversations in the form of articles replying to other articles make sense some of the time. Comment thread conversations are futile. Special case: Usenet conversations are futile. If they are moderated, they are futile and (almost) polite. 00:21:51 Brute force Nim: Select a column number and decrement number, optimizing the number of times you win when playing against yourself 00:21:51 what a stupid piece of crap 00:22:06 Now let's see if that finishes before the universe overs. 00:25:12 grumble, why doesn't (f '(1 2 3) '(4 5 6)) -> ((1 4) (1 5) (1 6) (2 4) (2 5) (2 6) (3 4) (3 5) (3 6)) come with Scheme? 00:25:16 or at least srfi-1 00:25:38 hm 00:25:53 ais523, what game? 00:26:04 NIM ALREADY 00:26:11 why do so many people ask that... 00:26:17 backlog, sheesh 00:26:18 NIM? 00:26:23 Nim. 00:26:38 AnMaster: do you know the rules? 00:26:47 no 00:26:51 never heard of the game 00:26:53 estoppel: clearly you need to mix Scheme with Mathematica's standard library 00:26:58 heh 00:26:59 AnMaster: it's what my Enigma puzzle was modelling 00:27:04 ah 00:27:15 you have three (or more) numbers, which are nonnegative integers 00:27:19 players take turns reducing a number 00:27:23 you can reduce a number as far as you like 00:27:26 but only one number on your turn 00:27:30 if you reduce them all to 0, you lose 00:29:03 Are there any free Mathematica-like tools? 00:29:09 yes 00:29:11 maxima, SAGE, ... 00:29:28 'Nim has been mathematically solved for any number of initial heaps and objects; that is, there is an easily-calculated way to determine which player will win and what winning moves are open to that player.' 00:29:35 oh, so even though it's solved there's absolutely no skill element at all? 00:29:37 lame lame lam 00:29:37 e 00:30:24 hey ais523 00:30:28 enigma level pack 2 00:30:28 the solution is absolutely beautiful, though 00:30:29 level 16 00:30:33 estoppel: what about it? 00:30:37 it's nim 00:30:45 * estoppel awaits "AAARGH!!" 00:30:48 about keyboards 00:31:00 * AnMaster uploads image 00:31:03 estoppel: what, "Beam04"? 00:31:06 err 00:31:08 there's Enignimm which is level 12 00:31:10 it's meant to be called Enignimm 00:31:13 but that's the other nim 00:31:13 ooops 00:31:15 and not nearly as fun 00:31:17 ah 00:31:24 ais523, ehird: http://omploader.org/vMWNraw 00:31:27 the keyboard 00:31:35 keyboards 00:31:36 even 00:31:37 whatever 00:31:40 I don't care about your keyboards 00:31:47 why should I be interested...? 00:31:48 ais523, I find the black one extremely hard to use 00:33:58 estoppel, why should I care about the keyboard you considered getting? 00:34:20 you shouldn't, I was remarking after you talked about the compact keyboard 00:34:31 your showing of your keyboards had no relevance beyond the tenuous 'keyboard' conversation tract 00:35:02 you are just saying that because it was me that talked about it 00:35:33 yes, I am in a world conspiracy to say as many bad things about you as possible, even if they're true 00:35:36 ais523: what _is_ this other nim you keep mentioning? 00:35:36 horrible 00:36:03 oerjan: like ordinary nim, but with only one number, and you can only reduce it by at most 3 at a time 00:36:12 oh 00:36:16 it is very very horrible, and any competent mathematician can solve it in their head in about 10 seconds 00:36:26 indeed 00:36:32 one of my acquaintances uses it to win bets against drunk people 00:36:50 now if you have several heaps like that, it gets a bit more interesting 00:37:05 yes, but not much 00:37:14 do you know about Sprague-Grundy analysis? 00:37:24 although as i recall, it's simpler than ordinary nim because some heap sizes are equivalent 00:37:25 it's basically a method of solving games by proving them equivalent to regular nim 00:37:27 yes 00:37:44 and the limited-nim game is equivalent to regular nim with heaps no bigger than 2 00:37:58 except that the last-player-loses vs. last-player-wins thing messes up the analysis 00:38:00 ugh, my combinations function is really ugly 00:38:26 doesn't it always 00:38:34 yes 00:38:48 Sprague-Grundy only really works properly if 0 0 0 is a win, and that's not the way nim's normally played 00:41:22 > (combinations '(a b) '(c d)) 00:41:22 '((a c) (b c) (a d) (b d)) 00:41:24 \m/ 00:41:37 what does \m/ mean, anyway? 00:41:42 metal hand 00:41:48 and what does that mean? 00:41:58 \ , , / , 00:42:07 where , = finger | last , = thumb | \ = raised finger 00:42:20 I mean, what does a metal hand indicate, apart from the literal definition? 00:42:40 "awesome"? :P 00:43:00 hmm, it's vulgar in mediterranean countries 00:43:01 apparently 00:44:05 http://pastie.org/private/zreddamkpevzsxtxjz4w 00:44:09 vomit worthy code 00:44:32 I remember writing that function in OCaml 00:44:49 and it was purely functional, and didn't look at all like that 00:46:32 you're welcome to supply a better algorithm :P 00:46:54 yay, I have to define my own func (upto 5) -> (0 1 2 3 4) 00:48:19 grrrrrr 00:48:22 I can't even use combinations 00:48:29 since my second argument depends on the value of the first 00:51:28 so irritating. 00:55:34 -!- ais523 has quit (Remote closed the connection). 01:04:07 Huh, I apparently have Timidity already. 01:04:58 now you just need Paranoia, Despair and Panic 01:06:08 I prefer Apprehension to Paranoia and Dread to Despair. I'm waiting for Neurosis to reach version 1.0 so I can replace Panic with it. 01:07:21 i would recommend Psychosis, although it is not quite stable 01:07:39 kerlo, are you talking about software? 01:07:51 Timidity and (cd)Paranoia exists... 01:07:57 AnMaster: no, just pretending. 01:08:07 Except when I mentioned Timidity. 01:08:09 I had to restart client 01:08:12 so lost scrollback 01:08:32 (bouncer still connected though 01:08:34 ) 01:09:14 kerlo, also timidity is crap 01:09:16 the software that is 01:09:20 it crashes all the time 01:09:31 I prefer using hardware midi 01:09:34 way more stable 01:20:03 ehird: Here's one "combinations", which isn't very pretty either, but at least it isn't all for-each set!y: http://pastie.org/private/ar5balcakbcw9mkmpq2a 01:20:13 oh, that's nicer 01:20:28 * estoppel considers buying one of the nice new mac pros with the nehalem processors 01:20:34 (I sleeps.) 01:26:35 Where's the abomination against using rafb.net in the topic? 01:27:16 -!- estoppel has changed nick to ehird. 01:38:33 Oh, right, the topic-lock anyway. 01:38:51 -!- ChanServ has set channel mode: -t. 02:02:20 -!- oerjan has quit ("Good night"). 02:10:48 -!- psygnisfive has quit (Remote closed the connection). 02:47:28 who wants to learn lojban with me 02:48:26 your mom. 02:50:56 unlikely. 02:51:16 * Sgeo pokes kerlo 02:51:20 -!- Dewi has quit (Read error: 101 (Network is unreachable)). 02:51:24 kerlo's a lojban person 03:00:49 -!- psygnisfive has joined. 03:08:04 instead of learning lojban, why not just stick a rusty fork in your eye? 03:12:04 all the better to see you with 03:34:23 -!- psygnisfive has quit (Remote closed the connection). 04:19:56 Ello. 04:20:32 lament: because sticking a rusty fork in my eye wouldn't teach me anything. 04:21:30 -!- Dewi has joined. 04:31:48 -!- GreaseMonkey has joined. 04:33:00 it might teach you the importance of staying current with your tetanus shots 04:33:20 kerlo: it will teach you a lot. 05:11:48 G'night all 05:17:08 -!- Sgeo has quit (Read error: 104 (Connection reset by peer)). 07:35:54 -!- asiekierk has joined. 07:35:57 BAM! 07:36:01 ... 07:36:03 oh no 07:36:06 +t is off 07:36:14 and my auto-topic-change script is still working 07:36:17 NO-ONE CHANGE THE TOPIC 07:36:58 Nice weather outside, isn't it? 07:37:26 ...What? 07:37:35 Well, quite, if not for that it's 7:35 AM 07:37:40 well, 7:37 actually 07:37:42 hah! 07:37:51 I changed the topic! 07:37:54 Well 07:37:55 I mean 07:37:59 the topic above 07:38:02 the one in green 07:38:13 You know, the one with divulgations, apples and words 07:39:03 If you change it, onoz we're doomed 07:39:11 [[or someone kicks me, cuz i don't have autorejoin]] 07:39:22 I hopefully made it so it ignores me 07:39:30 so there's no "I change topic and it changes topic" 07:39:33 except if I change the nick 07:39:34 so nah 07:41:27 morning 07:41:30 morning 07:42:20 Good morning, and welcome to #esoteric. 07:44:24 oklopol: I'm bored 07:44:32 Should i broadcast my desktop again 07:44:33 -!- lament has set topic: Divulgations are apples for your words: http://tunes.org/~nef/logs/esoteric/?C=N;O=D | NO-ONE CHANGE THE TOPIC. 07:44:40 I told you :(* 07:44:41 :( 07:44:43 well 07:44:45 it doesn't work on me 07:44:46 so 07:44:56 *whew* 07:45:17 -!- asiekierk has set topic: Divulgations are apples for your words: http://tunes.org/~nef/logs/esoteric/?C=N;O=D | NO-ONE CHANGE THE TOPIC (except me or when i'm off). 07:45:26 ohai 07:45:30 -!- asiekierk has set topic: Divulgations are apples for your words: http://tunes.org/~nef/logs/esoteric/?C=N;O=D | NO-ONE CHANGE THE TOPIC (except me or when i'm off, then you can). 07:45:32 hai 07:45:39 http://pastie.org/private/qb2tg9bvpnsv2rw2q0ljgg <<< wtf is this, why do i have broken c in my browser? 07:45:56 i don't know 07:46:44 ehird: http://pastie.org/private/qb2tg9bvpnsv2rw2q0ljgg This may or may not work, YMMV. <<< doesn't look like it will, not that i know the context 07:47:02 don't drink and code 07:47:10 if you drink too much, it becomes quite a mess 07:47:36 should've guessed it was from here 07:47:56 i haven't tried drinking and coding much yet 07:48:05 i've decided to learn that at some point tho 07:48:21 hmm 07:48:25 exam in 10 minutes 07:48:47 i know of someone who coded on LSD 07:48:49 should probably get out of the wc and head to uni 07:48:56 probably. 07:49:11 *sweepin* 07:50:42 okay, i'm taking this baby with me, so going offline. 07:50:48 for some undefined meaning of baby 07:50:49 -> 07:51:21 "how is babby formed? how girl get pragnent?" 07:51:39 "they need to way instate mother> who murder thier babbys." 07:51:53 "once, a woman in ar" 07:52:02 "i am truely sorry for your lots." 07:59:59 -!- clog has quit (ended). 08:03:11 -!- clog has joined. 08:03:11 ... 08:03:19 Why doesn't teh internetz work for m---wait, it does 08:09:20 -!- oklopol has quit (Read error: 110 (Connection timed out)). 08:20:50 -!- tombom has joined. 08:26:10 Uh... why does this firefox, when I try to middle-mouse-paste in oklopol's ehird-quote-URL, pop up a dialog saying: "ASSERT: *** Search: _installLocation: engine has no file!" and then a 11-item stack-trace. 08:26:33 Okay, same for entering any URL in the location bar. 08:27:13 I have a hunch they've sneakily been updating the browser installation on these workstations, and now it's a needs-a-restart confused. 08:48:09 -!- jix has joined. 09:04:39 -!- Slereah_ has joined. 09:11:36 -!- asiekierk has quit (Read error: 110 (Connection timed out)). 09:16:18 -!- Slereah has quit (Read error: 110 (Connection timed out)). 09:21:02 -!- jix has quit ("..."). 10:11:59 -!- asiekierk has joined. 10:12:01 Wow 10:12:12 I think I just made a Videocrypt encoder/decoder 10:12:14 but i'm not sure 10:12:21 I would need a Videocrypt decoder supporting a seed 10:15:39 But interline correlation (the VirtualDub VC decoder) works, albeit the same as with 99% of other VC decryptions 10:19:30 -!- GreaseMonkey has quit ("Client Excited"). 10:45:54 You know 10:46:09 Checkerboard+Videocrypt+Interline Decoding=Cafe Wall 12:18:48 -!- Jophish has joined. 12:31:21 -!- oklopol has joined. 12:51:56 modifying AsieCrypt to be more unique 12:52:01 by adding color encryption 12:59:58 and variable line swapping 13:25:20 Hmm 13:34:23 anyone here 14:05:44 -!- ais523 has joined. 14:13:28 -!- ais523_ has joined. 14:13:40 -!- ais523 has quit (Nick collision from services.). 14:13:44 -!- ais523_ has changed nick to ais523. 15:06:23 -!- jix has joined. 15:15:24 -!- ais523 has quit ("http://www.mibbit.com ajax IRC Client"). 15:15:59 -!- Dewi has quit (Read error: 60 (Operation timed out)). 15:24:57 -!- ehird has left (?). 15:25:01 -!- ehird has joined. 15:31:00 -!- MigoMipo has joined. 15:34:14 -!- ehird has left (?). 15:34:16 -!- ehird has joined. 15:34:24 Hi, ais523. 15:34:28 Uh, you are there right? 15:34:59 -!- BeholdMyGlory has joined. 16:12:23 maybe he's not 16:12:25 but i am 16:12:25 sadly 16:12:40 well you are almost ais 16:14:44 haha 16:14:46 yeah, right 16:16:30 -!- impomatic has joined. 16:17:21 Ehird: I've ordered one of those Arduino microcontrollers. 16:17:27 Cool :-) 16:17:37 Let us know how it goes! 16:17:47 If I don't enjoy programming it, I know who to blame :-P 16:17:53 ;_; 16:17:55 :P 16:18:47 I'm just trying to learn how to program it before it arrives 16:33:01 -!- MigoMipo has changed nick to ZigoZipo. 16:35:58 -!- ZireFly has joined. 16:36:16 * ehird zwats ZigoZipo ----ZZZZ 16:36:18 err 16:36:20 ZireFly. 16:36:31 = FireFly 16:36:49 ZigoZipo = MigoMipo wanted me to change my nick to something that begins with a Z 16:37:34 ===> how is babby formed? 16:37:34 Infant 16:37:36 In basic English usage, an infant is defined as a human child at the youngest stage of life, specifically before they can walk and generally before the age of one (see also child and adolescent). 16:37:39 The term "infant" derives from the Latin word in-fans, meaning "unable to speak." There is no exact definition for infancy. "Infant" is also a legal term with the meaning of minor; that is, any child under the age of legal adulthood. 16:37:43 Source: Wikipedia 16:37:45 — http://start.csail.mit.edu/ 16:39:16 -!- ZigoZipo has left (?). 16:40:18 -!- MigoMipo has joined. 16:42:06 -!- ZireFly has changed nick to FireFly. 16:44:37 -!- Hiato has joined. 16:56:50 -!- Hiato has quit ("Leaving."). 16:57:59 -!- Hiato has joined. 17:00:25 -!- BeholdMyGlory has quit (Remote closed the connection). 17:00:50 -!- BeholdMyGlory has joined. 17:01:50 -!- KingOfKarlsruhe has joined. 17:05:34 -!- Dewi has joined. 18:04:26 -!- ais523 has joined. 18:09:43 ehird: god that thing sucks. 18:09:46 -!- jix_ has joined. 18:18:50 hi ais523 18:19:18 hi 18:19:29 -!- BeholdMyGlory has quit (Remote closed the connection). 18:20:23 [[to compose a bunch of procedures that each take 20 arguments 18:20:23 and return 20 results. ]] 18:20:27 "so don't do that" 18:20:32 hey, why'rn't I estoppel? 18:20:35 -!- ehird has changed nick to estoppel. 18:23:35 anyway, my intensive module today nearly made my head explode 18:23:44 I have problems even trying to think of it, so I'll translate into programming terms 18:23:47 -!- jix has quit (Read error: 110 (Connection timed out)). 18:23:51 as a sort of extended metaphor 18:24:01 imagine you have a nice, clean, and well-understood interpreted programming language 18:24:07 I was going to choose Python as an example 18:24:20 but unfortunately it's whitespace-sensitive and that ruins the example, so I'll use Ruby instead 18:24:29 now, Ruby's not all that fast compared to some programming languages 18:24:41 and people have written slow Ruby programs for things that didn't need to work fast, and they've been fine 18:24:57 yep 18:24:59 now, suppose you want to write in Ruby, it's the only language you can use 18:25:03 but you need to write fast 18:25:11 so you optimise your Ruby to run quickly 18:25:11 * estoppel scratch head 18:25:19 hahah 18:25:20 and you find that your program errors every now and then 18:25:22 ... 18:25:29 and it turns out that the interp's getting confused by whitespace 18:25:32 it does more or less the right thing 18:25:39 but if it tries to process the whitespace too quickly 18:25:45 ... excuse me, what 18:25:49 it misinterprets it as Whitespace and the Whitespace gets mixed in with the regular program 18:25:52 ... i mean ... what ... 18:25:55 estoppel: it gets better, I haven't finished yet 18:26:20 now, this isn't really much of a problem for you, as you're an esoprogrammer 18:26:32 in fact, you find you can make your code even better by exploiting the Whitespace code to do useful things 18:26:46 and in fact for very fast programs you want to write huge parts of it entirely in Whitespace 18:26:56 .. 18:27:05 ok, what was the ACTUAL thing about 18:27:09 (you consider this normal, interps are bound to malfunction a bit if you run them too fast due to not being perfect) 18:27:24 but you find that with the whitespace running even faster, if you have exactly the right sequence 18:27:31 omg, i made a video encoder 18:27:34 not supporting video 18:27:34 you run commands that redefine syntax, or logic, or whatever 18:27:37 but bitmap 18:27:37 s 18:27:46 as in, encoder, er encrypter 18:27:51 so you're changing the syntax of Whitespace dynamically, and making ANDs into ORs, or whatever 18:28:01 the head-explode moment was when I realised this also affected the Ruby it was embedded around 18:28:19 making ands into ors, and other things that made no sense in Ruby 18:28:37 (and as a result, your programs now only run at one exact speed, if you run them slightly faster or slower they fail) 18:29:32 ok, what was the ACTUAL thing about 18:29:46 estoppel: microwave-frequency electronics 18:29:54 think of ordinary electronics as the ruby 18:30:04 and wires which shouldn't be doing anything but being wires as the whitespaec 18:30:06 *whitespace 18:30:18 My mother, attempting to use an old one button Mac mouse: "But, which button do I press?" 18:30:27 the left one, obviously 18:42:41 -!- impomatic has quit ("mov.i #1,1"). 18:44:47 Oh god, now I'm going to wait forever for my Asiecrypt Encoder to finish encoding a 2-and-a-half-minute-YouTube-movie 18:44:47 well, nearly 3-minute, even 18:45:02 what does it encode it into? 18:45:19 jmp #0, <-3 18:45:36 well, i mean encrypt 18:45:39 3521 frames 18:45:41 into AsieCrypt 18:46:09 or VideoCrypt+color swap every other line+replace random parts of 2 lines 120*25 (or 240*25) times 18:46:23 actually, the color swap is the longest 18:46:25 and it takes a seed 18:46:38 why are you doing this, anyway? 18:46:51 it sounds rather like security by obscurity 18:46:54 is it reversible? 18:46:57 Yes 18:46:59 tested 18:47:01 XD 18:47:02 reversible 18:47:03 VideoCrypt is 18:47:07 Random replacing is... 18:47:14 and a NOT bitwise command is too 18:47:16 oh asiekierk, you are the living proof of poe's law. 18:47:21 poe's law? 18:47:22 poe's law? 18:47:49 >_< 18:47:51 google's law. 18:47:58 http://rationalwiki.com/wiki/Poe's_Law 18:48:09 estoppel: that's a link, can you explain in English? 18:48:09 s/fundamentalism/ridiculous programming tasks/ 18:48:19 ais523: no, I do not exist to support your allergy to the web 18:48:20 it did about 1000 frames 18:48:38 estoppel: then don't expect me to understand what you're saying, if you're unwilling to explain 18:48:40 you'll be pleased to know that the target of the link is english embedded in HTML 18:48:40 and they DO look like a jumbled mess 18:48:52 also, you're the one asking the question, it's your wish to find out, not mine 18:49:25 Well, the Asiecrypt Encoder is also (accidentally) a Videocrypt encoder 18:49:34 and a Videocrypt decoder too (if you know the seed) 18:50:07 estoppel: I'm only asking because I don't understand what you said... 18:50:17 and isn't the usual purpose of communication to, you know, convey information? 18:50:17 I gave you a link to information on it, http://rationalwiki.com/wiki/Poe's_Law 18:50:26 it's not my problem that you refuse to follow links to get information 18:51:10 ~1650 frames 18:51:11 but that's the Web! 18:51:16 ... so? 18:51:21 the web is a web of information. 18:51:51 not nowadays, nowadays it's mostly a web of porn, spam, and adverts 18:52:07 if I linked you to one of them, I assure you I would note as such. 18:52:47 well, most websites have adverts nowadays 18:52:59 so...? use adblock? 18:53:02 lots of people talk about how things like adblock are a bad idea because they deprive the sites of advertising revenue 18:53:04 Is there an use for the low-speed version of Asiecrypt (all enabled) except premium content NBTV? 18:53:13 a business model based on advertising is shit. 18:53:19 and it strikes me that not visiting them is an even better way to deprive them of advertising revenue 18:53:46 2250 frames 18:53:51 1500 more! 18:53:54 then you miss out on their content 18:54:00 loss for you, no great shakes to anyone else 18:54:23 estoppel: why doesn't everyone act as I do? The Web would become so much better more or less overnight 18:54:35 Oh, and impomatic has Asiecrypt 18:54:36 Because some of us don't mind advertisements. 18:54:40 ((a buggy version, but still)) 18:54:47 And a vast majority of internet users see porn as a plus., 18:54:50 neither do I, actually, I just mentally ignore them if adblock doesn't catch them 18:55:08 and porn is fine if you're looking for it, but tends not to be particularly informative 18:55:09 So all that is left is spam. Everything has spam. Apart from Gopher. 18:55:16 And that's why I personally linked it. 18:55:22 So that you know I was linking to relevant information. 18:55:23 2610 frames 18:55:30 only 900 more, then joining and Youtubing 18:56:47 2950... 18:58:08 3260... 18:58:19 1234... 18:58:30 2428... 18:58:34 9001 18:58:37 2789... 18:58:40 ...Deewiant, you know that 1234 was one of my Seeds 18:58:46 2001aspaceoddyssey 18:58:46 3000... 18:58:46 for testing 18:58:52 how rare 18:58:54 42... (hint hint) 18:59:07 3500... 18:59:18 it did it 18:59:56 it did did it 19:00:04 I must find out what the hell of an algorithm do I use cuz I don't remember :( 19:01:05 Uh-oh 19:01:13 seems I did something irreversible and now i'm screwed 19:01:39 asiekierk: don't you have the original? 19:01:45 yes i do 19:01:49 but i must find out what is irreversible 19:02:21 actually 19:02:21 all seems to be 19:02:22 O_o 19:02:29 fail 19:02:47 So it must be a problem with my batch procedure-a-thon 19:03:20 Or i may know why 19:03:26 i didn't set the seed AFAIK 19:04:57 something is terribly wrong 19:05:33 asiekierk: I still fail to see the advantage of what you're doing in the first place 19:05:43 i do too 19:05:48 but i'm just doing it for kicks 19:07:33 Well 19:07:39 I can batch encode AND batch decode 19:07:43 I can encode AND decode 19:07:49 but i can't batch encode AND decode 19:07:54 so something's terribly wrong with my algorithms 19:08:58 yay, it's the common engineering problem: A, B, and C each work, A and B work together, B and C work together, but the combined A+B+C system fails for no apparent reason 19:09:26 well, not really 19:09:39 cuz it's A, B, C and D. A and B work, C and D work, but any other combinations fail 19:09:39 A+B, C+D, and A+D in this case 19:09:50 any other combinations in this case :P 19:09:54 not just A+D 19:09:57 oh 19:10:07 Well the only other one is B+C 19:10:14 I assumed you could encode files individually, then batch-decode the lot, from what you suggested 19:10:20 Well 19:10:23 I can batch-encode too 19:10:24 I must have misparsed what you were talking about 19:10:25 so why bother 19:10:37 I also assumed you meant you could batch-encode then individually decode 19:10:42 The only thing is that I seem to have the same algorithms not cooperating with each other 19:10:47 but I think I CAN see the problem 19:10:57 basically 19:11:00 when encoding normally 19:11:05 after lineswap, it resets the seed 19:11:09 when batch-encoding, it does NOT 19:11:10 -!- jix_ has quit ("..."). 19:11:34 And i'm going to add a feature while I'm at it 19:13:28 or not 19:13:33 it's too painful and not really paying out 19:21:52 http://donsbot.wordpress.com/2009/03/09/evolving-faster-haskell-programs/ 19:22:08 AnMaster would like that, for C 19:25:08 -!- asiekierk has changed nick to asie[away]. 19:26:41 estoppel: is that going to be a new permanent nick for you? 19:27:05 Possibly. Not sure :P 19:27:27 it's a good real word for a nick 19:28:52 Yes, it sounds like it means something deep. 19:29:16 Unless you know what it means :-P 19:29:25 well, it's still a relatively interesting thing if you know what it means 19:29:43 basically, if you convince someone you don't plan to sue them, or act as if you won't 19:29:53 then if you do sue them you're unlikely to get very much in damages 19:30:15 common law is so funky :-P 19:30:29 B Nomic is saner than common law 19:37:15 hmm... it seems that e4 vs. d4 can inspire a Holy War on chess channels 19:37:22 c4! 19:37:47 Or f4 19:39:08 ais523: strange that it would 19:39:15 it should be pretty easy to resolve 19:39:19 how? 19:39:20 lament: You must be a d4 player 19:39:22 it's like emacs vs. vi 19:39:26 ais523: by setting up a match 19:39:34 lament: what, one match? 19:39:37 two matches 19:39:38 d4 players vs e4 players, one game? 19:39:41 although a worldwide e4 vs. d4 match might be good 19:39:49 organised via one of the big chess websites 19:40:45 Was it Kasparov that that one collaborative Internet match was played against? 19:40:50 ais523: but what exactly are they arguing about, then 19:40:58 which is better, obviously 19:41:03 better how? 19:41:12 someone in there's claiming that white playing d4 is effectively giving black an advantage, it's that bad 19:41:16 More likely to lead to victory? 19:41:20 and I'm trying to come to the defence of d4 19:41:27 and yes, that's a typical definition of better in chess 19:42:13 I.e. of all the possible games that can be played from that point on, more lead to a white win or draw than to a black win 19:44:17 can't you just look at a database of existing professional games? 19:45:38 they do that in Go 19:55:59 -!- KingOfKarlsruhe has quit (Remote closed the connection). 19:59:28 > (define (halt-and-catch-fire) 19:59:28 (/ 1 0) 19:59:30 (halt-and-catch-fire)) 19:59:38 The preferred error-signalling procedure for all purposes. 19:59:40 why is that in an infinite loop? 19:59:58 ais523: in case the interpreter neglects to signal the division by zero and continues execution. 20:00:00 Because most machines don't catch fire from just dividing by zero, in my experience 20:00:29 it's the program catching fire, not the system :D 20:00:40 Oh, that's boring 20:00:56 I've been on systems which could be set on fire in software 20:01:03 ais523: awesome, which? 20:01:06 in theory, at least, in practice there normally wasn't enough current flowing 20:01:09 estoppel: microcontrollers 20:01:19 Desktop machines can be set on fire in software 20:01:25 actually, (/ 1 0) doesn't have to error in Scheme. 20:01:29 It can be +inf.0 20:01:49 (scheme-report-environment -1) is specified to fail, though. 20:01:50 Oh, I assumed you intended it to not error 20:02:03 it doesn't error in most langs, nowadays, at least if interpreted as floating point division 20:02:10 > (define (wrong msg) 20:02:10 (display "** ERROR ** ") 20:02:11 (display msg) 20:02:13 oh, except C, (/ 1 0) errors pretty badly in C 20:02:13 (newline) 20:02:15 (scheme-report-environment -1)) 20:02:16 due to not being valid syntax 20:02:17 ; no values returned 20:02:19 > (wrong "Division by elephant") 20:02:21 ** ERROR ** Division by elephant 20:02:23 Error: no such Scheme report environment 20:02:25 (&error) 20:02:27 Er, flood. SOrry. 20:02:46 ais523: Are there languages in which it would error out when interpreted as a floating point division? 20:03:16 C programs are certainly allowed to send signals on FP division by zero, just generally don't 20:03:18 > (wrong "no such Scheme report environment") 20:03:18 ** ERROR ** no such Scheme report environment 20:03:20 Error: no such Scheme report environment 20:04:19 does Scheme have exceptions? 20:04:24 or do you simulate them by hand using call/cc? 20:04:30 No. (R6RS isn't scheme, so I'll disregard it.) 20:04:44 You can simulate them; many implementations provide an isomorphic mechanism. 20:04:50 They're not very Scheme, though. 20:04:56 I know, simulating exceptions is pretty easy when you have c 20:05:06 http://srfi.schemers.org/srfi-34/srfi-34.html 20:05:11 "Exception Handling for Programs". 20:05:45 Conditions, more elegant than Exceptions since, iirc, the handlers aren't call/cc'ed, just called: 20:05:48 http://srfi.schemers.org/srfi-35/srfi-35.html 20:05:50 http://srfi.schemers.org/srfi-36/srfi-36.html 20:06:10 Scheme48 uses SRFI-36 conditions to signal parse errors 20:06:18 and the like 20:06:31 although tbh a jmp_buf stack is enough for handling exceptions, you don't need anything nearly as advanced as call/cc 20:06:37 why the slash, anyway? 20:06:50 It stands for "with". 20:07:03 not "per"? not "over"? 20:07:16 It's short for call-with-current-continuation, because it calls the provided procedure with the current continuation. 20:07:21 BTW, call/cc is a non-standard abbreviation, only call-with-current-continuation is specified by R5RS. 20:07:28 You can do (define call/cc call-with-current-continuation), ofc. 20:07:52 yes 20:08:33 ais523: As a sidenote, yes, the opposite of call-with-current-continuation exists ("Run this procedure with this other procedure as its continuation") 20:08:50 (call-with-values f k) runs (f) with k as the continuation. 20:08:54 So, e.g.: 20:09:03 (call-with-values (lambda () (values 1 2 3)) +) ;=> 6 20:09:48 It was intended just to handle the N-return-values (instead of just 1) system added in R5RS, as you can see, but it works perfectly fine as call-with-this-continuation. 20:12:16 -!- oerjan has joined. 20:14:25 ehird, i miss ya old nick 20:17:14 -!- asie[away] has changed nick to asiekierk. 20:17:29 -!- asiekierk has set topic: Divulgations are apples for your words, and here are the logs: http://tunes.org/~nef/logs/esoteric/?C=N;O=D | NO-ONE CHANGE THE TOPIC (except me or when i'm off, then you can). 20:18:29 -!- estoppel has set topic: Divulgations are apples for your words: http://tunes.org/~nef/logs/esoteric/?C=N;O=D. 20:18:42 i warned you 20:19:00 -!- asiekierk has set topic: Divulgations are apples for your words: http://tunes.org/~nef/logs/esoteric/?C=N;O=D | DON'T CHANGE THE TOPIC WHILE ASIEKIERKA IS ON. 20:19:01 -!- oerjan has set topic: Divulgations are apples for your words: http://tunes.org/~nef/logs/esoteric/?C=N;O=D | Darn estoppel beat me. 20:19:08 Yes, I don't give a shit about your irritating I-own-the-topic-and-it-is-my-personal-playground-of-hilarity stuff that you have carried out for months and months. 20:19:10 -!- estoppel has set topic: Divulgations are apples for your words: http://tunes.org/~nef/logs/esoteric/?C=N;O=D. 20:19:20 months? 20:19:34 oerjan: He's done it ever since he first entered here, as far as I can tell. 20:19:36 -!- ais523 has set topic: Divulgations are apples for your words: http://tunes.org/~nef/logs/esoteric/?C=N;O=D | asiekierka owns the topic, not asiekeierk. 20:19:40 I TOLD YOU 20:19:42 -!- estoppel has set topic: Divulgations are apples for your words: http://tunes.org/~nef/logs/esoteric/?C=N;O=D. 20:19:44 Go away. 20:19:44 -!- Slereah_ has set topic: Topic now property of Slereah | http://tunes.org/~nef/logs/esoteric/?C=N;O=D. 20:19:47 ok 20:19:48 -!- asiekierk has left (?). 20:19:54 ... Well, that worked. 20:19:55 -!- asiekierk has joined. 20:19:56 is that why +t was on recently? 20:20:00 oerjan: Yes 20:20:00 yes 20:20:03 I will be cruel but fair 20:20:03 someone put +t on now 20:20:05 no 20:20:06 fizzie set it because asiekierk was being irritating. 20:20:07 -!- estoppel has set topic: Divulgations are apples for your words: http://tunes.org/~nef/logs/esoteric/?C=N;O=D. 20:20:09 i can change it myself 20:20:11 just wait 20:20:13 fizzie: Can we have some +t? 20:20:25 we don't need to 20:20:29 except if you change the topic 20:20:50 Au contraire, you are proof we need it. 20:20:53 what's the problem with the topic? 20:21:01 If someone else changes it 20:21:05 lament: asiekierk thinks he owns it and keeps spamming it with pointless rubbish whenever we change it. 20:21:13 well, I just have a script 20:21:14 Recommended solution: temporary +t. It worked yesterday. 20:21:17 Well 20:21:18 asiekierk: Turn your script off 20:21:21 ... 20:21:25 I would need to restart mIRC 20:21:26 and I'm too lazy 20:21:31 Restart mIRC. 20:21:48 -!- ais523 has set topic: Divulgations are apples for your words: http://tunes.org/~nef/logs/esoteric/?C=N;O=D | http://127.0.0.1/../../etc/passwd. 20:21:55 ok 20:21:57 restarting mirc 20:22:01 change the topic in the meanwhile 20:22:03 -!- asiekierk has quit. 20:22:08 ais523: omg it has your passwords in 20:22:09 hahahaha idiot 20:22:13 i 0wnz ur boxen 20:22:28 -!- asiekierk has joined. 20:22:32 Ohai 20:22:36 estoppel: really? it's a 404 for me 20:22:47 Does "turning your script off" imply "now I'll do it manually", asiekierk? 20:22:50 I have a terrible feeling it does. 20:22:50 Now try to change the topic so I can know whether or not the script problem is fixed 20:22:53 asiekierk: i still don't get it, what happens when we change the topic? 20:22:55 I see. 20:22:57 what does the script do? 20:22:58 lament: he puts it back because he owns it 20:23:02 i don't 20:23:04 -!- ais523 has set topic: Divulgations are apples for your words: http://tunes.org/~nef/logs/esoteric/?C=N;O=D | http://127.0.0.1:8080/../../etc/passwd. 20:23:04 Aww. You always need to change the topic... :( 20:23:04 because it's -t 20:23:08 lol 20:23:14 that's my script v2 20:23:31 Oh wait 20:23:34 gotta fix the spelling 20:23:38 * estoppel drums fingers. 20:23:54 ok, done 20:23:58 will restart later 20:24:16 You mean you have a new topic changing script? 20:24:19 no 20:24:25 I mean I have a stupid reply on topic change script 20:24:29 that works on everyone but me 20:24:35 as in 20:24:35 Aww. You always need to change the topic... :( 20:24:41 but in slight variation form 20:24:45 Wonderful, let's see if I can flood your client off the network. 20:24:52 hmm... I just had a brilliant idea 20:24:52 Aww. You never let me change the topic and always do it yourself... :( 20:24:54 -!- estoppel has set topic: Divulgations are apples for your words: http://tunes.org/~nef/logs/esoteric/?C=N;O=D. 20:24:54 Aww. You never let me change the topic and always do it yourself... :( 20:25:12 Aww. You never let me change the topic and always do it yourself... :( 20:25:13 Wow... I don't need to restart mIRC! 20:25:16 Hmm. 20:25:18 Rather too slow. 20:25:20 Oh shit. 20:25:22 -!- estoppel has left (?). 20:25:25 it doesn't work with Google, though, let me find a less well-organised website 20:25:28 It is the severe internet here 20:25:45 -!- estoppel has joined. 20:26:23 -!- asiekierk has set topic: Divulgations are apples for your words: http://tunes.org/~nef/logs/esoteric/?C=N;O=D | That's right, i DO look like an idiot!. 20:26:32 yay, it works apart from the date 20:26:36 Wait, wait, *look* like? 20:26:37 Aww. You never let me change the topic and always do it yourself... :( 20:26:42 asiekierk, asiekierk. I'm afraid it's rather more severe than that. 20:26:51 ais523: what is it? 20:26:56 -!- asiekierk has set topic: Divulgations are apples for your words: http://tunes.org/~nef/logs/esoteric/?C=N;O=D | That's right, i AM an idiot!. 20:26:57 asiekierk: you realize that with a script like that you'd get banned from a bunch of channels. 20:27:03 it only works on #esoteric 20:27:04 :P 20:27:13 and if you want me to remove it 20:27:14 say so 20:27:17 As in 20:27:20 He already did. 20:27:20 estoppel: http://pastebin.ca/1356726 20:27:26 You removed a script and replaced it with an equally irritating one. 20:27:28 replace the time with the current time, and send it to port 80 on esolangs.org 20:27:33 I've written an HTTP Kimian quine 20:27:40 Now try, I think I disabled the script 20:27:41 ais523: hahaha 20:28:10 I wanted to do it with Google, but their error page is too complex 20:28:18 can you try now 20:28:24 i think i disabled the script-o 20:28:32 but I thought "I know, I'll write an HTTP Kimian quine" 20:28:44 -!- asiekierk has changed nick to asie[away]. 20:29:19 someone other than estoppel: care about my quine 20:29:21 -!- estoppel has set topic: Divulgations are apples for your words: http://tunes.org/~nef/logs/esoteric/?C=N;O=D | If there is an asiekierka in the building, please evacuate all brains. Thanks!. 20:29:48 ais523: ** Memory exhausted trying to allocate 6 billion objects 20:29:51 Dumping core 20:29:53 $ 20:30:05 heh 20:30:22 a bit more than 6 billion nowadays, isn't it? 20:30:26 Probably. 20:30:26 besides, that was anycast not broadcast 20:30:35 Prologiverse doesn't know that. 20:30:43 "The human population on Earth is greater than 6.7 billion, as of February, 2009" 20:30:45 It's also greater than 3. 20:30:48 How useful. 20:31:00 "As of 2008, humans are listed as a species of least concern for extinction by the International Union for Conservation of Nature." 20:31:20 you could always try asking wolfram alpha 20:31:32 although the input box is currently just an image of an input box, so it won't be very useful 20:31:41 ais523: ask it for me, since you clearly have access :P 20:31:48 just imagine the answer, duh 20:31:49 also, an image of a text box? do they have any idea how unportable that is/ 20:32:01 considering the box is completely styled... 20:32:09 exactly, even more unportable 20:32:14 not really 20:32:17 how will something like that work in w3m 20:32:24 how will images work in w3m 20:32:31 images work just fine in w3m 20:32:37 oh, right, framebuffer thingy. 20:32:40 although admittedly they aren't embedded in the page 20:32:59 not framebuffer, it spawns an external image viewer program if you follow a link to one or choose the option to view one 20:33:59 also, ais523, do you have any ideas on how to utilize 12gb of ram 20:34:20 allocating 6 billion objects? 20:34:32 actually seeing what Vista is like in a reasonable length of time? 20:34:44 memory-caching the whole of Wikipedia apart from the images? 20:35:00 haha 20:35:04 wow, I really could do that last one 20:35:05 splitting it into 12000 VMs each of which has a megabyte of memory, each running DOS? 20:35:07 that's just <3 20:35:19 i mean, it wouldn't even slow anything down much 20:35:32 no, obviously a memory cache would speed it up 20:35:44 i mean 20:35:44 t 20:35:46 anything else on the system 20:35:50 Ahh, gotta love functions where the type signature takes up more lines than the definition 20:36:00 -!- kar8nga has joined. 20:36:16 Deewiant: I think they should create a Haskell-like like language which deduces the definition from the type signature, rather than the other way round 20:36:33 ais523: What if it's ambiguous? 20:36:44 oh, it usually will be 20:36:53 find some solution 20:36:59 it exists 20:37:00 Pick one at random? 20:37:03 at the moment I'm wondering about "do the simplest thing that could possibly work", plus monads 20:37:07 /msg lambdabot @djinn signature 20:37:10 Djinn :) does that 20:37:22 -!- asie[away] has set topic: Divulgations are apples for your words: http://tunes.org/~nef/logs/esoteric/?C=N;O=D | If there is an asiekierka in the building, please evacuate all intelligence. Thanks!. 20:37:24 Djinn is somewhat crap though 20:37:31 It can't do a lot of things though, yeah 20:37:40 Can't handle recursive data types 20:37:47 Which is its most vexing limitation 20:37:57 No lists, for instance. 20:38:00 The idea to overload "bitwise exclusive or" to mean "power" is just stupid. I wonder where they get these ideas. It's as if someone decided to overload "bitwise left shift" to mean "print to file". 20:38:36 ais523: Surely that's not from the IAQ? 20:38:45 sorry, FQA 20:38:56 it's easy to get those muddled 20:38:57 Thought so :-) 20:39:05 besides, the IAQ is for C 20:39:20 There's a comp.lang.c++ IAQ 20:39:25 the FQA is trying to be simultaneously useful and sarcastic, whereas the IAQ is just a joke 20:41:15 Could you stop with the topic stuff? And what does this script thing do? 20:42:18 wait, what 20:42:21 there's no script 20:42:46 the script is a lie 20:45:17 "Maximum operating altitude: 10,000 feet " 20:45:19 — Mac Pro specs. 20:45:35 I love datasheets 20:46:05 "Storage temperature: -40° to 116° F (-40° to 47° C) " 20:46:13 Aww but I was gonna cryogenically preserve my mac... 20:46:26 To be with me when I wake up in 30,000AD. 20:47:18 -!- calamari has joined. 20:47:29 I've put a GPU in a freezer a couple of times, to cool it down 20:47:58 Yow, the mac pro is 18.7 kg. 20:48:02 That's like almost as heavy as me. 20:48:22 you weigh a lot more than that, I hope 20:48:28 That was a joke. 20:48:38 But I'm ridiculously light, something like 30kg. 20:49:54 -!- atrapado has joined. 20:52:53 Maybe I could make an in-memory markov chain of wikipedia with those 12gb. 20:53:02 Because fungot isn't quite fast enough! 20:53:03 estoppel: psykotic every pixel is sacred. just me, or i managed to get nothing? how about making a language? 20:53:10 estoppel: what, the whole wikipedia? 20:53:17 not just talk? 20:53:18 Sure. 20:53:19 go for it 20:53:25 besides, how did you end up with 12GB anyway 20:53:38 "Having 12GB" is a boxed future value. 20:53:50 I'm justifying my dirty capitalist tendencies, see. 20:53:55 get yourself 56GB, then install qmail 20:54:00 haha 20:54:04 without setting resource limits 20:54:17 the mobo only supports up to 32GB I think 20:55:47 Also, having your backup drive the same size as your main drive is a bit silly, isn't it. 20:56:06 why, should it be bigger or smaller? 20:56:29 Smaller, so you can use your drive and have more than one backup at a time. 20:56:37 Of course, nobody actually uses up all their drive. 20:57:17 I've got close on a couple of computers which were basically full anyway 20:57:28 on the one that ran Windows 3.1, I was saving things on floppies to save hard disk space 20:57:37 Right, but we're talking 1TB here. 20:57:49 I have a ton of crap I don't need on here and only 120GB used 20:58:03 well, find your terabyte's worth of floppies, and use your hard drive to back them up 20:58:10 no no no 20:58:13 terabyte tapes 20:58:13 duh 20:58:47 -!- olsner has joined. 20:58:53 ais523: also, I don't think having ~1000 floppies is _that_ odd... 20:59:02 well, I only had 40 or so 20:59:13 besides, a TB of floppies is more like 500000 20:59:23 err, right 20:59:24 1000 would be a gb 20:59:26 stupid me 20:59:33 floppies store 2 MB unformatted 20:59:40 1.44 MB with the typical DOS/Windows format 20:59:53 although Linux floppy disk formats store up to about 1.7 MB, nobody uses them 21:00:00 because nobody uses floppy disks nowadays 21:03:19 -!- Hiato has quit (Connection timed out). 21:05:32 -!- FireFly has quit ("Later"). 21:05:38 -!- asie[away] has quit (Read error: 110 (Connection timed out)). 21:06:11 Except for those random Linux-on-a-floppy distros... 21:06:19 well, yes 21:06:29 but they're hardly formatted with the Linux-specific formats 21:06:35 as that would be a chicken-and-egg problem 21:06:50 making them bootable would probably be tricky, if at all possible 21:06:55 dd and rawrite can write such disk images just fine. 21:07:14 And the BIOS can load the boot sector quite fine. 21:07:20 s/fine/well/ 21:07:55 * pikhq made a Linux-on-a-floppy distro out of boredom a bit before starting on Brainfuck 21:07:56 the problem is that the boot sector isn't separated from the others the way it usually is 21:09:00 Granted, the boot sector in question is the first 512 bytes of a pre-2.6 Linux kernel... Still, the BIOS can handle the 1.7MB floppies without any trouble. 21:09:26 Boot sectors can just be 'jmp somewherewithmoreroom', no? 21:09:47 No. 21:09:54 Oh. 21:10:10 When the boot sector is run, the only things in memory are the boot sector itself and the BIOS. 21:10:21 And the BIOS is only in memory because it's ROM. 21:10:41 Well, okay, then, "readrestoffloppydisk, jmp somewherewithmoreroom" 21:11:14 Generally "read some bytes from the floppy disk, jmp rightafterthebootsector". 21:11:53 pikhq: but rightafterthebootsector is in the "wrong" place on a Linux-formatted disk 21:12:41 ais523: The Linux boot sector, IIRC, starts running the floppy disk manually rather quickly. 21:12:43 anyway, I invented a sorting algorithm a couple of nights ago that I haven't come across before 21:12:47 but may have been invented independently 21:12:59 it involves insertion sort, but into a deterministic skiplist rather than an array 21:13:17 I think it's always n log n, but slower than mergesort in terms of number of comparisons despite being the same order 21:13:35 Something like, right after loading the very first track... 21:14:17 (the first track is still in the same place; Linux gets more space out of those floppies by packing the tracks in closer) 21:14:28 "deterministic skiplist"? 21:14:33 the second track is in a different place 21:14:48 oerjan: skiplists normally use some form of randomisation to do their skippy pointers 21:14:59 it's possible to do it deterministically with the same computational order 21:15:06 although slower whilst maintaining the same order 21:15:47 well i don't know skiplists, but insertion sort into a balanced tree is n log n afair 21:16:18 balanced trees and skiplists are kind-of similar 21:16:22 but how can you not know skiplists? 21:16:45 Easily; I only encountered them a few months ago, I think, but I've known of trees for years 21:17:26 [[ There are no guarantees in any Scheme standard for broken Scheme code 21:17:26 to "break properly" in any sense of the word. (This is one reason why 21:17:27 I, as a working programmer, do not use Scheme anymore.) ]] 21:17:29 ^ what 21:17:31 i don't actually have _that_ much CS education 21:17:38 you must break CORRECTLY! 21:17:48 estoppel: that sort of programmer goes on to invent langs like OCaml 21:17:59 just one semester with data structures, 19 years ago or so 21:18:18 (two semesters with various) 21:18:24 when you program for a living, things like breaking correctly are pretty important 21:18:53 oerjan: you don't need education 21:19:03 although admittedly skiplists are clever enough to be unlikely to be invented by accident 21:19:08 lament: but that doesn't even make sense 21:19:24 well, take microsoft silverlight 21:19:27 oerjan: You have a math education, and informal knowledge of computers. That alone is enough to do quite well in CS... 21:19:29 and a standard trying to regulate handling things that don't meet its specification of a document/program is preposterous 21:19:39 s/computers/computer programming/ 21:19:40 sometimes when you feed it incorrect stuff, it simply shows a blank page 21:19:53 no thrown exception, no nothing, no indication of where the error may be. 21:19:53 it's all implementation issues 21:20:01 a standard mandating this would be idiotic 21:20:15 ais523: I also don't know skiplists. 21:20:25 Granted, I'm a freshman CS student, so... 21:20:40 estoppel: it reminds me of people getting annoyed that non-ANSI-compliant implementations of C-like languages were breaking the C standard by defining STDC 21:20:56 hah 21:21:07 there is something very wrong with that logic 21:21:26 ais523: haha 21:22:50 What's wrong with that logic? 21:23:05 FAQ: You can't, and you usually shouldn't. 21:23:16 Deewiant: it's wrong on at least two levels 21:23:31 as for explaining exactly what's wrong, I'm tired and don't feel like going through the arguments 21:23:36 maybe someone else will 21:27:42 brb 21:28:11 biarb 21:30:47 Yay for documentation 21:30:49 1 files changed, 441 insertions(+), 208 deletions(-) 21:33:04 -!- FireyFly has joined. 21:33:34 rhubarb 21:33:54 * ais523 catches oerjan in a butterfly net -----\XXXXX/ 21:34:15 I have decided that the salient feature of the butterfly net is that it is unexpected 21:34:28 and here i was being nice and not swatting FireyFly ;´( 21:34:40 :D 21:34:42 don't worry, it's a loving careful butterfly net 21:34:44 Hm 21:34:59 so, I'm going to try to use acovea to optimize the morse code thing 21:35:10 http://www.coyotegulch.com/products/acovea/ 21:35:18 not that it will probably have much effect 21:35:21 what's acovea? 21:35:59 ais523: i just read http://www.reddit.com/r/programming/comments/838pv/evolving_faster_haskell_programs/ which uses it 21:36:53 oerjan: guess where I found it 21:37:05 comex: i already did :D 21:41:20 * comex is trying to paste between one vim and another vim 21:41:34 yes, I should open the files in the same vim but what if I don't want to 21:41:38 konsole doesn't let me copy it :x 21:41:49 :set paste? 21:42:04 and control-shift-c / control-shift-v are usual GUI copy/paste for console programs 21:47:17 yeah, it didn't work properly 21:47:19 now it does 21:47:40 -!- KingOfKarlsruhe has joined. 21:47:40 set paste's a good trick to know in vim, it stops it trying to be too clever when pasting stuff in 21:48:13 ais523: is it possible for me to have vim share stuff between two instances? 21:48:22 or otherwise work with multiple files, say, across screens 21:48:36 vim generally isn't very good with multiple-process stuff 21:48:52 in fact, that's what persuaded its main maintainer to switch to using Emacs 21:49:08 http://vim.wikia.com/wiki/Copy_and_paste_between_Vim_instances <-- ack that's ugly 21:49:09 for the specific case you mention, though, I wouldn't be surprised if there was a way 21:50:05 There's that clientserver thing, which can then be scripted. But it only works with a $DISPLAY. 21:50:22 (Since it communicates via X messages.) 21:51:18 comex: the * register seems to be mentioned too 21:51:27 as shared between vim instances, and presumably everything else 21:51:29 does that work? 21:51:51 -!- BeholdMyGlory has joined. 21:52:07 ow 21:52:13 whenever I type "~ it beeps 21:52:17 and is sad 21:52:19 ok, that's interesting 21:52:24 ais523: anyway, I invented a sorting algorithm a couple of nights ago that I haven't come across before <<< i don't know if this has a name, but, as oerjan hinted, the idea is well-known, basically you can do that with any data structure that is a function from indices to values, and can supply you with predecessors and inserting-in-the-middle both in O(log n) time. 21:52:25 why "~ in particular? what's that meant to do? 21:52:31 did that come through? 21:52:41 oklopol: yep, i was trying to work out what the advantages and disadvantages were 21:52:57 the advantage, I think, is that you get good computational orders for almost all common operations 21:53:12 insert, insert-sorted, delete, append, nth are all O(log n) 21:53:14 i met skiplists in high school, and considered them trivial, but didn't hear their name; have heard about them many times since, and never bothered to check how they work, but now that you said something about it being weird oerjan didn't know it 21:53:17 i had to check them out 21:53:18 iterate is O(n) 21:53:29 but, as already mentioned, i did know them 21:53:50 my vim doesn't have x11, wtf 21:53:53 I like balanced skiplists, even if they're slower 21:54:00 comex: well, obviously, you need gvim 21:54:08 although IMO, gvim's an oxymoron waiting to happen 21:54:13 as it misses the main point behind vim 21:54:34 data structures tend to be a bit too easy to visualize to be all that stimulating 21:54:42 oklopol: solved Nim yet, by the way? 21:54:51 -!- MigoMipo has left (?). 21:54:56 ais523: I don't want gvim, I want a terminal 21:55:02 if you can manage it for yourself, and I see no reason why you shouldn't, and you spot the pattern, prepared to be stunned 21:55:06 comex: an X11 terminal? 21:55:15 I want konsole 21:55:17 :p 21:55:22 * ais523 tries to visualise a vim specifically designed for xterm/konsole/whatever 21:55:22 but I want vim with +X11 21:55:25 which debian apparently doesn't have 21:55:34 does anyone else? 21:55:38 probably 21:55:39 -!- kar8nga has quit (Read error: 145 (Connection timed out)). 21:55:53 % apt-get source vim 21:56:09 sudo apt-get build-dep vim 21:56:20 that step will save you a lot of trouble 21:56:25 oh, and build-essential if you don't have it already 21:56:29 vim-gtk is very +X11. 21:56:39 (The Debian package with that name, that is.) 21:59:13 Might of course be more than you need; it does enable +perl, +python, +ruby and +tcl while it's at it. 21:59:14 ais523: sadly, no. i did fix the error, but i didn't really have time to look into it today, i dedicated this day for doing absolutely nothing, because i'm a bit concerned about my mental health because of all this exam flood :P 21:59:31 not that i'm having any issues really, i just feel like i should 21:59:35 that's a great thing to dedicate a day for 21:59:39 yes 21:59:41 oh, no need 21:59:42 comex: gvim? 21:59:49 yeah, what you said 21:59:51 It's a separate package on occasion 21:59:58 now that I have gvim installed, 22:00:03 I can just run vim and get console but +X!! 22:00:04 *X11 22:00:10 Amazing 22:00:17 heh 22:01:01 Deewiant: It's called vim-gtk on Debian, but there's a "gvim" virtual-package for it, implemented by the various GUIfied versions of vim; vim-lesstif, vim-gtk, vim-gnome. 22:01:24 see 22:01:27 Debian go to a lot of trouble to make the package manager Do The Right Thing 22:01:33 I don't want to use gvim because 22:01:34 even though the result normally ends up rather confusing 22:01:44 I'll get used to the gui 22:01:52 which is (1) slower and (2) not going to work over ssh 22:02:08 makes sense 22:02:15 although I use non-GUI vim more often than GUI vim 22:02:21 working over ssh is vi's killer feature, really 22:02:23 I prefer the GUI myself 22:02:31 Not sure why, though 22:02:50 although a vi feature not a vim feature, most computers have neither vim nor emacs installed, but most ssh-intoable computers have vi 22:02:51 I have all the menus and scrollbars and whatnot disabled, apart from the tab bar 22:02:59 Yes, but all GUI-enabled Vim binaries can run in a terminal. If you install vim-gtk (for example) you just get gvim and vim symlinks into the vim.gtk binary. 22:03:31 ais523: the computers I generally want to ssh into all have vim 22:03:48 does normish have vim? 22:03:50 fizzie: yes, I noticed that above :u 22:04:11 ais523: well, it would be cool if I could get vim to open files remotely like kate 22:04:22 Yes, and I mentioned vim-gtk before Deewiant, yet you're all "what you said". 22:04:43 fizzie: I wasn't paying attention but rather busy compiling vim 22:04:46 before I realized I didn't need to 22:04:48 :p 22:05:02 ais523: in many circumstances (slow connection!!) editing remotely is a bad idea 22:05:07 hmm.. apparently normish does have vim 22:05:20 emacs has TRAMP to open files remotely, I'm not sure if there's a vi equivalent 22:05:33 hey look 22:05:35 http://ubuntu-tutorials.com/2007/08/31/vim-tip-of-the-week-august-31-2007-remote-editing/ 22:05:36 you can do it 22:05:38 that's ridiculous 22:05:39 :p 22:05:40 although the real reason not to edit remotely is because estoppel tends to reboot the system you're editing on at the time 22:08:12 I wish there was a cross-app way to do that :/ 22:08:23 there's FUSE, kioslaves, and vim has its own thing 22:08:31 where the fuck is a standard when you need it 22:08:35 emacs has its own thing too 22:08:48 KDE has a standard way of its own, that's standard among KDE apps 22:08:51 that's how Kate manages it 22:09:00 Yes, that's kioslaves 22:10:37 % vim scp://xemocne@lyokoscan.net/send_slr 22:10:39 yay, it works 22:10:41 :u 22:10:43 There's also gnomevfs for that. 22:10:50 All Gnome apps do it with it. 22:11:09 is there like a book or something i could read so i'd understand even half of what you guys talk about? 22:11:25 oklopol: possibly 22:11:36 playing around with a Linux-based or UNIX-based system should teach it to you pretty quickly 22:11:38 would be cool if I could just use standard unix commands remotely 22:11:49 comex: !ssh 22:11:53 good point 22:11:54 well ! newline ssh 22:11:58 or is it without the newline 22:12:02 I can never remember 22:12:04 but that's the vim way 22:12:08 but ftp and such 22:12:12 why reimplement everything your shell can already do? 22:12:15 FUSE is a nice hack but has some problems such as 22:12:20 I didn't mean from vim 22:12:25 ais523: well ubuntu taught me nothing at least 22:12:27 And Vim's version is actually rather based on external commands; it handles dav with cadaver, ftp with ftp, http with "curl -o"/"wget -q -O"/"fetch -o", scp with "scp -q" and so on. 22:12:33 such as no programs expecting a very slow filesystem 22:12:40 oklopol: well, it's designed to not have to use the console 22:12:48 i used the console all the time 22:12:52 fizzie: great, that's just what I want. what I don't want is having to copy temporary files manually 22:12:55 so how did you not come across things like vi 22:13:01 ais523: well i did 22:13:07 I've used nano up to now :u 22:13:12 that's the 30% i do understand :P 22:13:12 so why don't you understand half of what we talk about? 22:13:19 what in particular? 22:13:24 21:12 ais523: why reimplement everything your shell can already do? 22:13:25 probably a one-sentence explanation would be enough 22:13:28 that's vim's business 22:13:34 well dunno, i wasn't being very exact. 22:13:36 estoppel: what, reimplementing things? 22:13:39 yep. 22:13:43 vim isn't very vi 22:13:45 I thought its whole point was to defer to pre-existing programs, or is that vi? 22:13:46 http://www.wana.at/vimshell/ 22:13:48 whoa 22:13:53 Point. 22:14:14 I like ed, am I the only one? 22:14:17 vimshell is a patch to Vim sources, though. 22:14:21 I mean, I actually use ed sometimes. 22:14:22 estoppel: presumably vi syntax highlighting would work by piping the program through an external syntax highlighter, then before save piping it through something to strip out the ansi colour code? 22:14:24 And like it. 22:14:32 estoppel: I use sed for editing on occasion 22:14:34 though I don't need that unless I want to edit and shell at the same time 22:14:37 ...yo dawg 22:14:44 I've done pretty much "shell in a vim window" with vim and the perl-scripting add-on, to run MATLAB/Octave in a vim window so I don't need MATLAB's horrible GUI. 22:14:45 ais523: The correct way is to realise that buffer display does not have to be what you edit 22:14:56 and have two layers: the screen display, and the buffer display, and a function mapping between the two 22:15:00 by the way, can anyone here think of a way to combine yo dawg with I herd you liek mudkips? 22:15:04 they seem to work perfectly together 22:15:05 Thus, the screen display is piped through a highliter, but the buffer display is the file 22:15:15 Yo dawg, I herd you liek mudkips so... 22:15:23 I'm just not sure how to finish the sentence 22:15:24 ais523: "Yo dawg, I herd u liek mudkips, so I put a mudkip in your mudkip so you can breed while you... update your pokedex." 22:15:32 Excuse the fail. 22:15:32 ais523: I hereby submit "complete that sentence" as an Enigma puzzle 22:15:37 comex: <3 22:15:42 comex: you need to submit an answer too 22:15:42 ais523: hm i have a vague impression i've seen something like that on reddit 22:15:47 in fact, the correct answer 22:15:59 oerjan: Or on xkcd? http://xkcd.com/550/ 22:16:14 that xkcd sucks 22:16:17 it's not funny 22:16:27 s/that //;s/$/ most of the time/ 22:16:39 no something closer to what ais523 said 22:16:45 http://www.flickr.com/photos/brownpau/2459879511/ 22:17:07 Ah, here we go 22:17:09 http://www.reddit.com/r/funny/comments/7qyc6/a_brilliantly_subtle_yo_dawg/c075d8z 22:17:20 i hate the one in the title of that submission 22:17:25 the one in the comments had no text 22:17:27 it was deliciously zen 22:18:20 http://i42.tinypic.com/29w1h1e.jpg 22:19:10 I didn't realise that yo dawg and I accidentally the whole internet were current at the same time 22:19:24 Deewiant: ok but i hadn't seen that one 22:19:42 ais523: it's i accidentally the noun 22:19:43 not the internet 22:19:49 isn't the accidentally thing from like the 60's 22:20:04 http://www.steike.com/code/useless/zip-file-quine/' 22:20:32 estoppel: ah, pity 22:20:38 the whole internet seems to fit it pretty well 22:20:39 the internet no longer a noun! film at 11 22:22:14 okay i didn't like the new xkcd, but probably you've just brainwashed me 22:22:27 * oerjan still thinks steike.com is funny as "steike" means something like "darn" in his dialect 22:23:39 darn.com isn't funny 22:23:46 * oerjan swiftly removes oklopol's brain and drops it in the laundry 22:24:01 nor hitto.com 22:24:21 * ais523 switfly retrieves oklopol's brain and puts it in a museum 22:24:34 Deewiant: hitto is the finnish equivalent? 22:25:18 oerjan: s/the/a/ 22:25:23 or something like it, anyway 22:25:54 I think 'hemmetti' would be closer but there's no hemmetti.com 22:26:52 oh hell.no 22:28:46 * oerjan swats ais523's switfly -----### 22:29:39 http://www.youtube.com/watch?v=8mq_96Entks 22:31:40 has there already been a language where the current instruction set depends on the previous instructions executed (or possibly listed in the source code) up to that point? 22:32:06 I made one of thos 22:32:06 e 22:32:13 it's not very interesting 22:32:15 just a trivial cypher 22:32:18 calamari: malbolge...? 22:32:37 isn't the instruction set always the same? 22:32:37 * oerjan picks up an e from the floor 22:33:53 (for malbolge) 22:34:03 oklopol: apply now and you can be an oklopole! 22:34:15 calamari: the instruction executed is cyphered 22:34:36 right but theset of available instuctions remains constant 22:34:40 oh wait you have no brain at the moment 22:34:43 *the set 22:35:41 braaaaains 22:35:48 * oerjan paints the e pink and drops it off at the museum beside oklopol's brain 22:36:00 the museum of what exactly? 22:36:14 now you can try to TAKE OVER THE WORLD 22:36:16 oklopol: brilliant brains that need preserving but were somehow dropped in the laundry 22:36:18 as far as I know, it's just a matter of figuring out the encoding, but you could always execute each instruction at each set.. right? 22:37:06 but if there were multiple sets of instructions, perhaps not all complete, that were chosen deterministically based somehow on the past.. it might be kinda interesting 22:37:09 ais523: is that a big museum? 22:37:26 probably not 22:37:42 if done properly the code would be easy to read but hard to write 22:38:05 -!- oklopol has quit (Read error: 104 (Connection reset by peer)). 22:38:07 -!- oklopol has joined. 22:39:08 * oerjan sneaks the pink e and the brain out of the museum and return them to oklopol 22:39:25 *returns 22:40:20 -!- oklopol has changed nick to oklopole. 22:40:36 * oerjan hangs up a lampshade for better light /====\ 22:41:10 so 22:41:19 a few days ago 22:41:20 i realized 22:41:24 calamari: and perhaps also depending on data 22:41:31 now that I think on it more, it'd have to be based on execution, because otherwise you could write macros 22:41:35 that your space key is broken 22:41:38 i want to study gene biology, physics and psychology 22:41:48 am i mad? 22:41:49 oklopole + psychology? 22:41:54 yes! :D 22:41:57 you aren't mad, but you'll drive other people mad that way 22:42:02 or sane, if you so prefer, but mad's more fun 22:42:09 oklopole: yes 22:43:27 oklopology 22:44:02 i probably wouldn't enjoy actually studying psychology at uni, it seems somewhat trivial, but i would love to know what exactly psychology knows 22:44:07 it's oklopological! 22:44:15 psychology is um... mostly bullshit. 22:44:18 the other two are just actually interesting 22:44:39 estoppel: yeah, i doubt it is, although i agree. 22:44:44 lol wat 22:44:52 that made no sense? 22:44:59 oklopole: me too 22:45:05 oklopole: if you find a good textbook, tell me! 22:45:08 lament: you too what? 22:45:15 i too would like to know psychology 22:45:18 ah. 22:45:40 unfortunately i think the way to do that is to subscribe to their journals and read their shitty papers, i certainly don't want to do that 22:45:53 but a nice up-to-date textbook would be nice 22:46:06 a friend of mine started studying psychology now that he's doing his phd and doesn't have much cs courses, got me a bit interested too 22:47:05 http://qoid.us/screenshots/morse.png <-- why does gvim have such a god-awful default coor scheme 22:47:07 yeah raeding papers probably wouldn't be worth it, especially as i'm pretty sure psychology at least gets a lot of bullshit, even though i doubt the actual subject is characterized by it. 22:47:13 *reading 22:47:29 comex: that's for a black background 22:47:38 you have to :set background=white or something 22:47:39 estoppel: it's gvim 22:47:40 it should know 22:47:41 to get it looking ok 22:47:44 it doesn't 22:48:27 maybe it's just my eyes 22:48:39 no, that is awful 22:48:41 set the bg right 22:48:44 more like *whole subject 22:48:46 even bg=light had some too-bright colors imo 22:48:53 which I changed 22:49:04 ^ other reason not to use remote vim 22:58:46 At some point I tried to use gvim because it can do more colours; then I just downloaded inkpot.vim to utilize the rxvt-unicode 88-color mode (and the screen/xterm 256-color mode) properly. 22:59:21 I guess many people might not like those colours either, but I'm odd like that; they look something like http://zem.fi/~fis/termcolors.png 23:11:01 -!- tombom has quit (No route to host). 23:14:32 -!- jix has joined. 23:25:24 -!- ais523 has changed nick to ais523__. 23:25:37 -!- ais523__ has changed nick to ais523. 23:25:54 * oerjan watches the ais523 time anomaly 23:30:15 What does it mean to have a gigabit ethernet controller with a 10/100 megabit physical layer device? 23:30:45 black magic. 23:31:18 there's sorcery afoot 23:31:22 I mean, doesn't that mean that it can still only transfer at most 100 Mbit/s through the port? 23:31:37 In which case what's the point of having a gigabit controller? 23:31:43 I say bottle, you say neck! Bottle! 23:31:52 >.> 23:32:13 wow, it's getting close to time for me to gtfo 23:33:19 that sounds like bad timing 23:33:40 since you just started talking 23:36:16 -!- kerlobot has joined. 23:36:28 SL 23:36:40 GP 23:36:45 $eval (SL) 23:36:58 If at first you don't succeed... 23:37:00 %eval (SL) 23:37:01 (SL) 23:38:07 %eval (+ 2 2) 23:38:07 (+ 2 2) 23:38:15 ok, so it isn't running Lisp 23:38:18 %eval Hello, world! 23:38:19 Syntax error 23:38:20 oerjan: I meant with regards to work 23:38:34 I recommend Church numerals, or whatever you call those things these days. 23:38:59 House of Worship numerals? 23:39:16 %show 23:39:31 Thereby showing that I don't remember how this thing works. 23:39:40 -!- atrapado has quit ("Abandonando"). 23:40:03 %what 23:40:04 input 23:40:07 Great. 23:40:11 %eval (lambda (lambda lambda) (lambda lambda)) (lambda lambda lambda) 23:40:12 Syntax error 23:40:24 You need more parentheses. 23:40:32 oh 23:40:39 %eval ((lambda (lambda lambda) (lambda lambda)) (lambda lambda lambda)) 23:40:39 ((lambda (lambda lambda) (lambda lambda)) (lambda lambda lambda)) 23:40:53 %eval ((lambda (lambda) (lambda lambda)) (lambda (lambda) (lambda lambda))) 23:40:53 ((lambda (lambda) (lambda lambda)) (lambda (lambda) (lambda lambda))) 23:40:57 Wow. 23:41:07 %eval ((lambda (x) (x x)) (lambda (x) (x x))) 23:41:08 ((lambda (x) (x x)) (lambda (x) (x x))) 23:41:15 Oh, it's not called lambda. 23:41:17 kerlobot doesn't seem to evaluate anything 23:41:21 just spout it back 23:41:21 It's called l. 23:41:29 it's a lazy evalbot 23:41:36 %eval ((l (x) (x x)) (l (y) (y y))) 23:41:37 ((IT IS LOOP SORRY) (l (y) (y y))) 23:41:41 %eval ((l (l) (l l)) (l (l) (l l))) 23:41:41 ((IT IS LOOP SORRY) (l (l) (l l))) 23:42:00 ugh, that reminds me of Mathematica error messages 23:42:13 Does it? 23:42:13 they just get embedded into the expression instead of a result and it keeps on evaluating 23:42:16 Ah. 23:42:43 %temp (l (2) (l (f x) (f (f x)))) 23:42:52 %reset 23:42:57 %temp ((l (2) (l (f x) (f (f x)))) input) 23:43:00 %eval 2 23:43:01 [l (f x) (f (f x))] 23:43:15 %eval (2 2 2) 23:43:15 [l (f x) (f (f x))] 23:43:24 * kerlo blinks 23:43:34 %reset 23:43:42 (2 2) should be 4 in Church numerals 23:43:47 %eval (2 2) 23:43:48 (2 2) 23:44:18 %reset 23:44:20 %temp ((l (2) input) (l (f x) (f (f x)))) 23:44:24 %eval 2 23:44:24 [l (f x) (f (f x))] 23:44:30 %eval (2 2 2) 23:44:31 ([l (f x) (f (f x))] ((l (f x) (f (f x))) (l ((l (f x) (f (f x))) x) ((l (f x) (f (f x))) ((l (f x) (f (f x))) x))))) 23:44:35 Wow. 23:44:42 What is that? 23:44:56 Want me to curry it? 23:44:59 %reset 23:45:18 %temp ((l (2) input) (l (f) (l (x) (f (f x))))) 23:45:24 %eval 2 23:45:24 [l (f) (l (x) (f (f x)))] 23:45:32 %eval ((2 f) x) 23:45:33 (f (f x)) 23:45:36 %eval (((2 2) f) x) 23:45:37 ((l (((l (f) (l (f) (f (f f)))) f)) (((l (f) (l (f) (f (f f)))) f) (((l (f) (l (f) (f (f f)))) f) ((l (f) (l (f) (f (f f)))) f)))) x) 23:45:41 Aaa. 23:45:53 %eval (((2 2) F) X) 23:45:54 ((X (X X)) ((((l (f) (l (X) (f (f X)))) X) X) (((l (f) (l (X) (f (f X)))) X) X))) 23:46:00 Impressive, no? 23:46:14 Still, what the heck is it doing? 23:46:41 -!- kerlobot has quit (Remote closed the connection). 23:48:32 * kerlo attempts to run it on Normish, but just gets a bunch of "that file doesn't exist" 23:49:09 -bash: ./sillylisp: No such file or directory 23:49:23 The thing is, though, ./sillylisp exists. 23:49:29 That means it's wrong. 23:49:31 The executable, that is. 23:49:34 Run it under 32-bit emulation. 23:49:46 How do I do that? 23:49:55 Uh. 23:49:59 I assume it's chmodded executable 23:50:05 The utility is called... 23:50:12 what does "file ./sillylisp" do? 23:50:15 kerlo: linux32. 23:50:19 ais523: no, it is 64 bit v s 32 bit 23:50:24 I know because I've had the 100% same problem on a slicehost 23:50:31 sillylisp: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.6.8, dynamically linked (uses shared libs), not stripped 23:50:34 see? 23:50:36 install linux32 23:50:37 why are you trying to port binaries between linux systems anyway? 23:50:38 So yeah, that's the problem, I guess. 23:50:40 then "linux32 ./sillylisp" 23:50:47 ais523: because I can't compile it on the target machine. 23:50:50 ah, ok 23:50:56 what about crosscompiling? 23:51:04 I don't know how to do that. 23:51:31 crosscompilation is great fun, although not everything's set up to support it 23:51:34 Huh. "linux32: ./sillylisp: No such file or directory" 23:51:36 that reminds me, I must finish gcc-bf some time 23:54:42 (a CPlusPlusProgrammer has all the fields of a Programmer, plus a couple of new, orthogonal members, such as headAgainstTheWallBangingFrequency). 23:59:14 Here's a proposal for the next C++ standard: let's define two keywords, __0 and __1. With a token sequence composed of these two keywords, we can express anything (actually, one keyword is enough, but that's just too verbose). 2009-03-10: 00:01:08 -!- FireyFly has changed nick to FireFly. 00:01:30 "There, this should be enough to confuse the stupid spam bots, so I'll only get mail from the intelligent spam bots." <- very ais523 00:01:45 was that me who wrote that, or someone else/ 00:01:54 I admit I could have writen that, but I don't remember writing that, it's my attitude 00:01:55 http://yosefk.com/mail.html 00:04:56 -!- jix has quit ("..."). 00:07:31 -!- kerlobot has joined. 00:07:43 * kerlo flicks kerlobot's nose 00:07:47 -!- kerlobot has quit (Remote closed the connection). 00:10:34 -!- BeholdMyGlory has quit (Remote closed the connection). 00:11:05 -!- KingOfKarlsruhe has quit (Remote closed the connection). 00:11:27 once in a blue moon = 1.16699016 × 10-8 hertz 00:11:35 lol wut 00:12:09 well, I suppose you can calculate it... 00:12:20 given that there's an official definition of blue moon 00:12:25 also, everyone loves nanohertz 00:12:28 or ought to 00:13:23 hertz is a measure of time ... ? 00:13:27 I wonder if there's a product called Nanohertz, or a trademark on it. 00:13:38 estoppel: frequenct 00:13:40 *frequency 00:13:49 yeah, so shouldn't 00:13:51 once in a blue moon 00:13:53 so that measures the rate at which blue moons happen 00:13:53 be a measure of time 00:13:56 ahh 00:14:10 1 / (once in a blue moon) would be a measure of time 00:14:14 which would be the interval between blue moons 00:14:21 blue moons happen once per year iirc 00:14:40 oh, apparently not 00:14:45 * ais523 restarts firefox 00:14:48 just upgraded it 00:14:55 it acts weirdly between upgrades and restarts 00:15:06 but I was actually getting assertion failures, which is unusual 00:15:47 1 / once in a blue moon = 2.71542689 years 00:19:04 so pretty close to e years 00:19:19 yep 00:21:35 -!- FireFly has quit ("Later"). 00:22:09 "So, make sure you catch all possible exceptions in your C-callable C++ functions. By the way, C++ exceptions can be of any built-in or user-defined type, and you can't catch an arbitrary exception and check what kind of exception it is at run time, and operator new can throw exceptions. Enjoy." 00:30:31 -!- Jophish has quit (Read error: 104 (Connection reset by peer)). 00:41:17 -!- calamari has quit (Read error: 104 (Connection reset by peer)). 00:44:01 -!- calamari has joined. 00:49:39 -!- ais523 has quit (Read error: 104 (Connection reset by peer)). 00:55:37 -!- estoppel has changed nick to ehird. 01:46:28 -!- calamari has quit (Read error: 60 (Operation timed out)). 01:55:48 -!- oerjan has quit ("Good night"). 01:57:58 -!- calamari has joined. 02:06:25 Esoteric quotation marks: The beginning of a quote is marked by quotation marks followed by a space. The end of a quote is marked by a space followed by the same number of quotation marks. It is not legal to use more than that many quotation marks in a row within the quote. 02:06:51 So, if you want to quote the string {"""""""""}, you have to say """""""""" """"""""" """""""""", not " """"""""" ". 02:08:17 Heavily nested quotes are easy: """"""" """""" """"" """" """ "" " foo " "" """ """" """"" """""" """"""" 02:28:15 -!- Dewio has joined. 02:28:16 -!- Leonidas has quit (Remote closed the connection). 02:28:20 -!- Leonidas has joined. 02:28:32 so git looks pretty cool 02:28:58 -!- calamari has quit (Read error: 60 (Operation timed out)). 02:29:12 -!- calamari has joined. 02:35:56 -!- olsner has quit ("Leaving"). 02:41:35 -!- Dewi has quit (Read error: 110 (Connection timed out)). 02:45:40 -!- Slereah has joined. 02:59:15 -!- Slereah_ has quit (Read error: 110 (Connection timed out)). 04:23:51 -!- GreaseMonkey has joined. 04:45:03 -!- calamari has quit (Read error: 104 (Connection reset by peer)). 04:47:14 -!- calamari has joined. 05:20:11 -!- Sgeo has joined. 05:24:01 -!- psygnisfive has joined. 05:24:49 -!- question has joined. 05:25:12 hello 05:25:15 i have a question 05:25:30 oh shit hahaha this one is for esoteric programming 05:25:31 hehe 05:25:37 wrong room 05:25:37 hehe 05:25:40 -!- question has quit (Client Quit). 05:26:38 wtf was that 05:32:48 -!- calamari has quit (Read error: 104 (Connection reset by peer)). 05:40:00 CALAMARI DAMACY 05:44:43 -!- Azstal has quit (Read error: 104 (Connection reset by peer)). 05:44:53 -!- Azstal has joined. 07:27:08 -!- asiekierk has joined. 07:42:41 -!- asiekierk has quit. 07:42:44 -!- asiekierk has joined. 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:06:10 -!- Sgeo has quit (Read error: 104 (Connection reset by peer)). 09:23:47 -!- Slereah has quit (Read error: 60 (Operation timed out)). 09:23:49 -!- Slereah_ has joined. 09:57:12 -!- GreaseMonkey has quit ("Client Excited"). 10:00:03 -!- DH__ has joined. 10:28:49 O_O 10:28:56 I'm still working on AsieCrypt for no reason 10:29:12 Now I made it make colors way-too-scrambled 10:51:52 -!- tombom has joined. 11:04:52 -!- jix has joined. 11:14:11 -!- jix has quit ("Computer has gone to sleep"). 11:33:19 -!- DH__ has left (?). 11:33:30 -!- DH__ has joined. 11:37:47 -!- jix has joined. 12:26:19 -!- jix has quit ("..."). 12:53:11 -!- jix has joined. 13:07:23 -!- jix has quit ("..."). 13:35:03 -!- neldoreth has joined. 13:37:28 hi there, i got a little question to befunge: i want just to print some letters right after each other, but when i have a second line in code i end up in an endless loop http://pastebin.com/m8052f85 - can someone give me a hint what i am missing 13:53:21 -!- jix has joined. 14:07:42 Uh... the code flow wraps around, so at the end of line 1 it wraps to start of line 1. You need to use explicit v, ^, <, > instructions to direct your instruction pointer to the second line if you want it to go there. 14:08:21 Though for character-printing the canonical way is to just do something like 055+"!dlrow ,elloH">:#,_@ 14:11:02 thanks for responding fizzie - i think i understand it now 14:14:24 so i run with ^<>v through the code, right? 14:15:37 Yes. Well, I mean, you stick one of those whenever you want to turn somewhere. 14:16:28 funny :D 14:17:21 Or want to make sure you are going somewhere. The more rectangular way of writing the print loop -- >:#,_ -- is: 14:17:27 ...>:v 14:17:27 ^,_@ 14:18:38 If you want to see an inspirational piece of Befunge, our local irc-bot, fungot, is written in it: http://zem.fi/~fis/fungot.b98.txt 14:18:39 fizzie: also, use firefox 3 or a webkit nightly.... 14:18:58 fungot: It's a *plain text* page! Why would you need Firefox 3 for it? 14:18:58 fizzie: hmm. 2 alt keys wouldnt work in an interpreter 14:19:23 :O nice - so you really can write something useful with it :> 14:19:32 For some values of useful, sure. 14:19:57 -!- Slereah has joined. 14:20:18 -!- Slereah_ has quit (Read error: 60 (Operation timed out)). 14:20:21 yeah i mean you are quite limited with this language like opening a file or something like that 14:20:51 Well, yes, that's why fungot is written in Funge-98, which adds a whole lot of extensions. 14:20:51 fizzie: two ways 2 fix, but there is no new-line in morse code ( the way databases do it), but... 14:21:10 Like the FILE fingerprint for file operations, or SOCK for internetsy stuff. 14:21:44 Incidentally, I didn't know databases do it in morse code. 14:21:57 ah i will check this out - cause i have to write a "creative" program with an esoteric language like befunge, brainfuck or whitespace and i have no idea what to write 14:22:21 "Have to"? Is it some sort of an assignment or what? 14:23:27 yes 14:25:00 Where do they have esolang-related assignments? 14:29:13 -!- neldoreth has quit (Remote closed the connection). 14:29:17 -!- neldoreth has joined. 14:30:53 dude 14:30:56 esolang assignments? 14:30:56 hot 14:32:06 yeah, just "whatever we like", but it should creative and i have no idea what i should write :D 14:33:51 where is this? 14:34:18 a university in austria 14:34:25 awesome 14:35:00 definitely go for funge-98 if you have to use befunge to do something 14:36:18 yeah but i am not sure if we are allowed to use it, cause they said that we can use befunge, brainfuck, intercal or whitespace - but with funge98 you can do much more 14:36:38 They seem to be classicists, with that sort of language selection. 14:36:48 neldoreth: befunge-98 classes as befunge 14:37:22 It's not the fairness: I just have to hide tiny esolang-related things in otherwise-sensible programs; never has there been yet a "do something with befunge" course assignment. 14:37:42 :( 14:37:45 The world is cruel. 14:38:55 ehird: ah ok, i ve just read that its an generalization of befunge - but that sounds good, so i guess i will check it out 14:39:05 neldoreth: kind of 14:39:20 funge-98 defines unefunge-98, befunge-98 and trifunge-98 14:39:22 (1, 2 and 3D) 14:39:31 befunge98 is just an extension of befunge93 14:39:40 and "befunge" refers to both 14:39:53 "unefunge" and "trifunge" always refer to -98, since there's no other versions 14:40:07 ... well ... maybe -97 :-D 14:43:51 ah ok 14:44:28 ah i find this language funny :D 14:44:58 be glad you picked befunge 14:45:07 since you can use -98, and it's also pretty easy :P 14:45:17 brainfuck and whitespace are about equal 14:45:29 yeah i think they are too hard to read 14:45:31 but intercal inputs as "ONE FIVE TWO" for 152 and outputs as roman numerals :-D 14:45:37 please! :p 14:45:45 oh, and it has no conventional arithmetic whatsoever. you have to implement it yourself. 14:45:55 also, the opposite of GOTO. (COME FROM). 14:46:00 ya :D 14:46:10 But it looks more enterprisey than some silly befunge. 14:46:19 true 14:50:30 is there a specific interpreter you can recommand me ? 14:50:43 CCBI or cfunge are the only compliant befunge-98 interpreters. 14:50:55 And the first was released in 2007. Turns out it's hard to get it right. 14:51:18 neldoreth: Use cfunge if you want ridiculous amounts of speed for whatever reason, unless you're on windows, because AnMaster refuses to support windows. 14:51:26 If you are on windows, try CCBI. 14:51:32 i am on linux 14:51:38 OK. 14:51:46 CCBI has a linux binary, though. That might be easier. 14:51:47 http://users.tkk.fi/~mniemenm/files/befunge/interpreters/ccbi/ccbi_linux.zip 14:52:07 If you want to compile CCBI: http://iki.fi/matti.niemenmaa/befunge/ccbi.html 14:52:09 Or cfunge: http://kuonet.org/~anmaster/cfunge/ 14:52:11 hi 14:52:31 thanks 14:52:51 ehird: you're forgetting RC/Funge-98 14:52:57 oh, yes 14:53:03 ah i only need one :D 14:53:04 hmm 14:53:20 neldoreth: if you type like this,,,,,,ehehehehhe.....try rc/funge98....http://rcfunge98.com/ 14:53:21 ehird, one thing: ccbi has a debugger, but it is slower. cfunge is way faster and only has a basic trace 14:53:32 AnMaster: ah, that's a good reason to use ccbi as a newbie then 14:53:41 "way faster" 14:53:41 (neldoreth: but don't try and compile it, it's hell to compile the D source) 14:53:49 ehird: LDC should compile it 14:53:58 ehird, well it all depends on what you are using it for. fungot running a slow underload interpreter? cfunge or in the future jitfunge 14:53:58 AnMaster: when first i was a 14:53:58 it should actually be pretty easy due to that, these days 14:54:01 no matter what you say, getting a D environment is a pain 14:54:02 :) 14:54:03 debugging a script: ccbi 14:54:07 a program* 14:54:09 AnMaster: neldoreth. 14:54:12 he's writing a befunge program. for school. 14:54:19 and he hasn't used the language before. 14:54:23 though one thing: ccbi's debugger is quite a pain 14:54:28 ehird: hg clone , run cmake and you have a D environment 14:54:29 if you are used to something nice like gdb 14:54:32 so speed is probably not an issue, and a debugger is useful 14:54:34 fungot: When first you were a... what? 14:54:34 fizzie: some semantics guy who is doing the compilation." hahahah puns r fun. 14:54:36 also, CCBI has more crazy fingerprints for that 14:54:44 Deewiant: tango? 14:54:46 ehird: yep 14:54:55 hmm. 14:54:57 I was surprised at how easily I got it to work, actually :-) 14:54:59 I might just try that. 14:55:02 And it should build CCBI now 14:55:06 Shoot me a link? 14:55:07 They fixed the bugs after I tried it :-) 14:55:13 ehird, did you know there is a "break on instruction" in ccbi? However it only works if you enter the number representing the ASCII code point, not the letter... 14:55:14 ehird: http://www.dsource.org/projects/ldc/ 14:55:21 The bugs that broke CCBI, that is 14:55:26 oh only one break point too 14:55:28 I haven't tried it for a while, though, it could be it still doesn't work 14:55:28 so? 14:55:31 it's better than no debugger 14:55:43 and since speed is an issue, ccbi is probably the better choice for a newbie 14:55:45 *isn't 14:55:56 true. cfunge *does* include a .gdbinit file though 14:55:57 Speed isn't an issue anyway unless you run the game of life or optimize for Mycology 14:56:04 Deewiant, or run fungot 14:56:04 AnMaster: i can let you do it? 14:56:05 Well, maybe for fungot, I haven't tried that 14:56:06 Deewiant: spineless tagless g-machine, a virtual machine for an oisc processor, but using the sxml fnord you see it, if it can't! it doesn't complain about fnord 14:56:18 AnMaster: have you tried it on CCBI? 14:56:26 Deewiant, iirc fizzie did. 14:56:35 Was it unbearably slow? 14:56:50 Or just 0.1 instead of 0.05 seconds response time? :-P 14:56:50 no, I remember it 14:56:52 I don't remember anymore. I've done it on RC/Funge though; how do those two speed-compare? 14:56:57 it was indistinguishably fast 14:57:00 since IRC lag is the main factor. 14:57:05 (apart from on e.g. complex ^ul) 14:57:28 For fungot speed mostly matters if you care about the speed of the brainfuck/underload interps. 14:57:28 fizzie: last time i checked 14:57:29 Deewiant, he said he could let the bf interpreter run about 4 times as many cycles before "out of time" under cfunge iirc.. 14:57:29 * LLVM Test Suite (67M) 14:57:30 If I had to guess I'd say RC/Funge-98 is somewhere between CCBI and cfunge 14:57:31 * ehird gawps 14:57:37 or that might have been for rc/funge 14:57:38 not sure 14:57:48 Deewiant: rc/funge is unoptimized, I think 14:57:53 anyway I do remember he said he increased the limits under cfunge 14:57:53 so it's probably the slowest 14:57:56 ehird: Well, so is CCBI 14:58:02 For the most part, anyway 14:58:08 Compared to cfunge ;-P 14:58:09 true 14:58:18 D is a lil slower than C too. 14:58:21 But then, everything is unoptimized compared to cfunge 14:58:32 Deewiant, no, jitfunge is more optimised 14:58:34 llvm is unoptimized compared to that dungpile. 14:58:40 uh, jitfunge doesn't optimize. 14:58:41 I take issue with people saying "language A is slower than language B" 14:58:48 Deewiant: yes, yes, I know 14:58:54 show me a D as fast as C 14:59:06 I can show you D programs as fast as C programs ;-) 14:59:13 Deewiant: Do they do the same thing? 14:59:16 D minus D features is basically weirdo C. 14:59:23 fizzie: Amazingly enough they do 14:59:29 ehird, well depending on what you mean, nor does cfunge. jitfunge could potentially. Just in cfunge I tried to write all the C code fast. But I don't try to constant fold code. Like jitfunge does 14:59:38 so I'd say jitfunge is more optimising 14:59:47 Green bunnies. 14:59:53 Happy, bunnies! 14:59:55 jitfunge is broken, though; that's a disadvantage. 15:00:02 lol, llvm's configure has --enable-optimized 15:00:05 If something doesn't work it doesn't count 15:00:09 fizzie, yes it isn't finished yet 15:00:14 ENABLE OPTIMIZED! 15:00:16 cfunge was broken in the beginning too 15:00:25 anyway currently cfunge is in a code clean up phase 15:00:38 But then, I suppose AnMaster would argue CCBI is broken since FILE's R doesn't reflect on EOF currently :-P 15:01:04 Deewiant, since you mention that. Fixed mycology for it? 15:01:04 ehird: What're you building LLVM for, binaries too simple for you? 15:01:10 AnMaster: nope, not even locally 15:01:15 mhm 15:01:20 Deewiant: macports only has 2.4 15:01:26 AnMaster: Feel free to do it yourself 15:01:32 and 3rd-party binaries for CLI software make me itchy 15:01:34 ehird: Ah, right, mac. 15:01:44 I should start a Scheme channel that, whenever someone says "This program doesn't work", and it doesn't meet the standard, we'll reply "Mu. Show us a program." 15:01:51 (re Deewiant: But then, I suppose AnMaster would argue CCBI is broken since FILE's R doesn't reflect on EOF currently :-P) 15:02:22 Meh, binaries from seemingly trustworthy 3rd parties are fine 15:02:23 is there somewhere in addition to the spec simple examples for the file i/o usage 15:02:32 Deewiant, well, it wouldn't be the official version. What if every funge developer then decided to fork mycology so their interpreter passed. Wait forget that. Changing the interpreter would be easier than changing mycology... 15:02:33 You never know if your compiler has been taken, anyway 15:02:46 AnMaster: ... I meant that you'd send me a patch 15:02:57 Deewiant: not itchy as in nervous 15:02:57 neldoreth: Not really. 15:03:12 itchy as in dammit it's a .pkg and I don't know where it's going graagh why does a CLI program have a graphical installer this is stupid I'm compiling my own. 15:03:29 Deewiant, mhm. diff thinks mycology is a binary file btw... ;P 15:03:38 Well, it is a binary file 15:03:40 It contains a null byte 15:03:48 I guess that makes it binary 15:04:03 yeah. -a forces it to treat the file as text 15:04:07 wtf llvm's Make has no clean 15:04:22 ehird, um. what? iirc it uses configure? 15:04:28 autoconf != automake. 15:04:32 ah true 15:04:33 Doesn't it use CMake? 15:04:36 Deewiant: ok, the ~ part speaks quite for it self 15:04:38 ehird, I always done out of tree builds 15:04:46 Deewiant: it also has a make system 15:04:51 Deewiant, cmake build system is WIP iirc 15:04:52 clean:: 15:04:52 $(Verb) rm -rf BuildTools 15:04:58 ah, so it does have a clean, it's just broken. 15:05:02 but maybe it is completed 15:05:12 * ehird `make -j3` 15:05:19 * ehird in the near future: `make -j9` 15:05:21 ehird, suggest solution: mkdir build; cd build; ../configure ... 15:05:30 then to clean just delete build 15:05:36 it DOES an out of tree buil 15:05:37 d 15:05:39 in BuildTools/ 15:05:43 err 15:05:55 agh, I dont' think their build system does -j properly 15:05:58 ehird, then your llvm is quite different from mine... 15:06:09 fuck this yall, I'm compiling it with cmake 15:06:09 maybe special for apple? 15:06:17 AnMaster: http://llvm.org/releases/2.5/llvm-2.5.tar.gz 15:06:19 yes, very special. 15:06:36 ehird, last I asked, which admittedly was a few months ago, cmake didn't yet handle the install bit 15:06:46 Installation is overrated 15:06:50 2.5 came out a few days ago. 15:06:51 Just bloat your PATH 15:06:56 ehird, yes I know 15:07:00 Deewiant: is that you gobo 15:07:06 I track llvm svn though 15:07:17 install(DIRECTORY include 15:07:17 DESTINATION . 15:07:19 PATTERN ".svn" EXCLUDE 15:07:21 PATTERN "*.cmake" EXCLUDE 15:07:23 PATTERN "*.in" EXCLUDE 15:07:25 ) 15:07:35 well they fixed it then I guess 15:07:38 ehird: http://www.dsource.org/projects/ldc/ does have installation instructions for llvm too, just in case you're making life too difficult for yourself 15:07:50 okay, how do you set cmake options? 15:07:54 hmm 15:07:58 ehird, ccmake 15:08:03 gives you a nice ncurses gui 15:08:03 specifically, I want to enable PIC, optimized, and 3-jobs-at-once 15:08:05 easiest way 15:08:11 does it allow me to configure parallel builds? 15:08:40 ehird, well cmake/ccmake generates Makefiles, so you would use make -j12357687 or whatever after 15:08:43 -!- KingOfKarlsruhe has joined. 15:08:53 kay 15:09:11 * ehird thinks fondly of his dead netcc project 15:09:23 (basically, -j) 15:09:35 ehird, no idea if llvm's cmake build system properly handles -j. I mean, I cmake itself handles -j fine in my experience, but some projects manage to break it 15:09:43 (the issue is verifying that the objects aren't tampered with) 15:10:06 also bandwidth 15:10:11 you could compile a local copy then and compare ;) 15:10:37 Deewiant: nahh, object files are only like 1mb 15:10:41 this would be for huge projects like kde 15:10:59 where expending the bandwidth in exchange for massively parallel builds makes sense 15:11:20 downloading a megabyte can well take longer than compiling an object file of that size 15:11:25 um... sending that over internet would be slow. Consider that for distcc you have to have gbit ethernet for it to be useful in practise 15:11:33 Deewiant, depends on how many C++ templates it uses... 15:11:39 you guys ever compiled kde? :P 15:12:11 I'm on Gentoo. I use KDE 15:12:14 what do you think? 15:12:34 I haven't compiled KDE 4 though 15:12:37 only kde3 15:13:16 cmake should only allow you to compile it with cmake 15:13:42 um. cmake is like automake. It generates makefiles 15:13:50 so that made no sense 15:13:54 sure it did. 15:14:06 there would be an EULA forbidding you from distributing the resulting makefiles 15:15:07 -_- 15:16:04 iirc autoconf/automake generated files have a "as a special exception you may distribute this generated file with non-GPL software using auto* build system" 15:16:07 or something like that 15:18:07 AnMaster: ccmake gives me no option to enable optimized 15:18:18 ehird, try t for advanced options? 15:18:24 also it is project that defines option 15:18:31 ah 15:18:34 the build type may be relevant 15:18:38 maybe they use that? 15:18:40 let me check 15:19:46 when i read a input (stdin) with ~ - how can i check when i am finished - so check for eof 15:19:50 ENABLE_OPTIMIZED=ENABLE_OPTIMIZED=1 15:19:51 wth 15:19:53 from configure 15:20:16 no OPTIMIZED in cmakelists 15:20:28 neldoreth: Did you read the specs? 15:20:40 ehird, there are multiple included files 15:21:16 nothing related 15:21:22 i am 15:21:24 hm 15:21:30 ehird, strange. I don't know 15:22:35 http://groups.google.co.uk/group/comp.lang.scheme/browse_thread/thread/f6c5066346672b00 <-- 346 users, gee! that deserves a group! 15:22:44 ehird, their irc channel is on irc.oftc.net 15:22:46 newlisp doesn't even have lexical variables :-D 15:22:54 llvm I mean 15:30:24 i am just not so sure about catching it if its acting like an r - only with w? 15:32:47 neldoreth: #v~ where the v leads to the error/EOF condition 15:32:53 (For instance) 15:37:01 "Computer justified type only looks good to people who like straight edges on their blocks but don’t bother to read the text inside them. " http://hellbox.org/archives/001566.html 15:39:24 This well-documented open-source algorithm was only finalized in 1982, of course, so it's silly to ask Amazon to do equally well today. 15:39:38 :-D 15:42:23 -!- Judofyr has quit (Remote closed the connection). 15:48:34 -!- Judofyr has joined. 15:50:31 -!- Judofyr has quit (Remote closed the connection). 15:51:05 -!- Hiato has joined. 15:52:22 hehe 15:54:07 Deewiant, one thing though: This is for their ebook reader right? I don't know how powerful it is, but the TeX algorithm is not that fast, though I read that thanks to dynamic programming it isn't too bad. For a complete book it could take a while on a low end device I guess.. 15:54:19 that's why you pre-render it, duh 15:54:47 yes I was writing that, but you finished your line first 15:54:57 type faster you hobo 15:55:28 anyway Plain TeX algorithm isn't that good. pdftex has some optional enhancements that are really nice 15:55:40 beats that awful algorithm on the page 15:55:44 use the package microtype to enable them 15:55:58 of course, an incredibly easy way to solve this is to just have it ragged-right, which is easier on a screen anyway. 15:56:02 very nice. As usual for TeX there is a lot og good docs for it. 15:56:03 0 computational cost! 15:56:12 ehird, well you have to compute line breaks 15:56:20 well, okay, but that's trivial :P 15:56:21 and I find straight margins easier on screen too 15:56:34 at least if done properly 15:56:48 the margins in that example you linked I agree ragged would have been better 15:57:17 I think it's generally well-known that ragged-right is easier on a screen, might not be for you but you're weird. 15:57:43 mhm. Well depends on what sort of text 15:58:14 * AnMaster notes man uses monotype + straight margins 15:58:19 The fact that the fast majority of text I've read has been ragged-right on a computer for a huge portion of my life may have something to do with it 15:58:29 also, man doing that enrages me to no end 15:58:33 (isn't it technically troff that does that?) 15:58:38 the result isn't good IMO, but better than the kindle thing 15:58:46 wonder if troff has an option to turn it off 15:58:51 ehird, well probably. Or one of the other programs that troff invokes 15:58:54 and possibly 16:01:16 ehird, maybe in your mandoc format definition? On my system that is in /usr/share/groff/current/tmac/andoc.tmac 16:01:21 -!- DH__ has quit ("Trillian (http://www.ceruleanstudios.com"). 16:01:27 yeah andoc... -m andoc -> -mandoc ... go figure 16:01:39 heh, like the ubygems trick 16:02:04 oh? rubygems is some package manager for ruby right? 16:02:12 so what needs -r ubygems ? 16:02:16 -rubygems 16:02:26 you need to require rubygems before you can use rubygems packages 16:02:31 (for various ugly reasons) 16:02:33 and ruby has -r for require 16:02:41 so they made ubygems.rb `require "rubygems"` 16:02:49 ehird, you know about libiberty? Well -liberty is the link command... GNU people... 16:02:54 yeah 16:03:05 libibido 16:03:12 i love how that sounds when you pronounce it 16:03:15 libibibibibido 16:03:25 hm 16:03:35 andoc doesn't contain the word "margin" anyway 16:03:44 case insensitive search 16:03:49 oh no, I was again working on Asiecrypt 16:04:08 AnMaster: .\" Load either an-old.tmac or doc.tmac. 16:04:12 This time it encrypts an image into random gibberish and can still decode it 16:04:16 ehird, doesn't say that here... 16:04:22 maybe a BSD thing. 16:04:40 doc.tmac has the 3-clause BSD license 16:04:44 an-old is GPL 2 16:04:53 wait, it does: "Either load doc.tmac or an-old.tmac" 16:04:54 .de set-an-margin 16:04:54 . nr an-margin \\n[IN] 16:04:56 hah 16:04:58 god I have troff! 16:05:00 *hate 16:05:15 ehird, well the syntax isn't that far from TeX one 16:05:18 just worse 16:05:32 except you can read tex because its names aren't all meaningless 2-character gibberish with \s and .s everywhere 16:05:53 ehird, look. This saves bytes. Remember /usr/share is limited in size. Or was. 16:05:54 syslog-ng uses the libol.a library to get "-lol"; I don't think the "ol" meant especially anything there. 16:06:26 that's some mature humor 16:06:43 augh 16:06:47 fizzie: it doesn't seem to be intentional 16:06:49 from the google 16:06:52 oh? 16:07:08 btw what software has libibido? 16:07:11 none 16:07:24 but i presume some kind of open source porn viewer would utilize it somehow 16:07:25 oh? there is no package for it 16:07:29 hah 16:07:30 yes, it doesn't exist 16:07:33 i made it up 16:07:38 Yes and apparently nowadays: "I moved to using glib instead of libol, as glib is more mature and provides several nice & easy to use features." 16:07:38 heh 16:07:39 Maybe GHC could use libambda when it gets proper shared object support 16:07:41 hmm. there's an mm.tmac 16:07:42 -mmm 16:07:46 Deewiant, :D 16:07:47 -mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm 16:08:04 ehird, -mm ? I think that exists. I have a m.tmac here... 16:08:08 no idea what it is for 16:08:09 I have an mm.tmac. 16:08:12 as well as m.tmac 16:08:13 -mmm 16:08:53 well both 16:09:53 ehird, you will also need to check /etc/man.conf or something like that for what -m is actually used 16:10:07 man_db.conf on some systems. And no idea on OS X 16:10:35 TROFF /usr/bin/groff -Tps -mandoc 16:10:35 NROFF /usr/bin/nroff -mandoc 16:10:35 here 16:10:49 "Right-margin justification is turned off for the mm macros." 16:11:03 uhu 16:11:09 * ehird looks at mm.tmac 16:11:18 .\" mm.tmac 16:11:18 .\" 16:11:19 .do mso m.tmac 16:11:24 >_< 16:11:27 that is include I guess 16:11:30 yep 16:11:35 so look at m.tmac 16:11:40 I am. 16:11:44 well mandoc.tmac includes andoc.tmac 16:11:51 .\"paragraph type 16:11:51 .\"0 == left-justified 16:11:52 .\"1 == indented .P 16:11:54 .\"2 == indented .P except after .H, .DE or .LE. 16:11:56 .nr Pt 0 16:11:58 I think nr is a variable 16:12:01 .P 16:12:07 strange similey 16:12:14 smiley* 16:12:27 jesus christ this is just painful 16:12:41 yes roff is 16:12:52 ehird, at least, teco would have been worse 16:13:15 naw, teco is obscure but not much more than, say, befunge 16:13:19 just because it has short commands 16:13:26 whereas this is a syntactic clusterfuck 16:13:30 well roff has short commands too 16:13:40 yeah, but it's everything else that's the issue. 16:14:17 ehird, I'm not sure what the other stuff is. I just know enogh *roff to write a simple man page. Which is far from that above. 16:15:09 i mean, teco is pretty intuitive, actually 16:15:13 EBhello.c 16:15:17 E means edit, B means with backups 16:15:24 and two escapes terminates a command 16:15:38 P p means P-age it reads the first page of text in 16:15:40 true 16:15:56 ehird, I think most languages seem easy/intuitive if you used them enough :P 16:15:58 SHello0TT <- ESC obviously separates command arguments 16:16:00 S means search 16:16:16 not sure what 0TT is, probably "print line 0" (with relative offsets) 16:16:22 i don't even know teco, but it seems simple enough to me 16:16:30 -5DIGoodbye0TT 16:16:36 -5D prints 5 characters backwards, obviously 16:16:41 ehird, does that bf interpreter in TECO seem "simple enough" too? 16:16:42 ahh 16:16:43 is ; 16:16:47 0TT just prints the current line 16:17:03 anyway, I is obviously insert 16:17:05 then it prints the line 16:17:09 EX 16:17:12 exit 16:17:29 i mean, i get that the brainfuck interp looks complex, but actual editing seems basically like ed 16:17:33 @^UB#@S/{^EQQ,/#@^UC#@S/,^EQQ}/@-1S/{/#@^UR#.U1ZJQZ\^SC.,.+-^SXQ-^SDQ1J#@^U9/[]-+<>.,/<@:-FD/^N^EG9/;>J30000<0@I/ 16:17:34 />ZJZUL30000J0U10U20U30U60U7@^U4/[]/@^U5#<@:S/^EG4/U7Q7;-AU3(Q3-91)"=%1|Q1"=.U6ZJ@i/{/Q2\@i/,/Q6\@i/}/Q6J0;'-1%1' 16:17:34 >#<@:S/[/UT.U210^T13^TQT;QT"NM5Q2J'>0UP30000J.US.UI<(0A-43)"=QPJ0AUTDQT+1@I//QIJ@O/end/'(0A-45)"=QPJ0AUTDQT-1@I// 16:17:34 QIJ@O/end/'(0A-60)"=QP-1UP@O/end/'(0A-62)"=QP+1UP@O/end/'(0A-46)"=-.+QPA^T(-.+QPA-10)"=13^T'@O/end/'(0A-44)"=^TUT 16:17:36 8^TQPJDQT@I//QIJ@O/end/'(0A-91)"=-.+QPA"=QI+1UZQLJMRMB\-1J.UI'@O/end/'(0A-93)"=-.+QPA"NQI+1UZQLJMRMC\-1J.UI'@O/en 16:17:39 d/'!end!QI+1UI(.-Z)"=.=@^a/END/^c^c'C> 16:17:41 that? 16:17:46 right 16:17:54 it's ugly, but I bet if you added newlines after command blocks it'd make sense 16:18:00 well true 16:18:09 it's just because it's all mushed together, and plus, using a text editor to implement brainfuck will never be pretty 16:18:13 (disregarding things like elisp) 16:18:28 ehird, elisp isn't pretty. 16:18:40 agreed, but you can read a bf interp in it easily 16:18:52 elisp itself is horrific 16:18:55 even with all optional spaces/newlines removed? 16:19:05 and with one letter names where possible 16:19:07 heh 16:19:09 i'm going to install teco 16:19:13 te(1) is an implementation of TECO in portable C. It implements DEC standard 16:19:13 TECO, with some exceptions and extensions described below. te assumes a 16:19:15 VT100-type terminal, and its display driver is hard-coded for such. 16:19:17 Homepage: http://www.ibiblio.org/pub/academic/computer-science/history/pdp-11/teco/ 16:19:20 hm 16:19:22 it's in macporst 16:19:23 :D 16:19:26 macporst? 16:19:28 macports 16:19:38 semi-official os x package manager 16:19:42 ehird, some package maintainer gone insane 16:19:44 clearly 16:19:54 nomaintainer@macports.org is indeed insane 16:20:02 they let just about everything into their repos, which is nice 16:20:10 I would expect debian to have it, if license is ok. Otherwise no distro 16:20:15 TECO for UltrixMatt FichtenbaumFebruary 27, 1987 16:20:15 revised 7/17/89 16:20:19 --documentation 16:20:25 ehird, how do you submit ports then? 16:20:26 to it 16:20:33 AnMaster: ask in #macports :P 16:20:35 I would like to submit a rootkit named gcc 16:20:36 :D 16:20:38 heh 16:20:47 backward paging in file (negative arguments to P, N, etc.) 16:20:49 under missing features 16:20:52 er. 16:20:58 err sounds like more vs. less 16:20:58 isn't backwards paging, kind of 16:21:00 you know 16:21:02 worthwhile? 16:21:03 useful? 16:21:06 trivial to implement? 16:21:10 ehird, compare more and less 16:21:14 more can't go back 16:21:16 yeah, but this is an editor :P 16:21:23 good point 16:21:33 is teco, kind of 16:21:34 you know 16:21:37 worthwhile? 16:21:39 useful? 16:21:42 hahaha 16:22:20 Most DEC command languages interpreted the "MAKE filename" command as a command to start TECO and create the named filename. Many (most?) TECOs would respond to "MAKE LOVE" with the message "Not war?". At some TECO installation sites, the resulting file "LOVE" was considered a good-luck charm and was thus accorded heavy file protection (e.g., <777> under TOPS-10), never to be deleted. 16:22:21 ehird, anyway what about dc code? 16:22:25 is it hard to read? 16:22:28 eh, dc is just like underload really 16:22:37 except with arithmetic, so even easier 16:23:23 well, I have seen dc programs that look about as confusing as the bf interpreter in TECO.. And I have seen readable ones. 16:23:30 I have written confusing ones too 16:23:35 and readable 16:23:48 i was right 16:23:54 terminates the command :D 16:23:56 dc is a nice calculator, but doing text processing in it is just stupid 16:23:58 (and makes a new command line) 16:24:37 hmm, this is buggy 16:25:03 http://99-bottles-of-beer.net/language-dc-704.html <-- that isn't too bad. But I have seen much worse 16:26:15 Debian bug report 298432 -- http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=298432 -- is someone requesting TECO, but it never happened. 16:28:15 AnMaster: Jannis Harder? that's jix 16:28:31 ehird, ? 16:28:36 the writer of that 99bob 16:28:40 ah right 16:28:48 ehird, I see. Didn't know 16:30:30 * AnMaster gets a silly idea... 16:30:30 ==1234== 99 bytes in 1 blocks are still reachable in loss record 1 of 99 16:30:30 ==1234== 98 bytes in 1 blocks are still reachable in loss record 2 of 99 16:30:38 something like that :D 16:30:45 wut? 16:30:55 ehird, not the same of course. But a parody 16:30:59 of the worst type 16:31:00 i don't get it 16:31:17 ehird, 99 bottles of valgrind 16:31:17 :P 16:31:35 aiee 16:31:48 just a case of making a leaky enough program that generates the output you want 16:32:19 also, how much interest do you think there would be in a precise, generational, parallel and concurrent (i.e., the GC uses multiple threads, and runs in parallel with the mutator) GC? 16:32:40 well, that's kind of rhetorical, there's huge demand for that 16:32:43 ehird, if it also gives good performance: A *LOT* 16:32:55 well 16:32:59 depends on for what language/vm 16:33:02 Isn't that exactly what's happening with GHC soon/now? 16:33:05 AnMaster: pluggable 16:33:11 ehird, would it work for C? 16:33:12 Deewiant: ghc's gc still pauses threads 16:33:13 I.e. somebody was working on it 16:33:19 AnMaster: you can't make a precise GC for C 16:33:20 ehird: Yes, currently 16:33:22 that's impossible 16:33:23 ehird, exactly. 16:33:30 so for what language/vm then? 16:33:33 AnMaster: it may be possible to plug in some stuff to make it conservative 16:33:34 dunno 16:33:36 also, pluggable 16:33:38 hm 16:33:45 i.e., you set off some defines for your language and you're done 16:33:58 ehird, you mean one GC that you can plug into java, .NET, ocaml, ghc and so on? 16:34:00 :P 16:34:06 that sounds like impossible 16:34:07 well, you have to modify their implementation to do it, of course 16:34:11 right 16:34:24 but it'll just need some functions like heap traversal etc 16:34:45 also a GC for a single assignment language can take advantage of some extra stuff iirc 16:34:51 but I may misremember that 16:35:12 I was planning to basically optimize it for Scheme. 16:35:30 i.e., not all-out-imperative, but not purely-functional, strict, high-level 16:35:43 that should cover a wide range of other languages 16:35:55 e.g. most modern scripting languages like perl, python, ruby 16:38:08 hm 16:38:16 seems valgrind sorts so largest leak is last 16:41:22 AnMaster: woo, I've sussed basic editing with teco 16:41:30 http://pastie.org/private/xstfyhfbfciqpr6yqkuhvw 16:41:43 should be evident how it works from that session 16:42:09 (S puts the cursor right after the term) 16:42:15 thus the mid-line prompt after 0T 16:43:16 mhm 16:43:32 ehird, will you use this as your main text editor now? 16:43:38 no 16:43:43 but I might use it where I would have used ed 16:43:48 (tiny changes to system files) 16:43:56 tapping all the time is a bit annoying 16:46:54 [ehird:~/Junk] % ls -lh `which teco` 16:46:54 -rwxr-xr-x@ 1 root wheel 99K 10 Mar 15:39 /usr/local/bin/teco 16:46:55 [ehird:~/Junk] % ls -lh `which ed` 16:46:57 -r-xr-xr-x 1 root wheel 111K 10 Sep 02:06 /bin/ed 16:47:05 FUCK YEAH TECO 16:47:55 /bin/ed is 49K here O_o 16:47:56 You appear to be a bot, I can't accept your paste. JS is now required to paste. 16:47:57 wth 16:48:03 I tried to use a pastebin ehird liked 16:48:07 AnMaster: LOL what pastebin? 16:48:11 also, i don't like the pastebins I link 16:48:13 I only use pastie 16:48:16 ehird, pastie.org 16:48:17 I was just trying to find a fast one 16:48:19 that is the one 16:48:20 ... wait, really? 16:48:23 ehird, yes 16:48:27 rafb here I come! 16:48:29 wow. 16:48:33 that is amazingly retarded. 16:48:40 I'm using paste.lisp.org from now on. 16:48:50 ehird, the captcha thingy... 16:48:51 AnMaster: I'll write you a command-line paste.lisp.org paster, dammit :P 16:48:57 ehird, btw http://rafb.net/p/1giASD62.html 16:49:04 silly yes 16:49:20 ( http://pastie.org/412847 ) 16:49:21 also, that's great 16:49:36 you should record it 16:49:40 it sounds catchy. 16:49:45 The proxy server received an invalid response from an upstream server. 16:49:45 The proxy server could not handle the request GET /. 16:49:46 Reason: Error reading from remote server 16:49:48 --paste.lisp.org 16:49:50 X_X 16:50:02 15:47 Deewiant: /bin/ed is 49K here O_o 16:50:05 hm? 16:50:07 Mach-O binaries tend to have large overhead 16:50:20 Ah, right, it's two binaries, isn't it? 16:50:31 no 16:50:37 I don't think it's universa 16:50:38 l 16:51:25 Mach-Os can have code for multiple archs 16:51:32 I know 16:51:33 Not only the new Universal ones 16:51:44 universal binary = marketing term for dual-arch mach-os 16:51:53 Ah, great 16:52:27 PPC macs are probably going to be unsupported in 10.7 or so 16:52:55 since it'll have been 5-6 years since you could buy a ppc mac 16:53:40 http://pastebin.com/m564d25c7 can someone give me a hint what i have to do to read a new char from stdin? i want to evaluate the first one, then print something and then read one again, but at this point the program quits 16:54:18 neldoreth: <<< is pointless 16:54:20 you only need one < 16:54:24 and it'll keep going that way 16:54:28 prettier, though, I guess 16:54:38 Cue AnMaster saying it's slower 16:55:09 hm? 16:55:10 I was just thinking that 16:55:15 Deewiant: see neldoreth's paste 16:55:16 uses << 16:55:20 ehird: AnMaster 16:55:20 also see backlog. 16:55:25 err 16:55:26 right. 16:56:12 i know but i can "draw something" :D 16:56:12 i should run back to the ~ in the left corner all the time 16:56:13 neldoreth: it might be easier to use "a"- instead of 99*-44*- 16:56:28 proposed new name for naive mark and sweep GCs: Racially discriminatory garbage collection 16:56:30 or if you're using Befunge-98, 'a- 16:56:30 (white/black, geddit?) 16:56:44 ehird, http://rafb.net/p/kpPckS27.html 16:57:09 AnMaster: now do it as a loop 16:57:12 Deewiant, also space is faster in ticks 16:57:14 (99bob only accepts looping submissions) 16:57:27 ehird, well hard, valgrind will merge the leak records then 16:57:32 ( http://pastie.org/private/iv4m2aemernoywywhfy2nq ) 16:57:34 AnMaster: just loop in cpp 16:57:35 + it doesn't print the actual lyrics 16:57:35 AnMaster: Yes, exactly that's what I said you'd say 16:57:38 99bob has been done in CPP 16:57:43 ehird, ah hm true 16:57:53 neldoreth: Your logic seems strange 16:58:00 the left top box in the middle checks if the input is an a, the right top one if its an b - the lower boxes are just printing something 16:58:02 also, it'd probably be accepted if you explained why it's as close as you can get in valgrind 16:58:09 Deewiant, well you might prefer <<< if you want to sync threads 16:58:19 since space take no ticks 16:58:26 or one in strings 16:58:32 neldoreth: Or no, wait, you quit if you don't get an 'a' or 'b' 16:58:54 AnMaster: #define G(n) void l ## n (){for(int i=0;i you don't need c99 there... 16:59:10 ehird, indeed, but it is longer if you move int out 16:59:18 it's not a golf contest :D 16:59:23 #define G(n) void l ## n (){int i;for(i=0;i vs 16:59:26 #define G(n) void l ## n (){for(int i=0;i see? 16:59:33 for(int 16:59:34 is C99 too 16:59:40 ehird, it is yes 16:59:42 anyway, you'd have to make it looping for the site 16:59:45 so it'll be longer anyway 16:59:55 ehird, so it would use the preprocessor 17:00:03 it would be cpp+C+valgrind 99bob 17:00:08 anyway does it really qualify? It isn't the original lyrics 17:00:09 after all 17:00:09 -!- neldoreth has quit (Remote closed the connection). 17:00:14 -!- neldoreth has joined. 17:00:15 yes, if you explained, probably 17:00:17 as a novelty entry 17:00:29 ehird, and valgrind outputs it sorted so largest leak is last. Which is why I need tac there 17:00:41 okay then, it's cpp+C+valgrind+shell 17:00:52 you could get a 'most languages combining to produce the wrong output' reward :D 17:01:00 ehird, not shell builtin. Anyway I don't think I will submit it.. Probably 17:01:09 ah damn net connection 17:01:11 but I should try to making it looping in cpp 17:01:16 need to figure out how that works first... 17:01:30 did someone responded after "[16:59:27] neldoreth : the left top box.." 17:01:30 ehird, anyway it is looping. for loops 17:01:32 lots of them 17:01:33 ;) 17:02:04 neldoreth: After I complained about your logic I said: 2009-03-10 17:58:32 ( Deewiant) neldoreth: Or no, wait, you quit if you don't get an 'a' or 'b' 17:02:36 yeah thats true 17:03:20 So what was your problem? 17:03:23 -!- BeholdMyGlory has joined. 17:04:03 ah, when i type a and press return i first handle the a and then the newline and so it quits - what i want is to read another time from the stdin 17:04:29 neldoreth: So... don't quit if you get a newline? :-P 17:05:11 ehird, (not yet recursive) but c89: http://rafb.net/p/eMJu3514.html 17:05:39 ( http://pastie.org/private/2uu4zcnp28kjjolbkjlza ) 17:05:42 ehird, and don't claim I'm anal about clean C when I wrote this. 17:05:46 argh, yes - god :D 17:06:38 neldoreth: You might want to read getting a blank line as a quit, though 17:08:04 ehird, "# Approval may take some time (currently 354 languages in our queue) unless your submission is 'obviously correct' to us." 17:08:13 hmm. sounds rather abandoned. 17:08:19 indeed 17:09:40 ehird, hm in http://99-bottles-of-beer.net/language-c-c++-preprocessor-997.html?PHPSESSID=dd5c2ef875ab6fe583f94a4bf5a6d0b1 what on earth do the | do? 17:10:18 nothing 17:10:20 I think 17:10:29 AnMaster: it's just cpp 17:10:32 so it's interpreted as plaintext 17:11:26 ah true 17:16:31 -!- MigoMipo has joined. 17:26:54 wait, main() returns implicit 0? 17:27:06 is that standard or gcc thing? 17:28:35 C99 standard 17:28:51 Before that, possibly GCC :-P 17:28:55 Deewiant, what about C89? 17:29:19 I think it was just a normal int-returning function then 17:29:57 What does the C standard say about functions which don't return but are prototyped to? 17:30:03 http://rafb.net/p/RSKN7292.html 17:30:06 what about that? 17:30:10 well not recursive yet 17:30:22 I just liked thiiis variant 17:30:46 ehird, ^ 17:31:02 http://pastie.org/private/nfhn6okyyubkdnmkwjpfg 17:31:09 ok but what do you think about it? 17:31:24 also paste.lisp seems to work now 17:33:44 http://common-lisp.net/project/lisppaste/lisppaste.el 17:33:47 lisppaste from emacs 17:33:49 good enough for you? 17:33:58 what about from shell? 17:34:03 I was actually using nano atm 17:34:04 I'll write one :P 17:34:38 -!- FireFly has joined. 17:38:40 how to write better shell: alias return=echo 17:38:40 :P 17:38:56 AnMaster: what are erlang extensions? 17:39:09 heh 17:39:13 wut 17:39:16 ehird, um. what? 17:39:19 file 17:39:21 extensions 17:39:23 also it was heh about alias 17:39:24 ah 17:39:32 .erl for source, .hrl for includes 17:39:36 .beam for bytecode 17:40:54 > now what the fuck does that mean 17:41:20 huh? 17:41:40 it seems like a cut out fragement of some HTML code? 17:42:04 yes, it's a paste.lisp.org syntax highlighting option 17:42:08 I'm trying to figure out wtf it means 17:45:50 hmm 17:45:54 how do you convert to lowercase in bash? 17:48:18 http://lists.osuosl.org/pipermail/darcs-users/2009-March/018239.html <- I think the darcs devs have just given up 17:48:55 tr '[:upper:]' '[:lower:]' 17:49:14 >.< 17:49:54 hmm 17:50:04 if you pass a shell function something like "a b", it can just use $1 instead of "$1", right? 17:51:50 Think so. 17:52:13 yay, my shell script just lost 500KB of quotes :P 17:53:09 AnMaster: http://www.nopaste.com/ 17:53:14 loads really fast 17:53:19 * ehird continues writing script 17:53:40 it has a delete button? 17:53:48 seems to be IP-based. 17:54:00 so I guess it's for the "oh shit I just pasted my password" 17:54:01 case 17:54:20 ehird, no bash highlight? 17:54:29 true, it does lack highlights 17:54:32 AnMaster: C highlight would work for bash 17:54:40 ehird, not well in my experience 17:55:25 hrrm 17:55:28 * AnMaster checks 18:03:43 lisp.paste.org has no bash hgihlighting, actually 18:03:47 whch is a shame but oh well, who cares 18:07:11 AnMaster: hey, the captcha is gone! 18:07:16 huh? 18:07:17 maybe it only does it once per IP 18:07:17 * AnMaster looks 18:07:24 cookie iirc 18:07:29 ah 18:07:37 wow 18:07:40 the captcha is css 18:07:41 not an image 18:07:47 really? 18:07:50 yep 18:08:04 '' 18:08:06 i can't select it... hm 18:08:06 how infuriating. 18:08:14 I could just use the xml-rpc, but meh. 18:08:22 hmm. 18:08:35 a table? 18:08:45 no, a div 18:08:50 ah right 18:09:10 % curl -s http://paste.lisp.org/|grep captcha 18:09:11 > Et voila. 18:09:58 -!- jix_ has joined. 18:10:40 % curl -s http://paste.lisp.org/ | grep captcha | sed 's/.*value="\(.*\)".*/captcha=lisp\&captchaid=\1/;' 18:10:41 captcha=lisp&captchaid=02bbbb07dd6f667b9c1c94194843771b 18:11:02 err 18:11:09 I just made a loop variant 18:11:12 without cpp 18:11:16 neat 18:11:20 it uses reflection 18:11:21 kind of 18:11:24 dlsym() 18:11:26 ha 18:11:52 uh oh, I need to urlencode in bash 18:11:54 this will be fun 18:12:02 hm? 18:12:16 why not use some other language? 18:12:19 dunno 18:12:22 I do have python, perl and so on 18:12:22 I started writing it in bash 18:12:30 actually my bash is looking vaguely like python 18:12:34 ehird, I don't think bash is the sanest language for this... 18:12:35 Remember what channel this is, AnMaster. 18:12:38 because I'm not really quoting anything 18:12:42 AnMaster: one word: envbot 18:12:44 now shut up :P 18:12:46 yes 18:12:52 so I should know when it is insane 18:13:03 if I say it is insane to do in bash, it has to be really insane 18:13:03 * pikhq nods 18:13:05 logic 18:13:10 hokay let's see well this shouldn't be hardy hard 18:13:19 so 18:13:23 I wish you good luck :D 18:13:32 meh, it's almost done 18:13:35 just some trivial curl 18:13:44 and mapping file extensions to languages 18:14:03 okay, so, urlencoding: 18:14:07 replace space with + 18:14:20 replace anything not in 0-9a-zA-Z and $-_.!*'(), with %XX 18:14:24 where XX is the character code in hex 18:14:41 sounds pretty solid 18:14:45 -!- oklopole has changed nick to oklopol. 18:14:49 hello world, what's up 18:15:01 the sky 18:15:10 ehird, that's great and all, except that you replace space with %20. 18:15:22 pikhq: + is accepted by everything under the sun 18:15:26 as space 18:15:36 pikhq: search for hello world on the google dot com 18:15:39 take a look at the url 18:15:41 &q=hello+world 18:15:44 Doesn't make it right. 18:16:14 pikhq, if I was going for right I'd be half way through writing my lisp operating system:) 18:16:45 * pikhq hands ehird a copy of the Emacs source code 18:16:47 Get cracking. 18:16:48 ;) 18:16:58 I was hoping for something more elegant. :P 18:17:16 Yeah, I know... But any Lisp operating system simply *must* also count as an Emacs. 18:17:34 Not necessarily GNU Eamcs, of course. Bit of a hack, that. 18:17:36 Well, yeah, the lisp machine OSes were basically generalized emacses 18:17:50 I'm not yet crazy enough to make my own hardware, though. 18:18:09 Doesn't need to be a Lisp machine, you know. 18:18:32 Just needs to be normal hardware, with car, cdr, lambda, and def defined. :p 18:18:43 :D 18:18:49 wait, no cons? 18:18:52 can you car a lambda or something? 18:19:04 pikhq: why not just have lambda 18:19:08 Sorry. Scratch the car and cdr. 18:19:12 after all, def is just a fancy ((lambda (name) ...) value). 18:19:34 methinks we have a slight problem, namely that of io... 18:20:09 Fine, fine. You want it to be *useful*... 18:20:21 Guess you'll need read and print as well... 18:20:28 http://www.nopaste.com/p/aQnonJ8OT 18:20:29 ehird, ^ 18:20:37 Perhaps some more complex IO as well. 18:20:58 AnMaster: nope, sorry 18:21:01 you're not allowed to name 99-1 18:21:05 you have to loop that part 18:21:30 ehird, yes I know 18:21:47 ehird, but I still think this is rather nice. My plan is to loop the 99-1 bit too 18:21:54 :D 18:22:07 pikhq: the AFO deregistered 18:22:17 ehird, by recursively calling cpp in -traditional mode to expand one step at a time + add part of the next 18:22:23 hmm, I'm only the third person to tell you I see 18:22:29 ehird, what do you think about that? 18:22:35 AnMaster: no no no 18:22:38 you can loop with plain cpp 18:22:42 you just do recursive #includes 18:22:43 ehird, yes but this is funnier 18:23:02 -!- jix has quit (Read error: 113 (No route to host)). 18:23:58 hmm 18:24:11 I wonder if you can loop through a string's chars in absh 18:25:06 $(for i in {0..99};do echo -n | cpp -traditional -Da$i="r($i)a$((i+1))"; done | sed '^/|//') 18:25:08 ehird: Yeah; I intend to register the AFO when next possible. 18:25:09 or something 18:25:09 :D 18:25:16 well that won't work as such 18:25:20 but the idea is sound 18:25:22 pikhq: Um, but Murphy is the one who deregistered it and he is a party. 18:25:32 He'd just deregister it again if you didn't seek consensus. 18:25:45 hardcovers are awesome. 18:26:05 Alas, I *can* talk to Murphy. 18:26:10 ehird, what do you think of that idea? 18:26:18 meh :P 18:26:24 pikhq: WHAT BUT THAT'S IMPOSSIBLE :| 18:26:38 How else do you think the Left Hand came into being? 18:26:58 * pikhq wonders if that contract still exists... 18:26:58 I believe judicial precedent is that while it existed, it didn't work... 18:27:05 also, I think it was terminated in a cleanup 18:27:13 http://agora-notary.wikidot.com/system:page-tags/tag/contract 18:27:17 gone 18:27:23 Good to know. 18:27:50 Taking this to /msg, to unclutter #esoteric: 18:36:14 -!- psygnisfive has quit (Remote closed the connection). 18:51:23 Hmm. 18:51:27 Some sort of captcha problem. 18:51:30 AnMaster: lisppaste(1) is almost don. 18:51:31 e 18:51:42 k 18:58:56 AnMaster: it's done, the only thing it doesn't do is annotate a paste 18:58:59 do you need that? :P 19:01:22 http://www.nopaste.com/p/a1S6eQHnp <-- fixed version slightly 19:01:27 there was a typo in last 19:01:28 AnMaster: 19:01:29 http://paste.lisp.org/display/76773 19:01:31 There you go. 19:01:33 no I'm not yet done with recursive 19:01:46 Pop in ~/bin, put in your .profile: 19:01:51 export LISPPASTE_USER=AnMaster 19:01:53 and then just 19:01:59 lisppaste [language] (filename | -) 19:02:08 you depend on bash? 19:02:13 or do you want plain sh? 19:02:19 I use ${foo##bar} 19:02:23 right 19:02:26 dunno if that's in sh 19:02:35 ehird, does it work on filenames with spaces? 19:02:43 AnMaster: yes, I'll test just to make sure 19:03:03 No. 19:03:06 if [ $1 = - ]; then <-- think that would break with it 19:03:07 I'll fix that. 19:03:11 if [[ $1 = - ]]; then 19:03:17 does what you want there 19:03:36 urlencode() { 19:03:36 echo -n "$1" | perl -pe's/([^-_.~A-Za-z0-9])/sprintf("%%%02X", ord($1))/seg' 19:03:36 } 19:03:39 that's cheating ;P 19:03:43 Indeed. 19:03:55 AnMaster: http://paste.lisp.org/display/76776 updated version 19:03:58 ehird, what exactly does it do? convert to hex ascii value? 19:04:01 if yes then it is easy 19:04:03 it urlencodes. 19:04:38 also, it sets the title to the filename you give it (no expansion done) 19:04:41 or untitled if stdin 19:04:47 nice 19:05:28 ehird, but question, what exactly does that perl do. I guess convert everything not in [-_.~A-Za-z0-9] to %octalvalue ? 19:05:30 right 19:05:31 ? 19:05:38 Hex value. 19:05:44 ah right 19:05:50 ehird, want to know how in pure bash? 19:06:00 Not really :P 19:06:05 Curl can urlencode for you 19:06:10 I could just use that 19:06:11 but meh 19:06:15 hex() { printf -v "$1" '%d' "'$2"; } 19:06:19 converts one letter 19:06:21 use like: 19:06:26 hex myvar "a" 19:06:29 echo $myvar 19:06:48 ehird, needs bash 3.1 or later. for 3.0 too do something like: 19:06:54 hex() { printf '%d' "'$1"; } 19:06:57 (labels(({(] &rest [)(apply([ 19:06:57 ])[))([(>)(elt(]())>))(](<)(do-external-symbols(] :cl)(push ] <))(sort 19:06:58 and have: hex a 19:06:58 <`string<`:key`string))(}({ + ^)({`816`1/5)({`688({`875({`398()"~{~A~^ 19:07:00 ~}"(]())){(+ { +)))({`381)^))(do*(({`5248({`584 }`36063))([`874({`395 19:07:02 {`6))(]`4({`584 {`6))(}`#36RH4G6HUTA1NVC1ZHC({`395 }`36063)))((} [ ] 19:07:04 ({`977 ]))({`902)({`381)))) 19:07:05 ? 19:07:06 ^ a janlh, 19:07:07 wow that's pretty 19:07:08 program 19:07:12 AnMaster: run it in a common lisp interpreter 19:07:28 what's that 19:07:34 janlh 19:07:34 ehird, not sure I want to. could be overwrite files or whatever 19:07:38 AnMaster: it isn't. 19:07:42 I promise. 19:07:44 ehird, then what does it do? 19:07:47 seriously, I'm the last person to do something like that 19:07:51 AnMaster: you know japh programs? 19:07:53 (just another perl hacker) 19:07:55 it's one of those. 19:07:58 sounds familiar 19:08:02 don't remember details 19:08:10 they print out "Just another perl hacker," 19:08:13 in the most obscure way possible 19:08:14 ah right 19:08:42 as far as I can tell, by the way, this one works by searching through all standard common lisp names, finding one with the most consecutive characters to output next, and outputs it 19:08:44 then repeats 19:09:04 haha 19:09:13 uh oh, is that a dead pixel on my screen? 19:09:18 I can't wipe it off. 19:09:28 ehird, doesn't most screens have 1-2 or so? 19:09:38 This one has had none. 19:09:41 mhm 19:09:44 lucky you 19:09:45 it's probably just some dust or something 19:10:03 could be a new one 19:10:06 well, maybe it has them but it's in some obscure corner where I never look 19:10:11 the dpi is high enough that i'd probably never notice 19:10:15 but this one is in a particularly annoying place 19:10:30 where? 19:10:47 of course. Over my name in the nick list. Could be no worse place ;P 19:10:53 Right now, on my IRC input line, which is white-backgrounded, so it stands out a lot. 19:11:10 Well, all going to plan I'll be replacing this monitor soon, anyway, so no great loss ... 19:11:23 ehird, that is the good thing with black terminals :P 19:11:32 yeah, the one good thing 19:11:34 you don't see the dead pixels as much 19:11:58 personally I also find it easier to read white on black... 19:12:21 yeah it's nicer 19:12:32 i wish books were printed that way 19:12:43 It would be true if you used the computer a lot at night; but I hate the dark (it depresses me) so I optimize for daylight 19:13:26 oklopol, no that wouldn't work as well, Screen and print are different 19:13:36 it's oklopol 19:13:41 he'd find a way to make it work. 19:13:58 i love white on black it on print too 19:14:03 have you actually tried, anmy? 19:14:12 high quality paper too, since ink would otherwise saturate it badly 19:14:16 AnMaster: so does lisppaste(1) work for you? 19:14:27 ehird, oh *tests* 19:14:34 AnMaster: make sure to set LISPPASTE_USER 19:14:41 probably want to do that in .profile or whatever 19:15:57 hm it does 19:16:12 ehird, did you see http://common-lisp.net/project/lisppaste/xml-rpc.html btw? 19:16:19 yes 19:16:24 but xml-rpc is a hideous protocol 19:16:28 and I'd have to escape XML 19:16:33 well ok good point 19:18:32 ehird, why do you use curl? 19:18:39 bash has tcp support... 19:18:47 :| 19:18:50 ehird, ;P 19:18:53 I could also fucking write it in dd/sh but I won't :P 19:19:04 (dd/sh = use only shell builtins and dd) 19:19:18 how would you open network connection then? 19:19:21 /dev/tcp 19:19:26 -!- ais523 has joined. 19:19:27 err, that is a bash extension 19:19:30 hi ais523 19:19:32 ehird, ^ 19:19:34 AnMaster: it's a shell builtin 19:19:35 http://select.intercal.org.uk/dd.sh/ 19:19:50 /dev/tcp is a bash extension afaik? 19:19:56 * AnMaster looks 19:19:58 yes 19:20:01 but it's a BASH builtin 19:20:05 well true 19:20:10 how can a file be a builtin? 19:20:14 but that is dd/bash, not dd/sh 19:20:19 whatever :P 19:20:20 ais523, indeed it isn't 19:20:24 ais523: uh, dd.sh uses files 19:20:28 it's just the commands that are restricted 19:20:31 but I decided to ignore it to avoid confusion 19:20:33 also hi ais523 19:20:40 ais523: today I compiled a TECO port for unix 19:20:45 it's actually quite usable 19:20:57 well, it was the main editor around for ages 19:21:00 ais523, and I wrote 99 bottles of valgrind 19:21:02 so I wouldn't expect it to be unusual 19:21:03 well it isn't perfect yet 19:21:07 AnMaster: what, how? 19:21:15 *unusable 19:21:17 ais523, not the actual song lyrics exactly 19:21:21 ehird: are you using it as an interactive or batch editor? 19:21:25 ais523, but a joke on it 19:21:28 ais523: interactive 19:21:35 the commands are basically like ed 19:21:36 except more intuitive 19:21:38 there, I said it 19:21:38 ais523, http://www.nopaste.com/p/a1S6eQHnp 19:21:41 TECO is easier than ed. 19:22:10 ais523, I plan to avoid the _ thing by doing something like: $(for i in {0..99};do echo -n | cpp -traditional -Da$i="r($i)a$((i+1))"; done | sed '^/|//') 19:22:13 well not exactly 19:22:15 but similar 19:22:34 ehird: sounds great 19:22:34 need quoting 19:22:39 maybe I should learn it 19:22:42 ais523: here, I'll give you a transcript URL 19:23:02 ais523: http://pastie.org/private/xstfyhfbfciqpr6yqkuhvw 19:23:06 nopaste.com? 19:23:09 note that at one point, I get a * prompt in the middle of the line 19:23:10 ais523, anyway what do you think of that program? 19:23:11 ... 19:23:33 AnMaster: it's a memory-leak 99 bottles of beer? 19:23:44 ais523, it is safe to run. I assume you have valgrind 19:23:48 couldn't you use a loop? writing all 99 bottles by hand is cheating 19:23:51 yes, I have valgrind 19:23:55 ais523, yes I plan to loop 19:23:59 ais523, in cpp 19:24:03 but I've only just sat down and already people are trying to make me do everything at once 19:24:11 I can't call same function, valgrind merges backtraces 19:24:15 look at mine first, it's cooler ;-) 19:24:18 so it can't work without 99 different functions 19:24:24 AnMaster: what if you call it from 99 different contexts? 19:24:29 ais523: btw, $ there is how is printed 19:24:38 two escapes terminate a line 19:24:38 valgrind doesn't merge different callstacks 19:24:39 ais523, hm. That would still need 99 code paths right? 19:24:42 one escape terminates a variadic command (like insert (I)) 19:24:45 which would be about same 19:25:00 AnMaster: 99 codepaths you can do with just 2 functions 19:25:08 if those functions are both directly recursive and mutually recursive 19:25:22 although you'd need to increase the context depth a bit in valgrind 19:25:23 ais523, err valgrind *does* merging between 8 calls backwards 19:25:24 iirc 19:25:34 even if not exactly the same 19:25:45 AnMaster: you can choose the number of stack entries that have to match 19:25:46 hm 19:25:49 ais523, ah yes true 19:25:55 that could work 19:25:55 besides, 99 < 2 to the power 7 19:26:07 -!- kar8nga has joined. 19:26:26 hm 19:26:38 ehird: what does newline do in TECO, by the way? 19:26:45 ais523, how would that work out... *thinks* 19:26:48 I know that all the unprintable characters do something 19:26:49 ais523: it's not interpreted specially, so it just keeps waiting for input 19:26:50 but not what 19:26:52 you can do: 19:26:55 Ihello, 19:26:56 world!$$ 19:27:00 to insert multiple lines 19:27:02 oh you mean aaab, aaba and so on? 19:27:05 it's just like ed, really 19:27:14 AnMaster: yes, what else 19:27:31 ais523, well right, need to work out how to figure out what to call when 19:27:31 hm 19:27:32 ehird: I think TECO's a worthy ancestor to both Emacs and vi 19:27:36 ed was clearly inspired by it 19:27:41 and vi descended from ed 19:27:42 you would have to do some modulo tricks 19:27:43 or such 19:27:48 whereas Emacs was originally written in TECO 19:27:49 vi was descended from ex 19:27:53 which was descended from ed 19:27:53 oh, yes 19:27:55 though I'm not sure 19:27:56 sorry 19:28:16 [ehird:~/Junk] % teco 19:28:16 *Elliott Hird$$ 19:28:18 ?NYI Not yet implemented 19:28:23 I am not yet implemented :( 19:28:27 hehe 19:28:34 that implementation needs work? 19:28:44 no, it just isn't 100% complete :P 19:29:11 finding out what your name does in TECO used to be a common thing for people to figure out 19:29:13 * oklopol has a course in mathematica 19:29:17 NOOOOOO! 19:29:25 ais523, yes but running and checking is cheating 19:29:27 * ais523 screams receding into the distance 19:29:29 you need to work it out *first* 19:29:30 hahaha 19:29:32 ais523, what? 19:29:39 AnMaster: can you notice messages, please? 19:29:43 AnMaster: in reply to oklopol 19:29:43 18:29 oklopol has a course in mathematica 19:29:47 yes 19:29:47 and? 19:29:51 ais523: also you copied that from wikipedia 19:29:58 what, me doing that? 19:29:59 AnMaster: ais523, wolfram prize, mathematica, hates, memory working yet? 19:30:04 ais523: no, the TECO name thing 19:30:11 ah 19:30:12 right 19:30:14 I think I've seen it before, possibly in the jargon file 19:30:21 ehird, still the reaction seems like a strange joke 19:30:33 oh, you don't even have to use uppercase with teco 19:30:38 it's case insensitive 19:31:17 how boring 19:32:01 ok, that's crazy: it reacts to all the control codes, but doesn't distinguish lowercase/uppercase? 19:32:05 oh, I just realised why 19:32:06 and, of course, most ASCII does nothing since TECO had a more restrictive character set 19:32:14 TECO was probably invented before lowercase on computers was 19:32:19 PDP-10 19:32:30 "It is literally the case that every string of characters is a valid TECO program" 19:32:32 Yeah, um, no. 19:32:38 Case in point: I get errors. 19:32:55 ''Initially, if I remember correctly, EMACS was Eugene Ciccarelli's init file which made use of MIT TECO's ^R mode ("Realtime") that repainted the screen. RMS started hacking on it around '76 I think and it kind of, um, grew." 19:33:01 Ha, rms didn't start emacs. 19:33:17 oh? 19:33:29 ehird: no, I don't think so 19:33:33 GNU Emacs was only one implementation 19:33:42 errrr 19:33:46 it was the first. 19:33:49 it was originally just EMACS 19:34:00 i was just saying that he originally forked it from someone else's init file :D 19:34:20 there were others, I even came across a rather primitive one years ago, for DOS 19:34:20 elisp is specific to GNU Emacs and its derivatives, though I think 19:34:30 for DOS? 19:34:33 that's recent 19:34:35 we're talking the 70s 19:34:40 I don't think you understand what I am saying 19:34:41 ais523, about finding out which order to call, what would be the best way? I'm thinking of some sort of depth counter combined with the number counter 19:34:58 common knowledge: RMS started emacs. Funny anecdote: It was originally a fork of someone else's init file. 19:35:37 AnMaster: just use a decrementing int 19:35:40 and check its bit pattern 19:35:49 or, you don't even need to do that 19:36:00 void a() {a(); b();} 19:36:04 void b() {b(); a();} 19:36:13 insert parameters and some bottoming-out condition to taste 19:36:13 well that would mean 99 calls 19:36:25 wait no 19:36:42 a depth of half each? 19:40:49 -!- KingOfKarlsruhe has quit (Remote closed the connection). 19:45:08 mymacro=$(a=$(for i in {1..99};do echo -n "|cpp -P -traditional -Da$i=\"r($i)a$((i+1))\" - "; done | sed 's/|//'); echo "a1" | eval "$a" | tail -n1); echo $mymacro 19:45:17 ais523, I think that is a much more promising way 19:45:23 that's cheating, though 19:45:30 you might as well just echo out valgrind's output 19:45:35 ehird, depends on what language you declare it is in? 19:46:08 it generates the macro expansion in question 19:46:18 but of course, a recursive variant is another one 19:50:19 ais523: Oh, and here's a program that done paste stuff. http://paste.lisp.org/display/76773 19:50:33 (Tip: export LISPPASTE_USER.) 19:50:48 And yes, those cases look like ocaml. 19:51:27 ehird: ah, an autopaste script 19:51:30 I know you said that 19:51:38 but wasn't quite sure, given that you mentioned a pastebin later on the line 19:51:40 AnMaster refused to use another pastebin with one, so. :P 19:51:49 er 19:51:51 whether you were referring to that it did pasting, or that you were pasting 19:51:55 mm 19:51:56 Swith$Iout$$ 19:52:12 (oh god help I'm a teco user) 19:52:12 argh 19:52:46 wow, that's shorter than the corresponding regex 19:52:47 ehird, I bet almost no one will understand the teco implication 19:52:52 s/with/\&out/ 19:53:04 also... it looks quite similar to sed 19:53:17 indeed 19:53:43 ehird, so what if you want a literal I there? 19:53:49 you put one in. 19:53:55 $ () is the command terminator 19:53:55 how would that look? 19:54:05 AnMaster: Swith$IouIt$$ 19:54:09 err 19:54:16 commands like S and I take up to the next 19:54:18 would that be same as: s/with/Iout/ 19:54:19 ? 19:54:22 ouIt. 19:54:29 S and I are commands, they read along until 19:54:31 well what if I want that line 19:54:34 Swith$IouIt$$ 19:54:35 is 19:54:41 S(with); I(ouIt); 19:54:50 so then: 19:54:52 AnMaster: I don't know how you put an escape in 19:54:57 Swith$IIout$$ 19:54:57 ? 19:54:59 AnMaster: I don't know how you put an escape in 19:54:59 AnMaster: I don't know how you put an escape in 19:55:03 would that work 19:55:11 oh 19:55:12 yes 19:55:14 why wouldn't it? 19:55:18 no idea 19:55:20 as soon as you hit an I it reads until 19:55:21 I don't know teco 19:55:29 yes but I just told you 19:55:31 AnMaster: it's a bit like Lua 19:55:33 multiple times 19:55:36 in that Lua starts blocks lots of different ways 19:55:38 ais523: what no it isn't 19:55:39 and ends them all with end 19:55:42 well 19:55:43 kind of... 19:55:50 TECO's the same, it starts commands with lots of different chars, but all end with 19:55:58 actually, no 19:56:03 only commands that take text input 19:56:05 for instance, 19:56:05 well, ok 19:56:05 ehird, so the $ means an escape. So when you write it in a teco script is it $ or ? 19:56:09 -5DIhello$$ 19:56:13 AnMaster: it's and echos as $ 19:56:18 D takes -5 *before* it 19:56:23 meaning 'delete the previous 5 characters' 19:56:27 echoing as a literal escape character would be confusing for your terminal 19:56:28 ah 19:56:35 yeah, you input as 19:56:35 ehird: very vi 19:56:47 ehird, what if you want to edit a teco script? replacing in it? 19:56:47 ais523: you can even do 19:56:47 :D 19:56:48 although actually, all the teco-inspired editors retained that feature in some form 19:56:52 *-5$$ 19:56:54 *D$$ 19:56:58 i think it has a stack 19:57:02 -!- MigoMipo_ has joined. 19:57:06 ehird: TECO is not only TC 19:57:10 but /deliberately/ TC 19:57:10 ais523, emacs does \e right? 19:57:12 actually no 19:57:16 it doesn't work like that 19:57:18 AnMaster: err? 19:57:19 you have to put it right before 19:57:26 literal escape in emacs is C-q ESC 19:57:27 ais523, for escapes 19:57:31 in the file 19:57:42 * AnMaster checks 19:57:45 and it appears as ^] in the file 19:57:51 in red, rather than the usual colour, if you have colour on 19:57:57 well 19:57:58 * ^[ 19:58:01 I can't copy paste from emacs 19:58:05 it does something strange 19:58:10 with the escapes 19:58:27 anyway I see ^?ELF^B ..... ^@\250 and such 19:58:34 so I guess it does both ^ and \ 19:58:44 to escape non-printable 19:58:48 yes, \ is for characters with codes over 126 19:59:02 File Edit Options Buffers Tools Help 19:59:04 ^[abc 19:59:10 that's a literal esc at the start of the line 19:59:15 ais523: Here's the TECO I use: http://almy.us/teco.html 19:59:26 You need the linux version, not the unix one 19:59:38 -!- tombom has quit ("Peace and Protection 4.22.2"). 19:59:42 interesting, there isn't normally that much of a difference 19:59:45 copy tecoc, teco, Make, and inspect into your PATH 19:59:51 and then you can start it with 'teco' 19:59:58 ehird: no make install script? 20:00:01 nope 20:00:08 also, teco/Make/inspect are symlinks 20:00:08 to tecoc 20:00:13 tip: to exit, try "EX$$" 20:00:24 why does the it need a special linux version? 20:00:33 AnMaster: the UNIX is for old unixes 20:00:35 ah 20:00:38 AnMaster: many old UNIX programs needed changing when ported to Linux 20:00:38 Urix or something 20:00:46 so you use linux one on macosx? 20:00:49 yacc vs. bison is one of the most common sticking points 20:00:54 no 20:00:56 you use the os x one on os x 20:01:04 although don't copy over Make since HFS+ is case insensitive 20:01:09 (use 'tecoc make') 20:01:14 ehird: what do you use on OS9? 20:01:16 ais523, err I have yacc, byacc and bison 20:01:19 you don't 20:01:26 $ /usr/bin/yacc --version 20:01:26 usage: /usr/bin/yacc [-dlrtv] [-b file_prefix] [-p symbol_prefix] filename 20:01:31 AnMaster: yacc is still bison in yacc compatibility mode 20:01:32 ais523: this one is so old all the filenames are INUPPERCASE.C 20:01:34 $ /usr/bin/yacc.bison --version 20:01:34 bison (GNU Bison) 2.3 20:01:36 on most linux systems 20:01:37 why then that 20:01:43 explain those two lines 20:01:55 although it's possible you have a genuine old copy of yacc lying around somewhere 20:01:56 10-Dec-1987 version 100 20:01:56 baseline version as of Fall Decus Symposium, Anaheim 20:01:59 heh 20:02:05 ehird: are they really C++? that would be so great if they disguised the extension like that 20:02:05 it's a modern port to portable C, and yet it's still ancient 20:02:09 haha 20:02:10 no 20:02:21 ais523, dev-util/yacc is from http://dinosaur.compilertools.net/#yacc installed as a dependency of something 20:02:27 * AnMaster follows url 20:02:39 hm 20:02:42 AnMaster: dinosaur.compilertools sounds like a good description for original yacc 20:02:44 and no download there, huh 20:02:59 HOMEPAGE="http://dinosaur.compilertools.net/#yacc" 20:02:59 SRC_URI="ftp://metalab.unc.edu/pub/Linux/devel/compiler-tools/${P}.tar.Z" 20:03:00 C-INTERCAL build used to fail on SunOS because it needed directives to tell lex to increase the size of its internal buffers 20:03:02 well 20:03:04 I don't know 20:03:07 it isn't bison anyway 20:03:30 all I was saying was, on most linux systems with a program called yacc, it's a wrapper around bison 20:03:36 yours just happens to be different 20:03:38 ${P} is replaced with yacc-1.9.1 20:03:55 ais523, yeah that wrapper is /usr/bin/yacc.bison 20:04:07 $ yacc --help 20:04:09 GNU bison generates parsers for LALR(1) grammars. 20:04:11 ais523, err I have yacc, byacc and bison 20:04:11 you don't 20:04:15 ... 20:04:16 well ehird thought I didn't 20:04:22 no i didn't 20:04:31 what were you replying to then? 20:04:34 $ file /etc/alternatives/yacc 20:04:35 can you upgrade your freaking brain firmware, it runs on DOS and is unable to multithread conversations 20:04:35 /etc/alternatives/yacc: symbolic link to `/usr/bin/bison.yacc' 20:04:40 $ file /usr/bin/yacc 20:04:41 /usr/bin/yacc: symbolic link to `/etc/alternatives/yacc' 20:04:55 19:01 ais523: ehird: what do you use on OS9? 20:04:55 19:01 AnMaster: ais523, err I have yacc, byacc and bison 20:04:57 19:01 ehird: you don't 20:05:00 as I was talking about teco at the time 20:05:03 what the heck do you think? 20:05:04 ehird: what do you use on OS9? you don't 20:05:06 right 20:05:11 that makes even less sense 20:05:15 *shrug* 20:05:20 well, yacc seems to be in debian alternatives 20:05:25 There are two types of arguments: numeric arguments, and text arguments. Numeric arguments come before the command; text arguments come after the command. 20:05:26 ais523, interesting 20:05:28 that makes sense 20:05:29 which implies strongly to me that debian have a non-bison yacc in the repos somewhere 20:06:00 AnMaster: Alternatively (and easier to read), if the command is prefixed by an "@" character, then the first character after the command is the delimiter, and the string will continue until the next instance of that character. 20:06:01 ais523, what about byacc? 20:06:03 I/hello world/ 20:06:08 err 20:06:10 @I/hello world/ 20:06:16 AnMaster: ah, that appears to be BSD yacc 20:06:17 heh 20:06:24 * ais523 just did apt-cache search yacc | grep yacc 20:06:29 http://dickey.his.com/byacc/byacc.html 20:06:31 I have that too 20:06:34 * ais523 makes it case-insensitive just in case 20:07:03 dev-util/btyacc - http://www.siber.com/btyacc - Backtracking YACC - modified from Berkeley YACC 20:07:04 wth? 20:07:06 @eb"hello.c" <- practically modern. 20:07:09 masked on amd64 20:07:12 AnMaster: what do you mean wth? 20:07:15 it's yacc that can backtrack 20:07:17 when parsing 20:07:35 well, yeah, but that is crazy 20:07:40 no it's not? 20:07:54 First, you can use them as variables: each Q-register stores a string and an integer. Second, any string stored in a Q-register can be used as a subroutine; in fact, that's the only way to create a subroutine. 20:07:57 perl, is that you? 20:07:59 ehird: actually, original yacc never backtracks 20:08:04 exactly 20:08:07 bison doesn't either 20:08:12 'yacc that can backtrack' = modified yacc 20:08:15 it can handle general grammars, but it does that a different way 20:08:19 hellooooo 20:08:25 well why would you want a backtracking yacc... 20:08:29 that is my question 20:08:29 ehird: yes, I noticed, your sentence was ambiguous 20:08:35 AnMaster: because you have a nondeterministic grammar to process? 20:08:54 ais523, ok. Like intercal right? 20:08:59 yep 20:09:06 ais523, any other such languages? 20:09:19 regular INTERCAL can just about be handled by regular yacc, but only due to a restriction in the INTERCAL-72 standard specifically to make that possible 20:09:29 yes I know 20:09:30 and C++ and Perl both have similar parsing problems 20:09:35 really? 20:09:40 how comes? 20:09:44 well perl has BEGIN 20:09:47 but what about C++? 20:09:53 whoa, I hung teco 20:10:04 AnMaster: I found a really diabolical line of C++ in the FQA, let me dig it up 20:10:06 AnMaster: parsing C++ is turing complete 20:10:09 due to templates 20:10:10 being TC 20:10:20 *^UZIhello$$ 20:10:20 *MZ$$ 20:10:21 20:10:32 ehird: no, that proves compilation is turing complete, not parsing 20:10:39 no, it's parsing 20:10:41 due to typename stuff 20:10:42 as it happens, though, the compilation can affect the parsing, making it turing complete too 20:10:44 agreed 20:10:47 a template can make something a typename that wasn't 20:10:50 that parsing is TC, but you didn't explain the reason 20:10:52 so it IS due to templates 20:11:04 int x = confusing::q < 3 > (2); 20:11:11 exactly 20:11:19 that can actually parse differently depending on the return of sizeof, with appropriate definitions 20:11:27 err, iirc you have to use "typename" in front in ambiguous situations 20:11:36 ? 20:11:44 see http://yosefk.com/c++fqa/web-vs-c++.html for the full program 20:11:51 * AnMaster looks 20:12:18 cool, TECO has as an insertion command 20:12:21 that's like I but puts a tab in front 20:12:21 so 20:12:27 *Iint main(void) {$$ 20:12:37 * printf("Hello, world!\n"); 20:12:40 err 20:12:41 $$ 20:12:46 * return 0;$$ 20:12:49 *I}$$ 20:12:50 fun 20:13:07 ehird: does it autoindent? 20:13:12 no :P 20:13:17 -!- MigoMipo has quit (Connection timed out). 20:13:23 it's TC, shouldn't be too hard to implement 20:14:05 How to write a TECO hello world, with TECO: 20:14:07 % tecoc make hello.tec 20:14:07 *I^AHello, world! 20:14:09 ^A$$ 20:14:11 *EX$$ 20:14:20 what does tecoc do? 20:14:28 teco compiler? 20:14:30 ais523: teco-c is the implementation 20:14:34 ah 20:14:35 teco and inspect are linked to it 20:14:36 and also Make 20:14:36 oh well 20:14:39 but HFS+ is case insensitive 20:14:42 so I can't use that symlink 20:14:48 (because of, y'know, make(1)) 20:14:52 so I have to invoke the implementation directly. 20:14:56 ehird: HFS+ is optionally case-sensitive 20:14:59 I think it's configurable 20:15:03 yes, but that breaks things and I'd have to reformat 20:15:09 plus I like it this way 20:15:13 no idea how much chaos it would caused if you changed the configuration param while there were files on it 20:15:43 ehird: I like the description of the mac os x version of teco 20:15:50 it looks like it was aimed at you in particular 20:16:20 :D 20:16:21 % tecoc make 42hello.tec 20:16:22 *42 ^A$>EX$$ 20:16:32 Makes a teco program that prints "Hello, world!\n". 42 times. 20:16:49 ehird, teco quine without opening the script to read from? 20:16:59 I shall pass. 20:17:02 aww 20:17:23 -!- MigoMipo_ has changed nick to MigoMipo. 20:17:39 so, to explain my 42 program: 20:17:43 btw, ^A is a literal ^A 20:17:44 anyway 20:17:49 ^Afoo^A outputs foo 20:17:57 number<...> executes ... number times 20:18:00 EX exits 20:18:04 and, of course, I inserts up to escape 20:18:05 so it's 20:18:18 42 times { insert "^AHello, world!\n^A" }; exit 20:19:03 it's a pretty good esolang, actually 20:19:08 the concept of a text editor is a fun one to base an esolang around 20:19:40 Mackerel Economics in Prison Leads to Appreciation for Oily Fillets 20:19:42 http://online.wsj.com/article/SB122290720439096481.html 20:19:45 (injoke) 20:20:48 oh, also 20:20:55 if you start teco after editing a file and quitting? 20:20:58 it starts editing it again 20:21:01 I think it sees the backup file 20:21:06 wait, no 20:21:10 % cat teco9054.tmp 20:21:10 42hello.tec 20:22:42 sooo 20:22:43 hi 20:24:31 AnMaster: ais523: ping 20:24:37 AnMaster: ehird: pong 20:24:58 ? 20:25:10 ehird, NACK 20:26:08 *NAK 20:26:17 if you're going to do that old joke, at least get it right... 20:26:27 ais523, I wasn't following any standard 20:26:41 April fool's day prank on programmer: Mess up internet connection configuration. Remove GUI configurators for it. Symlink all editors to teco. 20:27:28 http://www.df.lth.se/~lft/vim/hanoi 20:27:30 Towers of Vim. 20:27:35 http://www.df.lth.se/~lft/vim/mandelbrot 20:27:38 Mandelvim 20:27:38 ehird: what, you'd have to uninstall bash too 20:27:52 besides, my GUI configurator is also the program that does the actual connection 20:27:54 ais523: Eh, just remove cat and echo. 20:28:06 Hm, wait. 20:28:08 .se... oh my 20:28:12 ehird: echo's a shell builtin, and bash has cat as a builtin too but with different syntax 20:28:12 cp file /dev/stdout 20:28:21 ais523: Make teco their login shell. 20:28:36 AnMaster: it's the guy who wrote life.b 20:28:37 ehird: I'd go into single user mode from the bootloader if you tried that 20:28:43 ehird, I see 20:28:51 and also wonder how you got access to my computer 20:28:56 ais523: yes, april fool's jokes are reversible if you're a sourpuss, zomg, how revolutionary 20:28:58 * 20:29:25 Ihello, world!$0T$$ 20:29:29 ... reflex... 20:29:35 sorry 20:29:38 that * was a correction star 20:29:42 yes, I know 20:29:43 but I was trying to delete an excess space 20:29:43 for the extra space 20:29:50 so nothing else showed up 20:30:36 April fool's day prank on programmer: Mess up internet connection configuration. Remove GUI configurators for it. Symlink all editors to teco. <-- what gui configurator? 20:30:55 God, you people suck. 20:31:03 ehird, what do you mean? 20:31:21 ehird: seriously, though, given that for internet connection my configurator is the same program that actually handles the connection 20:31:38 then removing the configurator would mean that restoring the connection file by hand wouldn't help me 20:31:40 AnMaster: yes, ha ha, you are 1337 and do not have any programs that let you graphically configure your internet 20:31:41 ais523, what is that program? 20:31:44 you are such an awesome linux user 20:31:48 so elite 20:31:50 AnMaster: nm-applet 20:31:51 u ownz b0xes 20:31:57 well, knetworkmanager atm 20:32:04 ehird, I just use config_eth0=( "dhcp" ) 20:32:05 that's all 20:32:06 :P 20:32:16 -!- Hiato has quit ("Leaving."). 20:32:17 nm-applet's broken for the specific sort of wireless the university has 20:32:30 and it's already been fixed in trunk, but for some reason they haven't sent out an update with the fixed version 20:32:37 so I use knetworkmanager even on gnome atm 20:32:43 ehird, on my freebsd server it is more complex, it has a block of 8 statical IPs 20:32:49 don't care 20:33:24 anyway 1) using a GUI configurator on a server in a datacenter is just silly 20:33:34 2) at home I just use dhcp 20:33:38 AnMaster: you have a /29? 20:33:39 don't care, don't care, don't care 20:33:55 ais523, err probably, too lazy to calculate 20:34:38 what is it with ehird when he realises how silly his comment was... 20:34:46 what? 20:34:51 I mean, I have seen this "don't care" pattern before 20:34:54 in similar cases 20:35:16 ais523, surely you agree not using any GUI is sane on a remote server that you only have ssh access to? 20:35:21 no, it's just you made a shitty joke in response, i responded to it pointing out how shitty and old it was, then you went and blabbed on about your network which i honestly couldn't care less about if I possibly tried 20:35:31 well I could get kvm access... $20 / 12 hours 20:35:42 ehird: but would you try, for me? 20:35:55 oklopol: maybe. 20:36:01 ehird, I wasn't making a joke 20:36:03 ..................................... 20:36:20 congrats, you found the . key 20:36:26 by the way, ellipses have 3 .s 20:36:43 ehird, well, and? 20:36:57 only if you have a really small ellipse and a crappy ellipse algo 20:37:34 oklopol, and using eclipse to write it 20:37:45 "Perl is written in C, so when the parser has figured out what you want to do, you're executing compiled code as fast as any C program. " 20:37:50 Um. 20:37:57 ehird, that was silly 20:37:58 who wrote that? 20:38:01 where was that quote from? 20:38:06 and did they have any clue how Perl works? 20:38:07 "samizdat" on perlmonks.org 20:38:08 what is this now?!? 20:38:26 Perl's implemented internally as a bytecode compiler 20:38:27 sounds familiar 20:38:58 now where is that dd.sh page 20:40:22 ehird, isn't it dd/sh? 20:40:41 http://select.intercal.org.uk/dd.sh/ "dd/sh: The One True Programming Language" 20:40:42 maybe 20:41:52 hmm 20:42:01 I wonder if you can do 'stty raw' with /dev of some sort 20:43:59 Mackerel Economics in Prison Leads to Appreciation for Oily Fillets http://online.wsj.com/article/SB122290720439096481.html (injoke) <-- yes obviously, so what is the context. The joke makes no sense to me 20:44:10 AnMaster: it wouldn't, it's an injoke 20:44:11 if I told you it would not be an injoke. 20:44:20 therefore I won't tell you 20:44:26 ais523, you understand it? 20:44:33 he does 20:44:53 AnMaster: you seem to be missing the fundamental nature of injokes, look it up 20:44:55 hmm, `stty raw` uses ioctl, doesn't it? 20:45:20 ais523, indeed. But I assumed ehird got the joke since he pasted it 20:45:44 * ais523 facepalms 20:45:49 and I don't facepalm very often 20:46:03 or was be commenting on the fact that it was an injoke he didn't understand? 20:46:22 ... 20:46:28 ais523: i'd give up round about now 20:47:36 -!- Slereah_ has joined. 20:47:39 well, I fail to see why you wouldn't want to *explain* a injoke that you do understand. Since you pasted it in the public channel 20:48:06 AnMaster: if it were explained, it wouldn't be an injoke 20:48:19 and why would that be a huge loss? 20:48:31 ... 20:48:39 * ehird facepalm 20:49:06 now you are just being unreasonable... 20:53:01 * ehird is writing a TECO clone in dd/sh 20:53:10 if you run it under bash, you can use /dev/tcp to use it as a kind of netcat :D 20:53:22 or, wait 20:53:26 you can't use dd with /dev/tcp presumably 20:53:28 how do you specify the port number using /dev/tcp? 20:53:28 only pipes... 20:53:33 /dev/tcp/host/port 20:53:39 clever 20:54:00 anyway, it's not quite dd/sh 20:54:00 save_state=$(stty -g) 20:54:01 stty raw 20:54:02 reset_tty() { stty "$save_state" } 20:54:05 3 non-dd/sh lines 20:54:12 you could run it without them, just need to hit newline a lot 20:54:18 and you'd see your input twice 20:55:10 If you just want dd output into /dev/tcp, you can obviously just omit the of= and > it in. 20:55:23 hmm 20:55:27 is of=x always equiv. to >x? 20:55:39 Well, not if x is /dev/tcp. 20:55:43 :D 20:55:55 it could be pretty different if x were /dev/tty, too 20:56:41 agh you have to assign it first 20:56:46 exec 3<>/dev/tcp/... 20:56:50 instead of using it as a file multi times 20:56:50 :< 20:57:03 -!- Slereah has quit (Read error: 110 (Connection timed out)). 20:59:26 what? what's dd/sh? 20:59:32 A language using dd and sh? 20:59:34 yes, what else? 20:59:53 to be precise, it's the language created when you use sh and the only other program it's allowed to invoke is dd 21:00:08 ...The first person to make a miniature linux distro for dd/sh wins a copy of AsieCrypt, the only encrypter of images that can turn completely logical pictures into random gibberish and STILL decode it! 21:00:15 no. 21:00:16 Maybe I will be the first person 21:00:18 I would be... 21:00:18 and, I suppose, itself recursively, but you never need to do that 21:00:22 for one, that's not even possible 21:00:27 for two, it's uninteresting 21:00:33 for three, the prize is crap. 21:00:34 ...if I had installed Linux 21:00:44 ehird: I suspect Debian webinstall plus dd would be enough to run arbitrary dd/sh programs 21:00:46 for one, there are many Linux-on-a-floppy distros 21:00:53 ais523: he meant a linux distro with just kernel+dd/sh 21:00:58 and some drivers 21:00:59 which is patently useless 21:01:00 for what it's worth, you could even do that with Debian webinstall without the package manager, there's hardly anything in that 21:01:16 for two, yes it is possible (AsieCrypt), it's just shifted colors and good ole VideoCrypt 21:01:19 ehird: I wouldn't call it completely useless, although admittedly not particularly useful 21:01:23 for three, the prize is crap, I admit 21:03:10 well 21:03:26 hmm 21:03:46 I think dd/sh would be turing complete pretty easily considering sh's capabilities 21:03:51 it is 21:03:53 sh is turing complete 21:03:58 good point 21:03:58 but you need dd for non-trivial IO 21:04:03 and there is a turing machine for dd/sh 21:04:04 brainfuck style IO can be done with just sh 21:04:14 so you can trivially write brainfuck in sh 21:04:19 but for file IO, etc, you need dd 21:04:20 hm wait 21:04:22 not trivially 21:04:25 you couldn't do substrings with sh 21:04:30 ok, you do need dd for IO then 21:04:32 but sh is tc 21:04:39 tcsh? 21:04:42 you don't need I/O for TC 21:04:47 see what I did there 21:04:49 :u 21:04:50 asiekierk: that's what i just SAID. 21:05:06 you could do substrings with sh 21:05:07 just not easily 21:05:13 how 21:05:18 dunno 21:07:06 where is a reference for what standard sh allows? 21:07:21 help 21:07:22 in bash 21:07:26 no 21:07:27 gives you a full list 21:07:32 bash has extras 21:07:40 true. 21:07:56 e.g. read -n 1 21:08:16 heh, that would actually remove the need for my stty stuff 21:08:41 comex: see if you can find a copy of POSIX floating aroung 21:08:43 *around 21:08:54 IIRC, man for most shells will explain the differences from standard sh in a portability section 21:09:17 so you can deduce the sh standard from that 21:11:29 I'm not sure it's possible in just sh to do substrings 21:11:33 ais523: do you know a way? 21:11:39 also, ehird: ass 21:11:43 what? 21:11:48 oh, AFO. 21:12:17 lol wut, "echo -n foo" is echoing "-n foo\n" 21:13:06 l 21:14:46 http://i.gizmodo.com/5167465/get-200-itunes-store-vouchers-for-260 21:14:51 that is pretty cool. 21:15:17 now... where's the code :D 21:16:53 -!- BeholdMyGlory_ has joined. 21:17:30 -!- BeholdMyGlory has quit (Nick collision from services.). 21:17:35 -!- BeholdMyGlory_ has changed nick to BeholdMyGlory. 21:17:45 * A Pentium emulator (just for the fun of it - with that you don't actually need the perl5 interpreter as you can install Linux under the emulator and ruin perl from it; of course, that would also run sh and dd, therefore allowing any level of emulation). 21:17:47 XD 21:20:25 * To include only dd and sh, I would need to change BusyBox in some way 21:20:43 * And that makes it completely worthless 21:20:52 asiekierk: BusyBox is entirely configurable as-is 21:21:02 as in, I can disable certain commands 21:21:04 I believe it can be configured to only contain dd and sh 21:21:07 or better, remove them at compile-time? 21:21:11 ais523: Well, not only dd and sh 21:21:12 yep, at compile time 21:21:16 since that would be fairly useless 21:21:19 I know, I've done custom busybox builds before 21:21:25 You need SOME commands to maintain it all 21:21:26 cp, mv 21:21:31 pseudoteco.sh: line 26: syntax error: unexpected end of file 21:21:31 why cp? you have dd 21:21:32 wtf ;_; 21:21:43 ais523: at least cd! 21:21:49 unneeded 21:21:51 why 21:21:53 just dd into /proc 21:21:55 asiekierk: cd's a shell builtin 21:22:02 all you need is dd and /proc and you can do anything 21:22:07 and sh 21:22:16 Deewiant: is it actually possible to change the current directory of a process by writing to its /proc? 21:22:26 change its in-memory binary to cd next 21:22:26 duh 21:22:27 I would so love it if it were, although it seems unlikely 21:22:31 BusyBox has way too much commands by default 21:22:40 at least for this purpose 21:22:41 asiekierk: you are missing the point of busybox, then 21:22:45 really, dd is unneeded 21:22:49 all you need is 21:23:05 kitten 21:23:12 in fact 21:23:13 not even that 21:23:15 kitten 21:23:19 ah, no wait 21:23:21 kitten 21:23:26 skips offset bytes of stdin 21:23:30 is kitten an version of cat that only does part of the file? 21:23:31 then copies amount bytes from stdin to stdout 21:23:40 ais523: pretty much, but offset=0 and amount=-1 will copy all 21:23:40 ais523: You know, I just want a distro with dd, sh, and some misc. basic commands 21:23:46 and is it standard, or obscure, or did you just invent the name? 21:23:52 asiekierk: try debian webinstall 21:23:54 i invented it all 21:23:57 indeed. The point of busybox is the point of having a statically linked rescue shell around... Hopefully you will never need it 21:24:04 basically, the rest of dd is unneeded for 100% io facilities 21:24:08 it contains basically nothing but enough tools to make an internet connection, and a package manager 21:24:11 since if/of can be done with pipes, and soforth 21:24:16 then use the package manager to installdd 21:24:20 *install dd 21:24:47 qdd < $1\ 21:24:47 actually, it may have dd already for help in creating swapfiles and that sort of thing 21:24:48 EOF 21:24:51 ais523, hm? doesn't busybox have dd? 21:24:51 is there a syntax error there? 21:24:57 i think it's continuing until EOF 21:25:02 AnMaster: Debian webinstall != busybox 21:25:04 AnMaster: busybox has dd, sh, and a 1000 other commands 21:25:11 ais523, oh right 21:25:14 busybox is for the debian boot floppy, rather than the webinstall 21:25:20 asiekierk, not 1000 21:25:39 but nowadays is mostly used in embedded systems despite being originally intended for debian-on-a-floppy 21:25:52 hm? 21:25:56 webinstall of a distro? 21:26:08 you mean netinstall surely? 21:26:34 ais523, also what does it have to do with debian? afaik it is a separate project 21:27:05 no, it wasn't 21:27:10 I mean netinstall 21:27:15 but historically, busybox was created for debian 21:27:21 really? didn't know 21:27:29 it just found more uses in wider situations than that, that's one of the joys of open source 21:27:48 ais523, for me it is just something that I hope I will never need... 21:27:57 "In one infamous software error, a misplaced minus sign resulted in a fighter jet's control system flipping the aircraft on its back whenever it crossed the equator. In one infamous software error, a misplaced minus sign resulted in a fighter jet's control system flipping the aircraft on its back whenever it crossed the equator." 21:27:59 :-D 21:28:02 oops 21:28:03 what's the UNIX command to remove blank lines from a file, again 21:28:04 copied twice 21:28:14 ais523: well, with dd, that should be possible. 21:28:17 I think th-- 21:28:25 yes, but I mean the normal way 21:28:31 ais523, hm? sed '/^$/d' should work 21:28:34 bash: th--: command not found 21:28:43 AnMaster: yes it does, I thought there was a standard one though 21:28:47 maybe I'm confused 21:28:48 grep -v '^$' 21:28:53 ais523, in that case I didn't know about it 21:28:56 Deewiant, that could work too 21:29:32 Deewiant, wait no it wouldn't in the general case 21:29:44 $ grep -v '^$' /bin/bash 21:29:45 Binary file /bin/bash matches 21:29:46 :P 21:30:11 well, busybox contains 298 commands according to its man page, then 21:30:12 Gah 21:30:18 grep -av '^$' then 21:30:44 Deewiant: fails on a Windows-format text file with \r\n newlines 21:30:52 Really? O_o 21:30:54 yes, I know me and AnMaster have just made contradictory demands on you 21:30:56 That's... sad 21:30:58 hm 21:31:10 actually, maybe not 21:31:15 hmmm grep . 21:31:15 it probably wouldn't on Windows, but would on UNIX 21:31:16 does the sed command work on \r\n? 21:31:25 again probably not on unix 21:31:32 well ok 21:31:33 that's what i do if i want to remove empty lines 21:31:39 jix_: that's clever 21:31:44 anyway. \r\n isn't an empty line 21:31:51 so sed/grep are correct 21:31:51 I have a literal ^M in my file :D 21:31:53 :P 21:31:56 qdd < afk 21:31:56 $1 21:31:58 EOF 21:31:58 AnMaster: it certainly can be, it depends on the file format 21:32:02 ^ way to do that without a newlnie? 21:32:04 $1\ 21:32:05 doesn't work 21:32:13 on some operating systems, "000" can be an empty line 21:32:18 grep -avE '^^M?$' then 21:32:25 because IIRC there's an operating system that stored lines of text files length-prefixed 21:32:29 rather than delimited with anything 21:32:50 I believe "there's" is in the wrong tense for said system 21:33:13 well, abbreviation for was 21:33:32 ehird: was it you who kept talking about how length-prefixed was better for strings than null-terminated? 21:33:36 yes 21:33:38 brb -> 21:33:39 <- 21:33:39 but 21:33:41 I agree FWIW 21:33:45 ais523: lines are not the fundamental unit of text 21:33:47 if so, would you say the same argument holds for filesystems? 21:33:49 and if not why not 21:33:50 so it doesn't make sense 21:33:51 brb -> 21:33:56 <- 21:34:00 actually, I agree too I think 21:34:03 ais523: because you'd have to have a bignum file length. 21:34:04 -> 21:42:36 -!- neldoreth has quit (Remote closed the connection). 21:42:41 -!- neldoreth has joined. 21:42:49 who's neldoreth? 21:43:50 who's ais523? 21:44:00 I'm a regular here 21:44:10 I'm a new one (: 21:44:10 neldoreth was asking about Befunge earlier today 21:44:11 invented Underload, Thutu, BackFlip, and a few other esolangs 21:44:25 also maintain C-INTERCAL 21:44:26 Coding something for school, if I understood correctly the few lines I read 21:44:34 And remember them correctly 21:44:50 we learned about c-intercal in the lecture, please 21:45:14 wow, it's rare for lectures to mention intercal 21:45:16 yeah i had a little assignment to do in a esoteric language 21:45:38 i could have chosen between it and brainfuck, befunge or whitespace 21:45:40 if it's any help, run your intercal programs with -byO and use the e command 21:45:51 that'll tell you what the expressions you write actually do 21:45:58 it's amazingly useful if you actually have to use the things 21:46:41 * ais523 notices that most other languages don't need a command to explain what an expression does, apart from C which has cdecl 21:46:51 although that's data types not expressions 21:46:54 thanks for the advice - maybe i will try something out in intercal - but ive chosen befunge for my little program - maybe i will try more when there is more time for it 21:47:04 Whitespace is probably the easiest of those languages to use 21:47:08 intercal's probably the hardest there 21:47:14 befunge is a good one to learn 21:47:18 Just don't write it /in/ Whitespace 21:47:23 [21:45:19] yeah i had a little assignment to do in a esoteric language 21:47:25 ;o 21:47:33 you can learn a lot of programming from befunge, actually 21:47:39 Yeah 21:47:43 Really? 21:47:45 That'd be what I'd go for 21:47:56 Deewiant: RPN and stack-based representations, for one thing 21:48:07 http://pastebin.com/m1aa54e4e this is what ive done, nothing special and it nearly can do nothing (cause i honestly had no idea what to write) 21:48:09 properly understanding how loops work, for another 21:48:22 Yeah, I learned that working with a stack when you can only access the top two elements sucks 21:48:27 neldoreth: that's pretty 21:49:16 :D but nothing more, sensless in every aspect :D 21:49:21 so, that program starts out by inputting a character and comparing it to capital A? 21:49:33 ais523: Not capital 21:49:50 oh, lowercase 21:49:59 for some reason I did 9*9-4*4 not 9*9+4*4 21:50:08 ais523: yeah with a and b or q 21:50:09 and upper and lowercase A differ by 32, obviously 21:50:10 a-9*9-4*4 21:50:28 neldoreth: You still don't handle EOF, I see 21:50:46 i am just quitting with q now, if you type something different you can retype 21:51:03 well, a loop with an exit condition's always nice 21:51:06 If EOF is given that's an infinite loop you've got there 21:51:15 -!- MigoMipo has quit ("QuitIRCServerException: MigoMipo disconnected from IRC Server"). 21:51:27 what does EOF do in befunge-93? 21:51:35 Same as -98, no? 21:51:41 it's a reflection in funge-98, but befunge-93 wasn't as picky IIRC 21:51:48 i dont think that anyone will run this program with a given file via stdin < :] - i dont think anyone will run this program anyway :D 21:51:58 ais523: Seems undefined, actually 21:52:02 but its good for practice anyway 21:52:09 IIRC, many programs assumed it returned -1 21:52:13 so that's probably what the reference interp did 21:52:14 neldoreth: I can type ^D (^Z on DOS/Windows) 21:52:28 AnMaster: it certainly can be, it depends on the file format <-- yes, some are broken 21:52:31 ais523, and 21:52:38 grep and sed operate on *text* files 21:52:45 no one said they made sense for binary files 21:52:54 ah ok 21:53:00 ^ way to do that without a newlnie? <-- depends. If bash yes 21:53:17 qdd <<< "$1" 21:53:19 maybe? 21:53:19 or 21:53:24 qdd <<< "$1"$'\n' 21:53:29 depends on what you want 21:53:30 neldoreth: anyway, not even befunge, obfuscated befunge 21:53:49 I think fungot can run funge one-liners, but only fizzie can submit them because it's written in funge itself and the programs might escape 21:53:50 ais523: i'm not stupid, just not the only barrier, if it had arithmetic, it might be -1 too. 21:54:20 Why doesn't it use = or something for them? 21:54:31 yeah we crossed obfuscated code too like the raytracer you can find on ioccc 21:54:46 you have a great teacher 21:55:03 he is a funny guy though 21:55:12 if so, would you say the same argument holds for filesystems? <-- file systems *does* store length separately. Using in-band data for it would be very silly. 21:55:14 Befunge is no fun unless it's obfuscated or in the shape of something 21:55:16 -!- kar8nga has quit (Remote closed the connection). 21:55:42 AnMaster: I know, I was talking about using length-prefixed lines as a text file format, some filesystems used to do that 21:55:52 Deewiant: Mycology? 21:56:04 * ais523 notices that most other languages don't need a command to explain what an expression does, apart from C which has cdecl <-- C++ would need it... 21:56:05 ais523: Quite obfuscated IMO. 21:56:15 The fun parts are, anyway. ;-) 21:56:22 Whitespace is probably the easiest of those languages to use <-- only with good syntax highlighting 21:56:26 Deewiant: it looks quite readable for a Befunge torture-test 21:56:40 AnMaster: you write Whitespace in a wimpmode first, then compile 21:56:45 ^style 21:56:46 Available: agora alice darwin discworld europarl ff7 fisher ic irc* lovecraft pa speeches ss wp 21:56:46 :\? 21:57:00 neldoreth: by the way, are you submitting your assignment electronically, or printed? 21:57:11 ais523: electronically 21:57:13 ah, pity 21:57:18 with Whitespace, that would have been fun 21:57:19 :-D 21:57:23 :D 21:57:45 Yeah, I learned that working with a stack when you can only access the top two elements sucks <-- variables. You have sizeof(fungecell)*sizeof(fungecell) - program size of them. 21:57:55 AnMaster: That's not working with a stack now is it. 21:58:06 Hrm, major lag ;< 21:58:22 actually, it doesn't suck if you can do things like dip combinators, but befunge-93 is sadly lacking in those 21:58:35 Dip combinators? 21:58:37 in befunge-98, you can use the stack stack to do something similar but it's a bit unwieldy 21:58:53 Deewiant: "run this code on the current stack minus its top element, then put the top element back again" 21:58:58 what does EOF do in befunge-93? Same as -98, no? <-- iirc undef, but I have seen push -1 as one variant... 21:58:59 All of this is assuming you have access to something other than the top two elements of a stack. :-P 21:59:03 dip is a~*^ in Underload 21:59:10 which only has access to the top two elements 21:59:12 AnMaster: Do try and read a few lines ahead before responding. 21:59:19 -!- atrapado has joined. 21:59:27 * AnMaster reaches end 21:59:35 but can use dip tricks to get more 21:59:36 * AnMaster catch up on what was said while he were writing 21:59:41 ais523: dip implies that you can access more than the top two. 21:59:48 no it doesn't 22:00:01 ^ul (a)(b)(c)(SS)a~*^S 22:00:02 ...bad insn! 22:00:02 Yes it does, as it is in itself a mechanism to access more than the top two. 22:00:14 ^ul (a)(b)(c)(SS)~a~*^S 22:00:14 cba 22:00:21 what am I doing wrong? 22:00:30 ^ul (a)(b)(c)(SS)~a*^S 22:00:30 bac 22:00:32 that's better 22:00:45 dip is actually ~a*^ in Underload 22:00:54 Deewiant: well, OK 22:00:59 AnMaster: you write Whitespace in a wimpmode first, then compile <-- oh? 22:01:06 AnMaster: Yes. 22:01:25 -!- olsner has joined. 22:01:27 AnMaster: the whitespace wimpmode in question would presumably list each whitespace /command/ as a separate visible printable character 22:01:29 AnMaster: E.g. http://yagni.com/whitespace/index.html 22:01:34 and compilation is then trivial 22:01:39 AnMaster: That's not working with a stack now is it. <-- true 22:01:46 Or http://www.burghard.info/Code/Whitespace/index.html 22:02:12 gah even more to read up 22:02:13 ... 22:02:50 Deewiant: any way, my point is that dip in Underload can be implemented despite no ability to access stack elements beyond the top two 22:02:58 ais523, ah yes 22:02:59 in only four characters, in fact! 22:03:22 ais523, that is because you can expand the elements 22:03:22 ais523: But where is the top element stored while the code is being run? 22:03:35 Deewiant: in the program 22:03:41 or on the call stack 22:03:44 depending on how you think about it 22:03:46 ais523, you have more than a plain number on your stack 22:03:49 yes 22:03:49 in ul 22:03:59 ais523: So there's an alternate storage location beyond the stack. 22:04:01 now, you could do something similar in bignum Befunge if you had a mingle operator 22:04:11 In this case, another stack. 22:04:19 Deewiant: there is in Funge too, it's the IP delta 22:04:19 and you guys are programing in esoteric languages just for fun? 22:04:24 neldoreth: of course 22:04:27 so. Befunge is like C. Pointer or Integer? No way to tell. Underload is managed. Because you can see data type 22:04:30 interesting 22:04:31 why would anyone program in an esolang for any other reason? 22:04:36 i dont know :D 22:04:45 ais523: It can only store four values without x 22:04:49 ais523, well duh that is easy... 22:04:51 And is a pain to work with 22:04:53 because he has to, like i had to - but it was fun 22:04:59 Well, esolangs do have their bright sides 22:04:59 ais523, for the enterprise solutions that exist 22:05:00 :P 22:05:10 really we need bexml 22:05:15 neldoreth: Befunge is fun, other esolangs not so much, in my experience :-P 22:05:16 It's way easier to learn BF by heart rather than learning the whole Java class library :D 22:05:25 then we shall take the corporate world with storm 22:05:31 AnMaster: if there's ever another OMGWTF competition, I'll enter it trying to make out that INTERCAL is an enterprise langauge 22:05:33 *language 22:05:41 FireFly: But on the other hand, learning the whole Java class library implies you can actually, you know, do things. 22:05:43 ais523, "OMGWTF competition"? 22:05:45 using INTERCAL will probably conflict with the requirements, but in the OMGWTF that doesn't actually matter 22:05:55 AnMaster: the worsethanfailure Olympiad of Misguided Geeks 22:06:03 although it's back to being called dailywtf.com again now 22:06:05 Deewiant: yeah, i think whitespace/brainfuck are just painful to write 22:06:06 Deewiant, true 22:06:08 ais523, ah... got a link to previous ones? 22:06:15 there was only one previous one, let me try to find it 22:06:22 neldoreth: Whitespace is okay if you use an assembler 22:06:29 neldoreth: But it's not particularly /fun/ IMO 22:06:42 Befunge, for some strange reason, I actually do find fun 22:06:50 http://omg.worsethanfailure.com/ 22:06:51 me too 22:07:00 though I prefer writing *interpreters* for esolangs 22:07:07 much more interesting 22:07:08 Of course that can still be offset by unsavoury tasks 22:07:15 or compilers 22:07:31 neldoreth, writing an optimising brainfuck -> C compiler is quite interesting 22:07:39 much more than writing *in* brainfuck 22:07:49 the OMGWTF was all about writing programs that looked like they were generated via a bad development process 22:07:54 ah 22:07:55 I'm not that interested in writing interpreters/compilers for uninteresting esolangs 22:07:58 I see 22:07:58 although it turned into a contest for ridiculous programs, more than anything else 22:08:08 hm someone gave me a link to the befunge irc bot now, are there some additional bigger projects/programs in these languages? (so more or less useful ones) 22:08:21 DOBELA is one that I've been thinking of implementing, don't really have much time now 22:08:25 the specification of the contest was "implement a clone of Windows Calculator, using one of these two provided skeleton GUIs written in C" 22:08:36 neldoreth: Mycology is the biggest Funge program, I think 22:08:37 it was a trivial task, the competition was all about how badly you could mess it up 22:09:00 neldoreth: http://iki.fi/deewiant/befunge/mycology.html 22:09:04 ais523, ah I remember reading about that contest being announced... 22:09:10 thanks 22:09:51 neldoreth: If you find a bug, please report it ;-) 22:10:04 neldoreth, cfunge does include some simpler example programs in the tarball. And some weird test programs 22:10:04 haha 22:10:14 half of which only make sense for cfunge 22:10:33 Deewiant, not likely unless he write his own interpreter 22:10:33 AnMaster: why? because they test things only cfunge gets wrong? because they test cfunge-specific features? 22:10:35 neldoreth: http://www.rcfunge98.com/ has some examples and links 22:10:45 heh, RC/Funge 22:10:56 it sort of has the opposite philosophy to Mycology 22:10:58 ais523, well some of them test undef behaviour that I want to behave in a specific way 22:11:14 ais523: How's that 22:11:19 ais523, some are about funge109 22:11:26 -!- jix_ has quit ("..."). 22:11:36 ais523, and a few are just not in mycology but should be 22:11:46 neldoreth: another good Funge link is http://www.quote-egnufeb-quote-greaterthan-colon-hash-comma-underscore-at.info/befunge/ 22:11:51 which is one of the longer domain names on the Internet 22:11:56 $ ls tests/ 22:11:56 concurrent-issues.b98 iterate-iterate2.b109 iterate-zero.b98 perl.b98 split-in-iterate.b98 text-output.b98 wrap.b98 22:11:56 iterate-fetchchar.b98 iterate-jump.b109 jumpwrap.b98 refc-invalid-deref.b98 sysexec.b98 turt.b98 22:11:56 iterate-iterate.b109 iterate-space.b109 multi-file.b98 sigfpe.b98 sysinfo-multi-stack-sizes.b98 turt2.b98 22:12:11 ais523, a few of them were crash bugs found with fuzz testing 22:12:19 like the concurrent-iussues one 22:12:26 was ages ago 22:12:52 ais523, I know that ccbi were affected by a few of them 22:12:52 neldoreth: Befunge-93 or Befunge-98, by the way? 22:12:59 like the refc-invalid-deref.b98 one 22:13:08 AnMaster: "CCBI was", unless CCBI has somehow managed to become plural 22:13:15 ah yes 22:13:22 ais523, well I have two copies of CCBI here 22:13:23 :P 22:13:29 ais523: first thanks for the links, will check them out - was not specified, just "befunge" 22:13:37 "If CCBI were affected by them" is correct but hardly seen nowadays 22:13:48 neldoreth: write a program that works differently in the two, then 22:14:01 ais523: That's tricky. 22:14:06 well 22:14:09 Deewiant, not really 22:14:12 a hint: double quote space space double quote pushes two entries on the stack in Befunge-93, but only one in Befunge-98 22:14:16 Oh, wait, I do it in Mycology. 22:14:17 :-D 22:14:30 ais523: :] 22:14:31 Deewiant, yes exactly. And you could depend on a reflecting in 93 22:14:38 Deewiant: I still think Mycology violates the Befunge-93 spec by being too big 22:14:40 while it pushes 10 in 98 22:15:00 ais523: Quite possible, it's really not well specified 22:15:02 interfunge fails because of that, and basically passes otherwise 22:15:22 the only difference from expected output is that it prints numbers with Roman numerals 22:15:24 Mycology wasn't intended as a Befunge-93 test suite anyway, I just noticed that I could so I did 22:15:28 :-D 22:15:30 but that's a misfeature, not a bug 22:15:44 ais523, kate: Edit -> Block mode (~ due to l10n), copy. Paste in new file. Save as mycolgy-93.bf 22:15:48 issue solved 22:15:54 ah a sudoku solver, thats more or less useful 22:15:55 AnMaster: it's an easy enough issue, I did it with sed 22:16:06 ais523, how? I don't know sed well enough 22:16:19 AnMaster: strip the first 25 lines to 80 characters, delete all the others 22:16:31 * AnMaster knows s, d, p and q in sed 22:16:36 that's all you need 22:16:41 s does everything in sed 22:16:51 AnMaster: strip the first 25 lines to 80 characters, delete all the others <-- um... ? 22:16:55 you should have no trouble writing a regex to delete all but the first 80 characters 22:17:12 and 26,$d will delete all but the first 25 lines 22:17:14 ais523, well iirc sed doesn't support {a,b} for range 22:17:25 some versions support \{ \} for range, IIRC 22:17:29 maybe 22:17:30 but writing 80 dots is easy, just tedious 22:17:31 ? and grouping is enough to support {} 22:17:38 ais523, and error-prone 22:17:44 ais523: 80 dots won't work if there're less than 80 chars 22:17:44 not with copy-paste 22:17:49 21:04 AnMaster: so. Befunge is like C. Pointer or Integer? No way to tell. Underload is managed. Because you can see data type 22:17:51 just program 22:17:53 Deewiant, indeed 22:17:53 Deewiant: then the s/// won't match, so it'll do nothing 22:17:55 is the only typ 22:17:56 e 22:17:58 which is the correct thing to do in this case 22:18:02 ais523: D'oh 22:18:15 AnMaster: not bash, no 22:18:19 has to be plain sh(1) 22:18:21 ehird, well the interpreter has a higher level understanding of it 22:18:22 either that, or 22:18:27 AnMaster: no 22:18:30 it doesn't 22:18:32 you just have programs 22:18:33 it could have 22:18:40 yes, but same with befunge 22:18:43 there is no language-level distinction 22:18:49 hmm 22:18:51 ehird, write a GC in befunge 22:18:54 can you tell dd to copy-all-but-1? 22:18:57 that reclaims unused funge space 22:18:57 :D 22:18:58 ehird: Underlambda actually has fewer data types than Underload, they both have exactly one but Underlambda's is lighter-weight 22:19:04 AnMaster: impossible 22:19:07 a separate GC thread 22:19:13 impossible unless you put restrictions on what the program can do 22:19:16 ehird, indeed. For same reason as C 22:19:19 no 22:19:21 ehird: You can skip at the start of input 22:19:23 but even more so 22:19:23 for an entirely different reason 22:19:23 otherwise, nothing's stopping it revivifying a pointer 22:19:27 you can't know whether you'll access fungespace 22:19:32 via editing itself 22:19:32 in C etc, you just traverse the heap from one pointer 22:19:36 to see reachable objects 22:19:38 you can't do that with befunge 22:19:43 ehird, err how so? 22:19:47 >_< 22:19:49 ehird: Using that and swab you can reverse the file 22:19:49 you can get bounds on the used area 22:19:49 ... 22:19:53 using y 22:19:57 well, even in C you can write *(int*)0x480dacef, which confuses garbage collectors no end, but it's considered bad form 22:20:02 and is undef behaviour 22:20:03 ehird: And then skip from the start of the reverse 22:20:07 ais523, yes 22:20:11 Deewiant: swab is another command? 22:20:14 on the other hand, in Funge that sort of thing's rather normal 22:20:18 wait, no 22:20:21 ehird: conv=swab 22:20:28 Swap every pair of input bytes 22:20:35 how many Funge programs are there that hardcode p and g coordinates? 22:20:47 must be a simpler way 22:20:50 ais523, me, Deewiant, most other people? 22:20:51 now, how many Funge programs are there that use some sort of fungemalloc to find unallocated fungespace? 22:20:55 ehird: Too Esoteric for you? :-P 22:20:59 ais523, none that I know of 22:21:02 Deewiant: no, just too tedious 22:21:03 AnMaster: exactly 22:21:10 that's why a Funge garbage collector makes no sense 22:21:10 ais523, anyway C programs have hard coded coords. 22:21:16 AnMaster: static variables? 22:21:17 ais523, err pointers 22:21:19 ais523, yes 22:21:25 yes, but those aren't garbage-collected 22:21:27 Hmm, fungemalloc sounds like a cool idea actually 22:21:28 true 22:21:40 wait 22:21:41 Much better than Mike's silly C malloc, anyway :-P 22:21:42 a high level language specifically designed to target befunge would be fun 22:21:45 Deewiant: agreed, there should be a fingerprint that does that 22:21:45 * AnMaster looks for Mike 22:21:49 ah good he isn't here 22:21:55 or we would have had REAL issues 22:21:58 hhhhhhhhhhheheheehhhhhhhhhe 22:21:58 allocating in negative fungespae would probably be safest 22:21:59 BFGC 22:22:01 :D 22:22:03 AnMaster: what issues? 22:22:16 ehird: MikeRiley implementing a fungemalloc before we could write a decent spec for it 22:22:17 ehird, a badly specced fingerprint for GC in befunge which didn't actually work 22:22:21 or something like that 22:22:22 snap. 22:22:26 oh, garbage collection? that would be worse 22:22:31 ais523, indeed 22:22:34 anyway 22:22:42 also, I find mkry's fingerprints to be okay, on the whole 22:22:42 although at least nobody sane would try to use it 22:22:43 he has a fingerprint for malloc() 22:22:43 but some of them are awful 22:22:48 system malloc() that is 22:22:49 ehird: which one do you think is worst? 22:22:50 i mean, the specs are simple enough to follow 22:22:56 ais523: there's one that I forgot 22:22:58 lemme look it up 22:22:59 But ambiguous. 22:23:02 apart from the one that violates the semantics of the langauge 22:23:04 *language 22:23:07 Deewiant: only some of them 22:23:10 that one's obviously worse in a language-lawyer sense 22:23:11 ais523: FNGR? 22:23:12 *worst 22:23:14 others just specify blanket behaviour like reflecting 22:23:16 ehird: Most 22:23:21 not IMO. 22:23:27 ehird: Well he says "reflect on error" without saying what's an error 22:23:29 well, reflecting on error isn't bad 22:23:38 but yeah should specify what are errors 22:23:48 err 22:23:50 grammar... 22:23:52 Deewiant: that was the one 22:24:04 I couldn't remember which of FING and FNGR was the good one and which was the broken one 22:24:07 Deewiant, FNGR is at least not badly specced 22:24:08 ais523: He retconned it to switch to the alternate semantics 22:24:17 there are some fingerprints I have no idea what the hell they are supposed to do 22:24:22 "When this fingerprint is loaded, fingerprints work like this." 22:24:24 some MACR or something iirc 22:24:45 macro extension 22:24:46 that's trivial 22:24:48 His botching of MVRS annoyed me 22:24:48 well 22:24:49 http://rcfunge98.com/rcsfingers.html#MACR 22:24:53 "Macros are simple mini-funge like Befunge-like subroutines that execute in a single tick" 22:24:57 We thought up some pretty good stuff to make it work well 22:24:58 seems fine to me 22:25:00 ehird, he retconned that one too 22:25:02 :P 22:25:11 But he kept with his first implementation/spec 22:25:21 ehird, what about TRGR? 22:25:27 And it's just not very interesting/smart that way, I forget which 22:25:31 -!- BeholdMyGlory has quit (Remote closed the connection). 22:25:39 Deewiant, indeed 22:25:41 AnMaster: TRGR is wellspecced 22:25:48 it's in the list below the instruction overview 22:25:51 -!- BeholdMyGlory has joined. 22:25:51 Anyhoo, for this funge malloc thing 22:25:54 ehird, again slightly retconned 22:25:55 "The trigger table contains executable code for the new IP, the code for A begins at the trigger table vector, B starts at the same X one line lower, C below that, etc" 22:25:55 What do we need? 22:26:00 well stop giving me retconned ones 22:26:08 Deewiant: M ( -- x y) 22:26:11 1) Something to specify an area as not to be allocated into 22:26:11 F (x y --) 22:26:15 and 22:26:19 P (x y x1 y2 --) 22:26:22 P is your #1 22:26:27 Q (x y x1 y2 --) 22:26:27 ehird, so M returns a block of what size? 22:26:28 :P 22:26:28 opposite of P 22:26:33 ehird: M (x y -- x y) 22:26:33 AnMaster: ah, good point 22:26:37 yes 22:26:41 Deewiant, well, some way to return malloc a block of a specific size, getting coords back 22:26:43 M (x y -- x y) allocate fungespace block 22:26:43 then free too 22:26:49 F (x y --) deallocate fungespace block 22:26:56 P (x y x1 y1 --) don't allocate in this block 22:27:01 AnMaster: Yeah, I'm continuing from what ehird said :-) 22:27:01 you should have a realloc too 22:27:01 Q (x y x1 y1 --) undo P 22:27:06 mhm 22:27:08 R (x y x y -- x y) 22:27:11 yes 22:27:13 what Deewiant said 22:27:13 R? 22:27:14 tada 22:27:15 realloc? 22:27:15 we're done 22:27:16 realloc 22:27:16 eww 22:27:19 Deewiant: I would suggest unique names for the parameters... 22:27:20 Deewiant, why? 22:27:27 AnMaster: because realloc is useful 22:27:29 ais523, even better point 22:27:34 however 22:27:39 I was typing out Deewiant but with x1,y1 for the second pair 22:27:40 it's make this bigger, and move to a different part of fungespace if it doesn't fi 22:27:41 *fit 22:27:41 then he said it :P 22:27:56 I suggest x,y for position, w,h for width/height 22:28:09 ais523, iirc I remember a comment from boehm-gc saying "eww realloc, well we are stuck with it since it is in C standard" 22:28:13 or something to the same effect 22:28:14 I suppose we could do GC as well 22:28:18 G ( -- ) 22:28:19 Deewiant, how? 22:28:22 um 22:28:25 conservatively 22:28:25 Free everything 22:28:28 :-D 22:28:31 use large negative numbers for coordinates 22:28:37 that are unlikely to show up in the program 22:28:40 actually 22:28:41 you CAN 22:28:45 do a precise GC 22:28:45 Maybe G (t -- ) 22:28:49 for both befunge and C 22:28:53 yes really 22:28:53 Free everything not touched in t ticks 22:28:55 then look for numbers anywhere on the stack or in fungespace that are in the allocated range 22:29:05 you basically need to do what valgrind --tool=exp-ptrcheck 22:29:07 Deewiant: conservative would work, I think 22:29:08 track every pointer 22:29:14 as it is copied around 22:29:18 ehird, ^ 22:29:18 AnMaster: how can you tell an integer from a pointer in befunge? 22:29:22 ais523: Hrmph 22:29:31 A bit expensive, that 22:29:33 ais523, well you could tell how the value from this fingerprint was copied 22:29:44 Deewiant: who says fingerprints have to be cheap 22:29:47 I think my tick idea is pretty workable 22:29:50 well 22:29:57 I wouldn't implement the GC bit 22:29:59 we're discussing garbage-collected Befunge here, and you want it to be /efficient/? 22:30:05 I would suggest another way 22:30:12 ais523: I don't want it to be needlessly inefficient 22:30:18 A (x y w b --) 22:30:21 Boehm-GC is conservative, anyway 22:30:22 allocate arena to allocate from 22:30:26 hey guyz 22:30:27 http://nopaste.com/p/arvgu9k9bb 22:30:31 I wrote it. 22:30:32 Deewiant, ^ 22:30:34 also, deallocating data just because it hasn't been used recently is mad 22:30:36 fully specced 22:30:37 ready to go 22:30:39 ais523: But if you want, we can spec that negative values given to G do funky stuff 22:30:46 :) 22:30:47 that's a Silly Emplosions idea 22:30:47 ehird, I disagree 22:30:49 -1 can be your conservative collector 22:30:50 ... 22:30:51 AnMaster: why? 22:30:56 it specifies all behaviour 22:30:57 ehird, " A (x y w b --) allocate arena to allocate from" 22:30:58 ... 22:31:00 for the sake of sanity I think we should agree that Silly Emplosions stuff shouldn't be ported to any lang but INTERCAL 22:31:01 I suggest that way 22:31:02 instead 22:31:04 -!- asiekierk has quit (Read error: 104 (Connection reset by peer)). 22:31:04 that's stupid. 22:31:07 mine is better. 22:31:09 so program has to mark areas to allocate from 22:31:14 ehird, your is stupid. Mine is better 22:31:16 I think by default the arena should be negative fungespace 22:31:20 now say why your is better 22:31:31 and programs should have to mark which bits, if any, they're using 22:31:31 F (x y --) Deallocate block. <<< what does this mean? 22:31:33 mine is better because the amount of manual fungespace usage is more likely to be finite, 22:31:38 oklopol: like free() in C 22:31:39 than the allocatory areas 22:31:40 oklopol: Later allocations can use it 22:31:43 "deallocate an allocated block of size x,y"? 22:31:43 ais523, you could have multiple arenas. As memory pools 22:31:44 err, wait 22:31:46 for different size 22:31:47 or such 22:31:48 it should be x y x1 y1 22:31:50 in my idea 22:31:53 oklopol: deallocate the block allocated at coordinates x,y 22:31:58 err k 22:32:01 the size is known from the coordinates 22:32:06 -!- jix has joined. 22:32:06 ais523, indeed 22:32:08 wait 22:32:09 because it was allocated via fungemalloc in the first place 22:32:10 ... 22:32:13 ais523: Why not just have the arena be the whole space 22:32:17 there should also be a "Get size of allocated block" 22:32:19 ais523, where is the meta data stored? 22:32:22 Deewiant: and overwrite the function? 22:32:24 Deewiant, object pools? 22:32:25 OK 22:32:25 http://nopaste.com/p/aunvNDw2J 22:32:27 fixed 22:32:30 AnMaster: in fungespace? fungemalloc can allocate its own bit 22:32:31 ais523: that's what makes most sense, but i dislike it not being mentioned and x, y used for another purpose too. 22:32:32 I eagerly await implementations :P 22:32:36 ais523: You have to start by saying what can't be allocated on top of 22:32:41 ais523, and how can it know program won't Q it? 22:32:42 Deewiant: I did 22:32:42 see P,Q 22:32:50 R (x y x1 y1 -- x2 y2) Resize the block x*y to be x1*y1, return new coordinates. 22:32:51 also wut 22:32:56 ehird: Yes, I know you did, I even said it before you originally :-P 22:32:59 "the block x*y"? 22:33:02 I think all implementaitons should have P,Q, but we should agree what the default arena is 22:33:05 Deewiant: Yes yes. 22:33:07 oklopol: The block at x*y 22:33:08 ais523: implementation defined 22:33:10 that definitely means any random block of size x*y 22:33:11 should be "the block at (x,y)" 22:33:22 ehird: that's useless 22:33:22 ... 22:33:23 ... 22:33:24 sigh 22:33:29 no it's not 22:33:32 Deewiant: if it's the point x*y, why not just give an integer 22:33:32 what about MEMORY POOLS! 22:33:33 also, my R is fine 22:33:34 Implementation defined actually seems like the best idea 22:33:34 anyone? 22:33:35 programs would have to run Q then P in order to guarantee what they did at all 22:33:37 since only one block can start at one place 22:33:38 oklopol: Oh, heh. 22:33:39 with program defined ARENAS 22:33:42 ais523: er, no 22:33:43 to ALLOCATE FROM? 22:33:54 why are everyone ignoring this suggestion? 22:33:56 is* 22:33:56 if you use any fungespace manually, use P 22:33:57 ehird: it's just that you're using x*y rather than (x,y) for coordinatese 22:33:59 AnMaster: because it's shit 22:34:02 ais523: ok, i'll change that 22:34:02 ehird, why? 22:34:03 ehird: No it's not 22:34:05 AnMaster: because it's the same as ehird's, just with differnet defaults 22:34:10 *different 22:34:19 Well yeah, one can be implemented in the other 22:34:20 you can just do it by Ping everything then Qing your arena 22:34:22 *arenas 22:34:26 ais523, not really. It would be easier to implement 22:34:31 Oh, that brings up a good point 22:34:34 because a program could P/Q in a complex overlapping way 22:34:35 Semantics for overlapping P/Q 22:34:40 exactly 22:34:46 http://nopaste.com/p/aPrF2K5xA 22:34:47 Updated. 22:34:49 The latest call takes precedence? 22:34:50 therefore I suggest non-overlapping areans 22:34:50 Deewiant: the newest overrides older ones 22:34:50 Deewiant: Undefined. 22:34:53 :-D 22:34:54 Deewiant, no way 22:34:54 ehird: no, not undefined 22:35:01 newer overrides older is the only sane way 22:35:03 Well, fine. 22:35:04 I'm going to handle circle shaped pools 22:35:04 I'll do that. 22:35:06 What about multiple threads 22:35:07 ... 22:35:14 Deewiant, well t is synced still 22:35:23 from interpreter point of view 22:35:23 http://nopaste.com/p/aAXmy9lnib 22:35:27 Hey, wait! 22:35:31 Deewiant: they share pools IMO 22:35:31 Err, wait, nevermind. 22:35:33 If one essentially says 'I want you to allocate here' and the other says 'I want you to not allocate here' what happens 22:35:34 http://nopaste.com/p/aAXmy9lnib <- updated version 22:35:40 ais523: Yeah, I guess, so you have to work it out yourself 22:35:42 Deewiant: whichever gets there last works 22:35:42 Deewiant: the latest takes precedence 22:35:45 Deewiant, if we have overlapping P/Q then you can count me out 22:35:55 that is just too hard to try to fit 22:36:04 if one thread allocates a pointer, and another thread frees it, which takes precedence? 22:36:06 AnMaster: I figured we'd count you out anyway, I know how you are with feral fingerprints. :-P 22:36:08 AnMaster: why is it difficult? 22:36:10 ais523: the one that gets their last 22:36:11 *there 22:36:20 Deewiant, I'm fine with a simple suggestion as I suggested 22:36:27 ehird: well, obviously, I was trying to make it a rhetorical question so Deewiant understood 22:36:29 with allocating pools and allocating from these pools 22:36:34 kay 22:36:41 P and Q just flip allocatableness of a fungespace element 22:36:44 I think we're all agreeing here apart from AnMaster, who is boring as far as fingerprints go. 22:36:48 that isn't even a feral fingerprint! 22:36:52 ais523, Deewiant: Any issues with http://nopaste.com/p/aAXmy9lnib? 22:36:53 what's feral about it? 22:36:57 ais523: 'feral' is poorly defined. 22:36:59 ehird: reading it now 22:37:03 ais523, well how would you try to fit an allocation in 22:37:07 it sounds non-trivial 22:37:16 for arbitrary P/Q 22:37:18 R should read: 22:37:18 R (x y x1 y1 -- x2 y2) Resize the block at (x,y) to be (x1,y1) sized, return new 22:37:19 coordinates. 22:37:28 http://nopaste.com/p/aFetqtklgb Updated version. 22:37:34 Deewiant: my definition of non-feral is "could be implemented in the INTERCAL part of C-INTERCAL+IFFI+cfunge without modifying anything on the funge side apart from fungespace" 22:37:35 ais523: Usually we've taken it to mean storing data related to the Funge state beyond what is stored in an interpreter without the fingerprint 22:37:53 Deewiant: any qualms with http://nopaste.com/p/aFetqtklgb? 22:37:55 ehird: Use w and h, please. :-) 22:38:03 Sure thing 22:38:06 well 22:38:10 I still think GC would be fun 22:38:17 forget it. I'm going to do my own with same name 22:38:17 :P 22:38:20 Deewiant: oh, OK, I've taken it to mean things that can't be implemented without tinkering with interp internals 22:38:30 just because ehird is ignoring me because of who I am 22:38:31 AnMaster: Say goodbye to Mycology compatibility then ;-) 22:38:36 so implementing x in a fingerprint is feral, implementing a stack stack in an interp isn't 22:38:39 ais523: Well, that's essentially the same thing 22:38:50 Deewiant, anyway see my point above about how I think it should be done 22:38:54 AnMaster: I'm ignoring you because your idea is shit. 22:38:56 Stop being paranoid. 22:39:00 Deewiant: I mean, my definition allows fingerprints to have internal state 22:39:00 ehird, WHY is it shit 22:39:06 ehird, you haven't justified that 22:39:07 I have already explained that 22:39:07 ... 22:39:09 whereas as far as i can tell, yours doesn't 22:39:11 AnMaster: it isn't general enough 22:39:12 ehird, no you didn't 22:39:18 and there's no reason not to generalise 22:39:23 ais523, Deewiant: http://nopaste.com/p/aVFHswSKL 22:39:25 Now using w and h. 22:39:31 (x,y) to be (w,yh) size 22:39:32 why restrict the user to a rectangular arena that can't be changed over time? 22:39:33 *h 22:39:34 ais523: With internal state, everything is nonferal since you can just embed an interpreter. :-) 22:39:43 think of Q as being a befunge version of sbrk 22:39:44 ais523, sure can, allocate another arena 22:39:47 besides the current one 22:39:52 Deewiant: that's feral in a multithreaded program 22:39:55 memory pool_s_ 22:40:01 that is what the plural s mean 22:40:03 ...... 22:40:04 as you're altering state too quickly for the other threads to take steps 22:40:11 http://nopaste.com/p/au1ZCEs3i Easier to read. 22:40:13 AnMaster: can you deallocate them again? 22:40:19 If anyone other than AnMaster has comments, they're welcome. 22:40:24 Don't allocate fungespace in the (x1,y1) sized region starting at (x,y). 22:40:26 ais523, yes, just empty pools first and call some other instruction 22:40:27 ehird: give me time to read one 22:40:28 s/x1/w/ etc 22:40:30 ais523: Presumably you can access the host interpreter's threads from within the fingerprint. 22:40:32 ehird, see. it is personal 22:40:34 *shrug* 22:40:35 rather than posting new versions so quick I nver reach the end 22:40:40 AnMaster: no, you just have an idea about this fingerprint I don't care for 22:40:45 Deewiant: oh, I don't assume that 22:40:52 but, if you want, I'm happy to make it personal, as you're doing a good job of showing yourself to be an idiot 22:40:55 I don't assume anything about the interp at all except ability to access the stack and fungespace 22:40:59 http://nopaste.com/p/axl96oLTab Tada. 22:41:05 maybe my definition of "feral" is "requires knowledge of the interp to implement" 22:41:24 ais523: I assume access to the entire Funge state of the host including everything in the -98 standard 22:41:50 ais523: I.e. some sort of interface to all the internals so that you can implement any fingerprint. 22:41:51 ais523, being able to have an interpreter-global state + be able to run something atomically compared to ticks would be allowed 22:41:55 Deewiant: ah, ok 22:42:01 good thing it's a loose definition 22:42:03 ais523: Without that, feral fingerprints couldn't really happen :-) 22:42:07 but I'm not sure if you can access other threads in cfunge fingerprints 22:42:13 hm probably not 22:42:14 ... 22:42:16 ehird: looks good; I would state that by default, all fungespace is available for allocation 22:42:20 ais523: Something like that is what's intended 22:42:23 in fact, I'd prefer the default to be all negative fungespace 22:42:31 ais523: But it's really unclear and thus a fairly useless term in practice 22:42:37 ais523: I'll make all fungespace 22:42:41 actually, no 22:42:41 hm 22:42:44 I'll make it implementation defined 22:42:45 ehird: Why not impl-defined? 22:42:52 so programmers don't have to worry about changing P commands whenever they update their program 22:42:53 Deewiant, in cfunge fingerprints can't access other threads 22:42:55 Deewiant: that's much worse 22:42:55 just FYI 22:42:59 wait, no 22:43:00 ais523: Why's that 22:43:01 it should be all fungespace 22:43:02 yes 22:43:03 because programs wouldn't be able to be portable 22:43:16 without overriding the defaults 22:43:19 http://nopaste.com/p/aSZv3hZFI 22:43:24 Now gives all fungespace by default. 22:43:26 Ah, good point 22:43:29 put it this way, suppose in C malloc() could be defined to either overwrite your program, or not 22:43:33 XD 22:43:38 and there was a command to tell it not to overwrite given functions 22:43:51 everyone would have to call it for every function in their program to be portable 22:43:52 ais523, good point. And I have suggested a solution that ehird censored away 22:43:59 Yes, I'm censoring you by not listening to you. 22:44:03 I don't know why *he* began writing the fingerprint 22:44:05 Shut the fuck up and go cry me a river. 22:44:06 since it was my idea to begin with 22:44:07 ... 22:44:09 even if most C interps did the sane thing which is to not overwrite any 22:44:17 Omg, I am also an IDEA THEIF 22:44:19 AnMaster: personally, I think systems should give sane defaults 22:44:19 get over yourself... 22:44:27 exactly 22:44:30 P and Q are corner cases 22:44:30 I dislike your system because it gives the insane default of not working 22:44:32 ais523, exactly. I should have written a spec without mentioning it 22:44:40 yes, so I couldn't steal your ideas 22:44:40 AnMaster: Was it not ais523's idea? 22:44:41 and then presented it when mostly done 22:44:43 what is up with you 22:44:45 and I dislike ehird's because it gives the insane default of possibly overwriting the user's program 22:44:46 it wasn't even your idae 22:44:48 it was ais523 22:44:52 ais523: ah 22:44:54 I'll fix that 22:44:58 Hmm 22:44:59 Deewiant, read scrollback 22:45:01 I'll change it to all fungespace outside the program or something 22:45:04 hmm 22:45:06 any thoughts on that? 22:45:07 ehird: that would do 22:45:09 AnMaster: 22:20:50 in your time zone 22:45:14 ais523: so 22:45:15 the reason I chose negative is that it can't be written without g/p 22:45:16 all unused fungespace? 22:45:21 Deewiant: comments? 22:45:22 but unused may also work 22:45:25 Deewiant, I'm sure I suggested GC first at least 22:45:27 ehird: All fungespace not in the rectangle specified by the file 22:45:32 and that implies a malloc() 22:45:33 or such 22:45:35 actually, there's an interesting problem here 22:45:37 You can write that in some more understandable way, I'm sure. :-) 22:45:43 which is to do with Lahey-lines, and wrapping 22:45:50 I just realized that as you said there's a problem 22:45:54 ais523, Deewiant: http://nopaste.com/p/avRd8YmTS 22:45:56 Voila. 22:46:00 what happens if your malloc allocates space on a Lahey-line htat the program actually uses for wrapping? 22:46:08 good point 22:46:12 that would be very bad 22:46:21 Ah. Interesting. 22:46:24 Deewiant: thoughts? 22:46:32 Ability to mark a given Lahey-line as with P 22:46:39 it should be default 22:46:44 otherwise programs would break like hell 22:46:48 the problem's relatively easy to solve if you only use cardinal coordinates 22:46:48 You can use x to get on any Lahey-line 22:46:49 err 22:46:52 if program expands 22:46:54 ais523: Yes, but that's boring 22:46:54 you have issues 22:47:11 ais523, and you couldn't say "non-cardinal wrapping undef with this fingerprint" or such 22:47:16 since program could expand 22:47:23 ehird: By default, only the four quadrants diagonal from the initial rectangle, and then we need an additional command 22:47:24 by by default, allocating only if you don't share an x- or y-coordinate with the original fungespace 22:47:27 and you would run into issues 22:47:35 AnMaster: saying "non-cardinal wrapping undef with this fingerprint" is bad anywawy 22:47:51 ais523, well ok. better wording needed 22:47:54 a nicer but unfortunately buggy solution to wrapping is to surround the program with semicolons 22:47:58 AnMaster: no, better concept needed 22:48:10 ais523, the malloced block could contain ; 22:48:14 so that doesn't help much 22:48:16 buggy both because a flying IP might jump them, and because a cardinal program might write a ; into the block 22:48:22 hmm 22:48:28 maybe just specify that you can't allocate on a lahey-line? 22:48:31 err 22:48:32 I mean 22:48:34 Heh 22:48:36 that a program points to 22:48:40 um 22:48:41 hmm, that came out awkward 22:48:44 unfortunately every element of fungespace is on some lahey-line 22:48:47 yes 22:48:48 duh 22:48:48 :P 22:48:56 and specifically enumerating every lahey-line you use would get boring fast 22:49:07 hmm. 22:49:09 L (x y xd yd -- ) would do it 22:49:14 Deewiant: hm? 22:49:20 also, that'd get too tedious 22:49:22 For specifying a Lahey-line for non-use 22:49:23 by default, it should just work. 22:49:27 ais523, would doing that for every cell in a 32-bit funge space be larger than G= 22:49:29 It can't, I don't think. 22:49:33 s/=/?/ 22:49:34 or not 22:49:40 ehird: Btw, those should be general vectors of course, so it makes sense in Trefunge 22:49:43 ais523, anyway I suspect it would be "bloody large" 22:49:49 I guess Unefunge is screwed with this fingerprint 22:49:55 Deewiant: after we fix this problem, sure :-) 22:50:00 Deewiant: not if it doesn't try to use wrapping 22:50:20 ais523: True 22:50:39 ais523, that is 2^32*2^32 cells. Coords can be 2^32*2^32 different values. Wait that's a lot... 22:50:48 ok, actually working but feral solution: malloced blocks are untouchable by the IP as if they contained spaces 22:50:56 ais523: god no 22:50:57 that's like setting noexec on malloced memory 22:50:58 That's boring 22:51:03 well 22:51:04 it'd be fun to execute malloc'ed blocks 22:51:06 like 22:51:06 agree it's boring, and I'd like a better one 22:51:10 interpreter detector 22:51:12 malloc a block 22:51:14 jump to it 22:51:14 ais523, I have an early draft for a NX fingerprint... 22:51:15 record your IP 22:51:16 :-D 22:51:22 but I refuse to say anything more 22:51:30 since ehird would mess that up too 22:51:34 * ehird facepalm 22:51:36 actually, an NX fingerprint would be nice whether or not we do this malloc thing 22:51:38 Are you crying or something? 22:51:41 and they would combine well 22:51:48 Because I stole the idea that wasn't yours and broke it because it wasn't your idea? 22:51:52 it would be sort-of like abstain from INTERCAL 22:51:53 Jesus christ. 22:51:54 ehird, no but I'm soon ignoring you 22:52:02 Also, what happens if an already-malloced block is P'd? 22:52:05 *snort*. You call me a sore loser... 22:52:07 Does it get reallocated? 22:52:13 ais523, well my idea was to cause exit/debugger entry on NX 22:52:15 Deewiant: hm. 22:52:16 I guess it has to 22:52:19 reflect. 22:52:23 ais523, but ignore could be interesting too 22:52:28 as well as reflect 22:52:29 AnMaster: ignoring is much more interesting 22:52:42 http://nopaste.com/p/aPJgTXEWfb slight update; still needs a lahey-line fix 22:52:44 actually, more general: 22:52:49 I was going to say that reflection should be reserved for out of memory errors 22:52:51 ais523, well it was supposed to be a joke about real NX.... 22:53:00 But then realized that that doesn't really make sense in Funge 22:53:05 a fingerprint that lets fungespace cells be different when run as a command from when read as a value 22:53:12 ais523, with mprotect() like interface 22:53:25 sort of like those Perl constants that have different values as ints than they do as strings 22:53:34 ais523, and possibly minimal block page sizes 22:53:35 so you could fill an area with acts-like-space, or acts-like-r 22:53:42 to allow the interpreter to still be efficient 22:53:45 whilst the cells still kept their orignal value 22:53:47 *original 22:53:53 ais523: stop it, you're stealing & ruining his fingerprint! 22:54:05 well, I like my idea about this better than AnMaster's 22:54:10 ehird, no, ais523 is contstructive 22:54:12 AnMaster, you should design an optimizing compiler for Brainfuck, in Brainfuck 22:54:14 AnMaster's is just a joke, mine's a feral esoprogramming technique 22:54:15 ais523, I suggest both 22:54:25 AnMaster: yours could be implemented in mine using act-as-@ 22:54:31 ais523, it should be possible to combine them 22:54:35 yes 22:54:50 ais523, no @ != q and enter debugger of interpreter if any 22:55:06 AnMaster: I know @ != q 22:55:09 ais523, + mine include "read only" too 22:55:18 which your doesn't 22:55:24 AnMaster: well, mine could also implement "write only" 22:55:28 by making cells unreadable 22:55:35 ais523, so could mine. per-threads 22:55:35 having -wx-wx-wx permissions is occasionally useful 22:55:37 thread* 22:55:48 although admittedly, I've never used it 22:55:51 ais523, so one thread could write and others only read 22:56:12 AnMaster: why would you need that? encapsulation in Befunge is never going to be safe... 22:56:23 ais523, you don't want to see my *other* ideas then 22:56:27 by the way, with that mentioned, anyone up for trying to write a security fingerprint for Befunge that restricts all unsafe operations? 22:56:38 ais523, sure- Cfunge already has that partly 22:56:40 like the Safe module in Perl? 22:56:43 adding same on per-thread 22:56:45 would be easy 22:56:45 AnMaster: that's an interpreter, not a fingerprint 22:56:56 ais523, you could make the flag per-thread 22:56:59 quite easily 22:57:15 and with a fingerprint to control it 22:57:59 ais523, but my idea was ring based, or optionally capabiltity based 22:58:20 both NX and this RING/CAP would be efunge only. 22:58:34 though SAFE would be trivial in cfunge 22:58:34 good fingerprints shouldn't be interp-specific! 22:58:53 ais523, no, I just don't like slowing down the core of cfunge with checks 22:58:55 :P 22:59:02 even IFFI is worded so that it could be implemented in non-cfunge-plus-C-INTERCAL implementations 22:59:10 ais523, of course it would be 22:59:16 just I wouldn't implement them in cfunge 22:59:20 only in efunge 22:59:20 just nobody has tried yet 22:59:23 ... 22:59:33 it doesn't even assume the existence of an INTERCAL implementation 22:59:51 ais523, read what I said. You misunderstood me! 23:00:18 ais523, btw IFFI will soon need major updates. cfunge is currently in code/API cleanup 23:00:23 local branch only atm 23:00:27 haven't pushed it yet 23:00:34 wow, STCK seems bad 23:00:46 spec-wise, I mean 23:00:52 ehird, why BROK for your malloc() one? 23:00:53 btw 23:00:59 Memory BROKer. 23:01:02 It brokers memory. 23:01:05 although originally I said that because I read his stack (--) things upsidedown 23:01:06 k 23:01:07 http://en.wikipedia.org/wiki/Broker 23:01:20 ais523, well ok. But still bad? 23:01:35 ais523, wait what? 23:01:36 still rather underspecified 23:02:00 you read B (v n -- v ..) as B (^u -- ^ ..) 23:02:02 or such 23:02:07 don't have inverted v 23:02:27 AnMaster: I misread it as (q ɐ ɐ -- q ɐ) 23:02:33 obviously 23:02:35 :-) 23:02:40 ais523, that isn't even same one... 23:02:52 well, that's the one that made me wtf mentally 23:02:56 ah 23:03:00 and also that made me realise I was reading it upsidedown 23:03:04 ais523, what program did you use to invert? 23:03:16 http://www.sherv.net/flip.html, the first Google result on the issue 23:03:23 ais523, also I assume you meant left-to-right or something like that 23:03:24 * ais523 leads ehird to draw inconsistent conclusions about me 23:03:40 ais523: BE CONSISTENT DAMMIT :| 23:03:40 haha 23:03:44 brain—crash— 23:04:09 ais523, it fails badly 23:04:11 åäö 23:04:13 can't handle them 23:04:24 ә!Ⴈ ʇouuɐɔ ! puɐ sʇʇnq ƃ!q әʞ!Ⴈ ! 23:04:26 AnMaster: I wouldn't exactly call that a bad fail 23:04:33 ais523, also it fails badly on upper case 23:04:36 which is probably worse 23:04:45 ɹәʇʇɐɯ ʎႨႨɐәɹ ʇ! sәop ʎoʇ ɐ s,ʇ! 23:04:46 do /you/ know the unicode for combining upside-down umlaut offhand? 23:04:53 ais523, no 23:04:56 neither do I 23:05:00 and in fact I suspect there isn't one 23:05:05 although this is Unicode so I might be surprised 23:05:08 iʎsɐә s!Ⴁʇ uәәq ɹәʌәu sɐႡ uʍop әp!sdn ƃu!ʇ!ɹʍ ˙әɯ!ʇ әɯɐs әႡʇ ʇɐ sɹәpɐәɹ әႡʇ ɹoɟ unɟ ɟo ʇoႨ ɐ puɐ ƃu!Ⴈƃƃoq-pu!ɯ puɐ ƃu!ƃɐƃuә әʇ!nb s,ʇ! ˙ʇxәʇ әႨ!ɟoɹd ɹo sәƃɐssәɯ ʎɐʍɐ 'sәƃɐssәɯ snʇɐʇs Ⴈɐuosɹәd 'sәɯɐu uәәɹɔs ɹnoʎ oʇ әႨʎʇs sppɐ ʇ! puɐ әnb!un s,ʇ! ˙ʍәu puɐ Ⴁsәɹɟ s,ʇ! iʎɹʇ ɐ ƃu!ʇ!ɹʍ uʍop әp!sdn ɹno әʌ!ƃ uәႡʇ ¿sʇu 23:05:11 oɟ ʎɹɐu!pɹo puɐ pɹɐpuɐʇs Ⴁʇ!ʍ pәɹoq noʎ әɹɐ 23:05:31 at least it can reverse back 23:05:42 mostly 23:05:44 not fully 23:05:45 strange 23:05:46 -!- ehird has set topic: p=o؛u=ɔ¿/ɔ!ɹәʇosә/sƃoႨ/ɟәu~/ƃɹo˙sәunʇ//:dʇʇႡ. 23:06:01 no 23:06:03 heh, it worked perfectly 23:06:12 "are you bored witბ standard" 23:06:17 i meant the topic 23:06:25 also 23:06:27 works for me 23:06:29 your font is effed 23:06:32 err 23:06:36 or w/e 23:06:39 ehird, ბ isn't h 23:06:43 oh 23:06:45 if you think so 23:06:48 you are wrong 23:06:48 you mean putting it back? 23:06:51 ehird, yes 23:06:59 it manages to put it back mostly 23:07:02 but not h 23:07:10 ais523: do you think our topic counts as a log link according to freenode? :D 23:07:15 probably 23:07:21 haha 23:07:22 it's enough to inform people that the channel is logged 23:07:26 which is what matters 23:07:35 if they speak upside-downese, yes :D 23:07:36 admittedly, it isn't very useful... 23:07:55 also, the c=n;o=d doesn't work lowercase 23:08:02 -!- ehird has set topic: /ɔ!ɹәʇosә/sƃoႨ/ɟәu~/ƃɹo˙sәunʇ//:dʇʇႡ. 23:08:21 It actually looks nice 23:08:26 yes 23:08:26 ბttp://tunes.org/~nef/იogs/esoteric/?c=n;o=d 23:08:28 I get that 23:08:30 AND it's copy-paste protecting 23:08:32 when converting back 23:08:39 I'm missing the h and the l here 23:08:40 If you'd need it for something 23:08:44 FireFly: in a log link, why is copy-paste protection good? 23:08:46 yeah, it fails on h and l 23:08:51 ais523: annoys people 23:08:56 and 23:08:57 also, it's a very ESOTERIC link... 23:08:59 why is that good? 23:09:02 Well 23:09:02 ehird: do you consider annoying people a good thing? 23:09:03 aw dammit ais523 you beat me to it 23:09:05 Not in this caseä 23:09:08 case* 23:09:10 But generally 23:09:16 however, I agree about the esoness 23:09:19 I wonder what it would take to get them out of some other font 23:09:23 ok another idea 23:09:35 Since it appears I do have fonts that have those 23:10:56 so, to be the first person since the 70s to say this 23:11:00 I like TECO 23:11:07 for it is a good editor. 23:11:12 -!- AnMaster has set topic: hå te te pe kolon snestreck snestreck te u en e es punkt o er ge snestreck ~ en e ef snestreck el o ge es snestreck e es o te e er i se. 23:11:18 -!- ehird has set topic: /ɔ!ɹәʇosә/sƃoႨ/ɟәu~/ƃɹo˙sәunʇ//:dʇʇႡ. 23:11:20 ... 23:11:21 don't break the TOS 23:11:23 -!- ais523 has set topic: Ⱒ/sʍ˙➡//:dʇʇɥ. 23:11:26 -!- ehird has set topic: /ɔ!ɹәʇosә/sƃoႨ/ɟәu~/ƃɹo˙sәunʇ//:dʇʇႡ. 23:11:27 ehird: he didn't 23:11:29 ehird, err. It did make sense 23:11:31 ais523: invalid character 23:11:38 AnMaster: it almost certainly doesn't count as a link 23:11:51 ehird: And the current one does? 23:11:51 ehird, we had it spelled out before 23:11:52 what, a glagolitic capital letter spidery ha looks the same whether it's upside-down or not? 23:11:55 *! 23:11:57 Deewiant, no 23:12:03 also, ais523's doesn't inform the current chanel is logged 23:12:08 mine counts as a link due to a very trivial isomorphism 23:12:11 oh, i had "Logs:" in there 23:12:15 and the link clearly demonstrates we're logged 23:12:15 it got lost somewehere 23:12:20 ehird, since when do you decide? 23:12:20 ehird: There's a very trivial isomorphism for AnMaster's as well 23:12:23 -!- ais523 has set topic: Ⱒ/sʍ˙➡//:dʇʇɥ :sƃol. 23:12:26 Deewiant, indeed 23:12:30 AnMaster: using logic 23:12:33 hmm... that tinyarrow isn't upside-down 23:12:34 -!- AnMaster has set topic: Logs: hå te te pe kolon snestreck snestreck te u en e es punkt o er ge snestreck ~ en e ef snestreck el o ge es snestreck e es o te e er i se. 23:12:34 Deewiant: only if you know swedish 23:12:35 there 23:12:37 which isn't clear enough 23:12:40 -!- ehird has set topic: /ɔ!ɹәʇosә/sƃoႨ/ɟәu~/ƃɹo˙sәunʇ//:dʇʇႡ. 23:12:43 fail 23:12:54 -!- ais523 has set topic: Ⱒ/sʍ˙⬅//:dʇʇɥ :sƃol. 23:12:56 -!- ehird has set topic: /ɔ!ɹәʇosә/sƃoႨ/ɟәu~/ƃɹo˙sәunʇ//:dʇʇႡ. 23:12:58 that's a better fix 23:13:01 ehird: And if you have a crap font, the title currently is a bunch of boxes. 23:13:04 ais523, I agree 23:13:09 I think ais523's one is better 23:13:10 the arrow is the wrong way around 23:13:13 ehird, is just being silly 23:13:16 ehird: I just fixed the arrow 23:13:18 ah 23:13:23 ais's looks mostly like boxes to me 23:13:25 -!- AnMaster has set topic: Ⱒ/sʍ˙⬅//:dʇʇɥ :sƃol. 23:13:27 AnMaster: OMG IT'S PERSONAL WHY DO YOU HATE ME 23:13:28 Deewiant, not to me 23:13:35 wait, that's your job. 23:13:41 //[box].ws/[box] 23:13:43 ehird, rather why do you think everyone else's topic is stupid 23:13:47 -!- ehird has set topic: /ɔ!ɹәʇosә/sƃoႨ/ɟәu~/ƃɹo˙sәunʇ//:dʇʇႡ. 23:13:50 AnMaster: I didn't say stupid. 23:13:51 -!- AnMaster has set topic: Ⱒ/sʍ˙⬅//:dʇʇɥ :sƃol. 23:13:53 Deewiant: what, that glagolitic capital letter spidery ha has been in the topic for ages 23:13:55 I said insufficient according to the TOS. 23:13:58 -!- ehird has set topic: /ɔ!ɹәʇosә/sƃoႨ/ɟәu~/ƃɹo˙sәunʇ//:dʇʇႡ. 23:14:01 -!- AnMaster has set topic: Ⱒ/sʍ˙⬅//:dʇʇɥ :sƃol. 23:14:02 -!- ehird has set topic: /ɔ!ɹәʇosә/sƃoႨ/ɟәu~/ƃɹo˙sәunʇ//:dʇʇႡ. 23:14:04 -!- AnMaster has set topic: Ⱒ/sʍ˙⬅//:dʇʇɥ :sƃol. 23:14:06 ais523: Quite possibly it was a box then as well 23:14:07 I have more patience than you. 23:14:07 -!- ehird has set topic: /ɔ!ɹәʇosә/sƃoႨ/ɟәu~/ƃɹo˙sәunʇ//:dʇʇႡ. 23:14:08 how do you not recognise the specific box by now? 23:14:15 ehird, that proves you are immature 23:14:16 -!- ais523 has set topic: Ⱒ/sʍ˙⬅//:dʇʇɥ :sƃol. 23:14:22 These boxes, they are identical. 23:14:23 Yes. Patience is a huge sign of immaturity. 23:14:24 -!- ehird has set topic: /ɔ!ɹәʇosә/sƃoႨ/ɟәu~/ƃɹo˙sәunʇ//:dʇʇႡ. 23:14:25 -!- AnMaster has set topic: Ⱒ/sʍ˙⬅//:dʇʇɥ :sƃol. 23:14:27 -!- ehird has set topic: /ɔ!ɹәʇosә/sƃoႨ/ɟәu~/ƃɹo˙sәunʇ//:dʇʇႡ. 23:14:36 ehird, both me and ais agrees. Two against one. 23:14:46 -!- ais523 has set topic: Ⱒ/sʍ˙⬅//:dʇʇɥ :sƃol. 23:14:48 now ignoring majority is immature 23:14:50 -!- ehird has set topic: /ɔ!ɹәʇosә/sƃoႨ/ɟәu~/ƃɹo˙sәunʇ//:dʇʇႡ. 23:14:52 -!- AnMaster has set topic: Ⱒ/sʍ˙⬅//:dʇʇɥ :sƃol. 23:14:53 -!- ehird has set topic: /ɔ!ɹәʇosә/sƃoႨ/ɟәu~/ƃɹo˙sәunʇ//:dʇʇႡ. 23:14:55 lament: fizzie: help? 23:15:02 Protect the right revision! 23:15:04 indeed I agree with ais523 23:15:06 stop changing the topic, asiekierka is not even in the channel 23:15:14 lament: we're having a topic war 23:15:16 I am asiekierka in disguise. 23:15:20 ehird is outnumbered but trying to win just by being more specific 23:15:24 *persistent 23:15:25 -!- ais523 has set topic: Ⱒ/sʍ˙⬅//:dʇʇɥ :sƃol. 23:15:29 mine is clearly better 23:15:32 yes 23:15:33 as it leads to the logs in sorted form 23:15:38 whereas ehird's doesn't 23:15:38 indeed 23:15:39 22:15 AnMaster: indeed I agree with ais523 <-- imagine what IRC would be like if every person who agreed replied saying so every line 23:15:40 I don't get this one at all 23:15:45 Maybe it's because of the boxes? 23:15:57 Deewiant, fix your font? 23:16:02 see, we have someone who cannot access the logs 23:16:03 AnMaster: latest dejavu sans mono 23:16:04 -!- ehird has set topic: /ɔ!ɹәʇosә/sƃoႨ/ɟәu~/ƃɹo˙sәunʇ//:dʇʇႡ. 23:16:09 -!- Deewiant has set topic: http://tunes.org/~nef/logs/esoteric/. 23:16:13 that works too. 23:16:13 For crying out loud 23:16:14 Deewiant: it's "logs: http://tinyarro.ws/GLAGOLITIC CAPITAL LETTER SPIDERY HA" 23:16:17 just upside-down and with more unicode 23:16:43 Right. 23:16:45 -!- AnMaster has set topic: http://tunes.org/~nef/logs/esoteric/ | Ⱒ/sʍ˙⬅//:dʇʇɥ :sƃol | /ɔ!ɹәʇosә/sƃoႨ/ɟәu~/ƃɹo˙sәunʇ//:dʇʇႡ | hå te te pe kolon snestreck snestreck te u en e es punkt o er ge snestreck ~ en e ef snestreck el o ge es snestreck e es o te e er i se. 23:16:49 that works too 23:16:51 -!- ehird has set topic: /ɔ!ɹәʇosә/sƃoႨ/ɟәu~/ƃɹo˙sәunʇ//:dʇʇႡ. 23:16:52 er 23:16:54 ... 23:16:54 Yeah, it does. 23:16:58 -!- ehird has set topic: http://tunes.org/~nef/logs/esoteric/. 23:17:01 -!- AnMaster has set topic: http://tunes.org/~nef/logs/esoteric/ | Ⱒ/sʍ˙⬅//:dʇʇɥ :sƃol | /ɔ!ɹәʇosә/sƃoႨ/ɟәu~/ƃɹo˙sәunʇ//:dʇʇႡ | hå te te pe kolon snestreck snestreck te u en e es punkt o er ge snestreck ~ en e ef snestreck el o ge es snestreck e es o te e er i se. 23:17:04 now everyone is happy 23:17:07 can we stop fiddling with the topic and just leave it at the logs 23:17:11 -!- ehird has set topic: http://tunes.org/~nef/logs/esoteric/. 23:17:14 ehird, yes all variants please 23:17:14 that's a simple compromise 23:17:16 without all this bullshit 23:17:18 -!- AnMaster has set topic: http://tunes.org/~nef/logs/esoteric/ | Ⱒ/sʍ˙⬅//:dʇʇɥ :sƃol | /ɔ!ɹәʇosә/sƃoႨ/ɟәu~/ƃɹo˙sәunʇ//:dʇʇႡ | hå te te pe kolon snestreck snestreck te u en e es punkt o er ge snestreck ~ en e ef snestreck el o ge es snestreck e es o te e er i se. 23:17:23 * ehird facepalm 23:17:29 ehird, you have your there too 23:17:32 before mine 23:17:34 don't complain 23:17:36 ehird: compromising normally requires at least one person to agree with you to some extent, although you have deewiant on your side 23:17:37 I don't care, I'm trying to stop this topic idiocy 23:17:41 -!- ehird has set topic: http://tunes.org/~nef/logs/esoteric/. 23:17:48 -!- AnMaster has set topic: http://tunes.org/~nef/logs/esoteric/ | Ⱒ/sʍ˙⬅//:dʇʇɥ :sƃol | /ɔ!ɹәʇosә/sƃoႨ/ɟәu~/ƃɹo˙sәunʇ//:dʇʇႡ | hå te te pe kolon snestreck snestreck te u en e es punkt o er ge snestreck ~ en e ef snestreck el o ge es snestreck e es o te e er i se. 23:17:53 My Firefox shows none of the chars at http://www.alanwood.net/unicode/glagolitic.html :-/ 23:17:57 ehird: not reverting is generally considered a good way to end a revert war 23:18:06 besides, I report you both for IRC 3RR 23:18:14 -!- ehird has set topic: http://tunes.org/~nef/logs/esoteric/?C=N;O=D. 23:18:18 Mine is superior on technical grounds. 23:18:20 It has the correct ordering. 23:18:24 so does mine 23:18:25 QED, can we all go home now? 23:18:25 -!- AnMaster has set topic: http://tunes.org/~nef/logs/esoteric/?C=N;O=D| Ⱒ/sʍ˙⬅//:dʇʇɥ :sƃol | /ɔ!ɹәʇosә/sƃoႨ/ɟәu~/ƃɹo˙sәunʇ//:dʇʇႡ | hå te te pe kolon snestreck snestreck te u en e es punkt o er ge snestreck ~ en e ef snestreck el o ge es snestreck e es o te e er i se. 23:18:31 -!- AnMaster has set topic: http://tunes.org/~nef/logs/esoteric/?C=N;O=D | Ⱒ/sʍ˙⬅//:dʇʇɥ :sƃol | /ɔ!ɹәʇosә/sƃoႨ/ɟәu~/ƃɹo˙sәunʇ//:dʇʇႡ | hå te te pe kolon snestreck snestreck te u en e es punkt o er ge snestreck ~ en e ef snestreck el o ge es snestreck e es o te e er i se. 23:18:32 solved 23:18:33 :P 23:18:40 -!- ChanServ has set channel mode: +o lament. 23:18:42 yes we can now 23:18:50 lament: +t please 23:18:53 -!- AnMaster has joined. 23:18:53 er 23:18:54 XD 23:18:56 what? 23:18:57 that was wrong 23:18:57 -!- ehird has changed nick to notehird. 23:19:02 -!- notehird has joined. 23:19:06 -!- notehird has changed nick to ehird. 23:19:15 lament: comma separated? 23:19:15 lament, kick him under his right nick 23:19:20 lament: you kicked both ehird and anmaster with the other as the rason 23:19:22 *reason 23:19:26 and they both auto-rejoined 23:19:26 ais523: i know. 23:19:27 ais523: I think he noticed 23:19:27 -!- ehird has changed nick to ninja_. 23:19:35 <---- --------> 23:19:41 <<<<<<<<<<<<----------------- 23:19:42 ais523, yes my bouncer has this channel as "sticky channel" 23:19:44 * ninja_ the sound of silence. 23:19:53 ais523, since I don't want to part by misclick 23:19:59 so yes this one is auto rejoin 23:20:06 it would be more fun just to link you each up to the other's bouncer, and see what happened 23:20:14 ais523, what? 23:20:22 so you were both writing as each other 23:20:24 According to http://www.alanwood.net/unicode/fontsbyrange.html#u2c00 almost no fonts have those glagolitic letters, where do you guys get them from? 23:20:30 Deewiant: I don't 23:20:31 ais523: I'd get myself a K-line. 23:20:34 I can't see them either 23:20:43 Maybe go to #freenode and spam goatses. 23:20:48 ais523, no. I'm on way more channels than ehird 23:20:52 but it's definitely a glagolitic capital letter spidery ha, Character Map confirms it 23:20:57 ais523, on lots of networks 23:21:06 a total of 582 channels atm 23:21:12 I think ehird couldn't handle that 23:21:13 I prefer UniView for such testing but yes, it is 23:21:13 You have no way of knowing how many channels i am on. 23:21:17 -!- ninja_ has changed nick to ehird. 23:21:21 AnMaster: how many of those 582 do you actually read? 23:21:33 ais523: What about the arrow? Do you have a monospaced font that has that? 23:21:43 Deewiant: I'm using proportional atm 23:21:48 ehird, I do. You said you were only on freenode recently. Freenode limits to 20 channels, or 100 on special request to staff 23:21:50 so at most 100 23:21:51 That'd explain it 23:21:52 but I see no reason it wouldn't be in a monospaced 23:22:00 which is less than 582 23:22:01 ais523: http://www.alanwood.net/unicode/fontsbyrange.html#u2b00 23:22:03 ais523, more than half 23:22:21 582? O_o 23:22:28 ais523, some I need but don't read. Like #services on one network where I'm oper. I don't read it unless something unusual happen 23:22:32 AnMaster: what do you actually do, the rest of the time? 23:22:41 -!- jix has quit ("..."). 23:22:45 I mean, surely reading 582 IRC channels would take up your entire life? 23:22:53 I was on 30 a few weeks back, decided that was too much and parted from about 10 23:23:02 ais523, Also some I idle in and only ask when I need help. Saves "polite initial wait before asking question" 23:23:04 I'm on 9 atm 23:23:08 this includes ##freebsd 23:23:09 and such 23:23:13 What do you mean being in channels you don't actually talk in or read is stupid? 23:23:16 Pfft. 23:23:17 although one's been dead for ages, I'm in it on the hope it becomes alive again 23:23:26 ais523: which? 23:23:29 #interhack? #rootnomic? 23:23:31 #nomic on slashnet 23:23:39 oh 23:23:40 ehird, #eso? 23:23:42 err 23:23:44 ais523, ^ 23:23:49 I no longer have #ESO on autojion 23:23:52 *autojoin 23:23:56 ais523, me and comex are there 23:24:01 there doesn't seem to be much point until ESO actually gets running again 23:24:06 yes 23:24:12 although if someone asks me over there, I'll join 23:24:15 but that day I'll be redy 23:24:22 ehird just joined 23:24:23 my general rule is to not join so many channels/queries they won't all fit on my screen at once 23:24:28 -!- ehird has changed nick to tusho. 23:24:30 the tabs for them, I mea 23:24:32 *mean 23:24:44 ais523: mine too, but i keep stretching the window to overcome that 23:24:44 AnMaster: now you're on 581 23:24:45 ais523, err, tree view > tabs 23:24:46 Right, GUIs. 23:24:51 -!- tusho has changed nick to ehird. 23:25:00 AnMaster: err, wouldn't it take up more space? 23:25:08 * ehird sets modes [#eso +b AnMaster!*@*] 23:25:08 * You have been kicked from #ESO by ehird (ehird) 23:25:11 on what ground? 23:25:11 As I said. 23:25:12 mine's a horizontal row of tabs 23:25:13 582-- 23:25:18 ais523, vertical 23:25:39 ais523, with small font. Tabs take more space 23:25:54 ehird: ISO C forbids modification of an integral constant 23:26:05 ehird, I never saw any reason you said 23:26:05 it's forte++ 23:26:06 ... 23:26:12 ehird: yep 23:26:12 AnMaster: why do I have to give a reason? 23:26:16 I don't think that's in freenode policy 23:26:19 I was trying to word the error message as gcc -pedantic would give 23:26:27 to give the impression that gcc without -pedantic wouldn't care 23:26:28 ehird, oh. Oppression and censorship 23:26:29 ah, heh 23:26:29 I see 23:26:34 thanks for the clarification 23:26:40 AnMaster: are you trying to be funny? it's not working. 23:26:56 no. I'm sarcastic. At most. 23:27:46 I was hoping #define 582 would work but evidently not. 23:28:15 Deewiant, identifier in C is [a-zA-Z_][a-zA-Z0-9_]* 23:28:29 cpp!=C 23:28:30 AnMaster: Yes, and I was hoping #define would not want identifiers. 23:28:40 ehird, same for cpp... 23:28:42 duh 23:28:44 ehird: cpp's pp-token definition of identifiers is the same as the main lexer's, though 23:28:44 read the spec 23:28:47 so in this case it doesn't matte 23:28:49 *matter 23:28:57 I was referring to why Deewiant tried. 23:29:00 I tried something like that today 23:29:04 so I know 23:29:06 It is not immediately obvious that #define's first parameter is a C identifier. 23:29:09 it doesn't matte, either, because it prefers to gloss over the issue 23:29:16 ehird: yes, OK 23:29:19 what 23:29:22 JVM segfaults, yay 23:29:23 I was talking to AnMaster, not ais523. 23:29:30 ais523, it doesn't matte, either, because it prefers to gloss over the issue <-- what a horrible pun 23:29:42 sorry, I should really have done /nick oerjan first 23:29:46 yes 23:29:55 -!- ehird has changed nick to oerjan. 23:30:05 Whoa. I have a swatter now. 23:30:08 no 23:30:15 my client does nick tracking 23:30:16 * oerjan grabs swatter -> 23:30:17 -!- oerjan has changed nick to ehird. 23:30:20 * ais523 catches oerjan in a butterfly net -----\XXXXX/ 23:30:24 Aaa! It disintegrated... 23:30:24 *ehird 23:30:31 The swatter requires oerjan-nature. :( 23:30:32 Whoa. I have a swatter now. 23:30:34 fun 23:30:37 :P 23:30:41 AnMaster: your client tracks nick changes? 23:30:47 ais523, " my client does nick tracking" 23:30:47 no 23:30:51 I only said that 23:30:53 .... 23:30:58 oh, missed that 23:32:54 SGNE... Hm 23:33:05 what sort of alarm is that supposed to be? 23:33:20 probably the system call alarm() 23:33:26 so the SIGALRM singal 23:33:30 or whatever it's misspelt as 23:33:37 SIGALRM maybe 23:33:39 not sure 23:33:47 I could check cfunge source 23:33:49 SIGARETTE 23:34:06 SIGALRM 23:34:10 SIGNATURE 23:34:15 btw I couldn't: 23:34:17 #ifdef FUZZ_TESTING 23:34:17 alarm(3); 23:34:17 #endif 23:34:18 that is all 23:34:25 man page had it of course 23:34:29 btw 23:34:35 why is saving one char worth it? 23:34:44 AnMaster: "creat" 23:34:51 ais523, exactly Why? 23:34:52 and so it's easier to fit into an 8.3 filename, probably 23:35:01 C and UNIX are concise. 23:35:06 Don't like it, take a look at Windows. 23:35:08 (that was a facetious response...) 23:35:15 ehird, posix_spawn()? 23:35:20 POSIX != UNIX 23:35:25 I mean the original unix spirit. 23:36:19 fegetexceptflag() ? 23:36:28 no idea what it is 23:36:31 but it is *nix 23:36:43 hm 23:36:47 math exception related 23:36:53 CONFORMING TO 23:36:53 IEC 60559 (IEC 559:1989), ANSI/IEEE 854, C99, POSIX.1-2001. 23:36:59 it's not the original UNIX spirit 23:37:08 true. It is C 23:37:12 which is blindingly obvious; anything older than the early 80s isn't. 23:37:14 anyway it doesn't make sense 23:37:23 identifiers are only unique up to 8 chars 23:37:24 in C 23:37:25 iirc 23:37:30 or did C99 remove that? 23:37:33 No, only guaranteed to be. 23:37:38 well true 23:37:38 It's six chars, case-insensitive. 23:37:40 I doubt any implementation actually does that 23:37:46 but C99 has longer identifiers 23:37:49 And only for external identifiers. 23:38:01 Deewiant, yes but C99 has longer ones 23:38:01 C89 allows 31 characters for internal identifiers. 23:38:20 teco woul dbe nicer if you could use something else instead of 23:38:36 ehird, write a script to do it 23:38:39 call it uh... 23:38:40 ehird: just use xmodmap or the OS X equivalent to remap onto, say, e 23:38:41 how? 23:38:43 editor macros? 23:38:46 teco wraps the terminal 23:38:48 EMACS for short 23:38:53 ais523: how about no :D 23:38:58 also, that'd stop me putting e into code 23:39:15 I'd use ctrl-c or something 23:39:29 ais523, you forgot os x probably doesn't have that 23:39:39 Apple say, user do 23:39:40 :P 23:39:41 yes, it does. 23:39:44 why not? it has everything else 23:39:50 all keyboard layouts are regular plist files 23:39:55 you can modify them, make your own, etc etc etc 23:39:57 ok 23:39:59 right 23:40:01 and there are apps to make it even easier (point and click) 23:40:03 no GUI though 23:40:09 well third party ones 23:40:09 there are gui apps to make it easier 23:40:19 it's such a rare operation that not including a gui for it isn't exactly unsurprising 23:40:25 does ubuntu ship with an editor for keyboard layouts? 23:40:27 well true 23:40:52 I'm disappointed that N repeats X N times in TECO. That's way too simple. 23:40:53 ehird, does OS X include a good package manager that can be used to get lots of stuff like font editors and such btw? 23:41:00 -!- BeholdMyGlory has quit (Read error: 60 (Operation timed out)). 23:41:17 ehird, how do you do that for non-fixed N? 23:41:18 MacPorts is semi-official and a few clicks away, but it's mostly useful for CLI apps. 23:41:37 -!- atrapado has quit ("Abandonando"). 23:41:38 and I don't know. 23:41:48 ehird, yet 23:41:48 ehird: why would you need MacPorts to do nonfixed loops in TECO? 23:41:49 *2+2<^AHello^A>$$ 23:41:49 HelloHelloHelloHello* 23:41:51 Like that. 23:41:53 ais523: heh 23:41:57 ais523, ... 23:42:04 too good a message combination to ignore 23:42:06 ais523, you need multi tasking 23:42:17 oh a joke 23:42:19 I see 23:42:40 we should scientifically prove that AnMaster can never recognize a joke first time round, no matter how blatant :D 23:42:51 ehird: Ubuntu doesn't ship with such an editor, but I found one in the repos in about 20 seconds of searching 23:42:55 he has no funny bone 23:42:56 which was my guess 23:43:06 ais523: I found one in 15 seconds with google last time I wanted to do that :P 23:43:10 ehird, I can. I enjoy discworld books 23:43:18 ehird: for Mac OS X? 23:43:22 AnMaster: how do we know you don't consider them non-fiction? 23:43:23 ais523: yes 23:43:27 interesting 23:43:32 http://www.google.com/search?client=safari&rls=en-us&q=os+x+keyboard+layout+editor&ie=UTF-8&oe=UTF-8 23:43:35 the first one is Ukelele 23:43:38 which I used and is great 23:43:39 ehird, well they are in a way a parody of the real world. 23:43:46 ehird, but fictional of course 23:43:50 I found xkeycaps, which I haven't tried to use 23:43:57 or indeed install 23:44:01 ehird, we *don't* live on A'Tuin 23:44:04 (spelling?) 23:44:07 AnMaster: yes we do! 23:44:35 *1/0<^Awtf^A>$$ 23:44:35 * 23:44:38 This just in: 1/0 is 0. 23:44:40 ehird, hah. Actually I do believe we have been in space. And live on a world. Lets call it roundworld. 23:44:44 Therefore, 0*0=1. 23:45:03 ehird, um Funge has 1/0 = 0 too 23:45:13 It's silly. 23:45:15 98 that is 23:45:18 not prompt the user? 23:45:20 ehird, no. 93 is sillyt 23:45:22 silly* 23:45:26 93 is prompt user 23:45:27 IMO, 10/ should be a reflection in 98 23:45:33 1/0 = 0 is probably one of the least useful values you can give 23:45:37 ais523, specs disagree 23:45:42 "should" 23:45:42 yes, I know 23:45:43 not is 23:45:49 ehird, exactly 23:45:52 I'm talking about what IMO the specs should say, not what they do so 23:45:55 *do say 23:46:13 PUT IT IN FUNGE-109 23:46:13 the INTERCAL standard library returns 0 on division by 0 23:46:14 xD 23:46:21 which is strange as it errors on overflow when doing addition 23:46:24 I want to write cat in teco. Hm. 23:46:26 maybe 109 should use option packages 23:46:33 like posix does 23:46:34 :D 23:46:40 nah bad idea 23:47:07 (man posixoptions on a linux system, *bsd doesn't have the man page iirc. Go check your local POSIX copy) 23:47:16 aww, ER/dev/stdout$$ doesn't work 23:47:17 :< 23:47:22 * AnMaster does have a release copy of POSIX.1-2008 23:47:27 hmm 23:47:32 it has special stdin/stdout support it seems 23:47:33 AnMaster: how much did it cost you 23:47:37 ais523, 0 23:47:53 is that one available for free, then? 23:48:01 ais523, "free to members" 23:48:10 you're a member of posix? 23:48:20 ais523, that is free yes. Interested party 23:48:23 means you are on a mailing list 23:48:26 ah, ok 23:48:31 ais523, it is quite different from "gold member" 23:48:33 so can anyone get a copy just by joining a mailing list? 23:48:39 ais523, basically yes 23:48:53 ais523, you are a member of austin group mailing list 23:48:57 * ais523 wonders why anyone buys it, if that is the case 23:49:00 err 23:49:02 s/you/I/ 23:49:09 I seem to have identity problems 23:49:11 *IIHello, world!$@I $ @I $ $$ 23:49:33 ais523, well it is a bit hard to find. 23:49:48 (inserts IHello, world!, you could also just do @I/IHello, world!/@I//, but that's less fun) 23:50:05 ais523, it isn't on the member area of austin group. You can only find the last draft there 23:50:18 ais523, you have to use the same login on the main opengroup site in the bookstore section 23:50:19 oh, V = 0TT 23:50:20 that's nice to know 23:50:22 to get it for free 23:50:25 well, drafts are more fun to read than the actual standard 23:50:42 ais523, oh? There is one useful one that is a diff against the previous version 23:50:49 in pdf 23:51:10 ais523, all of posix in one pdf make jack swap trash 23:51:26 pfft, how big is it? 23:51:27 the pdf 23:51:27 why? is your PDF reader bloated? 23:51:33 ehird, 3872 pages 23:51:36 * ais523 suddenly wonders if PDF is streamable 23:51:36 in megs 23:51:47 14 MB 23:51:51 pfft 23:51:54 14 is pretty small 23:51:59 most people have 14MB memory... 23:52:00 a 14MB pdf would be like... 50MB in memory 23:52:03 (parsed) 23:52:07 ais523, well I suspect kpdf renders badly 23:52:18 ehird, well. it isn't "optimised" one 23:52:20 I normally use Evince, although I have kpdf and xpdf here too 23:52:22 according to pdfinfo 23:52:32 also I have firefox running 23:52:35 Preview.app renders pdfs faster than just about anything that isn't xpdf 23:52:44 so the result is swap trash 23:52:47 ehird: I didn't realise xpdf was that fast 23:52:52 what is 3872 pages? 23:52:53 It might not be 23:53:00 oklopol, POSIX. As PDF 23:53:05 oklopol: slightly smaller than an OOXML 23:53:06 it has an x in the name, so I get the impression of a ridiculously fast but useless program 23:53:12 and about 2/5 the size of OOXML + corrections 23:53:13 haha, an OOXML 23:53:15 cool. 23:53:18 that's the best measure of size ever 23:53:30 hehe 23:53:59 X/Open Curses Issue 4 23:54:01 is nice too 23:54:10 but the pdf is fail 23:54:12 no index 23:54:35 or yes an index. "Page 1" "Page 2" 23:54:36 that is it 23:54:44 and 316 pages in total really 23:55:16 I hereby officially found the Esolanger's TECO User Group. 23:55:17 err, Issue 4, version 2 23:55:23 Anyone who uses TECO for writing esoprograms is welcome. 23:55:39 ehird, I suggest you should require teco as main editor 23:55:44 whoa, TECO even escapes its output for you 23:55:45 *0I$$ 23:55:46 *0T$$ 23:55:48 ^@* 23:55:50 so friendly! 23:56:03 AnMaster: the programs must be written in TECO 23:56:07 ehird, " Anyone who uses TECO for writing esoprograms is welcome." <-- Using TECO as editor to write befunge? 23:56:19 hm 23:56:23 No, using TECO as an editor to write TECO programs that don't just edit text. 23:56:31 ehird, why? 23:56:31 Although using TECO for _anything_ probably qualifies. 23:56:36 ok 23:56:38 AnMaster: why write in esolangs? 23:56:42 it's fun. 23:56:54 ehird, no. Why not teco for main editor 23:57:02 without writing non-text editing 23:57:09 but then you said it qualifies too 23:57:17 because then couldn't be admitted 23:57:29 eh? 23:57:49 I don't use teco as my main editor 23:57:59 "Fill up the screen with an indeterminate amount of 'a's: ^B<^Aa^A>" 23:58:03 oh you missed "I" 23:58:03 ... 23:58:07 (^BOperating-system dependent encoding of current date 23:58:07 RT-11:(((month*32)+day)*32)+year-1972 23:58:08 that explains it 23:58:09 RSTS/E:((year-1970)*1000)+day within year 23:58:11 RSX-11:((year-1900)*16+month)*32+day) 23:58:24 16+month? 23:58:31 hm 23:58:37 no, ((year-1900)*16)+month 23:58:43 ehird, that last one look almost like befunge... 23:58:44 *32+day 23:58:45 :P 23:58:45 but still, it's a bit strange 23:58:49 ah 23:58:53 it's using bitshifts 23:58:55 yes 23:58:59 to speed up the arithmetic slightly 23:59:02 duh yes 23:59:06 whilst making it harder to compare dates 23:59:14 stack_push(pushStack, (funge_cell)(curTime->tm_year * 256 * 256 + (curTime->tm_mon + 1) * 256 + curTime->tm_mday)); 23:59:18 stack_push(pushStack, (funge_cell)(curTime->tm_hour * 256 * 256 + curTime->tm_min * 256 + curTime->tm_sec)); 23:59:33 well I let compiler optimise. It is smart enough 23:59:46 A start on cat: 23:59:49 ^T<^Aa^A> 2009-03-11: 00:00:07 Upon execution, reads one char from the terminal (as soon as you hit it) and outputs a number of as corresponding to its ascii code. 00:00:15 ehird, that looks like a Japanese smiley on steroids 00:00:36 well, ^A is a smiley face in IBM-extended 00:00:46 ais523, no... not that way 00:00:47 but 00:00:51 ^<^_^> 00:00:54 or such 00:00:54 we know 00:00:56 we know 00:01:04 ehird, why repeat 00:01:13 because you continued :P 00:01:15 ^<^_^> 00:01:15 or such 00:01:15 we know 00:01:15 we know 00:01:16 wrong 00:01:23 network lag, heard of it? 00:01:31 ehird, yes, you haven't though 00:01:41 you could have seen that it was close enough to have lag risk 00:01:55 instead of being rude 00:02:01 I wasn't rude. 00:02:06 TECO "Lock screen" mode: <>$$ (Password is Ctrl-C) 00:02:18 err hah 00:02:29 ehird, not very secure 00:02:32 Better: 00:02:34 <^A 00:02:34 well I guess against noobs 00:02:36 ^A>$$ 00:02:38 ehird, hm? 00:02:42 Clears screen indefinitely. 00:02:45 hm 00:02:47 until ^C 00:02:50 i.e. outputs infinite newlines. 00:03:16 Also !a!Oa$$ 00:03:19 !foo! = label 00:03:23 Olabel$ = jump 00:03:42 hm nice 00:03:58 ehird, how do you escape an escape char? 00:04:09 Use a different delimiter 00:04:13 ah righ 00:04:13 @O/label/$ 00:04:16 right* 00:04:17 @I/foo/ 00:04:18 etc 00:04:36 ehird, any way to include every char in a string? 00:04:45 I guess concat or such? 00:04:48 Do it as two strings. 00:04:57 and concat? 00:05:10 Well, there's no contact. 00:05:14 hm ok 00:05:15 Just do @I/.../ @I!/! 00:05:50 oh wow 00:05:54 TECO uses " as open loop and ' as end loop 00:06:07 ais523: you should put that in intercal 00:06:12 err 00:06:16 they are already in use 00:06:22 what? 00:06:22 ehird: the comparison to INTERCAL got me too 00:06:27 AnMaster: that's never stopped it before 00:06:34 what do you mean 00:06:35 already in use? 00:06:40 ehird, also where is the guide to teco? 00:06:41 ehird: you forgot about INTERCAL parens 00:06:43 that you use 00:06:46 http://web.archive.org/web/20080207025702/http://zane.brouhaha.com/~healyzh/teco/TecoPocketGuide.html 00:06:50 ais523: no, i was augmenting them 00:06:57 AnMaster: & http://en.wikipedia.org/wiki/Text_Editor_and_Corrector 00:07:05 I don't /think/ it leads to an ambiguous grammar 00:07:09 & playing around in the console of http://almy.us/teco.html 00:07:22 ais523, more than already? 00:07:32 ais523, since " *is* already ambig. 00:07:36 iirc 00:08:48 anyway, I can't see myself using ed any more 00:10:12 because you have TECO? 00:10:21 AnMaster: not ambiguous, just requires infinite lookahead to parse correctly 00:10:57 ais523: bingo 00:11:15 ais523, well true 00:11:25 need to figure out how to write scripts and init files etc 00:14:23 http://www.charleston.net/news/2009/mar/07/its_big_guy_vs_little_guy74198/ 00:14:24 Er, wow. 00:15:27 ais523: do you have a teco there? 00:15:45 no, not on me 00:17:06 incidentally, ! label ! doubles as a comment. 00:17:42 yes, I know 00:17:53 ! is toggle-comment if your comments are unlabelly enough 00:17:57 ugh, I have to put a file called TECO.INI in ~/ to get it to recognize it 00:18:30 ehird, wow at that link too 00:18:37 ehird, nice. In upper case? 00:18:44 hfs+ is case insensitive 00:18:47 well 00:18:52 the program should check 00:18:54 what it got 00:18:55 to make sure 00:19:11 * AnMaster ponders adding that to cfunge: 00:19:21 % mung 00:19:22 ?How can I MUNG nothing? 00:19:25 that's a beautiful error 00:19:32 in fact, all systems should respond to `mung` with that 00:19:42 no matter if they have a TECO or not 00:20:04 if (strcmp(programname,filename) != 0) { fputs("Cfunge is case sensitive for file names\n", stderr); exit(1); } 00:20:07 what about that? 00:20:16 ehird: what does mung do? 00:20:27 AnMaster: "Cfunge"? how ironic. 00:20:36 ais523: It MUNGs Until No Good. (Runs a TECO batch script.) 00:20:37 ehird, yes. It was intentional 00:21:04 what do you mean, case sensitive for file names? 00:21:28 ais523, OS X will give you "foo.bf" when you request "FOO.bf" 00:21:41 ais523, I planned to reverse that ;) 00:21:45 [ehird:~/Code/scraps/2009-03] % tecoc make hello.tec 00:21:45 *@I/^AHello, world! 00:21:46 ^A$EX/$EX$$ 00:21:48 [ehird:~/Code/scraps/2009-03] % mung hello.tec 00:21:50 Hello, world! 00:21:57 AnMaster: it'll give FoO.bf if you had named it that 00:21:58 ais523: It MUNGs Until No Good. (Runs a TECO batch script.) <-- DON'T GIVE UP 00:22:06 ehird, exactly 00:22:14 AnMaster: what about that snippet of intercal 00:22:26 oh wow 00:22:27 ehird, "until no good" sounded so intercal-y 00:22:28 the TECO manual! 00:22:32 <3 00:22:33 ehird, WHERE!? 00:22:35 Copyright (C) 1979, 1985 TECO SIG 00:22:39 AnMaster: http://almy.us/files/tecodoc.zip 00:22:40 teco.doc 00:22:44 (its plaintext) 00:22:57 * ehird makes a TECO shrine 00:23:04 ehird, a listing says "Long filenames are supported" 00:23:07 ... 00:23:08 yep 00:23:11 wth 00:23:16 DOS long filenames 00:23:20 strange zip 00:23:21 The contents: "Yes, long file names are supported in this version of TECO!" 00:23:26 ah 00:24:35 ehird, if you go TECO I should go Genera. Have to get around testing it 00:24:40 get around to* 00:24:49 well, genera just uses an emacs-alike 00:25:02 ehird, and emacs is teco lookalike? 00:25:12 or was 00:25:14 heh 00:25:30 gnu emacs is quite far from it 00:25:52 If you include unusual commands in your initialization file, you 00:25:52 would be prudent to surround such commands with the ? command. 00:25:54 This causes TECO to type the commands out when they are executed 00:25:56 (see section 5.18.4). You should also print an informative 00:25:58 message on the terminal reminding other users that this version 00:26:00 of TECO has been customized. 00:26:02 "You know, in case a burglar enters your house and starts teco." 00:26:13 err 00:26:20 multi-user single login? 00:26:27 People using your terminal. 00:26:30 Not uncommon in the 80s. 00:26:35 ehird, hm 00:26:44 ehird, wouldn't they have separate logins? 00:27:01 Logging out and in would be a pain. 00:27:05 oh right 00:27:09 Remember, really slow. 00:27:09 no fast user switching 00:27:32 which microsoft introduced as "new in XP" but Linux and other *nix had for ages before 00:27:52 * AnMaster switches vt 00:27:53 fast user switching is a ridiculous name for the term, anyway 00:27:59 it's just the ability to have multiple graphical VTs 00:28:03 logged in as different people 00:28:05 on one computer 00:28:14 tell that to john q public 00:28:23 well, yes, it's all about the advertising 00:28:26 ais523, yes. I used to use 2 graphical VTs ages ago 00:28:28 fast user switching: you can switch between users without logging in and out 00:28:33 simple 00:28:48 universal binary ("dual-architechture Mach-O binary"): it works on powerpc and intel macs. 00:28:49 ehird, yes I could do it on Linux for ages 00:28:56 AnMaster: I'm talking about terminology with ais523 00:29:03 now, that description really doesn't do it for the general public either 00:29:06 ok dual arch... 00:29:09 the without logging in and out 00:29:10 now that isn't common in ELF 00:29:12 why would they want to do that? 00:29:13 afaik 00:29:13 ais523: sure it does 00:29:17 it just makes it harder to shut down the computer 00:29:25 I know, I was with a couple of general public ages ago 00:29:28 well, OS X has promoted multiple users from the start 00:29:31 who were thinking about it 00:29:37 so that's windows thinking, probably 00:29:43 the problem was they were just hitting switch user not logout by mistake when they wanted to logout 00:29:46 and yes, Windows thinking 00:29:48 it just makes it harder to shut down the computer <-- ? 00:29:55 AnMaster: think about it from a user with one account 00:29:58 00:29:55 up 38 days, 9:44, 35 users, load average: 0.15, 0.17, 0.18 00:29:59 log out just lets them 00:29:59 ... 00:30:00 1) log back in 00:30:02 2) shut down 00:30:04 why would they want to log out? 00:30:11 why would they want to shutdown? 00:30:12 (RHETORICAL QUESTION RHETORICAL QUESTION RHETORICAL QUESTION) 00:30:12 they couldn't figure out what the difference was, or why they wouldn't want to log out to let someone else use the computer 00:30:19 AnMaster: because of saving electricity, of course 00:30:20 also RHETORICAL 00:30:24 besides, it's bad to leave computers on overnight 00:30:34 ehird: and switch user is even more useless on a single-person computer than log out 00:30:36 ais523, well ok, most people don't run BOINC 00:30:40 during night 00:30:48 ais523, but what about suspend to disk 00:30:53 AnMaster: yeah, that will be so useful when the planet dies out 00:30:54 forgot what windows call it 00:30:58 hibernate? only when they're in the middle of something 00:30:59 more useless seti results! 00:31:07 (ais523: I leave mine on standby overnight. All the startup speed, much less power usage.) 00:31:16 ehird, no, I run folding at home 00:31:19 ehird: I shut this down, but then, it's a laptop 00:31:21 it uses boinc too 00:31:25 has folding at home got any real results yet? 00:31:30 I used to run climateprediction 00:31:46 ehird, not that I remember. But I don't check their website really 00:31:56 AnMaster: also, why do you use a proprietary program, ey? 00:32:05 anyway, recently one of them was complaining about not knowing how to move a file from a USB stick to a directory in Windows 00:32:14 that confuses me, I thought it was a simple operation even in Windows... 00:32:21 also, running BOINC overnight would be fucking crazy on this 00:32:26 it seems they couldn't figure out how to open two graphical directory entries at once 00:32:29 since the fans would spin to full speed due to 200% CPU usage 00:32:42 boinc is LGPL-2.1 00:32:44 (and in future (post upgrade), the _two_ fans will go bezerk due to 800% CPU usage...) 00:32:48 (good luck sleeping through that!) 00:32:50 I just checked 00:33:11 ehird, my system has constant speed fans 00:33:34 my system's fans are pretty much always either off or so low I can't hear them without trying 00:33:42 I imagine a Mac Pro's fans are rather powerful 00:33:45 + I sleep in a separate room due to two small rooms and not being able to fit desk and bed in same room 00:34:00 does it occur to anyone that fans are kind of a hack solution to the "our hardware runs hot" problem? :D 00:34:11 ehird, yes. 00:34:14 get water cooling 00:34:21 I don't think apple offers that 00:34:32 ehird, iirc they did on some G5 iirc? 00:34:42 maybe 00:34:49 not for years, though, then 00:34:51 ehird, the 8 core Mac Pro G5 or something 00:34:52 iirc 00:35:09 i've seen pictures of the new 8 core nahelem mac pro 00:35:11 *nehalem 00:35:13 two fans 00:35:19 well the one I remember was definitely PPC 00:36:04 AnMaster: also, why do you use a proprietary program, ey? <-- so. What did you mean. boinc is open source 00:36:14 wp says folding@home is propreitary 00:36:28 oh, so that's how you solve dust in tower computers, blow them with compressed air 00:36:28 ok that may be true 00:36:29 I always wondere 00:36:30 d 00:36:30 I haven't checked 00:36:43 ehird, err of course. what did you expect? 00:36:52 i dunno, I just let my old tower get dusty :D 00:36:53 and how did you solve it for your own computer? 00:37:11 note, however, that this room is exceptionally dusty 00:37:13 ehird, be careful or you will get a dust puppy. And since you _hate_ uf 00:37:23 due to it being old and having tons and tons of crap I never touch covered with dust 00:37:28 need to fix that sometime 00:37:30 ehird, clean? 00:37:31 yep, compressed air's the usual way 00:37:47 ehird 00:37:47 rm -rf dust 00:37:54 AnMaster: it's also a big room, I'd have to get a big ladder and everything and dig under all the shit and whatnot 00:38:04 ais523, filters prolongs the period between cleaning 00:38:06 very useful 00:38:16 you're not the guy I would expect to deliver a shitjudgement due to not reading about the case 00:38:22 comex: :D 00:38:25 ehird, don't you clean your room every now and then 00:38:31 when I was your age... 00:38:37 AnMaster: yes, but it's near-impossible to clean every single bit of the room 00:38:41 my parents forced me to clean a lot 00:38:43 if you saw it you'd understand 00:38:52 ehird, pic or it didn't happen 00:38:56 hmm, an air filter ay? 00:39:06 ehird, for computers? Yes a very good idea 00:39:09 do they make much noise? 00:39:18 ehird, um. *passive filter* 00:39:20 (^joke) 00:39:30 you take them out and clean them every month or so 00:39:36 (^joke) <-- see 00:39:38 well in a dusty room maybe more often 00:39:49 ehird, yes. But lag made it arrive later 00:40:02 do they make much noise? ehird, um. *passive filter* you take them out and clean them every month or so (^joke) 00:40:21 (^joke) <-- see well in a dusty room maybe more often ehird, yes. But lag made it arrive later 00:40:37 My main strategy would be to remove all the rubbish I never use to somewhere. 00:40:41 that would solve about 85% of the problem 00:41:03 ehird, pic!!! 00:41:11 I'll give you a pic post-cleaning :P 00:41:17 ehird, pre please 00:41:23 I want it when I'm still young 00:41:28 XD 00:42:21 ehird, I *have* been your age so I know the issue 00:42:37 when you grow a bit older it will be paper. Lots of paper 00:42:39 all over the room 00:42:52 in your age it was iirc old lego technic and such 00:42:57 XD 00:43:04 ehird, did it match? 00:43:13 ? 00:43:29 dusty boxes with lego technic... around 13 00:43:31 all over the room 00:43:41 http://www.avforums.com/forums/computer-systems/56924-kramer-other-members-promoting-water-cooling-you-have-alot-answer.html <--- hahahahaha 00:43:44 I had lots of lego when young 00:43:50 AnMaster: I think I grew out of lego and stuff when I was like 10 00:43:51 :\ 00:43:58 ehird, well I said *dusty* 00:44:04 True. 00:44:18 ehird, also it depends on what lego. The Mindstorms thing that you can program in C lasts a bit longer 00:44:19 :P 00:44:24 * AnMaster has that somewhere 00:44:41 haha, I like the suggestion further along that thread to put fish in the cooling 00:44:44 also programming it in C is unsupported 00:44:53 Ah, that good ol' topic :D 00:45:37 -!- ais523 has quit (Remote closed the connection). 00:48:57 hrmph, teco should read ~/.teco :( 00:49:32 "I did wrap the power supply unit in cling film plastic wrap before I filled it with water" 00:49:32 XD XD XD 00:49:51 http://www.avforums.com/forums/computer-systems/56924-kramer-other-members-promoting-water-cooling-you-have-alot-answer.html <--- hahahahaha <-- don't have time to read it all, is it a windup or not? 00:49:59 i don't know, it's just funny either way 00:50:27 IIRC it is, but it took some pages until he told them 00:56:54 hm 00:56:56 passive cooling 00:57:00 would rock 00:57:07 like my mobile phone, no fan 00:57:32 so a HUGE heat sink 00:58:12 XD 00:58:23 AnMaster: that would be rather a fire hazard 00:58:31 ehird, you mean with dust? 00:58:39 hm 00:58:43 I meant 00:58:46 if you thrash the cpu a lot 00:59:05 ehird, of course it would have to be dimensioned for the climate and load 00:59:22 and possibly have a backup fan in if the worst come to the worst 01:00:27 http://en.wikipedia.org/wiki/File:2007TaipeiITMonth_IntelOCLiveTest_Overclocking-6.jpg 01:00:30 i like that picture. 01:00:47 "OH IT IS RUNNING A BIT HOT WELL HER IS SOME LIQUID NITROGEN" 01:00:50 *HERE 01:01:29 hehe 01:02:10 ehird, why is part protected by a piece of fabric? 01:02:18 risk of getting too cool? 01:02:28 hmm 01:02:29 not sure 01:03:49 you know, the fact that adding more cores gives better performance increases than piling on ghz hasn't registered in my brain yet 01:04:10 its native comparison routine rates an old single-core 3ghz above 2 x quad-core 2.2ghz... 01:04:19 so I have to emulate it in software instead :P 01:04:39 brains need hot-swappable kernel updates 01:04:48 like, we could give old fogeys society boosterpacks. 01:05:00 -!- olsner has quit ("Leaving"). 01:06:29 ehird, err 01:06:38 ehird, depends on task if more cores > better 01:06:50 you hit a scalability limit at some point 01:06:54 when overhead is too large 01:07:07 of sync stuff 01:07:09 well, yes, but I think you'd agree that a 1 core 3ghz processor from 2006 is a lot worse in most cases than two quad-core 2.2ghz intel nehalems from november 2008 01:07:15 where most means almost all 01:07:34 yes. And even more so if the 1 core one is a Pentium 4 01:07:43 ehird, but other stuff improved too 01:07:49 ofc 01:07:52 more advanced SSE for example 01:08:00 like SSE4 or whatever we are at now 01:08:24 it's just that my internal brain's cpu comparison routine is (a b -> compare(a.ghz, b.ghz)) 01:08:28 which is very broken :D 01:08:57 yes it is 01:09:06 good thing I don't have to perform that very often 01:09:09 ehird, also my brain does it in mhz 01:09:20 heh, my brain works at a granularity of X.Yghz 01:09:21 then it realises that we hit 1 GHz ages ago 01:09:35 1ghz? my mom used that as a kid. :| 01:09:51 and then it remembers mhz/ghz is a silly way to compare 01:09:57 ehird, err probably not 01:10:05 it was an exaggerationjoke. 01:10:10 ok 01:10:24 Back then the order of the day was FORTRAN and LISP on big mainframes and punchcards :P 01:10:32 indeed 01:10:38 ehird, you used pre-ghz? 01:10:44 Hrmmm. 01:10:50 I mean, not mobile phones and such 01:11:06 In 1998 I had a Windows 3.11 computer (yes, way obsolete at the time, parents were poor) 01:11:06 or old system, but contemporary ones 01:11:12 That was probably pre-ghz. 01:11:24 It had a 15" non-flat CRT screen xD 01:11:27 ehird, your parents got a lot more money now then. with you getting an upgrade soon 01:11:32 lucky you 01:11:39 mostly my money 01:11:50 even luckier you 01:11:52 and the Apple Tax makes it a bit of a stretch :-D 01:11:54 where did you get it?! 01:12:02 apple tax? 01:12:16 apple tax = the purely insane amount of money apple adds on to the actual value of the hardware 01:12:18 ehird, as someone living in UK you should prefer Acorn 01:12:25 I used an Acorn PC in school! 01:12:26 a pitty they no longer exist 01:12:28 oh? 01:12:29 cool 01:12:37 ehird, you know ARM is all that remains of Acorn 01:12:42 :< 01:12:51 RISC OS was nic 01:12:51 e 01:12:54 well yes 01:12:57 so was Genera 01:13:15 ehird, there is always !Befunge for you on RISC OS 01:13:20 haha, yep 01:13:22 too bad it sucks 01:13:38 well it used to be next best after ccbi 01:13:41 back before cfunge 01:17:59 true 01:18:03 the author updates his site regularly, it seems 01:18:09 has Deewiant contacted him about updating !Befunge? 01:19:05 ehird, nah 01:19:13 ehird, he didn't contact Mike either 01:19:17 mm 01:19:20 he said it wasn't his job 01:19:22 i might contact him :) 01:19:25 :P 01:19:37 ehird, I often thought about it, but "meh" 01:19:54 it'd be nice to have more competition 01:22:07 -!- Sgeo has joined. 01:25:46 bye 01:26:19 hm? 01:31:37 -!- FireFly has quit ("Later"). 01:59:50 -!- Sgeo has changed nick to Sgeo[Scrubs]. 02:18:04 -!- Deewiant_ has joined. 02:18:09 -!- fizzie has quit (calvino.freenode.net irc.freenode.net). 02:18:09 -!- fungot has quit (calvino.freenode.net irc.freenode.net). 02:18:09 -!- Deewiant has quit (calvino.freenode.net irc.freenode.net). 02:18:20 -!- fungot has joined. 02:18:20 -!- fizzie has joined. 02:18:20 -!- Deewiant has joined. 02:19:03 -!- Deewiant has quit (Connection reset by peer). 02:20:13 -!- Ilari_ has joined. 02:25:13 -!- Ilari has quit (Read error: 110 (Connection timed out)). 02:38:17 -!- neldoreth has quit (Read error: 113 (No route to host)). 02:43:39 -!- Ilari_ has changed nick to Ilari. 02:53:07 * kerlo blinks 02:53:19 Who's been using Unicode in here? 03:07:54 -!- MizardX has quit (Read error: 54 (Connection reset by peer)). 03:47:14 -!- Sgeo[Scrubs] has changed nick to Sgeo. 04:15:25 -!- GreaseMonkey has joined. 04:26:11 unicode is evil 04:26:47 * kerlo scribbles on a piece of paper 04:27:20 ehird's mom is probably 31 or older. 04:27:50 95% 04:27:56 Therefore, she was only a kid at least seven years ago. 04:28:03 Are you giving me the probability of her being 31 or older? 04:28:11 yes 04:29:03 For what n is the probability of her being n or older 50%? 04:29:47 hmmm 04:29:55 45 04:30:07 no, 43 04:30:14 no, 45 04:30:15 * kerlo scribbles more 04:30:21 final answer 04:30:58 My n is 41. Final answer. 04:31:03 So, let's fight to the death. 04:31:41 ehird, how old is your mom? 05:06:31 -!- psygnisfive has joined. 05:06:57 ehird! 05:07:21 or anyone else interested in delightful discoveries about fractals and such 05:07:53 listen up! 05:07:55 do this: 05:08:32 on a grid, with lines labeled from 0 05:09:43 take the bitwise logical operation of the gridline numbers (e.g. at the point (4,12) take, say, the bitwise nand of 4 and 12). if the result is 0, draw a circle on the point. 05:09:54 or make some other obvious mark. 05:10:09 do this for, say... an 8x8 or 16x16 grid. 05:10:48 or if you're slick, code it up using a graphics API and see what results for decently sized space, say 512x512 05:14:13 or something like that. :P 05:14:31 i forget whether its if the result is 0, or below some value, or whatever. anyway, you get the idea. 05:15:00 and works too, i think. 05:17:54 yeah, if you do an AND, that works. 05:23:32 -!- kerlo has set topic: http://tunes.org/~nef/logs/esoteric/?C=N;O=D | ascii z. 05:23:35 -!- kerlo has set topic: http://tunes.org/~nef/logs/esoteric/?C=N;O=D | ascii plz. 06:01:37 -!- GreaseMonkey has quit ("Client Excited"). 06:11:23 ONE ASCII TO RULE THEM ALL 06:16:50 -!- MizardX has joined. 06:56:27 -!- neldoreth has joined. 07:27:49 -!- Slereah_ has quit (Read error: 60 (Operation timed out)). 07:28:55 -!- Slereah has joined. 07:38:00 -!- Sgeo has quit (Read error: 110 (Connection timed out)). 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:00:13 -!- asiekierk has joined. 08:00:27 oh my god i'm going to build a mechanical tv probably 08:04:51 I suggest starting out somewhat easy... 08:05:11 Build a mechanical color adaptor. ;p 08:15:17 -!- Deewiant_ has changed nick to Deewiant. 08:20:25 pikhq: As in, a color mechanical tv? 08:21:01 Easy. Make a small color wheel, speed up the nipkow disc and make the color wheel spin too, make the proper image and BAM! CBS/Baird/Nipkow color TV! 08:25:08 Well, I was thinking color wheel disk for a standard B&W NTSC TV. 08:25:13 And yes, it has been done. 08:26:14 Even NTSC for NBTV has been done by one guy 08:27:06 it's called "NBSC" 08:27:20 now i'm waiting for someone to do PAL for NBTV... but that lacks a good name 08:28:41 NB-PAL? 08:31:06 Also, I am wondering whether you can make a Nipkow camera by switching the LED with a light sensor... 08:31:16 as in, swapping them in the device 08:31:22 so no LED but a light sensor 08:31:26 then transmit that to the PC 08:31:28 Don't see why not. 08:31:28 exchange parts 08:31:35 and bam! Nipkow Camera/TV! 08:32:37 Also, pikhq, did you build a mechanical TV once? 08:43:31 No, but it seems like something I could do. 08:47:32 I'm currently looking for a good tutorial 09:39:27 And I'm wondering why am I converting the copy of the first Baird-system play 09:39:45 "The Man with the Flower in his Mouth" 09:39:49 into the NBTV standard 09:41:03 30% 09:41:09 -!- tombom has joined. 09:46:22 74%, somehow :P 09:47:22 About 3 minutes left, then I'll start working on my Televisor, then convert the play from "prepared" AVI to the WAV, then play it from somewhere (my Wii, possibly) and WIN 09:48:16 90% - 1 minute left :) 09:58:29 augh, need to re-convert it 09:58:36 but does it quite quickly :) 09:59:07 converting to WAV 09:59:56 way too fast, it does like, half a minute of the movie in a second 10:00:42 well, it actually does 5 seconds/second :P 10:00:46 and done :) 10:01:40 oh yay, the awesome sound of the NBTV :) 10:01:49 i must reconvert it though :( 10:04:15 done :) 10:04:22 Now I will need to make the Nipkow disk 10:20:28 Having fun? 10:57:30 unicode is evil <-- wrong 10:57:42 kerlo, bsmntbombdood: åäö åäö åäö 10:58:32 i think i just made the coolest testcard/opening ever 10:58:34 well, the opening is 10:58:51 20 seconds of the ye` ole` BBC countdown along with a 15-second clock and numbers for the last 3 seconds 11:00:40 Spiffy. 11:01:08 and of course 11:01:13 when I was frame-tuning the whole thing 11:01:15 Sony Vegas crashed 11:01:26 hopefully it has autosave 11:04:34 the thing takes exactly 2 minutes and 30 seconds 11:04:38 and has a bunch of NBTV testcards 11:04:41 1 reproduced by me 11:04:45 another made by me 11:04:51 and some other mini-testcards from the 'net 11:05:24 I've got to admit, NBTV is rather clever... 11:06:19 nope, it'll take 2 minutes and 15 seconds 11:06:57 I can send it to you if you want 11:07:38 Sure, why not? 11:07:51 The tuning signals and testcards take about 1 minute 50 seconds 11:07:55 the rest is the "mini-clock" 11:08:10 Might be tempted to build a Nipkow-disc TV set some time soon... 11:08:13 :) 11:08:18 Remember my video is 32x48 11:08:30 not for downscaling, it's all mostly pixel-by-pixel already 11:08:35 Do you want WAV format or the original WMV? 11:08:36 Maybe get an NTSC->Nipkow converter going for the hell of it. ;p 11:08:44 Yes? 11:09:03 Which format do you want 11:09:17 the WAV format which you can play into your NBTV (left channel - video, right channel - mono audio) 11:09:21 Both, if you don't mind? 11:09:31 Actually, you can convert a WMV to a WAV 11:09:37 but you first need to convert it to AVI for some reason 11:09:58 I will give you the link for the converter 11:10:02 it can also live-convert videos 11:10:08 and I converted "Man with the flower in his mouth" for it 11:11:17 I will send you the installer and the BMPs with it (why not?) 11:11:41 my testcard is also availble in "lame color version", btw, but i think you can just convert SMPTE bars to it 11:12:55 Also, it doesn't really want to convert the WMV, will need to encode in higher res maybe :( 11:13:28 wait, i think directshow+ffmpeg did it 11:13:41 yep, sorta 11:15:32 wait, i encoded a thing wrongly 11:17:11 sending you the pack 11:17:25 Video2NBTV (the AVI->NBTV converter), my testcard set and the AVI 11:17:43 give me your email tho 11:53:00 I've always wanted to construct a display using rotating discs. 11:53:30 So do it 11:53:41 I offer a tuning helper if anyone wants 11:53:52 Every disc has a pattern of stripes on it, and they're all stacked, and it uses Fourier transforms or something to figure out how to rotate them to give the right image. 11:53:59 ph 11:54:06 oh* 12:49:56 -!- asiekierk has changed nick to asie[away]. 13:03:21 -!- neldoret1 has joined. 13:12:10 -!- neldoreth has quit (Read error: 113 (No route to host)). 13:20:30 -!- asie[away] has quit (Read error: 110 (Connection timed out)). 13:40:02 -!- asie[away] has joined. 13:40:04 -!- asie[away] has changed nick to asie[brb]. 13:40:50 -!- asie[brb] has changed nick to asie[busy]. 13:40:57 Progress: Cutting out the material for the Nipkow Disk 13:41:53 ok, now cutting out the disk itself 13:43:59 ow, my fingers hurt <:( 13:50:15 i hate my laser printer 13:50:27 the ink is so weird i need to repaint some of the thing with a black marker 13:52:10 about 40% done 13:53:01 -!- Mony has joined. 13:53:28 -!- neldoret1 has quit (Read error: 113 (No route to host)). 13:54:07 70% 13:54:07 plop 13:55:19 oh well 13:55:22 hi Mony 13:55:25 i'm making a mechanical TV set 13:57:27 what's that ? 13:58:16 a TV that uses the "Nipkow disk" and a LED and audio to show very lo-res analogue TV on a tiny half-inch screen* 13:58:27 * - using a single A4 sheet for the disk 13:59:57 for now, I have cut approx. 1/5th of that disk 14:00:54 and the holes will be perfect 14:00:55 :) 14:01:54 1/4th, getting closer 14:03:56 1/2 14:05:26 nearly done 14:06:35 done 14:06:45 now repainting some parts with a black marker (I hate my ink) 14:13:21 -!- ais523 has joined. 14:19:00 the wheel works ((manually though, i will need to make bigger holes) 14:21:19 -!- rabideejit has joined. 14:21:33 -!- FireFly has joined. 14:21:46 Greeting. 14:23:02 I have a new language for you. 14:23:02 Consider deciphering the contents of http://esoteric.voxelperfect.net/wiki/Kolmogorov and http://www.killersmurf.com/projects/Kolmogorov 14:24:53 ... 14:24:58 Maaaan 14:25:10 Is there an interpreter already? 14:25:14 yes 14:25:15 If there is, he totally smoked me :o 14:25:20 Me and my Andrei machine 14:25:29 Aaah! It's you. You inspired me. 14:25:40 greetings, rabideejit 14:25:51 Did I? 14:26:01 indeed you did. 14:26:03 Then I will take all credit 14:26:06 Woooo 14:26:22 Greetings ais. 14:26:25 Graph rewriting is a bitch and I'm a terrible programmer. 14:26:35 So I never managed to write an interpreter. 14:26:51 looks somewhat higher-level than the Andrei Machine 14:27:11 given that you have a BF equivalence already, probably it's actually quite usable, which is always nice in an esolang 14:27:12 Yes. The andrei machine is much closer to what Kolmogorov had in mind, I'd say. 14:27:13 I don't do high level. 14:27:34 Actually, it's exactly what Kolmogorov had in mind, except for the I/O. 14:28:05 If you want, the original article is here : http://membres.lycos.fr/bewulf/Russell/Kolmo/ 14:28:13 They won't let me put it on the wiki though :3 14:29:36 the wiki's public-domain, you can't put copyrighted things on there 14:29:41 and things are copyrighted by default 14:29:54 I know. 14:30:12 Though I doubt we'd get in trouble 14:30:21 Ah, thankyou! I was looking for that. My source was Uri Gurevich's on Kolmogorov Machines and Related issues. 14:30:35 Yeah, it is hard to find. 14:30:40 Even as a used book 14:31:44 Maybe I should finish my Fibonacci on that language. 14:32:41 The commands are much easier on that one 14:34:13 I should still try mine one day. This one doesn't have the global graph transformation. 14:37:03 Ah, the Andrei machine has an easy-to-reach register. The challenger of the Kolmogorov language is all your data is all pointing to each other and you get lost. Hence the 500 line 99 bottles of beer. 14:37:11 *challenge 14:37:24 Freudian there. 14:37:54 Ah but I guess the Andrei register is a bit hard to reach, as you have to run through the graph to get it. 14:37:59 I usually try easy I/O. 14:38:14 Especially here, because it's the only way to know if it works correctly 14:38:24 Indeed. 14:38:38 I would do a debugger where you can see the actual graph, but I have no idea how to do it 14:38:52 It would be crazy. 14:39:24 The shitty part though is the graph recognition. 14:39:43 To use the transformations, it has to be able to recognize any pattern starting at 0 14:39:48 Yes, it seems a very complex problem. 14:40:23 Hmmmmm! 14:40:40 Especially since it doesn't have to be connected 14:44:02 hum, ho. 14:45:58 I must take your leave, I need to eat some yogurt. Nice to meet you Slereah. 14:46:01 -!- jix has joined. 14:46:05 Bye. 14:46:19 -!- rabideejit has quit ("Leaving."). 14:52:59 fjhdsjfh 14:53:00 morning 14:53:32 Hello dude. 14:53:37 sup 14:53:47 Turns out I'm an inspiration. 14:53:55 ^bf ,>++++++[<-------->-],[<+>-] ^bf ,>++++++[<-------->-],[<+>-]<.!43 14:54:04 7 14:54:05 It's the beard, is it? 14:54:32 so did anyone try that thing i suggested earlier? :P 14:54:41 What was that thing? 14:56:07 taking the bitwise AND of (N+, N+) and graphing at only the points where that == 0 14:56:50 Wouldn't that be just everywhere outside of 1's everywhere? 14:57:00 what? 14:57:23 Owait, no 14:57:48 Also why do you want that? 14:57:57 just do it :) 14:58:17 do it for an 8x8 square 14:58:26 so for N = 0..7 14:58:46 Lemme get my snake 14:59:11 Fuck, it's been a while since I coded. 14:59:22 well 14:59:28 you can draw it by hand for an 8x8 square 14:59:37 just to get a sense of what results 14:59:54 Except that it would involve doing a whole bunch of little bitwise operations 15:01:19 actually 15:01:23 its a lot faster than you think 15:01:38 Yeah, but then, I can generalize to any size 15:01:45 plus, the magic doesnt happen unless you graph it two dimensionally 15:01:48 but anyway, whatever 15:01:54 as long as you can visualize it 15:01:57 Plus I can just use my old binary converter of my Post machine 15:02:08 Also you can graph it with python 15:02:18 "#Decimal to binary string" 15:02:22 Good old Postal 15:03:37 what? 15:05:00 Old program 15:05:06 ok. 15:05:12 anyway 15:05:20 essentially what you want to do is something like 15:06:25 0.upto(n) do |i| 15:06:25 0.upto(n) do |j| 15:06:26 make_pixel_black(i,j) if 0 == i&j 15:06:28 end 15:06:30 end 15:12:23 psygnisfive: Python does not paste well at all over IRC 15:12:34 at least convert tabs to spaces so we have a chance at seing what you're writing 15:12:37 good think i didn't use python! 15:12:38 or use a pastebin 15:12:42 :P 15:12:43 ah, yes 15:12:53 I just noticed the every-other-line-in-italics 15:12:59 which is a usual sign to me that someone's tried to paste it 15:13:04 every-other-line-in-italics? 15:13:06 but the |i| would suggest more Ruby 15:13:11 i dont see these things that you speak of. 15:13:15 i see all and only what i wrote. 15:13:16 psygnisfive: my client interprets tab as toggle-italics 15:13:23 well your client is stupid. 15:13:25 :P 15:14:00 Tab *is* ctrl-i, so it's not that far off. 15:14:17 tab is not ctrl-i 15:14:19 wtf are you smoking 15:14:51 tab is indeed control-I, not on the keyboard, but in terms of representation in a text file 15:14:54 they're both ASCII code 8 15:14:55 *9 15:15:24 ctrl-i is not an ascii character. so no. 15:15:26 As unrefutable proof: Wikipedia redirects from "Control-I" to "Tab key". 15:15:36 lies. 15:15:41 control-a is 1, control-b is 2, control-c is 3, and so on 15:15:52 lies lies and more lies 15:16:04 have you ever wondered why it requires a lot of trickery to distinguish return and control-j from inside a program, for instance? 15:16:25 no. 15:16:31 because ive never experienced such problems. 15:22:03 so slereah 15:22:05 have you dones it yet 15:26:11 X X X X X X X X X X X X X X X X X X X X 15:26:11 X X X X X X X X X X 15:26:11 X X X X X X X X X X 15:26:11 X X X X X 15:26:11 X X X X X X X X X X X X 15:26:11 X X X X X X 15:26:13 X X X X X X 15:26:15 X X X 15:26:17 X X X X X X X X X X X X 15:26:19 X X X X X X 15:26:21 X X X X X X 15:26:23 X X X 15:26:25 X X X X X X X X 15:26:27 X X X X 15:26:29 X X X X 15:26:31 X X 15:26:33 X X X X X X X X X X X X X X X X 15:26:35 X X X X X X X X 15:26:37 X X X X X X X X 15:26:39 X X X X 15:26:41 Like this 15:26:43 D: 15:26:50 X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X 15:26:50 X X X X X X X X X X X X X X X 15:26:50 X X X X X X X X X X X X X X X X 15:26:50 -!- Slereah has quit (Excess Flood). 15:27:03 -!- Slereah has joined. 15:27:04 Who ate the corners off the sierpinsky cookie? 15:27:04 It does look fractally. 15:29:16 Well, it is fractally in the other way around it seems 15:29:57 Finite sized patterns that repeat at bigger scales :o 15:30:21 Is there a way to display Python in a monospaced font? 15:39:00 slereah 15:39:00 -!- Hiato has joined. 15:39:06 its a sierpinski gasket 15:39:14 so yes, it is "fractally" 15:39:18 but the more interesting thing is that 15:39:24 What is a gasket 15:39:28 that is. 15:39:59 the more interesting thing is that its the sierpinski gasket AND it comes about JUST from doing bitwise AND over N^2 15:40:03 i mean, how ridiculous is that? 15:40:20 A gasket is also: 1. gasket -- (seal consisting of a ring for packing pistons or sealing a pipe joint) 15:40:23 You are aware that fractals don't have to be complex 15:40:35 Cantor set is easy as shit to create 15:40:46 yes, i know this. 15:40:58 but do you *feel* it? 15:41:07 but the point is more that this structure comes about from simple bitwise logic on numbers 15:41:22 -!- neldoreth has joined. 15:41:33 I am hard to fill with wonder 15:41:39 Although semen is another matter 15:42:13 or more precisely, the gasket is there in bitwise logic over ALL integers. so that its not some convoluted escape time algorithm, or geometric copy algorithm (tho it might be equivalent to the last one) 15:42:20 instead, its just AND(N,N) 15:42:48 "Also, it seems like they could fill more things with cream." "Just "things" in general? Where do you draw the line?" "Well, my thinking is this: if it's empty, fill it with cream." (That's one of the quotes fungot has.) 15:42:48 fizzie: you're either with them or are they only used for rebuilds in case of hack attacks illegal activity, 15:43:19 is fungot a markov bot? 15:43:19 psygnisfive: dang... the guy tried to argue) because lisp and scheme 15:43:29 Well, a close relative, anyway. 15:43:42 hm. he should be a phrase-structure bot instead! :| 15:44:15 Data structures are a bit iffy to do with befunge; I went with the simplest option. 15:44:19 sure, it'd require more computation, but it would produce grammatically correct sentences with absolutely not sensibility to them 15:44:25 oh. its befunge. nevermind :D 15:44:44 Funge-98, to be exact: http://zem.fi/~fis/fungot.b98.txt 15:44:44 fizzie: that's all. easily parsed even in emacs. wanting to see a larger project you end up with 15:44:50 well, you actually dont have to do it with datastructures 15:45:00 just some sort of context free production system 15:45:03 Oh, that was an eerily suitable reply. 15:45:04 -!- neldoret1 has joined. 15:45:07 -!- neldoreth has quit (Client Quit). 15:45:08 fizzie: yep 15:45:17 so if it can easily be done even in Emacs, why not in Befunge? 15:45:32 -!- asie[busy] has changed nick to asiekierk. 15:49:50 { (x,y) : x,y in N; x&y = 0 } is the gasket. how crazy is that tho 15:49:51 seriously 15:49:53 think about it 15:50:48 it generalizes to gasket-like structures in n dimensions: { p : p in N^k; &p = 0 } 15:51:32 Psog 15:51:36 How did you know this though 15:51:57 a professor of mine does a bunch of crazy stuff with logic, philosophy, and computation 15:52:13 he coauthored a book called The Philosophical Computer, and he mentions this in one chapter. 15:52:56 he's apparently very interested in what the fundamental principle is that leads to the Sierpinski Gasket showing up all over the place (bitwise logic, 1d CAs, GoL, etc.) 15:53:38 i think i've determined why it shows up in GoL tho. GoL is actually simulating a 4-state 1D CA when it produces the gasket 15:53:39 so 15:53:42 thats how you get it. 15:53:49 Maybe God is just too lazy to finish his triangles 15:53:53 maybe! 15:53:59 Or the universe is filled with bees 15:53:59 so he's made things do it for him 15:54:03 BEES 15:54:11 And sip sip syrup sipping nigga are honeycombs 15:54:12 anyway, its just interesting that the same thing shows up again and again 15:54:24 it'd be interesting to find out precisely WHAT the general principle is 15:54:29 its probably something very simple 15:54:41 I think it's the bees 15:54:55 Well, labtime 15:54:57 anyway, im off to class. ciao bitches 16:00:56 -!- M0ny has joined. 16:03:55 -!- impomatic has joined. 16:06:52 03:27 kerlo: ehird's mom is probably 31 or older. 16:06:55 Correct. 16:06:57 14:26 h has left IRC (Excess Flood) 16:07:01 Fuck, more regex fuckery. 16:07:03 Too lazy to fix. 16:09:10 -!- Judofyr has joined. 16:09:33 -!- neldoret1 has quit (Client Quit). 16:13:31 kerlo: If you want to precisify the value, you can play 20 questions. 16:14:07 Or, y'know, just analyze LISP and FORTRAN release dates and soforth. 16:14:25 LISP and FORTRAN release dates would determine the value? 16:14:37 "03:27 kerlo: ehird's mom is probably 31 or older." 16:14:53 Based, presumably, on me saying that when my mother was a kid, LISP and FORTRAN on punchcards were the order of the day. 16:15:01 ah 16:16:05 Good lord, Apple made the iPod Shuffle even smaller. 16:16:18 Soon it'll take up negative space. 16:16:40 -!- neldoreth has joined. 16:17:05 they should fit it inside a pair of headphones 16:17:09 haha 16:17:19 why is that funny? I thought it was quite a good idea 16:17:26 after all, how many controls does the thing need? 16:17:52 it just has start/stop and forward, I think, except now it has playlists apparently 16:17:52 so hm 16:18:11 ah, here 16:18:17 volume up, volume down, and one button 16:18:28 single click: lay/pause, next track: double click, previous track: triple click 16:18:34 hear title and artist (TTS): hold 16:18:46 hold center button and release after tone: speaks out playlist names, click to select 16:19:00 -!- Mony has quit (Read error: 110 (Connection timed out)). 16:19:08 ais523: the thing is, they ship with earphones 16:19:13 http://images.apple.com/ipodshuffle/images/features_hero_20090311.jpg 16:19:19 I guess you could fit the button on to one 16:19:22 and up/down volume on another 16:22:51 Just stick an accelerometer in, and have you shake your head like you've got a seizure whenever you need to interact with it. 16:23:14 how do ipod shuffles work, controlwise? 16:23:25 ais523: I just told you! 16:23:29 ehird: volume up, volume down, and one button 16:23:29 15:18 ehird: single click: lay/pause, next track: double click, previous track: triple click 16:23:31 15:18 ehird: hear title and artist (TTS): hold 16:23:33 15:18 ehird: hold center button and release after tone: speaks out playlist names, click to select 16:23:40 on the side there's a volume up button, one single button, and the volume down 16:23:45 and the single button has the operations above 16:24:50 oh, ok 16:25:03 I'm kind-of doing something else at the moment, so I'm not really paying attention to IRC 16:25:20 and based on the name, presumably it plays in random order if given no other instructions? 16:26:10 yes 16:26:16 you can't make it go in normal order, I think 16:28:13 I've used headphones before which had a volume knob on each headphone 16:28:18 that's effectively 4 controls 16:28:42 you could have a rotating off/volume knob on one earphone, and the button on the other, I suppose 16:32:40 -!- Judofyr has quit ("raise Hand, 'wave'"). 16:41:45 -!- oklopol has quit (Read error: 110 (Connection timed out)). 16:43:37 -!- BeholdMyGlory has joined. 17:03:49 " Linux is by far the most popular UNIX OS" 17:03:51 Er... no... 17:04:11 change that to UNIX-compatible, and it's probably correct 17:04:19 OS X 17:04:24 has a larger market share than linux 17:05:48 isn't linux around 1% market share? 17:05:54 and mac around 9% or so? 17:05:58 hm, maybe a bit less 17:06:17 ehird: add in servers and embedded systems, and linux beats mac os x hollow 17:06:34 * ais523 wonders what proportion of UNIX-compatible systems are servers 17:06:37 embedded systems, sure 17:06:39 but servers? 17:06:41 I'm not so sure 17:06:46 BSD is very popular on servers 17:06:47 so is windows 17:07:03 yep, Windows isn't unix-compatible though so doesn't count 17:07:10 true 17:07:14 but BSD and Solaris both definitely factor into the server market 17:08:54 OS X Server, now... I don't think that's so very very popular. 17:09:04 no, although IIRC it does exist 17:09:06 Yeah, OS X server has like 0 market share. 17:09:21 I imagine it's mostly used in small businesses. 17:09:35 For corporate sites & email and internal intranet sites etc 17:09:38 "16.7% of smartphones sold worldwide during 2006 were using Linux[49]" -- that's a larger number than I expected. 17:10:00 From the infallible wikipedia, of course. 17:10:07 OS X Server does integrate its unix user accounts with the web services, which is nice. 17:10:15 Can't t hink of anyhting particularly exciting about it, though. 17:10:26 Also, it comes with all the dekstop apps, which is rather stupid. 17:10:29 *desktop 17:10:39 ehird: but they're the only thing that distinguishes OSX from Darwin 17:10:43 admittedly, it's a big and good selling point 17:11:01 ais523: Not quite. 17:11:10 The GUI in general is; but do you need iCal on a server? 17:11:20 well, I suppose so 17:11:36 I sort-of got the impression that OSX Server was designed to be used as a workstation and also a server at the same time 17:12:23 That would be a rather odd use-case. 17:12:32 "Sorry guys, I'm playing a dvd, slight slowdown" 17:16:11 I can imagine that use-case for people living at home who wanted a servery thing of their own 17:16:17 True 17:16:21 It's pricey, though. 17:16:25 I mean, even this laptop has apache installed, although other people can't access it except via a reverse tunnel 17:16:28 Like really pricey 17:16:50 10-client license is £312 17:16:50 well, that's not out of character for Apple, but it's no wonder why nobody buys it 17:16:58 ais523: regular OS X comes with apache 17:17:03 well, yes 17:17:07 does it come with an ircd? 17:17:17 I don't think OS X Server comes with an ircd :P 17:17:51 I have an ircd on here too, although I only use it for testing bots 17:18:16 Installing an ircd on here would be rather trivial 17:18:27 % port info ngircd 17:18:27 ngircd @0.12.1 (irc) 17:18:29 Variants: ident, universal 17:18:39 -!- impomatic has left (?). 17:18:48 So, same as (an apt-based) Linux (distro), really. 17:19:37 yep 17:19:46 so why buy the server version if the desktop version can do that? 17:19:59 That's what I'm asking. :P 17:20:15 maybe it's against the licence agreement 17:20:33 just like you aren't allowed to have more than 4 simultaneous incoming network connections on non-server versions of Windows 17:20:42 Now THAT I highly doubt... 17:21:12 After all, MacPorts is hosted on Mac OS Forge, which Apple runs (and personally approves all projects on, i.e. it's not something like berlios or whatever) 17:21:13 :P 17:21:19 but is that true about windows? 17:21:24 ehird: I mean, to use it as a server 17:21:25 Crazy! I'll have violated that billions of times... 17:21:31 as for that thing about Windows, I remember it from somewhere 17:21:31 ais523: right, but macports has servers 17:21:40 but it may have been false, or I might have misremembered 17:21:42 and is on a site with pseudo-official projects 17:22:44 Googling, it seems it's a Windows XP SP 2 thing, specifically 17:22:46 Someone should get an old eMac and run emacs on it 17:22:51 and the websites there seem to disagree about the number 17:22:56 2, 4, and 10 have all been reported 17:23:15 oh, and 5 17:24:17 grr... why are all the files on microsoft.com .doc files? 17:24:23 why do you think? 17:24:29 not HTML? 17:24:32 I could understand docx 17:24:37 but doc seems self-defeating for everyone 17:24:40 including Microsoft 17:24:41 because they're old 17:24:47 and they want to support old words 17:25:10 "Note: If SQL Server 2005 Express is running on Windows XP Home, it is limited to five simultaneous connections. If it is running on Windows 2000 or Windows XP Professional, it is limited to 10 simultaneous connections. However, these are limitations of the operating system and not of SQL Server 2005 Express." 17:25:23 found on a word document on microsoft.com, that's evidence, at least 17:25:24 oh, right 17:25:27 you can modify tha 17:25:27 t 17:25:31 trivially 17:26:16 "If you have not heard, Microsoft has announced the name for the next version of Windows, a.k.a. Longhorn. It will be called Windows Vista. The great news is, Windows Vista Beta 1, targeted at developers and IT professionals, is now available to MSDN Subscribers. Please check the new the new Windows Vista Developer Center for more details." 17:26:23 wow, didn't expect to randomly see that when searching 17:26:35 XD 17:26:44 I liked the longhorn name 17:26:52 it was vaguely phallic. Like Windows. 17:49:47 -!- BeholdMyGlory has quit (Remote closed the connection). 17:50:50 -!- BeholdMyGlory has joined. 17:58:25 -!- neldoret1 has joined. 17:58:35 -!- neldoreth has quit (Read error: 104 (Connection reset by peer)). 18:01:33 "AuroraUX - SunOS-based Operating System Written (Mostly) in Ada" 18:01:38 Well, it's certainly esoteric. 18:02:01 is it 100% military reliable secure? 18:02:05 who knows 18:02:12 given that it's written in ADA, it ought to be 18:02:17 that was the whole point behind ada 18:02:20 ada is not UPPERCASE 18:02:38 sorry, pet peeve... 18:02:42 the worst is LISP and JAVA 18:02:46 what, isn't it? 18:02:51 it's Ada 18:02:52 I thought it was named after someone 18:02:55 but written in uppercase anyway 18:02:57 Ada Lovelace 18:03:01 I know it isn't an acronym 18:03:04 and yes, I know who it's named after 18:03:18 http://en.wikipedia.org/wiki/Ada_(programming_language) netcraft^Wwikipedia confirms i 18:03:18 t 18:03:36 Wikipedia has it at Ada, though 18:03:39 you beat me to checking 18:05:38 -!- M0ny has quit (Read error: 110 (Connection timed out)). 18:08:48 [[It mostly crashes immediately, mostly due to some unsupported operations in the assembler backend, but for a carefully crafted program, we're able to get massive speedups. For something as complex as: 18:08:49 i = 0 18:08:51 while i < 10000000: 18:08:53 i = i + 1 18:08:55 our JIT is about 20x faster than CPython. ]] 18:09:01 I wish I could write programs that complex. 18:09:44 ehird: I can optimise that into i = 10000000 18:09:51 Dayum! 18:09:54 You're the best compiler ever. 18:09:56 that's probably more than a factor-of-20 speedup 18:09:58 Here, compile this program. 18:10:07 also, that announcement was tounge-in-cheek 18:10:12 *tongue 18:10:18 ehird: one of my friends actually said that at university, that they'd rather trust me to convert C into asm than the compiler 18:10:25 haha 18:10:28 although admittedly it was a really awful compiler 18:10:32 I trusted me more than it too 18:10:35 which compiler? 18:10:39 CCS C 18:10:44 -!- jix_ has joined. 18:10:50 which has been mentioned on thedailywtf sidebar at least once, so it isn't me 18:10:54 *just me 18:11:11 is that the gpl-but-eula one? 18:11:22 no, that's MPLAB C30 which is actually quite good 18:11:38 you should put that one on the internet with the eula-removing modifications and see what they do :-D 18:11:44 it's about as good as gcc is, although a bit less optimised, which is not surprising 18:11:51 also, the eula-removing modifications are already online 18:11:52 "We will sue you for not complying with our EUL... oh, crap." 18:11:57 ais523: i meant, the whole source 18:12:04 I just swapped out the EULA for the standard hello world that came with microsoft visual C 18:12:19 ha 18:12:30 really, communicating with your licence enforcer via exit code is not such a good idea 18:15:18 "I hate the people who just post their solution in J. That's almost as intelligible as brainfuck. " -- on project euler 18:15:26 how dare they use a concise, expressive language 18:15:29 ... like brainfuck 18:15:33 * ehird audience laughs 18:18:14 hi 18:18:19 Hi. 18:18:27 hi 18:19:24 How much scrollback is needed for context? 18:19:35 for what? 18:19:35 3 18:19:36 eula talk? 18:19:39 30 lines or so 18:19:44 for my brainfuck thing, about 7 by now 18:19:53 for eula talk, quite a lot more, for ehird's joke just 4 before you said hi 18:20:15 ehird: you should look up CCS C some time, anyway, it's sufficiently bad that at one point I was just planning to reimplement it better 18:20:22 k 18:20:27 ehird, indeed 18:20:33 for instance, if you pass a constant string as an argument to a function 18:20:45 it converts it into a loop which calls the function once for each character of the string 18:20:48 ... 18:20:50 with that character as argument 18:20:54 Afugawhatthefuckbitshit. 18:20:59 ... 18:21:06 J...jwha...ofjgo. 18:21:09 fgokpdfkogkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk 18:21:11 ok, so that's occasionally a useful operation, they really shouldn't have made it the default though 18:21:12 ;______; You ruined my brain. 18:21:20 really, communicating with your licence enforcer via exit code is not such a good idea <-- Huh? 18:21:21 how strange. 18:21:23 because it so blatantly breaks about half the C standard 18:21:30 WHY DID THEY DO THAT 18:21:42 because strings are expensive on their target platform 18:21:54 AnMaster: why do you say huh at basic, mundane, simple sentences 18:22:03 and instead of optimising printf("Hello, world!\n") into the row of putchars it ought to be 18:22:21 in CCS C you're supposed to write putchar("Hello, world!\n"), never mind that that makes absolutely no sense 18:22:23 ehird, because it made no sense 18:22:26 ais523: hahaha 18:22:27 to me 18:22:31 AnMaster: what the fuck? of course it did 18:22:34 how can that not make sense 18:22:41 I don't see any wiggle room for meaninglessness in that sentence 18:22:43 (note, hello world as a row of putchars is suboptimal on most platforms but probably the best way on the PIC) 18:22:46 oh 18:22:50 I can't come up with one single interpretation in which that makes no sense... 18:22:53 licence enforcer is some sort of program? 18:22:54 right 18:22:57 >_< 18:23:01 was thinking "lawyer" 18:23:05 -_- 18:23:20 http://paste.lisp.org/display/76820 <-- ' CALL-WITH-CURRENT-CONTINUATION FORTH IN 18:23:32 [not mine] 18:23:52 -!- jix has quit (Read error: 110 (Connection timed out)). 18:24:31 "Conventional wisdom has it that Mosaic was the first graphical web browser. Even though Mosaic - the basis for Netscape - certainly kickstarted the web revolution, it wasn't the first graphical web browser at all - that honour goes to Erwise" 18:24:35 what?! 18:24:45 WorldWideWeb.app was the first graphical browser, and the first BROWSER... 18:24:56 ais523, depending on what PIC you target, just using ASM may be saner 18:25:03 AnMaster: well, yes 18:25:08 I'm talking about the sort of asm you need 18:25:25 ais523, like I doubt any sort of C would make much sense for PIC12F629 (which I programmed against) 18:25:27 but putchar on a PIC requires you to write an interrupt handler by hand, or else use the hardware serial port as a background thread 18:25:47 AnMaster: that's what CCS C is, it mostly targets PIC16 but they don't have a much bigger instruction set 18:25:50 ais523, well. I'm not sure where STDOUT would be on a PIC... 18:26:02 AnMaster: it's the UART that's both stdout and stdin 18:26:41 well, USART on a PIC, although I don't know of anyone who used them in synchronous mode 18:26:47 ais523, hm iirc PIC12* doesn't have a special such... 18:26:56 some will, some won't, I expect 18:27:40 ais523, I mean I had serial port connected two ways in programming mode, and but when running I needed that pin for something else. So I used a jumper 18:27:51 I still read serial though 18:28:20 well, yes, you can implement it in software 18:28:31 CCS C requires weird pragmas to set up the UART, or else software emulation of it 18:28:53 ais523, apart from programming mode I had to handle serial interrupt myself completely, PIC12 doesn't have any support built in. 18:28:59 ah, ok 18:29:04 nearly all PIC16s do, IIRC 18:29:09 certainly the ones I've used do 18:29:22 I don't remember how programming mode worked. I think it was driving some pin(s) to certain values or something like that 18:29:27 you still need a MAX232 or something though because the output's at the wrong voltages for conventional communicatoin 18:29:36 and programming mode works by putting 12V into the reset pin 18:29:46 something you're unlikely to do by mistake as they're only 5V devices normally 18:29:57 and smacks very much of DO NOT DO THIS UNLESS YOU REALLY KNOW WHAT YOU'RE DOING 18:30:05 ais523, well this was so long ago I don't remember details 18:30:44 but it does sound familiar now that you mention it 18:31:01 ais523, however are you sure PIC12* are 5V? 18:31:20 they vary from about 3.3 to 5, IIRC 18:32:21 ais523, iirc PIC12F629 was 1.5 V... 18:32:24 but I may misremember 18:32:32 wow, that's low, but not entirely implausible 18:32:39 I wonder if it still had a 12V program mode? 18:32:45 something needs to generate program voltage, after all 18:32:56 hey ais523! 18:33:02 hi 18:33:04 perl -lpe 's;.;y$IVCXL91-I0$XLMCDXVIII$dfor$I.=4x$&%1859^7;eg;$_=$I' 18:33:15 ehird: let me work out what that does without running it 18:33:15 ais523, well I may misremember, and it may have 9 V or such then for programming? 18:33:15 give it decimal numbers. 18:33:20 kay 18:33:21 would that be plausible? 18:33:28 ais523: just to warn you, it's computer generated 18:33:54 (a perl program wrote a c program that, when run, gave output which when given to a perl program outputted a perl program) 18:33:59 so congrats if you can understand it 18:34:04 AnMaster: not really, you need voltages around 12V to reflash a chip no matter what it normally runs as 18:34:05 although I think it's obvious looknig at it 18:34:06 ehird, which coding contest was it from? 18:34:09 AnMaster: perl golf 18:34:12 ais523, hm ok. 18:34:39 ok, it starts by looping over all characters in the input string 18:34:57 ehird, I see. So what program was used to generate it. Because compiler generated asm from icc -fast is more readable. 18:35:13 AnMaster: asm is meant to be readable, you should be comparing that to machine code 18:35:14 ha ha perl is unreadable because I don't know it ohhh such a bastion of comedy. 18:35:23 that got old in 1990, AnMaster. 18:35:57 ehird, well I can read some perl. I'm not totally perl illiterate. I just don't know all the details. I know enough to read clean perl programs. 18:37:02 that Perl is deliberately rather compressed, by the look of it 18:37:08 also using $ as a delimiter to y is evil 18:37:19 "deliberately"? i said, it's computer generated 18:37:22 17:33 ehird: (a perl program wrote a c program that, when run, gave output which when given to a perl program outputted a perl program) 18:37:27 they were deliberately going for obfuscation there, I think 18:37:28 so of course it's generated to be as short as possible 18:37:29 :P 18:37:31 ais523: it's perl golf 18:37:34 of course it's obfuscated ... 18:37:36 ehird: I know 18:37:40 kay 18:37:44 but it would be just as short using , or something, and more readable 18:37:48 or " fwiw 18:38:04 presumably the computer just picked a random punctuation mark that worked 18:38:21 ehird, so was the C program as obfuscated? 18:38:27 no, none of the generators were 18:38:29 only the final result 18:38:31 anyway, the algorithm's weird 18:38:56 ok. when ais523 figured it out or gave up, could you please provide a link? 18:39:13 it takes characters from the input string, then multiplies by 1111, modulos by 1859, and bitwise-xors by 7 18:39:18 you can have it now, thanks to the power of /msg 18:39:20 AnMaster: I can already guess what it does 18:39:26 just from the characters used 18:39:28 yeah it's obvious from the code 18:39:29 AnMaster: http://www.reddit.com/r/programming/comments/83rkc/very_clever_perlgolfed_arabictoromannumerals/ 18:39:31 but it's nice to know for certain 18:39:38 Deewiant: thanks, asshole 18:39:39 ah 18:39:44 ehird: ?? 18:39:47 ais523 specifically said he wanted to work it out himself 18:39:53 so don't click on the link 18:40:02 that would work if the answer wasn't IN THE LINK 18:40:03 of course, since it was ehird I should have known it was on reddit... 18:40:04 ;P 18:40:07 ehird: I guessed what it did, I'm just trying to work out why 18:40:13 [17:33] perl -lpe 's;.;y$IVCXL91-I0$XLMCDXVIII$dfor$I.=4x$&%1859^7;eg;$_=$I' 18:40:16 ehird: you already told him it's obvious from the code 18:40:22 on the other hand, it's easier to work out what it does when I don't have to scrollback 18:40:23 Deewiant: that doesn't mean anything in particular 18:40:26 and I assume we're all smart enough to realize what's obvious 18:40:41 I admit I didn't notice it was in the link, though 18:41:36 oh, wait 18:41:45 it's not $&x4, it's 4x$& 18:41:51 that makes a big difference 18:42:58 anyway, it seems to arithmetically encode a lookup table of single digits to roman numerals 18:43:02 and has code for multiplying roman numerals by 10 18:43:10 -!- Sgeo has joined. 18:43:16 it alternates them in a loop, that's the basic algorithm 18:43:35 * ais523 reads the reddit discussion 18:43:45 read the linked article 18:43:46 not the discussion 18:43:50 (which is worthless) 18:43:57 it is worthless atm, I agree 18:44:05 so I'll read the article next, reading the discussion was easy 18:44:13 What article? 18:44:24 Sgeo: don't tell me you don't have scrollback 18:44:33 ehird: he just joined 18:44:39 oh. 18:44:42 http://www.reddit.com/r/programming/comments/83rkc/very_clever_perlgolfed_arabictoromannumerals/ 18:44:58 ah ty 18:46:24 ehird: it seems it was hand-obfuscated at the end while maintaining constant length 18:46:31 yeah 18:46:32 which is what explains the crazy choice of $ as a delimiter 18:46:52 -!- M0ny has joined. 18:47:15 and I pretty much understood how it worked, although I couldn't do the arithmetic lookup table in my head 18:47:20 hi M0ny, by the way 18:47:43 hey 18:48:08 hm 18:48:16 wait what 18:48:18 that program converts 18:48:24 123456789000 to MMMMMMMMMMMMMMM 18:48:27 oh, overflow? 18:48:58 it doesn't modify capital M when multiplying by 10 18:49:03 I also read that posting. Isn't this quite close to a perfect hash function that is as short as possible? 18:49:10 or have I misunderstood it 18:49:17 ... um. sort of. 18:49:28 wait, it can't be overflow 18:49:33 adding more digits gives more 18:49:42 oh because they're seperate ones 18:49:42 it is overflow 18:49:43 duh 18:49:44 (lines) 18:49:47 but it saturates at overflow 18:49:58 * ais523 tries to work out why the -l on the command line 18:50:21 ais523: adds a newline, I think 18:50:28 [ehird:~] % perl -pe 's;.;y$IVCXL91-I0$XLMCDXVIII$dfor$I.=4x$&%1859^7;eg;$_=$I'2 18:50:28 II3 18:50:30 XXIII3 18:50:32 CCXXXIII 18:50:47 not just that 18:50:57 it turns on autochomping, and adds a newline at end of line to compensate 18:51:03 heh 18:51:14 wait a sec the posting is from 2004? And the reddit post from 7 hours ago? 18:51:22 so? 18:51:23 so that way the program doesn't have to worry about compensating for an attempt to translate a newline into roman numerals 18:51:27 why does it matter how old it is, AnMaster? 18:51:32 ehird, so you can post any old link on reddit? 18:51:40 as long as it is on the right topic of course 18:51:41 ... why the heck not? 18:51:45 are only new things worthwhile...? 18:52:08 ehird, no, but only tracking new stuff making duplication avoiding easier 18:52:12 at least 18:52:15 (the only place newness is emphasised on reddit is the mainpage title (reddit.com: what's new online!), which most people don't see and was probably just a last-minute thing) 18:52:18 easier to find dups 18:52:21 AnMaster: that's ridiculous, duplciation is good 18:52:27 not everybody sees things first time 18:52:49 ehird, why is it? Wouldn't keeping everything about something in one place be good? If there is some useful comment the first time it was posted 18:52:50 or such 18:53:01 reddit is about the links 18:53:03 the comments are a nice bonus 18:54:04 well, knowing me, I often try to infer the content of the links from the comments rather than clicking on them 18:54:10 I only follow the links if the comments imply they're interesting to me 18:54:30 ais523, so you hate url shortening? 18:54:49 AnMaster: how does that follow from what I said? 18:55:00 wtf AnMaster 18:55:04 actually, I like it, but only in appropriate contexts 18:55:19 ais523, because you can't see from the link itself what it means? 18:55:21 ... 18:55:25 from the COMMENTS 18:55:28 AnMaster: you can't do that anyway, it's just an URL 18:55:29 not the link text 18:55:32 he never even said that 18:55:35 w t f are you on about... 18:55:36 which is one form of comment, an in-band comment 18:55:38 ;P 18:55:50 v_v 18:55:52 * ehird sigh 18:55:54 how do I know that http://rickroll.com isn't a goatse? 18:56:01 also I never said I was trying to make sense... 18:56:04 it's parked, actually 18:56:08 For resources and information on Rick and Origin of Rock N Roll 18:56:18 ehird: I was guessing parked, actually 18:56:30 second guess was an actual rickroll, or else a guide about them 18:57:40 btw... why did kerlo remove the unicode from topic? In logs I only see " Who's been using Unicode in here?", " unicode is evil" and kerlo changing the topic + a few unrelated lines 18:57:56 who cares? 18:58:00 hey ehird 18:58:03 how old is your mom 18:58:12 -3. integer overflow problem. 18:58:16 very tragic. 18:58:49 speaking of URL shorteners, http://snipr.com/dltn2 18:58:58 what's that a link to? 18:59:05 a website 18:59:11 not a rickroll. nor goatse. 18:59:13 ok, that's getting somewhere 18:59:22 it could have been an individual web /page/, for instance 18:59:27 oh, it is 18:59:36 It's a link to a rickroll-link-maker 18:59:36 actually, now it's a rick roll. 18:59:38 ok, so your first useful clue was actually wrong 18:59:46 it was a link to http://rickroll.tv/ 18:59:46 Sgeo: ah 18:59:49 now it's a link to http://rickroll.tv/classic 18:59:52 because it had two clicks 18:59:57 snipr allows retargetable URLs? 19:00:00 ais523: no 19:00:02 it just redirects to 19:00:06 http://rickroll.tv/ 19:00:07 oh, ok 19:00:09 and that inspects the referer 19:00:14 and counts up 19:00:14 I think 19:00:15 rickroll.tv works once from each referer? 19:00:19 -!- AnMaster has set topic: http://tunes.org/~nef/logs/esoteric/?C=N;O=D | sʞɔoɹ ǝpoɔıun. 19:00:19 that's sort of clever 19:00:23 configurable 19:00:27 (on ricktoll.tv) 19:00:28 err 19:00:31 rickroll.tb 19:00:32 ... 19:00:35 fuck it 19:00:56 Welcome to RickRoll TV! On this channel, we (cuts to scene of Rick Astley) 19:01:04 heh 19:01:17 in order to successfully rickroll, it has to make you think the rickroll isn't coming /yet/ 19:01:32 because from the name, you know it's coming 19:04:51 What is so bad with rickroll? I mean I don't like the music especially, but it isn't *that* bad. 19:05:02 it's not meant to be particularly bad 19:05:04 AnMaster: because it gets in the way of useful links? 19:05:05 just cheesy 19:05:07 it isn't all that bad, agreed 19:05:20 randomly redirecting people to about:blank would be about as annoying, if it had become a meme 19:05:20 Actually, I like rickrolls 19:05:27 asiekierk: I could have guessed. 19:05:30 ais523, be careful in what you say... 19:05:32 so not amazingly dangerous or annoying, but still annoying 19:05:32 You could 19:05:37 but you didn't 19:05:58 AnMaster: http://tinyurl.com/18r 19:06:15 * AnMaster goes to http://preview.tinyurl.com/18r 19:06:25 ais523, indeed 19:06:27 how boring. 19:06:33 also, you can turn on preview by defaul. 19:06:33 t 19:06:38 ok, this is officially the new rickroll: trick people into looking at the tinyurl preview page for about:blank 19:06:43 ais523, hah 19:06:47 tinyurl.com: 19:06:50 that is so twisted... 19:06:51 [[Hide your affiliate URLs 19:06:51 Are you posting something that you don't want people to know what the URL is because it might give away that it's an affiliate link? Then you can enter a URL into TinyURL, and your affiliate link will be hidden from the visitor, only the tinyurl.com address and the ending address will be visible to your visitors. 19:06:56 ]] 19:07:02 how is etthics formed 19:07:09 ehird: with one 't' 19:07:13 ehird, but doesn't preview work still? 19:07:15 how affiliate get clicked 19:07:19 ais523: meme fail >:( 19:07:26 I don't know of that meme 19:07:30 ais523: how is babby formed 19:07:33 yahoo answers 19:07:35 You can probably google it 19:07:39 And get meaningful results 19:07:40 http://encyclopediadramatica.com/Image:Babby.jpg 19:07:44 http://images.encyclopediadramatica.com/images/2/29/Babby.jpg (to avoid ads) 19:07:49 misses the answer, though. 19:07:52 ae has ads? 19:07:53 There are ads? 19:07:59 on ED? yes. 19:08:07 strange 19:08:15 Deewiant, you never noticed it either? 19:08:15 oh well, here's the answer: 19:08:16 They need to do way instain mother> who kill thier babbys. becuse these babby cant frigth back? it was on the news this mroing a mother in ar who had kill her three kids. they are taking the three babby back to new york too lady to rest my pary are with the father who lost his children ; i am truley sorry for your lots 19:08:23 the flash movie is betetr 19:08:30 tombom: ais523 refuses to use flash 19:08:30 soo. 19:08:34 so do I 19:08:35 oh ha 19:08:40 no flash here either 19:08:45 so, I also refuse to visit encyclopediadramatica 19:08:50 ais523, same here 19:08:51 so it comes to much the same thing either way 19:08:52 :) 19:09:01 except I directly linked to a jpg 19:09:05 of yahoo answers. 19:09:12 what on earth is the point in refusing to click that? 19:09:36 ED's admin(s) don't take kindly to hotlinking, but I guess a few clicks from IRC are safe 19:09:47 you can't tell IRC from no-referrer-firewall 19:10:07 Sure you can, just not accurately 19:10:15 how? 19:10:21 Record IPs 19:10:34 what about them? what would you do with it 19:10:35 Deewiant: what to ED's admins do in response to hotlinks 19:10:41 ais523: you don't want to know. 19:10:41 *do ... ? 19:10:53 it involves replacing the image, and the page titled "Offensive" 19:10:56 If IP went to image without going to the page of the image first, it came from somewhere else 19:11:10 err, not offensive 19:11:12 ais523: replace it with goatse/tubgirl/etc panoramas and such 19:11:14 "Offended" 19:11:18 Deewiant: I guessed 19:11:24 Deewiant: way worse than that, IME :P 19:11:34 ehird: you've experienced that? 19:11:34 ehird: 'and such' 19:11:39 I like how [[Offended]] starts with cute rabbit pictures 19:11:45 ais523: once 19:11:57 Deewiant, um after you confirm that it came from elsewhere. Then what? 19:12:04 * Sgeo doesn't like how he apparently once got malware from ED 19:12:13 i find that very unlikely, Sgeo 19:12:18 AnMaster: well if you get too many of those in a short while you replace the image 19:12:23 Deewiant, you couldn't know if it was IRC or email or IM or whatever 19:12:32 AnMaster: yes, and it doesn't matter 19:12:41 Hotlinking is bad, period. 19:12:54 Deewiant, what about users using anonymous proxies? or such 19:12:59 surely they should just do the reverse solution to avoid hotlinks? 19:13:09 as in, allow people to see the image only if the referrer is correct 19:13:09 ais523, err? 19:13:11 rather than if it's wrong 19:13:20 that breaks no-referer-firewalls 19:13:25 of which there are a lot 19:13:29 so, do they actually care about those? 19:13:42 ais523, it can break in other cases too 19:13:47 ED isn't in the business of being actively hostile to its users 19:13:53 like if you use history in the browser 19:13:54 just other people's users 19:13:56 or whatever 19:14:01 It's in the business of being passively hostile to its subjects, and actively hostile to anyone else 19:14:09 ehird: sounds about right 19:16:27 a question 19:16:45 an answer? 19:16:48 to those on linux: any of you have a man page for gai.conf (section 5) 19:17:00 yes, I do 19:17:03 http://linux.die.net/man/5/gai.conf 19:17:06 ais523, from what package 19:17:15 Ulrich Drepper wrote it. 19:17:18 ehird, yes I know. I just can't find the man page on any of the systems I have 19:17:22 hmm 19:17:24 glibc it seems 19:17:54 well yes I know what it is. Was just wondering why there was no man page *installed* for it. Since the config file does exist on several (but not all) of those systems 19:17:55 * ais523 runs the dpkg-query 19:18:10 it's taking a while, I have lots of packages installed 19:18:14 mhm 19:18:47 hey, LimeChat has a pastebin built in 19:19:00 how does it work, via a dedicated website? 19:19:02 http://pasternak.superalloy.nl/pastes/1565 19:19:11 I would love it so much if it just created a webserver on your system for that paste 19:19:12 ais523: it just uses some random pastebin 19:19:17 but that's broken by NAT, probably 19:19:23 stupid NAT, all sorts of things are broken by it 19:19:27 ais523, I didn't know dpkg-query could do it, now that you said debian has it I sshed to a debian system and indeed it exists there 19:19:29 seems to be written by a ruby person, since limechat is a ruby thang that makes sense 19:19:37 AnMaster: libc6: /usr/share/man/man5/gai.conf.5.gz 19:19:48 so it's in libc6 on debian 19:19:50 ais523, it would probably be faster if I ran it there, If I knew how to make dpkg-query do it 19:19:53 mhm 19:19:56 which agrees with what ehird thinks 19:20:02 well it would make sense 19:20:03 AnMaster: dpkg-query -S filename 19:20:03 google thinks 19:20:11 only works if the file is currently installed via a package manager 19:20:16 as in, it only searches packages you have 19:20:35 ehird: it was your choice to trust google on that 19:20:36 ais523, yeah, took about half a second. Though admittedly not as much is installed 19:22:23 now to figure out how to write a gai.conf so it *prefers* IPv6 over IPv4. Getting IPv4 results back is pretty useless on an IPv6 only host... 19:22:35 ipv6 only? 19:22:40 yes 19:22:46 a vps, with only ipv6 19:22:46 also known as "paperweight" 19:22:47 no ipv4 19:22:55 ehird, it's the future. Lets start early ;) 19:23:06 sure not very useful yet. 19:23:16 considering ipv6 adoption levels, it very well might not be the future 19:23:17 * ais523 is looking forward to actually supported everywhere ipv6 due to hating NAT 19:24:04 ais523, personally I hope NAT will be possible under ipv6, knowning my ISP they are the type who would only give you one ip and require paying a lot extra per extra IP... 19:24:20 nat under ipv6? fail... 19:24:28 also, I don't even have a static IP.... 19:24:30 it's not a problem 19:24:32 nor do I 19:24:36 AnMaster: no sane ISP would do that 19:24:48 there are no sane ISPs 19:24:50 especially in the UK 19:24:56 and I don't care about a dynamic IP nearly as much as I care that people can actually make incoming connections on arbitrary ports if I tell them my IP 19:25:01 ehird, what about xs4all? 19:25:09 ok, list of sane ISPs: xs4all. 19:25:14 right 19:25:20 probably the best ISP in the UK, from what I grok, is Be 19:25:24 but Be aren't available here 19:25:26 >:( 19:25:49 ais523, iirc the TOS says something about only using one computer at the time, yet they ship adsl modem/router to customers, and it's pre-configured for NAT... 19:26:01 no way that ends up as "sane" 19:26:05 AnMaster: which ISP is that? 19:26:10 ais523, Tele2 19:26:19 I know Virgin Media actually require you to use Windows 19:26:19 tele2 my face 19:26:22 ais523: WHAT 19:26:26 in the contract 19:26:26 ehird, what? 19:26:30 ehird: seriously 19:26:35 AnMaster: tele2 pronounces sort of like tell-it-to 19:26:39 ais523: SHDKJASHDJKAShdJKASDHKSDAD WHAT 19:26:43 I think it's so they aren't sued when their windows-only setup program doesn't work 19:26:47 ehird, not in Swedish..., 19:26:55 however, the contract doesn't prevent you using a different OS as well 19:26:58 but swedes are dirty, so to hell with them 19:27:02 ais523: haha 19:27:11 ehird, the company is Scandinavian to begin with. 19:27:19 harumph 19:27:29 even Swedish 19:27:31 says wikipedia 19:27:39 wasn't sure if it was Norwegian or Swedish 19:27:47 http://en.wikipedia.org/wiki/Tele2 19:28:31 http://images.appshopper.com/screenshots/304/682626.jpg (John Gruber's user interface of the week) 19:28:54 Is that good or bad? 19:29:02 What do you think? 19:29:02 John Gruber? 19:29:07 * AnMaster googles 19:29:08 AnMaster: of http://daringfireball.net/ 19:29:20 he... made Markdown. and writes that blog. for a living. it's about macs. 19:29:26 ehird, however google won't answer "is this person stupid or cool" 19:29:32 hm 19:29:35 I'd find it usable, if that's all the space available 19:29:36 stupid and cool are opposites? 19:29:41 ehird, well not exactly 19:29:51 but I didn't find the precise perfect words 19:30:07 "acool" is the cool word.* 19:30:08 *lies 19:30:09 ehird, however that GUI looks a bit cluttered to me 19:30:16 ... it's a sarcastic award. 19:32:19 ehird, those on/off slider thingies doesn't make much sense to me..., first it seems more logical that marker is on item that is active (reverse here), second: what is wrong with check boxes? they are established and while there may be better ways to do it, checkboxes aren't that bad IMO 19:32:29 IT'S A SARCASTIC AWARD 19:32:35 IT'S AWARDED TO CRAP DESIGNS ;__; 19:32:36 oh right 19:32:37 missed that 19:32:48 also 19:32:51 this is a touch-screen 19:32:55 the ON/OFF is the standard iphone checkbox 19:33:00 I see 19:33:01 since it's a lot easier to slide than a checkbox 19:33:28 well, what about large check boxes?, Is tapping the screen hard? 19:33:56 empirically, I find it a lot easier to tap wider-than-high things on a touchscreen 19:34:08 hm ok 19:34:11 to get the same tappability with a checkbox, it'd be a lot taller 19:34:17 and thus use more of the limited screen 19:34:38 -!- ais523 has quit (Read error: 104 (Connection reset by peer)). 19:35:08 ehird, this sarcastic award, where is more info about it? 19:35:25 I can't find it on his website. 19:35:28 Any post on df.net starting with "User Interface of the Week:". 19:35:29 :p 19:35:35 ah right 19:35:58 users shouldn't need to scroll down, thats an usability problem~ 19:36:09 yeah I get coughs and sneezes whenever I scroll 19:36:10 awful stuff 19:36:19 in fact, users should only need to look at the screen, anything more is a usability problem~ 19:36:21 i need to have four 30" screens in a rectangle 19:36:28 to avoid scrolling as much as possible 19:36:32 also, I use 7px type, max 19:36:37 :D 19:36:43 AnMaster: Ok. Just make a NBTV set 19:36:50 however this raises the privacy issue. since solving the usability issue would require mind reading.. 19:36:56 Not really 19:37:05 NBTV? 19:37:07 It could use eye movements 19:37:09 google it 19:37:12 Narrow Band Television 19:37:17 or mechanical TV 19:37:18 i already googled it, there's nothing relevant 19:37:30 not even a WP article 19:37:45 asiekierk, eye movements to navigate would still require more than minimal user effort 19:41:05 Cleaning a computer for the lazy: Run program that hogs all of the CPU. Watch fans go to 100% speed. Relax. :P 19:41:14 *note: I am not responsible for any damage caused :| 19:43:02 *note: does nothing, unless your fans are really bad or really good. 19:43:14 *note: I disclaim my walking to the ground. 19:43:36 Also, 'narrow-band television' is basically ye old mechanical television. 19:44:21 Doesn't take much more than a light bulb, a motor, a disk with holes in it, and a sound card. 19:45:09 -!- M0ny has quit ("Quit"). 19:46:49 I wonder if there's any use for NBTV 19:50:32 hmm... wonder how long backing up a newly-installed system via ethernet would take 19:51:47 hmm... tc seems to manage about 1:38 per gb 19:56:03 -!- BeholdMyGlory has quit (Remote closed the connection). 19:56:28 -!- BeholdMyGlory has joined. 19:57:15 -!- ais523 has joined. 19:58:08 wb me 20:00:07 -!- Jophish has joined. 20:01:51 -!- tombom has quit ("Peace and Protection 4.22.2"). 20:02:02 anyone know why 'noremap ' doesn't work as expected? 20:02:11 in what editor, vi? 20:02:29 yes 20:02:30 vim 20:02:32 at this point, I won't answer because I don't know, and ehird will start extolling the virtues of TECO 20:02:40 I can map 0, or C-a, but not C-0 20:09:00 http://fuckyoupenguin.blogspot.com/2009/03/tibetan-fox-thinks-hes-better-than-you.html 20:12:07 wow 20:12:09 os x supports klingon 20:12:12 take that, linux 20:12:56 it almost certainly supports klingon too 20:13:04 yeah but does gnome/kde? 20:13:08 out of the box? 20:13:10 while you install? 20:13:18 ay? ay? 20:13:26 * ais523 checks 20:14:05 well, it isn't installed by default AFAICT 20:14:13 presumably they wanted to save space on the CD for more useful things 20:14:29 in OS X, you never see any english text apart from "Mac OS X" and the menus in the installation language selection screen. 20:14:38 it is clearly far superior. the choice for discerning trekkies. 20:14:46 well. 20:14:50 I'm not sure it's an installer option. 20:14:54 you might have to do it post-install. 20:15:00 well, Ubuntu was specifically designed to install in pretty much any language you wanted 20:15:11 Lojban OS X would be fun 20:15:13 although klingon doesn't seem ot be in that list 20:15:44 anyway, I'd only need to install language-pack-gnome-tlh, language-pack-kde-tlh, and language-pack-tlh 20:15:53 and the system would fully support klingon 20:16:19 that's retarded, who the hell wants klingon 20:16:23 20:17:02 strangely it appears to be an Ubuntu package, not a Debian one 20:17:17 http://www.blogcdn.com/www.engadget.com/media/2009/02/2009-02-25sl-4.jpg <- wow, snow leopard strips down the number of processors a lot 20:17:27 almost all 64-bit, too 20:17:34 err 20:17:36 processes 20:17:48 aalthough the cpu usage diagram doesn't match the list 20:17:50 fishy 20:18:30 Maybe it is designed to only show non-scary processes. 20:18:35 :D 20:18:51 "Process 1 (callhome) omitted FOR YOUR SAFETY." 20:18:59 ehird: processors, or processes? 20:19:12 19:17 ehird: err 20:19:12 19:17 ehird: processes 20:19:17 also, that's filtered, obviously 20:19:20 there's no init in that list 20:19:26 there's no init in my list, either 20:19:35 nor any other process with UID 1? 20:19:39 bbl 20:19:42 PID TTY TIME CMD 20:19:42 1 ?? 0:02.29 /sbin/launchd 20:19:43 * PID 1 20:19:45 OS X doesn't use init. 20:19:48 ah, ok 20:19:54 (launchd = init + cron + daemontools) 20:20:01 I generally refer to any PID 1 process as init 20:20:07 oh, and rc 20:20:10 and inted 20:20:37 init + cron is an interesting combination to have in the same file 20:20:41 but I suppose it makes sense 20:20:51 does it also contain an atd? 20:21:10 ((atd?)) 20:21:17 ehird: daemon for at 20:21:25 ((at?)) 20:21:31 ehird: like cron, but only runs once 20:21:35 NAME 20:21:35 at, batch, atq, atrm -- queue, examine, or delete jobs for later execu- 20:21:37 tion 20:21:39 cute 20:21:42 I think that's one of the options in a launchd thingy 20:21:45 to only run once 20:21:48 yep 20:21:58 actually, I'm mildly surprised at and cron are different programs 20:22:13 do half a thing and do it acceptably! 20:22:13 atd's stuck in my mind because it's been broken on ubuntu-proposed for months 20:22:33 despite me telling them exactly where the bug was (although not where to fix it) 20:22:41 *how to fix it 20:22:51 finding the bug's normally the hard part, though, rather than fixing it 20:23:48 I was going to complain that there seem to be no timing-related things in launchctl man page, but it seems that there are StartCalendarInterval-like properties that can be specified with a .plist file for a job. 20:24:14 fizzie: try man launchd 20:24:19 hmm, wait 20:24:21 launchd.plist 20:24:31 Yes, that's where I got it from. 20:24:36 ah 20:25:23 invoke-rc.d: initscript atd, action "start" failed. 20:25:25 dpkg: error processing at (--configure): 20:25:26 subprocess post-installation script returned error exit status 1 20:25:32 happens on every single change to my package configuration 20:25:41 * ais523 thinks that Ubuntu is not very responsive to bug reports 20:25:59 Apple are responsive to bug reports, but you don't know because you can't access their bug tracker 20:26:02 only submit to it 20:26:06 it's not even "write-only" 20:26:12 it's "creat-only" 20:26:23 weird 20:28:11 https://bugs.launchpad.net/ubuntu/+source/at/+bug/158178 20:29:19 I'm actually slightly surprised a bug that manifests on every single change to the package manager hasn't annoyed more people by now 20:29:28 maybe at isn't a standard package 20:29:43 -!- Sgeo has quit (Read error: 104 (Connection reset by peer)). 20:32:28 Traditional init is also rather funny; telinit (the control tool) and actual init are a single binary, and unlike other people (who use something like argv[0] to decide how to act) init does "isinit = (getpid() == 1); ... if (!isinit) exit(telinit(p, argc, argv));" 20:32:41 heh 20:45:42 wth 20:45:49 why the wth? 20:45:54 kde asked me what I wanted to do with a music cd I inserted 20:45:56 I don't use hal afaik 20:46:01 why did that happen... 20:46:04 do you use hotplug? 20:46:14 or that kde devices systray thing? 20:46:20 ais523, no and no 20:46:30 well I do use udev, but for cd it shouldn't affect it 20:46:41 + I have root only no-auto mount in fstab for cd 20:47:00 ok 20:47:07 are you sure this was on your computer? 20:47:15 I get confused sometimes when sshing around a lkot 20:47:16 *lot 20:47:19 AnMaster, I strongly suspect you've got HAL on there. 20:47:30 also this haven't happened before, I played a cd yesterday with no issues 20:47:39 Huh. *Weird*. 20:47:44 AnMaster: does /usr/lib/hal exist for you? 20:47:54 no 20:48:02 nor /usr/lib64/hal 20:48:08 /usr/sbin/hald? 20:48:16 nop 20:48:21 nor in bin 20:48:26 or wherever sbin stuff normally is for you 20:48:30 maybe kde has its own version of HAL or whatever 20:48:45 ehird: Not only no but hell no. 20:48:50 well since it is KDE 3 and I haven't upgraded anything I have no idea 20:48:58 Might have in the KDE 2 days... 20:49:00 pikhq: I wouldn't put it past KDE 20:49:01 I mean last upgraded was ~ 1 week ago 20:49:14 and I haven't rebooted or restarted X since then 20:49:51 KDE 3 did some of that *kind* of BS... They seem to have wised up since. 20:50:10 AnMaster uses KDE 3. 20:50:14 Because KDE 4 sucks because: 20:50:16 1) it's new 20:50:17 2) it's flashy 20:50:20 3) it works too well 20:50:20 -!- kar8nga has joined. 20:50:25 At least, that's what I've gleaned from him. 20:50:52 err it doesn't, I tested it, and I couldn't get it to look the same as kde 3. I *could* get my KDE 3 to look like KDE 2 almost perfectly 20:50:58 not even close in KDE 4 20:51:02 3.5 works rather solidly; only KDE 4.2 has gotten KDE 4 up to the point where it could sanely replace KDE 3. 20:51:09 pikhq, 3.5.9 here 20:51:21 wow, kde 4 cannot look precisely like kde 2! 20:51:21 horrific. 20:51:33 that's basically a crime against humanity 20:51:56 KDE 4 still isn't really finished yet, I suspect 20:51:59 ehird, I fail to see why you are bothered that users have different taste? 20:52:00 it'll probably be production-ready around 4.4 20:52:07 but 4.2 is at least of releasable quality 20:52:22 I am completely unsurprised that KDE 3 could look like KDE 2 with ease... After all, KDE 3 was little more than a port of KDE 2 to Qt 3. 20:52:23 ais523, no. I think KDE 4 it will be production ready around KDE 5.0 release 20:52:25 AnMaster: it doesn't help that you try and advertise your opinions to others whenever they, say, talk about how they like KDE4. 20:52:54 AnMaster: I'd say it's rather close now... 20:53:03 ehird, So discussion and expressing opinions is forbidden now? 20:53:21 Hell, my only complaints with it ATM is Amarok being somewhat screwy still, and K3B hasn't been ported yet. 20:53:27 s/is/are/ 20:53:39 pikhq, wouldn't that be K4B? 20:53:47 No. But "Hey, KDE 4 is quite nice, it does such and such and such." "I don't like KDE4, too bloated, I use KDE 3.14" "Well, okay." "Ooh, this is nice about KDE 4, it—" "I don't like KDE4, too bloated, I use KDE 3.14" 20:53:49 Nope. 20:53:55 Repeat ad infinitum, and perhaps you can see why it's goddamn annoying. 20:53:58 ehird, 3.14? 20:54:06 K3B = KDE Burn, Baby, Burn. 20:54:12 oh I see 20:54:30 pikhq, well though I very seldom use k3b, when I do want to burn a cd I use it... 20:54:54 It's either that or crack open cdrecord. 20:54:59 easier than checking the syntax/name for $current_cdrecord_replacement 20:55:15 I think I managed to get the original one back. 20:55:42 cdrecord/cdrkit isn't hard to remember the syntax for if you're only using it to burn ISOs... 20:55:58 cdrecord dev=/dev/scd0 foo.iso; Whoo. 20:56:01 Heh, hearing cdrecord reminded me of a guy in #slicehost who was basically in internet-tears because his parents were complaining about him about something like spending too much time on the computer, and how they didn't understand that he maintained a "vital part of linux infrastructure" (= he contributed to a cd burning library that I've never heard of) 20:56:06 pikhq, well usually I don't just burn ISOs 20:56:23 Most of what I burn is ISOs. 20:56:29 Jorg schilling is crazy 20:56:43 And in the rare case I'm not, mkisofs is probably sufficient. 20:56:43 all he does is go around all day saying how all non-original cdrecords are evil and broken 20:56:44 pikhq, I need to remember mkisofs and/or how on earth to create music cds... 20:56:46 Osm 20:56:53 fizzie: Osm 20:56:55 -!- Hiato has quit (Read error: 145 (Connection timed out)). 20:57:00 ehird: "basically in internet-tears"? 20:57:02 A typoed "Isn'". 20:57:03 I don't think I've burned a music CD since middle school. 20:57:16 ais523: You come up with a better word. :P 20:57:16 ehird, err I'm *forced* to agree with him. the cdrkit fails to burn correct cd-rw in my drive 20:57:17 I was going to mention that it's Jörg, not Jorg 20:57:21 the original cdrecord works fine 20:57:28 ehird: I think that either he was in internet-tears, or he wasn't 20:57:32 cdrkit just results in unreadable cds 20:57:33 fizzie: that's a non-original name! 20:57:39 I'm making fun of him, see. <-- excuse 20:57:44 I burn capacitors and diodes more often than CDs, probably 20:57:44 AnMaster: Quite bizzare, considering cdrkit is a fork of cdrecord. 20:57:48 although not all that much recently 20:57:51 ais523: Schrödinger's internet tears 20:58:11 pikhq, yes, and in one case a erase of the cd-rw didn't even work... 20:58:20 which is just crazy 20:58:20 Freeow. 20:58:27 err? 20:58:46 * AnMaster googles 20:59:27 No definitions were found for Freeow. 20:59:31 H2G2 reference, misspelt. 20:59:49 Don't recall the right spelling. 20:59:53 hm... now that you mentions H2G2 it *does* sound slightly familiar 21:01:50 "Freeeow," he said. 21:01:56 So that was quite close. 21:05:00 fizzie, in which of the books? and context? 21:06:14 The Judiciary Pag, when pronouncing Krikkit's sentence at that trial thing. 21:06:31 isn't that from Mostly Harmless? 21:06:35 that was one fucked up book 21:06:41 no, it isn't 21:06:46 hm 21:06:48 while since I read h2g2 21:06:50 it's from LTUAE 21:07:14 The whole Krikkit/Hactar plot is in book 3, yes. 21:08:11 He scratched his crotch reflectively. "Freeeow," he said. He took another sip of water, then held it up to the light and frowned at it. He twisted it round. "Hey, is there something in this water?" he said. "Er, no, m'lud," said the Court Usher who had brought it to him, rather nervously. "Then take it away," snapped Judiciary Pag, "and put something in it. I got an idea." 21:08:18 That's a longer quote. 21:09:21 The character does have a habit of similar noises. Later on, on the beach: "Weeeeelaaaaah!" said Zipo Bibrok 5 / 108, and you would have had to have been there to know exactly why he said this. 21:10:42 I think that's supposed to be something like 5 x 10^8 or some-such; I'm not sure why it's a / there. Maybe this is some sort of OCR digitalization. 21:10:54 you don't really remember what is in which book when you have an omnibus edition 21:11:10 yeah, I have an omnibus 21:11:12 it's huge 21:11:21 GEB-sized 21:11:28 GEB being? 21:11:32 http://en.wikipedia.org/wiki/Gödel,_Escher,_Bach 21:12:42 ehird, Cambridge's dictionary - Advanced Edition is way larger and thicker though 21:12:57 I think I've mentioned this before, but on ircnet's #douglasadams we used to have a game where a bot pasted a small snippet (three lines, I think), and awarded a point to whoever was the quickest to correctly enter 1, 2, 3, 4 or 5, depending on which book the quote was from. 21:13:00 that is not really comparable, AnMaster :P 21:13:06 ehird, but the largest one I have would be one at 3 kg... 21:13:14 wat 21:13:31 Since book1 and book4 start almost identically, sometimes the game was a bit difficult. 21:13:38 ehird, ? 21:13:45 3kg book? 21:13:49 correct 21:14:28 -!- oklopol has joined. 21:14:48 -!- tombom has joined. 21:15:21 fizzie, heh 21:15:30 Ah, I remember when I first got my H2G2 omnibus for Christmas... 21:15:38 I read the whole thing in 12 hours. 21:15:40 the craziest thing about my GEB? 21:15:42 it's a fucking PAPERBACK 21:15:48 Jebus. 21:15:50 it is the biggest paperback ever 21:16:00 ehird, my H2G2 is paperback 21:16:01 when you pick it up, a few gravitational collapses happen 21:16:04 and almost worn out 21:16:16 and the spine is your mortal enemy 21:16:18 what did you read in 12 hours? 21:16:21 ehird: mine's a paperback too 21:16:36 ais523: it's awful! 21:16:46 I don't have GEB, so I can't comment on it 21:16:59 the book itself is great 21:17:09 ehird, also how come you haven't yet asked what the 3 kg book is? 21:17:13 just wondering 21:17:18 oh geb 21:17:22 i assumed you'd tell me, AnMaster 21:17:23 oklopol: no 21:17:24 h2g2 21:17:26 omnibus 21:17:27 said pikhq 21:17:31 20:15 pikhq: Ah, I remember when I first got my H2G2 omnibus for Christmas... 21:17:31 20:15 pikhq: I read the whole thing in 12 hours. 21:17:32 ehird, so do you want to know or not? 21:17:35 surely YOU have scrollback... 21:17:37 AnMaster: sure. 21:17:40 oh i see 21:17:43 I think my heaviest book here is Kreyszig's Advanced Engineering Mathematics, 8th Edition (the paperback version, no less). Not that it's especially huge, mind you. I can't seem to find the specs, but the 9th edition hardcover has an amazon.com shipping weight of 2.2 kg. 21:17:53 ehird, complete history of the US airforce (yes I'm very interested in aircraft stuff as you probably know) 21:18:14 the heaviest book of all time is SICP. SICP is the only acceptable book. All others cannot achieve the SATORI given by SICP. Have _you_ read your SICP today? 21:18:49 ehird, err SATORI? aspell likes it so I guess it has to mean something, but firefox just segfaulted.... 21:18:59 SATORI, n. The unique property given by SICP. 21:19:03 SICP, n. The book giving SATORI. 21:19:26 Hmm. Heaviest book I've got here is either my H2G2 omnibus or my Emacs manual. 21:19:33 ah google was more helpful... now that firefox restarted... "(Zen Buddhism) a state of sudden spiritual enlightenment " 21:20:01 They should bind TAOCP together in a single book, that'd be quite a brick. 21:20:06 pikhq, you have a printed emacs manual? 21:21:06 fizzie: in PAPERBACK 21:21:15 fizzie, would it beat Tolkins' famous trilogy in omnibus? 21:21:18 pikhq: do you keep trying to use emacs keybindings on it 21:21:29 paper back of course 21:21:32 XD 21:21:51 An eyeball-based comparison says that my three-book-hardcover TAOCP is a bit larger in volume than my three-book-hardcover LOTR. 21:22:01 for emacs manual I actually think the context sensitive help inside emacs would be way faste 21:22:04 faster* 21:22:23 FireFly, hm 21:22:25 err 21:22:26 fizzie, ^ 21:22:44 SICP is actually NP-complete. Reading it requires a SATORI-card. 21:22:48 I can't be sure about this, but I think the individual books are also heavier, weight-wise. Certainly content-wise. 21:23:14 fizzie, well content-wise of course... 21:24:29 ehird, btw from google image search: http://ak.buy.com/db_assets/large_images/594/202468594.jpg 21:24:41 is that the spine? 21:24:44 really doesn't show how large or thick 21:25:11 ehird, the seal thing is embossed thingy, like sewn onto the cover... 21:25:18 so that's not the spine 21:25:19 :< 21:25:42 ehird, well it is larger than A4 too. Wait I can measure the size 21:25:54 THE SPINE IS LARGER THAN AN A4 PIECE OF PAPER? 21:25:57 ONE BOOK? WHAT THE FUCK. 21:26:08 and this is PAPERBACK?! 21:26:21 ehird: there's a famous picture of what the OOXML standard looked like printed out 21:26:32 6x24x34 21:26:38 cm 21:27:07 thickness width height 21:27:20 ehird, and not paper back no 21:27:24 oh. 21:27:46 ehird, spine, and fake leather on outside 21:28:04 hmm 21:28:06 how many pages is it? 21:28:22 sed 21:28:24 sec* 21:28:51 624, but the paper is very high quality thick and glossy 21:29:11 well not photo level glossy, but slightly glossy 21:29:14 AnMaster: publish Finnegan's Wake like that 21:29:15 :P 21:29:28 (or maybe an ayn rand book is longer) 21:29:35 hm? 21:29:37 * AnMaster googles 21:31:34 ok found a pic showing how thick it was 21:31:36 right 21:31:50 1000+ pages 21:31:56 ehird, the US airforce one is not as thick as it is large in other directions mainly 21:32:26 I mean I think I have seen a dictionary thicker than it, but not as large format. I have to have it on the top shelf, doesn't fit elsewhere... 21:32:59 Kreyszig: 25.5 cm high, 20 cm wide, 6 cm thick; number of pages... uh, last page is I-20. Before I-1 there's A97. They're not making this easy. Before A1 comes page 1156. And before page 1 there's page xvi. So I guess the lower bound is 16+1156+97+20 = 1289 pages. 21:33:29 -!- Jophish has quit (Read error: 104 (Connection reset by peer)). 21:33:52 have you read it? 21:33:58 fizzie, that is *far* from the 34 cm high and 23 wide... 21:33:58 -!- Jophish has joined. 21:34:26 AnMaster: It's still >2 kg, though. Dense stuff. 21:34:30 ok 21:34:44 oklopol: A reasonable percentage of it, but not comprehensively. 21:35:04 also the page count I gave above was large numbered page. So add uh *checks* 4 to that 21:35:22 fizzie: are you an advanced engineer then? 21:35:27 wait 21:35:32 advanced engineering mathematician 21:35:35 fizzie, "Kreyszig"? I can't find any book with that name with google 21:35:39 only people with that name 21:35:43 ... 21:35:47 of course it's a name 21:35:51 oh 21:35:52 AnMaster: I did mention the complete name of the book, earlier. 21:35:55 tons of textbooky things are referred to by their name 21:35:56 e.g. K&R 21:35:57 * AnMaster looks 21:35:57 err 21:35:59 by their author's, names 21:36:06 Advanced Engineering Mathematics, 8th Edition. 21:36:14 ehird: tons of textbooky things are referred to by their name too, though 21:36:19 :D 21:36:19 so you were right first time as well 21:36:26 oklopol: I'm not very advanced. Maybe I should've read more. 21:36:27 ehird, TAOCP? SICP? 21:36:41 People have cited TAOCP as Knuth, in my experience. 21:36:50 SICP is, of course, [b]The Sussman[/b]. 21:36:52 i just refer to books by their isbn 21:37:03 ehird, "the wizard book" 21:37:07 But if you say [b]The Sussman[/b] too much, your [b]Satori[/b] is revoked. 21:37:41 While looking for Kreyszig, I also came across "Seven-place values of trigonometric functions", "compiled by dr. J. Peters". This is a small book, but on the other hand it's useless too. 21:37:55 ehird, http://mitpress.mit.edu/sicp/full-text/book/cover.jpg lists three authors btw. 21:37:57 *shrug* 21:38:08 Abelson is filthy traitor of Forced Indentation of Code. 21:38:15 fizzie: lol just a massive list? :D 21:38:19 Julie Sussman is The Sussman's alter-ego. 21:38:38 Everything I say is indisputable. Brb -> 21:38:39 what about that book 21:38:46 10000 random numbers or something? 21:38:46 err 21:38:47 <- 21:38:48 even more 21:38:49 That's useful. 21:38:58 But on the front inner cover it has a taped-on label: "This book has been presented to Finland by the Government of the United States of America, under Public Law 265, 81st Congress, as an expression of the friendship and good will which the people of the United States hold for the people of Finland." 21:39:00 ehird, yes but it should be rather thick and heavy right? 21:39:04 ah. 21:39:04 -> 21:39:41 fizzie, uh.... ? 21:39:52 That's what it says; I don't know what it means. 21:39:53 that's like crazy 21:39:57 fizzie: so they love us enough to write a 2 minute python script to generate the table? 21:40:21 "Originally published in Germany as Siebenstellige Werte der Trigonometrischen Funktionen"; Copyright, 1918, 1938. 21:40:22 fizzie, a joke label on your copy? If it is second hand I'd guess so 21:40:24 It's a bit old. 21:40:29 And it's no joke. 21:40:34 mhm 21:40:43 I assume it was donated to our university library; that's where I got it from. 21:40:49 probably not much python scripting back then. 21:41:16 well googling for "Public Law 265, 81st Congress" did return relevant results... 21:41:22 -!- oerjan has joined. 21:41:28 hi oerjan! 21:41:34 hi! 21:41:36 oerjan, hiwc 21:41:45 * oerjan swats AnMaster -----### 21:41:51 hi all 21:42:27 oerjan, btw I need to borrow your frying pan. Firefox segfaulted randomly a lot today... And KDE decided to start asking about CDs that I insert... 21:43:31 AnMaster: maybe you caught a virus that silently replaced Linux with Windows whilst trying to keep everything looking the same so you didn't notice 21:43:33 -!- FireFly has quit ("Later"). 21:44:02 ais523: was it you who won the wolfram thing? 21:44:07 ais523, then they should provide it for windows as a replacement for cygwin. I mean I done lots of POSIX specific programming today 21:44:14 lament: yes 21:44:45 why do you ask, by the way? 21:45:58 -!- neldoret1 has quit (Read error: 113 (No route to host)). 21:46:08 also wth, yesterday xine refused to show track names for this cd, and I knew it was in freedb (checked with cd-info), this morning it showed them. Now it doesn't again... 21:46:18 -!- FireFly has joined. 21:46:30 ais523, either windows or centos. Hard to say... 21:46:44 AnMaster: what does uname display? 21:46:55 Linux tux.lan 2.6.27-gentoo-r8-1 #1 Sat Jan 31 04:55:36 CET 2009 x86_64 AMD Sempron(tm) Processor 3300+ AuthenticAMD GNU/Linux 21:47:08 which is what I would expect it to say 21:47:32 They have been thourough and faked that, too. 21:47:38 indeed 21:47:57 AnMaster: it's a windsor sauce pan, not a frying pan. but here you are. ===\___/ 21:48:24 oerjan, question about usage, it isn't "swats", what is the right word? 21:48:29 "hits"? 21:49:01 ah 21:49:05 or? 21:49:37 you can't really "swat" with a sauce pan 21:49:42 "bash" might do 21:49:47 well yeah "hits". 21:49:53 * AnMaster hits Firefox with oerjan's sauce pan ===\___/ 21:49:56 * AnMaster hits KDE with oerjan's sauce pan ===\___/ 21:50:02 * AnMaster hits xine with oerjan's sauce pan ===\___/ 21:50:12 * AnMaster ahnds the sauce pan back to oerjan 21:50:14 but i think "clobbers" is also a nice word 21:50:15 hands* 21:50:41 i see you used it well ===\/\/ 21:50:52 also linux can fake uname. How else would this work: 21:50:53 $ linux32 uname -a 21:50:53 Linux tux.lan 2.6.27-gentoo-r8-1 #1 Sat Jan 31 04:55:36 CET 2009 i686 AMD Sempron(tm) Processor 3300+ AuthenticAMD GNU/Linux 21:50:55 * oerjan sends it for repairs 21:50:59 meant for 32-bit chroots 21:51:02 oerjan, no need 21:51:04 I can fix it 21:51:14 oerjan, just hand it back 21:51:17 for a sec 21:51:27 ok ===\/\/ 21:51:46 AnMaster: is there a 32-bit version of linux32? 21:51:48 * AnMaster turns oerjan's sauce pan upside down and hits KDE again ===/^^^\ 21:52:01 marvelous technique 21:52:02 well there is probably some nifty unicode for line at top 21:52:07 but I don't know it 21:52:29 oh, there is, and I have it installed 21:52:42 oerjan, so the corrugated ^^^ is just a rendering issue 21:52:54 when you turn it you will see it is perfectly flat 21:53:01 * AnMaster hands the saucepan back to oerjan 21:53:14 * oerjan checks the saucepan carefully ===\___/ 21:53:33 ais523, that makes no sense on 32-bit linux 21:53:43 it only makes sense if you can run more than one ABI 21:53:47 like AMD64 21:54:00 ais523@dell:~$ setarch i686 21:54:02 ais523@dell:~$ uname -a 21:54:03 Linux dell 2.6.27-11-generic #1 SMP Thu Jan 29 19:24:39 UTC 2009 i686 GNU/Linux 21:54:07 err 21:54:14 course it makes sense 21:54:18 ais523, it doesn't change shell? 21:54:20 admittedly, it doesn't change anything 21:54:21 or? 21:54:22 AnMaster: yes it does 21:54:30 just the new shell looked identical to the old one 21:54:46 why would you expect it to look different? 21:55:01 ais523, I almost always use the linux32 symlink with "chroot" 21:55:16 ais523, so I wasn't aware of that it defaulted to "new shell" 21:55:37 ais523, setarch --help lists more interesting stuff 21:57:18 ehird: Unknown language "-" 21:57:21 from lisp paste 21:57:25 not sure what went wrong 21:57:45 wait I see 21:57:48 forget it 21:58:33 ais523, my setarch has all these options: http://paste.lisp.org/display/76852 maybe it varies between platforms 21:58:55 setarch changes the uname system call that programs use to decide what libraries to load, etc 21:59:13 and I have the same version of setarch as you, more or less 21:59:14 it's the same options 21:59:24 linux32 is a symlink to setarch, or a wrapper around it 21:59:27 ais523, hm. How does it change the uname system call? 21:59:43 I don't know, presumably there's an API for doing that sort of thing 22:00:14 it isn't LD_PRELOAD since it works on statically linked busybox 22:00:19 $ setarch i686 /bin/busybox uname -a 22:00:19 Linux tux.lan 2.6.27-gentoo-r8-1 #1 Sat Jan 31 04:55:36 CET 2009 i686 unknown 22:00:30 $ /bin/busybox uname -a 22:00:30 Linux tux.lan 2.6.27-gentoo-r8-1 #1 Sat Jan 31 04:55:36 CET 2009 x86_64 unknown 22:00:47 ais523, ah strace told me: 22:00:48 personality(PER_LINUX32) = 0 22:00:51 wth? 22:00:59 -!- atrapado has joined. 22:01:06 this is great. Linux has *split personalities* 22:01:09 :D 22:01:20 SYNOPSIS 22:01:20 #include 22:01:20 int personality(unsigned long persona); 22:01:46 "04:44 PM" 22:01:48 :( 22:01:52 lament, err? 22:02:03 it means 16:44 22:02:51 huh 22:03:03 enum { blah = 0, }; 22:03:07 is that supposed to work? 22:03:09 AnMaster: that's legal 22:03:21 ais523, shouldn't there be some type name for the enum somewhere? 22:03:23 trailing commas are allowed inside enums in C 22:03:25 The swatter requires oerjan-nature. :( 22:03:27 MU 22:03:28 It's for people who have a #define rash. 22:03:40 ais523, and the comma wasn't the issue... 22:03:43 AnMaster: implicit int IIRC 22:03:56 Alternatively, smallest integer that fits them all 22:04:08 s/ger/gral/ 22:04:50 oh, and the lack of typename, I think it's legal 22:04:56 I'm not sure if no typename and no variable is legal 22:04:56 but enum { blah = 0, } foo; is certainly legal 22:04:57 ais523, from /usr/include/sys/personality.h (but not as short) 22:04:57 ais523, and no variable 22:04:57 just like struct { int bar; } quux; is legal 22:04:57 I mean what use would struct { int bar; }; be ?! 22:04:57 well for enum it could still be used though 22:05:04 Nothing, but for enum it is legal. 22:05:07 ais523, just I would have expected either enum foo { ... }; or a typedef 22:05:16 mhm 22:05:39 well 22:05:45 no docs what the flags do there 22:05:59 STICKY_TIMEOUTS, WHOLE_SECONDS? 22:06:00 C has structural bars 22:06:11 I mean ADDR_LIMIT_3GB is quite self explaining... 22:06:19 but whole seconds where? 22:07:13 AnMaster: it disables an optimisation, normally if your computer isn't doing anything for a while it uses the excess processing power to do a bit of timetravel, small fractions of each second are sent back to kernel.org where they can be stockpiled for restoring the Earth in the case of an apocalypse 22:07:28 some people don't like programs that call home, so the option's there to turn it off 22:07:38 ais523, that humor is just too absurd... 22:07:55 oerjan, hah 22:08:13 ais523, MMAP_PAGE_ZERO? 22:08:24 AnMaster: heh, I've just realised what that would do 22:08:29 what? 22:08:32 it would mean that NULL would become a legal pointer-to-data 22:08:37 well 22:09:05 ais523, you can still on x86 mmap() at 0, for example if you are going to mess with vm86() 22:10:35 ais523, atm I'm grepping kernel source to find WHOLE_SECONDS and STICKY_TIMEOUTS... the other flags I can make quite educated guesses about 22:12:05 um 22:12:07 this is strange 22:12:08 * oerjan chops a second in two and donates half to science 22:12:17 it is only mentioned in Documentation and header file 22:12:20 nowhere in source... 22:12:21 ?! 22:12:30 On a C64 you have to be tricky of you want to write to the first two bytes; there's memory-mapped registers at locations 0 and 1. 22:12:51 fizzie, hardware registers? 22:13:01 as in, non-cpu ones? 22:13:21 on a PIC, reading from or writing to address 0 is how you do indirect addressing 22:13:33 wth 22:13:39 shouldn't the constant be used on the source 22:13:42 I tried several 22:13:45 and found nothing 22:14:11 Yes. Address 0 controls the read/read-write mode of address 1, while 1 has a couple of rather random bits related to the "MMU" and other stuff. 22:15:24 ok STICKY_TIMEOUTS hit something 22:15:41 Actually it's called "processor port", so they might be implemented in the CPU; maybe they toggle some CPU pins or something. It's been a couple of years since I last even saw a 6510. 22:16:23 Yes, it seems that the address 0/1 stuff is pretty much what differentiates a 6510 (used in C64) from a 6502; there's a 6-bit I/O port in it, controlled by that register. 22:16:25 it seems related to select() timeout 22:16:30 not sure about details 22:18:06 it would mean that NULL would become a legal pointer-to-data 22:18:07 no 22:18:09 not exactly 22:18:36 error = do_mmap(NULL, 0, PAGE_SIZE, PROT_READ | PROT_EXEC, 22:18:36 MAP_FIXED | MAP_PRIVATE, 0); 22:19:02 SVr4 compat... 22:19:24 I didn't even know linux emulated that ABI 22:19:24 PROT_NONE for 100% safety! 22:20:30 -!- asiekierk has quit (Connection timed out). 22:27:02 20:57 AnMaster: not sure what went wrong 22:27:05 well, what happened? 22:27:09 what was the issue? 22:27:26 ehird, do you mean the KDE thing, the Firefox thing or the xine thing? 22:27:31 lisppaste 22:27:33 language - 22:27:34 ah 22:27:35 oh 22:27:36 did you do 22:27:38 lisppaste - lang? 22:27:39 instead of 22:27:41 lisppaste lang - 22:27:42 ehird, no 22:27:47 what then? 22:27:50 lisppaste - <(command) 22:28:00 that should work 22:28:05 ehird, no 22:28:07 it expands to 22:28:15 ah 22:28:15 lisppaste - /dev/fd/23 22:28:17 or such 22:28:17 I see 22:28:25 hmmmm 22:28:28 I should make the title configurable 22:28:34 "/dev/fd/63" is not very helpful 22:28:43 ehird, why 63? 22:28:48 http://paste.lisp.org/display/76853 22:28:52 /dev/fd/63 22:28:57 ah yes 22:29:12 it came up as Anonymous; haven't you set LISPPASTE_USER? 22:29:32 ehird, no, I don't like polluting our environment 22:29:38 heh 22:29:49 AnMaster: you can just $EDITOR `which lisppaste` 22:29:50 and put 22:29:52 LISPPASTE_USER=AnMaster 22:29:53 in 22:30:01 um it isn't in PATH 22:30:10 $EDITOR /path/to/lisppaste 22:30:18 although I don't know why you want a command line tool if not for PATH convenienc 22:30:19 e 22:30:48 ~/bin/lisppaste is a symlink to ~/irc/freenode/esoteric/ehird/lisppaste 22:31:02 and ~/bin is in your path is it not? 22:31:06 ehird, it isn't 22:31:09 o_O 22:31:13 ehird, that would be insecure! 22:31:15 ~~ 22:31:23 AnMaster: is your home partition mounted noexec? 22:31:23 yes, you could give yourself a virus 22:31:37 ais523, no it isn't actually 22:31:43 ais523, but it might be a good idea 22:31:46 DON'T GIVE HIM IDE— 22:31:47 if I weren't a programmer 22:32:05 ehird: even if I gave AnMaster an IDE, he probably wouldn't use it 22:32:08 heh 22:32:09 AnMaster: do you think adding paste annotation is a worthy feature? 22:32:12 I'm not sure how I'd do it 22:32:21 maybe if you give a number instead of or with a language 22:32:21 ais523, Indeed I prefer SATA 22:32:23 it'd annotate that paste 22:32:36 % lisppaste 76853 <(setarch --help) 22:32:48 ehird, I shall make a language called 76853 22:32:57 it shall be a HQ9+ variant 22:32:59 AnMaster: you have to get p.lisp.org to support it 22:33:08 (because I can't think anything else up right now) 22:33:18 ehird, ok true 22:33:57 [ehird:/Previous Systems.localized/2009-02-11_1200/Users/ehird/Documents/Code] % find <-- searching for old code gives me a wonderous prompt of verbosity 22:35:34 ehird, why "Previous System" 22:35:46 AnMaster: it's the system before my upgrade to leopard 22:35:48 Archive & Install 22:35:48 I remember that back on pre-OS X and old windows. All the reinstalls 22:35:55 ehird, that seems strange 22:36:05 no I'm not just attacking OS X 22:36:09 It's a nice excuse to clean out my system :P 22:36:11 I'm attacking lots of other OS too 22:36:15 Also, upgrades are generally flaky on most OSes. 22:36:24 Even Linux can be a bit odd after a full distro release upgrade. 22:36:25 like Windows and many linux distros 22:36:34 ehird, exactly. Which is why I prefer rolling release 22:36:41 they have good upgrade handling 22:36:44 Rolling release is pretty good, but not really commercializable 22:36:47 because it happens so often 22:36:54 -!- kar8nga has quit (Remote closed the connection). 22:36:57 commercial software is pretty much a ghetto of releases 22:37:06 well I guess you can make more money that wya 22:37:08 way* 22:37:19 ehird, what distros apart from arch and gentoo use rolling release? 22:37:24 None that I know of. 22:37:28 mhm 22:37:32 ehird: rolling release is trivially commercialisable, just make someone rent the OS not buy it 22:37:35 what about that one with insane paths 22:37:37 what was the name 22:37:41 gobolinux 22:37:42 gobolinux 22:37:42 right 22:37:44 in fact, many computer games are becoming episodic nowadays 22:37:48 I would call it 'sane' 22:37:54 ais523: Ugh, I would hate to rent an OS 22:38:01 ehird, ok, lets ignore that wording for a second 22:38:13 eww, renting a OS 22:38:16 no way 22:38:31 I mean the security concerns 22:38:40 since they have to be able to take it back somehow 22:38:43 an EULA is as far as I'll go for digital purchasing thingies 22:39:05 I wouldn't accept an EULA that either isn't GPL or very short 22:39:07 I'm not happy with OS X's EULA forbidding installation on non-macs, either 22:39:13 AnMaster: GPL is a license, not an EULA 22:39:29 ehird, true, but it does partly fill the same function 22:39:30 licenses just cover distribution, EULAs cover use 22:39:37 ok true 22:40:25 sometimes people using windows auto-installer-creators put the GPL in the EULA slot 22:40:30 ha 22:40:35 because the installer can't grasp that an EULA might not be wanted 22:40:36 lets see. I haven't bought an OS since I got my ibook ages ago 22:40:40 first model ibook 22:40:41 Hm. A game called "Stalin VS Martians". 22:41:02 ais523, ah yes indeed I have seen that 22:41:05 It seems to be about Stalin, fighting martians. 22:41:27 I've also seen auto-installer things just put in the EULA "This work is licensed under the GPL."... 22:41:33 ehird, link? 22:41:38 http://stalinvsmartians.com/en/ 22:41:39 So, presumably you agree that it is, in fact, GPL'd. 22:41:40 ;) 22:41:42 Trailer: http://www.youtube.com/watch?v=tGnNbKfpx9k 22:41:45 It seems to be a RTS 22:41:56 mhm 22:42:21 I never thought I'd see a cheerful 3D Stalin dancing. 22:44:18 this is a joke right? 22:44:23 It's a real game. 22:44:28 The trailer appears to be un-serious-ly. 22:44:29 no way 22:44:51 http://stalinvsmartians.com/screenshot0003.jpg 22:44:57 I pre-emptively deem it Game of the Year. 22:45:23 wow. 22:45:57 is that trailer made by the company or as a joke by someone else? 22:46:04 company 22:46:10 no way. again 22:46:18 [[Vopros: Can we play as Stalin himself? 22:46:18 Otvet: Yes, but not from the start. Stalin is our commander and he gives us orders. Closer to the grand finale he will appear on the battlefield as a playable unit - a huge colossus, five times higher than any other creature. Just like it was in the real life.]] 22:46:40 ...? 22:46:46 From their FAQ. 22:46:55 what is this company? 22:47:02 Three companies, apparently. 22:47:10 major ones or? 22:47:18 "A BWF/DREAMLORE/N-GAME CO-PRODUCTION". 22:47:20 Never heard of them. 22:47:23 indeed 22:47:35 http://bwf-game.com/ 22:47:39 http://www.dreamloregames.com/ 22:47:39 http://www.ngsdev.com/ 22:47:45 Latter two are in russian. 22:48:11 OH MY FUCKING GOD 22:48:13 http://www.nabble.com/-scala--URGENT%3A-Please-read-if-you-have-any-information-about-Tony-Morris-to22462911.html 22:48:47 um 22:48:51 wth 22:49:00 "Update: We've received information about Tony's home address that we believe to be current. The police are sending a team there now." 22:49:03 Let's hope it's not too late... 22:49:10 ok 22:49:18 the police were there 22:49:21 Agh, he's left on his bike... 22:49:23 he left on a motorbike 22:49:31 lament: hello, ehird 22:51:12 ehird, they arrived 1 second apart here 22:51:34 ehird, possibly less from lament's point of view 22:51:40 probably even 22:52:36 After me and another mentioned it: 22:52:36 21:51 Eridius: this discussion is already in #haskell-blah 22:52:38 What a fuckwit. 22:52:48 ehird, btw that thing on nabble... I never heard of this person 22:52:56 He's in the scala/haskell etc communities 22:55:08 ehird, btw what is nabble exactly? 22:55:08 AnMaster: do you know what system var to set to add to gcc's default include path? 22:55:13 nabble is a mailing list archiver 22:55:18 that was posted to the scala mailing list 22:55:29 ehird, no not off the top of my head 22:55:46 ehird, I would use command line instead 22:55:55 HELP 22:55:58 I'm installing with RubyGems, so 22:55:58 or for autotools CPPFLAGS 22:56:01 comex: WHAT 22:56:02 why is vim indenting two tabs when I press enter 22:56:11 you have autoindent set 22:56:13 except fucked 22:56:14 I guess. 22:56:18 autoindent: uses the indent from the previous line. 22:56:26 cindent, then 22:56:27 or w/e 22:56:43 ehird, modify the file that calls gcc? 22:56:45 seems easiest 22:56:48 uh, no. 22:56:51 wtf 22:56:54 :set nocindent worked 22:56:55 but not from vimrc 22:56:56 also check if rubygem has a way to do it 22:57:08 comex, does the file include one of those mode lines? 22:57:28 aha, C_INCLUDE_PATH 22:57:40 ehird, is that the rubygem one? 22:57:42 oh 22:57:43 per buffer 22:57:44 no 22:57:44 gcc 22:57:47 ah 22:57:49 comex: maybe it's set automatically from a language-specific setup file? 22:58:02 what about modeline? 22:58:09 in the file 22:59:37 night 22:59:49 ehird, btw what is nabble exactly? 22:59:50 well? 22:59:55 I answered. 22:59:59 oh 23:00:01 right 23:00:03 I see now 23:00:06 missed it 23:00:12 night anyway 23:04:12 -!- GreaseMonkey has joined. 23:04:15 oh god I love vim 23:04:19 it takes me to the line with an error 23:04:51 comex: what editor doesn't do that? 23:04:56 seriously? 23:05:09 even BC++ for Windows did that ten years ago, and it was pretty rubbish 23:08:54 ehird! :D 23:09:17 ais523: kate? :p 23:09:31 any IDE will do it, but vim grabs the line from the make error 23:09:33 psygnisfive: http://www.nabble.com/-scala--URGENT%3A-Please-read-if-you-have-any-information-about-Tony-Morris-to22462911.html 23:09:38 comex: so does emacs 23:09:40 (just linking in case there's anything you can do) 23:09:43 ais523: I don't use emacs 23:09:56 ehird 23:10:01 did you see what i commented on earlier? 23:10:05 No. What? 23:11:15 { (x,y) : x,y in N, &(x,y) = 0 } 23:11:23 Ah, yes. 23:11:30 Sierpinski shows up everywhere. 23:11:47 i know :o 23:11:49 also 23:11:51 who is tony morris? 23:12:18 dobblego from #haskell, apparently 23:12:25 aka dibblego 23:12:29 Also on programming reddit. 23:12:48 dunno him. 23:15:20 I hate to break this to you but they took tin foil off the market years ago, its all aluminum now, the tin stuff worked. 23:15:25 best conspiracy theory ever 23:15:30 heh 23:15:31 http://www.amzi.com/articles/prolog_under_the_hood.htm 23:15:34 should 'ail.' read 'fail.'? 23:15:46 hurnan should read human, too. 23:16:04 the reminds me of a joke some irish comedian told 23:16:28 "whats this 'aluminum foil' americans use? noone says 'aluminum foil', thats all wrong! everyone knows its said 'tin foil'." 23:17:16 -!- tombom has quit ("Peace and Protection 4.22.2"). 23:18:14 my brief browsings on the stuff make me believe a tinfoil hat is a useless mind control ray stopper, as the open bottom prevents it from being an efficient faraday cage 23:18:34 if you want to be safe, you need a tinfoil burka 23:18:54 with a fine metal mesh over the eyes 23:19:48 oh and closed at the bottom 23:20:01 i guess steel shoes would do 23:20:05 tinfoil catsuit 23:20:32 * oerjan googles for tinfoil burka and gets several hits 23:23:03 -!- kwertii has joined. 23:23:13 -!- olsner has joined. 23:40:27 -!- atrapado has quit ("Abandonando"). 23:44:55 -!- BeholdMyGlory has quit (Remote closed the connection). 23:48:01 psygnisfive: what's that formula, again? 23:48:29 [ (x `band` y) == 0 | x <- [0..w], y <- [0..h] ] 23:48:30 { (x,y) : x,y in N, &(x,y) = 0 } 23:48:30 Right? 23:48:36 where band = bitwise and. 23:48:53 yah but you dont want [ (band x y) == 0 ...] 23:49:05 -!- jix_ has quit ("..."). 23:49:09 because that'll just give you [T,F,T,...] 23:49:12 Right. 23:49:12 you want the points themselves 23:49:15 that should be a condition, not the result 23:49:16 Er? 23:49:24 I was using mine to draw a bitmap. 23:49:29 Where False = black and True = white. 23:49:47 oh 23:49:52 yeah but whats the type of that list? 23:49:56 [Bool]. 23:49:59 exactly 23:50:07 how can you draw a bitmap for that? :P 23:50:11 its just a list of bools 23:50:20 you need a list of point-bool pairs 23:50:30 Well, you know w and h. 23:50:37 So you take w elements, and go down one. 23:50:48 [[(x `band` y) == 0 | x <- [0..w]] | y <- [0..h]] might be better 23:50:49 yyyyyes but thats not what you wrote :) 23:51:04 what you wrote was just a list of T,F 23:51:15 not a list of what points are T and what are false 23:51:50 anyway you obviously dont need to code it like that 23:52:02 * oerjan starts swatting psygnisfive then thinks better of it 23:52:03 you can just doubly iterate 23:52:04 -!- neldoreth has joined. 23:52:09 why are you swatting me? 23:52:13 you know what i say is true! 23:52:14 sierpinski :: Integer -> Integer -> [(Integer,Integer)] 23:52:15 sierpinski w h = [ (x,y) | x <- [0..w], y <- [0..h], x .&. y == 0 ] 23:52:25 Now to write the rest -> 23:52:25 exactly. 23:52:34 Very beautiful formula, though. 23:52:38 Even nicer than the chaos game. 23:52:44 but im not writing it in haskell so :p 23:53:05 i odnt know haskell's image generating utilities 23:53:14 just generate console output :P 23:53:25 i suppose. but i dont know how to do that either :D 23:53:31 putChar 23:54:10 or putStr after you combine everything 23:54:27 sierpinski' :: Integer -> Integer -> [[Bool]] 23:54:27 sierpinski' w h = [ [ x .&. y == 0 | x <- [0..w] ] | y <- [0..h] ] 23:54:30 ^ easier to use 23:54:35 i suppose actually you could just do something like... build the appropriate [[Char]]s and then map putChar 23:54:36 or something 23:54:44 but i dont really care, so 23:54:45 map putChar = putStr, duh. 23:55:01 anyway 23:55:05 there you have it 23:55:07 mapM_, technically 23:55:10 yes yes 23:58:13 its pretty nifty tho innit ehird 23:58:45 something so simple as &(N,N) gives you the sierpinski gasket 23:58:49 putStr . unlines . map (map (\b -> if b then '*' else ' ')) $ sierpinski' w h 23:58:51 maybe. 23:58:55 heh 23:58:56 I just wrote that 23:58:58 finalizing it now 23:59:42 -!- FireFly has quit ("Later"). 2009-03-12: 00:00:20 ehird, what was the Golly program that you had that generated the dual gasket + randomness? 00:00:29 erm 00:00:29 straight line 00:00:36 we went over this already :P 00:00:42 that doesnt produce that in GoL 00:00:48 crooked line 00:00:59 why dont you make it work and then send me the file 00:01:15 how long does it need to be? i tried some in mcell but i don't think i got it big enough. 00:01:20 oerjan: psygnisfive: http://hpaste.org/fastcgi/hpaste.fcgi/view?id=2322 00:01:26 Complete sierpinski program in Haskell. 00:01:30 Including command line parsing :P 00:01:33 In 19 lines! 00:01:40 hmm 00:01:46 lemme do it in ruby! :o 00:01:53 good luck getting as pretty 00:02:02 % runhaskell sierpinski.hs 30 30 a 00:02:02 sierpinski.hs: usage: sierpinski [w h] 00:02:02 intercalate "\n" is unlines 00:02:03 heh 00:02:05 ermove "sierpinski" 00:02:21 oerjan: ? 00:02:31 well, except the final \n 00:02:53 oerjan: psygnisfive: http://hpaste.org/fastcgi/hpaste.fcgi/view?id=2322#a2323 00:02:54 updated 00:02:55 what does unlines fo, anyway 00:02:57 *do 00:03:06 ais523: [[String]] -> [String] 00:03:08 adds \ns./ 00:03:14 ah 00:03:21 anyway, psygnisfive, if you can get it that elegant in that short as code I'll be very impressed 00:03:25 as you may have guessed, I have a highlight on the word "INTERCAL" 00:03:27 Haskell is exceedingly godo at this type of stuff 00:03:30 and apparently it's case-insensitive 00:03:30 heh 00:03:31 ais523: oh 00:03:38 i suppose it depends on your notion of elegant ;) 00:03:39 exceedingly Godot 00:03:52 psygnisfive: end end end end end is very elegant. 00:03:53 not. 00:03:59 }}}}} 00:04:01 :P 00:04:06 ais523: 00:04:07 ais523: intercalate is a recent addition, no more than a couple years 00:04:16 fuck yeah indentation. 00:04:19 ehird: I also have a highlight on the word "ais523" 00:04:30 and no, indentation just messes up too many things that don't come up very often 00:04:43 I've seen whitespace borkage far too often to be comfortable with it 00:05:07 WFM 00:05:30 ehird: for instance, what if you're trying to type a python program over a serial cable by hand? 00:05:36 don't do that. 00:05:39 you really don't want to have to type out the indentation in that case 00:05:48 ehird: exactly, that's a limitation of the language 00:05:55 % runhaskell sierpinski.hs 0 0 00:05:55 * 00:05:56 hmm, an off by one 00:06:05 oh well 00:06:10 also, tabs vs. spaces 00:06:20 normally not a problem, you can just automatically reindent 00:06:23 huge problem in Python 00:06:34 tabs in Python produce a warning 00:06:40 on every run 00:06:41 problem solve 00:06:42 d 00:06:51 ok, now you're just inflating code size for no reason 00:07:03 by SEVERAL BYTES 00:07:16 ehird: whitespace is a substantial proportion of a typical python program 00:07:21 especially at 4-space indentation 00:07:22 :o 00:07:24 pastie.org is down D: 00:07:27 yes, it is 00:07:35 what can i use instead :| 00:07:38 so much for ehird's permanent pastes for helping logreaders things 00:07:44 and use rafb.net, it annoys ehird 00:07:45 rafb deletes permanently 00:07:48 pastie just happens to be down 00:07:51 psygnisfive: paste.lisp.org 00:08:16 has no ruby 00:08:26 but ok 00:08:26 so what 00:08:27 i have eyes 00:08:59 http://paste.lisp.org/display/76862 00:09:07 two eyes live, one eye dies. 00:09:24 http://hpaste.org/fastcgi/hpaste.fcgi/view?id=2322#a2323 is more readable, more elegant and quicker 00:09:29 also 00:09:32 you missed command line arg processing 00:09:36 i dont find your elegant at all D: 00:09:45 its not supposed to be command line bitch :| 00:09:51 i could make it 2 lines of haskell, btw, but I was making it verbose and readable 00:09:52 i dont care about your ugly commandline shit 00:10:00 make it smaller! 00:10:02 ugly, lol 00:10:05 no, I like it 00:10:09 i want to see smaller 00:10:19 i could do more readable too i guess 00:10:21 k, here 00:10:52 import Data.Bits 00:10:52 import Data.List 00:10:53 sierpinski w h = [ [ x .&. y == 0 | x <- [0..w] ] | y <- [0..h] ] 00:10:55 main = putStr . unlines . map (map (\b -> if b then '*' else ' ')) $ sierpinski 30 30 00:10:57 you could omit the sierpinski definition line: 00:11:08 main = putStr . unlines . map (map (\b -> if b then '*' else ' ')) $ [ [ x .&. y == 0 | x <- [0..30] ] | y <- [0..30] ] 00:11:31 http://codepad.org/lQGGDWNZ <- on the #haskell codepad, newsham added me 00:12:03 ehird: you're missing a * at the right and at the bottom 00:12:10 no hes not 00:12:16 he just didnt go up to that start is all :p 00:12:24 yeah, 31,31 would fix that 00:12:27 but it is fine 00:12:30 oh, ok 00:13:34 psygnisfive: http://codepad.org/Y1PV2gVc 00:13:37 newsham centered it :D 00:14:07 lol 00:14:42 anyway, very nice algorithm psygnisfive 00:14:51 have you noticed how much the sierpinski definition resembles the mathematical one you gave? 00:14:52 its not my discovery. 00:14:55 see, that's how awesome it is :P 00:14:59 no i havent actually 00:15:15 i also discovered a way to generate a gasket inductively over a graph 00:15:32 { (x,y) : x,y in N, &(x,y) = 0 } 00:15:32 [ (x,y) | x <- [0..w], y <- [0..h], x .&. y == 0 ] 00:15:41 first is your mathematical one, second is my haskell one 00:15:44 oh oh well 00:15:58 my first one was actually intended to be pseudohaskell from the beginning ;) 00:16:14 anyway 00:16:17 inductively on a graph: 00:16:38 G = (Nodes,Edges) where Nodes = N^2 00:16:55 1: The edge ((0,0),(0,1)) is in Edges 00:17:05 2: The edge ((0,0),(1,0)) is in Edges 00:17:25 I wonder what in the bitwise patterns gives rise to sierpinski 00:17:28 It's the God fractal... 00:17:50 ehird: clearly this is evidence that the universe is run by cellular automata! 00:18:16 3: IFF (i,j) is of incoming degree 1, then ((i,j),(i+1,j)) and ((i,i),(i,j+1)) are in Edges 00:19:04 er.. that should obviously be (i,j) not (i,i) on the right there 00:19:17 -!- Jophish has quit (Read error: 104 (Connection reset by peer)). 00:21:25 theres also another very simple algorithm that produces an identical gasket 00:21:48 thats similarly simple but not as mathematically pure 00:22:43 and ofcourse the simple duplicate-to-form-a-new-item algorithm works 00:23:15 in a more general way so as to produce not just the sierpinski gasket but also the cantor set, etc. 00:44:27 -!- ais523 has quit (Remote closed the connection). 00:44:51 ehird 00:45:01 . 00:45:07 send me the golly file 00:45:21 lazy 00:45:25 :| 00:45:39 you know who else is lazy? 00:45:40 slereah 00:45:43 you dont want to be like slereah do you 00:47:02 now that depends. is he rich? 00:47:06 no 00:47:10 and hes a homosexual! 00:47:17 and a communist 00:47:31 communist? 00:47:36 yeah 00:47:44 well, hes french 00:47:45 so 00:47:46 same thing 00:47:51 i suspected the homosexual but i never really got it confirmed before 00:54:17 haskell is fun like a kitten. 00:54:23 lol 00:54:29 a kitteny kitten. 00:54:36 ehird 00:54:42 you're clearly either a girl, or a faggot. 00:54:45 take your pick, 00:54:52 what about both 00:55:01 unfortunately both dosnt apply 00:55:26 you mean lesbians don't like kittens? 00:55:30 no 00:55:34 they hate them with a passion 00:55:44 what about 00:55:45 lesbian 00:55:46 kittens 00:55:57 you learn something new every day 00:57:25 so i discovered a way to make a fuse in GoL 00:59:11 psygnisfive: http://bash.org/?105356 01:00:05 its a very good point 01:00:10 meth makes you like that big time 01:00:16 fuse: 01:00:21 Then I must be permanently on meth. 01:00:32 [right down down left down down] 01:00:41 wut 01:00:44 repeat until you dont want to 01:00:54 color a cell 01:00:55 move right 01:00:57 color a cell 01:00:58 mov down 01:00:59 Omg, golly 2.0 is out 01:01:02 color a cell 01:01:03 move down 01:01:11 and so on 01:01:27 oh right 01:01:29 it removes itself? 01:01:34 yeah, a wavy horizontal line does that 01:01:36 diagonally 01:01:37 sorta 01:01:37 eh not as such 01:01:41 it sort of... 01:01:46 burns itself up :) 01:01:58 just do it. make it very long 01:02:23 helloes 01:02:24 ah, right 01:02:25 simple 01:02:28 oi oi 01:02:37 ie 01:03:03 can i just say 01:03:06 how much i love you guys 01:03:14 for being so dorky that i cant talk about this shit with you 01:03:15 <3 01:03:44 er, "cant"? 01:03:53 can* 01:04:02 damn fingers 01:04:16 * oerjan swats psygnisfive's fingers for him -----### 01:04:24 <3 01:07:28 bash sucks 01:08:13 also have i mentioned hardcover books are awesome 01:08:20 they are just incredible 01:08:33 especially when they're really thick and clean 01:08:41 like 1300 pages 01:08:42 this one 01:09:06 i should probably buy another one of those for just touching and licking 01:09:21 XD 01:09:43 ew :| 01:09:50 booksexual 01:10:04 ew? 01:10:34 i'm a bibliophile in many senses 01:11:35 mmmm also when you open it, there's tons of shit i'll never understand, but it's so pretty 01:11:37 "and then you'd just have giant red orbs flying around the planet that can eat up functional satelites katamari-style. " 01:11:42 NAAA, NA NA NA NA NA NA NA 01:13:45 im off to the cafe 01:13:51 boys goys 01:15:12 good night 01:18:09 ehird: er, what? 01:18:21 oerjan: katamari damacy 01:18:53 well i've slightly heard of that, but it was the rest of it i wondered about 01:19:48 now if they could use it for cleaning up space junk... :D 01:24:23 00:23 Tseg: That makes sense. Here's my reference trick: mfix(f)=let r=newRef(Nothing) in ContIO(\to->in runIO(f(unJust(readRef(r))))(\v->do {writeIORef(r)(Just(v)); to(v)})) 01:24:25 OH MY GOD IT IS C. 01:24:32 oerjan: THAT IS HASKELL WTF 01:24:44 what the fuck 01:24:49 even I know that's bad Haskell 01:24:57 he's a newbie from C 01:24:58 but JESUS CHRIST 01:25:21 runIO $ f $ unJust $ readRef $ r 01:25:23 plskthx 01:25:29 "readRef $ r" fail 01:25:32 that's readRef r 01:25:33 also ti should be 01:25:34 err, yeah 01:25:39 runIO . f . unJust . readRef $ r 01:26:01 does that work? 01:26:04 $ confuses me 01:26:10 it's an operator that does nothing but it has a high precedence 01:26:20 I see 01:26:20 it doesn't do nothin 01:26:21 g 01:26:23 () is the empty operator 01:26:25 it does nothing 01:26:25 ($) = () 01:26:28 no 01:26:32 a $ b = a b 01:26:35 that's the definition 01:26:37 it's just that regular application is an infix operator with a 0-length name 01:26:40 $ is an explicit name for it 01:26:51 (and yes, I know that's a YO DAWG situation) 01:27:56 it's a yodawgmorphism 01:28:46 or strictly speaking, supdawgmorphism, which is dual to an infdawgmorphism 01:37:19 ehird: also, that is so much harder to read than runIO(f(unJust(readF(r)))) 01:37:23 though much prettier 01:37:31 but less clear on what it's doing 02:09:20 -!- bsmntbombdood has quit (Read error: 60 (Operation timed out)). 02:10:05 ok im back 02:19:29 -!- oklopol has quit (Read error: 60 (Operation timed out)). 02:24:52 -!- bsmntbombdood has joined. 02:36:20 -!- olsner has quit (Remote closed the connection). 02:45:06 -!- fizzie has quit (calvino.freenode.net irc.freenode.net). 02:45:06 -!- fungot has quit (calvino.freenode.net irc.freenode.net). 02:45:06 -!- psygnisfive has quit (calvino.freenode.net irc.freenode.net). 02:45:07 -!- ehird has quit (calvino.freenode.net irc.freenode.net). 02:45:07 -!- GregorR has quit (calvino.freenode.net irc.freenode.net). 02:45:07 -!- Ilari has quit (calvino.freenode.net irc.freenode.net). 02:45:07 -!- rodgort has quit (calvino.freenode.net irc.freenode.net). 02:45:07 -!- Robdgreat has quit (calvino.freenode.net irc.freenode.net). 02:45:07 -!- kwertii has quit (calvino.freenode.net irc.freenode.net). 02:45:07 -!- Azstal has quit (calvino.freenode.net irc.freenode.net). 02:45:07 -!- sebbu has quit (calvino.freenode.net irc.freenode.net). 02:45:08 -!- AnMaster has quit (calvino.freenode.net irc.freenode.net). 02:45:08 -!- dbc has quit (calvino.freenode.net irc.freenode.net). 02:45:08 -!- mtve has quit (calvino.freenode.net irc.freenode.net). 02:45:08 -!- ineiros has quit (calvino.freenode.net irc.freenode.net). 02:45:08 -!- SimonRC has quit (calvino.freenode.net irc.freenode.net). 02:45:08 -!- bsmntbombdood has quit (calvino.freenode.net irc.freenode.net). 02:45:08 -!- Slereah has quit (calvino.freenode.net irc.freenode.net). 02:45:08 -!- pikhq has quit (calvino.freenode.net irc.freenode.net). 02:45:08 -!- Dewio has quit (calvino.freenode.net irc.freenode.net). 02:45:09 -!- MizardX has quit (calvino.freenode.net irc.freenode.net). 02:45:09 -!- lament has quit (calvino.freenode.net irc.freenode.net). 02:45:09 -!- GreaseMonkey has quit (calvino.freenode.net irc.freenode.net). 02:45:09 -!- Asztal has quit (calvino.freenode.net irc.freenode.net). 02:45:09 -!- neldoreth has quit (calvino.freenode.net irc.freenode.net). 02:45:09 -!- Leonidas has quit (calvino.freenode.net irc.freenode.net). 02:45:10 -!- ski__ has quit (calvino.freenode.net irc.freenode.net). 02:45:10 -!- oerjan has quit (calvino.freenode.net irc.freenode.net). 02:45:14 -!- lifthrasiir has quit (calvino.freenode.net irc.freenode.net). 02:45:21 -!- oerjan has joined. 02:45:21 -!- lifthrasiir has joined. 02:46:37 -!- kerlo has quit (Remote closed the connection). 02:50:02 -!- lifthrasiir has quit (calvino.freenode.net irc.freenode.net). 02:50:02 -!- oerjan has quit (calvino.freenode.net irc.freenode.net). 02:50:59 -!- lament has joined. 02:50:59 -!- kerlo_ has joined. 02:50:59 -!- lifthrasiir has joined. 02:50:59 -!- oerjan has joined. 02:50:59 -!- bsmntbombdood has joined. 02:50:59 -!- neldoreth has joined. 02:50:59 -!- kwertii has joined. 02:50:59 -!- GreaseMonkey has joined. 02:50:59 -!- Slereah has joined. 02:50:59 -!- MizardX has joined. 02:50:59 -!- psygnisfive has joined. 02:50:59 -!- Ilari has joined. 02:50:59 -!- fizzie has joined. 02:50:59 -!- fungot has joined. 02:50:59 -!- ehird has joined. 02:50:59 -!- AnMaster has joined. 02:51:00 -!- Azstal has joined. 02:51:00 -!- Leonidas has joined. 02:51:00 -!- Dewio has joined. 02:51:00 -!- GregorR has joined. 02:51:00 -!- Asztal has joined. 02:51:00 -!- sebbu has joined. 02:51:00 -!- mtve has joined. 02:51:00 -!- ineiros has joined. 02:51:00 -!- pikhq has joined. 02:51:00 -!- Robdgreat has joined. 02:51:00 -!- rodgort has joined. 02:51:00 -!- SimonRC has joined. 02:51:00 -!- dbc has joined. 02:51:00 -!- ski__ has joined. 02:51:00 -!- irc.freenode.net has set channel mode: +o lament. 02:53:05 -!- Deewiant_ has joined. 03:03:42 -!- Deewiant has quit (Connection timed out). 03:29:56 -!- Sgeo has joined. 03:54:06 -!- comex has quit (Read error: 113 (No route to host)). 04:17:35 -!- oerjan has quit ("Good night"). 04:20:17 -!- sEvher has joined. 04:22:21 -!- sEvher has left (?). 04:37:21 -!- bsmntbombdood has quit (Read error: 113 (No route to host)). 04:38:11 -!- bsmntbombdood has joined. 04:38:40 -!- neldoreth has quit (Read error: 113 (No route to host)). 04:43:50 given a big directory of text, i need a fast way of searching it 04:43:56 (faster than simple grep) 04:55:56 unless it's sorted (or some known permutation of sorted) you can't go any quicker than grep 04:58:46 ... or has any other property you can exploit for speed 04:59:15 you can build an index 04:59:50 building the index ~ grep 04:59:56 search < grep 05:04:08 building the index + searching > grep 05:11:52 Anyhow, I don't know much about indexing, and am to tired to research it now. Good night. 05:39:49 -!- Sgeo has quit ("Leaving"). 07:30:37 -!- kwertii has quit (Remote closed the connection). 07:30:50 -!- kwertii has joined. 07:32:28 -!- asiekierk has joined. 07:32:29 hello 07:34:47 hey. 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:13:44 -!- neldoreth has joined. 08:20:24 -!- kwertii has quit ("bye"). 08:28:01 -!- oklopol has joined. 08:40:07 -!- Deewiant_ has quit (calvino.freenode.net irc.freenode.net). 08:42:04 -!- Deewiant has joined. 09:15:06 MizardX, building an index is a one time cost though, so once you done it you can use it several times 09:15:29 but for a one time search a plain grep would be faster than first building the index 09:16:56 that assumes the datset doesn't change, if it does you would need to rebuild (possibly partial, for text files you could speed up rebuild by skipping if modification time hasn the index. 09:16:59 hasn't changed) 09:17:30 blergh at hitting enter instead of ' ... 09:18:50 Also indexing is non-trivial if you want to include things like stemming. 09:19:30 Not that there wouldn't be a pile of tools and libraries for that short of stuff. 09:19:34 s/short/sort/ 09:19:37 well ok 09:19:46 fizzie, grep is non-trivial if you want that too 09:19:55 Yes, but grep's already there always. 09:20:07 It's like a natural law; there's grep everywhere. 09:20:13 fizzie, well I mean, you can't do stemming in grep afaik 09:20:20 not GNU grep at least 09:20:32 Right, you meant that. Well, no. 09:21:07 and if not the GNU tool then probably no other grep either. It's like a natural law; the GNU tools are always the most bloated ones. 09:21:32 Stemming in grep would be a bit over-the-top even for a GNU tool. 09:21:44 exactly 09:22:04 -!- tombom has joined. 09:22:05 fizzie, anyway I don't know if it would be possible to use any sort of index for stuff like grep -E 09:22:23 I suppose basic wildcards work with indexes. Or how would LIKE work in SQL? 09:23:14 At least PostgreSQL optimizes only LIKE expressions of the type "foo%" (i.e. prefix-matching) using indices. 09:23:22 hm ok 09:23:46 fizzie, what is the FTS stuff in postgre about btw? 09:23:51 full text index or something iirc 09:23:59 "The optimizer can also use a B-tree index for queries involving the pattern matching operators LIKE and ~ if the pattern is a constant and is anchored to the beginning of the string — for example, col LIKE 'foo%' or col ~ '^foo', but not col LIKE '%bar'." 09:24:08 Yes, it's got a full-text-search thingie. 09:24:21 is that for LIKE or for something else? 09:24:30 Something else. 09:24:38 I see. How does it work? 09:24:47 It's got a different way of making queries, pretty much a bag-of-words that you can search for. 09:24:54 hm ok 09:25:15 And it works "the usual way", with a so-called inverted index: there's a mapping from words to "documents" where they occur. 09:26:02 hm 09:26:16 I suspect using indexes for regex would be hard 09:26:51 Yes; though you could possibly use them in some special cases to limit the amount of records that need to be actually tested with the real regex engine. 09:27:00 well true 09:27:17 "foo|bar|quux" would be trivial to use an index for for example 09:27:28 wait is that valid? two "for" after each other... 09:29:39 I guess you could (in that particular case) match the words in your index (which is less text than the indexed stuff) against foo|bar|quux, and then select those places where they occur. 09:29:39 btw, though I know the current xkcd is from yesterday I think it is much better than recent average 09:29:55 (just forgot to comment on it yesteday in here) 09:30:25 A suffix tree is also nice if you really need a fast way of "check if this long piece of text exactly contains this arbitrary substring", but I think it takes more space (larger than the original text) than your general full-text-search inverted-index (which I think in reasonable use cases ends up being less; I think I saw a figure like "30 % of your data" in some Lucene documentation or something). 09:30:45 fizzie, best way: CAM 09:30:47 ;) 09:30:56 -!- GreaseMonkey has quit ("Client Excited"). 09:31:28 though I doubt that would help for regexes 09:31:48 still, it is probably the fastest way to search in general. 09:32:56 Doesn't really help when all you've got is software, of course. 09:33:08 true 09:33:15 I think I'll go do an early-ish (10:33 local-time) lunch now. 09:33:22 fizzie, one sec 09:33:28 Hm? 09:33:33 fizzie, it seems hard to speed up regex at all really 09:33:50 compared to many other types of searches 09:34:13 or? 09:34:23 Yes, I'd certainly say so. 09:34:52 fizzie, the same goes for one loopup -> several regex matching 09:35:02 like for a spamfilter 09:35:26 and then I mean spamfilters for ircds mostly 09:35:29 Google Code does regular expression search over a large set of data; but no-one knows (well, except Google themselves) how it's done. 09:35:42 fizzie, ok *that* is interesting 09:35:54 hm 09:35:57 That's a large set of constant data, wouldn't help in an ircd spam-filter where every sentence is new. 09:36:16 fizzie, yes, and you need to match each line to several regexes 09:36:23 Wikipedia just has some idle speculation: "... but appears to have combined precomputed indices with a POSIX compliant regular expression engine.[citation needed][original research?]" 09:36:42 for a set of wildcard patterns you could do some easier matching 09:37:14 storing them sorted would help selecting a better one earlier for example 09:37:27 unlike a regex. (zzz)?aaa 09:37:56 you still have to deal with * at the start though 09:38:08 anyway, cya. Have to leave too. 09:38:38 For "multiple regexps against a single line", you can combine the regexps into a single one, then compile that one to a single huge state machine. 09:55:44 -!- ais523 has joined. 10:32:18 fizzie, hm ok 10:32:28 fizzie, good idea even 11:01:54 -!- ais523 has quit ("http://www.mibbit.com ajax IRC Client"). 11:04:29 I think flex does sort-of something like that in the scanners it builds. I mean, basically what it does is to have a large set of expressions to match against the input, and the scanner it generates seems to resemble a state machine. I haven't looked at the details. 11:09:54 http://www.youtube.com/watch?v=1yH_j8-VVLo - amusing short piece on Erlang 11:13:59 Heh; I missed the "promoted videos" side-bar heading, so the page looked as if it said "[down-arrow] Related videos", followed by "Funny Face Yoga", "The Cat Phone - PetTube..." and "Failed Toy Pitch - Come...". They didn't sound very related to me. 11:14:13 Although I guess Erlang use can easily lead to Funny Face Yoga. Or something. 11:38:30 iirc I saw a regex -> C generator 11:38:32 forgot the name 11:39:09 ah yes re2c 11:39:12 never tried it 11:43:26 http://www.youtube.com/watch?v=1yH_j8-VVLo - amusing short piece on Erlang <-- old 11:44:55 ah no, just the small preview image was old. from another video 11:45:14 I have that regex -> brainfuck generator. :p 11:45:18 also one of those images are from BOIC screen saver... 11:45:30 BOINC* 11:46:26 fizzie, wait what? PCRE? 11:46:26 "For maximum performance. [Footnote, tiny print: The expression "maximum performance" is based on the reasonable assumption that your computational platform is based on the Brainfuck industry-standard low-level architecture.]" 11:46:43 fizzie, link? 11:46:43 No, just very basic regexps. 11:47:12 Kleene star, the | operation and concatenation; I don't know if I had anything else. 11:47:42 I'll grep my logs; I dug it up not very long time ago (certainly not more than a couple of months) for someone else on this channel. 11:47:51 thought it was http://www.youtube.com/watch?v=uKfKtXYLG78 first 11:48:30 which is IMO way funnier and interesting 11:50:51 Yes, but that one's actually old. :-P 11:53:07 AnMaster: http://zem.fi/~fis/BFRE.java -- then "javac BFRE.java" and "java -cp . BFRE '(ab)*' > test.b" should generate a test.b which accepts (outputs "acc!") strings like "abab" and "abababab" but rejects (outputs "rej!") strings like "abba". 11:53:30 why do you like java so much 11:53:31 I seem to remember it generating rather large brainfuck output files. 11:53:50 I don't, I just was having a Java phase at that moment. 11:54:03 Currently I'm back in the Perly period, having gone through a short bit of Python there. 11:54:32 fizzie, what about C++? 11:54:53 I'm eagerly waiting for the next C++ sprint, I could actually work on jitfunge a bit at that point. 11:54:56 jitfunge was in C++ right? 11:55:20 It's like you read my mind here. 11:56:08 fizzie, so what if you need to use another language suddenly? 11:56:16 like an assignment or whatever 11:56:19 which doesn 11:56:29 doesn't* match the current sprint 11:56:39 or whatever you called it 11:57:05 A "period", by way of analogy to, say, Picasso's blue period. 11:57:35 fizzie, I guess it was lucky that there wasn't a shortage of blue paint during that period 11:57:37 But I guess that depends. It's not like I couldn't touch other languages, it's more of a preference for any on-my-free-time things. 11:57:47 or maybe there was a shortage of other pigments? 11:57:50 apart from blue 11:58:01 Actually that compiled (ab)* isn't so bad; it's just something like 18.5 80-column lines. 11:59:16 fizzie, in cfunge it would be way shorter: "PXER"4( "*)ba(" ;something I forgot; ;forgot what commant it was in REXP; 11:59:22 ;P 11:59:36 does CCBI implement REXP btw? 11:59:46 Deewiant, ^ 11:59:51 or 3DSP 11:59:52 AnMaster: v 11:59:54 No 11:59:57 AnMaster: ^ 11:59:59 AnMaster: v 12:00:00 right 12:00:00 Yes 12:00:01 AnMaster: ^ 12:01:00 AnMaster: There's an option in BFRE to generate commented brainfuck: just change line 621 from "String bf = re.bf();" => "String bf = re.bf(false);" and recompile. 12:01:21 v > 12:01:21 v> > 12:01:21 # 12:01:21 > v^< 12:01:21 Deewiant: ^ 12:01:21 I see 12:01:37 Infinite loop, oh dear 12:01:42 Deewiant, no? 12:01:49 Yes. 12:01:52 oh right 12:01:56 v< 12:01:58 should have been that 12:02:07 wait no 12:02:12 Deewiant, not infinite loop 12:02:12 The v in the lower right corner is an infinite loop 12:02:33 In the same sense than your plain old "v" was. 12:02:38 (But of course that whole thing can only loop forever anyway) 12:02:40 Deewiant, exactly 12:03:01 fizzie, well I assumed that too 12:03:02 I'm just wondering if I was supposed to traverse all the chars or not 12:03:13 Deewiant, huh? 12:03:55 Hmm, right, I'm supposed to start at the ^ and not the v :-P 12:04:03 Oh well. 12:04:12 I thought that was quite logical, since it's what was after the "name:" part. 12:04:18 hm iirc someone said GCC is getting a plugin architecture soon. Can anyone confirm this? 12:04:18 That BFRE thing doesn't even optimize long strings of +s or -s; could save a lot in the generated output with just that. So don't use it in a production system. 12:04:27 * AnMaster doesn't have browser running atm 12:04:28 fizzie: I read it as "execute the above". 12:05:16 hm, maybe cfunge should have optional plugin support, to support static analysers and such 12:05:49 wait what I planned just needs to parse the trace output 12:05:53 hm 12:09:43 I would like to work on jitfunge more if there wasn't that damned self-modification going on. I can't even compile a constant-argument p into a simple memory store, without worrying that later the jitter is going to create a compiled trace at that location, and it will then be invalidated if this particular p instruction is ever executed. 12:14:19 fizzie, heh 12:14:29 fizzie, I'm sure it can be solved somehow. 12:15:17 fizzie, also if there wasn't self modification you could just compile it normally without needing JIT 12:16:00 Given the funky Befunge code-flow, that's not completely trivial either; I'd still suspect a tracing JIT could be the way to go. It'd just be a lot easier. 12:16:56 Currently jitfunge has a "solution" which basically boils down recording in funge-space all the cells where any compiled-to-memory-store-puts refer to, and later if we end up executing code in such a place, invalidating the referring code. 12:17:18 mhm 12:17:44 (Which means that when it's recompiled and compiling the 'p', it knows to use the put-it-there-carefully function call instead of a compiled store.) 12:18:15 fizzie, put it there carefully mean "invalidate compiled code"? 12:18:23 means* 12:18:26 Yes, pretty much. 12:18:48 fizzie, how did you handle pop on empty stack now again? 12:19:36 I don't have a solution to a piece of code where there are two "routines", and each of them 'p'-modifies the other, then "calls" (well, goes to) the other; they both end up being recompiled all the time, but it'd need serious cleverness to notice something like that and compile the routines into "before-the-modified-place" and "after-the-modified-place" halves. 12:19:58 fizzie, what about ' and s ? 12:20:57 There's a PROT_NONE memory block "under" the stack, and I catch the SIGSEGV, extract the machine context from the signal, examine the opcodes near the offending instruction to see what was going on, then manipulate the necessary registers to simulate a "it returned a zero but did not move the stack pointer" situation. 12:21:09 fizzie, anyway one idea would be to note that the place is edited often, and once a threshold is reached skip compiling the cell that p writes to, and compile two traces one on each side of that point 12:21:54 fizzie, hm so popping on empty stack has quite high overhead? 12:22:18 I haven't measured, but very likely. 12:22:28 At the very least something compared to setjmp/longjmp usage. 12:22:35 right 12:23:21 fizzie, the most likely case of hitting that would be on >:#,_ idiom 12:23:29 so optimising that specially maybe? 12:23:37 on the* 12:23:48 I always put an explicit 0 there; I usually have other stuff on the stack anyway. 12:24:19 But a print-loop could be detected specially, yes. 12:24:19 Mycology pops an empty stack quite often, I think 12:24:39 fizzie, well depends, I often write test cases, so I tend to know if it is "GOOD" or "BAD" and not have anything useful on stack any more 12:24:46 thus probably doing an n 12:25:05 if I have garbage on it 12:25:06 The "note often-edited places" is also something I've thought about. But it's yet more stuff to track, I'd need to keep write-counts on just about all modified-by-code funge-space locations to see if they are modified often. The simplest "someone wrote there once, so someone's probably going to keep modifying it" rule might be too simple. 12:25:13 Yeah, I tend to do "n" instead of "0" in Mycology 12:25:27 fizzie, doesn't Java HotSpot do something like that? 12:25:29 well often executed 12:25:31 in that case 12:25:54 Yes, but it doesn't need to track all data storage memory for potential changes also. :p 12:25:56 Deewiant, I suspect that is most common in test case code 12:26:05 also I often use the first row as temp storage 12:26:12 Maybe I could have a "someone modified a location which actually contained some code that was previously executed" rule. 12:26:15 I mean I don't need it after the start 12:26:32 it is setup, and later temp storage 12:27:04 on the other hand, sometimes the setup code write stuff into the program once 12:27:42 btw, does anyone have a ?-based unbiased RNG for funge? Range 0-9 12:28:13 I tried a tree structure but it is hard to make sure you get an even probability for all cases 12:28:36 Fungot keeps some stuff semi-permanently on the stack (I don't remember what stuff; some numbers related to the raw IRC socket data under processing, I think) so I can't clear it. Since I don't use the stack-stack at all. 12:29:19 fizzie, another thing that might be useful to optimise somehow is if one side of a ? has an > pointing at the ? 12:29:39 quite common when you want n outputs for n < 4 12:30:41 I don't really remember how I did ? right now. I think currently it always ends a compiled piece of code. 12:36:40 I think http://zem.fi/~fis/rand.txt should work for unbiased [0-9]; it's based on the ? => ??? tree of generating unbiasedly 0-11 (0-3 from first ?, 4-7 from second, 8-11 from third) except that here the two unnecessary outputs are redirected back to the initial ? for a re-roll. 12:38:12 1-9 is easier 12:38:37 Sure, since you can just make the 1-3, 4-6, 7-9 decision, and then use a three-output ?. 12:38:58 http://paste.lisp.org/display/76883 12:39:01 like that yes 12:39:38 fizzie, hm what about one with an upper time bound? 12:39:48 I mean both or ours is O(inf) in worst case 12:40:05 mine could possibly bounce between >? forever 12:40:05 O(inf) sounds pretty slow! 12:40:08 your redirect back 12:40:13 Slereah, worst case 12:40:22 Slereah, "random, if bad try again" 12:40:25 I also have a >? in the first three-way decision, it could keep bouncing there. 12:40:29 The probability of that worst case is zero though 12:40:42 Deewiant, really? 9999999999999999999999999 12:41:07 AnMaster: Given a ? which is guaranteed to go in all directions, it is 12:41:27 Deewiant, yes it is, on average and if you wait long enough 12:42:41 Anyhoo, if you want an even and bounded 0-9 generator in Befunge with ? I'm fairly sure it can't be done, you can only get powers of 2 12:43:07 hm 12:43:42 Deewiant, this gives raise to an interesting question... 12:43:53 "bounded time even randomness complete" languages 12:44:07 ~ 12:44:08 It can be done with the generator in FIXP, I forget the instruction's name (probably R) 12:44:42 You can get a "reasonably even" one by generating a large 2^n number in an even way, then taking %10; the biasedness goes down the larger number you bother to create there. 12:44:44 Deewiant, hm another idea: implement a PRNG in funge, using ? for the seed or randomness pool 12:44:48 depending on how you do it 12:45:26 fizzie: And you can get "reasonably bounded" by doing >? :-) 12:46:26 After all, "rand() % N" (or the division-based alternative to get supposedly better, higher bits) is not even either, unless (RAND_MAX+1) % N == 0, but people still do it. 12:46:36 I don't. :-P 12:46:51 as far as I remember the glibc random() is supposed to have good randomness in all bits 12:46:51 Well, unless I don't care. 12:46:56 I don't do it in CCBI. 12:47:55 AnMaster: If RAND_MAX is 4 and rand() is even and you take rand()%2, you're mapping [0,1,2,3,4] to [0,1,0,1,0]: 0 comes out with probability 3/5, 1 with 2/5 12:47:57 Actually fungot uses the "reasonably even" route when selecting what to babble, but that's mostly because I need a rather large range, and it was simpler that way. 12:47:57 fizzie: there you are 12:48:51 Deewiant, mhm 12:49:44 Deewiant, rand() != random() though. Man page says range for random() is 16 * ((2^31) - 1) 12:49:52 "approximately" 12:49:57 wait 12:49:58 AnMaster: It doesn't matter what function you use 12:49:58 misread 12:50:00 that was the period 12:50:02 duh 12:50:15 What I said applies for any random number generator 12:50:20 Deewiant, so what bits are best to take? the middle ones? 12:50:33 Deewiant: On the other hand, RAND_MAX is typically something like 2^31-1. 12:50:35 That doesn't matter either, unless the generator says some bits are crap 12:50:46 fizzie: Yes, so the error is small in practice. 12:51:27 You'd have probabilities of .49999999976716935623 and .50000000023283064376 for 0 and 1. Or the other way around. 12:51:36 AnMaster: IMO the only way to make it even is to go the unbounded route, that's what I do 12:51:48 Deewiant, in CCBI? 12:51:57 Yes, and wherever I care about evenness 12:52:15 Don't do it in cfunge, you'll slow it down! :-P 12:52:23 I'm going to eat now -> 12:52:25 Fungot does something like "n = 0; for (i = 0; i < 10; i++) n = (4*n) + rand(4); n = n % range;" where rand(4) is done with a single ?, and it's not actually 10, it's something else I forgot. 12:52:27 Deewiant, I do have a comment in the code about it 12:52:43 it suggests sending a patch if you need a more uniform rng 12:52:57 because since RAND_MAX is so large the actual error is very small 12:53:29 fungot: How biased are you? 12:53:29 fizzie: i used to have one with size as well as 12:53:54 The versions of rand() and srand() in the Linux C Library use the same random number generator as random(3) and srandom(3), so the lower-order bits 12:53:54 should be as random as the higher-order bits. However, on older rand() implementations, and on current implementations on different systems, the 12:53:54 lower-order bits are much less random than the higher-order bits. Do not use this function in applications intended to be portable when good ran‐ 12:53:54 domness is needed. (Use random(3) instead.) 12:54:04 from man srand 12:54:11 man rand gives me some openssl man page instead 12:54:17 in section 3 12:54:43 Oh? My openssl rand is in section 1. 12:54:47 Since it's a command. 12:54:54 It does refer to RAND_bytes(3). 12:54:56 well there is OpenSSL API docs 12:55:02 NAME 12:55:02 rand - pseudo-random number generator 12:55:02 SYNOPSIS 12:55:02 #include 12:55:24 RAND_bytes and several more functions are documented there 12:55:34 I don't have such. I might not have installed some openssl-doc package. 12:55:38 No entry for rand in section 1 of the manual 12:56:08 fizzie, my openssl is built with useflags: gmp sse2 zlib -kerberos 12:56:13 where - is turned off 12:56:25 no separate doc package 12:56:34 I have this: RAND(1SSL) -- rand - generate pseudo-random bytes -- openssl rand [-out file] [-rand file(s)] [-base64] num 12:56:43 It's a bit silly to have all those openssl commands separately, though. 12:56:53 fizzie, I only have an entry for that in openssl(1) 12:56:56 I don 12:57:01 don't* have any 1ssl section 12:57:22 Cannot open the message catalog "man" for locale "sv_SE.UTF-8" 12:57:22 (NLSPATH="") 12:57:25 wonder what that means 12:58:35 my man didn't install any gettext files or such at least 13:01:41 There are four instances of ? actually executed as code in fungot sources: one is that [0, 2^24-1]-range loop-based generator, two are in a a "unrolled" two-iteration loop generating [0, 15], and the final is in ^bool selecting one out of two outputs. 13:01:41 fizzie: what are the other major difference is how much more complex one. 13:02:35 Actually the ^bool case is a bit silly, since it has a >?< structure to get only two outputs; I could've gotten a less bouncy unbiased version very easily. 13:04:43 (There's also the ? character in a "ping? pong!" comment, another comment in the list of punctuation symbols the babble-generator can produce, and yet another in the '? part where the babble-generator actually does a question mark.) 13:11:45 hm 13:12:05 how much of fungot source file is actually needed to run fungot 13:12:06 AnMaster: mine is fuller extent than many other languages and modules. see scheme/ fnord ls 13:12:12 iirc there were a huge block of comments at the end? 13:12:29 * AnMaster considers delayed loading and then thinks better of it 13:16:29 Yes. 13:17:08 Out of 495 lines, only 381 are needed. 13:17:41 still optimising >:#._ might be worthwhile for cfunge in the static area, but the run time overhead of checking for it, hm... 13:17:56 still,* 13:58:27 -!- jix has joined. 13:59:24 Usually I like writing in TeX math-mode, but occasionally it's not quite as clean as the resulting output: http://www.cis.hut.fi/htkallas/latexmath.png 14:01:34 'occasionally' 14:01:48 Quite often in my experience 14:02:14 Especially when you have complex arrays and you need to put stuff like \phantoms all over the place to get stuff to align nicely 14:02:57 fizzie, hm tried LyX? It is quite a nice frontend, and iirc it handles math quite well too 14:02:57 I may have been attempting an understatement. There's one \rule there for spacing. 14:03:03 not sure about the most advanced stuff 14:03:20 fizzie: Well, that example isn't that bad IMO :-) 14:03:50 Tried LyX, didn't like it. Maybe it's just my normal aversion to all things gooey. And it was not recently, they might have improved it since then. 14:04:09 fizzie, recent LyX is a lot better than when I started using LyX 14:04:20 which was maybe a year ago or so 14:05:10 Well, I'm sure it was at least two years ago when I last tried it. 14:05:30 fizzie, lyx optionally supports pre-rendering the math expressions on the fly, to be able to show any unsupported commands too 14:05:33 that is a new feature 14:05:58 fizzie, however make sure to use the very last release, often package managers in distros lag behind 14:06:12 oh also I only used the QT4 frontend for it 14:06:41 iirc they dropped the GTK one since it sucked 14:07:01 I don't really have a choice of what to use on this work-workstation, except I can bug our administrators of course. 14:07:40 fizzie, can't you install it in ~ ? 14:07:45 I don't want to. 14:08:04 Especially since they've thoughtfully provided us with a version. 14:08:06 fizzie, I recommend lyx-1.6.0 or later. 1.6.1 is what I use 14:08:19 We're having disk space issues anyway, I think. 14:08:19 I definitely wouldn't use older ones any more 14:08:29 1.6 improved things a lot 14:08:34 Installed LyX here is "LyX version 1.5.6 (Sun, Jul 27, 2008)". Not *old*, but not *new* either. 14:08:37 fizzie, of course I would also use a very recent texlive 14:08:51 fizzie, well 1.5 is not so good 14:09:07 and the math stuff really improved in 1.6 14:09:48 The /home share is again 92 % full; and that's a rather good situation, it's been completely full on occasion. 14:09:52 Filesystem Size Used Avail Use% Mounted on 14:09:54 baldrick:/vol/home 488G 447G 42G 92% /m/fs/home 14:10:17 huh 14:10:20 fizzie, quotas? 14:10:23 None. 14:10:25 also how many users 14:10:51 There's a public, autogenerated-every-weekend list of "disk space usage per user", sorted by amount of space used, so you know who to blame. 14:10:59 heh 14:11:12 fizzie, so where is you on that list? 14:11:13 Your /home is smaller than our /home 14:11:32 Deewiant: Yes, well, it's not the size, it's how we use it. 14:11:51 fizzie, anyway, don't you have your own computer? 14:12:01 a laptop or whatever 14:12:06 nfs:/home 1.3T 211G 444G 33% /home 14:12:28 How does that work? 211 G used, 444 G free, total size 1.3 T? 14:12:41 I don't know, I was just wondering about that myself 14:12:51 I do believe the 'free' number is the one that's correct 14:13:06 hm 14:13:17 Here's our project-shares, where all non-temporary ("work" is for that) big files should be kept: 14:13:18 well, what file system is it really? 14:13:20 baldrick:/vol/project0 2.0T 1.5T 540G 74% /m/fs/project0 14:13:23 blackadder:/vol/project1 1.4T 1.4T 25G 99% /m/fs/project1 14:13:28 if it is ext* then the "reserved for root" space... 14:13:37 and over nfs I'm not sure how that works 14:13:48 It's mounted over NFS, and I'm not quite sure how it works either. 14:13:57 Anyhoo, I used to lead diskhogs at 14G 14:14:06 ah wait 14:14:09 if it isn't a partition mounted 14:14:14 Then somebody had a broken script and filled the drive with a diskhogs value of 493G 14:14:16 but a direction on a partition on the server 14:14:41 of course that would happen then 14:14:50 size of the sub tree vs size of disk 14:15:10 I'm #91 in our /home directory size-usage list, with ~1.4G. #1 has 20G. And actually ineiros here on this channel is #2 with 18G. :p 14:15:40 Ours only shows the top 10 14:16:10 And I think I've been off the mailing list for a few months 14:16:31 Last one I got was in December 14:16:47 The project directory disk-usage chart is less useful, since it just shows the directories, not directly whose fault it is. 14:17:55 what about using lyx on your own computer fizzie ? 14:18:26 -!- ais523 has joined. 14:19:02 The laptop is less comfortable than this workstation, with an external monitor, keyboard and mouse. And besides, I couldn't plug my own laptop into the network anyway. 14:19:11 I see 14:19:12 not even using wireless? 14:19:39 It's a separate sort of network then. 14:19:44 No direct SSH access to lab machines. 14:21:39 Indirect, though? 14:23:58 Yes, "james" is accessible from the Interwebs. But it's still not quite as convenient, even though sshfs-like stuff could make it bearable, if the wireless wasn't so unreliable and laggy. 14:24:52 Isn't there a plug into the outer network 14:25:13 From what I heard, they're replacing the old "aalto" network (which required a https-based web-page-login) with a completely open "aalto Open" (which is even less part of the university network), and because of that the old network is not actively maintained, while the new one is very under-construction and doesn't seem to be available here. 14:25:33 I think I saw "aalto Open" in one of the lecture halls, though. So maybe they really are working on it, and it's not just a convenient excuse. 14:25:47 heh 14:25:48 Aalto Open works better outdoors 14:25:55 what is "aalto"? 14:25:55 And in the main building, too, I think 14:25:59 "Wave" 14:26:03 mhm 14:26:04 fi:aalto is en:wave, yes. 14:26:16 Also: The noun aalto has 1 sense (no senses from tagged texts) 14:26:16 1. Aalto, Alvar Aalto, Hugo Alvar Henrik Aalto -- (Finnish architect and designer of furniture (1898-1976)) 14:26:23 WordNet is so comprehensive. 14:26:25 is it a brand name of wireless access points or something? 14:26:29 The name of both the old wireless network and of the upcoming university which is an amalgamation of a couple of current ones 14:27:03 oh dear, those names are always awful 14:27:13 Indeed 14:27:18 what is the name of then? 14:27:31 Yes, this year is the last change to graduate from Helsinki University of Technology; after that your papers are from Aalto University. 14:27:44 Better hurry! 14:27:48 fizzie, hah 14:27:49 (I hope; in a worst-case scenario they're going to call it the Wave University.) 14:28:08 Sounds like some sort of surfboarding school. 14:28:11 fizzie, that sounds, um, new age? 14:28:17 or that 14:28:46 "Aalto University is created through a merger between the Helsinki School of Economics, the University of Art and Design Helsinki and the Helsinki University of Technology." Phew, they're not translating it. Not that I seriously thought they would. 14:28:56 And why is our name mentioned last, anyway? 14:28:59 what would be wrong with "Helsinki University" then? 14:29:03 Tsunami University, Tidal Wave University have been some relatively popular derogatory names (in Finnish) 14:29:04 It's taken. 14:29:09 fizzie, I see. 14:29:10 AnMaster: There is a Helsinki University alraedy 14:29:15 s/ae/ea/ 14:29:25 so why separate universities? 14:29:35 Or actually it's University of Helsinki, in English. 14:30:23 I mean, it would be logical to have one university for all wouldn't it? And different faculties or whatever you call them 14:30:24 I don't actually know if they even considered merger with the University 14:30:41 fizzie: Which reminds me, of course it should be Wave High School 14:30:45 And University of Helsinki is this multi-disciplinary generic sort of university, with pretty much everything they do on the university level. 14:31:33 IE loads mozilla.com faster than Firefox, and Firefox loads microsoft.com faster than IE 14:31:47 I have no idea what, if anything, this proves... 14:31:59 :-D 14:32:12 ais523, source? 14:32:46 AnMaster: http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=cd8932f3-b4be-4e0e-a73b-4a373d85146d 14:32:48 because I don't believe microsoft would release that if firefox was faster at microsoft.com... 14:32:58 hm ok 14:33:01 bbl food! 14:33:05 they released it because their data "proves" that IE is the fastest browser 14:45:23 -!- bsmntbombdood has quit (calvino.freenode.net irc.freenode.net). 14:45:23 -!- fungot has quit (calvino.freenode.net irc.freenode.net). 14:45:23 -!- fizzie has quit (calvino.freenode.net irc.freenode.net). 14:45:26 -!- lifthrasiir has quit (calvino.freenode.net irc.freenode.net). 14:45:28 -!- ehird has quit (calvino.freenode.net irc.freenode.net). 14:45:28 -!- GregorR has quit (calvino.freenode.net irc.freenode.net). 14:45:28 -!- psygnisfive has quit (calvino.freenode.net irc.freenode.net). 14:45:29 -!- ais523 has quit (calvino.freenode.net irc.freenode.net). 14:45:29 -!- tombom has quit (calvino.freenode.net irc.freenode.net). 14:45:33 -!- Deewiant has quit (calvino.freenode.net irc.freenode.net). 14:45:33 -!- rodgort has quit (calvino.freenode.net irc.freenode.net). 14:45:35 -!- Ilari has quit (calvino.freenode.net irc.freenode.net). 14:45:35 -!- Robdgreat has quit (calvino.freenode.net irc.freenode.net). 14:45:35 -!- kerlo_ has quit (calvino.freenode.net irc.freenode.net). 14:45:35 -!- oklopol has quit (calvino.freenode.net irc.freenode.net). 14:45:36 -!- sebbu has quit (calvino.freenode.net irc.freenode.net). 14:45:36 -!- Azstal has quit (calvino.freenode.net irc.freenode.net). 14:45:38 -!- AnMaster has quit (calvino.freenode.net irc.freenode.net). 14:45:39 -!- dbc has quit (calvino.freenode.net irc.freenode.net). 14:45:41 -!- mtve has quit (calvino.freenode.net irc.freenode.net). 14:45:41 -!- ineiros has quit (calvino.freenode.net irc.freenode.net). 14:45:41 -!- SimonRC has quit (calvino.freenode.net irc.freenode.net). 14:45:42 -!- Slereah has quit (calvino.freenode.net irc.freenode.net). 14:45:44 -!- pikhq has quit (calvino.freenode.net irc.freenode.net). 14:45:44 -!- jix has quit (calvino.freenode.net irc.freenode.net). 14:45:44 -!- Dewio has quit (calvino.freenode.net irc.freenode.net). 14:45:47 -!- MizardX has quit (calvino.freenode.net irc.freenode.net). 14:45:47 -!- lament has quit (calvino.freenode.net irc.freenode.net). 14:45:48 -!- Asztal has quit (calvino.freenode.net irc.freenode.net). 14:45:49 -!- asiekierk has quit (calvino.freenode.net irc.freenode.net). 14:45:51 -!- neldoreth has quit (calvino.freenode.net irc.freenode.net). 14:45:51 -!- Leonidas has quit (calvino.freenode.net irc.freenode.net). 14:45:52 -!- ski__ has quit (calvino.freenode.net irc.freenode.net). 14:49:25 -!- lament has joined. 14:49:25 -!- ais523 has joined. 14:49:25 -!- jix has joined. 14:49:25 -!- tombom has joined. 14:49:25 -!- Deewiant has joined. 14:49:25 -!- oklopol has joined. 14:49:25 -!- neldoreth has joined. 14:49:25 -!- asiekierk has joined. 14:49:25 -!- bsmntbombdood has joined. 14:49:25 -!- kerlo_ has joined. 14:49:25 -!- lifthrasiir has joined. 14:49:25 -!- Slereah has joined. 14:49:25 -!- MizardX has joined. 14:49:25 -!- psygnisfive has joined. 14:49:25 -!- Ilari has joined. 14:49:25 -!- fizzie has joined. 14:49:26 -!- fungot has joined. 14:49:26 -!- ehird has joined. 14:49:26 -!- AnMaster has joined. 14:49:26 -!- Azstal has joined. 14:49:26 -!- Leonidas has joined. 14:49:26 -!- Dewio has joined. 14:49:26 -!- GregorR has joined. 14:49:26 -!- Asztal has joined. 14:49:26 -!- sebbu has joined. 14:49:26 -!- mtve has joined. 14:49:26 -!- ineiros has joined. 14:49:26 -!- pikhq has joined. 14:49:26 -!- Robdgreat has joined. 14:49:26 -!- rodgort has joined. 14:49:26 -!- SimonRC has joined. 14:49:26 -!- dbc has joined. 14:49:26 -!- ski__ has joined. 14:49:26 -!- irc.freenode.net has set channel mode: +o lament. 14:50:12 um, that table, over how many runs is it averaged 14:50:12 the details are in the PDF, I think 14:50:18 mhm 14:50:25 the whole article is about methodology for running comparative browser speed tests 14:51:32 I'm not sure those differences are actually significant... 14:52:03 neither am I 14:52:06 I would go and read the study, but my system is not on the list of Supported Operating Systems on that download page. 14:52:10 it also depends on which you tested first to a certain degree. DNS cache 14:52:15 fizzie: neither is mine, but it worked for me 14:52:21 same 14:52:26 I opened in kpdf 14:52:30 at least it's just a pdf, last time I tried to get something from microsoft.com it was a pdf wrapped in an exe 14:52:42 ais523, there is an xls file too hm 14:52:47 wonder if that is the raw data 14:52:52 wait 14:52:53 .xps, not .xls. 14:52:53 no 14:52:55 xps 14:52:55 xps? 14:52:57 what is xps 14:52:59 it's microsoft's rival to pdf 14:53:02 oh I see 14:53:03 that nobody cares about but them 14:53:29 "XML Paper Specification." Funny name. 14:53:49 fizzie, did they try to make it an ISO standard? 14:55:19 they're trying to make it an ecma standard at the moment 14:55:29 ISO won't standardise it unless it's standardised by another standards body first 14:55:36 Either one out of two of Microsoft's student-related stuff-delivery-things (DreamSpark or the MSDN Academic Alliance thing) contained a copy of Windows (2k3 server for DreamSpark, various versions for MSDNAA) that was a .iso image (since you need to be able to install it) wrapped in an .exe file (so you can't actually burn it if you don't happen to already have access to a Windows system). 14:55:51 although ECMA's widely believed to be controlled by Microsoft, I'm not sure whether that's true or not 14:55:58 hm ok 14:56:07 fizzie: did it work under WINE? 14:56:10 what does ECMA stand for? 14:56:39 MSNDAA requires you to run a custom downloader. :( 14:56:42 european computer manufacturer's association 14:56:51 well, it used to 14:56:52 ais523: I actually think it didn't. Don't remember the details. It might've actually been the MSDNAA downloader, in fact. 14:56:55 but they renamed it to just ecma 14:56:58 there are european computer manufacturers? 14:57:06 when they decided to expand their own remit 14:57:08 ARM I know, but they just design processors 14:57:13 microsoft certainly aren't european 14:57:39 ais523, well duh, but what are the European computer manufacturers if any that exist? 14:58:36 AnMaster: I can't find any on Google 14:58:47 which isn't a good sign, but I'm not very good at using online search engines 14:58:55 brb 14:59:34 Fujitsu Siemens is partially German (the Siemens side, surprisingly) and they manufacture computers. 15:02:17 Granted, that's the only big-company example I can think of right now. 15:02:51 ais523: which isn't a good sign, but I'm not very good at using online search engines <<< google is not a search engine 15:03:02 what do you mean, google isn't a search engine? 15:03:30 Google is a browser. 15:03:38 it doesn't actually take your string and look for it on pages, at least when you'd actually need it to. 15:03:58 well i guess it's a bad search engine, it's a good suggestion engine maybe 15:04:20 it finds what you want to find if you're searching for something that's easy to find anyway. 15:04:41 Ecma was founded in 1961, apparently; the computar system market back then might've been a bit different. 15:04:47 also it's a browser, yes 15:06:20 "Microsoft Robotics Developer Studio 2008". They certainly crank out those tools at a rate. 15:07:02 yay 15:07:12 i will soon get the parts for my mechanical TV 15:07:25 Nipkow Disk - done; Schematic collection - done; Buying - not done :( 15:07:30 asiekierk: you're building a mechanical TV? 15:07:32 Yep 15:07:35 http://www.sptv.demon.co.uk/nbtv/ 15:07:37 based on this tutorial 15:07:39 which is easy 15:07:42 ...way too easy 15:07:46 are there any stations broadcasting in mechanical TV format? 15:08:03 also, how many pixels horizontal resolution will you get? 16? 15:08:09 32x48 15:08:12 :P 15:08:14 not bad 15:08:17 Heh 15:08:22 Some even experimented with NTSC color 15:08:28 and slightly larger res 15:08:31 like 48xsomething 15:08:37 But the NBTV standard is 32x47 15:08:38 x48* 15:08:39 :P 15:09:00 And the Nipkow disk was tested a bit of times 15:09:55 And I used paper glued on "something quite better than cardboard" 15:10:03 and made 32 holes for the image AND the hole in the middle 15:10:13 And tested it on my lamp, so I know all the holes work 15:10:56 as in, spun it manually 15:10:59 :) 15:14:04 -!- fungot has quit (calvino.freenode.net irc.freenode.net). 15:14:04 -!- fizzie has quit (calvino.freenode.net irc.freenode.net). 15:14:05 -!- bsmntbombdood has quit (calvino.freenode.net irc.freenode.net). 15:14:08 -!- lifthrasiir has quit (calvino.freenode.net irc.freenode.net). 15:14:09 -!- ehird has quit (calvino.freenode.net irc.freenode.net). 15:14:09 -!- GregorR has quit (calvino.freenode.net irc.freenode.net). 15:14:09 -!- psygnisfive has quit (calvino.freenode.net irc.freenode.net). 15:14:11 -!- tombom has quit (calvino.freenode.net irc.freenode.net). 15:14:12 -!- ais523 has quit (calvino.freenode.net irc.freenode.net). 15:14:14 -!- rodgort has quit (calvino.freenode.net irc.freenode.net). 15:14:16 -!- Deewiant has quit (calvino.freenode.net irc.freenode.net). 15:14:16 -!- Ilari has quit (calvino.freenode.net irc.freenode.net). 15:14:16 -!- Robdgreat has quit (calvino.freenode.net irc.freenode.net). 15:14:16 -!- kerlo_ has quit (calvino.freenode.net irc.freenode.net). 15:14:16 -!- oklopol has quit (calvino.freenode.net irc.freenode.net). 15:14:16 -!- sebbu has quit (calvino.freenode.net irc.freenode.net). 15:14:18 -!- Azstal has quit (calvino.freenode.net irc.freenode.net). 15:14:19 -!- AnMaster has quit (calvino.freenode.net irc.freenode.net). 15:14:21 -!- dbc has quit (calvino.freenode.net irc.freenode.net). 15:14:22 -!- mtve has quit (calvino.freenode.net irc.freenode.net). 15:14:22 -!- ineiros has quit (calvino.freenode.net irc.freenode.net). 15:14:22 -!- SimonRC has quit (calvino.freenode.net irc.freenode.net). 15:14:24 -!- Slereah has quit (calvino.freenode.net irc.freenode.net). 15:14:25 -!- pikhq has quit (calvino.freenode.net irc.freenode.net). 15:14:25 -!- Dewio has quit (calvino.freenode.net irc.freenode.net). 15:14:25 -!- jix has quit (calvino.freenode.net irc.freenode.net). 15:14:28 -!- MizardX has quit (calvino.freenode.net irc.freenode.net). 15:14:28 -!- lament has quit (calvino.freenode.net irc.freenode.net). 15:14:30 -!- Asztal has quit (calvino.freenode.net irc.freenode.net). 15:14:31 -!- asiekierk has quit (calvino.freenode.net irc.freenode.net). 15:14:33 -!- neldoreth has quit (calvino.freenode.net irc.freenode.net). 15:14:33 -!- Leonidas has quit (calvino.freenode.net irc.freenode.net). 15:14:34 -!- ski__ has quit (calvino.freenode.net irc.freenode.net). 15:15:48 -!- lament has joined. 15:15:48 -!- ais523 has joined. 15:15:48 -!- jix has joined. 15:15:48 -!- tombom has joined. 15:15:48 -!- Deewiant has joined. 15:15:48 -!- oklopol has joined. 15:15:48 -!- neldoreth has joined. 15:15:48 -!- asiekierk has joined. 15:15:48 -!- bsmntbombdood has joined. 15:15:48 -!- kerlo_ has joined. 15:15:48 -!- mtve has joined. 15:15:48 -!- ineiros has joined. 15:15:48 -!- pikhq has joined. 15:15:48 -!- Robdgreat has joined. 15:15:48 -!- rodgort has joined. 15:15:48 -!- SimonRC has joined. 15:15:48 -!- dbc has joined. 15:15:48 -!- ski__ has joined. 15:15:48 -!- sebbu has joined. 15:15:48 -!- Asztal has joined. 15:15:48 -!- GregorR has joined. 15:15:48 -!- Dewio has joined. 15:15:48 -!- Leonidas has joined. 15:15:48 -!- Azstal has joined. 15:15:48 -!- AnMaster has joined. 15:15:48 -!- ehird has joined. 15:15:48 -!- fungot has joined. 15:15:48 -!- fizzie has joined. 15:15:48 -!- Ilari has joined. 15:15:48 -!- psygnisfive has joined. 15:15:48 -!- MizardX has joined. 15:15:48 -!- Slereah has joined. 15:15:48 -!- lifthrasiir has joined. 15:15:48 -!- irc.freenode.net has set channel mode: +o lament. 15:16:29 and any manufacturer using the name "bluegreenish" would be killed by their own marketing people 15:16:29 well, why these two? They can reproduce a lot of natural colors 15:16:29 They should use something like "Apple Blue" 15:16:29 for marketing :) 15:16:29 because humans see red as more different from blue or green than they see blue from green 15:16:29 I like that idea 15:16:29 Red would be "Apple" 15:16:29 Yellow would be "Sun" 15:16:30 Orange could be, er, "Sunset" 15:16:30 anyway, most humans can see in four colour channels 15:16:30 some can only see three, colourblindness is if you can see in two or less 15:16:30 Green would be "Ecological" 15:16:30 and Purple... 15:16:53 Is it most? I thought tetrachromacy was rather rare? 15:17:07 if it's not 100%, it's most 15:17:08 "One study suggested that 2–3% of the world's women might have the kind of fourth cone that lies between the standard red and green cones, giving, theoretically, a significant increase in color differentiation.[3] Another study suggests that as many as 50% of women and 8% of men may have four photopigments.[2]" 15:17:08 yes, I thought tetrachromats were rare, and only among women 15:17:14 even if it's 99.9999999999999999999999999999999999999999999999999999%, it's "most" 15:17:20 :) 15:17:25 because that's not "all" 15:17:34 Yes, but 2-3 % is not really "most". 15:17:49 Azstal: I'm thinking of red, green, blue, and white 15:17:56 three cone channels and the rod channel 15:18:08 tetrachromats can see in /five/ colour channels 15:18:34 which five 15:18:54 whichever they like, they have this nob at the back of their heads 15:18:56 well, "red, blue, green" are just common names for particular sorts of cone pigmentation 15:18:59 X, Y, Z, white, and something else 15:19:22 given that if you have four sorts of cones you can distinguish colours that can't be distinguished any other way 15:19:31 there must be colours tetrachromats can see that other people don't have a name for 15:19:33 so, uh, they have H, S, L switches in the back of their head? 15:19:37 And they can also see white? 15:19:55 yep 15:19:57 that's on the rods 15:20:06 but, rods generally don't work in the same situation as cones 15:20:25 in bright light, the rods are swamped and don't produce useful information, that's why your peripheral vision gets worse if it's too bright 15:20:38 in dim light, the cones don't respond, so your vision is fuzzier and only in black and white 15:20:45 in between, your vision functions as normal 15:21:14 so basically, the normal four-color people can see "in farbe" and the tetrachromats can see "in living color"? :D 15:21:35 well, to be precise there are an infinite number of colours 15:21:40 and an infinite number of possible colour channels 15:21:41 nope 15:21:48 there are "infinity-1" colors 15:22:03 with a good-quality spectrometer, you can distinguish colour channels that no human can distinguish 15:22:05 and there are "(infinity+amount_of_colors)/2" colour channels 15:22:20 asiekierk: no, aleph-one to the power of aleph-1 I believe 15:22:28 which is probably aleph-2 15:22:35 what's a leph? 15:22:47 aleph notation is one of the ways to represent infinities 15:22:56 but mathematicians aren't entirely clear on what infinities are available 15:23:08 it turns out there's more than one possible choice that leads to the maths being consistent 15:23:25 Well, how much is "infinity-(infinity-523)" 15:23:34 not-a-number, obviously 15:23:40 nope 15:23:41 it's 523 15:23:48 Heh, nice squabbling in the history there: http://en.wikipedia.org/wiki/File:Cones_SMJ2_E.svg 15:23:58 Mmmm. 15:23:58 Only if the infinities are identical 15:24:04 Infinity is infinity 15:24:08 THERE'S NO OTHER DEFINITION 15:24:13 There are many infinities. 15:24:19 An infinite amount, in fact. ;-) 15:24:31 But what infinity is the infinite amount? 15:24:56 I believe it's aleph-null? 15:24:59 epsilon-zero, I believe 15:25:05 Aww 15:25:07 I wanted to say 15:25:07 anyway, most humans can see in four colour channels some can only see three, colourblindness is if you can see in two or less <-- um? 15:25:08 "...Deewiant, do you live in the another universe?" 15:25:16 or at least, that's the name for the name for the number of infinities that can't be represented otherwise 15:25:17 now you're just making stuff up :) 15:25:18 but you said something completely logic 15:25:29 i hoped you would say "there are infinite possibilities" 15:25:31 or something 15:25:40 AnMaster: He counts the rod cells as a color channel; read on further. 15:25:41 No, that's not the case. :-) 15:25:41 oh right explained a bit below 15:25:43 AnMaster: most humans can see in three cone channels (red, green, blue), and one rod channel 15:26:12 what if someone can see in two cone channels and two rod channels 15:26:18 and the channels are orange and bluegreenish 15:26:35 as far as I know, nobody's ever found a colour-specific rod 15:26:37 which can reproduce a fair bit of colors 15:26:44 besides, rods are averaged over a large area 15:26:50 well, a quite-orange and a quite-blugreenisgh 15:26:53 blugreenish* 15:26:57 er 15:26:58 I mean 15:27:04 a quite-Sunset and a quite-Apple Blue 15:27:08 so you couldn't extract colour information from them even if they could receive it 15:28:00 Aww, that's just like using a b&w receiver for living color! 15:28:12 when you can buy a field-sequential adapter set! 15:28:47 It's of course "colour-specific" in the sense that there is some frequency you can say is the peak: "Experiments by George Wald and others showed that rods are most sensitive to wavelengths of light around 498 nm (green-blue)" <- so blue-greenish is not far off. 15:29:09 there's still orange 15:29:11 er 15:29:11 i mean 15:29:12 Susnet 15:29:13 er 15:29:15 Sunset! 15:29:32 You may need to make your own sunset-rod. 15:29:42 Okay, but I need a 2cm Nipkow disk 15:29:56 and an orange filter 15:30:01 and a photocell 15:30:04 and a blue-green LED 15:30:09 Wait 15:30:11 did I say orange 15:30:13 and blue-green 15:30:17 The marketing is gonna PWN me for that! 15:31:13 oh well 15:31:49 So basically, HSL will be Appleness, Livingness and Shadiness respectively 15:31:52 ALS! 15:32:01 :) 15:32:54 Also Viagra makes you see all blue-green: http://en.wikipedia.org/wiki/Cyanopsia 15:32:57 How coincidental. 15:33:07 hm 15:33:09 YOU MEAN APPLE BLUE! 15:33:21 I'm not sure Apple wants to be associated with *that*. 15:34:07 not Apple Blue as in the company 15:34:11 But Apple Blue as in the fruit 15:34:29 Last I heard the Apple apple was white 15:34:54 I didn't think it was any particular colour 15:34:55 Maybe nowadays; it used to be rather more colorful. 15:34:56 what would be the best way to see all colours. Since the biological system doesn't work 15:35:06 wouldn't some sort of spectrometer or such work? 15:35:20 http://upload.wikimedia.org/wikipedia/commons/e/e3/Macintosh_128k_transparency.png has the good old logo in the lower-left corner. 15:35:48 WELL THAT ONE DIDN'T HAVE A SPECIFIED COLOR! 15:36:03 THEY COULDN'T MAKE UP THEIR MIND OR WHAT? 15:36:08 AnMaster: prism works too 15:36:10 *shout mode off* 15:36:11 that's a primitive spectrometer 15:36:13 But Apple Blue as in the fruit <-- apples are green/red/yellow. I haven't seen any *blue* apple 15:36:27 ais523, you still need to register the photons in some way 15:36:30 it separates the physical locations of the colours, so you can see which ones are there and which ones aren't 15:36:37 ... 15:36:42 I'm talking about Green apples 15:36:48 Green Blue, Blue Green, bluegreenish 15:37:15 asiekierk, nah, they tend to be yellowgreenish around here 15:37:26 haven't seen any bluegreenish 15:37:55 ais523, well wouldn't it be rather bulky? I mean, it is far from compact 15:37:56 that's why it's Apple Blue not Apple 15:38:04 you couldn't really use it to make a vision system 15:38:14 AnMaster: well, yes 15:38:30 but put it this way, humans simply don't have a sense that handles that much information at once 15:38:33 ais523, so what about some solution that *could* make a vision system 15:38:59 ais523, what about robots? 15:39:10 http://en.wikipedia.org/wiki/File:Simple_spectroscope.jpg has a nice picture of a prism-based spectroscope showing how liney a spectrum can be. 15:39:11 even they only see in three colour channels, or one 15:39:18 red/blue/green is typical for a charge-coupled device 15:39:19 I heard that the brain receives about "100 bytes" per... uh... i don't remember 15:39:40 fizzie, indeed 15:39:57 asiekierk, how would you measure that... 15:40:06 i don't know 15:40:09 i just heard it somewhere 15:40:15 and about 100 bytes is not exactly 100 bytes 15:40:15 ais523, well it could be useful with more 15:40:21 well duh 15:40:22 I don't think your garden-variety killer robot really needs that many color channels. 15:40:33 I think it reffered that every while, only a small part of data is sent from the eyes to the brain 15:40:38 as in, the part you're concentrating on 15:40:47 fizzie, I was thinking about robots used in, say, scientific stuff. Like exploring Mars or whatever 15:40:57 they could definitely use it 15:41:29 fizzie, iirc the mars rovers do have some forms of spectrometers 15:41:39 maybe not visible light 15:41:42 don't remember 15:42:53 btw, did you know common digital cameras can "see" a bit of infrared 15:43:03 just try it in front of a remote control 15:44:02 it looked pink when I tried with my mobile phone camera (which I don't normally use, too bad resolution and no optical zoom) 15:44:38 AnMaster: I wouldn't be surprised, but there are a huge number of possible shades of infrared 15:44:45 it's a much broader range than visible 15:44:55 and I'd only expect very near infrared to be visible 15:45:22 Opportunity has a spectrometer for picking up scattered alpha particles and x-rays, and another in the gamma-ray range of frequencies; but I think the ones that actually take pictures with, you know, spatial information in them, only use a reasonable number of specific color channels. 15:45:22 why is lament still opped? :P 15:45:40 The wp page is not being very specific about the cameras. 15:46:23 One of our signal processing assignment had four-color-channel satellite photography; one was in the near-infrared range, the others corresponded vaguely to traditional red, green, blue. 15:46:48 hmm... it seems the BBC got control of a botnet 15:47:03 and used it to spam themself, and DDOS a company they had a prior arrangement with 15:47:25 then they changed the desktop background of all the infected computers and removed the botnet software using the botnet itself 15:47:36 ais523, mhm 15:47:38 wait, THAT BBC? 15:47:39 possibly 15:47:47 as in the UK TV company 15:47:52 z...zomg 15:48:00 why not, it gave them something to show programs around 15:48:01 *about 15:48:15 pancam.astro.cornell.edu has a technical briefing explaining they use an eight-channel system, so it's at least bit more than usual. 15:48:34 ais523, link. or it didn't happen? 15:48:37 http://news.bbc.co.uk/1/hi/programmes/click_online/7884387.stm 15:48:51 is the link that the infected computers were redirected to (via an URL shortener) 15:48:57 http://news.bbc.co.uk/1/hi/programmes/click_online/7932816.stm 15:48:59 is the article about it 15:49:15 wth 15:49:21 it wanted to set lots of cookies 15:49:32 I got 58 messages from firefox asking about cookies 15:49:33 the BBC's website is handwritten in Perl 15:49:38 no way I'm clicking on that again 15:49:48 ais523, ^ 15:50:03 That sounds like a rather legalistically vague thing to do. 15:50:15 that's what I thought 15:50:18 anyway, I'm looking at the cookies now 15:50:36 They're all "If this exercise had been done with criminal intent it would be breaking the law. But our purpose was to demonstrate botnets' collective power when in the hands of criminals." but it does sound quite UK-centric at the very least. 15:50:39 I only got three cookies 15:50:44 "The law", as if there's a single law in there. 15:51:07 one of them is massively long, though 15:51:16 it appears to be a long hash in hex, followed by my useragent but URL-encoded 15:51:29 huh 15:51:48 fizzie: I suspect the BBC are unlikely to worry about any laws but UK law in what they did 15:52:00 and investigative journalists do all sorts of weird quasi-legal things 15:52:09 on the basis that they're hardly ever prosecuted for them 15:52:52 ais523, well usually they tend to not use it for bad stuff. But clean up after themselves and warn people about the risk 15:53:26 there's a show on the UK where they steal stuff from people, then give it back 15:53:34 I'm surprised they haven't got in trouble for that yet 15:54:54 I guess they're just trusting the legal system to be sensible with all that "with criminal intent" stuff. Very optimistic. 15:55:17 -!- FireyFly has joined. 15:55:33 ais523, I mean, I once found a botnet control channel on a network I was oper on. First thing I did after I was sure it was a botnet (by which point I had seen some commands executed too and know the syntax) was kill all the scriptkiddies controlling it, then I issued a command to pop up a dialog with a link to some website about how to remove this, think it was at fsecure, then I made all bots remove 15:55:33 themselves from auto startup and then quit 15:55:55 so there are cases where you need to "quasi legal" things I guess 15:56:03 "kill all the scriptkiddies controlling it" <<< this is probably illegal even without a criminal intent 15:56:04 though the BBC one was worse 15:56:10 oklopol, /kill on irc.. 15:56:15 learn what it is 15:56:19 -_- 15:56:36 :D 15:56:43 you're awesome 15:56:43 well actually I used /kline iirc 15:56:49 i know you did 15:56:53 anyway it was a few years ago 15:57:24 Yes, actually writing code and then tricking people to run it; code that does all kinds of email-sending stuff and so on, and introduces who knows how many security-related bugs while it's at it; is a bit different from snuffing out someone else's botnet like that. 15:57:36 fizzie: actually, they're trusting the Crown Prosecution Service not to prosecute 15:57:50 fizzie, indeed 15:58:03 ais523: Isn't that sort of part of "sensible behaviour from the legal system"? 15:58:19 the CPS aren't really part of the legal system 15:58:21 Amazingly, it took only 60 machines to overload the site's bandwidth. <-- interesting 15:58:23 it's a bit confusing 15:58:27 wonder how fast connections they had 15:58:33 they're more involved with the police, but they aren't part of those either 15:58:51 I assume it would've been BBC paying for any costs if their code had a horrible, hard-disk-eating bug. 15:58:59 that's my guess too 15:59:15 well 15:59:21 AnMaster: your removal, wouldn't that leave the botnet software there just inactive? 15:59:22 it wouldn't take many ADSL connections 15:59:29 I have 1 mbps up 15:59:33 anyway, changing the desktop background is probably cleverer than popping up a message box 15:59:39 so 100 of them would hit a 100 mbps 15:59:41 because people ignore messages boxes on Windows nowadays 15:59:48 ais523, well I wouldn't know how to change the background 16:00:02 ais523: Especially if it's a message box which says "Your Computer May Be At Risk!" 16:00:17 ais523, also it was impossible to fully uninstall it from itself. There seemed to be no general "execute command" 16:00:20 or such 16:00:22 fizzie: haha 16:00:35 anyway most ran windows 98 16:00:37 -_- 16:00:51 and most were South America, which is strange too 16:00:55 or was 16:01:17 were from* 16:01:31 14:19 ais523: there must be colours tetrachromats can see that other people don't have a name for 16:01:33 hot 16:01:40 I wanna get another cone implanted :P 16:01:54 10:54 fizzie: I'm eagerly waiting for the next C++ sprint, I could actually work on jitfunge a bit at that point. 16:01:55 10:54 AnMaster: jitfunge was in C++ right? 16:01:57 10:55 fizzie: It's like you read my mind here. 16:01:59 xD 16:02:01 13:27 fizzie: Yes, this year is the last change to graduate from Helsinki University of Technology; after that your papers are from Aalto University. 16:02:04 ew 16:02:06 ehird, you are dealing with lag 16:02:08 duh 16:02:16 -!- MigoMipo has joined. 16:02:17 no, I'm logreading 16:02:18 heard of it? 16:02:37 Actually the wp page had an amusing sentence about implanting cones: "Notably, mice, which normally have only two cone pigments, can be engineered to express a third cone pigment, and appear to demonstrate increased chromatic discrimination, --" 16:02:38 ehird, yes but here the C++ line was before fizzie's line 16:02:46 doesn't stop it being funny, AnMaster. 16:02:50 ehird, yes it does 16:03:01 The word "engineered" there is funney. 16:03:03 anyway. I still don't see how 60 machines could overload the *bandwidth* of the server. Assuming normal home connections. 16:03:06 that's rich coming from mr "all humour is subjective therefore if you think I'm not funny ehird you are wrong" 16:03:06 Let's engineer some mice! 16:03:32 14:56 AnMaster: oklopol, /kill on irc.. 16:03:32 14:56 AnMaster: learn what it is 16:03:33 14:56 AnMaster: -_- 16:03:35 fail :D 16:03:38 (for AnMaster, that is) 16:03:42 ehird, it is just "lag induced humor" is old 16:03:46 fun the first time 16:03:49 fun the tenth time 16:03:52 but not the 100th time 16:03:55 blah blah blah, it was funny, so just shut up 16:04:07 ehird, jokes get old 16:04:38 you're just bitter because you're the target of it 16:05:06 I think the technical term here is "butt". 16:05:30 He's acting more like I just shot him. 16:06:38 Where does the "butt of the joke" thing even come from? Some ur-joke involving butts? 16:07:01 http://www.sptv.demon.co.uk/nbtv/ <-- is there a pic of this in operationamation 16:07:45 Oh, it's also: "A mark to be shot at; a target.". Maybe it's just that. How boring. 16:08:23 comment on that munctional video: "the disparity between the quiet sections and the loud sections is too great. you should fix it. " 16:08:24 XDD 16:09:30 No, it's more like if your door is already busted wide open and burglars are coming in and out, and a reporter wanders in. 16:09:34 * pikhq beats someone with dynamic range. 16:09:41 that's a good analogy, I wonder if the reporter would be doing something illegal than? 16:10:24 ehird: There's pictures of NBTV working in their forums. 16:10:35 Also, you should be able to find some video on Youtube. 16:10:37 I see no forums 16:12:18 The goodness of the analogy depends on how they actually spread that little piece of their code. Was that mentioned in the article? I might have just skipped it. 16:14:01 wut are we talking about 16:15:10 ehird: the BBC grabbing control of a botnet 16:15:24 :DDDd 16:15:25 how? 16:15:53 buying it from some criminals, AFAICT 16:16:15 Oh, they just bought it. Well, that's a bit different. 16:16:23 psht 16:16:24 they didn't actually say 16:16:25 that's boring 16:16:29 I hoped they would exploit it 16:16:31 still 16:16:31 they said they hung around in shady IRC channels 16:16:34 taht's pretty awesome for the BBC 16:16:36 and got it that way 16:16:41 but not the details 16:16:46 presumably they didn't want anyone to copy them 16:16:46 like this channel? 16:16:57 ehird, probably not. 16:17:02 I don't know what would happen if someone tried to buy a botnet here 16:17:05 that was a joke. 16:17:18 By prior agreement, Click launched a Distributed Denial of Service (DDoS) attack on a backup site owned by security company Prevx. 16:17:19 Click then ordered its slave PCs to bombard its target site with requests for access to make it inaccessible. 16:17:22 ermmmm 16:17:22 ehird, also why ask what we are talking about, just read scrollback. Like you said so many times 16:17:26 hypocrite 16:17:26 why are the BBC admitting to htat 16:17:29 I could sell them a fungot-net. 16:17:29 fizzie: is there a way to 16:17:37 fungot: For that, I would *make* a way to. 16:17:37 fizzie: ( but which knows the base path of the file 16:17:44 AnMaster: shut up; I'm annoyed when people try and reply without reading, not when people ask what we're talking about 16:17:56 your accusations of hypocrisy would be more convincing were they ever right 16:18:05 ehird, you have been annoyed by both 16:18:09 so false 16:18:18 anyway, once they were done with spamming themselves and DOSing their friends, they changed the desktop background on the infected computers and disinfected them 16:18:21 umm, sure, I'll just take your word for it. except I haven't. 16:18:23 ehird, also if you read the article 16:18:25 "By prior agreement, Click launched a Distributed Denial of Service (DDoS) attack on a backup site owned by security company Prevx. " 16:18:31 that doesn't sound "bad to admit" 16:18:41 dude I fucking pasted that from the article 16:18:52 -!- BeholdMyGlory has joined. 16:18:59 and of course that'd bad to admit? 16:19:04 the bbc are admitting they ddosed a security company 16:19:19 ehird: but the security company said they could 16:19:22 oh 16:19:22 ehird, "prior arrangement", that means "go ahead" 16:19:24 duh 16:19:26 did you misread the bit that AnMaster pasted? 16:19:28 read the article 16:19:28 i thought they meant prior agreement with the people they got it from 16:19:32 ais523: no, _I_ posted that 16:19:37 well, he repasted it 16:19:45 yes, and tells me to read the article 16:19:46 15:17 ehird: By prior agreement, Click launched a Distributed Denial of Service (DDoS) attack on a backup site owned by security company Prevx. 16:19:47 ehird, " dude I fucking pasted that from the article" <-- But I asked about "read" 16:19:48 15:17 ehird: Click then ordered its slave PCs to bombard its target site with requests for access to make it inaccessible. 16:19:49 not "paste" 16:19:50 you pasted more than one bit, so talking about the bit he repasted it specified it better 16:19:51 15:17 ehird: ermmmm 16:19:53 apparently he's blind 16:19:54 which seems to be different in your case 16:20:14 Still, about the analogy; it sounds like it *might* be illegal in Finland, but might not; you can get a fine or up to 6 months of prison for "invading or secretly entering or entering by diverting someone" a place protected by the "domestic peace" rules. But if the door is open and you can walk in, maybe not. 16:20:21 ehird, talking about yourself in third person? 16:20:31 ehird, since you didn't see "By prior agreement" 16:20:39 yes, I did, I misunderstood it, jackas 16:20:40 s 16:20:56 brb food 16:23:03 ais523: do you know why the formula that psygnisfive gave — "If (x&y)==0, the point is in the sierpinski triangle" — works? 16:23:26 it's easy enough to prove 16:23:30 oh, I know 16:23:33 after all, I have a program doing it 16:23:34 but I'm wondering about how to see it in an intuitive sense 16:23:37 I just don't know -why- 16:23:40 sierpinski is everywhere.. 16:23:51 perfectly straight line in GoL, in this trivial formula... 16:23:56 (IN THE SIERPINSKI TRIANGLE <-- hur hur) 16:24:45 ais523: Mathematically, it's quite odd... 16:24:50 I mean, bitwise and is an odd operation. 16:24:58 You're choosing an arbitrary base, then operating on the individual digits. 16:25:04 Which isn't very senseful, IMO. 16:25:12 So I don't know why that would lead to Sierpinski... 16:25:21 well, bitwise operations tend to create similar patters to the sierpinski triangle 16:25:30 think of the fractal structure 16:25:48 that's the same as binary, it doubles each digit 16:25:53 hmm 16:25:55 interesting 16:25:59 back 16:26:15 ais523: I wonder if it works for N dimensions? 16:26:19 can you get a 3d sierpinski with x&y&z? 16:26:25 I think so 16:26:49 that's great 16:26:52 what a lovely coincidence 16:27:02 cool 16:27:04 um 16:27:06 not really a coincidence 16:27:09 -!- MigoMipo has quit ("QuitIRCServerException: MigoMipo disconnected from IRC Server"). 16:27:16 ehird, how many recursions is it at? 16:27:23 AnMaster: what 16:27:23 it depends on what you mean by 3d sierpinsky 16:27:29 ehird, or iterations rather 16:27:31 ais523: not a coincidence, but, not intended 16:27:33 AnMaster: it's not iterations 16:27:35 wrong word first time 16:27:44 it's just 16:27:45 *sierpinski 16:27:52 if x & y == 0, then (x,y) is in the sierpinski triangle 16:27:56 in = place a * 16:27:59 not in = place nothing 16:28:23 AnMaster: http://codepad.org/lQGGDWNZ 16:28:27 ehird, lets say you have an 8x8 gird. then the (x&y) == 0 -> black? 16:28:35 -> white. 16:28:39 where black = background. 16:28:40 ok right 16:28:42 see my codepad link 16:28:54 what if you do it at a 512x512 gird? 16:28:59 newsham made it centered, I've made it the right way up, I'm going to combine them 16:29:01 AnMaster: THE SAME DAMMIT 16:29:15 ehird, so it is scaled or jut a section of it? 16:29:21 both. 16:29:27 ah yes the output 16:29:29 it helps if you give it powers of two 16:29:42 otherwise you get odd behaviour 16:29:57 ehird, what if you want it at a higher resolution? Like you know first iteration of a fractal, second and so on 16:30:04 AnMaster: it's infinite 16:30:07 you don't seem to understand 16:30:08 right 16:30:48 hm 16:31:04 codepad.org/Y1PV2gVc <- newsham's centered one, now I'll combine this with my downwards one 16:34:45 ehird, every triangle can be divided in three new triangles and a hole in the middle. So your statement "in the sierpinski triangle"must indicate "edges" right? All other points will eventually be a hole with enough iterations. 16:35:01 Well, yes. 16:35:07 Isn't that what "in" means for fractals? 16:35:25 yes, given that many fractals are infinitely thin you have to count the edges 16:35:54 Hmm, centering is non-trivial: 16:36:00 * 16:36:00 ** 16:36:02 * * 16:36:04 **** 16:36:06 Because of the odd-ness. 16:36:09 ehird, well I don't know the technical terms for them. But what about a fractal like the mandlebrot. in could also indicate the area inside it. It seems to "fractalise" "outwards" rather than "inwards" 16:36:36 Can I have some of your drugs? 16:36:50 ehird, hah. 16:36:54 well, the mandlebrot isn't infinitely thin 16:37:03 So's your penis 16:37:05 ais523, my point 16:37:05 but on the other hand, it has an obvious protocol for inside/outside 16:37:09 http://hpaste.org/fastcgi/hpaste.fcgi/view?id=2336#a2336 Sierpinski version 2. 16:37:17 Awesome code, awesome fractal. 16:37:18 you can tell if a point's in it or not just by doing the calculation 16:37:18 ais523, exactly what I meant! 16:37:23 Right way around, and aligned center. 16:37:55 whereas something like sierpinski the edges are obviously part of it, because if they weren't nothing would be 16:37:55 ais523, well true. But look at an image at n iterations. http://en.wikipedia.org/wiki/File:Mandel_zoom_00_mandelbrot_set.jpg or whatever, the black area is very definitely "in it" 16:38:05 AnMaster: are you not reading what I wrote? 16:38:08 ais523, my point exactly. 16:38:12 ais523, yes I am 16:38:14 it sounds like you think I disagree with you 16:38:19 that's the problem with the mandelbrot set, it's mostly a huge black hole :-D 16:38:24 multiple ones even 16:38:29 all the interesting stuff is on the outskirts 16:38:49 -!- BeholdMyGlory has quit (Read error: 60 (Operation timed out)). 16:38:51 yes, and there are even more of it there 16:39:13 on the other hand, the sierpinski triangle is easier to "intuitively" understand how it is generated 16:40:00 cantor dust is easier, I independently invented cantor dust 16:40:03 err 16:40:05 cantor set 16:40:17 ehird, how did "set" end up as "dust" 16:40:18 cantor set's like a 1D sierpinsky 16:40:26 *sierpinski 16:40:26 AnMaster: cantor dust = multi-dimensional cantor set 16:40:27 * Slereah sprinkles some Cantor dust on ehird 16:40:28 ais523: yeah 16:40:31 ah right 16:40:33 problem is, the cantor set is ... really boring 16:40:36 :D 16:40:41 and yes it is easy to understand 16:42:29 but something like madelbrot, I have to sit down and look at the maths and even then I'm not really sure 16:43:02 I resent the Mandelbrot fractal a bit though 16:43:07 oh? 16:43:09 It makes people forget about the old fractals 16:43:17 I think there is a reasonable intuitivity about that thing: given any NxN square of bit-patterns for 00...00 to 11...11; you get the horizontal and vertical lines because of the 00..00, and the diagonal because ~x => N-x, and ~x & x == 0 always; and you get to do the same thing in the smaller N-1 x N-1 squares for those cases where the leading bits are either (0, 0), (0, 1) or (1, 0) because in those cases the bit in the and result is a zero, but in the final s 16:43:19 uh...? 16:43:21 well, mandelbrot is probably the prettiest, Slereah 16:43:21 Like the Weierstrauss function or the Peano filling curve 16:43:34 ehird, what about the Julia set? That can be quite pretty 16:43:36 fizzie: but in the final s 16:43:38 -- the final sub-square where the leading bits are (1, 1) there's always a common bit so the and is never == 0. 16:43:41 Most people seem to assume that it's the oldest 16:43:41 AnMaster: Julia set is basically a warped mandelbrot :P 16:43:47 ehird, well true 16:44:21 http://en.wikipedia.org/wiki/File:725_Julia_sets.png 16:44:24 remind you of anything 16:44:28 Er, by N-1 there I mean N/2, of course. 16:44:33 Julia's related to Mandelbrot 16:44:37 yes 16:44:40 you can make nice coloured versions of mandelbrot too 16:44:42 there's a Julia set for each point in Mandelbrot 16:45:20 coloured sierpinski? 16:45:24 probably boring 16:45:52 it is 16:45:54 i've seen it 16:45:57 oh? 16:46:03 yeah 16:46:13 and yes http://en.wikipedia.org/wiki/File:725_Julia_sets.png definitely looks familiar 16:46:29 why I believe it is some Julia sets! ;) 16:46:32 ~ 16:46:33 AnMaster: 16:46:34 http://upload.wikimedia.org/wikipedia/commons/0/02/Sierpinski_triangle_%28RGB%29.jpg 16:46:36 coloured sierpinski 16:46:46 ehird, coloured according to what rules 16:47:05 Top triangle is tinted red, bottom-left green, bottom-right blue. 16:47:05 that seems to be just one corner R, one corner G, one B and them colour mixing 16:47:08 Repeat recursively, of course. 16:47:11 ok 16:47:29 ehird, boring. If I want to watch that I'll open the pallet in gimp or something ;) 16:47:30 I guess you can intuit that and-sierpinsky in a simpler way too: take a NxN square, where N is a power of two; the "lower-right" quadrant is always empty, since there you always have the leading 1 bit in common, while in the other three the leading bit of the and-result is always 0, so the content is just a down-scaled version of the whole square. This rather intuitively leads to a sierpinski. 16:47:37 I wonder if there's a pretty fractal without great big holes. 16:49:03 The sierpinski-square-based pyramid looks nifty, though: http://en.wikipedia.org/wiki/File:Sierpinski_pyramid.png 16:49:11 Maybe not very constructable-out-of-legos. 16:49:16 it occurs to me that the and-sierpinski is more efficient than most algorithms for it (maybe all) 16:49:18 there's no recursion or anythin 16:49:19 g 16:49:26 just O(size) or something 16:49:36 -!- BeholdMyGlory has joined. 16:49:38 ehird, some of the prettier julia sets seems to happen around the edges of mandelbrot in http://en.wikipedia.org/wiki/File:725_Julia_sets.png 16:49:55 hmm 16:49:58 http://en.wikipedia.org/wiki/File:725_Julia_sets.png is very... Xzibit. 16:50:07 If you know what I mean. 16:50:10 ehird, "Xzibit"? 16:50:12 no I don't 16:50:16 Yo dawg. 16:50:24 ...? 16:50:29 I've told you this 10 times. 16:50:42 Xzibit is the guy on the horrible MTV show "Pimp My Ride", which is where the "yo dawg" meme comes from. 16:50:49 -!- asiekierk has changed nick to asiekierka. 16:51:04 ehird, sure you told me? It doesn't even sound slightly familiar 16:51:17 I don't think you told me unless you can prove it in logs 16:51:25 Very well, I shall grep. 16:51:44 I think you said "Yo dawg." before though 16:51:50 but not "Xzibit" 16:52:05 16:08 ehird: To Xzibit's body. 16:52:05 16:08 AnMaster: huh? 16:52:06 16:08 ehird: Xzibit is the origin of the yo dawg meme. 16:52:06 ehird, of course, I could be wrong 16:52:09 2009-03-05. 16:52:12 hm 16:52:14 and this is just from late February, when I upgraded. 16:52:17 In fact, later than that. 16:52:24 I used Linkinius at first. 16:52:30 So this is just from when Linkinius expired. 16:52:33 ehird, mhm. 16:55:14 I don't think I've ever had a shareware program expire on me 16:55:30 nor an unactivated for-pay Microsoft program, I generally activate them ASAP 16:55:34 over the telephone! 16:55:53 the GPL EULA thing would have expired by now, but I just edited out the licence check 16:56:03 http://en.wikipedia.org/wiki/File:Buddhabrot.jpg <-- now that looks cool. Just a way to render Mandelbrot but still.. 16:56:34 I've never had an unactivated for-pay Microsoft program expire on me because I don't use them 16:56:35 AnMaster: yes 16:56:37 I like the burning ship fracta 16:56:38 l 16:56:48 http://en.wikipedia.org/wiki/File:Burning_Ship_Fractal_Zoom.png 16:56:50 I haven't seen that one *googles* 16:56:50 oh 16:56:52 there was a more ghostly image somewhere on WP 16:56:56 can't find it 16:57:00 for once I'm prepared to google and you link it 16:57:00 ehird: I used to use other people's Windows computer before I got Linux 16:57:02 :P ~ 16:57:10 I actually used to be a Windows power user, but am a bit rusty nowadays 16:57:19 and just being good at Windows doesn't make Windows any better to use... 16:57:21 AnMaster: well, it was obscure enough to warrant it 16:57:40 ais523: I used windows from 1998-2006; it was pretty rough all the way through. 16:57:49 ehird, that look like "Eifel Tower as seen by " 16:57:56 ... 16:57:57 don't remember name right now.. 16:57:58 Salvador Dali. 16:58:02 ah yes 16:58:04 that's right 16:58:12 come on, I'm art illiterate and even I know that :-P 16:58:21 ehird, I didn't remember how to sell it 16:58:23 spell* 16:58:36 selling Salvador Dali paintings is probably very easy. 16:58:40 hah 16:58:52 so predictable that joke :P 17:01:05 ehird, http://en.wikipedia.org/wiki/File:Nebulabrot.jpg 17:01:15 Nice. 17:01:44 ehird, apparently it is http://en.wikipedia.org/wiki/File:Buddhabrot.jpg but different colour set 17:05:53 ehird, btw I remember seeing mandelbrot in vim 17:05:58 don't remember url 17:06:24 this is quite interesting. (compared to if it was emacs, then it would probably be built in ;) 17:07:57 AnMaster: I showed you that. 17:08:03 When talking about TECO. 17:08:11 http://www.spacetimetravel.org/tuebingen/tuebingen.html <-- anyone know the program that let you do this on arbitrary 3d shit? 17:08:14 I used it onc 17:08:14 e 17:08:15 ehird, oh ok. When was this? Must have been at least half a year ago 17:08:15 it was fun 17:08:22 AnMaster: No, it was yesterday or the day before. 17:08:32 ehird, err I have known of such a program for ages in vm 17:08:33 vim* 17:08:38 2009-03-10_Freenode.txt:19:27 ehird: http://www.df.lth.se/~lft/vim/mandelbrot 17:08:50 Your reply: 17:08:51 19:28 AnMaster: .se... oh my 17:09:06 ehird, yes, I didn't remember seeing it on .se 17:09:18 Emacs doesn't have mandlebrot built in 17:09:23 ehird, but I have seen mandelbrot in vim before 17:09:25 but there are lots of implementations on the Internet 17:09:27 *mandelbrot 17:09:29 I even ran it 17:09:42 sshed to a box with vim and tried 17:09:56 AnMaster: you don't have vim on your own computer? 17:10:09 ais523, no. As I said many times before 17:10:21 not everyone has emacs, not everyone has Gnome. Not everyone has KDE 17:10:24 do you have vi? If not, your machine isn't POSIX or UNIX compliant. Congratulations on your zealotry. 17:10:36 ehird, I do have a minimal vi yes 17:10:41 all POSIX computers have a vi implementation, but at least on Ubuntu it's a minimal implementation not vim 17:10:51 God, that mandelbrot vi program is slow. 17:10:55 Manual-synced NBTV parts: still waiting 17:10:58 la la 17:10:59 $ busybox vi 17:11:00 Like slow slow. 17:11:00 LA LA 17:11:01 la la 17:11:04 fuck off 17:11:06 I have an even more minimal vi on my computer 17:11:06 asiekierka: 17:11:17 ...THAT'S WHAT [EHIRD] SAID! 17:11:20 (before anyone says that was harsh, asiekierka's "la"s go on for 30m) 17:11:24 Options: 17:11:25 -cInitial command to run ($EXINIT also available) 17:11:27 -RRead-only - do not write to the file 17:11:28 -HShort help regarding available features 17:11:38 (la la, LA LA, la la, I am not listening) 17:11:40 oh god, that towers of hanoi game 17:11:43 is actually 17:11:44 playable 17:11:44 ais523, I took my vi from http://ex-vi.sourceforge.net/ I think 17:11:45 by the user 17:11:47 I never use it 17:11:47 I am not joking 17:11:56 its not an AI 17:11:58 that's just cool 17:12:15 well. 17:12:17 whereas vim.tiny gives me loads of options 17:12:19 just typing zzzzzzzzzzzzzzzzzzzzzzzzzzzzz wins. 17:12:24 ais523, hah 17:12:26 -!- comex has joined. 17:12:27 -!- comex has quit (Client Quit). 17:12:40 -!- comex has joined. 17:13:03 ehird, anyway vi isn't required by POSIX in fact. Since shell or other standard tools are actually optional 17:13:12 to make it possible to support POSIX on embedded systems 17:13:24 it's certainly required for UNIX 17:13:27 there is a special "embedded profile" or something, forgot the name 17:13:28 AnMaster: it's required by workstation POSIX I think 17:13:30 and if you have a shell I believe you must have vi 17:13:34 ehird, yes but POSIX != UNIX 17:13:38 ais523, true 17:13:52 just pointing out that ehird was factually incorrect 17:13:56 wow, in busybox vi 17:13:57 so anyone know about that speed of light thing 17:14:01 ais523, ? 17:14:03 typing ? then newline makes it segfault 17:14:08 um 17:14:17 that's a bug, I should see if it's still in the most recent version 17:14:27 ais523, says "pattern not found" here 17:14:33 AnMaster: using busybox 17:14:35 ? 17:14:36 ais523, yes 17:14:44 anyone want to help me with prolog? 17:14:47 no 17:14:59 BusyBox v1.10.2 (Ubuntu 1:1.10.2-1ubuntu7) multi-call binary 17:15:01 ais523, busybox 1.13.2 /bin/busybox: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), for GNU/Linux 2.6.9, statically linked, stripped 17:15:03 comex: I'll help if you like 17:15:08 wow, my busybox is old 17:15:29 Nobody know? 17:15:38 ais523: http://pastie.org/414276 17:15:53 I can load that, but if I then type valid(X), I don't get any results 17:16:00 aha 17:16:01 http://www.adamauton.com/warp/ 17:16:02 whereas I expect amo, amas 17:16:10 did you run first_conj? 17:16:12 ais523, in my package manager the versions 1.12.2-r1 1.13.2 ~1.13.3 are available. ~ signifying testing, since I'm running a stable system it would require me to unmask that one with an entry in /etc/portage/package.keywords 17:16:24 ah, you didn't 17:16:27 that program doesn't run first_conj 17:16:34 it /defines/ firstconj(am) as a fact 17:16:41 you need :- first_conj(am). to run it 17:18:06 in which prolog is a language and not first-order logic :u 17:18:27 anyway *uninstalls ex-vi* *links /bin/vi to /bin/busybox 17:18:28 comex: it would work fine if you were using backward chaining 17:18:31 -!- BeholdMyGlory_ has joined. 17:18:32 which is? 17:18:34 a few saved bytes 17:18:35 :) 17:18:40 comex: not using assert 17:18:44 and instead doing the conjugation at runtime 17:18:46 ais523: I don't want to use assert 17:18:48 how do I avoid it 17:18:54 what exactly are you trying to do? 17:19:03 if I just say valid(Word), I get an existence error 17:19:03 -!- BeholdMyGlory has quit (Nick collision from services.). 17:19:09 -!- BeholdMyGlory_ has changed nick to BeholdMyGlory. 17:19:15 that's because valid should be defined to calculate if a word is valid 17:19:26 I want to make a big list of valid words 17:19:29 by building up endings 17:19:41 as in valid (Word) :- root(R), ending(E), atom_concat(R,E,Word) 17:19:47 and root listing valid roots, and ending listing valid endings 17:19:57 do I have to go backwards? 17:19:57 oh, I forgot the full stop on my example, but you can add it 17:20:13 comex: it's called backward chaining in that it doesn't calculate the list unless you ask for it 17:20:34 in other words, if you write valid('amat'), it then looks for a root and ending that fit together to make 'amat' 17:20:56 putting atom_concat at the start of valid rather than the end would be faster if an argument was provided, but crash if you just wrote valid(X) 17:20:57 but the tutorials use something like 17:21:09 man(socrates). man(plato). 17:21:15 then you can ask who is a man. 17:21:19 yes 17:21:23 that's what's happening here 17:21:27 in my example 17:21:32 the full program would be 17:21:35 no, in that example I have to define all possible roots in one big thing 17:21:50 I don't think you "get" prolog. 17:21:55 ehird: I don't. 17:22:02 ending(o). ending(as). root(am). valid(Word) :- root(R), ending(E), atom_concat(R,E,Word). 17:22:05 You don't write procedures that template facts; prolog has that built in. 17:22:07 It's called foo :- bar. 17:22:09 That's your template. 17:22:34 ais523: except what if I want to say 17:22:46 that's valid, and valid(foo), and valid(bar) 17:22:52 and I don't want to stick it in one big expression 17:22:56 comex: do 17:22:57 valid(foo). 17:23:00 that isn't stuck in one big expression 17:23:01 it's only template if you have :_ 17:23:03 :- 17:23:04 you can doo 17:23:11 valid(foo). valid(bar). valid(Word) :- ... 17:23:18 really? 17:23:21 yep 17:23:23 ... yes ... 17:23:24 well, that makes more sense 17:23:27 it's like haskell pattern matching, comex 17:23:32 each definition you give is an alternative definition 17:23:35 you can define it multiple times, except it's one 17:23:38 and it tries them all 17:24:11 that's why the program you pasted doesn't work, it's treating first_conj(am) as an alternate definition of first_conj, not an attempt to run it 17:24:38 in fact, actually running an expression is quite difficult in prolog, although possible, because it's generally bad form 17:24:57 * comex tries to write a better version 17:25:12 http://www.drmaciver.com/2009/02/spam/ 17:26:49 ais523: http://pastie.org/414288 17:26:53 that works, but it seems very verbose 17:26:59 ~ 17:26:59 ~ 17:27:00 I have to say first_conj twice etc 17:27:00 ~ 17:27:02 ~ 17:27:04 fail 17:27:16 comex: "very verbose"? 17:27:20 The planets we live on; they differ. 17:27:25 http://sovietrussia.org/code/src/1182815183936.png 17:27:27 :D 17:27:31 that's typical Prolog 17:27:33 Slereah: old. 17:27:42 You hurt my feelings 17:28:02 if you want to make it shorter, you can do s1(X) :- member(X,[s,t,mus,tis,nt]). 17:28:09 but that's just a slightly shorter abbreviation 17:28:16 writing it out in full is idiomatic 17:28:22 he's talking about the valid() 17:28:23 part 17:28:45 there's nothing wrong with that, apart from Prolog's traditional lack of nested expressiosn 17:28:47 *expressions 17:28:49 is is a hack, really 17:29:06 Slereah: FWIW, if you want to be more current, I would focus on "GRUNNUR". 17:29:20 is there a way for me to "split" the goal into two, so I would just say first_conj once? 17:29:49 yes, but that would also be unidiomatic 17:29:52 fair enough 17:29:55 you can use ; to combine common parts of two goals 17:29:55 (but what is it :p) 17:30:20 sheesh, comex just wants to write his perfect language in every language 17:30:33 ehird: not really, I just want to generate a list of valid latin words with minimal typing 17:30:43 valid (Word) :- first_conj(Root), (atom_concat(Root, o, Word) ; s1(Ending), atom_concat(Root, a, X), atom_concat(X, Ending, Word)). 17:30:50 you're typing an awful lot of complaining about the AWFUL VERBOSITY into #esoteric 17:30:54 ehird: thought prolog might be a good way to do it 17:30:57 sometimes you repeat a few characters when coding! 17:30:59 how crazy 17:31:00 it is a good way 17:31:11 just deal with the verbosity, it's _one_ _line_ 17:31:19 not even a full line 17:31:20 a tiny line 17:31:25 comex: typical indentation style with that ; would be to line up the ; vertically underneath the opening bracket of the (;) group 17:31:27 ais523, Hm. Erlang looks like Prolog, but prolog doesn't look like Erlang. 17:31:30 ais523's version is way unreadable 17:31:31 that is my conclusion 17:31:48 ehird: if you run it through gprolog's pretty-printer, it's relatively readable, but the idiomatic version is better 17:32:22 there is actually a slight semantic difference between the version with ; and without 17:32:37 ais523: what? 17:32:38 in that the version with ; only runs side-effects that first_conj might have once, and the split version runs them twice 17:32:57 <3 non-functionally-pure languages 17:33:14 ; is just semantic sugar, though, for defining a new predicate and using each of the two halves of the predicate as an alternative definition for the new predicate 17:33:28 but ; is nice because you don't want to go around defining lots of junk predicates for no reason 17:33:37 in fact, most of Prolog is syntactic sugar 17:33:41 right 17:33:45 but you should use the idomatic one 17:33:48 in this case 17:33:48 really 17:33:50 in this case, yes 17:33:55 ; is mostly useful only in really big predicates 17:34:09 or if you really really need to avoid duplication for some reason 17:34:22 first_conj(Root), 17:34:26 that's the entirety of the duplication 17:34:27 think about that 17:34:31 in C< that would be 17:34:31 ais523, like golfing? 17:34:35 first_conj(root); or whatever 17:34:37 he's saying 17:34:41 AnMaster: no, like if something had side effects 17:34:41 that refactoring into a procedure 17:34:42 and then calling it 17:34:45 ah 17:34:46 makes the multiple calls REPETITION 17:34:49 that's _ridiculous_ 17:34:50 you definitely don't want to call fork() too many times, for instance 17:35:05 and fork_prolog(Pid) is in gprolog's standard library 17:35:24 you wouldn't want to duplicate that, and you probably wouldn't want to backtrack past it either unless you really knew what you were doing 17:35:27 at least, not in both resulting threads 17:35:31 *processes 17:52:28 forking, prolog, heheh 17:52:39 what's so weird about that? 17:52:46 it's much the same as forking in any other language 18:01:37 if you come onto an IRC network and find that services are down 18:01:47 is it usual to write your own copy of ChanServ to guard a channel for you? 18:02:11 http://pastie.org/414328 18:02:12 yay 18:02:34 looks good 18:08:17 -!- neldoret1 has joined. 18:10:57 -!- jix_ has joined. 18:16:18 -!- Judofyr has joined. 18:21:58 -!- neldoreth has quit (No route to host). 18:24:12 -!- jix has quit (Read error: 110 (Connection timed out)). 18:34:15 -!- ehird___ has joined. 18:34:32 Richard M. "Orwell" Stallman: 18:34:34 The Adobe flash plug-in is non-free software, and people should not 18:34:34 install it, or suggest installing it, or even tell people it exists. 18:34:34 That Firefox offers to install it is a very bad thing. 18:35:09 Does any of this explain his giant disgusting beard 18:35:48 ehird: Stallman doesn't 'get' free software 18:35:49 The beard is a byproduct of his bullshit-producer (mouth) 18:35:54 just look at the original licence to his Emacs manual 18:36:09 just as with proprietary software, he was trying to put on unremovable restrictions 18:36:18 luckily, the GPL stops him just as much as it stops everyone else... 18:36:19 ais523: you mean refusing to tell people non-free software exists won't solve the problem of non-free software?! shit! 18:36:34 yep 18:36:42 If we ignore them, maybe they'll disappear! 18:36:43 and refusing to port Emacs to Windows won't stop people porting it to Windows 18:37:03 Bruce Perens has much the right idea, I think, he wrote the DFSG 18:37:08 or at least was very influential behind it 18:37:11 ais523, can you ping 208.78.103.223? 18:37:18 why do you want me to try? 18:37:28 because I can't; it's my slice 18:37:50 ehird: yes, I can 18:38:00 64 bytes from 208.78.103.223: icmp_seq=1 ttl=45 time=120 ms 18:38:02 64 bytes from 208.78.103.223: icmp_seq=2 ttl=45 time=119 ms 18:38:11 also, I haven't heard Bruce Perens say anything that isn't insane, which is more than I can say for most FOSS people 18:38:18 64 bytes from 208.78.103.223: icmp_seq=1 ttl=56 time=0.000 ms :D 18:38:49 ehird: sshd is running over there 18:38:51 0ms? you lucky bugger, how fast is that connection! :P 18:38:54 although pretty obviously I can't log in 18:39:02 ais523: good. I cannot connect via SSH or IRC. 18:39:07 Thus the ___ 18:39:16 three underscores? that's quite a lot 18:39:42 I had __ for asking #slicehost, because I didn't want to risk just _ being online for some reason, but it hasn't disconnected yet :P 18:41:38 ESR on Bruce Perens: Damn straight I took it personally. And if you ever again behave like that kind of disruptive asshole in public, insult me, and jeopardize the interests of our entire tribe, I'll take it just as personally -- and I will find a way to make you regret it. Watch your step. 18:41:43 A strong endorsement. 18:46:08 Having recipes for non-free programs in the ports system is more like 18:46:08 including present-day neofascist web sites in the list of "interesting 18:46:08 links" in your web site. I am against censorship, so I do not believe 18:46:08 in closing down those neofascist web sites. But I won't refer people 18:46:08 to them. 18:46:13 ^ gahahahahahaha 18:46:42 ok, change of plans, i'm not getting a miniature toy fan and modifying it 18:46:45 i'm getting a motor 18:46:54 but tommorow, sadly 18:58:20 Huh, I've never written a Mandelbrot set viewer; just realised. 18:58:28 Well I've tried, but the algorithm never was right. 18:59:35 I've written one 18:59:44 although it breaks down if you zoom too far due to FP rounding errors 19:00:07 Haskell has a library for infinite precision floating point I think 19:00:35 you can't get infinite precision generalised floating point 19:00:40 you can get infinite precision rationals 19:00:50 and arbitrarily high precision floating point, that's what a bigfloat is 19:00:53 hcouldn't you find a base that can represent a number precisely in finit edigits, for any number? 19:02:09 ehird: pi? 19:02:12 root 2? 19:02:28 you can find a base that represents a number precisely in finite digits for any rational number, but not for any irrational number 19:02:56 good point 19:03:00 but i mean, things like, oh what it is 19:03:05 0.2 is 0.199999999999 or something 19:03:10 * ais523 catches ehird in a butterfly net -----\XXXXX/ 19:03:15 I was focusing on those errors 19:03:32 oh, those can be fixed using bigrationals 19:04:34 but do bigfloats automatically change their precision? 19:04:41 http://hackage.haskell.org/packages/archive/numbers/latest/doc/html/Data-Number-BigFloat.html doesn't 19:04:56 wonder if there's gmp bindings 19:08:57 grr, I'm unplugging/repluggin my router 19:09:22 -!- neldoret1 has quit (Client Quit). 19:12:47 -!- neldoreth has joined. 19:26:50 -!- neldoreth has left (?). 19:30:34 ais523: whoa! by adding only a few, very simple lines of code to my sierpinski program, it's rendering a PNG of it! (just need to fix one bug) 19:31:13 ehird___: the joy of a good stdlib 19:31:23 it would probably be just one extra wrapper function in mathematica 19:31:26 ais523: actually, it's from Hackage, but it was just a one-liner to install it 19:31:31 whose only redeeming feature is a good stdlib 19:31:34 but it's amazing what good-factored code gets you 19:31:38 yes 19:38:12 oi 19:38:25 ve avoi 19:39:44 im glad to see my comments on the sierpinski gasket generated such lengthy discussion 19:39:56 any solutions to the problem of why its so ubiquitous? 19:41:07 perhaps God is a gigantic sierpinski triangle. 19:41:15 Perhaps! :O 19:41:57 HUZZAH 19:43:03 I got into University of Maryland :D 19:44:33 -!- neldoreth has joined. 19:45:49 tony morris found by police; unharmed 19:47:02 ok, that's useful, I hope he stays alive 19:47:22 wb neldoreth 19:47:31 he had lots of time to kill himself had he wanted to. 19:47:41 of course 19:47:56 if he actually wanted to, we'd have no chance because he'd h ave been dead before the message was sent out 19:49:03 thanks and hello all 19:49:07 oh, hi 19:50:12 ehird___: some people want to commit suicide but don't really want to, so they give people a chance to talk them out of it first 19:50:18 anyway, let's move onto less morbid things 19:50:30 ais523 -- my current centering algorithm (stole from newsham :)) is "insert ((height - y)/2) blank spaces before the sierpinski stuffs" -- any way to fix that? because on the last line, it produces (h/2) spaces 19:50:37 also, yes, I know that... I'm not thick. 19:51:01 ehird___: what particular is wrong with that? 19:51:43 ais523 -- http://www.nopaste.com/p/abzexHoIj 19:53:06 ehird: what's y? 19:53:19 | y <- [h-1,h-2..0] ] 19:53:30 i.e., from h-1 to 0, downwards 19:53:58 so it ends up as (h-0)... hmm... ah, wait... 19:54:00 that algorithm shouldn't be producing the results you pasted 19:54:18 in particular, it would lead to only half a space on line 1 19:54:29 integer division :P 19:54:57 but you have loads of spaces on line 1 19:55:04 rather than none 19:55:31 except; the extra spaces come fromL 19:55:37 [ x .&. y == 0 | x <- [w-1,w-2..0] ] 19:55:43 which is catenated to the blanks 19:55:53 oh, I'm too tired to think about this atm 19:56:04 I'm seriously sleep-deprived after a couple of intensive modules 19:56:12 http://codepad.org/Y1PV2gVc the original version, which works without flipping 20:00:54 http://groups.google.ca/group/rec.arts.sf.written/msg/073bea1aa44c9396 was a funny story. 20:01:17 -!- ais523 has quit (Remote closed the connection). 20:02:55 hm 20:03:39 google for "pi" and the calculator gives you: pi = 3.14159265 20:03:41 ... 20:03:47 = ? 20:05:09 it should be ≈ 20:05:23 Mathematics: it's not like it's an exact science. 20:05:40 about tony morris 20:05:48 its true, he'd been dead long before the message was sent 20:06:00 -!- kar8nga has joined. 20:06:03 cause he'd probably code a chat bot to send the message for him 20:06:24 speaking of idiots attempting suicide, where'd they find him? 20:06:38 -!- ehird____ has joined. 20:06:46 it WAS scripted -- multiple emails and IRC channels at once 20:06:50 oh was it? 20:06:53 haha. nerd. :D 20:07:04 fizzie, btw if pi is a *normal* number as well as a transcendental one (which iirc is proven) wouldn't that mean that every number sequence will in the long run show up in the decimals on pi 20:07:07 also, he's not an idiot, he had chronic pain due to an ankle injury for 2 years 20:07:12 fizzie, right? 20:07:15 see, this is why geeks shouldnt commit suicide. they're too awesom. 20:07:18 -!- ehird___ has quit (Read error: 145 (Connection timed out)). 20:07:33 you try having excruciating pain 24/7 for 2 years 20:07:49 how long have i been coming here talking to you? 20:07:55 to boot, he thinks the doctors misdiagnosed him -- and there hasn't been any progress on it so far. He tried to self-amputate a while back. 20:08:08 also, har har har 20:08:11 jesus that would've been a mistake 20:08:11 P 20:08:15 :P 20:08:27 ...and, why? He can't exactly use the ankle. 20:08:27 I'm not sure normality is required, but yes, I guess at the very least a normal number should get every number sequence sooner or later. 20:08:29 ehird____, what's up with your nick btw? 20:08:31 amputating a leg that's had chronic pain for an extended period of time often leads of phantom limb syndrome 20:08:48 in which the pain remains, but the limb can no longer be anaesthetized, etc. 20:08:53 psygnisfive: yikes. 20:08:55 yeah. 20:08:58 yikes indeed. 20:09:03 AnMaster: router troubles, connected via telnet 20:09:14 fizzie, which would make PI a so called "illegal number" in theory. Since it would contain the binary, and source code, of every program in existence. Or ever possible 20:09:19 right? 20:09:36 AnMaster, your thoughts are as old as the 70s. 20:09:42 What matters is _INTENT_. 20:09:58 Read http://ansuz.sooke.bc.ca/lawpoli/colour/2004061001.php 20:09:59 ehird____, well yes. But this would be an interesting new file sharing idea. Just share offset in pi 20:10:02 :P 20:10:10 compression too 20:10:12 Pi-based file-sharing is not a new idea either. 20:10:18 damn 20:10:22 yeah, let's wait until the head death of the universe before sharing anything other than pi 20:10:24 I've seen it proposed (unseriously) somewhere. 20:10:40 ehird, err this is an IWC reference? 20:10:42 or? 20:10:49 Heat death. A typo. 20:10:52 oh 20:11:02 it did end up as an IWC reference though :) 20:11:16 fizzie, yes of course it wouldn't be practical 20:11:17 now; someone fix my shit router. 20:11:18 theres some file sharing system out there 20:11:25 ehird____, tried rebooting it? 20:11:25 where you never download whole files 20:11:29 but instead download pieces of noice 20:11:31 noise* 20:11:36 sigh, yes anmaster 20:11:37 which can be reused for MULTIPLE files 20:11:47 so no one piece can be claimed to be infringing on anything 20:11:49 ehird____, what is the issue you are having with it? 20:11:53 psygnisfive, yes, it's stupid, it's written by an idiot who knows nothing about copyright law 20:12:11 i know. it sounded bullshit because ok the noise isnt copyrightable 20:12:15 but the key to decode it is 20:12:23 anmaster, i can't reach my slice 20:12:27 psygnisfive, what if that key is a prime number? 20:12:35 the key is more than just that tho 20:12:39 ehird, your slice? 20:12:41 there's a prime whose source is decss 20:12:46 gzipped 20:12:52 ehird____, I know 20:12:56 I was making a reference to that 20:13:01 if you distributed it as a prime thing, that's fine 20:13:08 if you distirbuted it as decss, that's illegal 20:13:08 the key is a decode number plus references to the pieces of noise that need to be decoded 20:13:11 again, coloured bits 20:13:16 slice = slicehost VP 20:13:17 S 20:13:33 ehird, ah, you can't reach your vps. I could try to traceroute it if I knew the ip 20:13:43 Others can connect; 208.78.103.223 20:13:45 in case it is the vps that is having isues 20:13:48 issues* 20:13:49 it is not 20:13:50 ehird, hm ok 20:13:56 did you try traceroute? 20:14:01 traceroute gives my VPS, then * forever 20:14:30 21 hops but works fine here 20:14:41 ehird, maybe it is some firewall gone wrong on the vps? or such 20:15:29 IT'S AN ISSUE ON MY ROUTER 20:15:33 like i said, twice 20:15:37 ok right. How do you know? 20:16:03 because everyone else can ping, traceroute and connect via ssh, because I can't reach manage.slicehost.com either, and because the traceroute fails AFTER MY ROUTER 20:16:07 _right_ after it 20:16:09 like I said 20:16:19 hm 20:16:21 ah right 20:16:23 true 20:16:35 ehird, does it affect just slicehost or anything else? 20:16:58 maybe it is like that thing I remember reading about. Wikipedia being blocked by UK ISPs for some time iirc 20:17:17 no, it's really not. there's absolutely no basis for claiming it is, other than "UK" being in common 20:17:17 You said "traceroute gives my VPS, then * forever" which does not sound equivalent to "fails right after my router". 20:17:18 if they blocked something else on the same ip 20:17:24 s/vps/router/ 20:17:52 fizzie, indeed 20:18:37 anyway, try to calm down. I read about this thing called "mindfulness", though it did look like a piece of bull****, it might help. don't know~ 20:18:54 Now if you people could stop being interesting for tonight, I might get done this thing I need to write. 20:19:09 ehird, so you can't access manage.slicehost.com either. Would that extend to *.slicehost.com ? 20:20:14 no 20:20:22 no? 20:20:27 no. 20:20:30 mhm 20:21:13 ehird____, this is very strange indeed. Two ips at slicehost doesn't work, but everything else does? 20:21:14 huh 20:21:50 even though I know routers are crappy I have a hard time seeing how it could be that crappy 20:23:03 ehird____, I wish you good luck making it work. Tried a factory reset? How to do that varies between models. On some you hold some button down while it is booting for example 20:23:12 I'd rather not 20:23:16 (like power button on mine) 20:23:33 ehird____, I understand that 20:23:41 ehird____, tried telneting to your router? 20:23:55 usually that works better than webuis 20:24:14 can't. 20:24:21 mhm 20:24:25 on mine it works 20:24:33 and shows lots of nice hidden options too 20:24:37 yours isn't a locked down piece of shit rented from orange as part of the plan 20:24:53 ehird____, mine was sent by the ISP as part of the plan 20:24:56 but not same ISP no 20:25:09 combined ADSL-modem/router 20:25:17 [ehird:~] % telnet 192.168.1.1 20:25:17 Trying 192.168.1.1... 20:25:17 telnet: connect to address 192.168.1.1: Connection refused 20:25:42 ehird, well for fun try nmapping it, just do it at slow rate or you are likely to crash it 20:26:11 Here's a random piece of trivia: I have a ZyXEL ADSL thing, which speaks a bit of SNMP, but only the outgoing link speed is visible in the SNMP values (as interface speed); the incoming speed, which I'd sort-of like to monitor out of curiosity, is not even the ZyXEL-specific SNMP MIB, it's only available in the telnet (and webui) interfaces. 20:27:36 fizzie, I don't think mine has SNMP. How would I check? 20:28:42 Er, well, you can poke it with a SNMP request, but presumably if it has it, the community IDs ("public", "private" by default) are configurable somewhere. 20:29:09 hmm, it has quite a few open ports 20:29:20 53/tcp open domain 20:29:20 80/tcp open http 20:29:20 9100/tcp open jetdirect 20:29:20 49153/tcp open unknown 20:29:46 fizzie, which port? 20:29:48 btw, how do you kill telnet from inside? it's irritating 20:29:59 ehird, ^[ iirc 20:30:04 that is Ctrl-[ 20:30:17 that is the escape code for it in my case 20:30:18 AnMaster: It's an UDP thing, and it might not answer to invalid-looking requests, so you probably need some snmp-utils package installed. 20:30:20 ah, it's ^] 20:30:25 ehird____, oh maybe 20:30:32 ehird____, it says when you start it 20:30:33 iirc 20:30:51 fizzie, nmap no good? 20:30:51 anyway, all the ports are boring apart from 9100 which gives "3" -- wonder how to use them. 20:31:11 ehird, did you try service scan thingy 20:31:18 of nmap 20:31:32 -sV iirc 20:31:32 wuzzat 20:31:43 ehird, ? 20:31:47 kay, running it 20:31:52 AnMaster: Well, I guess you could try nmapping UDP port 161, I mean theoretically it could send back icmp port-unreachables or something if it doesn't answer at all. 20:32:06 ehird____, it could I guess crash a bad router if the router crashed on random data 20:33:18 OK, I have results 20:33:30 http://www.nopaste.com/p/aTrKL9mcmb 20:33:31 fizzie, it is filtered on other random udp ports too 20:33:38 so doesn't tell me much 20:33:45 So, some dns shit, the configuration, Upnp server and an unknown thang. 20:33:59 The unknown thang & the dns seem interesting, all else boring. 20:34:00 Yes, very likely. Well, if you have them tools, "snmpwalk -Os -c public -v 1 ." usually gives everything the device knows. 20:34:10 Linux 2.6, though, ey. 20:34:18 ehird, dns isn't unexpected. All routers have that afaik 20:34:26 all consumer ones at least 20:34:27 Well, right. 20:34:40 S owhat is that jetdirect, do you think? 20:34:43 fizzie, I don't have the tools 20:34:56 oh, printer shit 20:35:07 so... totally locked down, you can get in to it, but you need a serial cable 20:35:09 ehird____, that is what the port is meant for 20:35:20 my router supports connecting a printer, so yes 20:35:20 ehird____, but it probably isn't used for that... 20:35:25 oh really, hm 20:35:30 for networked printing 20:35:35 You can probably craft a SNMP packet with hexedit and send it with netcat's udp mode, but that probably would not be worth the trouble. 20:35:51 fizzie, does SNMP offer any nice backdoors? :P 20:35:52 indeed 20:36:45 Speaking of backdoors, my WLAN access point firmware had a custom non-linked page, with manufacturer-fixed username and password, which let you execute any shell command with a web-form and see the outputs. 20:36:49 That wasn't very nice. 20:36:51 wait 20:36:56 I was using wrong nmap option 20:37:00 this seems interesting 20:37:20 though it takes some time 20:37:26 oh? 20:37:38 fizzie, indeed ouch 20:37:52 PORT STATE SERVICE VERSION 20:37:52 161/udp open|filtered snmp 20:37:52 MAC Address: 00:14:7F:EE:BF:74 (Thomson Telecom Belgium) 20:38:15 If anyone can gimme tips on cracking open my router's shell, i'd appreciate it 20:38:25 I don't know what nmap's "open|filtered" means. 20:38:34 ehird____, tool called hammer 20:38:40 or if that fail: sledge 20:38:45 sledgehammer* 20:38:53 har har. 20:38:54 The wlan AP's debug-page was reasonably useful for getting shell-like access without having to upload a custom firmware or anything. 20:39:13 I just would've preferred it to use the configured administration password and not some manufacturer default. 20:39:15 !! THATS AN IDEA 20:39:19 You can back up your Livebox configuration to a file on your computer. 20:39:25 _and_ restore it -- JACKPOT?! 20:39:31 err 20:39:32 what? 20:39:42 there might be hidden settings in there 20:39:52 fizzie, interesting. The telnet access I get is kind of crippled, a menu interface with lots of options 20:39:52 ugh, it's a binary file 20:39:56 but no real shell access 20:40:07 don't think it runs *nix even 20:40:22 Well, there was no telnet access to the wlan AP at all, even though it was a linuxy thing. 20:40:25 Modifying cfgsave.dwb files from a Wanadoo Livebox <-- oo 20:41:13 This ADSL box most probably isn't linux-based either. 20:41:22 "This file is just a tar file that has been 'encrypted' by adding 0x1b to every byte in the file. " 20:41:28 Make this shit up, you can't. 20:42:21 I ran into that sort of "encryption" somewhere too. 20:42:22 hey you can get telnet with just this apparently! hot 20:42:27 -!- ehird____ has quit (Excess Flood). 20:42:44 -!- ehird_______ has joined. 20:42:46 Apparently the box doesn't know what day it is either. 20:42:48 styx> sys date 20:42:48 Current date is Tue 2009/01/06 20:42:49 it's HACK IN TIME 20:43:14 FireyFly, heh 20:43:15 err 20:43:17 fizzie, ^ 20:43:22 me downloadz HACK TOOLZ 20:43:35 It's "ZyNOS version: V3.40(AGE.2)". 20:43:54 ehird_______, cool 20:44:03 yeah that sort of "encryption" sucks 20:44:10 but good for power users 20:44:49 tar: This does not look like a tar archive 20:45:41 opening it, I see shell files, though 20:45:45 just no header 20:45:58 starts- d6a72aaac5a6ce5f9622633d162f908f - 20:46:42 anmaster, any ideas? 20:46:53 um 20:46:57 Ooh, there's a tcpdump-like packet trace facility in the ADSL box. 20:47:18 ehird, that looks like a hash of stdin from md5sum 20:47:29 $ echo foo | md5sum 20:47:29 d3b07384d113edec49eaa6238ad5ff00 - 20:47:31 see? 20:47:35 aha, I'll s trip it off 20:47:49 ehird, no idea if that will break stuff 20:47:55 presumably, I'll need to put one back when I'm done! 20:48:09 anyway when I save settings from my router using the backup feature I get a plain "user.ini" file 20:48:20 which is in fact an ini file 20:48:34 WORKS NOW 20:49:01 http://pastie.org/private/tjvsp5kpxzg5bgqowkka <- FUCK YEAH 20:49:51 That's a funny format for a configuration dump. 20:50:04 Does it extract any tar file you upload to it, no matter what the paths are? :p 20:50:14 Yep. 20:50:28 Heh, that's friendly. 20:50:30 As long as you add the md5sum properly, and then add 0x1b to each byte 20:51:00 squee, this is aesome 20:51:21 i'm going to make my livebox serve over http 20:51:24 to the net 20:51:27 "hello from router" :D 20:52:05 this is pretty good, all their configs are plain text and COMMENTED 20:52:10 ehird_______, it has bluetooth? 20:52:13 with _useful comments_ 20:52:15 also, yes 20:52:23 huh 20:52:29 ehird_______, what is that used for? 20:52:36 hm? 20:52:40 oh 20:52:43 don't recall 20:52:51 ehird_______, not debug port then? 20:53:07 omg you can configure the dns and everything <3 <3 <3 20:53:19 ehird_______, in what way? 20:53:34 my main objective: add an sshd 20:53:39 which will be T R I V I A L 20:53:47 just modify the wifi.conf shell script, to add the commands you want to run 20:53:50 repackage it 20:53:53 import the config 20:53:55 and VOILA 20:55:02 -!- BeholdMyGlory has quit (Remote closed the connection). 20:55:18 -!- olsner has joined. 20:55:27 -!- BeholdMyGlory has joined. 20:55:38 AnMaster - isn't incompetence lovely? 20:56:13 It might also be some subversive soul thinking "hey, let's give the poor plebs a way of actually using their device". 20:56:20 sure is when you can gain advantage of it 20:56:30 fizzie, would be nice 20:56:34 hmm, considering the comments that's quite possible fizzie 20:56:47 ehird, what comments? 20:56:58 in the configuration files 20:56:59 I mean, what comments specifically 20:57:11 # The interface that udhcpd will use 20:57:17 Anyway, if a device runs Linux, people are probably going to hack around with it even if it means soldering in custom connectors for a serial port or stuff. 20:57:18 I guess that's from udhcpd though 20:57:24 ehird_______, anything like "fuck the management, lets make this encryption silly"? 20:57:30 heh 20:57:41 this is JSUT configuration files, I will need ssh to explore the whole fs 20:57:53 ehird, hm... 20:58:08 Well, maybe only the most hardcorey people would apply a soldering iron on a rented device, but anyway. 20:59:32 One good way of finding stuff out is to locate the "open-source-compliace" website of the device manufacturer; I think most companies that do linux-based routery things have some sort of "here's a random pile of sources" distribution, which you certainly can't use to build a working firmware out of (since no-one bothers to support that) but which can be very informative of how the system works. 21:00:23 http://jean.thecoderblogs.com/2008/12/05/got-root/ <- somoeone's done this already, that's a :( and a :) 21:00:24 ZyXEL has a ftp://opensource.zyxel.com/ ftp-site with really random content, and Linksys also at least used to have outdated source code distributions hidden somewhere in the support sites. 21:03:06 I will now do http://jean.thecoderblogs.com/2008/12/05/got-root/, so I amy hack further 21:06:23 hmm, you can only write to /etc apparently 21:06:30 I guess I'll make /etc/x/ for stuff I put 21:07:32 hm it seems openwrt should work on my router 21:07:36 according to some googling 21:07:48 not going to try, I don't want to mess up 21:09:39 OpenWRT should sort-of almost-work on my wlan AP (a Linksys WAP54G), except that the AP-only version I have only has 2 megs of flash instead of the normal 8 megs in the good old WRT54G, so there's not much space for stuff. 21:10:28 ah probably same 21:10:36 this router is about half a year old 21:11:52 ok, preparing to get myself an sshd onto thine router 21:13:09 -!- BeholdMyGlory has quit (Remote closed the connection). 21:13:27 gonna try it now, brb 21:13:28 -!- ehird_______ has quit ("aaa"). 21:13:31 -!- BeholdMyGlory has joined. 21:13:33 Thou shalt not ssh onto thine router, for that is an abomination. 21:14:57 There is some set of numbers, strictly greater than the rational numbers and strictly less than the real numbers, which can be mapped reversibly but not 1-1 to integers by means of writing a program to generate the number. With these generator programs, you can perform addition, multiplication, etc, but cannot perform comparisons, as two numbers may be equal even if their generator representation is not, and I don't plan to solve the halting problem. I 21:14:57 s there any problem with this observation, and is it even vaguely useful? 21:15:35 Actually, I suppose you can perform comparisons just as reliably as you can perform any other operation, it only becomes a problem when you try to display the result in non-generator form. 21:15:59 (With everything else you can get a partial early result, but with that you'd have to wait infinite time for any result) 21:16:42 My bouncer works now 21:16:44 anyway 21:16:46 HERE GOOOOOOOOES 21:17:01 Soon there will come smoke out of your router. 21:17:05 Unless we can prove that, for some particular translation to generators, all generators for equal values will eventually resolve to identical code sequences, which might actually be the case ... 21:17:14 (Doesn't seem likely though) 21:18:24 -!- MigoMipo has joined. 21:19:03 Oh come on, this is #esoteric , somebody has to be interested in my math oddity :P 21:19:22 I fucked it up 21:19:23 :( 21:19:37 GregorR: they're called computable numbers 21:19:38 Is your math oddity the same thing as "computable numbers"? 21:19:45 Gah. 21:20:37 What is this math oddity 21:21:05 The main thing I'm trying to point out is that I recall somewhere it being claimed that there are strictly more real numbers than integers, but in fact there's a set in between rationals and reals that has the same cardinality as integers. 21:21:07 ssh: connect to host configuration.adsl port 22: Connection refused 21:21:31 GregorR : There's a shitload, actually 21:22:12 ssh: connect to host 192.168.1.1 port 22: Connection refused 21:22:14 whyyyyyyy 21:22:29 GregorR: Do you mean "strictly more rationals than integers" in that comment? I mean, I don't see who'd object to "strictly more real numbers than integers". 21:22:31 N->Z->Q-> constructible numbers -> Algebraic numbers -> computable numbers -> definable numbers 21:22:41 All of them are aleph null 21:22:48 GregorR: there're many sets containing the rationals that have the same cardinality as integers do. 21:23:08 Actually, all useful numbers have that cardinality 21:23:08 I blame my math teacher for making that unclear X-D 21:23:17 GregorR: for example, the algebraic closure of 1 and sqrt(2) 21:23:21 OH WAIT 21:23:26 MAYBE I HAS FIX 21:23:34 -!- BeholdMyGlory has quit (Read error: 104 (Connection reset by peer)). 21:23:52 -!- BeholdMyGlory has joined. 21:24:32 sorry, not algebraic closure 21:24:41 hmmmm 21:24:43 just the field defined by 21:27:04 The field define by one and sqrt2? 21:27:08 That's a pretty small field 21:27:19 ehird, oh? 21:27:23 hmm 21:27:32 it just isn't responding to ssh 21:27:39 -!- kerlo_ has changed nick to orelo. 21:28:21 Slereah: it's not that small 21:28:58 Well, cardinality of two :D 21:29:25 1-1=0 21:29:28 and so on 21:29:46 * ehird unhides a downloaded one to see if changes took effec 21:29:46 t 21:30:14 they did not. 21:30:54 OH 21:31:47 brb 21:31:48 trying again 21:32:42 Actually that "add 0x1b" "encryption" is not the most canonical "silly encryption"; a xor operation would've been more usual than addition. 21:32:54 OK, so this is dumb, I was thinking about that and I came to the conclusion that any infinite set that be defined by induction has the same cardinality as reals. Then I realized that that's completely fucking obvious. 21:33:32 I mean, glibc has that memfrob(s, n); function and everything. 21:43:29 -!- lament has quit (Remote closed the connection). 21:43:41 -!- lament has joined. 21:44:06 -!- MigoMipo has quit ("QuitIRCServerException: MigoMipo disconnected from IRC Server"). 21:50:16 GregorR: excluding countable ones, I presume. 21:51:23 ERM, same cardinality as /integers/ I meant. 21:51:39 If you can create the set by induction, it's countable. 21:51:53 yes. 21:52:05 That's why any useful number is in such a set 21:52:15 Because they can't be defined otherwise 21:52:29 "Useful" :P 21:53:46 Related to usefulness of numbers, a well-known quote: "The real numbers are the dependable breadwinner of the family, the complete ordered field we all rely on. The complex numbers are a slightly flashier but still respectable younger brother: not ordered, but algebraically complete. The quaternions, being noncommutative, are the eccentric cousin who is shunned at important family gatherings. But the octonions are the crazy old uncle nobody lets out of the atti 21:54:32 heh 21:56:28 I wish there was a sound way to define the theory that any set larger than the computable numbers (that is, any set S for which the computable numbers are a strict subset of S) is also contrived :P 21:57:39 (Erm, larger but still with the same cardinality as integers that is) 21:58:06 (That makes no sense! :P ) 21:59:02 Hmm, so a countable set that includes all computable numbers, plus something else. 21:59:12 Yes, but is not contrived X-P 21:59:13 Don't be hatin' Chaitin's constant dude 21:59:23 CONTRIVED 21:59:26 :P 21:59:46 The set of all 1-computable numbers, defining "1-computable" as meaning a particular thing. 21:59:54 1. (1) contrived -- (showing effects of planning or manipulation; "a novel with a contrived ending") 22:00:12 Touché sir :P 22:00:20 Touch on your weiner 22:00:37 Namely, computable on a 1-computer, defining "1-computer" as meaning a particular thing. 22:00:49 I've got one: Computable with a halting oracle. 22:01:05 That includes Chaitin's number. 22:01:16 An n-computer is a Turing machine with a halting oracle for every m-computer where m is an ordinal number less than n. 22:01:24 (By "contrived" I really meant to imply that you don't just go "That set plus Chaitin's constant") 22:01:38 Perfect! 22:01:47 Now where did I leave that halting oracle ... 22:01:56 Oh, it would suck to have a job as a halting oracle. All day people would be asking about "does this halt" and "does that halt" and on and on and on. 22:01:58 Why is Chaitin's constant less contrived than definable numbers? 22:02:07 Don't believe the job advertisement's "flexible hours" stuff. 22:02:26 It means they will bend them out of shape 22:02:29 Slereah: when GregorR said "don't", he meant "do". 22:03:03 Except "don't" is also a valid way of saying that, because either English is weird or GregorR is weird. 22:03:10 Yes. 22:03:29 It was correct colloquial English, and is conveniently interpretable to mean either of two opposite things correctly :P 22:03:56 But there ain't no problem with that! 22:04:19 GregorR, why are you so very melon 22:04:21 I've heard it said that "I could care less" and "I couldn't care less" mean the same thing. 22:04:56 Indeed. 22:05:02 SO-O-O 22:05:05 That's why people shouldn't say "I could care less". 22:05:07 my router isn't doing the right thing 22:05:46 ehird: Maybe you should watch the "warriors of the net" video to more appreciate the tough job your router has. 22:05:50 Whenever somebody says "I could care less", I put a broadsword through their head. 22:06:01 (Unless they actually could care less) 22:06:10 "How does a router look like? What color does a IP packet have? How does a IP packet travel through firewall. All the answers and many more can be found in the Warriors of the net move [sic]." 22:06:12 (In which case that's just a weird statement) 22:06:24 fizzie: Well, by all accounts, it should have started the sshd. 22:06:29 Maybe it _has_. But I can't get to it. 22:06:41 o h 22:06:49 maybe that 22:06:57 * ehird tries 22:12:25 * orelo presses some buttons on his calculator 22:12:29 Fuck ass, I think I know the problem. 22:12:37 Hmm, no 22:12:40 -!- asiekierka has quit. 22:12:45 It says "zebra". 22:12:54 well. 22:12:55 Basically, 22:13:01 it isn't downloading the file. 22:13:04 Why, I have no fucking idea. 22:13:08 (From my machine) 22:13:11 And now it says "cebra". 22:13:48 And now it says "wolf", and now it says "lobo", and now it says "sheep, ewe", and now it says "oveja". 22:14:07 AnMaster: any ideas? It just isn't running the code 22:16:44 #notify_file#default: (no script) 22:16:44 #notify_file/bin/dumpleases # <--- usefull for debugging 22:16:48 Aha! A way to run a program. 22:19:05 hm? 22:19:10 * AnMaster was afk 22:19:38 ehird, anyway I now have root on my router: http://deckardt.nl/blog/2008/06/28/speedtouch-fun-the-root-hack/ 22:19:41 not very useful 22:20:01 since I have a rather new firmware 22:20:54 orelo, what sayz zebra? 22:21:35 -!- Corun has joined. 22:27:01 -!- atrapado has joined. 22:32:06 This ZyNOS packet-trace looks rather spiffy: http://www.tcgweb.com/netgear/trace-snif.html 22:32:09 No filters, though. 22:42:10 Meh, I give up 22:44:03 http://hpaste.org/fastcgi/hpaste.fcgi/view?id=2345 22:44:05 Sierpinski v3. 22:44:10 Now outputs a PNG. 22:44:14 psygnisfive: try it! 22:44:18 ghc --make -O2 sierpinski-gd.hs 22:44:18 then 22:44:25 ./sierpinski-gd sierpinski.png 22:44:29 open sierpinski.png and voil 22:44:30 a 22:44:35 if you don't have ghc, I can give you an OS X binary 22:47:53 HOLY CRAP 22:47:55 psygnisfive: 22:47:59 If you return x&y 22:48:02 instead of just checking it for 0 22:48:05 you get an awesome infinite background pattern 22:48:09 shaded blue 22:48:23 pic or it didn't happen 22:48:27 SURE THANG BRO 22:48:42 uploading 22:49:13 lament: http://imgur.com/5ZN9A.png 22:49:14 Could not find module `Graphics.GD' 22:49:15 :< 22:49:19 that's just interpreting x&y as an rgb colour 22:49:21 FireyFly: "cabal install gd" 22:49:38 lament: pretty cool, huh? 22:50:00 neat 22:50:22 Checkerboard sierpinski ;o 22:50:24 I was expecting something less, well, uniform 22:50:29 FireyFly: exactly 22:50:34 i hereby dub & the sierpinski operator 22:53:49 -!- Slereah has set topic: My other car is a cdr | http://tunes.org/~nef/logs/esoteric/?C=N;O=D | s$B\KGP(Bɹ $BYQ(Bo$BHF(Bun. 22:55:15 FireyFly: got it working? 22:55:47 Wow, it is awesome. 22:56:02 AnMaster: my calculator. 22:56:04 Nope 22:56:06 :D 22:56:30 Hm 22:57:11 * orelo attempts to figure out that image 22:57:45 Well, it's clear in some places that one pair of opposite squares is brighter than the other. 22:58:05 And the pattern remains as you zoom in. 22:58:17 The question is how much brighter. 22:59:18 FireyFly: do you have cabal? 22:59:19 if so, just do: 22:59:23 $ cabal install gd 22:59:25 and all will go smoothly 22:59:27 Oh, and within each pair, the upper-right square is brighter than the lower-left. I think both are brighter than the upper-left and lower-right, which are equally bright. 23:00:02 I think that due to a modulo, though, the four big squares of the entire image are identical except for the green component. 23:00:14 I havn't really used haskell that much, but I appearently have the libhugs-cabal package installed 23:00:19 But no command "cabal" 23:00:21 They're identical full stop 23:00:22 I believe 23:00:23 The fact that the image is 512x512 is evidence for this hypothesis. 23:00:27 FireyFly: Oh, hugs? 23:00:28 Don't use hugs. 23:00:32 Uninstall hugs and install ghc. 23:00:34 Well I do have ghc installed to 23:00:36 too* 23:00:37 Ah. 23:00:43 Install libghc6-cabal, or whatever it's installed. 23:00:49 Then find "cabal-install" package and install that too. 23:00:52 Then it should work. 23:00:53 Ah wait. 23:00:55 ghc comes with cabal 23:00:55 * orelo successfully runs hugs 23:00:57 so just the cabal install one 23:01:35 Either 'buntu packages sucks, or I do 23:01:39 I guess it's the latter 23:01:48 Eh 23:01:52 repos, that is* 23:01:58 Hmm 23:01:59 I will ask #haskell 23:02:50 It looks quite a lot like http://en.wikipedia.org/wiki/File:Sierpinski_square.jpg except that one has used more coloursies. 23:03:08 And done with an IFS, not just bitwise and. :p 23:03:28 Ah. of course. 23:03:31 It's sierpinski without the hole. 23:03:39 Also, an IFS is way slower than a bitwise and :P 23:05:39 Hmm,. 23:05:46 I wonder if I can antialias that there sierpinski. 23:09:03 psygnisfive: ping 23:11:53 -!- bsmntbombdood has quit. 23:12:18 -!- bsmntbombdood has joined. 23:12:42 Interrobang with ~: ‽̃ 23:12:50 http://imgur.com/LIS7.jpg 23:14:16 imgur sounds like Sumerian 23:14:22 IM GUR 23:14:35 :D 23:15:47 -!- tombom has quit ("Peace and Protection 4.22.2"). 23:15:50 On this font and size, the interrobang with ~ just renders like an interrobang except the top part is even messier. 23:15:52 I didn't think GD would be so simple I could do that in 36 lines 23:15:56 fizzie: ditto 23:16:00 -!- BeholdMyGlory has quit (Remote closed the connection). 23:16:10 I hereby deem this channel the Haskell+GD Appreciation Club. 23:18:00 http://zem.fi/~fis/tilderrobang.png 23:20:19 Hmm. 23:20:24 I wonder if using | instead of & gives a fractal 23:20:37 No. 23:20:40 It gives whiteness. 23:20:57 -!- kar8nga has quit (Connection timed out). 23:21:05 At least for the == 0 case, it would. I guess otherwise too. 23:21:34 Yes. 23:21:40 Maybe xor. 23:21:47 Xoractal. 23:21:57 Do they have a combining ? so you can display "interrofoo" \forall foo \in Unicode? I don't think they have. A shame. 23:22:12 U+033C sounds like a road sign: COMBINING SEAGULL BELOW 23:22:26 -!- jix_ has quit ("..."). 23:22:46 what's a combining seagull do 23:23:22 It's a vaguely McDonalds-y logo down there you can combine with. 23:23:39 Like a flattened m, maybe. 23:23:41 No I mean like 23:23:42 IRL 23:23:44 the sign is saying 23:23:47 COMBINING SEAGULL BELOW 23:23:52 data structure problem 23:23:54 so presumably we're on a road high in the air 23:23:59 so what does a combining seagull do 23:24:05 Oh, well. I don't know, but I think it involves bird excrement. I don't want to think about the details. 23:24:35 Does it perhaps find other combining seagulls and permanently attach them to itself, thus creating a fractal seagull? 23:24:44 CONCLUSION: Sierpinski is every-fucking-where. 23:24:59 given a mapping of strings -> value, i need to return all the values who's keys contain a substring 23:25:14 (in less than linear time obviously) 23:25:15 Given that they have the combining anticlockwise ring overlay, the combining right arrowhead and down arrowhead below, the combining rightwards harpoon with barb downwards, and even the combining acute-grave-acute and the combining grave-acute-grave, I don't think a combining question mark would be too much to ask. 23:27:06 "Contain a substring" is often suffix tree work, if you don't mind the space overhead. 23:27:45 -!- FireyFly has quit ("Later"). 23:28:10 If you have a "generalized suffix tree", it "can be built in Θ(n) time and space, and can be used to find all z occurrences of a string P of length m in O(m + z) time, which is asymptotically optimal". 23:28:30 For a set of strings of total length n, that is. 23:30:06 you have many strings though 23:30:43 Yes; that's what the "generalized" part there is. You can build a single tree for a set of strings, and find all matches (in any of the strings) for a given substring. 23:30:56 hmm 23:30:59 I guess in your case you could directly stick references to values in there. 23:31:12 -!- oerjan has joined. 23:31:19 What're m and z 23:31:32 zeroes xs = sum [ 1 | 0 <- xs ] 23:31:33 what the heck is the topic 23:31:40 Deewiant: It says right there. z occurrences and input string length m. 23:31:50 Oh, right 23:31:59 Heh, way to skip the relevant half of the sentence 23:32:08 -!- ehird has set topic: (eq? (cdr my-cars) 'cdr) | http://tunes.org/~nef/logs/esoteric/?C=N;O=D. 23:32:14 Deewiant: That's just like you, you're just reading the channel for the formulas. 23:34:20 i take that to mean you don't know what it meant 23:34:33 oh, and hi 23:37:09 So. 23:37:11 Hi oerjan. 23:37:14 Haskell is neat. 23:37:44 unwords . repeat $ "yes" 23:38:03 fix ("yes "++) 23:38:55 cycle "yes " 23:39:13 yes 23:39:16 22:39 ehird: > "The answer is: " ++ fix ("Yes! " ++) ++ "Haskell can do that." 23:39:16 22:39 lambdabot: "The answer is: Yes! Yes! Yes! Yes! Yes! Yes! Yes! Yes! Yes! Yes! Yes! Yes!... 23:39:17 22:39 ehird: ...virginia 23:39:38 ("Maybe, Virginia.") 23:39:47 ("Just True, Virginia.") 23:39:50 i'm confused 23:40:02 bsmntbombdood: arfnoble grifgraff? 23:41:09 [1..]>>"yes " 23:41:15 oerjan: ooh! 23:41:29 oerjan: that's beautiful 23:42:13 oerjan: but longer than cycle"yes " 23:42:18 alas 23:42:49 hello oerjan 23:42:55 hej hej 23:43:02 execWriter . forever . tell $ "yes " 23:43:11 oerjan, irreguljär webserie 23:43:13 * AnMaster runs 23:43:25 too short, already read 23:43:37 Deewiant: system "yes 'yes '" 23:43:42 oerjan, yeah I was busy hacking my modem/router 23:43:44 hmm, that adds newlines 23:43:46 didn't see you join 23:43:47 ehird: Bad command or file not found 23:43:54 ehird, I had some success btw, but not much 23:43:57 ehird: And it's IO :-P 23:43:57 for my router 23:44:12 Deewiant: unsafeCoerce (system "deltree /y C:\*.*") :: String 23:44:15 hmm, wait 23:44:16 ehird, it seems you need JTAG to do anything useful with it 23:44:22 Deewiant: unsafeCoerce (unsafePerformIO (system "deltree /y C:\*.*")) :: String 23:44:33 ^bf +[[,----------]>+++++++++[<+++++++>-]<.[-]++++++++++.] 23:44:36 er 23:44:38 ^bf +[[,----------]>+++++++++[<+++++++>-]<.[-]++++++++++.]!hello world 23:44:40 ...out of time! 23:44:45 ...out of time! 23:44:50 ehird: main = return () -- sorry, can't touch this 23:45:13 Deewiant: that sounds a bit - restrictive 23:45:26 oh wait 23:45:39 [,----------] seems like it's looking for newlines. 23:45:44 import Prelude hiding (return) 23:45:48 it's from ed.bf 23:45:54 so maybe it is a complete impl of ed 23:45:57 Deewiant, what are you doing? 23:46:20 I'm not doing anything 23:46:28 return _ = system "rm -rf ." 23:46:35 um 23:46:44 who is trying to delete their system? 23:46:45 hm probably needs another import for system 23:46:52 AnMaster: Deewiant 23:46:56 and why 23:47:20 ehird was deleting a hypothetical Windows / DOS system in Haskell 23:47:32 oh that would be hard. It would be a side effect 23:47:38 (of windows) 23:47:56 * oerjan swats AnMaster -----### 23:48:05 side effects are not hard in haskell! 23:48:27 oerjan, you missed the joke 23:48:28 -_- 23:48:38 oh no, it cannot be! 23:48:46 AnMaster: no, you missed his joke. 23:48:50 * oerjan weeps frantically 23:48:53 ehird, no I just missed ~ 23:48:56 woe is me! 23:49:00 the nth time around 23:49:01 poop is me! 23:49:07 pope? 23:49:14 well same thing 23:49:44 * oerjan will now rent his swatter to any practicing catholics nearby 23:49:45 -!- atrapado has quit ("Abandonando"). 23:59:42 the pope is made of poop. 23:59:42 ok, that ed just outputs ? every newline 23:59:42 22:50 wli: I have a tough time writing ed in Haskell. I have to believe he used some kind of codegen from another language. 23:59:42 CHECKING FOR "10" AND OUTPUTTING A CHARACTER IS REALLY HARD 23:59:42 oerjan, why? 23:59:42 religion is for insulting 23:59:42 22:55 AnMaster: religion is for insulting <-- you're an idiot. 23:59:42 ehird, I forgot ~. sorry 23:59:42 i should just tag ~ on to my every line 23:59:42 well that might be a good idea in fact 23:59:42 :) 23:59:42 ~ 23:59:42 ehird, actually ~ is too boolean. Either serious or sarcasm 23:59:42 we need a marker for said with "wink of eye" 23:59:42 or something like that 23:59:42 I would suggest ¤ 23:59:42 I suggest ";-)" 23:59:42 Deewiant, meh. So outdated... ¤ 23:59:42 ¤ already has a meaning 23:59:42 Deewiant, so does ~ 23:59:42 And I don't think I've got it on my keyboard layout 23:59:42 AnMaster: Yes, but not ";-)" 23:59:42 Deewiant, Finnish? 23:59:42 wait, ~ = 23:59:42 argh 23:59:42 Or rather, it has that meaning 23:59:42 wait, ~ ? 23:59:42 AnMaster: colemak 23:59:42 oerjan, iirc Swedish and Finish have the same? 23:59:42 err 23:59:42 Deewiant, ^ 23:59:42 Deewiant, "colemak"? 23:59:42 You recall correctly, but as I said I use colemak 23:59:42 wth is that 23:59:42 colemak.com 23:59:42 AnMaster: what? 23:59:42 anyway ¤ is Shift-4 here 23:59:42 oerjan, misbraintab 23:59:42 why is no one making sense 23:59:42 Yes, I know, that's what it says on my 4 key as well :-P 23:59:42 Deewiant, why not dvorak btw? 2009-03-13: 00:01:00 Colemak is supposedly more optimal 00:01:32 don't be polemic, just use colemak 00:02:10 is there a colemak for Swedish? 00:02:20 I type a lot in Swedish so I need åäö 00:02:21 There is just one colemak 00:02:23 äåö 00:02:27 Deewiant, there is svorak 00:02:33 äåãøúüöáñéíóæœ 00:02:44 Deewiant, altgr isn't valid :P 00:02:45 AnMaster: Yes, I know. 00:02:58 i use qwerty 00:03:01 *crickets chirp* 00:03:02 I'm fine with altgr; you can always configure it yourself if you want 00:04:32 http://colemak.com/FAQ#What.27s_wrong_with_the_Dvorak_layout.3F "# Even though the design principles are sound, the implementation isn't optimal because it was designed without the aid of computers. " <-- uh what? 00:04:42 qwerty, the favorite layout of crickets 00:04:52 "Because" doesn't make much sense there :-P 00:04:55 I basically have a muscle memory of qwerty :( 00:05:02 ehird, same here 00:05:16 Unlearning and learning something else would take up to a year, probably 00:05:18 I can switch to qwerty within minutes 00:05:18 I grew up with qwerty after all. Hard to unlearn it now 00:05:23 ehird, probably 00:05:24 and I give up after a day or two because I type so much 00:05:27 AnMaster: that makes sense 00:05:30 Or rather, within seconds, but I'm back in comfort within minutes 00:05:31 oh yes I type lots too 00:05:36 lament, which line? 00:05:44 Took me about a month or two to get fully comfortable with colemak 00:05:49 AnMaster: if you want to design an optimal layout, you would need statistical analysis of the text you type 00:06:00 hard to do that without a computer 00:06:02 lament, ok, they could have said that. 00:06:05 (and without knowing what kind of text you type) 00:06:08 lament: Hard but that doesn't imply that it's suboptimal 00:06:32 I maintain that "suboptimal because no computers were used" doesn't hold 00:06:44 lament, because any random designer could do a nifty layout in photoshop, using a computer(!), and it probably wouldn't be any good 00:07:13 i didn't write that FAQ, don't complain to me 00:07:21 so saying something about computer aided statistical analysis would have been better 00:07:23 dvorak is good enough for me but it's clearly not optimal 00:07:58 eg "ls" is clearly bad, "i" and "u" should probably be switched... 00:08:14 mhm 00:08:33 qwerty is great because it's _always_ suboptimal 00:08:36 lament, you could do that in some file in /usr/share/keymaps/ iirc 00:08:42 What's amusing is that http://en.wikipedia.org/wiki/Blickensderfer_typewriter had the same letters as Colemak on the home row, back in 1893 00:08:45 maybe somewhere else for X 00:08:47 not sure 00:08:52 Different order though 00:08:54 I'm fine with Dvorak. 00:09:14 But I think that also goes a bit against Colemak's point about computer-aided statistical analysis 00:09:37 Deewiant: huh? 00:09:37 I mean, English has been the same for a long time, you don't need a computer to tell you that 'e' is the most common vowel and so on 00:09:43 Deewiant, how emacs compatible is colmak? 00:09:50 AnMaster: Don't know, don't care. 00:09:54 you use vi? 00:09:57 Deewiant: the relative frequency of letters is known. 00:10:03 then how vi(m) compatible is it? 00:10:04 lament: Yep. 00:10:11 Deewiant: that's not enough to design an optimal layout. 00:10:14 hjkl are moved for example 00:10:22 AnMaster: Not very, I remap the basic movement keys 00:10:34 Deewiant, mhm 00:10:35 I wish there was something like vi that unsucked 00:10:47 ehird, it's called µeamcs 00:10:50 lament: True, but I just think they're stating it a bit too strongly 00:10:52 µemacs* 00:10:54 that is not like vi AnMaster 00:11:02 ehird, well depends on what you define "like" as 00:11:05 it is an editor 00:11:06 AnMaster: I don't remap much though, I like the mnemonics 00:11:11 and not a potato 00:11:18 There's a "colemak.vim" which changes a crapload of stuff 00:11:23 I argue vim is more like emacs than vim is like a potato~ 00:11:31 But it's more a customization of the whole of vim than just a remapping of the keys 00:11:34 So I don't use ti 00:11:35 s/ti/it/ 00:11:36 Deewiant: please complain to them, not to me. 00:11:52 lament: I wasn't complaining to you or to anybody, I just made a statement 00:12:28 what the heck _is_ this ~ thing 00:12:40 I can't remember whose idea it was 00:12:51 A sarcasm indicator, basically 00:13:02 hmm, is there a standard threading api lower level than pthreads? 00:13:06 what a wonderful idea~ 00:13:43 oerjan, it was ehird's idea 00:13:44 iirc 00:13:55 ehird: you're so smart~ 00:13:56 was t? 00:13:57 *it 00:14:13 ehird, either that or you read it somewhere and mentioned it in this channel 00:14:16 not sure 00:14:29 I could be wrong, it was some time ago after all 00:14:41 AnMaster: you wrong? never~ 00:14:52 oerjan, memory isn't as good as when you were young 00:14:57 you should know how it is ;P 00:15:19 sorry, i don't remember how good my memory was when i was young~ 00:15:30 hah~~ 00:16:35 ehird: clone(2) 00:16:45 no manual entry for clone 00:16:45 :P 00:17:02 Well yeah, if you want to be portable, no :-P 00:17:07 Beats me about OSX 00:17:26 I just looked at the source of glibc and that's what it uses 00:17:44 OS X would be whatever BSD uses 00:17:45 ehird: well you could just copy some other manpage to it 00:17:51 groan 00:18:14 oerjan, :D 00:18:31 and here i thought that one was too subtle... 00:18:36 ehird, anyway no standard one lower than pthreads no 00:18:45 it is "implementation defined" 00:18:47 ehird: __clone? 00:18:55 pthreads is awful though 00:18:58 Deewiant, iirc clone() is linux specific 00:19:04 it is a linux system call... 00:19:22 ehird, fork() shm_* 00:19:33 fork isn't threas 00:19:33 ds 00:19:50 ehird, well depends. On linux fork() is clone() and phtreads is clone() 00:19:54 just different parameters 00:20:21 It specifically needs to be a thread because i'm doing it for a gc 00:20:28 so the gc has to fuck with the heap 00:20:31 well linux also has a system call fork(), for compatibility with older code 00:20:39 but nowdays clone() is used 00:20:48 and the syscall fork() maps to the same code 00:21:41 GregorR: egobfc2m doesn't work on non-linux :< 00:22:23 ehird: Just look at your sys/syscall.h and see what's there :-P 00:22:33 Deewiant: I need portable :P 00:22:43 ehird: Then why ask for lowest level? :-P 00:22:49 I didn't say lowest 00:22:51 I said lower than pthreads 00:23:03 Why go lower instead of higher, in general 00:23:08 If you're aiming for portability 00:23:08 pthreads sucks :D 00:23:11 >_< 00:23:12 ehird, pthreads is the lowest portable 00:23:13 pthreads is about as low as you portably get, is my guess. 00:23:16 darn 00:23:18 ehird: Then use a higher level library? 00:23:21 Which doesn't suck 00:23:24 Bah. 00:23:30 wait 00:23:52 ehird, nick confusion? You going low level and me and others suggesting higher level? 00:23:54 HUH! 00:24:11 something isn't right here 00:24:28 Greenity. 00:24:41 purplity 00:24:44 Have to admit I've rarely seen people complain pthreads isn't low-level enough. 00:25:18 fizzie, indeed. I have seen people saying it is too low level though 00:25:22 and I agree 00:25:25 I prefer higher level 00:27:00 Nighty-night, anyway. 00:29:03 SCHRODINGER'S SCHRODINGER 00:31:19 what? 00:31:32 yo schrodinger? 00:32:39 yep 00:32:46 I herd u liek quantum physicists 00:33:28 Say how do you tell vim not to give you the splash on startup 00:33:28 If you do, I am single 00:33:49 because you know what 00:33:51 FUCK UGANDA 00:33:54 Hmm, can write(2) to stdout/stderr be buffered, so that you need to fsync it? 00:34:03 Deewiant: for >file, maybe? 00:34:08 i think you need a secret code that you only get if you actually donate~ 00:34:28 ehird: What about console? 00:34:35 Deewiant: dunno 00:34:41 Yo dog, I heard you like Schrodinger's boxes, so I may have put a Schrodinger's box inside a Schrodinger's box so you can be uncertain of whether you're uncertain or not. 00:34:45 I guess it could be, in theory 00:34:51 I'm not the kind of guy who says "dawg", you see. 00:35:19 I also see that you don't say "Schrödinger" 00:35:31 What did umlauts ever do to you? 00:35:52 an umlaut killed my granduncle! 00:36:00 Oh, dear! 00:37:10 orelo: orely? 00:37:37 ö®ëll¥¿ 00:38:03 Schrödinger. 00:39:54 * orelo watches irssi's status line scroll up into backscroll. 00:41:37 that sounds borken 00:42:00 It is relatively borken, yes. 00:42:57 I'll take a screenshot in a while. 00:47:27 http://i39.tinypic.com/20r2ob8.png 00:48:13 Hmm. 00:48:24 Vim cannot address the space one after a lines last character (before the newline). 00:48:27 Why is this? Deewiant? 00:49:10 Because you're not in insert mode? 00:49:45 Correct. 00:49:46 And? 00:49:51 Why can I not address that position? 00:50:09 Because you don't want to. 00:50:44 Having my thin-line-style cursor end at the seemingly-arbitrary second-last character is jarring. 00:51:15 orelo: what happens if you press ^L ? 00:51:32 hm i guess it's a bit late now 00:53:45 ehird: hm i have a thick cursor when not in insert mode, i suppose that fits vim better 00:53:59 hmm, can you do a multiline string in a vimrc? 00:55:07 * orelo tries 00:55:40 Hey, it fixes it. 00:56:10 so just a display bug 00:56:18 :\ 00:56:38 It's kind of a Unicode bug. 00:56:54 I think my terminal settings are lying when they say UTF-8. 00:57:19 Ä 00:58:02 That character is supposed to be a capital A with an umlaut or diaeresis; instead, when I type it, it appears to produce a line break and move right. 00:58:08 i note there were _two_ unicode lines before that bug in the screenshot 00:58:20 In the chat window, it displays as inverse D. 00:58:25 yeah it's an A with umlaut here 00:59:17 oh only one of the lines were yours 00:59:29 so it's when you are typing 01:00:36 ehird: how do you get a thin-line cursor in vim? 01:00:43 more importantly, why would you want one 01:01:00 I conclude that irssi is not sending UTF-8 to my terminal. 01:01:04 set guicursor=n-v-c:block-Cursor/lCursor,ve:ver1-Cursor,o:hor25-Cursor,i-ci:ver1-Cursor/lCursor,r-cr:hor1-Cursor/lCursor,sm:ver1-Cursor 01:01:16 that will give you block cursor on normal mode, thin cursor on everything else but r and c 01:01:31 I'd like to make the cursor gray 01:01:33 so it stands out less 01:01:47 lol, gui 01:02:20 you use gvim last I checked 01:02:34 no, I don't 01:02:43 You certainly tried it. 01:03:00 that's correct, I opened gvim once to try it. :D 01:03:10 and I just opened it again to see what you're talking about. 01:03:43 you have a line ending with a space? 01:03:46 and you can't address it? 01:04:02 To be precise, irssi is not sending UTF-8 to screen or screen is not sending UTF-8 to sshd or sshd is not sending UTF-8 to ssh or ssh is not sending UTF-8 to my terminal. 01:04:42 oh, you just want to put the block after the last character 01:04:51 why 01:05:50 because it was a vertical line 01:05:55 so it looked stupid otherwise 01:05:58 but notw it's not 01:06:07 mm 01:06:32 I'm still deciding whether or not I like vim putting you at a character instead of between characters 01:06:59 for ^ and $, it's just a waste of time to remember whether to use i or a 01:07:05 but for searches, it makes sense... 01:07:38 ^i = I, $a = A 01:07:50 btw, the ironman colour scheme is nice 01:08:29 oerjan: nice, I'll remember that 01:08:30 * ehird maps Ctrl-A to I and Ctrl-E to A 01:08:34 emacs addiction. 01:08:48 ctrl-a > ^ 01:08:50 that requires a big reach 01:08:55 not for me 01:08:57 oh 01:08:57 right 01:08:59 yeah 01:09:05 this one works in insert mode though too 01:09:06 :P 01:09:34 also, what 01:09:55 * orelo concludes that irssi is sending UTF-8 to screen 01:10:00 naah, because in normal mode you get a beep 01:10:20 solution: nnoremap 01:10:22 comex: 01:10:23 nmap ^ 01:10:24 imap I 01:10:26 nmap $ 01:10:27 or that 01:10:28 imap A 01:10:38 works exactly how you expect in both modes 01:10:47 not in visual mode, though 01:10:51 who gives a shit about visual mode 01:11:06 * comex vmap 01:11:22 night 01:11:26 * oerjan likes visual mode 01:11:28 except 01:11:29 you can't do 01:11:34 foo 01:11:37 because that trashes your selection 01:11:42 ehird: vmap ^ 01:11:46 ah 01:13:33 * comex wonders how to remember 'vaB' 01:13:41 hmmmmmm 01:13:46 my hi Cursor things are being ignored :( 01:14:33 aha 01:15:21 colorscheme ironman 01:15:21 hi Cursor guifg=#000000 guibg=#CCCCCC 01:15:23 hi lCursor guifg=#000000 guibg=#CCCCCC 01:15:25 hi CursorIM guifg=#000000 guibg=#CCCCCC 01:15:27 lovely 01:16:14 wtf 01:16:18 I restart, and it forgets 01:16:55 too bad there isn't a way to select the {}-delimited block _and whatever comes before it_ 01:17:04 ehird: shit gets reset when you do shit 01:17:06 :p 01:17:11 though it would require knowledge of C 01:17:11 yes but 01:17:13 ais523: can emacs do that? 01:17:15 :soucre ~/.vimrc 01:17:16 ohwaityouaren'there 01:17:17 FIXES IT 01:17:18 *source 01:17:24 comex: umm, no, it wouldn't require that 01:17:26 create a function 01:17:29 then map a key to call it 01:17:30 voila 01:17:38 full vimscript at your fingertips (NOTE: vimscript is shit) 01:17:52 I meant it would require knowing that the file is C 01:18:02 which, according to ais523, is bad 01:18:09 /emacsy 01:18:11 I don't see why 01:18:14 :u 01:18:15 oh 01:18:22 I'm gonig to have to learn vim scripting though 01:18:25 now comex 01:18:30 how come source .vimrc fixes this 01:18:31 :| 01:18:32 so far I've just been copying from the tips wiki 01:18:40 echo -e \\0347\\0214\\0253 does precisely what it ought to. 01:18:48 ehird: do it after syntax on 01:18:51 if you're not already 01:18:56 wait, 01:18:58 -!- kerlo has joined. 01:18:59 cursor isn't syntax 01:19:01 * comex shuts up 01:19:04 that is default, for one :p 01:19:13 ehird: 01:19:16 move it to the end of vimrc 01:19:22 wtf 01:19:26 it works after syntax on 01:19:27 figure, go 01:20:55 -!- kerlo has quit (Client Quit). 01:22:00 -!- orelo has changed nick to kerlo. 01:22:26 I've deduced, I suppose, that screen is messing everything up. 01:24:07 hey comex, whats the thing for :e-but-in-a-new-tab 01:30:19 ehird: :split 01:32:46 -!- olsner has quit ("Leaving"). 01:36:06 -!- Robdgreat has quit (Read error: 60 (Operation timed out)). 01:36:10 -!- Robdgreat has joined. 01:37:25 -!- Sgeo has joined. 01:37:46 -!- Corun has quit ("Leaving"). 01:54:33 -!- Sgeo has changed nick to Sgeo[Worms]. 02:03:06 -!- Slereah_ has joined. 02:19:21 -!- Slereah has quit (Read error: 110 (Connection timed out)). 02:49:43 trees of bloom filters! 02:50:40 forests in bloom! 02:52:39 what's the most efficient way of representing 3 bit strings, A, (A|B), and B? 02:53:41 surely you can do better than 3n 02:55:48 um one is the or of the others? 02:56:04 oh wait 02:56:16 erm what is (A|B) 02:56:40 bsmntbombdood: ^ 02:56:49 bitwise or 02:56:54 oh 02:57:06 well just leave it out, duh 02:57:08 2n 02:57:23 -!- kwertii has joined. 02:57:48 ...except you're not allowed to do that 02:58:08 well then it's a question of what you mean by "representation" 02:58:27 since that is the precise shortest way, i think 02:59:55 what about sending A,B, and one of the flag pairs 10, 11 or 01? 03:00:31 2n+2, and each of them can be sent "separately" 03:00:52 of course that is long for everything _other_ than (A|B) 03:00:55 let's say this: you need to be able to compute A|B by looking at no more than n bits 03:01:04 -!- Corun has joined. 03:01:06 oh 03:02:21 well then, if the same is true for A and B, and those are independent, then you must have n bits that represent A and n disjoint bits that represent B 03:03:16 obviously you need to add _something_ to be able to compute (A|B) from n bits 03:03:34 right 03:04:22 although theoretically the representations of A and B could be recodings, no need to store the actual same bits 03:04:45 A and B are independent 03:05:25 it just seems like it should be possible to do better than 3n because A|B is biased towards 1 03:07:56 hm no idea 03:10:12 -!- kwertii has quit ("bye"). 03:10:25 -!- kwertii has joined. 03:45:37 what's a good rolling checksum/? 03:47:23 0 03:47:26 It's round and smooth. 03:47:31 Should roll quite nicely. 03:47:51 It's also the 1-bit checksum (i.e. parity) for anything that has an even number of 1s. 03:48:30 ah, that's helpful 03:48:48 Damn, then I've failed. 03:50:40 -!- Sgeo[Worms] has changed nick to Sgeo. 03:52:04 i would use adler32, but that's no good for short strings 03:55:36 -!- Corun has quit ("This computer has gone to sleep"). 03:57:48 -!- neldoreth has quit (Read error: 113 (No route to host)). 04:16:44 -!- kwertii has quit ("bye"). 04:36:41 -!- GreaseMonkey has joined. 05:40:47 -!- oerjan has quit ("Good night"). 05:42:18 ALL TAUTOLOGIES ARE TAUTOLOGIES 05:42:26 i just felt i should let you guys know this. 05:42:48 x!=x is true for some x 06:00:00 nan != nan 06:22:22 which is weird. 06:49:04 -!- oklofok has joined. 07:07:38 -!- oklopol has quit (Read error: 110 (Connection timed out)). 07:10:29 -!- Sgeo has quit ("Leaving"). 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:50:57 -!- neldoreth has joined. 08:59:21 -!- jix has joined. 09:31:54 -!- GreaseMonkey has quit ("Client Excited"). 10:03:52 ehird: re. vim addressing the nonexistent last char on a line, look at :help 'virtualedit 10:38:01 This was a rather vague statement: "For students – written confirmation of student status signed by scientific advisor is needed." We just faxed a free-form statement printed on some TKK logo-paper, since I don't think any of the more or less official "student status" proofs have any "scientific advisors" on them. 11:06:12 -!- tombom has joined. 11:06:28 Gahh that IE-only Travel system is horrible. 11:17:21 -!- mvmn has joined. 11:18:51 Hails 11:19:30 I've implemented Thue interpreter in Java. You may get it freey from here - http://mvmn.wordpress.com/2009/03/12/thue-in-java/ 11:20:34 I don't know what I did it for (it's esoteric, hehe), so decided to spread it to the world - maybe someone will find a good use for it (-: 11:26:49 -!- Corun has joined. 11:41:06 -!- mvmn has left (?). 11:43:19 -!- Oklopol has joined. 11:43:34 my computer is borken `___´ 11:43:39 BORK 11:43:43 BORK BORK BORK BORK 11:43:59 -!- Oklopol has changed nick to oklopoll. 11:44:00 -!- oklopoll has changed nick to oklopol. 11:59:47 -!- oklofok has quit (Read error: 110 (Connection timed out)). 13:20:26 -!- Hiato has joined. 13:34:29 -!- Corun has quit ("This computer has gone to sleep"). 14:43:08 -!- Judofyr has quit (Remote closed the connection). 14:49:11 -!- Judofyr has joined. 15:01:10 -!- oklopol has quit (Read error: 110 (Connection timed out)). 15:19:55 -!- Judofyr has quit (Remote closed the connection). 15:49:54 -!- Corun has joined. 16:02:53 -!- Corun has quit ("This computer has gone to sleep"). 16:08:28 -!- neldoret1 has joined. 16:17:41 oerjan is wrong 16:17:46 :split is for framey-things 16:17:46 but tabs 16:17:48 not 16:18:23 :tabe % 16:18:31 ah 16:18:33 tabe 16:18:47 http://img24.imageshack.us/img24/1448/picture5okr.png <- those buttons, looks like snow leopard 16:21:01 -!- neldoreth has quit (Read error: 113 (No route to host)). 16:23:58 -!- FireyFly has joined. 16:30:16 hmm 16:30:21 now to figure out how to "tabe filename at point" 16:37:04 -!- BeholdMyGlory has joined. 16:52:27 -!- Corun has joined. 16:55:14 -!- Sgeo has joined. 16:55:31 -!- Corun has quit (Client Quit). 16:56:27 We thought if we were to find the smallest universal machine then we could learn a great deal about computability -- of course that wouldn't be so! 16:56:30 — John McCarthy 16:56:35 The reader is welcome to enter the competition [to design the smallest universal Turing machine ...] although the reader should understand clearly that the question is an intensely tricky puzzle and has essentially no serious mathematical interest. 16:56:37 — Marvin Minsky 16:56:42 NOW WE UNDERSTAND COMPUTATION! 16:56:45 — Stephen Wolfram 16:58:29 Wolfram solved the halting problem 16:58:43 yes he asked wolfram|alpha 16:58:47 "how to solve halting problem" 16:58:49 :D 16:59:01 and it gave him that stackoverflow article we linked earlier 16:59:04 (about the BF halting checker) 16:59:09 and then he enlighteninged 17:00:47 BF halting checker? 17:01:11 That shouldn't be too hard, considering that most BF is 30k cells or so 17:01:13 -!- MigoMipo has joined. 17:02:10 10AB -> B 17:02:10 11ABC -> 11AC1BC 17:02:19 ^ simpler than Binary Combinatory Logic? 17:02:22 hmm wait 17:02:26 that has 11 wrong 17:02:27 damn 17:02:28 nm 17:05:51 hi 17:05:56 hi 17:15:39 -!- bsmntbombdood has quit (Read error: 113 (No route to host)). 17:16:21 -!- bsmntbombdood has joined. 17:17:04 http://nitens.org/taraborelli/latex ← Typography porn. 17:19:51 ligatures are hot 17:20:38 I wonder if there's someone who's actually sexually attracted to good typography. 17:23:29 http://www.josbuivenga.demon.nl/tallys.html <- awesome font 17:23:48 Er, typeface. 17:23:51 Please forgive me. 17:24:41 ehird : We have someone on a conlanging forum 17:24:46 She has this expression 17:24:49 SCRIPTGASM 17:24:52 A person? On a forum? That's amazing. 17:24:58 Because she enjoys "pretty scripties" 17:25:10 Well, sure, but is she actually physically aroused by them? 17:25:17 You'll have to do some tests. 17:25:53 Well, she's a minor, so it would probably be illegal 17:26:06 -!- oklofok has joined. 17:28:47 Wow, why have I never used Hoefler Text before? 17:28:49 That's one awesome typeface. 17:35:17 kay, if I ever publish a book it'll be in hoefler tex 17:35:18 t 17:51:13 Deewiant, fizzie: There? 17:51:40 What exactly is the correct way to interpret a form feed in the program file when in befunge 98 mode? 17:51:54 byte #12 17:52:04 Deewiant, so it should just be loaded as it is? 17:52:12 Yes 17:52:49 Subsequent lines in Unefunge are simply appended to the first, and the end of the source file indicates the end of the (single) line. End-of-line markers are never copied into Funge-Space. 17:52:54 Deewiant, that is for unefunge 17:53:06 Ah, crap 17:53:07 Then do that 17:53:14 so loading form feed raw into funge space would be inconsistent 17:53:15 I.e. ignore it 17:53:24 Deewiant, what about when you load with i? 17:53:34 "source file" 17:53:38 so 17:53:44 if it's a source file 17:53:48 then newlines are ignored 17:53:50 otherwise, it's not 17:53:52 i includes a file, right? 17:53:53 or sth 17:53:56 i'd class that as a source file 17:53:56 loading with i is equivalent to loading the source 17:54:02 ehird, you can load a source file with i, or a data file 17:54:19 AnMaster: I'd say any file-based representation of fungespace where one char = one place is a source file 17:54:22 you know wha I mean 17:54:23 anyway 17:54:31 Deewiant, i has two loading modes. 17:54:32 Also, if the least significant bit of the flags cell is high, i treats the file as a binary file; that is, EOL and FF sequences are stored in Funge-space instead of causing the dimension counters to be reset and incremented. 17:54:40 AnMaster: Yes, and they are both very well specced. 17:54:46 AnMaster: i can has two loading modes? 17:54:54 ehird, XD 17:54:57 I mean, that answers your question directly... I don't get why you're asking me 17:56:17 okay I am way too obsessed with fonts atm; halp 17:56:33 ehird: Use Comic Sans and forget the rest 17:56:37 http://bohemiancoding.com/?Fontcase <-- think I will download this to feed my crack^Wfont habit 17:56:40 Deewiant, So to get it straight: 1) Initial load: ignore FF in befunge. 2) i binary: put everything in 3) i non-binary: EOL as usual (y++) FF ignored? 17:56:44 Deewiant: I should make Comic Helvetica 17:56:51 AnMaster: 1) and 3) are equivalent 17:56:55 and cause the apocalypse 17:57:00 AnMaster: 1) just hardcodes the position as (0,0) 17:57:06 (,0,0,0...) 17:57:21 Deewiant, yes indeed. I just wanted to be sure I got it right 17:57:27 ehird: If you want to be useful add glyphs to DejaVu Sans Mono 17:57:37 I don't like dejavu sans mono :-( 17:57:48 It looks ugly. 17:57:56 Start with GLAGOLITIC CAPITAL LETTER SPIDERY HA 17:58:03 ... On the other hand! 17:58:07 Deewiant, currently I'm doing coverage analysis of cfunge and writing test cases for things missing mycology. 17:58:20 New project: Add the GLAGOLITIC CAPITAL LETTER SPIDERY HA to every font in the universe. 17:58:37 ehird, sounds cool. How do you make/edit a font btw? 17:58:43 AnMaster: using expensive software 17:58:47 U+2C22 if you want to look at a reference pic 17:58:56 ehird, I'm sure there is some free software *searches* 17:59:07 AnMaster: yes, but ... not very good. 17:59:12 media-gfx/fontforge http://fontforge.sourceforge.net/ ? 17:59:16 never tried it 17:59:26 typefaces are ... ever so slightly complex. 17:59:33 also very niche 17:59:38 Which would explain the lack of good free tools 17:59:42 unfortunately 17:59:43 well truetype is certainly complex 17:59:51 Fontographer seems popular 17:59:52 I remember reading about the file format some time ago. 17:59:54 -!- kar8nga has joined. 18:00:10 http://dejavu-fonts.org/wiki/index.php?title=Developer%27s_Corner suggests fontforge 18:00:15 AnMaster: truetype is out of date, actually 18:00:20 well, sorta 18:00:26 opentype is more widely used in new stuff IME 18:00:32 mhm 18:00:36 Deewiant: yes, but they're a free project; they wouldn't recommend a commercial tool 18:00:41 I never seen opentype on anything but apple 18:00:51 AnMaster: opentype is a microsoft format 18:00:56 oh hm 18:00:57 ehird: Yes, of course, I was only considering free ones anyway 18:01:05 Deewiant: Well, there's only fontforge. 18:01:14 ehird, I'm pretty sure I have seen opentype on OS X though... I may be wrong 18:01:17 yes 18:01:21 all default fonts on OS X are opentype 18:01:23 ah 18:01:37 holy crap I love fontcase 18:01:40 ehird, is opentype free and patent-unencumbered? 18:01:46 um 18:01:52 iii don't know 18:02:00 http://partners.adobe.com/public/developer/opentype/index_spec.html 18:02:01 I mean, just because it says "open" doesn't mean it actually is 18:02:08 there's the spec 18:02:19 mhm 18:02:19 -!- ais523 has joined. 18:02:22 hi ais523 18:02:23 hi ais523 18:02:37 ehird, argh! you were a second faster 18:02:46 so I ended up second 18:02:50 Ooh, Charcoal CY is a pretty typeface 18:03:01 -!- Judofyr has joined. 18:06:07 Deewiant, I think your = has a bug 18:06:26 hi ehird, AnMaster 18:06:30 Deewiant, "After execution, a failure value is pushed onto the stack. If this value is zero, everything went as expected. If the value is non-zero, it may be the return-code of the program that was executed; at any rate it means that the attempt to execute the program, or the program itself, did not succeed." 18:06:41 Deewiant, try = on empty stack, it pushes 0 18:06:52 it might be UNDEF 18:06:56 -!- Mony has joined. 18:07:16 but to me it sounds like everything didn't go as planned 18:07:19 I'd say everything went as expected 18:07:27 You asked me to execute nothing and I did, successfully 18:07:32 Deewiant, so what is the meaning of empty string = ? 18:07:38 what does = do? 18:07:43 AnMaster: Like /bin/true 18:07:49 ais523: system() 18:07:59 hmm... empty string = is impl-defined, I'm almost certain 18:08:04 ais523, execute a string in an implementation defined way. This means system() usually 18:08:06 i just want to buy every typeface in the world. 18:08:10 and use them all. 18:08:20 plop 18:08:33 cfunge pushes -2 on empty string to = 18:08:34 hi Mony 18:08:46 what does system("") do? 18:08:48 AnMaster: FBBI would also push 0 18:08:48 that should be what = does. 18:08:57 ehird, implementation defined I *think* 18:09:01 AnMaster: try it on your system. 18:09:03 that is C implementation 18:09:04 If the value of command is NULL, system() returns non-zero if the shell 18:09:04 is available, and zero if not. 18:09:04 if it does something sane, copy that 18:09:09 system(NULL) is defined by the C standard, it tells you whether system() can do anything or not 18:09:11 Deewiant: do that, then 18:09:13 system("") is different, and isn't defined 18:09:17 oh 18:09:17 right 18:09:26 well, what does system("") do on linux/bsd? 18:09:29 just do that. 18:10:04 ehird: You do realize that my code is just push(system(popstring)) or something equally simple 18:10:11 Deewiant: Then your code is right./ 18:10:16 Hmm. 18:10:23 I'm going to make my own Befunge interp. Again 18:10:31 how's your INTERCAL impl doing? 18:10:32 ehird, it returns 0 18:10:38 AnMaster: Do that. 18:10:47 -!- jix_ has joined. 18:10:48 ais523: When I said April, I meant next April 18:11:14 C-INTERCAL 0.01 was famously written in a weekend 18:11:18 admittedly, it didn't actually work 18:11:18 But anyway; only three compliant implementations? This will not do. 18:11:24 Four, no? 18:11:30 Umm.. 18:11:32 Oh, stinkhorn? 18:11:35 Isn't that really incomplete? 18:11:40 on *POSIX* system() is defined like: 18:11:40 That makes five if it does 18:11:41 The environment of the executed command shall be as if a child process were created using fork(), and the child process invoked the sh utility using 18:11:42 execl() as follows: 18:11:42 execl(, "sh", "-c", command, (char *)0); 18:11:45 what is stinkhorn? 18:11:45 Deewiant: list them? 18:11:48 ais523: Asztal's 18:11:52 CCBI, cfunge, RC/funge98 18:11:54 where is an unspecified pathname for the sh utility. 18:11:55 ehird: CCBI, cfunge, RC/Funge-98, Language::Befunge were the ones I was thinking of 18:11:57 What else is compliant? 18:11:58 oh 18:12:02 Language::Befunge is compliant? 18:12:04 And complete? 18:12:12 Last I checked, IIRC, yes 18:12:20 Well, very slow, I presume :P 18:12:33 He's working on speeding it up, haven't tried it in a while 18:12:45 Deewiant, and yes your code is very similiar to push(system(popstring)). I looked a few minutes ago. Think there was a cast too 18:13:00 void execute() { 18:13:00 ip.stack.push(cast(cell)system(popStringz())); 18:13:00 } 18:13:03 that is Deewiant's code 18:13:24 also, my interpreter's goal: 18:13:40 Be completely complian. Support as many fingerprints as possible. As a very distant last goal, be fast enough. 18:13:41 Make a DS9K 18:13:44 *compliant 18:13:58 Deewiant: I will be sure to have a flyDemonsOutOfUsersNose function. 18:14:00 Sounds like CCBI to me, 'fast' just a bit more distant then usual 18:14:02 Deewiant, hm = may *ONLY* reflect if = is unimplemented right? 18:14:03 Argh 18:14:04 s/then/than/ 18:14:08 is efunge complaint yet 18:14:14 AnMaster: I think so, yep 18:14:22 indeed 18:14:24 I doubt it's a complaint 18:14:37 Deewiant: CCBI is 1) not written by me 2) doesn't support all of MKRY's shitprints 3) is not written in Haskell 18:14:53 ais523, well 99.99%. I just found a bug if a file uses CR line endings. Haven't had time to investigate yet. 18:15:01 also, MKRY is MikeRiley's new name; spread the word. 18:15:13 ais523, I found it doing coverage analysis, and I plan to complete that first, collecting a todo list. 18:15:21 brb phone 18:15:21 actually, I'd love to make a befunge-98 DS9K 18:15:34 a befunge-93 DS9K would unfortunately probably not function on any programs at all 18:15:43 Deep Space 9000? 18:15:52 ais523: make a (feral) DS9K fingerprint 18:15:55 ehird: Right, some of 2) is actually by choice and not just due to that DMD bug 18:15:56 that has no instructions 18:15:59 but when you load it 18:16:05 it puts the interpreter into DeathStation 9000 mode 18:16:08 ehird: For 3) we have hsfunge (or we don't, but funktio does) 18:16:12 for hardcore programmers 18:16:16 ehird: so it complies with the standard, but nothing else? 18:16:24 ais523: right! Not even the laws of physics. 18:16:26 unfortunately, it has at least one fingerprint loaded, and thus can legally do anything 18:16:26 That'd be a bit crap actually 18:16:46 Because the spec is so messed up that it probably wouldn't run many programs that well 18:16:52 Deewiant: 2) See? Inferior. 3) It is incomplete, and doesn't reach the other goals, and funktio is dead 18:17:01 also, that would be the point 18:17:13 funktio isn't dead, he said something on #haskell a few days ago 18:17:29 And for 2), well, we have RC/Funge-98 for that 18:17:31 his site is down, he hasn't been in here for ages, and I don't even know how I could get hsfunge 18:17:33 he's pretty dead 18:17:39 and 2) RC/Funge doesn't meet the other goals :P 18:17:44 His site is dead 18:19:08 ehird: And given your original goals, I think it does meet 18:19:24 Deewiant: It fails 1) and 3) of my new goals 18:19:25 17:14 ehird: Deewiant: CCBI is 1) not written by me 2) doesn't support all of MKRY's shitprints 3) is not written in Haskell 18:20:23 Slereah_: DS9K = DeathStation 9000 18:20:47 which is basically something that complies to the letter of a standard, but not its spirit 18:21:03 like Windows for POSIX, for instance, they got everything that legally could return ENOTIMPLEMENTED IIRC 18:21:06 ehird: You didn't explicitly specify those as goals 18:21:14 Deewiant: oh stfu :P 18:22:38 anyway the most important thing in a funge interp is a name; all else follows 18:22:51 maybe i should call it FG98 :-D 18:22:58 -!- jix has quit (Connection timed out). 18:23:10 http://www.haskell.org/pipermail/haskell-cafe/2009-March/057590.html <-- <3 18:23:14 ehird: what will its handprint be? 18:23:26 ais523: FG98 18:23:26 :P 18:23:29 makes sense 18:23:36 what will the handprint for the next version be? 18:23:43 next version? 18:24:00 AnMaster/Deewiant: do you have to change the handprint if you upgrade a Funge interp to a new version? 18:24:11 No 18:24:36 oh, it's variants that have to have different handprints 18:24:54 such as CFUN for cfunge, but CFFI for cfunge + IFFI + C-INTERCAL 18:26:17 -!- kar8nga has quit (Remote closed the connection). 18:26:39 I NEED A BASIC REPL 18:27:10 ehird: BASIC isn't really suited to REPLs 18:27:16 Sure it is 18:27:19 Whyever not? 18:27:24 As long as it automatically numbers lines 18:27:30 because nearly all nontrivial BASIC programs span multiple lines 18:27:34 yes, and? 18:27:40 you mean liek c64 18:28:44 hee I wrote a BASIC program oh that was fun 18:28:47 what is so fun about BASIC? 18:28:49 it's so shitty/ 18:28:58 REPLs? 18:29:08 BASIC was one of the first languages to really catch on amongst the general computer-using public 18:29:09 Sgeo: o_o 18:29:11 !SYNTAX ERROR IN LINE 40, COLUMN 29 18:29:11 UNEXPECTED 1 18:29:13 EXPECTING : OR END OF LINE 18:29:14 it means "replica" 18:29:19 it just puts the parsec error in uppercase 18:29:19 xD 18:29:20 Sgeo: Read, Evaluate, Print, Loop 18:29:34 Sgeo: either me or ais523 is lying, i think 18:29:39 it's a small program that prints the results of expressions in a given language 18:29:49 such as ghci for Haskell, or intercalc for CLC-INTERCAL 18:30:04 Sgeo: it's like 18:30:07 $ python 18:30:08 for python. 18:30:13 * Sgeo wikis 18:30:14 (There, in words you understand. :P) 18:30:14 ty 18:30:18 lol 18:30:20 the interactive prompt 18:30:51 interestingly, with Perl you need to use perl -de 0 to get a repl 18:30:53 not just perl 18:30:59 hmm 18:31:00 question 18:31:04 in BASIC how come 18:31:06 IF X THEN NUMBER 18:31:10 gotos NUMBER 18:31:12 but, e.g. 18:31:15 PRINT "FOO":10 18:31:16 doesn't work 18:31:17 you need 18:31:20 PRINT "FOO":GOTO 10 18:31:28 IF X THEN 10 is an abbreviation 18:31:31 syntax antisugar, if you like 18:31:41 no that's definitely syntactic sugar 18:31:44 it was actually the only form of IF that used to be accepted 18:32:00 it used to be that IF only ever did a goto, you couldn't get it to do anything else 18:32:07 "For example, FORK=1TON appears to set the value of a variable FORK to a weight of 1 ton. In reality it begins a FOR loop with control variable K, ranging in value from 1 to N." 18:32:35 oh, that was important on early computers, removing all the whitespace from a program helped it to fit in memory 18:33:20 10 PRINT "LOOK AROUND YOU"; 18:33:21 20 GOTO 10 18:33:28 LOOK AROUND YOU 18:33:30 LOOK AROUND YOU 18:33:33 LOOK AROUND YOU 18:33:33 NO 18:33:34 it has ; 18:33:35 LOOK AROUND YOU 18:33:36 it all goes on one line 18:33:38 LOOK AROUND YOU 18:33:39 LOOK AROUND YOULOOK AROUND YOULOOK AROUND YOULOOK AROUND YOULOOK AROUND YOULOOK AROUND YOULOOK AROUND YOULOOK AROUND YOULOOK AROUND YOULOOK AROUND YOULOOK AROUND YOULOOK AROUND YOULOOK AROUND YOULOOK AROUND YOULOOK AROUND YOULOOK AROUND YOULOOK AROUND YOULOOK AROUND YOULOOK AROUND YOULOOK AROUND YOU 18:33:44 ; is an anti-newline in BASIC print statements 18:33:52 OHHHHHHHHHHHHHHHHHHHHH 18:33:56 even better, 18:34:01 <3 Look Around You 18:34:04 PRINT "LOOK AROUND YOU"' 18:34:05 although; in the original one, it had no ; 18:34:09 prints LOOK AROUND YOU and then two newlines 18:34:11 different implementations 18:34:22 my implementation is non-standard! 18:34:29 Look, around you. Look around, you. Just, look around you. 18:34:30 LOOK AROUND YOU 18:34:33 INFINITE LOOP DETECTED 18:34:40 single-quote, in many BASIC impls, prints a newline, and otherwise acts like a comma except it doesn't need anything before or after it 18:34:46 LOOK AROUND YOU SORRY IT IS LOOP 18:35:01 oh wait 18:35:04 http://www.youtube.com/watch?v=mdI_MmN-Lp4 18:35:06 it has a space and a ; 18:35:10 10 PRINT "LOOK AROUND YOU "; 18:35:10 20 GOTO 10 18:35:12 back 18:35:12 amended code 18:35:38 AnMaster/Deewiant: do you have to change the handprint if you upgrade a Funge interp to a new version? <-- no, you change version 18:36:05 GregorR: 18:36:06 http://www.youtube.com/watch?v=mdI_MmN-Lp4 18:36:09 Cheskers in Look Around You 18:37:09 ais523, what would be the easiest way to insert a literal form feed in emacs? 18:37:17 Ctrl-V Ctrl-M 18:37:18 No? 18:37:21 AnMaster: ^Q^L 18:37:26 Oh, ^L 18:37:27 ehird, maybe. I forgot the key combo 18:37:27 well, C-q C-l as this is emacs 18:37:30 thanks 18:37:40 ehird: C-v is "scroll down" in emacs 18:37:45 yeah fuck emacs 18:37:45 :P 18:37:51 C-q is "insert next character literally unless it's a digit" 18:38:00 ais523, so which key is form feed then 18:38:04 AnMaster: C-l 18:38:12 You know the problem with VINTAGE BASIC? 18:38:15 No "DRAW" instruction. 18:38:17 ah right 18:38:21 I fucking need DRAW. BASIC is useless without it. 18:38:34 ehird: That's where I got the idea :P 18:38:39 GregorR: Hahaha 18:40:47 "The behavior is different depending on the value passed. If the value is positive, the result will be a new random value between 0 and 1 (including 0 but not 1). If the value is zero, the result will be a repeat of the last random number generated." 18:40:55 Wow, is that to avoid an extra variable? 18:41:11 I'm pretty sure that after a while, they generalised it to add negative arguments 18:41:16 but I forget what they do 18:41:27 and yes, variables used to be in short supply 18:41:37 but not just that, to avoid having to write out the code to save the random number in a variable 18:41:53 original BASIC was highly golfed, by necessity, the programs wouldn't fit in memory otherwise 18:44:43 Yay, i wrote a guessing game. That was so pointless, but I enjoyed it anyway. 18:44:46 10 A=INT(RND(1)*100) 18:44:46 20 INPUT"GUESS THE NUMBER";B 18:44:47 30 IF B=A THEN 60 18:44:49 40 IF B 50 IF B>A THEN 80 18:44:52 60 PRINT"YOU WIN!":END 18:44:55 70 PRINT"TOO SMALL":GOTO 20 18:44:56 80 PRINT"TOO BIG":GOTO 20 18:45:16 ehird: line 30 is redundant 18:45:21 Aha, so it is. 18:45:22 you could delete it and the program would still work 18:45:48 How did kids guess the target line number before they wrote it...? 18:45:59 you can write the lines in any order 18:46:02 and revise them 18:46:07 so you just write GOTO 0 the first time round 18:46:12 and then edit the line later to fix the number 18:46:14 Oh, how boring. 18:46:18 * ais523 used to have a BBC BASIC computer 18:46:47 hmm, I'm sure it can be less than 7 lines 18:46:53 although...nah 18:46:59 well 18:47:14 30 C=1+SGN(A-B) 18:47:19 10 INPUT"GUESS THE NUMBER";B 18:47:19 20 IF B 30 IF B>INT(RND(1)*100) THEN 60 18:47:23 40 PRINT"YOU WIN!":END 18:47:25 50 PRINT"TOO SMALL":GOTO 20 18:47:25 40 CASECON70,60,80 18:47:27 60 PRINT"TOO BIG":GOTO 20 18:47:29 that works, but it pointless 18:47:31 ais523: whaddafu 18:47:37 ehird: same length, unfortunately 18:47:41 -!- Corun has joined. 18:47:44 also, you need RND(0) not RND(1) 18:47:47 oh, right 18:48:06 * ehird rewrites program in haskell to see how far programming has advanced 18:48:11 also remember you're allowed lowercase in string literals 18:48:14 that'll make the output look nicer 18:48:21 SSH 18:48:22 this is the 70s 18:48:27 there is no such thing as lowercase 18:48:40 lowercase hasn't been INVENTED yet 18:48:52 the appendix to the ALGOL-68 standard stated an optional program file format for computers that allowed lowercas 18:48:53 *lowercase 18:48:57 so yes, it had been 18:49:10 although apparently it wasn't in common enough use to assume all computers had it 18:50:05 And then came unicode. 18:50:11 and RUINED EVERYTHING. 18:50:18 anyway, I want my DRAW. 18:50:26 I am ITCHY without DRAW. 18:50:59 READ var1, var2, ... 18:50:59 Reads data from DATA statements into variables. A pointer is maintained into the DATA values, which could be anywhere within the program. Values are read in order into the variables, and the pointer is advanced. A runtime error occurs if there are not enough DATA values to fill the variables. The DATA pointer can be reset using a RESTORE statement. Example: READ A$, B. 18:51:04 wat 18:51:15 ehird: you don't know of READ? 18:51:25 I don't know what the heck it is on about 18:51:35 here's an example 18:51:36 DATA literal1, literal2, ... 18:51:36 Has no effect when executed, but supplies data for the READ statement. Each value can be a string or floating-point literal (not an expression). Whitespace is ignored around values. Double quotes can be placed around a string to escape whitespace and commas between the quotes. DATA statements can occur on the same line as other statements, but, due to its special parsing rules, it must be the last statement on the line. The line on which the DATA stateme 18:51:39 10 READ A 18:51:40 nt occurs can be used as the target of a RESTORE statement. Example: DATA January, 31, "Martian History Month". 18:51:43 whyyyy 18:51:45 20 PRINT A 18:51:47 30 GOTO 10 18:51:53 40 DATA 1,2,3,4,5,6,7,8,9 18:51:54 martian history month!!! 18:52:00 ais523: good lord, why? 18:52:00 that prints all the numbers from 1 to 9, then errors 18:52:11 beautiful... but... WHY 18:52:21 ehird: well, you're hardly going to waste your precious 52 variables by using them to store data, are you? 18:52:29 <33 18:52:42 DATA effectively creates ROM 18:52:47 that you can access via READ and RESTORE 18:52:58 -!- Corun has quit ("This computer has gone to sleep"). 18:53:30 10 RESTORE -10: READ A: PRINT A: GOTO 10 18:53:42 http://drivey.com/DONKEYQB.BAS.html 18:53:48 DONKEY.BAS is the prettiest program ever written. 18:53:53 MizardX: RESTORE takes arguments? Wow, I never knew that 18:54:01 Good luck writing DONKEY.BAS that concisely in modern languages 18:54:11 that QB implies QBasic 18:54:12 is it? 18:54:15 Yes, it's a port 18:54:21 but that presumably doesn't change all that much 18:54:47 -!- Corun has joined. 18:55:07 ehird: that first line, translated to C, would be *(char*)106 = 0 18:55:15 I hate to think what that was designed to do... 18:55:26 eh, you know POKEs 18:55:31 ais523: it'd be putting it into graphical mode 18:55:32 probably 18:55:35 ah, yes 18:55:43 the only thing I ever used POKEs from was to turn caps lock on and off 18:55:55 after a while I wised up and converted the input to uppercase/lowercase in my program instead 18:56:01 with POKE, your days of 52 variables are long gone! 18:56:07 er, and PEEK :P 18:56:12 * lament POKES ehird 18:56:28 :o 18:56:33 "Donkey .NET is a three-dimensional driving simulator game that demonstrates the new features available to Microsoft® Visual Basic® developers." 18:56:35 http://www.microsoft.com/downloads/details.aspx?FamilyID=990d0ec1-23ea-4408-898d-1fd5727a8890&displaylang=en 18:56:41 Donkey .NET is a three-dimensional driving simulator game that demonstrates the new features available to Microsoft® Visual Basic® developers. Written in Visual Basic .NET RTM, this sample uses XML Web services, multithreading, structured exception handling, shaped Windows Forms, and custom-drawn controls. The sample includes the setups for both the game application and an optional XML Web service used with the game. The setups will also install the so 18:56:44 urce code. 18:56:46 NO! Not Visual BASIC! 18:56:59 also, .NET? 18:57:01 Yes. 18:57:05 Blasphemy of the highest degree. 18:57:07 Visual BASIC was invented ages before .NET was 18:57:16 visual basic is now VB.NET 18:57:29 well, yes, the non-.NET versions aren't maintained 18:57:53 * ais523 thinks it's interesting that .NET is the bytecode format with the most widely-used languages targeting it 18:58:04 most byte-compiled langs have their own bytecode 18:58:10 but all the microsoft ones compile to .NET 18:58:32 the microsoft folks endorse Mono semi-officially 18:58:33 which is nice 18:58:40 e.g. silverlight download page on linux, directs you to mono's Moonlight pag 18:58:41 e 18:59:03 Microsoft are currently at the stage of trying to get Silverlight generally accepted 18:59:12 % vintbas /dev/stdin 18:59:12 POKE 0,0 18:59:14 !LINE NUMBERING ERROR IN RAW LINE 1, COLUMN 1 18:59:16 UNEXPECTED "P" 18:59:18 EXPECTING LINE NUMBER OR END OF FILE 18:59:18 making people think it has good Linux support is one way to do that 18:59:20 Useless. 18:59:28 although interestingly, there doesn't seem to be a Mac version, or wasn't last I looked 18:59:39 mono runs on os x 18:59:45 dunno about plugins tho 18:59:45 ah, I didn't know that 19:00:05 hmm 19:00:05 anyway, there are quite a few people who suspect that Mono has Microsoft patents in, and so to legally use it you have to download it from Novell 19:00:16 I wonder if there's a portable QBasic interpreter 19:00:17 no idea whether that one's true or not 19:00:28 ehird: QBasic runs under DOSbox, I suspect 19:00:28 (using a virtual heap, OFC, with traps on things like that 103) 19:00:37 ais523: meh, I guess so 19:00:39 it'd be nicer to have it to hand 19:01:04 and there are so many peeks/pokes to literal addresses in typical programs you'd want a full DOS emulator 19:01:10 Tru 19:01:10 e 19:02:40 http://boxerapp.com/ <-- Wow, someone made DOSBox all mac-like. 19:02:51 Isn't that a bit pointless when the actual DOS inside will be very very DOS? :P 19:03:17 people are allowed to delude themselves 19:03:48 form over function, ALWAYS 19:04:20 the DOS inside DOSBox isn't all that DOS-like, I find 19:04:24 which is strange 19:04:26 Robdgreat: Y'know, it's possible to have both. 19:04:33 some of my old DOS programs don't run in it 19:04:49 it's for games, not for your old dos programs 19:04:54 it's for dune and xcom 19:04:55 lament: Yeah, true. 19:05:08 lament: but my programs were games 19:05:13 admittedly, I wrote them 19:05:18 but it doesn't prevent them being games 19:05:45 ehird: true, but I won't throw a hammer out just because it's not pretty enough 19:05:48 i'm guessing that dosbox is a fairly imperfect emulation 19:05:53 Robdgreat: indeed 19:06:04 and when they want to improve it, they take some popular game they know doesn't run properly, and fix dosbox until the game runs 19:06:14 what about running FreeDOS in a VM? 19:06:21 that ought to work if the VM works properly 19:06:27 and their list of popular games might not actually include any games by ais523 19:06:45 Aww, Boxer comes with ton sof DOS tols but not qbasic. 19:06:47 never mind, I ported that game to Windows ages ago and it runs in WINE 19:07:03 I'll probably port it to Allegro or SDL sometime 19:07:14 then it'll run in Linux too, and probably on a Mac 19:07:21 Huh, it comes with a bunch of games. Aren't they copyrighted...? 19:07:32 not all DOS games are copyright 19:07:40 one of them is Commander Keen 4 19:07:41 and nearly all are abandonware, technically that's illegal but nobody but me seems to care 19:07:53 it's good you care 19:07:54 also, abandonware is legal, it's just that most things aren't abandonware 19:08:16 no, I thought the definition of abandonware was copyrighted stuff which was so old and worthless nobody could be bothered to enforce the copyright 19:09:02 Maybe it's the shareware version of Keen 4? 19:09:32 it looks full 19:09:32 -!- Corun has quit ("Leaving"). 19:09:41 ais523: The sites claim it's games with expired copyright 19:09:49 of which there are none in the US, as far as I know 19:09:56 or, probably, the UK 19:10:14 copyright is stupid anyway, it should expire way earlier 19:10:29 none of this 2 to the power of the age of the author at death + 7 million years 19:10:34 it is possible, I think, for there to be DOS games nowadays where the author died over 25 years ago 19:10:41 hmm, true 19:10:43 how many, though? 19:10:51 not a lot, I suspect, most programmers are quite young 19:10:58 but I suppose they might have died in an accident or something 19:11:14 I suppose 19:11:19 http://en.wikipedia.org/wiki/QBasic#Simple_game 19:11:19 wow 19:11:21 that sucks 19:11:26 that's waaay longer than my version 19:11:36 all theirs does is decease the range and put a cap on the guesses 19:11:37 :P 19:11:42 I think it was rather complete; you just got episodes 5 and 6 when you boughteded it. Although I might remember wrongly. 19:11:52 boughteded 19:12:15 Okay, who has QBASIC.EXE? 19:12:45 I used to have it, but I think it's bit-rotted to death by now 19:12:50 Google has it. 19:13:08 Yes, well, I'm trying to google it, fizzie 19:13:12 I have dos 6.22 installation floppy images I dd'd once, I assume it would be there too. 19:13:18 http://www.winsite.com/bin/Info?4385 has a download link. 19:13:19 http://www.velocityreviews.com/forums/t43803-does-xp-have-coding.html DOES XP HAVE CODING 19:13:29 I have it somewhere 19:13:31 * Robdgreat digs 19:13:38 I believe at least one program has been written on Windows XP 19:13:53 i was enlightened when i managed to understand that the quick basic game with gorillas throwing bananas did not have bits of code for drawing a banada for every single position on the screen 19:13:55 I certainly ported programs from Windows 95 to Windows XP 19:13:55 wut, why does "copy con con" say con not found 19:13:59 *banana 19:14:01 it's con: 19:14:03 lament: haha 19:14:03 which is pretty worrying 19:14:04 fizzie: o 19:14:10 fizzie: that doesn't work either on DOSbox, IIRC 19:14:16 fizzie: no u lie 19:14:18 DOSbox is not a very good implementation of DOS 19:14:18 ILLEGAL PATH 19:14:29 Hey. 19:14:31 it doesn't even say illegal command or file name or murder 19:14:32 ehird: it was originally CON: on the precursor to DOS 19:14:36 it says Illegal command: blah. 19:14:41 zem.fi/~fis/qbasic.exe 19:14:42 DOS changed it to CON.* 19:14:44 including with no extension 19:14:52 because back then, most programs had implied extensions 19:14:57 For some strange reason, qbasic.exe was uncompressed on the first install floppy of dos 6.21. 19:15:12 http://www.winsite.com/bin/Info?4385 <-- this lacks .hlp 19:15:16 I didn't even realise you could get dos 6 except bundled with Windows 19:15:33 Just about all other files are compressed with that funky scheme which makes .foo files into .fo_ files. Only attrib.exe, debug.exe, expand.exe and qbasic.exe are uncompressed. 19:15:36 Deewiant: concerning raw FF, would "ignore it" mean "don't write anything, but go to next cell" or "don't even increment x" 19:16:16 I wonder if you can buy QBASIC from microsofft 19:16:24 or download it for free? 19:16:26 ehird: http://zem.fi/~fis/qbasic.hl_ has the hlp file, but you need expand.exe to uncompress it. :p 19:16:27 *microsoft 19:16:34 ais523: I doubt they would give anything away for free 19:16:48 they gave away limited versions of VC++ for free 19:16:52 well, yesy es 19:16:55 and that's a lot more advanced than QBaisc 19:16:57 *QBasic 19:16:58 Although you can download expand.exe too from http://zem.fi/~fis/expand.exe 19:17:07 There, that should be all to get qbasic.exe and qbasic.hlp out. 19:17:11 * ais523 ends up on microsoft.com far too often 19:17:12 yay 19:17:24 * ehird attempts to configure Boxer to stretch the display WITHOUT antialiasing it badly 19:17:52 "If you need to run QBasic in Windows 2000, you can copy it from a Microsoft Windows NT 4.0-based computer, or you can expand the files from a Windows NT 4.0 CD-ROM." 19:18:00 wow, are microsoft advising people to violate their own licence? 19:18:16 ha 19:19:39 ehird: try http://download.microsoft.com/download/win95upg/tool_s/1.0/w95/en-us/olddos.exe 19:19:56 I haven't looked myself, but allegedly qbasic is in there 19:20:16 # "opengl" will use bilinear filtering when scaling (smoother but 19:20:18 # fuzzier), while "openglnb" will preserve the original appearance 19:20:20 # (which may result in odd stretching at certain resolutions.) 19:20:22 aha 19:20:35 Din't work :( 19:20:59 AnMaster: I'd say don't even increment, since that's how Unefunge works 19:21:44 Deewiant, right 19:22:11 Deewiant, CCBI fails to handle it correctly 19:22:22 Yep, probably 19:25:02 hmm, boxer is actually quite nice 19:26:39 -!- ais523_sandbox has joined. 19:26:45 Hmm. 19:26:51 sorry about that 19:26:52 Where do executables go in DOS, generally? 19:26:54 C:\, right? 19:27:02 ehird: a directory inside c:| 19:27:04 *c:\ 19:27:07 Wherever you want 19:27:08 named after the executable 19:27:13 Deewiant, btw, CCBI never writes at a higher x coordinate than the edge of the initial loaded program 19:27:14 ah 19:27:24 Deewiant, while it does write at a higher y coordinate 19:27:29 AnMaster: write? 19:27:38 Deewiant, p or other way to update 19:27:47 O_o 19:27:48 Deewiant, that would cause bounds to change in y 19:28:09 incidentally, I'm inside the sandbox at the moment to see what olddos.exe does 19:28:16 it seems to have qbasic.exe in 19:28:20 and no licence agreement 19:28:33 So are you saying that '5f0pf0g.@' doesn't work? 19:28:39 Or what? 19:28:45 Deewiant, so if the bounds are defined as {topleft{x,y},bottomright{x,y}} then you never write at x higher than x of bottomright 19:28:47 yay, it works 19:28:59 I now have what is AFAICT a legal copy of QBasic, direct from Microsoft 19:29:14 run olddos.exe in dosbox, rather than wine 19:29:17 AnMaster: So what exactly doesn't work? 19:29:26 Does the above work? 19:29:26 ais523_sandbox: if they're offering it, my downloaded version is legal too 19:29:31 I suppose so 19:29:40 Deewiant, well it works. Just you didn't test that 19:29:41 unless it's a different bit pattern in the version they're offering, or something 19:29:48 anyway, going back out of the sandbox 19:29:53 -!- ais523_sandbox has quit (Client Quit). 19:30:01 AnMaster: So you meant to say 'Mycology' and not 'CCBI' 19:30:09 Deewiant, ah yes 19:30:10 typo 19:30:13 (mental one) 19:30:16 Phew, you had me worried there :-P 19:30:22 "The letters are like right next to each other." 19:30:24 Deewiant, I mean, you test the value from y is correct before/after writing at -1,-1. But not writing outside in the other corner 19:30:37 http://imgur.com/6AYNY.png <- The unparalleled elegance of the Mac OS X user interface. 19:30:40 Yes, that can happen 19:31:08 AnMaster: I've said it before, many times, and I'll say it once more now: combinatorial explosion of testcases means that I don't do everything that could be done 19:31:48 There needs to be a way of copying text from DOS to outsid 19:31:49 e 19:31:51 :P 19:32:18 Deewiant, internally cfunge doesn't store it as x,y,w,h, but x1,y1,x2,y2. It translates it for sysinfo. I mean it is an easy typo to write: if (x < minx) minx = x; else if (x > maxx) minx = x; 19:32:20 or such 19:32:24 Works right in DOSemu on Linux. ;) 19:32:29 Apologies for the crudeness, but I just misread Deewiant's comment as "combinatorial explosion of testicles". That sounded painful. 19:32:34 -!- ais523 has quit (Remote closed the connection). 19:32:41 pikhq: You can copy and paste text from QBasic to elsewhere? 19:32:48 Impressive; howd oes it work? 19:33:06 How anything in X11 works: select and middle-click. 19:33:22 Yes, but DOS isn't that simple. 19:33:23 AnMaster: Yes, so I should test all 32 cases for p as well as i as well as for the various p-like instructions in fingerprints, right? 19:33:34 I mean how does it work internally. 19:33:34 32 cases for p? 19:33:37 In a text video-mode, you can just read the screen buffer. 19:33:50 Ah. Yeah, it just reads the screen buffer... 19:33:55 It's interleaved [character, attributes, character, attributes, ...] list of bytes. 19:33:58 Does QBasic run in text video mode? I'm not sure. 19:34:03 Deewiant, what do you mean 32 cases of p? 19:34:04 Yes, it does. 19:34:05 -!- ais523 has joined. 19:34:07 OK. 19:34:10 wb ais523 19:34:12 aargh 19:34:15 eh? 19:34:19 it seems there's something wrong with the user switcher atm 19:34:21 I had to restart X 19:34:38 AnMaster: Exaggeration; there are 9 cases 19:35:12 Just a matter of reading from (short *)0xB8000... 19:35:14 Deewiant, you mean, in bounds, and various out of bounds ways? 19:35:19 or what? 19:35:22 Yep. 19:36:09 Deewiant, well -1,-1 is much easier to get wrong indeed 19:36:25 All that tests is that negative funge-space works 19:36:35 I assume that people can get /positive/ funge-space to work... 19:36:44 ITYM "reading from b800:0000"; this is, after all, about DOS, so a segmented form of addressing is more appropriately crazy. 19:37:10 Hmm, I wonder if you can get QBasic to "print" out its manual. To a PDF. 19:37:36 DOS addresses are so weird 19:37:45 Deewiant, just doing code coverage analysis is interesting. With mycology + custom test cases I aim to manage 100% coverage* in the core of cfunge. Fingerprints too in the long run, but core first. 19:37:47 also, can you actuallty type b800:0000 in a DOS C file? 19:37:59 it's 0xb8000000 19:38:05 Right, right; definitely b800. 19:38:11 although you generally have to cast it to a long pointer 19:38:15 ehird: No, that's the assembly notation. 19:38:23 (char far*)0xb8000000 19:38:25 Ah. 19:38:31 * 100% as defined by gcov and excluding any "fputs("The impossible happened. Internal error.\n", stderr); abort();" 19:38:37 far isn't part of standard C, but is defined in any good DOS header file 19:38:41 it works much the same way as const 19:38:42 (char huge*)0xb800000 19:38:52 ais523: More useful to be (short far*)0xb8000000, I'm pretty sure. 19:39:01 pikhq: short's only 16 bits 19:39:15 Yeah. 19:39:25 Hm. What was the point of special "far pointers"? 19:39:31 (void huge*) is somewhat amusing IMO 19:39:34 It's also funny that in a that sort of system, 0xb8000010 and 0xb8010000 point to the same place but aren't the same pointer. 19:39:37 And why are they not used any longer in modern code. 19:39:52 AnMaster: http://en.wikipedia.org/wiki/Far_pointer 19:39:59 AnMaster: A far pointer was a pointer outside of your current segment. 19:40:12 ah right. Flat address space :) 19:40:14 AnMaster: because having two lengths of pointers was common in DOS 19:40:14 They're not used because nobody, and I mean *nobody* uses segmented addresses. 19:40:29 even with segmented addresses, they wouldn't be used nowadays because computers have lots of memory 19:40:35 and so making all pointers far would work fine 19:41:22 what about speed? I guess you could fit more non-far pointers in cache than far pointers? 19:41:34 It'd be very slightly inefficient making all pointers far. 19:41:50 You'd end up writing to cs every time you did a jump. ;) 19:41:55 how large are far/non-far pointers on x86? 19:42:11 AnMaster: far is 32 bits, near is 16 bits 19:42:14 Depends on your current execution mode. 19:42:20 in real mode, at least 19:42:35 which used to be the only one available, but nothing but bootloaders use it nowadays 19:42:59 hm. 19:43:02 Erm, how do you terminate a QBASIC program? 19:43:11 For protected 32-bit mode, double that... 19:43:24 ehird: Ctrl+Break 19:43:27 And for long mode, near is 64 bits and far doesn't exist. 19:43:36 Where is break on the keyboard again? So I know what it's mapped to :P 19:43:37 ehird: run off the end of the program 19:43:41 ais523: no, while it's running 19:43:42 Pause 19:43:43 oh, break's normally control-pause 19:43:51 ... and pause is where? :P 19:43:56 I pressed F16 and that paused the program 19:43:58 right of scroll lock :) 19:44:03 near scroll-lock and sysrq, normally 19:44:06 ... F16?!? 19:44:06 You guys hate me. :) 19:44:13 pikhq: Apple keyboard. 19:44:14 pikhq, well amd64 has several addressing modes in fact. 19:44:20 though not near/far 19:44:26 AnMaster: Segmented is not one of them. 19:44:30 AnMaster: there was huge as well as near and far 19:44:33 pikhq: See http://www.purelygadgets.co.uk/images/user/products/Apple-keyboard.jpg 19:44:33 Wouldn't protected-mode far pointers (not that I've seen any) be 48-bit instead of 64-bit? I mean, there's the 16-bit selector and 32-bit address. 19:44:36 huge is like far, but wraps properly 19:44:45 fizzie: 32-bit selector. 19:44:52 e.g. with huge pointers, 0x3000ffff + 1 is 0x40000000 19:45:10 ehird: No Num Lock? 19:45:11 Are you sure the selector has 32 bits? I mean, physically speaking. I'm sure it could have in a pointer. 19:45:18 Deewiant: None. The numpad always numbers. 19:45:26 Number is a verb, naturally. 19:45:27 The selector is a pointer to the start of the segment. 19:45:32 pikhq, true. But then there are other things: RIP relative addressing, code model (small, medium, large and kernel) 19:45:40 and various other things 19:45:57 which IMO are about as strange. 19:46:14 AnMaster: Yeah, long mode is a bit strange. 19:46:20 Erm, halp. 19:46:24 ehird: looking at that keyboard, I'd say F16 is the pause/break key 19:46:29 Right, f16 pauses 19:46:32 as it's three keys to the right of f12 19:46:34 pikhq, RIP relative *does* make sense though. Makes PIC code more efficient IIRC. 19:46:35 But what is F13? 19:46:36 what does control-f16 do? 19:46:36 aha 19:46:38 cmd-f16 pauses 19:46:42 *f13 19:46:45 Deewiant: It beeps. In my experience. 19:46:47 and control not cmd 19:46:51 ehird: How useful. 19:46:53 http://en.wikipedia.org/wiki/File:Sgapage.jpg 19:46:55 F13 does nothing in boxr 19:46:57 *boxer 19:47:10 what is more interesting is that AMD64 actually has a 48 bit address space. Sign extended. 19:47:21 Okay, I froze it. 19:47:26 Now the program thing says "QBASIC PAUSE". 19:47:28 with kernel living in the upper half, and user space in the lower. 19:47:37 pressing any key other than pause normally restarts it 19:47:37 so 48 bits, sign extended to 64 bits 19:47:44 bbl 19:47:47 Not this time, ais523, I think DOSBox is paused 19:47:53 ah, ok 19:47:54 AnMaster: That's on current implementations. 19:48:25 * ehird reboots 19:49:38 Strings can't be longer than 32767 chars. 19:49:56 Arrays cannot be longer than 64KB 19:50:06 Also, only 60 dimensions 19:50:14 I think even VB6 kept some of those restrictions 19:50:14 Oh, and you can't address 64KB< only 32767 19:50:40 Max path size 127 chars 19:52:20 Those aren't such terrible limits. In C99 you can only count on having 65535 bytes in an object, for example. Or 4095 characters in a string literal. 19:52:21 So, arrays can only be one segment, strings have a signed size_t, and the max path size is, as in DOS, 8-bit signed. 19:52:42 And 15 nesting levels of #include files, that's reasonably low too. 19:52:59 Not to mention the "127 arguments in a function call", that's a limit I hit all the time! 19:53:19 Thus, almost all of the limits of Qbasic are because it's a freaking 16-bit language. 19:53:46 (though why the size_t equivalent is *signed* is beyond me) 19:53:58 For cyclexa 19:54:12 Ah, right. 19:54:25 Real mode = screwy. 19:54:39 ehird: why did you just mention cyclexa? 19:54:43 Dim x(-10 to 10) as Integer 19:54:46 ais523: 19:54:47 18:53 pikhq: (though why the size_t equivalent is *signed* is beyond me) 19:54:48 that seems quite a non-sequitur 19:54:53 neg strings 19:55:00 Besides, if I'm reading this right, C99 might only allow 12-dimensional arrays; "12 pointer, array, and function declarators (in any combinations) modifying an arithmetic -- type in a declaration". 19:55:12 holy shit, accessing the variable INKEY$ actually gives a prompt 19:55:13 that's fucked 19:55:38 seriously, yes 19:55:52 well, not a prompt 19:55:57 but it puts it into hello i am listening to you mode 19:55:58 The C99 limits list has a nice introduction: "The implementation shall be able to translate at least one program that contains at least one instance of every one of the following limits:" 19:56:03 That's one ugly program. 19:56:36 fizzie: I'm pretty sure those C99 limits are the minimums an implementation must support. 19:57:02 I suspect that most C implementations are limited by what the architecture they're on will allow. 19:57:25 Sure, but it's still an ugly program that contains one instance of all the limits. 19:57:45 It will have 63 levels of conditional inclusion, blocks nested 127 levels deep, 1023 members in a structure and so on. 4095-character lines. 127 arguments in one macro invocation. 19:57:54 I wonder if someone's written one for compliance testing. 19:57:55 That's fugly. 19:58:31 Hmm. Does it specify anything for Unicode literals? 19:58:40 fizzie: someone must have done, surely 19:58:50 there's probably a 127-argument macro in boost somewhere, come to think of it 19:59:35 AnMaster: That's on current implementations. <-- yes 19:59:45 10PRINTINKEY$:GOTO10 19:59:57 Aw, you need a space. 19:59:58 PRINT INKEY$ 20:00:15 pikhq, mine even says: "address sizes : 40 bits physical, 48 bits virtual". Not sure what that means. 20:00:19 Oh well, 10 PRINT INKEY$: GOTO 10 20:00:22 from /proc/cpuinfo 20:00:26 Hm, that hangs. 20:00:33 Oh of course. 20:00:35 Make that INKEY$; 20:00:40 Now how do I terminate... 20:00:50 AnMaster: nowadays pointers used in applications nearly never correspond to the actual memory address in the RAM 20:00:51 pikhq, a server I sshed to has: "address sizes : 48 bits physical, 48 bits virtual" though 20:00:53 AnMaster: Allows for up to 40 bits worth of physical RAM, and 48 bits worth of stuff mmapped. 20:00:59 ais523, of course. 20:01:07 ais523, I know what paged memory is... 20:01:08 ais523: That's because of paging, of course. 20:01:19 AnMaster: so the pointer width of the RAM and the pointer width in executables need not be the same 20:01:32 Agh. 20:01:35 Must figure out how to terminate. 20:01:36 ais523: Except that the architecture itself demands it. ;) 20:01:54 pikhq: well, the architecture demands 64 bits 20:02:04 but the RAM is incapable of paying attention to all 64 bits 20:02:08 ais523, well duh. And then there is 32-bit mode under 64-bit too. 20:02:12 Oo, this Xeon box says: address sizes : 36 bits physical, 48 bits virtual -- tiny tiny 36-bit thing. 20:02:14 generally speaking, it'll pay attention to the top 1 bit, and the bottom n 20:02:15 which is yet another thing 20:03:08 fizzie: Early Intel Xeons are the only ones restricted like that. 20:03:15 -!- oklofok has quit (Read error: 110 (Connection timed out)). 20:04:19 hm My mobo only supports 8 GB RAM though according to the manual. So I guess the "40 bits" is in the CPU, since the mobo limit is even lower. 20:04:25 Greh, I can't get this to terminate. 20:04:37 Btw, 8 GB ram on this would require 2 x 4 GB RAM sticks 20:04:42 since there are only two slots 20:04:42 Agh, DOSBox paused. 20:04:45 How do I undo that.. 20:04:46 That's a function of the system bus, I'm pretty sure. 20:05:02 And/or the memory bus. 20:06:46 Geee. 20:06:47 er. 20:06:48 Grrrrr. 20:11:35 You know, the news has become hard to tell apart from satire... 20:11:48 " 'This example requires a color graphics adapter. " 20:11:51 Duuuude, I can't afford that. 20:11:52 :( 20:12:13 Recently, a court ruled that the statement in a libel case being *true* is not a defense. 20:12:21 hahahaa 20:12:30 USA, I assum 20:12:30 e 20:12:34 Yeah. 20:12:42 What other country would be *that* insane? 20:12:43 pikhq: lol? 20:12:50 what's a valid defense then? 20:13:01 The statement not being malicious. 20:13:04 That's *it*. 20:13:11 ehird: it's hard to find a CGA graphics card nowadays... 20:13:17 I wonder if modern cards can emulate it? 20:13:34 Whoa. I just drew a fuckin' CGA triangle. 20:13:36 Hardcore shit. 20:14:02 drawing filled triangles was actually hardware-accelerated on the BBC Basic 20:14:09 SCREEN 1 20:14:15 ais523: VGA is a superset of CGA. 20:14:17 DRAW "C2F60L120E60BD30P1,2C3" 20:14:20 FUCK YEAH 20:14:24 ais523: How many million triangles it could fill in a second? 20:14:34 fizzie: probably about 0.00001 20:14:45 just because it was accelerated didn't mean it was fast 20:14:48 hmm 20:14:53 you could see the triangle fill if you watched really closely 20:14:56 so, if you made most of your graphics as compositions of triangles 20:15:01 your game would be faster? :D 20:15:03 but it was a lot faster than doing it any other way 20:15:15 ehird: yep, traditionally quadrilaterals were filled by filling two triangles 20:15:41 That's surprisingly modern, given that triangles is what they draw nowadays too. 20:16:15 Today on synchronicity, a friend just told me he's watching look around you because apparently it's good. 20:16:38 Now more QBasic. 20:17:02 Omg. 20:17:05 Look up the command "WAIT". 20:17:06 It's select()! 20:17:50 what does QBasic get its multiple input sources from? 20:17:54 Ports 20:19:28 If you don't use the HGA monochrome modes, you can use the 0xb0000-0xb7fff address range (in-between VGA's 0xa0000-0xaffff and the cga-compatible/color text mode 0xb8000-0xbffff) to other uses; for example with emm386.exe specifier like I=B000-B7FF. 20:19:58 PLAY "L64ABCDEFGFEDCBA" ;BLEEPYEAOW 20:20:02 err 20:20:04 PLAY "L64ABCDEFGFEDCBA" 'BLEEPYEAOW 20:21:38 Huh, ? expands to PRINT> 20:25:07 I do have the quickbasic 4.5 compiler somewhere too, but that's not a legal thing to share. I'm pretty sure I don't even have it legalley. 20:25:45 a song: 20:25:48 N = 64 20:26:02 DO: PLAY "L"+STR$(N)+"ABCDEFGFEDCBA": N=N-1: LOOP WHILE INKEY$="" 20:28:53 What the fuck 20:28:57 you can get qbasic to CHECK TYPES 20:31:03 I am playing DONKEY.BAS. 20:31:07 I like the sfx. 20:32:29 I just received an email. There's a single part made out of ascii text, but it was sent with Content-Type "application/x-" so my mail client was a bit confused about it. 20:32:48 Huh, ais523? 20:32:58 It works if you comment out the DEF SEG : POKE 106,0 line 20:33:23 fizzie: that's a great content-type 20:35:08 * ehird cheats DONKEY.BAS 20:35:14 by making the donkey always go in the second lane 20:35:20 also, I think this actually checked collisions by if the pixels hit 20:35:23 instead of keeping track... 20:36:09 -!- comex has changed nick to judicaster. 20:36:30 It's funny how the qbasic help file has code examples with inline asm: http://zem.fi/~fis/code.txt 20:36:47 Hey, you have a text copy? Gimme, I can't stand this interactive one :P 20:36:49 also, that's awesome 20:36:53 so, so awesome 20:37:05 fizzie: I thought it was inline machine code 20:37:15 Okay, the inline asm is just a comment. 20:38:55 * ehird invents DONKEY.BAS variant: 20:38:58 Invisible Donkey.BAS 20:39:00 The donkeys are invisible. 20:39:12 And, well, I decoded the hlp file with HELPMAKE, but the end result still has quite a lot of markup left: http://zem.fi/~fis/qh3.txt 20:39:31 That one was converted through iconv -f cp437 -t utf-8, so the line-drawing characters are partially correct. 20:39:42 fizzie: It's not the F1 so it works for me! 20:41:00 How to have INVISIBLE DONKEY.BAS: 20:41:04 Comment out line 81 20:41:08 All links seem to be formatted with ^Qfoo^P, and then there are .commands and :commands on a few lines, but other than that it's quite plaintext. The non-plaintext decoding output was all: \i^Q\a\pContents\v@L8002\v\i^P\p \i^Q\a\pIndex\v@L80b6\v\i^P\p \i^Q\a\pBack\v!B\v\i^P\p 20:42:06 On the other hand, in that format you could then search for "context @L80b6" to find the linked-to thing. It's a tradeoff. 20:42:34 Maybe I should write a Perl script to convert that to HTML. 20:42:44 That would be fairly easy 20:42:49 If you don't do it i will :P 20:42:50 It doesn't seem to be an especially difficult format after that helpmake. 20:43:28 Maybe I'll do it. 20:44:41 But you might have to wait some hours; I'm the slow. 20:46:41 -!- kar8nga has joined. 20:49:56 Hmm, you can't SLEEP for less than a second without PLAY, I think. 20:49:56 brb-> 20:50:08 Oh, TIMER 20:52:55 ehird: you can do it by polling timer in a loop, I always used to 20:52:57 but that's a busywait 20:53:05 -!- jix_ has quit ("..."). 20:53:10 also, note that a SLEEP ends if someone presses any key, including shift or control 20:59:32 any smart guys here knows anything about A* and UCS? 20:59:47 Judofyr: A* as in the search algorithm? 20:59:51 yep 21:00:10 I've used it before, sort of 21:00:13 but am not an expert on it 21:00:18 I've even coded it 21:00:19 and I don't know of UCS 21:00:21 Though poorly 21:00:32 UCS is the Universal Character Set 21:00:59 oh, as in UCS-2 21:01:05 Uniform-cost search :-) 21:01:09 D'oh 21:01:18 I guess it's a stupid question, but will A* and UCS always return the same shortest path? 21:01:38 (when you trace the route back again) 21:01:40 Probably not 21:02:12 If there's more than one shortest path, the chosen one depends on the heuristic you use 21:02:43 -!- ais523 has changed nick to CallForJudgement. 21:02:52 but if there's only one, both of them will find it? 21:02:59 but A* will probably find it faster? 21:03:01 Sure 21:03:06 Well, depends on your heuristic again :-P 21:03:11 yeah 21:03:17 I've just followed a crappy assignment one of my friend got 21:03:56 so I'm not very steady on this :P 21:04:13 but it's quite fun 21:04:18 doing it in Scheme :O 21:21:40 ehird: I did at least most of the conversion: http://zem.fi/~fis/qb.html 21:22:03 Hm, there's an unterminated somewhere, I think. 21:22:09 Don't look at it yet. :p 21:24:07 http://www.haskell.org/pipermail/haskell-cafe/2009-March/057590.html 21:24:19 This is my first public release of open source software. I have been working on this project since 2003. 21:24:25 " 21:24:36 Yes. It's because the source file interleaves things. A pure translation would look like foobarbaz. It's horrid. 21:24:59 % wc -l `find` 2>&1 | grep total 21:25:01 4496 total 21:25:05 since 2003? really? 21:27:50 * Sgeo imagines it might have been on and off, like PSOX but worse 21:28:16 * Sgeo likes randomly mentioning PSOX. 21:32:08 hi Judofyr 21:32:09 err 21:32:11 judicaster: 21:32:13 you new? :) 21:32:22 hi ehird :-) 21:32:26 :) 21:32:33 how's it going? 21:32:46 ehird: are you new here? 21:33:03 20:04 Judofyr: doing it in Scheme :O <-- nice 21:33:07 CallForJudgement: erm, no :P 21:33:17 CallForJudgement: are you new here? 21:33:35 fizzie: that thing doesn't link function names etc :( 21:33:38 Judofyr: I'm older than judicaster, anyway 21:33:38 Judofyr: are you new here? 21:33:49 oh, judicaster is comex. 21:33:52 I've actually bough SICP and The Little Schemer :D 21:33:57 also, I haven't seen estoppel around here recently 21:33:58 the little schemer is great 21:34:19 judicaster: just idling for some months... 21:36:10 ehird: I told you not to look, didn't I. 21:36:17 fizzie: sry :< 21:36:21 so anyway, Hoefler Text is awesome, did I mention that? 21:36:59 also 21:37:03 wtf on a pogo stick 21:37:05 mactex 21:37:06 is 21:37:07 1.2GB 21:37:11 and that's ZIPPED 21:37:15 the zipped installer 21:37:28 I DON'T KNOW IF YOU NOTICED BUT I DO NOT THINK THAT REQUIRES 1.2GB 21:38:00 What the fuck? 21:38:16 Okay, now the "unterminated " problem is fixed in that qb.html. 21:38:23 pikhq: Yeah, totally 21:38:42 What else did you want? Does the original thing hyperlink function names, or was there just "look up function name under cursor" thing? 21:38:49 For some inexplicable reason, MacTeX includes a number of GUI applications in addition to TeX Live. 21:38:54 And Ghostscript... 21:39:07 fizzie: It was just the latter, but grepping for functions/commands and linking each occurance can't be hard 21:39:08 Deewiant, there? 21:39:19 pikhq: But 1.2GB? 21:39:21 If I can find a sensible table of the names in there. 21:39:26 My grandmother isn't 1.2GB. 21:39:27 Er. 21:39:43 ... Didn't OS X include Ghostscript as part of its CUPS implementation, anyways? 21:39:48 AnMaster: aye 21:39:48 fizzie:

FOO Statement/Function

21:39:49 Deewiant, one thing you actually may want to test is UDP (SOCK_DGRAM) in SOCK. It seems like something that would actually be fairly important. 21:40:03 also FOO, BAR Statements/Functions 21:40:03 Not really IMO. 21:40:14 then just link all UPPER CASE OCCURENCES 21:40:18 I mean, unless you're writing your own stack, there's not much to deal with. 21:40:25 Since it's all just frontends to other functions basically 21:40:43 Deewiant, well it works differently than TCP. For example accept() doesn't make sense. And so on. 21:40:45 Yes, I'll do something like that. Except that I have to do two passes then, now it's output-as-it-comes-in. 21:41:07 Just make two scripts 21:41:07 :P 21:41:10 AnMaster: But is there any code overhead in dealing with UDP specially? 21:41:28 I mean, there might be, I don't know jack about network programming 21:42:32 Deewiant, a bit iirc, but since SOCK is defined to support it... I see I treat it specially in S but don't see any other special casing for it. 21:43:17 My point is that unless it requires special code paths in the implementation it's probably not worth testing, especially since SOCK has a billion options to look for 21:43:28 AnMaster: Hell, I even say at the beginning of SOCK that I'm only testing one thing... 21:44:02 Deewiant, heh 21:44:09 It's not so completely trivial, there's things like "RANDOMIZE Statement, RND Function". On the other hand, the function index has better-looking links. 21:44:47 I'm not going to distinguish between "KEY (Assignment) Statement" and "KEY (Event Trapping) Statement", though. 21:44:52 Guys, do you want to be in: 21:45:07 Anivers, Diavlo, Fertigo Pro, Fontin, Fontin Sans, Tallys, or Hoefler Text 21:45:10 (In my IRC client.) 21:45:18 Deewiant, I just looked at my STRN. Wonder why G checks the funge space bounds rect.... 21:45:18 Pick one and only one. :P 21:46:17 AnMaster: because otherwise it can infinite loop 21:46:27 Hi, you're all in Fontin Sans 14pt. 21:46:38 Azstal, I don't see any wrapping code there though... *looks again* 21:47:15 oh wait right. if the entire line is all spaces 21:47:39 http://imgur.com/6CED2.png 21:48:15 I think it's actually valid behaviour to infinitely loop in that case, but mycology kind of depends on it not doing that. 21:48:22 Azstal, it could still happen. just write something to xmax,ymax, and to xmin,ymin. So bounds are entire funge space. 21:48:40 Azstal, well report it as a mycology bug to Deewiant 21:49:03 Via email! 21:49:06 I know, I know, it's on my todo list to remove it 21:49:10 (Deewiant: DON'T LISTEN) 21:49:19 (WE ARE DISCUSSING PRIVATE MATTERS) 21:49:19 It's one of those mycology_opinionated.b98 things 21:49:40 ehird, why do you have a bar code in the scrollbar... 21:49:52 AnMaster: Times when I have been highlighted. 21:49:58 ah 21:50:05 nice feature 21:50:27 ehird: nice. could you send me the theme? 21:50:35 Judofyr: http://julianstahnke.com/read/a_theme_for_limechat_colloquial/ 21:50:37 Tada :-) 21:50:56 Hmm, :-) doesn't look too hot in Fontin Sans. 21:51:22 Judofyr: (BTW, I removed the bottom log by resizing it small ;)) 21:51:33 Why to not use variable width on IRC: /msg nickserv help 21:51:43 ehird: yeah, but you are just in #esoteric :P 21:51:44 see the nice aligned table? 21:51:51 Judofyr: tru :P 21:51:53 if yes: congrats on using monospace 21:51:55 ehird, ^ 21:52:03 AnMaster: Yes, because I bring up that help screen daily and its nice alignment is vital—above everything else. 21:52:13 brb 21:52:14 -!- Judofyr has quit ("raise Hand, 'wave'"). 21:52:16 Despite being readable even when not aligned. 21:52:28 -!- Judofyr has joined. 21:52:48 AnMaster: http://imgur.com/6CGOE.png 21:52:50 Looks fine to me. 21:53:32 wow, OS X has wikipedia built in 21:53:41 ehird, it looks way better aligned: http://paste.lisp.org/display/76982 21:53:42 I'm not exaggerating in any way at all 21:53:49 AnMaster: I don't really care... 21:53:55 k 21:54:05 (Open Dictionary, click "Wikipedia", enter search term. Voila.) 21:54:08 It even handles the infoboxes 21:54:18 ... and user pages 21:56:31 ehird: Now it generates hyperlinks. It's still not perfect (FOR...NEXT and things like that is not handled) but it's closer, anyway. 21:56:38 Woo! 21:57:00 erm 21:57:00 fizzie: 21:57:02 it's repeated 21:57:04 first without monospace 21:57:05 then with 21:57:19 I don't see that. 21:57:29 21:57:29

Type more than 65535 bytes

21:57:31

21:57:33 A user-defined data type cannot exceed 64K. 21:57:35

21:57:37 21:57:39 21:57:41 qbasic help 21:57:43 21:57:53 I do. 21:58:13 Hmm. 21:58:14 Oh. 21:58:17 Right, whoops. 21:58:39 There, now it's better. 21:58:56 I had my extra-linkifying loop print it out instead of modifying the @array, so there were two copies. 21:59:01 Programming task Keywords included in this list 21:59:01 ═════════════════════════════════ ═══════════════════════════════════════ 21:59:05 is that space a bug? 21:59:13 BASICA Statement QBasic Equivalent 21:59:13 ══════════════════ ═══════════════════════════════ 21:59:16 ah 21:59:18 just misaligned 21:59:22 maybe you should replace ═ with = 21:59:26 and ─ with - 21:59:40 Deewiant, possible mycology bug in TIME: It doesn't seem to check day of year with anything but local time. That could differ between local and utc output. 21:59:44 BTW, GET and PUT aren't linked fizzie 21:59:57 Also I may be reading the branch profiling info wrong. But this *does* seem to be the case. 22:00:16 Er, it aligns just fine, otherwise that QBasic Equivalent "underline" wouldn't start at the right spot. 22:00:24 AnMaster: Not really a bug. 22:00:31 I mean, it doesn't check it in any case. 22:00:33 fizzie: It does not for me. 22:00:34 It just outputs it. 22:00:49 Oh. Well, then your "monospace" font isn't very monospace. 22:00:57 No unicode monospace font is. 22:00:58 It aligns just fine in your IRC-paste too. :p 22:01:02 I know this because I wanted one once. 22:01:12 Deewiant, well right. But the output will be wrong when UTC and local time are on different dates 22:01:16 TBH, 22:01:38 Anyway, GET and PUT aren't linked because they're in the index twice, "GET (File I/O) Statement" and "GET (Graphics) Statement" and I can't know which one to link. 22:01:39 AnMaster: true true 22:01:57 fizzie: you could output a disambig 22:02:03 i.e., you click it and get to a "DID YOU MEAN..." 22:02:09 Yes, right, sure. 22:02:11 You can do that. :p 22:02:20 Sure, gimme the source code & source file :P 22:02:23 ehird: meh, I prefer the "Spring Night" theme... 22:02:49 Judofyr: but black windows are ugly in OS X (due to window borders) :P 22:03:00 ehird: http://zem.fi/~fis/convert.pl and source.txt. Going away for a while, have fun with it. 22:03:04 Yay. 22:03:10 Bye 22:03:59 my Adium is black too... 22:05:13 Hmm, is there any particular reason why ELF files have read-only data sections? Why not have constants where the executable code is? 22:06:02 Or, I guess executable formats in general 22:06:34 Not every architecture can really comfortably address that place, that might be one reason. The possibility for making data non-executable might be other. 22:06:45 grr 22:06:48 how do you tell perl a file is in utf-8? 22:06:51 source file 22:07:03 It just seems like it'd be a filesize optimization to leave out the extra headers 22:07:04 "use utf8;" or something like that. 22:07:31 I wouldn't use it if I could figure out the codepoint of these chars :P 22:07:39 I mean, I guess the compiler should be reasonably sure that the code it generated won't accidentally jump into the data parts :-P 22:08:09 Deewiant: You could just instruct your compiler to put all the constants in the .text section. 22:08:39 I mean, you don't actually have to have more than one section in an ELF file, I guess. 22:08:44 # transform links... we shunt commands outside links for maximum sillitude... 22:08:46 an impressive comment 22:09:00 fizzie: Which is why I'm wondering why compilers make multiple sections at all 22:09:31 Deewiant: Because architectures have more than one kind of memory, and/or they want to set access flags separately for different stuff. 22:10:20 fizzie: And my point is, the compiler knows the architecture, so it should know in the case of x86 that it doesn't matter, and it knows the code it generated so it can ignore access flags 22:10:21 I mean, take some Harvard architecture machine, it has completely separate code and data memories. 22:10:34 Well, *that* might be just historical inertia. 22:10:42 But if you're compiling an x86 binary it won't run on a Harvard architecture machine. :-P 22:11:12 One thing that came to mind is that due to linkers and no full-program analysis, I guess it actually doesn't know for sure what code is in the final program 22:11:23 If you're compiling C, you can't really be sure you won't jump into your read-only data at some point, and it might therefore be prudent to keep it non-executable. 22:11:24 /NOHI] [[/RUN] sou 22:11:25 Which is why it sets the sections to non-executable for safety 22:11:26 * ehird tries to fix 22:12:03 it's certainly possible to compile C into Harvard architecture machines 22:12:12 gcc-bf's Harvard architecture, for instance 22:12:24 Yes, I don't think anyone was questioning that. 22:13:26 hmm 22:13:30 how do you say not in perl regexps? 22:13:32 (?!foo)? 22:13:58 That's a negative look-ahead thing, yes. 22:14:16 ehird: let me find an example, you can do it Prolog-style 22:14:18 Doesn't seem to work, unfortunately 22:14:26 $line =~ s/\b(?!\/)([A-Z\$]+)/extralink($1)/ge 22:14:26 unless $line =~ / I mean, you don't actually have to have more than one section in an ELF file, I guess. <-- Hm I think you will need more than one in fact.. 22:14:38 (*COMMIT)(*F)| at the end of the regex works 22:14:48 yes 22:14:49 it's like the prolog definition of not, almost exactly 22:14:51 I'm basically trying to say "that, but not with a / in front" 22:14:52 fizzie, at least 2 22:15:03 since first section must be a NULL one 22:15:03 ehird: oh, that's negative look/behind/ you need 22:15:10 according to spec 22:15:11 well, it's "not" to me :P 22:15:13 "not a /" 22:15:19 I guess NULL and .text might work 22:15:26 ehird: there's more than one sort of not in a regex 22:15:32 [^/]foo almost works 22:15:42 that's "foo preceded by a character that is not a /" 22:15:55 but that doesn't allow for a foo at the beginning of the string 22:16:16 not sure though 22:16:23 ^[^/]?foo 22:16:26 Should work alright? 22:16:38 hm, yes 22:16:42 wait, no 22:16:44 that allows for / 22:16:47 I think 22:16:48 hm, nope 22:16:57 Well. 22:16:59 That breaks things. 22:17:00 AnMaster: Are you sure? The canonical http://www.muppetlabs.com/~breadbox/software/tiny/teensy.html has 1 in the shnum field. 22:17:02 So I guess no, 22:17:19 fizzie: that isn't a valid ELF file 22:17:22 it relies on linux's handling 22:17:23 as they said 22:17:44 fizzie, I'm pretty sure. I remember reading some mail about it on the gnu binutils mailing list. 22:19:04 fizzie, anyway without separate data section you need to allocate any read-write vars on stack or heap 22:19:22 Yes, I think Deewiant was just complaining about .rodata. 22:19:32 So what's that null section about, then? I mean, it's not anything objdump shows, no? 22:20:30 Apparently not, but readelf lists it. Anyway, why is it there? 22:21:40 anyway .rodata is useful for NX 22:22:03 AnMaster: I question how that is 'useful' 22:22:03 fizzie, as for why: all I remember was that specs required it 22:22:23 Deewiant, um? You suggest NX is useless? 22:22:27 ehird: Oh, and (fixed-width-only) negative lookbehind is (? yay 22:22:42 Deewiant, is that what you are saying? 22:22:51 AnMaster: I think so, yes 22:23:01 Deewiant, why do you think NX is useless? 22:23:06 hmm 22:23:13 I can't see where it finds duplicate entries and discards them, fizzie 22:23:25 AnMaster: How is it useful for statically linked executables? 22:23:36 Ooh, you don't link multi word names 22:23:37 like DEF SEG 22:23:38 * ehird hacx 22:23:40 ehird: It doesn't. 22:23:52 hmm, actually, solving this may be difficult 22:24:01 Yes, that's why I didn't do it. :p 22:24:02 since it only works on one word 22:24:13 I could make it generate a lookup tabl 22:24:13 e 22:25:06 I guess you can match "all consecutive uppercase words" and hope it doesn't chomp too much, then maybe try the shorter combinations or something. It doesn't sound very pleasant, though. 22:25:08 -!- psygnisfive has quit (Remote closed the connection). 22:25:15 Deewiant, NX in general is useful to limit damage of various exploits, like buffer overflows. Sure: it can only happen due to bugs in the code. But there will always be bugs. NX makes it program crash instead of allowing remote execution of arbitrary code. 22:25:23 I fail to see how it is useless. For any binary. 22:25:29 Alternatively you could just generate the index and do a client-side scripting hack for the "find this keyword" thing. 22:25:37 Yeah, exactly, it's a bug catcher. 22:26:17 So it is, in and of itself, essentially useless; it has no additional value beyond counteracting stuff you've messed up elsewhere 22:26:30 Deewiant, yes, but there will always be bugs. + Does a few wasted bytes help? If you really need those (embedded system or whatever): Use a custom linker script 22:26:42 the linux kernel does that, for some variables that is needed early on boot iirc 22:26:59 I'm just wondering 22:27:14 I do that, in my (Nintendo) DS compilation environment. :p 22:29:28 Deewiant, Shouldn't you make memory page at 0 readable, writable and executable then? It would be useful. Having it non-accessible is just a bug catching thing 22:29:30 :P 22:29:38 Given that the output file is a flat binary, it might not really count, since it's not like I can put things in multiple sections there. 22:30:34 AnMaster: That's befunge for you 22:30:42 -!- judicaster has changed nick to jc. 22:31:00 Deewiant, hah. Then use befunge. No sections at all! 22:32:11 QBasic editor is annnoyyyying in one way 22:32:17 if you make a subroutine the rest of the file disappears 22:32:49 I'm somewhat disappointed at the move against self-modifying code 22:35:41 QBASIC HAD OBJECT ORIENTATION WTF 22:35:51 THAT'S JUST _WRONG_ GODDAMMIT 22:35:55 CallForJudgement: Share in my WTF. 22:36:20 heh, that's pretty WTFy 22:36:22 but how? 22:36:39 Erm, let me get this manual up somewhere 22:36:48 Anyone know a pastebin that lets you paste one HTML page? 22:37:12 Deewiant, it can be done still. On POSIX systems: mprotect() 22:37:25 Hey AnMaster, you have a site right? Could you put up one tiny HTML page up for me? 22:37:36 By tiny I mean 451K 22:37:39 ehird, don't you have one? 22:37:43 also that is rather large. 22:37:45 Yes, but it doesn't run a webserver atm. 22:37:49 Also, it's the QBasic manual as html. 22:38:03 You can just resend me your script. 22:38:07 I can stick it at the same location. 22:38:13 That would also work. 22:38:14 AnMaster: Yes, I know, but stuff like NX seems to discourage it. 22:38:32 fizzie: http://pastie.org/415705.txt?key=ecliar25bphg5ibwtnc4g 22:39:03 CallForJudgement: anyway, it's more C-like structs than OOP, but it LOOKS oop 22:39:07 TYPE Card 22:39:07 Suit AS STRING * 9 22:39:09 Value AS INTEGER 22:39:11 END TYPE 22:39:13 DIM Deck(1 TO 52) AS Card 22:39:14 Deewiant, well, I like NX. It is actually useful. Only JITs need to disable it really. 22:39:15 Deck(1).Suit = "Club" 22:39:17 Deck(1).Value = 2 22:39:19 PRINT Deck(1).Suit, Deck(1).Value 22:39:21 from the manual 22:39:40 anyone doing the above IMHO just be shot and forced to remake it as an array of strings. 22:39:42 :P 22:39:55 ehird: http://zem.fi/~fis/qb.html is now converted with your script. 22:40:01 Huray 22:40:05 I don't know about kernels, it is possible you might need something there. 22:40:14 fizzie: Oh, wait, I have one more mod 22:40:15 Deewiant, tell me any other non-esoteric example where you need to disable NX 22:40:26 Although I could've just used iconv -t ascii//translit to get +---+ line-drawing-art. 22:40:51 AnMaster: Self-modifying code. 22:40:52 fizzie: new line: 22:40:53 s/[┌└┐┘╔╗╣║╚╝]/+/g; 22:41:14 Deewiant, any non-esoteric examples of self modifying code? Apart from JITs that is. 22:42:11 anyway 22:42:13 CallForJudgement: http://zem.fi/~fis/qb.html#QEw4MDg3 22:42:29 Reconverted with that s/// line. 22:42:39 -!- Jophish has joined. 22:42:40 ehird: where in it? that anchor isn't working 22:42:41 Deewiant, and for library loading, your dynamic linker takes care of the correct write/mark no-write order. 22:42:44 AnMaster: For instance, instead of having a boolean test in a loop (slowing the program down) or outside the loop (adding duplicate code since the loop has to be generated twice) you can set an instruction inside the loop 22:42:44 hi Jophish 22:42:48 CallForJudgement: Refresh if the anchor isn't working 22:42:52 AnMaster: Essentially, optimization. 22:42:52 and don't scroll 22:42:56 until it jumps 22:43:03 but, "TYPE Statement" 22:43:16 AnMaster: Another case is to hide stuff, if you're not fully open about your code or data 22:43:27 Debugger fighting and such. 22:43:34 Deewiant, So you have too little memory to be able to be able to have two copies of the loop? 22:44:00 AnMaster: Maybe I don't want to have pointless stuff in the CPU's pipeline or L1 cache. 22:44:03 ehird: still didn't jump 22:44:10 just grep for TYPE Statement 22:44:17 as for debugger fighting, why on earth do you want to do that? I mean not even Microsoft does that. Heck. Microsoft even provide debugging symbols for all of windows... 22:44:20 including the kernel 22:44:27 Strange, the anchor works for me. 22:44:32 ehird: ah, got it 22:44:36 and that isn't OO, that's just structs 22:44:42 CallForJudgement: i know, but the example looks oop-y 22:44:47 also, I have an idea of how to make it oop 22:44:48 but it's evil 22:44:50 -!- neldoret1 has quit (No route to host). 22:45:35 Deewiant, so, that doesn't make much sense either. But well ok, I guess writing in code to do that makes sense. But NX doesn't affect that. Since code is loaded read-only by default you need to call mprotect() *anyway* 22:46:04 or whatever your platform use 22:46:09 AnMaster: Debugger fighting is for code obfuscation; Microsoft doesn't care, they can just sue you if you reverse engineer 22:46:11 windows has some other call I think 22:46:46 Can't you make an ELF which has the executable code as RWE? 22:46:56 Deewiant, don't know. It may be possible. 22:47:04 ehird: You can make it OOP by storing all your data in COMMON block, writing a separate .bas file for each method, storing the .bas file names into TYPE-defined struct fields, and using "CHAIN obj.func" to call. I'm not yet sure how you will return. 22:47:04 I don't see why not 22:47:18 fizzie: ahsdjhaskdhsjkfhkafjhgf jhasgfsdjfj sdfj WHHHHHHHHHHHHAAAAAAAAAAAAAAAATTTTTTTTTTTTTT 22:47:33 fizzie: OR 22:47:35 um 22:47:37 ahahahah 22:47:54 -!- mad has joined. 22:47:55 Deewiant, think it may be invalid. 22:48:00 Well, line numbers are a better solution, maybe. 22:48:17 Or would be if it wouldn't just be a GOTO . 22:48:35 AnMaster: In any case you don't need mprotect since you can make a different RWE section and just jump to that at the start of execution in the RE 22:48:52 Deewiant, Yep you can. Both with and without NX. 22:48:55 Your point? 22:49:12 My point is you don't need mprotect, which you said one does. 22:50:04 Hmm. 22:50:16 How do you switch DOS into the highest video mode? 22:50:20 Presumably writing to some address. 22:50:25 vga or svga? 22:50:27 Deewiant, well you need either mprotect() or change the section flags in the executable. Right 22:50:34 SCREEN 12 is the traditional method in QBasic 22:50:48 mad: SVGA, since it's higher resolution. 22:50:54 Hm I wonder. Does WXSVGA exist? 22:50:54 hmm 22:51:01 Also, hi mad. haven't seen you before. 22:51:07 Mode 13h! 22:51:10 ehird: then the easiest method is a library 22:51:14 ehird, duh. He joined half a screen back. 22:51:18 AnMaster: o :P 22:51:23 yeah I'm new :D 22:51:34 mad: ah, to hell with that, QBasic and libraries is like... like... like QBasic and libraries. 22:51:49 mad: what brings you here? 22:51:52 in qbasic? heh 22:52:05 mad: Yeah, I'm playing with dosbox 22:52:07 -!- Mony has quit (Nick collision from services.). 22:52:10 Sb 22:52:12 mad, we usually don't do DOS stuff. We do things in Brainf*ck, Befunge, INTERCAL and such usually. 22:52:22 just so you don't get the wrong impression. 22:52:24 yeah I know 22:52:29 -!- M0ny has joined. 22:52:42 AnMaster: I think that's blatantly obvious. 22:52:43 I did a couple attempts at esoteric languages 22:52:49 Also, we're more offtopic than on... 22:52:53 ehird, well not from topic, Not from the convo right no 22:52:56 now* 22:53:03 Yes, but, the name is #esoteric, see. :P 22:53:05 but yeah with qbasic your best luck is probably 640x480 22:53:09 Mm 22:53:19 actually, we spend most of our time offtopic 22:53:20 ehird, well, what about those persons wondering about new age stuff or whatever it is 22:53:23 but ontopic is better IMO 22:53:25 Maybe you can hack it a bit to get it to 720x512 but probably not much more :D 22:53:29 because they misunderstood what type of esoteric 22:53:33 There's a .bas file for doing svga graphics, though. 22:53:35 CallForJudgement: that's what I said 22:53:37 more offtopic than on 22:53:41 AnMaster: he said programming, so. :P 22:53:46 well right 22:53:51 actually, most of the time is taken up with ehird and AnMaster arguing 22:53:55 Heh. 22:53:58 hah 22:54:06 ■ activepage% The screen page that text or graphics output writes to. 22:54:06 ■ visualpage% The screen page that is currently displayed on your 22:54:07 screen. 22:54:11 Fun fun. 22:54:20 you can have great fun double-buffering with those 22:54:25 but most of the good video modes don't support it 22:54:27 fizzie, didn't your stats show ehird was the most active one? 22:54:31 and was I number two or? 22:54:43 if you remove arguments between you too, though, you're about #102 and #105 22:54:48 *you two 22:54:50 AnMaster: Right. 22:54:54 mhm 22:55:02 Or maybe the SVGA library was for quickbasic 4.5 only. Hmm. 22:55:04 CallForJudgement: Actually, it's mostly my pastes and multiline stuff that make me high 22:55:06 yeah a lot of those modes are kinda blah 22:55:08 Err, higher. Not, you know, high. 22:55:13 Because, drugs are bad, mmkay. 22:55:40 cga? more like suck g a :D 22:56:12 ehird: Here's a SVGA tutorial for you, treating QBasic in addition to QuickBasic: http://www.petesqbsite.com/sections/tutorials/zines/qbtm/1-svga.html 22:56:26 I'm going for vga for simplicity 22:56:31 I would, too. 22:56:34 heh WQUXGA 22:56:39 that exists it seems 22:56:50 "Wide Quad Ultra Extended Graphics Array" 22:56:53 WQXGA is often found in 30" displays like the Dell 3008WFP and the Apple Cinema Display. 22:56:54 But I distinctly remember seeing a rather featureful svga library for either qbasic or quickbasic. 22:56:56 http://en.wikipedia.org/wiki/QXGA#WQUXGA 22:56:58 that's just 2560x1600 22:57:01 not insanely large 22:57:07 ehird, WQXGA != WQUXGA 22:57:11 o 22:57:12 ha 22:57:24 svga is doable in djgpp 22:57:35 WQUXGA: 3840 x 2400 22:57:35 Yikes, colour attributes are scary 22:57:38 and doable as in practical 22:57:43 and is 16:10 22:57:50 color attributes? 22:57:52 also it's really irritating that QBASIC reformats your code to be less ugly. 22:57:55 -!- Hiato has quit (Connection timed out). 22:57:56 mad: http://zem.fi/~fis/qb.html#QEw4MDUw 22:58:20 there's a trick for that 22:58:34 you can just overwrite the palette 22:58:55 cute 22:59:17 hmm 22:59:20 mode 13 seems the best 22:59:21 What's the fun is that in addition to NOT, AND, OR, XOR QBasic also has the EQV and IMP (equivalence, implication) bitwise ops. 22:59:24 since you get 256 colours 22:59:33 yeah mode 13 is the best for games 22:59:35 although the res is tiny on this screen ofc 22:59:50 Admittedly "a EQV b" is just "NOT (a XOR b)" and so on, but it's there. 23:00:15 though with some palette editing you can make 16 color modes look good, which is nice 23:00:25 mad: you still only get 16 cols :-) 23:00:40 well, yeah :D 23:00:54 but some games do well with that 23:01:11 duke nukem 2, metal gear 2, hmm 23:01:11 On Real Computers, you could just do palette reprogramming during the hblank period and get 16 different colors for each line. 23:01:31 fizzie: except the ibm PC isn't a real computer :D 23:01:42 Right, it's a business machine. 23:02:05 PCs aren't for doing hdma tricks 23:02:11 that's what amigas are for 23:03:28 PLAY "T255P64" <-- shortest pause you can get without silly timer hax 23:03:38 hdma? 23:03:48 what does the extra h on DMA mean there? 23:04:05 horizontal blank dma 23:04:24 I see. And what does that actually mean? 23:04:27 I still need to figure out how to terminate this program 23:04:31 no break key :( 23:04:32 I think it's specific to snes technically but in general it refers to effects where you alter registers between lines 23:04:46 ehird, where did you find qbasic btw? 23:04:50 AnMaster: logs. 23:05:00 greh 23:05:01 ehird, well I mean, download url? 23:05:03 It's common on 16 bit platforms except PC and mac 23:05:07 lolqbasic 23:05:12 -!- tombom has quit ("Peace and Protection 4.22.2"). 23:05:14 AnMaster: It's possibly from my dos 6.21 installation floppy. 23:05:19 hm 23:05:19 no 23:05:27 Oh, just the help file was? 23:05:30 ya 23:06:55 AnMaster: Since you usually care about legalities (I guess?), ais523 linked to http://download.microsoft.com/download/win95upg/tool_s/1.0/w95/en-us/olddos.exe which you can run in dosbox. 23:07:12 Although I'm quite sure my qbasic.exe has pretty much the same bits. 23:07:22 fizzie, mhm 23:07:35 and yeah I tend to be careful. 23:07:43 -!- M0ny has quit (Read error: 60 (Operation timed out)). 23:07:46 I think that should expand to various "old DOS utilities". 23:08:06 anyone here good at perl? Need to test something for the PERL fingerprint in cfunge... 23:08:12 I'm pretty good at Perl 23:08:16 what in particular do you need? 23:08:39 CallForJudgement, I don't know perl at all. Something like a for loop. To output 5932 bytes 23:08:39 I'm reasonably good at writing messy Perl. 23:08:44 just use x or whatever 23:09:11 The expression "x" x 5932 evalutes to a 5932-byte string. 23:09:21 the perl equivalent of: for (i=0;i<5932;i++) putchar('x'); 23:09:24 is what I need basically 23:09:27 hm 23:09:33 Well, that's print "x" x 5932; 23:09:48 right 23:09:49 x = 5932; print "x" x x; 23:10:00 D'oh, sigils 23:10:09 It's also print "x" foreach (0 .. 5931); if you want to be more form-conformant. 23:10:11 well that would be less confusing with something else than x I guess 23:10:17 $x=5932;$X="x";print $X x $x 23:10:24 in python it's print "x" * 5932 23:10:27 $x=5932;$X=x;print $X x $x 23:10:28 but that's just because python is sane 23:10:36 ■ STATIC Specifies that the values of the SUB procedure's 23:10:36 local variables are saved between function calls. 23:10:40 that's a modifier ON THE FUNCTION 23:10:41 CallForJudgement: WTF. 23:10:51 hm 23:10:54 ehird: heh 23:11:02 Hey, just be happy it actually has functions, and local variables. 23:11:04 ehird: Use ẋ or something instead of X 23:11:10 That's quite a fancy-schmanzy schnitzel. 23:11:13 -!- CallForJudgement has changed nick to ais523. 23:11:17 and in an eval() context. So eval returns that many x. 23:11:21 what would it be then? 23:11:27 "x" x 5932 23:11:28 'x' x 5932 23:11:30 right 23:11:35 SUB count STATIC 23:11:37 count = 0 23:11:39 count = count + 1 23:11:40 RETURN count 23:11:40 I don't think GW-BASIC did local variables. It might've done GOSUB, though. 23:11:41 END SUB 23:12:06 um 23:12:11 err, wait 23:12:15 RETURN isn't a valuey thingy 23:12:16 so why doesn't this work: perl -e 'print eval("x" x 5932)' 23:12:17 I need a function 23:12:17 ehird: It's not restricted as a function attribute, though: "STATIC makes a variable local to a function or procedure and preserves its value between calls." 23:12:22 AnMaster: because that evaluates 23:12:23 xxxxxxxxxxxxxxxxxxxxxx 23:12:26 instead of returning xxxxxxxxxxxxxx 23:12:28 you should do 23:12:32 eval('"x" x 5932') 23:12:33 I think the stone age basics had gosub yeah 23:12:34 ehird, right 23:12:35 and now I doubt your coding ability... 23:12:39 /flamebait 23:12:51 ehird, well I don't know perl indeed. 23:13:25 why do you need eval in order to print lots of xs? 23:13:25 that I admit. I just try to conform to the rather weird PERL fingerprint spec. And found a bug in handling long results... 23:14:20 ais523, look at PERL spec 23:14:25 oh dear 23:14:28 http://catseye.tc/projects/funge98/library/PERL.html 23:14:30 But seriously, why can't qbasic do a simple "GOTO $var"? (Alternatively: how can it do that?) 23:14:32 E ('Eval') pops a 0gnirts string and performs a Perl eval() on it, possibly (or not) shelling Perl as indicated by S above. The result of the call is pushed as a 0gnirts string back onto the stack. 23:14:41 fizzie: you can use SELECT CASE 23:14:43 fizzie: GOTO var? 23:14:46 which is basically switch() from C 23:15:02 also, you can GOTO label 23:15:04 Oh, I mean GOTO var$. Or is it var%? I don't remember them sigils either. 23:15:09 ais523, that means I ended up (with the help of Deewiant and someone else in here, forgot who) with: execv() on "perl" "-e" "open(CFUNGE_REALERR, \">&STDERR\"); open(STDERR, \">&STDOUT\"); print CFUNGE_REALERR eval($ARGV[0])" 23:15:11 Yes, but I want a computed goto. 23:15:15 fizzie: QBasic sigils are weird 23:15:17 Yeah, use a switch 23:15:18 AnMaster: fizzie 23:15:23 was it him? ok 23:15:26 also, $ = string, % = integer 23:15:30 nothing = same as % 23:15:36 AnMaster: that looks about right 23:15:40 does it have some float too? 23:15:52 think so 23:15:58 ais523, anyway I found a bug in my handling of reading back really long results. 23:15:59 data-type suffix (%, &, !, #, or $). 23:16:09 +-------------------------Data-Type Suffixes--------------------------+ 23:16:09 │ ! Single-precision % Integer │ 23:16:10 │ # Double-precision & Long-integer │ 23:16:12 │ $ String │ 23:16:14 +---------------------------------------------------------------------+ 23:16:17 So, #. 23:16:30 & is a whopping THIRTY TWO BITS 23:16:55 what's the point of ! :D 23:17:03 -!- M0ny has joined. 23:17:36 ais523: Do you mean "use SELECT CASE" as in "write your whole program as "SELECT CASE a% CASE 1 ..." and use "a% = 42; " for control flow"? 23:17:45 mad: stores 7 digits after the decimal point 23:17:47 fizzie: well, why are you doing control flow like that, anyway? 23:17:54 I was assuming you'd only be jumping to one of a set few lines anyway 23:18:03 ehird: yeah but you can use # instead :D 23:18:10 ais523: I was just thinking of ehird's "Objective QBasic" thing. 23:18:12 mad: Think of the RAM! 23:18:24 wait, i know 23:18:24 We have like 1MB. 23:18:24 right 23:18:24 ais523: I'm not actually doing anything. 23:18:24 :D 23:18:24 fizzie: eek :D 23:18:24 well, conventional ram :D 23:25:09 And more like 64k often :D 23:25:09 hee 23:25:09 -!- M0ny has quit (Client Quit). 23:25:09 who needs C when you have qbasic 23:25:09 :P 23:25:09 Deewiant, do you remember off the top of your head which value to y returns stack size? 23:25:09 (int*)1234=5; 23:25:09 POKE1234,5 23:25:09 ehird: but you can have TURBO C :D 23:25:09 WINNER: QBASIC 23:25:09 mad: I HAD A TURBO BUTTON ON MY PC! It didn't do a thing. 23:25:09 AnMaster: nope 23:25:09 ehird: What a crap PC 23:25:09 Deewiant: :< 23:25:09 from like some 386s on it did like nothing :D 23:25:09 Turbo buttons should always do something 23:25:09 y u insult my pc 23:25:09 ehird: course it did, it slowed down the PC when you turned it off 23:25:09 haha 23:25:09 Yeah, exactly 23:25:09 they were designed so you could play old games which used loops for delays 23:25:09 Yeah 23:25:09 because even if you ran stuff at 7mhz it's still going to be ridiculously fast on a 486 no matter what 23:25:09 And they worked well 23:25:09 but why have a slow down button when you can have a speed up button? 23:25:09 I always thought it was a go faster button 23:25:09 As in 23:25:09 Well, it is 23:25:09 You can only use half your CPU and RAM 23:25:09 until you press TURBO 23:25:09 My router box used to be in a case that had a spare TURBO BUTTON, but I couldn't figure out any nifty thing to connect it to. 23:25:10 Hmm, I'ma write a sierpinski drawer. Should be trivial. 23:25:10 not to mention a pentium which is probably going to be able to stuff the whole program in its CACHE 23:25:10 then pair instructions to do 2 instructions per cycle :D 23:25:10 -!- MigoMipo has quit ("QuitIRCServerException: MigoMipo disconnected from IRC Server"). 23:25:10 Hmm 23:25:10 QBasic has no bitwise operators? :-S 23:25:10 oh wait 23:25:10 they're its boolean operators 23:25:10 XD 23:25:10 what happened if you pressed turbo while the computer was running? 23:25:10 AnMaster: it crashed 23:25:10 Yes. And there's even EQV and IMP there. 23:25:10 ah 23:25:10 I know, I've done that once 23:25:10 AnMaster: You became a COOL DUDE. 23:25:11 Huh? My turbo button worked when the machine was on 23:25:28 Or alternatively it did nothing, it's been a long time 23:25:32 But it certainly didn't crash anything 23:25:45 I used to have a 386 that had a manufacturer-specific "TURBO COMMAND"; a DOS command that could be used to switch between 8 MHz and 16 MHz mode. 23:25:52 On-the-fly, even. 23:26:01 heh 23:26:43 Also http://zem.fi/~fis/qbu.html has the qbasic manual with those utf-8 line-drawing characters, for people who prefer that and happen to have a font and system where things align correctly with it. 23:26:58 PICs can be switched from their default 4 MHz (= 1 MIPS) down to about 75 kHz 23:27:01 as a sort of power-saving mode 23:27:26 Modern CPUs can change freq too 23:27:30 for power saving 23:27:44 like my sempron, 1 GHz, 1.5 GHz or 2 GHz 23:27:52 C128 can be switched from the default 1 MHz mode into a faster 2 MHz mode, but then the VIC-II chip drops offline, and you have to use the 80-column screen which has a different display controller. 23:27:58 s/,/:/ 23:27:59 DIM A(640,480) gives me subscript out of bounds 23:28:08 why? ais523? 23:28:15 because qbasic can't allocate a lot of memory 23:28:22 that's not a lot ... 23:28:23 fizzie: heh, that's... not nice 23:28:52 640*480!? That's over nine thous.. I mean, 307200. That amount of integers wouldn't fit in any sort of memory. 23:28:57 :D 23:29:02 But it fits in video memory! 23:29:23 Not really, you only have four bits per pixel there. 23:29:28 Ah. True da.t 23:29:33 actually, 307200 is almost half of memory 23:29:37 It's just, using LINE on the fly was really slow. 23:29:39 DOS only supports 640K, remember 23:29:40 As in one pixel per second. 23:29:53 You can POKE in the video memory, though. 23:30:03 ehird, allocate it in hi memory? extended memory? or whatever 23:30:11 in BASIC? 23:30:17 you can POKE anywhere in BASIC 23:30:20 ehird, well can't you POKE to do that? 23:30:21 fizzie: Yeah, 'cept I don't know the format of the values 23:30:23 ais523: that was @AnMaster 23:30:24 yeah but qbasic probably can't handle >16bit pointers 23:30:37 hm 23:30:39 ehird: It's just "two nybbles in each byte give two adjacent pixels". 23:30:45 that's why people usually switch to djgpp :D 23:30:49 mad: it can 23:30:50 fizzie: and what is a pixel in that case? 23:30:51 DEF SEG 23:30:56 use one of those "memory optimizer" to move stuff out of the memory you can use then 23:31:07 stuff = malloc(20000000); 23:31:11 What's the address of video memory, anyhoo? 23:31:13 Actually WORKS in djgpp :D 23:31:15 You do need to DEF SEG = &HA000. 23:31:15 I remember some tool that messed with config.sys and autoexec.bad 23:31:17 0xa0000 23:31:19 bat* 23:31:21 -!- psygnisfive has joined. 23:31:29 to free low low memory 23:31:58 -!- kar8nga has quit (Remote closed the connection). 23:31:58 Then you can just POKE in there, and the address given in POKE is directly an offset to the screen buffer. 23:32:03 video mem address depends on video mode 23:32:04 fizzie: Still slow; as in it's taking many many seconds. I wonder if I have a bug. 23:32:12 Or maybe it crashed. 23:32:18 but in 256 color mode it's 0xa0000 23:32:28 Ah. 23:32:30 I was using SCREEN 1. 23:32:42 12 always used to be my favourite 23:32:49 ehird, how many FPS? 23:32:51 Yes, but I'm just doing a b/w sierpinski :P 23:32:55 AnMaster: I don't know 23:33:26 heh 23:33:34 ehird, tell me when/if you find out 23:33:42 Oh, it terminated. 23:33:49 Anyway, I'm just looping over the 320,200 display. 23:33:53 I don't see how I can get any faster. 23:34:24 I remember doing some comprehensive qbasic putpixel benchmarking, and there were at least five methods. 23:34:27 I guess sierpinski is just way beyond DOS's ability. 23:35:05 ehird: unless it's 3d bit dos 23:35:12 3 DIMENSIONAL BIT DOS?! 23:35:17 haha 23:35:21 yay, voxel bits 23:35:28 voxbits 23:35:30 you could almost call it voxel-perfect 23:35:30 You can write your sierpinski to file and the BLOAD it directly on top of the display memory. That gives you a fast blit. Unfortunately you need to precalc the file. 23:36:09 use putpixel + recursive function? 23:36:11 Text mode sierpinski works :P 23:36:26 -!- neldoreth has joined. 23:36:55 Still, I think POKE 320*y+x was a lot faster than any LINE (x, y)-(x, y) style thing. 23:37:02 Or PSET. 23:37:13 Although PSET at least wasn't many magnitudes slower. 23:37:16 you could almost call it voxel-perfect <-- that does sound strangely familiar..... But I can't identify it 23:37:29 ;_; AnMasterrrrrrrrrrr 23:37:36 AnMaster: esolangs.org = esoteric.voxelperfect.net 23:37:40 oh right 23:37:42 duh 23:37:50 ais523, I use the first url to access 23:37:58 Hm. There seems to be some algorithmic problem. 23:38:06 just explaining where the reference came from 23:38:29 ehird, also you could do sierpinski in dos. Ever seen some of those DOS demos? 23:38:40 AnMaster: And what are they written in? 23:38:41 Assembly. 23:38:43 And what am I using? 23:38:45 QBasic. 23:38:48 And what is QBasic? 23:38:51 oh right true 23:38:52 bloated 23:38:52 Oh, there are QBasic demos. 23:38:53 An interpreter, probably written in C. 23:38:56 Totally unoptimized, to boot. 23:39:01 ehird, can't you compile qbasic? 23:39:09 using QuickBASIC. 23:39:11 I heard there was a compiler 23:39:11 Which I don't have. 23:39:12 ah 23:39:18 QuickBasic is commercial, non-free. 23:39:26 then you can switch to the next bigger thing 23:39:27 I see 23:39:27 And it doesn't really generate very fast code. 23:39:31 TURBO PASCAL :D 23:39:42 mad, I think I have a copy of that 23:39:43 in fact 23:39:54 not sure where 23:40:08 and I think it was TURBO PASCAL for windows or something even. 23:40:25 or maybe not 23:40:37 Or you can switch to the next smaller thing, debug.com. 23:40:38 don't remember. Too long ago 23:40:52 I've written a short game for dos 23:40:55 Hmmm. 23:41:00 but it was with libraries 23:41:07 ehird, anyway, when you find out frame rate: tell me 23:41:09 Question. 23:41:12 A bunch of PRINT "x"; 23:41:14 in succession 23:41:17 will output nothing but xs 23:41:18 right? 23:41:24 who knows 23:41:43 an unfair comparsion: glxgears on my GPU gives me: 38952 frames in 5.0 seconds = 7790.366 FPS. And that is with 2xAA... 23:41:45 I think basic probably tacks on a line end and you have to supress it or something 23:41:50 Yes, as long as you don't forget the ; there. 23:41:55 mad: thus the ; 23:41:56 That's the line-suppression thing. 23:42:01 AnMaster: frame rate of what 23:42:19 ehird, just drawing a single colour over the screen in a loop? 23:42:19 A , would start at the "next print zone", and "print zones are 14 characters wide". That's very out-of-nowhere. 23:42:32 AnMaster: 10FPS 23:42:33 Or so 23:42:36 ehird, heh 23:42:40 Well 23:42:49 It takes about 7 seconds to display 256 colour bands 23:42:59 I dunno 23:43:00 wow that is slow 23:43:07 anyway 23:43:18 ehird, for dosbox it should be possible to tune the speed iirc 23:43:32 Look, it's a lot faster than the TI-BASIC in my calculator, so just stop complaining about the speed. 23:43:36 CLS 23:43:36 FOR Y = 0 TO 15 23:43:37 FOR X = 0 TO 15 23:43:39 Y1 = 15 - Y 23:43:41 IF (X AND Y1) = 0 THEN PRINT "*"; ELSE PRINT " "; 23:43:43 NEXT X 23:43:45 PRINT 23:43:47 NEXT Y 23:43:55 Renders a sierpinski triangle of 16x16 in about 0.7 seconds. 23:44:04 You can watch it draw. 23:44:21 Now to try and center it. 23:45:44 fizzie: this 23:45:50 TI-Basic is so ridiculously slow 23:45:51 -!- jc has changed nick to comex. 23:46:02 yeah well your butt is ridiculously slow if you know what i mean. 23:46:13 someone show http://www.newscientist.com/blogs/shortsharpscience/2009/03/how-moores-law-saved-the-web.html to zzo38 23:46:14 Look, it's a lot faster than the TI-BASIC in my calculator, so just stop complaining about the speed. <-- Remember that FOR loops after faster than WHILE in TI-BASIC 23:46:48 all good TI-Basic programs start with AsmPrgm 23:47:08 comex, how does that work. I don't remember? 23:47:20 you have to type in z80 opcodes as hex 23:47:23 CLS 23:47:23 FOR Y = 0 TO 15 23:47:24 Y1 = 15 - Y 23:47:26 FOR I = 1 TO Y1 23:47:27 (thus 'asm' is somwhat misleading...) 23:47:28 PRINT " "; 23:47:30 NEXT I 23:47:32 comex, oh I see 23:47:32 FOR X = 0 TO 15 23:47:34 IF (X AND Y1) = 0 THEN PRINT "**"; ELSE PRINT " "; 23:47:36 NEXT X 23:47:38 PRINT 23:47:39 so you could hand type it on the calculator? 23:47:40 NEXT Y 23:47:42 centered. 23:47:44 Also optimmized. 23:47:46 Now it takes 0.3s 23:47:53 I have a packet with a list of z80 opcodes 23:47:55 ehird, I think there was a faster way than = 0 23:48:08 sometimes when I'm feeling masochistic I make programs 23:48:09 in IF that is 23:48:41 not() should be faster. At least on TI-83+ 23:48:44 which is what I have 23:49:03 This is on DOS :P 23:49:06 this 23:49:06 ah 23:49:07 But, I need to check 0 23:49:10 NOT() checks for -1 or something 23:49:14 It doesn't output right in any case 23:49:23 ehird, well I meant on TI-83+ 23:49:29 right 23:49:37 Anyway, now to make it do it SEXTUALLY 23:49:41 By which I mean graphically 23:49:44 .. 23:50:09 fizzie: what was your POKE gfx magick? 23:50:19 -!- KingOfKarlsruhe has joined. 23:50:29 ehird, scrollback? 23:50:33 ah POKE 320*y+x 23:51:08 fizzie: what mode was that for? 23:51:09 which DEF SEG is that in? 23:51:53 I'll just use pset 23:51:54 probably 23:52:57 wtf 23:53:00 illegal function call on an if 23:53:03 I guess it is complaining ab- 23:53:04 oh 23:53:13 pset without screen 23:53:30 -!- BeholdMyGlory has quit (Read error: 104 (Connection reset by peer)). 23:53:33 Erm, or not. 23:53:52 * AnMaster wonders 23:53:56 IF (X AND Y1) = 0 THEN PSET (X, Y) 23:53:58 that's invalid? 23:54:26 6145 output chars vs 5932 23:54:31 that doesn't match at all 23:55:25 oh right indeed. 23:55:28 a bug 23:55:31 Yes, as I said you need a DEF SEG = &HA000 in order for the poke to work. 23:55:41 And it's for mode 13h, the 320x200 VGA 256-color mode. 23:55:43 I'm using PSET. 23:55:46 Not DEF SEG> 23:56:09 If you like. It might even be faster with PSET if you need to do the y*320+x operation. 23:56:30 agh 23:56:33 my program is running in step mode 23:56:35 Since concievably it might be written in C or whatever then, not done with QBasic code. 23:56:35 how do I undo that : 23:56:37 :\ 23:56:48 I don't remember anything about the UI. 23:57:04 ehird, read docs? 23:57:09 AnMaster: I did. 23:57:13 Woo, my sierpinskigfx work 23:57:25 nice 23:57:34 Albeit sloooowly. 23:57:40 ehird, screenshot? 23:57:52 also for dosbox you can increase simulation speed 23:57:57 some option somewhere 23:58:10 The slowness is AUTHENTIC. 23:58:15 btw, what is the difference between dosbox and doxemu? 23:58:16 yes 23:58:22 dosbox emulates DOS, not a cpu 23:58:23 dosemu* 23:58:27 ah 23:58:32 * kerlo memorizes all of pi in binary 23:58:32 er oh 23:58:34 thought you said qemu 23:58:40 Pretty easy. 23:58:43 so why is the second called dosemu? 23:58:46 1100111110000000 23:58:49 it emulates dos 23:59:04 then what is the difference? Which is best? 23:59:09 dosbox or dosemu? 23:59:09 fizzie: so, what IS it that makes BASIC so damn slow? 23:59:13 dosemu only runs on linux 23:59:19 but iirc its emulation is more "authentic" 23:59:25 oh? 23:59:27 and dosemu lets you copy/paste from-to dos 23:59:29 apparently 23:59:35 sounds useful 23:59:41 dosemu uses the vm86 syscall to run DOS "natively" on linux. 23:59:43 and the linux requirement is hardly an issue 23:59:55 unless you use something else. 23:59:57 like me 2009-03-14: 00:00:00 Of course any interesting program I've tried hasn't really worked well on dosemu. 00:00:00 fizzie, um. Yet it is available on x86_64? How is that possible 00:00:09 iirc long mode prevents vm86() 00:00:51 -!- cherez has joined. 00:01:05 -!- cherez has left (?). 00:01:12 at least virtual 8086 mode is not available even from 32-bit compat mode under long mode according to AMD docs iirc 00:01:36 I didn't do it, I don't know how it works. But the vm86 trick is what it used to do, anyway. 00:01:43 mhm 00:02:17 anyway thanks to recent coverage analysis I have found two real bugs in cfunge. + a lot of stuff mycology doesn't test. Now to debug those bugs... 00:02:19 While dosbox actually emulates a CPU too. 00:02:55 This performance is ridiculous. 00:03:14 heh 00:03:23 Like really ridiculous. 00:03:31 I can see the line go from the left to the right of the screen. 00:03:35 ehird, rewrite it in ASM 00:03:36 (And it's drawing top-down!) 00:03:38 AnMaster: NO NO NO 00:03:44 why not? 00:03:48 NOOOOOOOOOOOOOOOOOOOOOOOOOOOOO 00:03:50 BAD AnMaster!! 00:03:53 why? 00:04:00 BEACUSE I HAVE _SOME_ SANITY 00:04:07 On x86, dosbox also has some "dynamic instruction translation" option, which is faster but less accurate. 00:04:16 Oh shit, this is going to go further than the video memory 00:04:18 ehird, ok then. POKE machine code somewhere, then jump to that 00:04:18 WILL IT CRASH?! WHO KNOWS 00:04:19 :P 00:04:23 AnMaster: That's actually in the docs. 00:04:28 what?! 00:04:31 Yeah. 00:04:35 -_- 00:04:45 fizzie: where is it again? 00:04:45 AnMaster: Didn't you see my copy-paste. The help file has some inline machine code examples. 00:04:50 ah 00:04:56 fizzie, must have missed that 00:04:59 http://zem.fi/~fis/qbu.html#QEw4MDhh 00:05:03 The CALL ABSOLUTE statement. 00:05:43 what is the calling convention 00:05:46 so you can return and such 00:05:55 Holy shit. 00:05:59 H o l y s h i t 00:06:01 I crashed dosbox 00:06:02 Not even cleanly 00:06:04 ehird, err 00:06:04 It just exited 00:06:06 You do a RETF when you want to return. 00:06:06 huh 00:06:10 Wanna know how? 00:06:12 CALL ABSOLUTE(0) 00:06:16 hah 00:06:16 *BOOM* 00:06:28 ehird, segfault? 00:06:32 Dunno 00:06:35 And you can't return any values or anything. 00:06:52 Example: 00:06:52 PRINT "Game over." 00:06:54 END 00:06:55 Of course you can manipulate the memory allocated for some BASIC variable if you want to return something. 00:06:55 ehird, I mean it is possible the memory at 0 could have contained something to stop the machine 00:06:56 that's so depressing. 00:06:58 HLT or whatever 00:07:05 Er, the memory at 0 contains nothing, AFAIK. 00:07:10 Well. 00:07:13 PRINT PEEK(0) prints 112. 00:07:16 Is 112 HLT? :P 00:07:19 -!- FireyFly has quit ("Later"). 00:07:20 no idea 00:07:29 and HLT is the wrong one anyway 00:07:33 Typically the memory at 0 in a dos system contains the interrupt vector table. 00:07:36 HLT halts until interrupt iirc 00:07:44 HCF 00:07:57 To build programs that Use a Basic development environment that 00:07:57 require over 160K of memory supports creating large programs. 00:08:01 LAAAAAAAAAAAAAARGE PROGRAMS 00:08:08 To distribute your programs Use Microsoft Visual Basic for MS-DOS or 00:08:13 t'was contaminated even then 00:08:58 HLT Halt 00:08:58 Causes the microprocessor to halt instruction execution and enter the HALT state. Entering the HALT 00:08:58 state puts the processor in low-power mode. Execution resumes when an unmasked hardware interrupt 00:08:58 (INTR), non-maskable interrupt (NMI), system management interrupt (SMI), RESET, or INIT occurs. 00:09:13 that is AMD64 docs. But iirc it was introduced quite early on 00:09:15 not sure when 00:09:24 AnMaster: "The current version of the CPU emulator, as of dosemu-1.1.x, has been rewritten from scratch, and is now called simx86. -- Added a native 64-bit port for x86-64, which, by default, uses CPU emulation for V86 mode, and runs DPMI code natively." 00:09:27 maybe 386, maybe a bit later 00:09:32 So that's what dosemu does on x86-64. 00:09:40 fizzie, I see 00:09:50 fizzie, DPMI? 00:09:51 It has a dosbox-like full CPU emulation, but it only uses that when it has to. 00:10:00 It's the DOS way of running in protected mode. 00:10:07 ah 00:10:10 "DOS Protected Mode Interface". 00:10:13 /G Sets QBasic to update a CGA screen as fast as possible 00:10:14 (works only with machines using CGA monitors). If you 00:10:16 see snow (dots flickering on the screen) when QBasic 00:10:18 updates your screen, your hardware cannot fully support 00:10:20 this option. If you prefer a clean screen, restart 00:10:22 QBasic without the /G option. 00:10:24 IF YOU PREFER A CLEAN SCREEN 00:10:35 ehird, yes and? 00:10:45 xD 00:10:49 ehird, idea: Haskell -> QBasic translator 00:10:52 XD 00:10:54 no 00:10:58 YES! 00:11:20 call it QHaskell. Or HBasic? 00:11:27 http://zem.fi/~fis/qb.html#QEw4MDgz 00:11:31 AIAEEEEEEEEEEEEEEE 00:11:45 ■ Remarks are ignored when the program runs unless they contain 00:11:45 metacommands. 00:11:46 Ha ha ha what 00:11:56 http://zem.fi/~fis/qb.html#QEw4MDdi 00:11:57 >_< 00:11:59 They go in COMMENTS> 00:12:01 ehird: '$DYNAMIC 00:12:04 commands that work from comments 00:12:07 horrible 00:12:13 basically it's for compatibility with other versions of BASIC 00:12:15 which didn't read them 00:12:26 however, given that $STATIC and $DYNAMIC change the semantics of the language... 00:12:29 ehird, err INTERCAL has comments like that 00:12:32 kind of 00:12:38 It's a bit like #pragma. 00:13:05 Except maybe even a tiny bit uglier. 00:13:10 AnMaster: not really 00:13:23 it's more INTERCAL doesn't have comments, people abuse syntax errors as comments 00:13:30 ais523, well yeah 00:13:42 BASIC as a scripting language for a C program: 00:13:47 In C, 00:14:02 funcptr basic_funcs[512]; 00:14:10 in basic_funcs, put pointers to machine code. 00:14:20 ehird, err... what? 00:14:23 wait for it 00:14:26 then, to execute a basic program, 00:14:37 put an INPUT line, that reads into cFuncsBase 00:14:43 and then procedure definitions 00:14:47 that use CALL ABSOLUTE to call into them 00:14:49 ehird, where is this from? 00:14:51 then cat the program to it 00:14:52 then, run it 00:14:55 AnMaster: nowhere, I just invented it 00:15:00 ok 00:15:06 ais523: discuss the awfulosity 00:15:10 ehird, also DOS doesn't have cat 00:15:18 that's not the point. 00:15:21 ok 00:16:01 ehird, so is this extending C with BASIC or BASIC with C? 00:16:09 Former 00:16:16 An old-school game scripting language scheme :P 00:16:18 ehird, so the C program starts first? 00:16:24 sort of 00:16:26 you do 00:16:29 system("qbasic ...") 00:16:29 in C 00:16:34 well 00:16:35 except more complex 00:16:40 and it can call back to C? 00:16:41 since you write the address of basic_funcs to its stdin 00:16:45 oh wait, no fork() 00:16:47 and yes, via the funcs you specially set up and pointers 00:16:56 AnMaster: fork() is impossible altogether in DOS 00:16:58 how can that even work. How can you know basic won't overwrite your memory= 00:16:58 ? 00:17:02 you don't 00:17:04 you never do in DOS 00:17:22 "Code your own computer opponent with the Microsoft QBasic language you know and love. Just use our library of standard game procedures in your program—they're there automatically!" 00:17:32 well. I mean system() can't really work if you have been overwritten when it returns 00:17:52 ehird, heh 00:18:00 if the user overwrites the game from his AI, that's his own shit-stupid fault and he gets what he deserves 00:18:54 then something happened... Between 1990 and 2000... 00:18:58 :D 00:19:07 ? 00:20:15 ehird, memory protection started going mainstream more and more. Windows NT. Later during 200x: windows xp. 00:20:20 ah 00:20:30 windows nt didn't really hit home users 00:20:35 well, this passes around a pointer from another app that you jump to 00:20:35 but work places mostly 00:20:39 so it wouldn't work anyway with memory protection 00:20:48 ais523: is there -no way- to multitask in dos? 00:20:51 ehird, I doubt that would work even under Windows 9x 00:20:55 there has to be, surely, see: all the advanced dos programs 00:21:06 ehird: you can do cooperative multitasking sort of 00:21:12 but you normally need cooperation from both programs 00:21:16 ehird, TSR? 00:21:22 ais523: yeah, we don't control qbasic so that's not an option 00:21:26 you effectively have to write your own OS kernel above DOS in order to do competitive 00:21:37 also, as AnMaster says, there were TSRs 00:21:46 ah, that could work 00:21:46 which basically worked by hooking the interrupt table in evil ways 00:21:51 have the qbasic program tsr 00:21:54 while the game keeps running 00:22:01 and then, in the game loop, have a resumeQBasic() 00:22:02 I'm not sure if you can get QBasic to TSR 00:22:02 at the end 00:22:05 ehird, I doubt you could do that in qbasic 00:22:08 ais523: it can execute arbitrary machine code 00:22:09 well POKE machine code... 00:22:28 so you'd just have a snippet to tsr, then control it from C 00:22:39 = Scripting a C DOS game with QBasic! And as a side effect having it crawl to a stop. 00:22:44 WHAT NOT TO LIKE 00:23:19 s/LIKE/DO/ 00:25:12 hmm 00:25:16 ais523: have you got any qbasic programs lying around? 00:25:19 i'd love to try them :) 00:25:32 ahahaha 00:25:32 ehird: they were mostly on a really old laptop that doesn't work nowadays 00:25:37 what a silly typo 00:25:41 let me run a quick slocate to see if any survived 00:25:43 AnMaster: wut 00:25:56 buf[n] = '\0'; vs. buf[STRINGALLOCCHUNK] = '\0'; 00:26:21 nope, apparently none of them did, pity 00:26:33 I see 00:27:11 I'd love a sort of "QBasic 2009" dealie 00:27:18 nowadays it's all about Visual Basic 00:27:30 ais523, VB.NET 00:27:31 even 00:27:37 -!- zzo38 has joined. 00:27:37 yes, but I don't mean actually basic 00:27:44 just a really simple language you can do SDL-y stuff in 00:27:45 would be nice 00:27:46 oh, hi zzo38 00:27:58 ehird, hm... asm? 00:28:02 we. 00:28:02 zzo38: http://www.newscientist.com/blogs/shortsharpscience/2009/03/how-moores-law-saved-the-web.html 00:28:04 AnMaster: *er 00:28:17 ehird, if with simple you mean low level 00:28:25 anyway, you can get QBasic from http://support.microsoft.com/kb/135315 00:28:27 AnMaster: ... no. 00:28:28 download olddos.exe 00:28:32 and run it in dosbox 00:28:33 ais523: I have qbasic... 00:28:35 ehird, haskell with hsdl? 00:28:40 ehird: other people here might not 00:28:42 AnMaster: that's not "really simple" 00:28:47 ehird, well ok 00:29:04 ehird, hm... Java? 00:29:10 .... 00:29:12 just stop talking 00:29:19 ehird, then any suggestions? 00:29:20 The #anagol channel doesn't help. How to put FlogScript on anarchy golf site? Can someone send a message, but I don't use e-mail and am unsure. Still, I do it anyways on the wiki entry for FlogScript but if it is directly on there, it can be together listed with the others! 00:29:27 zzo38: You cannot. 00:29:31 You must ask shinh to add a language 00:29:49 He is on IRC quite often 00:30:05 shinh was on but I received no reply 00:30:21 ais523, I like gopher, so that link above.. 00:30:25 -!- KingOfKarlsruhe has quit (Remote closed the connection). 00:30:40 And the tunes.org log seems to be not working right now 00:30:49 It works here 00:31:32 The log works now 00:31:38 -!- ais523 has quit. 00:32:40 Maybe my DNS is mixed up and doesn't always work. I am unsure 00:33:29 So, I invented a language earlier today. 00:33:48 "What BASIC would be if everything was event-based instead of imperative, and there were only assignments and a few other things and stuff." 00:33:54 Catchy name, I'm sure you'll agree. 00:34:07 What link for description of language you invented earlier today 00:34:36 No link right now 00:34:37 Here's an example 00:34:58 0 SUM 00:34:58 0 NUMBERS 00:34:59 ON INPUT% N 00:35:01 SUM + N SUM 00:35:03 NUMBERS + 1 NUMBERS 00:35:05 OVER 00:35:07 ON INPUT$ ='' 00:35:09 NUMBERS READ 00:35:11 ' NUMBERS, SUM ' READ 00:35:13 SUM READ 00:35:15 OVER 00:35:17 READ actually prints, it means "read out" 00:35:21 It should be obvious what it does but how it works is a bit odd 00:35:23 ehird, that looks like AppleBASIC... 00:35:33 Here it is with blank lines 00:35:34 0 SUM 00:35:34 0 NUMBERS 00:35:36 00:35:38 ON INPUT% N 00:35:40 SUM + N SUM 00:35:42 NUMBERS + 1 NUMBERS 00:35:44 -!- oerjan has joined. 00:35:44 OVER 00:35:46 00:35:48 ON INPUT$ ='' 00:35:49 UNDER 00:35:50 NUMBERS READ 00:35:52 ' NUMBERS, SUM ' READ 00:35:54 SUM READ 00:35:56 OVER 00:35:58 easier to read that way 00:36:02 oerjan, "What BASIC would be if everything was event-based instead of imperative, and there were only assignments and a few other things and stuff." 00:36:05 is the context 00:36:17 The interesting thing is, 00:36:22 in "INPUT% N" 00:36:22 oerjan, hi btw 00:36:25 AnMaster: would i have said "OVER" if i cared about the context? 00:36:25 That's actually an assignment 00:36:34 oerjan, no idea. 00:36:36 and INPUT$ ='' is an assignment too, although not how you might think 00:36:37 i mean "UNDER" 00:36:39 = is a variable modifier. 00:36:49 Basically, everything is an assignment 00:37:09 if you assign to a variable starting =, it is compared to the rest and is true if the thing it'd assign is equaal to that. 00:37:16 everything is water 00:37:16 ehird, did you see my comment about AppleBASIC above? 00:37:21 it's "VALUE VARIABLE" 00:37:24 thus the 0 SUM 00:37:26 so INPUT% N 00:37:27 is 00:37:30 N = INPUT% 00:37:33 and INPUT$ = '' 00:37:34 is 00:37:43 X = INPUT$; IF X = '' THEN TRUE ELSE FALSE 00:37:50 except X isn't actually assigned 00:37:59 and, of course, assigning to READ prints out the value 00:38:10 $ means string and % number, there's actually two different INPUT commands 00:38:39 ON foo\n...\nOVER means "Whenever performing foo happens (is true), do the stuff, then finish,." 00:38:46 * AnMaster tries to come up with rules that would make befunge harder to use 00:38:49 Basically, it listens for user input and the like all the time, but by default does nothing. 00:38:54 panta rhei 00:38:54 what about swapping arguments for - 00:39:01 Anyway, I think it's easy to understand from that, does that make sense zzo38? 00:39:12 so you need 4\- to do the same as 4- now 00:39:14 You can also define your own assignments and stuff 00:39:14 Yes it make sense. OK 00:39:23 So if you want to condition on multiple stuff you can 00:39:25 Like 00:39:33 -!- comex has changed nick to judicaster. 00:39:43 if we want to say FOO whenever we get a number below 10 00:40:36 BEGIN 00:40:36 INPUT% N 00:40:37 N < 10 00:40:39 IS INBEL10% N 00:40:42 00:40:43 ON INBEL10% N 00:40:45 'FOO' READ 00:40:47 END READ 00:40:49 OVER 00:40:51 END is a string with a newline. 00:40:57 So, BEGIN\n...\nIS blah means "blah is true if the stuff is true" 00:41:08 Pretty simple, like I said it's just event-based BASIC, sort of 00:41:27 I called it Simple Tables, because the CPU architechture I thought about that would run it well involved tables for events 00:42:01 oerjan is wrong 00:42:10 haven't used tabs in vim, then 00:42:23 The machine architechture basically had two instructions 00:42:28 -!- Judofyr has quit (Read error: 110 (Connection timed out)). 00:42:38 an instruction that made it easy to condition on an event (which is: any outside input, or clock tick, or whatever) 00:42:43 i.e. one instruction, that would just idle then jump 00:42:51 And another one which you gave a pointer 00:42:56 And it'd read that pointer, and see another pointer 00:42:58 read that, execute it 00:43:00 -!- bsmntbombdood has quit (Read error: 145 (Connection timed out)). 00:43:00 and go on one 00:43:12 So an ON would just add to the pointer list of that event 00:43:20 and an ON of an event not seen before would add it to the event table jump 00:45:24 bye 00:47:28 -!- zzo38 has quit. 00:48:28 -!- bsmntbombdood has joined. 00:48:47 -!- Jophish has quit (Read error: 104 (Connection reset by peer)). 00:53:07 -!- Corun has joined. 00:53:13 $ ~/funge/interpreters/rcfunge/funge tests/sigfpe.b98 00:53:13 Floating point exception 00:53:16 should I report it 00:53:18 sigh 00:53:44 just all division by zero 00:53:51 which is well defined in befunge to be 0 00:53:58 this time in various fingerprints 00:55:28 * oerjan thought this was from sigfpe the blogger for a moment 00:55:45 from who? 00:55:58 also SIGFPE is floating point exception 00:56:03 http://blog.sigfpe.com/ 00:56:14 well i remembered that the next moment 01:06:12 * pikhq is doing a rather absurd DVD ripping spree... 01:06:19 43 fucking DVDs. 01:06:26 (Farscape, in its entirety) 01:06:26 pikhq the ripper 01:07:23 Fortunately, copying the DVD to disc can be done seperately from the encode. So, just spend a few hours feeding discs in, and let a batch encode run for, oh, say, a week. 01:13:19 http://paste2.org/p/164029 :) 01:14:00 -!- [helloworld] has joined. 01:15:07 <[helloworld]> hello, i'm trying to write simple ROT-program in brain-fuck but i have problems with rot-1 ;/ it doesn't work for all cases. I just increase ascii value, but it doesn't work, where i have got Z, it shoul return A 01:15:11 <[helloworld]> could you hlp me? 01:15:19 * oerjan swats MizardX -----### 01:15:23 I AM NOT EHIRD 01:15:39 You have shared nicks sometime in the last 4 months 01:16:01 <[helloworld]> yes 01:16:02 well yeah i remember him impostering me the other day 01:16:05 <[helloworld]> i asked about that 01:16:20 <[helloworld]> but still have no idea :/ 01:17:06 [helloworld]: well you need to test for Z i guess 01:17:19 also, what about non-alphabetic characters? 01:17:29 <[helloworld]> but how can i do simply if() in BF? 01:17:50 <[helloworld]> i start learn BF, i want to write in only for A-Z chars 01:18:26 <[helloworld]> i read only one char increase it and write 01:18:29 take a look at http://esoteric.voxelperfect.net/wiki/Brainfuck_algorithms 01:18:43 <[helloworld]> but i should first check is it a 'Z" 01:19:31 so you probably need the if-then-else algorithm there 01:19:48 http://esoteric.voxelperfect.net/wiki/Brainfuck_algorithms#if_.28x.29_.7B_code1_.7D_else_.7B_code2_.7D 01:20:34 see the beginning of the article for how to interpret the algorithms 01:20:37 <[helloworld]> or maybe modulo 01:20:50 <[helloworld]> what should be easier? 01:21:26 hm maybe 01:21:48 Does the Rickroll phone number still work? 01:22:23 well the modulo looks short enough 01:23:22 <[helloworld]> but how to use it? 01:24:35 <[helloworld]> or maybe if, it looks easier 01:26:14 <[helloworld]> what is: temp0[-] should i change it? it's forbidden chars 01:26:17 well for if you would need to subtract 'Z' from your character, then test, since all basic testing is for 0 01:26:32 [helloworld]: i said to read the beginning of the article for that 01:27:46 <[helloworld]> i did that and stil don't know ;/ 01:28:40 basically the variable names are abbreviations for >'s and <'s to get to that particular spot 01:29:31 <[helloworld]> still don't know, could you give me an example code with if instruction? 01:29:52 you need to first choose where on the tape each variable is 01:31:24 <[helloworld]> but how can i 'save' this vars on the 'tape' 01:31:47 <[helloworld]> i read one chars using "," 01:31:56 <[helloworld]> then where/how should i store it? 01:32:03 yes, so go to the right place before you do , 01:32:29 <[helloworld]> so this char shoulnd't be the first in my program? 01:32:55 Not unless you want it stored at cell 0. 01:33:02 Which could very well be quite reasonable. 01:33:14 well you want to loop, so it at least needs to be in a loop 01:33:39 but it could be worthwhile to duplicate it, for example cat is ,[.,] 01:34:00 That's generally a good idea, since you *probably* want to check for EOF. 01:34:10 (assuming EOF=0) 01:34:36 <[helloworld]> ok but if I only want read only one char from input? 01:34:51 Then you don't have read in a loop. 01:34:55 <[helloworld]> why should i use loop? 01:35:22 then you don't need to 01:35:33 <[helloworld]> ok, so I read that char and how can i check is it 'Z' or no 01:36:01 you need to subtract the code for 'Z' since all testing is for 0 01:36:21 you can use just a bunch of -'s for starters 01:36:28 <[helloworld]> don't understand, could you paraphrase? 01:36:54 the code for 'Z' is 64+26 = 90 01:37:03 so 90 minuses 01:37:29 there are shorter ways though, but they require some copying around 01:37:36 http://paste2.org/p/164039 <-- updated 01:37:45 There's another page on the wiki for those shorter ways. 01:38:04 yes, Brainfuck constants 01:38:49 <[helloworld]> ok, i have ,---[90 times]. Then i should check is that [90 minuses]==var i have read? 01:39:32 No, you do - 90 times on the var you've read, and then check whether that's 0. 01:40:05 <[helloworld]> how can i chec it? 01:40:10 <[helloworld]> k, but wait 01:40:25 <[helloworld]> if it's not 0 i should write that var++? 01:40:54 yeah you'll need to add 91 back then 01:41:12 <[helloworld]> but stil don't know how to code if 01:41:19 <[helloworld]> how can i check is it 0? 01:41:29 see the if then else algorithm 01:41:52 <[helloworld]> i do that and still don't understand that "pseudo"code 01:41:53 now you need to select cells for temp0 and temp1. x is your original var. 01:42:20 if you let temp0 and temp1 be the next cells you can use the second, simpler version 01:42:41 <[helloworld]> but how to select that cells in BF? 01:42:54 with the right number of >'s and <'s 01:43:10 you need to know what cell you are on before, and which you want to go to 01:43:38 <[helloworld]> could you paraphrase 01:43:48 since you have just subtracted 90 from x, you will still be at x 01:44:00 so to get to temp0 you do > 01:44:15 and to get to temp1 after that, another > 01:44:27 then you go back to x with << 01:45:08 <[helloworld]> ok, now understand selecting, but stil don't udnerstand why should i use that temps 01:46:38 basically the way to test for 0 is with a [loop]. but you need some trickiness to get out of that loop after just one test, and to know what the test result was 01:47:34 <[helloworld]> i've already known: read my var x and substract 90 from it. Then i have to check is my "new" var is 0 01:47:42 <[helloworld]> and now i don't know how to code it 01:48:32 temp0[-]+temp1[-]x[code1x>-]>[->]<< 01:48:41 that's the second version 01:49:00 assuming x is the first cell, temp0 the second and temp1 the third 01:49:41 code1 will start running at x, it will be run if x is nonzero 01:50:11 code2 will also start running at x, it will be run if x is zero 01:50:26 <[helloworld]> so I should change it that code temp0 via > and temp1 via >> ? 01:50:49 it depends where you start from 01:51:18 but assume code1 and code2 don't move (i don't think they need to). then we should know where you are all through that mess 01:51:39 let me change those to >'s and <'s for you 01:52:04 >[-]+>[-]<<[code1>-]>[->]<< 01:52:09 <[helloworld]> >[-]+>[-]<<[code1x>-]>[->]< ok 01:54:26 <[helloworld]> it's working :) 01:54:29 <[helloworld]> thanks a lot 01:54:34 :) 01:55:14 <[helloworld]> it's my second BF code :) (first was Hello-world ^^) 01:55:17 you're welcome 01:58:40 oh 01:58:43 happy pi day 02:00:06 <[helloworld]> thanx ;) 02:00:26 <[helloworld]> cya 02:00:32 -!- [helloworld] has quit ("MegaIRC v3.97 http://ironfist.at.tut.by"). 02:13:52 heh 02:13:59 huh? 02:14:05 if (fspace.bottomRightCorner.y < position->y) 02:14:05 fspace.bottomRightCorner.y = position->y; 02:14:05 if (fspace.topLeftCorner.y > position->y) 02:14:05 fspace.topLeftCorner.y = position->y; 02:14:10 that generates better code 02:14:11 than 02:14:16 if (fspace.bottomRightCorner.y < position->y) 02:14:16 fspace.bottomRightCorner.y = position->y; 02:14:16 else if (fspace.topLeftCorner.y > position->y) 02:14:16 fspace.topLeftCorner.y = position->y; 02:14:20 which is rather weird 02:14:29 oerjan, don't you agree? 02:14:56 huh, again 02:15:07 oerjan, you agree then or? 02:15:12 yes 02:15:14 anyway. reason: x86 has "conditional move", avoiding overhead of branching. 02:15:20 with else if you can't use it 02:15:29 since you need to jump past then 02:15:45 oerjan, so the former is in fact faster 02:15:51 due to less branching 02:15:59 ah so pipelining makes the first do more at one time, essentially? 02:16:04 in fact the former has no branches 02:16:05 at all 02:16:59 oerjan, well possibly that too 02:17:02 but don't think so 02:17:12 but mainly this is due to branch prediction 02:18:13 oh well 02:18:45 oerjan, http://paste.lisp.org/display/77000 02:19:09 fspace there is really fspace.topLeftCorner.x 02:19:13 but they have same address 02:19:24 first member of struct 02:19:39 * oerjan gives up understanding that 02:19:49 (tldr essentially) 02:19:56 oerjan, well it is a bit confusing since all this is in RIP addressing 02:20:08 that is relative the program counter 02:20:23 oerjan, the comments show the expanded values 02:20:43 oerjan, what is "tldr"? 02:20:44 i think you are misunderstanding me. i am saying i cannot be bothered to try and understand that. 02:20:52 "too long, didn't read" 02:23:09 oerjan, since "position" is passed in registers on amd64 this is even more confusing 02:23:13 it isn't even on stack 02:24:17 -!- neldoreth has quit (Read error: 113 (No route to host)). 02:36:53 -!- olsner has joined. 03:26:14 -!- sebbu2 has joined. 03:43:52 -!- sebbu has quit (Success). 03:46:33 -!- GreaseMonkey has joined. 04:03:46 -!- oerjan has quit ("Good night"). 04:04:47 -!- Corun has quit ("Leaving"). 04:37:13 Hmm 04:37:39 I'm trying to design a set of cpu/sound/video hardware for something like a demo 04:37:58 probably to just run it in an emulator 04:38:19 and I'm out of inspiration 04:38:33 especially for the cpu part 04:48:12 also should be 16 bits-ish and possible to implement on FPGAs 04:50:02 BITCHES 04:51:12 16 bitches? 05:06:41 yes 07:37:25 -!- Sgeo has quit ("Leaving"). 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:48:32 -!- mad has quit ("Radiateur"). 09:04:56 -!- MigoMipo has joined. 09:53:57 -!- GreaseMonkey has quit ("Client Excited"). 10:06:01 -!- Slereah has joined. 10:17:08 -!- neldoreth has joined. 10:18:06 -!- Slereah_ has quit (Read error: 110 (Connection timed out)). 10:24:14 -!- tombom has joined. 10:25:46 -!- KingOfKarlsruhe has joined. 10:35:56 Oh, and yet another conversion variant: http://zem.fi/~fis/qbc.html has a lot more authentic colors. 11:15:08 -!- Mony has joined. 11:29:13 -!- MigoMipo_ has joined. 11:30:48 -!- MigoMipo has quit (Nick collision from services.). 11:30:54 -!- MigoMipo_ has changed nick to MigoMipo. 11:40:32 * AnMaster is irritated... Spent three hours trying to track down a "rootkit" detected by chkrootkit, only to find and confirm it was a false positive. 11:40:54 (of course I did it from bootcd too, so even more wasted time) 11:43:02 -!- sebbu2 has changed nick to sebbu. 13:15:07 -!- neldoreth has quit ("Lost terminal"). 13:15:23 -!- neldoreth has joined. 13:15:49 -!- Jophish has joined. 13:21:13 -!- KingOfKarlsruhe has quit (Remote closed the connection). 14:12:17 -!- Corun has joined. 14:46:13 -!- BeholdMyGlory has joined. 15:16:05 -!- FireyFly has joined. 15:26:14 -!- neldoreth has quit (Read error: 110 (Connection timed out)). 15:32:57 -!- neldoreth has joined. 15:52:20 -!- Corun has quit ("This computer has gone to sleep"). 15:53:04 -!- Corun has joined. 15:55:33 -!- KingOfKarlsruhe has joined. 16:15:00 -!- Corun has quit ("Leaving"). 16:40:34 -!- tombom has quit ("Peace and Protection 4.22.2"). 16:42:39 fizzie: the background is blue, silly. 16:42:51 also, a qbcnou would be nice 16:42:52 03:50 psygnisfive: BITCHES 16:42:56 "but i don't say bitches!" 16:43:01 MizardX: lol i am not ais523 :D 16:44:22 There is an updated version: http://paste2.org/p/164039 16:44:58 -!- Judofyr has joined. 16:45:01 I removed the spourious nick changes that made the script think you where the same person 16:46:26 -!- Corun has joined. 16:50:25 MizardX: that's a rather limited selection of logs 16:51:04 Yes. Only since november. 16:54:33 I'll write a script to download all of clog 16:57:30 ehird, English question: 16:57:51 "Move the IP forward one step" or "Move the IP forwards one step"? 16:57:55 and also: 16:58:03 "Move the IP backward one step" or "Move the IP backwards one step"? 16:58:14 AnMaster: 1) either works, the latter is more pronouncable 2) either works, the latter sounds a lot better 16:58:20 mhm 16:58:23 so I'd go for the latter both times 16:58:40 ehird, yeah I thought "backwards" sounded better, but I wasn't sure about forward(s) 16:58:41 thanks 16:59:08 np 16:59:25 ehird, btw did you see that code I posted yesterday, where if was faster than else if? 16:59:26 :D 16:59:57 yes 17:00:23 anyone know curl here? 17:00:25 weird isn't it? I mean, logically, just testing one branch should be faster. 17:00:37 ehird, as in libcurl API or curl the command line tool? 17:00:40 latter 17:00:49 ah well then I'm not the right person to ask 17:00:55 well I used curl a bit 17:01:01 so I might be able to help 17:01:06 what is the issue? 17:01:12 I just want it to output a one-line progress bar, instead of this monstrosity: 17:01:13 % Total % Received % Xferd Average Speed Time Time Time Current 17:01:14 Dload Upload Total Spent Left Speed 17:01:16 100 277k 100 277k 0 0 71867 0 0:00:03 0:00:03 --:--:-- 81084 17:01:35 hmm, well actually they're so small I don't need a progress bar 17:01:38 oh well, thanks anyway :P 17:01:39 ehird, have you see what wget outputs? 17:01:54 -#/--progress-bar Display transfer progress as a progress bar 17:01:57 ehird, tried that ? 17:02:00 ah, thanks :) 17:02:21 ehird, from curl --help | grep progress 17:02:25 -_- 17:02:31 well sorry ;_; 17:02:45 ehird, no problem 17:03:27 just wanted to help you in the future. You know you always tell me to use google so to keep the balance I have to tell you to use --help/man/info/grep/whatever 17:03:29 ~ 17:10:31 -!- Corun has quit ("This computer has gone to sleep"). 17:23:08 I wrote a script to download all clog logs (or, if you already have them, update them to the current day) 17:23:12 It also renames them to YYYY-MM-DD 17:23:21 It'd be nice if I could fix the times too; anyone know clog's timezone? Well, I could check. 17:23:22 -!- ais523 has joined. 17:23:25 hi ais523 17:23:30 hi ehird 17:23:49 also, /is/ my-cars (car . cdr)? 17:24:01 yes 17:24:07 it's the lisp translation of "My other car is a cdr" 17:24:14 heh 17:24:33 surely people would use a list not a cons cell to list their cars, though? 17:24:38 -!- ais523 has set topic: (eq? (cadr my-cars) 'cdr) | http://tunes.org/~nef/logs/esoteric/?C=N;O=D. 17:24:40 no 17:24:44 "my other" means there's only two 17:24:51 -!- ehird has set topic: (eq? (cdr my-cars) 'cdr) | http://tunes.org/~nef/logs/esoteric/?C=N;O=D. 17:24:57 it's a pair of cars 17:25:14 hmm, ok 17:25:20 but cons cells are inherently ordered 17:25:23 I suppose lists are too, though 17:27:17 My script is currently downloading aaaall the tunes.org logs. 17:27:31 It automatically only downloads ones you haven't downloaded yet, too. 17:27:49 I want to make it fix the timezones, too 17:27:50 to UTC 17:28:07 hmm 17:28:12 it's 16: here, 09: there 17:28:19 so UTC-7 17:28:32 hmm 17:28:33 agh 17:28:38 it crosses the day line, of course 17:28:42 so I'd have to move lines between files 17:28:49 :\ 17:28:54 ais523: worth it, do you think? 17:29:06 yes 17:29:19 it would normally be UTC-8, though 17:29:28 oh, right 17:29:32 does UTC have daylight savings? 17:29:38 or, -8 from us, anyway 17:29:39 if not, I can just blanket -8 17:30:52 hmm 17:30:55 should be simple enough 17:31:10 if it's N hours away from midnight, strip from file onwards and append to 'Putthisinthenextfile' 17:31:20 when you make a file, splurge putthisinthenextfile after the first 'starting' line 17:31:22 repeat 17:31:37 if you come to today - 1, disregard putthisinthenextfile (It never downloads an incomplete log) 17:34:37 I'll make it download first, though 17:36:59 anyway, the net effect should be -- wait a few minutes, get YYYY-MM-DD logs with UTC timestamps, fully greppable 17:51:59 you know what irritates me? 17:52:12 OOP weenies "praising" functional programming by saying it has things to contribute to architechture 17:52:22 because, of course, _replacing OOP_ cannot possibly be a productive path 17:52:37 functional and OOP simultaneously is of course entirely possible 17:52:38 no, we just have to stick and pile crap on to our existing model, see? those functional languages are just wacky things we'll cherry pick from 17:52:45 ais523: yes, but I mean the OOP C# Java sort of people 17:52:46 always say that 17:52:48 that doesn't mean it's a good idea for all programs 17:53:05 they never consider that maybe replacing OOP is better than adding on to it 17:53:14 it's always things "contributing" to mainstream languages 17:55:26 so anyway 17:55:34 should I write a book about esolangs and esoprogramming 17:55:40 i mean I've been toying with the idea for a while. 18:04:23 so have I 18:04:32 but our books would probably look very different 18:04:37 ehird: i changed my ways just for you. 18:04:56 ais523: why? :P 18:05:03 Asztal: I misread UTC-8 as UTF-8, and got confused for a moment 18:05:06 its a symbol of my love *-* 18:05:08 well, mine was gonna have a loot of theoretical stuff 18:05:12 and then like some practical tipz 18:05:13 ehird: because we seem to disagree stylistically on everything 18:05:21 but that's not too dissimilar from what I was planning 18:05:30 I think I'd include in-depth discussions of many of the most popular esolangs, though 18:05:40 I wonder how to measure esolang popularity? Page-hits on the wiki? 18:05:50 I was maybe gonna do two books 18:05:58 one about esoprogs & esolangs in general 18:06:04 one about how to actually write a damn program in brainfuck/intercal/etc 18:06:10 two sections of the same book might work better 18:06:13 mm 18:06:27 I can't imagine they'd be too big, yeah :P 18:06:56 wow, http://esoteric.voxelperfect.net/wiki/Special:Popularpages is pretty interesting 18:07:06 I'm surprised Ook! is so far up, for instance 18:07:19 and that INTERCAL is so far down 18:07:29 -!- Judofyr_ has joined. 18:07:53 so I found a qbasic game that dosbox was too slow to run X 18:07:54 XD 18:08:02 you can speed it up 18:08:06 it had "delay = 10000" 18:08:09 it was obviously designed for more modern computers 18:08:12 I'm setting it to "delay = 0" 18:08:22 ais523: it was made in 1995 by a friend; but it was his second ever game 18:08:29 for example, all IFs were just gotos, etc 18:08:31 heh 18:08:38 that's before I was born 18:08:38 so, it's probably a large artifact of the code 18:08:43 ais523: what, 1995? 18:08:50 oh, misread it as 1985 18:09:00 It was slightly after I was born, I think 18:09:27 ais523: what cpu cycles do you have your qbasic dosbox? 18:09:31 mine is 3000 18:09:42 I leave it on default 18:09:45 I don't use it much, you see... 18:09:51 it'll be in the title bar 18:11:02 wow, this game is fancy, it even has an icon. 18:14:14 I can't type backslash, argh 18:20:17 -!- Judofyr has quit (Read error: 110 (Connection timed out)). 18:25:16 Huh. 18:25:17 BASIC is portable. 18:25:25 I just translated some C64 basic to QBasic trivially. :P 18:25:31 I wouldn't be surprised if there was at least one portable version by now 18:25:32 (graphical) 18:25:40 arguably, VB.NET is portable due to Mono, but that's hardly BASIC 18:26:55 wait, spectrum 18:26:55 not c64 18:26:59 Spectrum BASIC: 18:26:59 10 BORDER 0; PAPER 0 18:27:00 20 FOR n = 1 TO 7 18:27:02 30 INK n 18:27:04 40 CIRCLE 100+n*10,100+n*10,50 18:27:06 50 NEXT n 18:27:08 QBasic: 18:27:10 SCREEN 12 18:27:12 FOR n = 1 TO 7 18:27:14 COLOR n 18:27:17 CIRCLE (1==+n*10,100+n*10),50 18:27:18 NEXT n 18:27:20 err 18:27:22 CIRCLE (1+n*10,100+n*10),50 18:33:00 -!- oerjan has joined. 18:35:35 16 bitches? 18:35:48 * oerjan imagines some kind of counting song 18:40:48 ehird: It's not blue in my qbasic.exe help-browser by default; it's black there, even though the edit screen is white-on-blue. 18:40:57 oh right 18:41:36 Although at least quickbasic has a colour configura-o-tron for the UI. 18:43:59 http://jsspeccy.zxdemo.org/ 18:44:09 all it needs now is a BASIC editor 18:44:47 -!- Judofyr_ has changed nick to Judofyr. 18:50:49 ais523: you know how you said the shuffle should have buttons on the headphones? 18:50:50 it _does_ 18:50:55 wow 18:50:56 I just realised 18:51:01 but unfortunately, it isn't just the headphones? 18:51:14 There's a thin unit: http://images.apple.com/ipodshuffle/gallery/images/ipodshuffle_image1_20090311.jpg 18:51:18 but yes, not quite all in those tiny tiny earphones 18:51:53 You have a thin unit 18:51:53 http://images.apple.com/ipodshuffle/gallery/images/ipodshuffle_image3_20090311.jpg <- headphone cable controls 18:51:53 Slereah: Oh burn. 18:51:56 kekeke < `?> 18:55:25 kekeke? is that some kind of french laugh? 18:55:45 Korean. 18:56:02 aha 18:56:19 It's "lololo" put through the Orcish/Human filter in World of Warcraft 18:56:43 If I remember correctly, anyway 18:56:48 hm 18:57:27 Evidently "kek" is "lol" but "kekeke" is "hahaha" according to Wikipedia 18:58:10 no 18:58:13 it originates from starcraft iirc 18:58:26 there's an orcish/human filter on world of warcraft? 18:58:26 The origin is the Korean 18:58:28 or at least, common usage 18:58:34 how does it work, just swapping certain letters? 18:58:45 I think so, yes, with some hardcoded words (like "lol" -> "kek") 18:58:54 it doesn't, considering the < `?`> smiley next to it it's obviously meant to be korean 18:59:27 ehird: It originates in Warcraft, to be precise 18:59:38 wspanig elttres 18:59:47 I.e. Warcraft: Orcs and Humans from 1994 18:59:53 Or 1993? Not sure 18:59:56 *wspaipgn 19:01:21 ot wspa, ro ont ot wspa, httas' hte uqseitno 19:02:17 s/httas'/htta si/ 19:02:32 an ode to orcs enjoying hot spas, obviously 19:03:54 octnartcoisn tfw! 19:04:08 Qapla'! 19:04:14 hmm... it seems to be mostly anagramming rather than substituting letters 19:04:37 ais523: i hope you are not thinking i am being authentic here 19:05:01 or does that mean i'm more authentic than i thought? 19:06:06 -!- kar8nga has joined. 19:06:28 Hell, now that I see the quote in question, make that "taH pagh, taHbe"... 19:07:43 :o 19:07:46 KLINGON!? 19:07:47 :o 19:07:48 my klingon is rather rusty. 19:07:57 as in, dead before birth, really 19:08:00 QAPLAH 19:08:05 i dont know klingon 19:08:37 Slereah: i do vaguely recall it being case sensitive, though 19:08:42 Yes 19:08:43 it is. 19:08:53 Well, the transliteration anyway 19:08:57 klingon uses caps and lowercase for different sounds 19:09:02 They don't 19:09:06 they do. 19:09:10 in the transliterations. 19:09:13 It's the transliteration that does that 19:09:18 Klingon has an alphabet 19:09:22 yes i know this 19:09:24 thank you. 19:09:28 it has two, actually 19:09:31 but thats besides the point 19:09:47 HOEFLER TEXT 19:09:59 hoefler text? 19:10:04 Yes! 19:10:26 and why is this font interesting now? 19:10:33 It is awesome. 19:10:37 ok 19:10:43 Also, *typeface. 19:10:44 its italic Q is pretty neat 19:10:45 * oerjan hoefles around 19:11:28 text figures <3 19:15:31 * oerjan swats a wiki spammer -----### 19:15:45 * ais523 catches the wiki spammer in a butterfly net -----\XXXXX/ 19:15:45 he'll never know what hit him 19:16:28 i don't think the gentle butterfly net is appropriate for spammers 19:16:41 well, it's to hold them still while you swat them 19:16:54 Why does the gentle butterfly net remind me of a frying pan? 19:17:10 Hello! I am testing stuff. Please feel free to totally ignore me. 19:17:11 Thank you! 19:17:18 frying pans are similar but harder and more painful 19:17:18 -!- Corun has joined. 19:17:22 also they have a smaller volume 19:17:39 Frying pans are presumably preferred by the really hard-core butterfly enthusiasts. 19:17:54 um, you would be surprised 19:18:32 http://screencast.com/t/jlgWoqvK (needs flash) 19:18:48 ehird: just do it all command-line and use termcast 19:18:53 heh 19:18:55 that doesn't need flash, or indeed a web browser 19:19:07 it needs telnet. and it requires you to use command line tools. 19:19:19 what do you mean needing telnet is a problem? needing flash isn't either. 19:19:21 well, it's for broadcasting terminals, of course it requires command line tools 19:19:40 besides, Windows Vista comes with telnet by default, and not Flash 19:19:46 likewise for every other common OS, I think 19:19:55 but doing it with windows is more impressive 19:19:55 why are you using a computer? use a television. that doesn't need RAM, or indeed a CPU. well, it's for broadcasting images, of course it requires passivity 19:20:05 besides, my house came with a TV, but no computer 19:20:23 I'm not sure Windows Vista comes with telnet by default 19:21:00 it does, it's just not enabled by default 19:21:04 Well, it does, but you have to install it. 19:21:06 windowshelp.microsoft.com sez: "By default, Telnet is not installed with Windows, but you can install it by following the steps below." 19:21:12 no install is needed 19:21:15 at least, it's on the computer 19:21:16 Huge video capture is huge! I bet this one will be like 15MB+. 19:21:17 but you have to turn the thing on 19:21:19 Stupid FLV. 19:21:35 Testing, testing. 19:22:13 Installing is what they call "turning it on" on that windows help thing, though. Although admittedly the installation instructions go to some "Turn Windows features on or off" page. 19:22:45 Also other very good questions there: "Telnet doesn't look like Windows. Why?" 19:23:03 "I've got the Telnet window open. Now what?" 19:23:52 interesting fact: for ages, Windows NT only supported one locally logged in person at a time, but allowed any number of users to telnet in 19:25:30 That may be a fact, but I'm not sure why it's so interesting. :P 19:25:57 -!- oerjan has quit ("And then, a miracle occurs"). 19:26:23 ...and I am here to capture this miracle forever and ever. 19:26:30 Oh, I feel so special to be selected as the sole receiver. 19:26:37 Whatever will become of my life when this wonder is over? 19:26:43 It's interesting because it has 2*2*2*3*5 letters. 19:26:47 I'll flip burgers or something. I'll burger flips. 19:26:50 I am a burger. 19:26:53 Arem 19:26:55 Aren't you? 19:27:05 Is "burger" a verb? 19:27:17 of course 19:27:30 otherwise you wouldn't be able to say "burger flips" 19:27:57 -!- Corun has quit ("This computer has gone to sleep"). 19:30:19 http://screencast.com/t/vdo7feUDvw <-- Burgers, miracles, etc. 19:30:28 Can you tell I'm testing? 19:30:46 No, you sound just like you usually do. 19:30:51 :-D 19:31:18 It'd be nice if Jing was less... laggy. And less SWF. 19:31:26 maybe I'll write my own capturerotron 19:36:47 http://www.newartisans.com/2009/03/hello-haskell-goodbye-lisp.html <- Yet another joins the club. 19:49:06 -!- ais523 has quit (Remote closed the connection). 19:49:47 -!- BeholdMyGlory has quit (Read error: 104 (Connection reset by peer)). 19:50:11 -!- BeholdMyGlory has joined. 20:18:57 -!- Mony has quit ("Quit"). 20:23:14 ehird: what IRC client is that 20:23:20 limechat 20:23:22 OS X only 20:23:28 http://limechat.net/mac/ 20:23:29 well 20:23:32 looks better than colloquy 20:23:33 there is a limechat for windows by the same author 20:23:36 but it's totally separate 20:23:37 and it is 20:24:05 also 20:24:06 "Note that you need to install it even if you are using OSX 10.5.5. " 20:24:07 ignore that 20:24:09 it's bullshit 20:24:15 just download limechat, it works :P 20:26:51 omg 20:26:54 there's limechat for the iphone 20:26:56 why nobody tell me 20:27:08 http://limechat.net/iphone/images/serverlist.png 20:27:16 * ehird grabs 20:27:44 hrmps, £3 20:32:37 AnMaster: should I learn erlang? 20:32:59 http://gist.github.com/79022 On second thoughts, maybe not. 20:46:30 oh, screen 13 is trivial 20:46:57 x+(y*w) 20:47:00 where w = width of stream 20:47:04 screen 20:48:35 hi 20:48:39 hi AnMaster 20:48:40 ehird, maybe. If you want. 20:48:45 I got fast graphics working in qbasic 20:49:04 oh? nice 20:49:14 I'll show the code as soon as this finishes running :P 20:49:25 ehird, have guests today that stay over night. Not much time to talk. 20:49:30 using poke inset of pset? 20:49:31 kay 20:49:35 Asztal: yeah, pretty much 20:49:36 instead* 20:49:46 it's for screen 13 (@AnMaster: 320x200, 256 col) 20:49:48 (relatives...) 20:49:52 but I couldn't get it working before 20:49:57 now it seems to work 20:50:04 mhm 20:50:11 @AnMaster: 320x200, 256 col <-- ? 20:50:17 that's what screen 13 i 20:50:18 s 20:50:23 k 20:50:33 ehird, screen 13 meaning? 20:50:38 screen mode 13 20:50:40 ah 20:50:41 QBasic: SCREEN 13 20:51:08 ehird, I think "the 13th terminal" which is very different 20:51:12 heh 20:51:17 thought* 20:51:23 -!- neldoreth has quit ("leaving"). 20:51:28 -!- neldoreth has joined. 20:51:40 Looks like it's finishing off... 20:51:42 ehird, and it just didn't make sense for DOS! 20:51:53 you should see my multi display DOS setup 20:51:54 it's hardcore./ 20:52:06 i have a 17" text display 20:52:11 http://gist.github.com/79022 On second thoughts, maybe not. <-- wth 20:52:12 a 14" 640x480 16-col display 20:52:17 * AnMaster tries to understand that code 20:52:21 and a 15" 320x200 256-col display 20:52:23 AnMaster: it's from erlang 20:52:25 's source code 20:52:26 otp, thing 20:52:29 err 20:52:31 erl_eval 20:52:32 or something 20:52:46 any language that has a fun keyword is cool with me 20:52:57 fun awesome -> radical 20:53:14 ehird, it doesn't make much sense 20:53:23 why not 20:53:59 ehird, well maybe in context. But you can call a fun with unknown arguments count at compile time in cleaner ways 20:54:11 apply(Fun, Args) -> term() | empty() 20:54:11 Types Fun = fun() 20:54:11 Args = [term()] 20:54:16 that is a BIF even 20:54:27 er, no 20:54:28 becaus 20:54:29 e 20:54:32 that's in the evaluator 20:54:35 it isn't an actual function 20:54:37 thus the eval_fun shit 20:55:24 ehird, well that code assigns a fun(a,b,c,...) to F that calls eval_fun 20:55:36 I'm not dumb, I can read i 20:55:37 t 20:55:38 ehird, I'm not sure why this is useful. 20:55:39 it's just hdeous 20:55:41 hideous 20:55:44 I mean. what is the context 20:55:46 and I agree 20:56:08 what source file is it from? 20:56:16 dunno 20:56:43 Howdy neighbor! This here's sup-config, ready to help you jack in to 20:56:43 the next generation of digital cyberspace: the text-based email 20:56:45 program. Get ready to be the envy of everyone in your internets 20:56:47 with your amazing keyboarding skills! Jump from email to email with 20:56:48 hm /usr/lib/erlang/lib/stdlib-1.15.5/src/erl_eval.erl 20:56:49 nary a click of the mouse! 20:56:50 it seems 20:56:51 wth 20:56:51 — sup-config program 20:58:30 ehird, hm. It seems very weird indeed. The normal way would be to compile to erlang byte code then run that iirc 20:58:32 -!- Sgeo has joined. 20:58:43 you can do that sort of stuff 20:59:31 This module provides an interpreter for Erlang expressions. The expressions are in the abstract syntax as returned by erl_parse, the Erlang parser, or a call to 20:59:31 io:parse_erl_exprs/2. 20:59:33 hm 21:03:35 ehird, and yes that code was horrible. But then it isn't something I ever needed to do thankfully 21:04:02 it seems erl_eval is meant to support safe evaluation of erlang code 21:04:17 with callbacks for all function calls and such 21:04:34 During evaluation of a function, no calls can be made to local functions. An undefined function error would be generated. However, the optional argument LocalFunction‐ 21:04:34 Handler may be used to define a function which is called when there is a call to a local function. The argument can have the following formats: 21:11:18 AnMaster: here's the code 21:11:19 SCREEN 13 21:11:23 DEF SEG = &HA000 21:11:26 FOR n = 0 TO 32767 21:11:29 FOR x = 0 TO 100 21:11:34 POKE x + (1 * 320), n 21:11:35 NEXT x 21:11:36 NEXT n 21:11:47 it's `x + (y * 320)` 21:11:58 anyway, that flashess a band of colour on the second line of the screen. 21:11:59 a lot. 21:15:30 Next you'll be graduating to VGA palette rotation tricksies. (That's also trivial: OUT &H3C8, followed by OUT &H3C9, ; OUT &H3C9, ; OUT &H3C9, with rgb values in the [0, 63] range; and it auto-advances, so you can just OUT &H3C8, 0 and then feed the whole 256-color palette in the 0x3c9 port. 21:16:40 fizzie: what does that buy you? 21:35:22 nice 21:36:11 btw confusing: callgrind reports that 0 system time was spent in fclose() or fwrite() when writing files. Even though commenting out those calls actually reduces run time... 21:36:12 wth 21:36:25 it reports the system time just fine for other stuff 21:36:31 You can do "animation" fast without screen-redrawing. As long as you're happy with just manipulating palette values. 21:36:47 ==16002== L2 refs: 123,201 ( 28,492 rd + 94,709 wr) 21:36:47 ==16002== L2 misses: 30,943 ( 21,054 rd + 9,889 wr) 21:36:47 ==16002== L2 miss rate: 0.0% ( 0.0% + 0.2% ) 21:36:54 I don't believe valgrind can count? 21:37:04 the miss rate seems way off 21:38:20 or, if it is actually relative L1 refs in the table above... 21:38:21 http://paste.lisp.org/display/77046 21:38:26 then it is very confusing output 21:46:45 (And of course it also "buys you" a less silly color palette -- well, less silly for many uses -- than the default 256-color one.) 21:49:38 Stop all the QBasic nonsense before I catch the qb bug too, though. I'm already very close to running dosbox; probably would've started it already, except I'm afraid it might use enough CPU to make the virtualbox windows vm get some audio-playing glitches. 21:58:26 The "Version Differences" list at http://zem.fi/~fis/qbc.html#QEw4MDBm should make you appreciate QBasic over the older pre-5 DOS GW-BASIC. 22:16:01 -!- oerjan has joined. 22:17:01 Whatever will become of my life when this wonder is over? 22:18:18 you will be caught up in a struggle between religious sects with fiercely different interpretations of the miracle. as a result you will end up being burned on the stake, although that will still be many years in the future. 22:18:36 * oerjan hopes this cleared it up. 22:20:23 Are you sure you should be revealing your information-of-the-future stuff to us? I understand it's usually very hush-hush. 22:20:58 not this one. it is a self-fulfilling prophecy, and those are important to get into the open. 22:22:43 hm 22:23:01 what exactly does this mean: char* const args[] 22:23:03 in C 22:23:16 black magic. 22:23:22 int execvp(const char *file, char *const argv[]); 22:23:24 is the context 22:23:26 the POSIX API 22:23:34 at least that's how i understand const in C (i.e., not very well at all) 22:23:52 well I understand const char*, just not char* const 22:24:12 It's a constant pointer. 22:24:25 hm 22:24:36 I mean, "const char*" is a pointer to constant characters, while "char* const" is a constant pointer to (modifiable) characters. 22:24:52 cdecl> explain char* const args[] 22:24:52 declare args as array of const pointer to char 22:24:54 hm does const commute with some of it? i.e. is const char * == char const * ? 22:25:01 Yes. 22:25:22 There's a long discussion about the benefits of "const char *" and "char const *" in the C++ FAQ. 22:25:28 It's about "business reasons". 22:25:32 heh 22:26:13 those should be the same... 22:26:23 so it would just be a matter of coding style -_- 22:26:52 "Fred const* x is functionally equivalent to const Fred* x. However, the real question is which should be used. 22:26:57 Answer: absolutely no one should pretend they can make decisions for your organization until they know something about your organization. One size does not fit all; there is no "right" answer for all organizations, so do not allow anyone to make a knee-jerk decision in either direction. "Think" is not a four-letter word." 22:27:04 That's a very typical piece of the C++ FAQ. 22:27:04 char *const argv[restrict] <-- nice one from posix_spawn() 22:27:17 what does *that* restrict change 22:27:26 wait 22:27:56 in an argument list this is pointer to array of pointers to null terminated strings 22:28:11 the pointers to the strings are constant 22:28:16 and may not alias each other? 22:28:24 or what bit does restrict there restrict 22:28:24 ? 22:28:30 That sounds reasonable, but it's a silly-looking place for the restrict. 22:28:45 int posix_spawn(pid_t *restrict pid, const char *restrict path, 22:28:45 const posix_spawn_file_actions_t *file_actions, 22:28:45 const posix_spawnattr_t *restrict attrp, 22:28:45 char *const argv[restrict], char *const envp[restrict]); 22:28:50 is the full prototype 22:29:35 To tell you the truth, I'm actually a bit surprised that it's legal. But my guess is that "char *const argv[restrict]" might be the same thing as "char *const *restrict argv", maybe. 22:29:36 it may also indicate argv and envp can't alias each other 22:29:38 I'm not sure 22:30:01 fizzie, restrict is perfectly legal inside [] in argument lists 22:30:17 Yes, obviously, but it still looks silly. 22:30:33 I don't see where else it could be in a [] thing, so I guess there's not really an alternative. 22:30:42 fizzie, for example, this is valid: static inline void mulMatrices(const double a[restrict 16], const double b[restrict 16], double r[restrict 16]) 22:30:55 yeah that is 16 as in size 22:31:08 16 restrict isn't valid though: 22:31:13 /home/arvid/src/cfunge/code-cleanup/src/fingerprints/3DSP/3DSP.c:139: error: expected ‘]’ before ‘restrict’ 22:32:50 fizzie, nice syntax eh? 22:32:52 ~ 22:33:19 20:36 fizzie: You can do "animation" fast without screen-redrawing. As long as you're happy with just manipulating palette values. 22:33:21 ha 22:33:30 20:46 fizzie: (And of course it also "buys you" a less silly color palette -- well, less silly for many uses -- than the default 256-color one.) 22:33:31 Yes, well, I'm not quite sure where else it could be, so I guess it makes sense; it just looks silly. 22:33:33 what are the values? 22:33:35 32-bit colours or w/e? 22:33:45 20:49 fizzie: Stop all the QBasic nonsense before I catch the qb bug too, though. I'm already very close to running dosbox; probably would've started it already, except I'm afraid it might use enough CPU to make the virtualbox windows vm get some audio-playing glitches. 22:33:47 dosbox uses like 0 cpu 22:33:50 do eet ;) 22:34:03 I mean qbasic is just awesome. 22:34:09 Yes, and come to think of it, that virtualbox seems to use something like 10-30 % of one core, anyway. 22:34:22 how many cores you got? 22:34:27 Just two. 22:34:34 me too! we're core-buddie. 22:34:35 buddies 22:34:40 * AnMaster only has one code 22:34:42 core* 22:34:45 The R/G/B values (each written separately) are 6-bit values, since VGA only does 18-bit colors. 22:34:57 hmm fizzie should I not get an 8-core so we can stay core buddies? :( 22:35:00 ehird, however I do have root on a Quad Core Opetron server! 22:35:08 legal root 22:35:13 pfft, quad core. 22:35:15 (of course) 22:35:21 my hypothetical 2xquad-core nehalem scoffs at you. 22:35:24 ehird, model name : Quad-Core AMD Opteron(tm) Processor 1354 22:35:28 don't think that is too bad 22:35:59 ehird: Go do 8-core if you want; I can just sum up different computers and pretend they're somehow metaphysically speaking part of the same system. 22:36:09 fizzie: i tried that once 22:36:16 in this room, I have 5 cores 22:36:17 I think 22:36:33 err 6 22:36:33 I just link a few erlang nodes :P 22:36:35 Currently, there's only 2 cores in this room. I run old hardware. 22:36:37 7 22:36:41 pikhq, same 22:36:47 iMac: 2, ancient powermac: 1, iphone: 1, nintendo DS: 1, gamecube: 1, game boy advance sp: 1 22:36:53 assuming I didn't miss anything 22:37:04 of course, most of those cores are ridiculously underpowered... 22:37:13 oh wait 22:37:18 livebox runs linux so it must have some sort of cpu 22:37:18 8 22:37:27 hey I don't need to buy an 8-core 22:37:30 I have it already! 22:38:18 It'd be nice if QBasic would work with, say, more than 80x24 22:38:19 ehird: the DS has two CPUs :) 22:38:19 Nintendo DS counts as two. 22:38:22 Or, you know, DOS in general 22:38:24 wait, the DS has two cpus? 22:38:30 There's both a 66 MHz and 33 MHz ARMs. 22:38:35 that's some powah. 22:38:38 an ARM9 and ARM7, I think 22:38:47 ARM9 and ARM7; the ARM7 pretty much only does sound an input, though. 22:38:57 i have 9 cores 22:39:00 top of the range! 22:39:02 night 22:39:32 Cassette tape support Yes No 22:39:33 aw bummer. 22:39:40 An unsubstantiated rumour says that in the official Nintendo dev-kit you can't really write custom code for the ARM7 anyway, there's just the Nintendo-provided binary that can handle sound-playing and other hardware functions unique to the ARM7 side. 22:39:41 Code organization Linear Modular 22:39:47 is that referring to the awful F2 sub browser? 22:39:52 that hides subs from your main text? 22:40:11 Yes, probably. And maybe also the fact that you can actually have subs, although that's covered elsewhere too. 22:40:29 I'm pretty sure even old BASICs had subs apart from really old ones 22:40:36 fizzie: your code prints out \ as \\, it's causing alignment issues 22:41:02 Oh, I didn't de-escape that; probably didn't notice it either. 22:42:21 I have in this room two Athlon X2 dual-core things (sum: 4), two iBooks (sum: 6), and then all those "you can only non-seriously count these", like a DS (=8), a Symbian phone (=9), a Linksys WLAN thing (=10), and some even less-computery systems like the amplifier which has some sort of cpu/dsp dual-thing. I'm sure we can agree on some core-buddy number, though. 22:42:38 a DS has 8 cores? 22:42:39 What now? 22:42:40 oh 22:42:43 it's a running total 22:42:48 It's just the cumulative sum, yes. 22:43:14 yeah, a linksys router with 10 cores would be fun 22:43:42 so fizzie have you started up dosbox :P 22:43:56 I recommend setting cpu cycles to 5000, it seems to run the most authentic while not being stupidly slow 22:44:10 It depends on what you're running 22:44:24 Well, you probably want >5000 for QBasic games, given their dog-slowness. 22:44:48 But is that authentic speed? 22:45:12 Well, I'm operating ont he assumption that this game was actually playable in 1995 22:45:16 As opposed to taking one second to turn 22:45:18 Not yet, no. I'm still just considering. For some reason dosbox's keyboard layout wasn't automagically okay either. 22:45:22 My point was that 'authentic speed' depends on what you're doing, the emulation is slower for some apps than others 22:45:44 Mm. 22:45:48 And I've seen some pretty unplayable qbasic "games". 22:46:18 Even with cpu cycles 53000 it's too slow on some things 22:46:30 Raising CPU cycles slows stuff down after a certain point 22:47:00 There's the 'dynamic' mode, or whatever it was called, which often works best 22:47:09 I'll try that 22:47:26 That's the on-x86-only binary translation thing, I guess. 22:48:08 Deewiant: Since you're such a dosbox gooroo, how do I get my keyboard to work right? By default this seems like the US layout. 22:48:10 -!- kar8nga has quit (Read error: 110 (Connection timed out)). 22:48:12 Deewiant: that changed absolutely nothing. It just sticks at 3000 cycles. 22:48:21 oh 22:48:22 it's core= 22:48:23 not cycles 22:48:25 dur 22:48:31 ehird: Then it was something else, I don't remember what it's called but it removes the cycle count from the title bar 22:48:44 core=dynamic 22:48:49 hmm 22:48:53 it sstill says cpu cycles, though 22:49:09 fizzie: I just spent half a day a few weeks back trying to get the layout to work right, the best I could do was an almost-working (backspace is both backspace and caps lock) US 22:49:22 I can't type \, it shows up as #. 22:49:36 It's not really friendly to non-US layouts 22:49:42 This is a US layout. 22:49:46 Albeit an Apple one. 22:49:49 I'm talking to fizzie 22:49:52 ah 22:49:54 Or in general 22:49:56 I can't type #, it shows up as #. <-- say what? 22:49:58 Not to you in particular, anyway 22:50:06 oerjan: in DOSBox. 22:50:14 My \ key is just above my (one line) enter key. 22:50:39 That's strange, my # key is above 3. 22:50:40 So anyway, a colemak layout with swapped caps lock and backspace was pretty much impossible to get to work 22:50:50 In Windows, I got it to work really easily though 22:51:10 Okay, even with cpu cycles: max this game is ridiculously slow 22:51:57 Oh, right, there's that ctrl-f1 keymapper, can that do something useful? 22:51:58 -!- Corun has joined. 22:52:05 I couldn't get it to work right 22:52:13 It thought right alt was page down 22:52:16 And other stuff like that 22:52:31 Maybe I'll just use the US layout since it seems to work right. 22:52:33 Oh, there were two possible keyboard modes in the .conf file 22:52:55 The other one worked like that (not at all) and the other one worked partly, can't remember how exactly 22:53:08 In the end I just stuck with US with broken backspace 22:53:15 broken backspace, that must be a pain 22:53:21 No, backspace works 22:53:34 ehird: 22:53:34 ehird: 2009-03-14 23:49:08 ( Deewiant) fizzie: I just spent half a day a few weeks back trying to get the layout to work right, the best I could do was an almost-working (backspace is both backspace and caps lock) US 22:53:43 ah 22:53:56 I have a ZX Spectrum+ on which backspace is 0 over 90% of the time 22:54:00 That's a pain 22:54:01 Anyway, fizzie, I recommend you set: 22:54:03 cycles=max 22:54:05 in the configuration 22:54:12 It's still dog slow, but you can write QBasic programs and have them finish before you die. 22:54:47 "D'oh, typo. D'oh, zero! D'oh, zero! (...) Yay, backspace! D'oh, didn't hold it down, still 60 zeroes before my typo" 22:55:05 Also the mouse won't work, but I'm not sure I'd be using that much. F6 for window-swapping feels a bit silly though. 22:55:31 I didn't have mouse trouble 22:56:10 If I click the window so that it captures the mouse, I can only move the cursor up and down on the rightmost column of the screen. 22:56:53 I guess the more important thing is that I have no clue what to do with qbasic. 22:57:14 fizzie: You type, and F5 runs. 22:57:18 Ctrl-Break terminates. 22:57:23 You can open, save, find, replace. 22:57:25 And F2 browses subs. 22:57:30 For all else, see your manual. :P 22:57:36 (Yes, I am deliberately misinterpreting) 22:58:19 Whoa. I just sped my program up like 5x by using POKE instead of pset. 22:58:19 :D 23:00:02 How did you interrupt this thing again? I didn't follow that part of the conversation. :p 23:00:10 Ctrl-Break. 23:00:18 Which doesn't work for me but there you go 23:00:38 It didn't really want to work for me either. 23:00:46 fizzie: Try alt-Break. 23:00:48 Just Break. 23:00:49 Shift-Break. 23:00:50 etc. 23:00:57 Ctrl-Shift-Break. blah blah 23:01:04 Alt-Break changed the window title to be QBASIC PAUSED, that's about it. 23:01:29 hmm second 23:02:12 aha 23:02:14 fizzie: ctrl-break ESC 23:02:24 err, but alt-braek froze it 23:02:25 don't do tha 23:02:27 trestart dosbox :P 23:02:43 Alt-break here just pauses it, and a second alt-break restores. 23:02:48 Ah. 23:02:51 Then ctrl-break ESC. 23:02:54 Huh, also, a note 23:03:04 For actual lines, use LINE, it's faster than repeated POKEs 23:03:10 POKE is just fast for single pixel thangz. 23:03:19 Sure, a qbasic loop is slow-as-molasses. 23:03:39 Did ctrl-break esc work for you? 23:04:01 It had already finished; I'll try when I get stuck next. 23:04:24 I'm being transported back to good old days I never had :P 23:05:26 I had some qbasic days, and I'm not sure they were especially good. I think the Commodore kids and such got all the good old days, while PC people just got the sucky old days. 23:05:43 Well, QBasic is pretty cool. 23:09:31 aha 23:09:32 fizzie: try 23:09:37 ctrl-scrollock ESC 23:10:04 yep 23:10:05 it works 23:10:07 in fact 23:10:10 just ctrl-scrollock 23:10:11 no ESC 23:10:12 works perfectly 23:10:42 -!- kar8nga has joined. 23:10:46 Yes, seems to. Good. 23:11:10 Demoscene law dictates that I now write a mandelbrot renderer that twirls it around. 23:11:35 It will not be very fast. 23:11:51 Hey, a mandelbrot viewer came with QBasic, apparently. 23:11:55 It's gotta be possible. 23:12:02 Sure, just not very fast. 23:12:07 Sides, I can use inline machine code. 23:12:45 Oh yes, the comfortable solution. 23:13:07 Well, there's nothing you can't do with QBasic! 23:14:20 ehird: Anyway, here's one palette-rotation example for you, if you can bother waiting for it to finish drawing: http://zem.fi/~fis/prot.txt 23:14:43 That's scarily ... organized. 23:15:25 fizzie: Heyyy, that's my fractal! 23:15:30 :DD 23:15:38 Whoa it changes colour. 23:15:40 Right, it's the ehird fractal. 23:15:42 Best program ever. 23:17:27 fizzie: Try replacing (X AND Y) with (X OR Y). 23:17:32 Yes, well, "changes colour" is pretty much what you get with palette-messups. As far as graphics chipsets go, VGA is pretty boring. 23:17:41 It's the same! 23:18:35 fizzie: wtf, XOR produces it too 23:18:39 is there any operation that DOESN'T produce it? 23:18:52 XOR's pallette changing is diagonal, which is nice. 23:19:01 Are those bitwise or boolean operations? 23:19:05 Bitwise 23:19:16 fizzie: (X + Y) gives a smooth gradient 23:19:42 Yes, that's just "manhattan-distance from (0,0)" and the palette happens to be a smooth gradient. 23:19:49 haha :D 23:20:29 X IMP Y gives it to you in a bit different orientation, but most bitwise ops do "look" rather similar when done that way. 23:20:47 X EQV Y is perhaps a bit different-looking. 23:21:06 err it is 23:21:07 ? 23:21:09 it looks the same to me 23:21:13 It also has a bit of a "straight line looks curved" visual illusion going on, or maybe it's just my eyes that are wonky. 23:21:20 oh 23:21:23 fizzie: EQV is XOR 23:21:24 for this 23:21:34 Right, I didn't try XOR. But yes, sure. 23:21:54 It's just NOT (x XOR y) anyway. 23:21:58 I wish it wrapped on overflow instead of errored 23:22:38 fizzie: anyway, that palette changing would indeed be useful to animate without redrawing anyhting 23:22:49 EQV and XOR are dual. (NOT x) EQV (NOT y) = NOT (x XOR y) 23:23:42 Hmm, how do you convert a string to an int... 23:24:05 The canonical palette-animation example is an animated sea: just allocate 8 or 16 colors for a blue-white gradient, use that to draw your sea tiles, then you can rotate that 16-color block to get waves. 23:24:52 http://zem.fi/~fis/qbc.html#QEw4MDI1 23:25:02 CVI(string) converts to an integer. 23:25:11 And CVL to long. 23:25:22 ah 23:25:43 are you sure? 23:25:49 as in CVI("123")=123 23:25:53 Not really, no. 23:25:58 VAL converts a string representation of a number to a number. 23:25:59 it's VAL. 23:26:17 Okay, this is very slow but pretty. 23:26:24 CVI is the inverse of MKI$, which is for formatted int-printing. 23:26:38 STR$/VAL seems to be the human-readable pair. 23:26:44 Aw, overflow. 23:26:45 I don't really remember any of this stuff. 23:27:00 Okay. 23:27:02 *Hokay. 23:27:07 What now, hrm 23:28:07 http://library.thinkquest.org/19436/download/gorilla/gorilla.bas 23:28:12 gorilla.bas; albeit double spaced. 23:28:26 Exciting! 23:28:27 That thing would be useful (in a very limited sort of way) for quick prototyping of... well, something; if it were, you know, quick. 23:28:41 "thing"? 23:28:46 QBasic? 23:28:49 qbasic. 23:29:02 I am very upset you do not consider it a viable programming choice :P 23:29:31 GORILLAS RUNS :D 23:29:41 *RUN 23:30:17 or possibly, *GORILLA 23:31:21 IF again$ = "y" THEN GOTO spam 23:33:26 haha, setting gravity=-1 in gorillas messes everything up 23:33:43 velocity 1? the banana just shoots off into space. veeery slowly. 23:38:39 Incidentally, VGA can do this unchained mode, where you get four 64K planes, with plane 0 containing pixels 0, 4, 8, .., plane 1 containing 1, 5, 9, ... and so on; then you can set a write mask of 0b1111 and write a pixel to all four planes simultaneously; that's quite a bit faster if you just need to write the same value to all pixels. 23:39:22 (And of course it lets you use all the 256K memory a VGA card has, so you can do double-buffering with hardware-assisted page-flipping.) 23:39:29 Hmm 23:39:34 Is there any way to have more than one palette at a time? 23:39:44 Like, changing the palette in the middle of a redraw? 23:39:49 It's just that things are more complicated then, and whenever you add a bit of qbasic logic, things get real slow real fast. 23:40:00 Then you could have >256 colours 23:40:39 I don't think I've seen such tricks done on a PC, really. I don't think you can get any interrupts at particular raster-lines or anything. 23:40:54 Mm. So drawing is atomic, then. 23:40:54 You'd need some pretty careful cycle-counting, at the very least. 23:41:11 Not very doable in a qbasic program. 23:41:16 fizzie: what if you drew only some of the pixels per redraw, and flashed between them really fast? I guess the hardware isnt' fast enough to make that plausible 23:41:48 -!- MigoMipo has quit ("QuitIRCServerException: MigoMipo disconnected from IRC Server"). 23:42:11 lament: link to haccordion? 23:42:15 Since I have leopard now 23:43:05 Oh, I'm sure you can flash between two screens at 60hz (it's just a couple of writes to the VGA registers to switch the display start offset) so you can draw two pictures with close-enough colors, and that way get colors between the ones in the (static) palette, if you don't mind the horrible flickering. 23:43:15 fizzie: in asm it could be fast enough. maybe? 23:43:26 but yeah, N segments gives you 256*N colours 23:43:39 so if you have a segment per pixel the possibilities [for your epilepsy] are boundless 23:44:30 "Okay this is subjective because it depends on your definition of large. When I say large, I mean about 6 gigs or so. Because your company's source tree is probably that large." 23:44:34 You can fit up to four frames of that 320x200 256-color mode on the standard video memory. I really don't have a clue how slow the palette reprogramming is. 23:44:34 That is one shit company. 23:47:37 Hokay, mandelbrot. 23:47:42 Let's see if I can't done figure this out? 23:52:38 er wait 23:53:30 Oh dear, my mandelbrot leavs a flat nothing,. 23:56:34 -2 to 2 on both axes if you want all of it 23:56:36 iirc 23:56:44 Actually, it's just a bug. 23:56:46 Well. 23:56:49 Maybe not quite a bug, just. 23:56:52 It takes 5 years. 23:58:07 I think the (-2,-2) .. (2,2) range is not the aesthetically most pleasing one. I don't remember what I've used, though. That certainly should contain all of it, anyway, so you can fine-tune. 23:58:48 might do something refining, painting larger squares first 23:59:16 Oh well, I'll stick to simpler fractals. 23:59:27 I can render a sierpinski in 4.5 seconds, you know. 23:59:44 Actually it's more like 8 seconds 2009-03-15: 00:09:32 -!- FireyFly has quit ("Reboot"). 00:11:58 fizzie: do you think I should write a simple math plotter thingy in qbasic, or will I go mad from the whole "parsing infix" thing? 00:12:08 09:51:34 my laptop is the brokenness now. :( 00:12:08 09:51:39 "was fun while it lasted". 00:12:10 09:52:08 although in retrospect ~1550eur was a bit much for a machine that worked for six days. 00:12:13 — 2004-09-23 00:12:41 I think that was the iBook. They (of course) warranty-replaced it. 00:13:28 ehird: Parsing infix isn't *that* bad. It is at least context-free... 00:13:49 pikhq: In QBasic. 00:14:17 Mooz, who used to be here around the beginning, wrote a really nice function-plotter, with a nice GUI and 3d-like buttons and everything, in QBasic. 00:14:35 11:58:08 mooz at least wrote a.. pretty advanced one, in qbasic. 00:14:35 operator parsing is simpler than general 00:14:40 Right after plotting discussion. 00:14:44 Kay, so that's slightly annoying. 00:14:48 Not hard, though. 00:14:49 ehird: Heh. Well, he did. 00:14:52 fizzie, if you're going to say something, think if I've already been on that trail ;-) 00:15:02 but my idea is basically a trivial input language, that is, 00:15:24 basic mathematical notation like sin(x) or whatever, then it'd prompt for a range for x, then you get a plot drawn in 10 minutes. 00:16:08 Oh, I also mentioned that it was a high-school exercise. (Although the exercise was just "plot polynomials", mooz's solution was the typical overkill one.) 00:16:32 2006-12-02:20:44:13 I remember longing for arrays when I coded in qbasic 00:16:33 they exist, dude. :P 00:16:43 What sort of coder *wouldn't* go for overkill (if time allows)? 00:16:59 I don't think I need to say anything any longer, since apparently I've already said it before. 00:17:09 2007-10-26:12:28:50 pset is the QBASIC name for the pixel-set function 00:17:10 no no no 00:17:16 it's POKE x+(y*w),col 00:17:18 slly. 00:17:24 fizzie: yeah you said so before 00:18:30 It's also (IIRC) faster, if you're plotting all pixels of the screen in a "for y = ... for x = ..." loop, to keep a incremented index p for the POKE and not recalculate x+(y*w) every time. Doesn't help for the generic pixel-setting case, of course. 00:19:01 I wonder how easy a voxel renderer would be in qbasic 00:19:01 so POKE is not arbitrary memory assignment? 00:19:07 oerjan: it is 00:19:07 It also might not be faster, since it's a whole basic statement to increment p. I did benchmark. 00:19:07 you do 00:19:09 oerjan: It... Is. 00:19:11 DEF SEG = &HA000 00:19:14 to get into graphics memory 00:19:20 so then all your POKEs are offsetted from the start of graphics memory 00:19:24 so POKE x+(y*w) works 00:19:26 oh 00:19:37 God, doing VGA from BASIC... 00:19:40 i wondered why you had no base offset 00:19:49 pikhq: What's odd about that? :P 00:19:53 The pointer taken by POKE is just the 16-bit intra-segment address. 00:19:55 x86 is silly. 00:19:56 I mean, it DID come with tons of drawing functions. 00:20:29 I still find it weird for a normal program to be doing anything to video memory. 00:20:33 aha so it's x86 specific 00:20:40 (and yes, I know that's how X does things) 00:21:07 DOS is x86 specific. 00:21:09 As far as I know. 00:21:12 oerjan: Yeah; x86 has the graphic memory mmaped at a few places... 00:22:29 ehird: Unless by "DOS" you mean "anything that was called a Disk Operating System". ;) 00:22:37 :P 00:22:45 ProDOS FTW. :p 00:22:49 Also, for full-screen thingies, LINE is really really fast. 00:22:53 On a x86 (but not a x86-64) Linux, you can cat /proc/iomem to see some of the mappings. 00:22:55 LINE (0,0)-(320,200),I,BF 00:22:58 fills the screen instantly 00:23:21 fizzie: I just did cat /proc/iomem on my x86_64 system. 00:23:26 fizzie: me too! 00:23:28 Seems to show all the mappings. 00:23:40 I wouldn't know what mappings there should be 00:23:51 My x86-64 system doesn't have those 000a0000 video-memory thingsies that there used to be. 00:24:04 Only my 32-bit thing shows them: 00:24:07 000a0000-000bffff : Video RAM area 00:24:07 000c0000-000cb3ff : Video ROM 00:24:07 000cc000-000cc7ff : Adapter ROM 00:24:21 00010000-0009cbff : System RAM 00:24:36 Oh, *those*. 00:24:45 I think that's what we were talking about. 00:24:49 ehird: fills the screen? wouldn't that be a rectangle rather than a line? 00:25:09 oerjan: That's the BF modifier. :p 00:25:17 oerjan: Thus "BF" 00:25:25 The B modifier draws a box instead of line, the BF modifier draws a filled box. 00:25:35 There's just CIRCLE, LINE and PSET, pretty much. 00:26:06 Oh, and PAINT, of course. Which does a flood-fill type of thing. 00:26:11 don't forget DRAW! 00:26:25 DRAW is very unsimple, though. 00:26:40 Yes, but, 00:26:43 enemy$ = "asd8uA(*EU*(UQ*(" 00:26:49 You can't beat it for defining sprites. 00:27:12 Sure, and it might even be reasonably fast, since it's not implemented in qbasic. 00:27:58 -!- bsmntbombdood has quit (Read error: 145 (Connection timed out)). 00:28:26 ■ To execute a DRAW command substring from a DRAW command string, use 00:28:26 the "X" command: 00:28:28 DRAW "X"+ VARPTR$(commandstring$) 00:28:30 ^ I don't get this 00:28:32 why not just 00:28:34 DRAW commandstring$ 00:29:09 If you want to refer from your "top-level" command string to sub-scripts, that's what X is for. 00:29:22 That particular example doesn't really make sense, though. 00:29:46 23:29 fizzie: If you want to refer from your "top-level" command string to sub-scripts, that's what X is for. 00:29:47 huh? 00:29:57 Just look at that other example. 00:30:11 Triangle$ = "..."; DRAW "C2 X" + VARPTR($Triangle) 00:30:15 DRAW "C2 X" + VARPTR$(Triangle$) 00:30:17 that could just be 00:30:21 DRAW "C2 " + Triangle$ 00:30:28 Yes, but then you'd be constructing a possibly really long string. 00:30:33 oh. 00:30:34 If you have a complicated Triangle$. 00:30:48 I'm not sure if it supports nested X, though. :p 00:31:39 wow, drawing a circle with DRAW is a pani in the arse 00:31:41 *pain 00:31:56 What I think is funny is that the X argument is a raw memory offset to the variable. 00:32:26 panis rectalis 00:33:35 ... rectal bread? 00:33:45 well, yes. 00:33:51 :DD 00:34:00 Is that what "PR" means in context of, you know, business stuff and so on? 00:34:18 obviously. 00:35:21 OMFG 00:35:22 fizzie: 00:35:25 I sighted the ehird fractal 00:35:26 http://www.advsys.net/ken/klab/labdemo2.png 00:35:32 16:30:54 I think I'm going to try porting this next: http://www.advsys.net/ken/klab/labdemo2.bas 00:35:32 16:31:19 it's supposed to look like this when it runs: http://www.advsys.net/ken/klab/labdemo2.png 00:35:35 16:31:47 I've done raytraced 2.5d before, but I've never tried texture-mapping 00:35:37 I'm famous IN THE PAST> 00:37:07 -!- Judofyr has quit (Remote closed the connection). 00:37:30 I don't get it 00:37:41 the squares 00:37:46 http://imgur.com/5ZN9A.png 00:38:01 It's a fractal that we've established predates me by a long way but I think it's mine :P 00:38:36 -!- bsmntbombdood has joined. 00:42:13 fizzie: http://www.advsys.net/ken/klab/labdemo2.bas 00:42:53 "CALL int86old" makes it, uh, not run. 00:42:53 oh 00:42:57 "unless you're stuck using qbasic" 00:42:57 :P 00:43:01 fractal squatting. the possibilities are endless. 00:43:37 Well, it runs. 00:43:40 Just... sloowly... 00:43:44 of course, xkcd already established that the internet is a hilbert curve. 00:43:45 As in, several seconds per key. 00:43:52 Yes, it's for quickbasic. (And even there it's not in the manual, because it's been sort-of-deprecated with the CALL INTERRUPT statement.) 00:44:19 Yes, well, ti works in qbasic. 00:44:22 If you comment that out. 00:44:26 It's as slow as imaginable, but. 00:44:37 Anyone have quickbasic? :P 00:44:46 I, somewhere. 00:44:57 I'm sure it's findable in the interwebs too, might even be faster that way. 00:45:09 qb4.5 is the version I've seen "everywhere". 00:45:24 It even uses POKEs and it's still slow 00:45:54 Oh, I think I might've found my copy. 00:46:02 At least there's qb.arj in this tarball. 00:46:15 There's also sbbasic.exe, I wonder what that does. 00:46:39 molasses basic. when you have too much time on your hands. 00:47:09 that exists, it's called qbasic 00:47:23 so it's an oxymoron? 00:47:32 qbasic != quickbasic 00:47:52 or wait, does that need to be contradictory from the words themselves? 00:48:01 A subset of QuickBASIC 4.5, named QBasic, was included with MS-DOS 5 and later versions, replacing the GW-BASIC included with previous versions of MS-DOS. Compared to QuickBASIC, QBasic is limited to an interpreter only, lacks a few functions, can only handle programs of a limited size, and lacks support for separate program modules. Since it lacks a compiler, it cannot be used to produce executable files, although its program source code can still be co 00:48:04 mpiled by a QuickBASIC 4.5, PDS 7.x or VBDOS 1.0 compiler, if available. 00:48:22 Oh, sbbasic is just some sound blaster drivers. :p 00:49:03 hm maybe that's actually irony 00:49:37 so q stands for "so slow we didn't have time to write it out"? 00:49:55 Yes, qb.arj had QuickBasic 4.5. 00:50:18 It's got a lot longer manual, btw; in multiple files and everything. 00:50:51 At least I think it was longer, not sure 00:51:20 And of course it has the Run/Make EXE file... option. 00:52:42 lament: 00:53:09 oh 00:53:10 hi 00:53:12 mm 00:53:18 haccordion 00:53:19 gimme :-P 00:53:57 lemme findit 00:55:48 http://filebin.ca/vcfm/haccordion.tar.gz 00:55:57 yaey 00:56:13 hey guys an unknown informant has just given me quickbasic if anyone wants it let me know. 00:57:06 wow 00:57:08 it really is quick 00:57:12 it runs my sierpinski program in <1sec 00:57:13 :P 00:59:36 hmm 00:59:38 Maybe they added some delay loops to qbasic so that people would be more inclined to buy. 00:59:45 on one hand I like qbasic because it's slow and you have to do crazy trix 00:59:51 on the other hand 00:59:54 this is acutally usable 01:00:35 Also, int86old doesn't work, fizzie 01:00:37 It's undefined 01:01:15 It might have a bit different syntax in qb45 than what the file expects. 01:01:17 Checking. 01:01:56 Dunno, http://support.microsoft.com/kb/57385 claims it's still in qb45. 01:02:29 maybe it needs UPPER CASE 01:02:42 Nope 01:04:02 Hmm. 01:04:07 It might need a library. 01:04:24 You should probably fix Options/Set Paths... anyway. 01:04:28 wtf, CALL INTERRUPT fails. 01:04:32 fizzie: aha 01:05:09 hm 01:05:57 How do you add a library, I wonder.. 01:06:03 Although it should load the default QB.QLB by default. Who knows. 01:06:06 ah 01:06:10 $INCLUDE:'QB.BI' 01:06:30 -!- Corun has quit (Read error: 110 (Connection timed out)). 01:06:51 that gives a syntax error >_< 01:07:28 Oh. 01:07:31 It's meant to go in a comment. 01:07:48 fizzie: Uh, you got BI.LIB? 01:08:03 err 01:08:04 QB.LIB 01:08:24 QB.LIB should be in the package. 01:08:38 Ah 01:08:39 So it is 01:08:43 No QB.BI, though. 01:10:05 -!- Corun has joined. 01:10:44 -!- neldoret1 has joined. 01:13:28 Yes, no. I'm not completely sure that is a complete set of qb45 files. 01:13:46 It probably has a rather colorful history before getting to me. 01:17:42 Hey. 01:17:51 Hey. 01:18:15 lament: what do I have to turn on again? 01:18:19 This msbasic-softlib thing, where I got the helpmake thing for .hlp decompilation, also has qb4crit.exe, which has qb.lib, int86old.asm, int86old.obj and something like that. 01:18:26 fizzie: I have qb.lib 01:18:33 just not qb.bi 01:18:35 It might be a better qb.lib, who knows. 01:18:46 And anyway int86old.obj. 01:19:54 lament: 01:19:57 % ./play_note 01:19:57 play_note: Prelude.(!!): index too large 01:20:25 ah wait 01:20:26 works now 01:21:28 Incidentally, what is QB.BI supposed to do? int86old definitely is somehow included in qb.lib, since strings shows a lot of related strings. 01:21:34 fizzie: header file 01:23:25 -!- kar8nga has quit (Read error: 110 (Connection timed out)). 01:23:30 Well, it's in http://neil.franklin.ch/Projects/Mandel/qb/qb.bi 01:23:38 It looks like just a couple of DECLARE SUB lines. 01:24:02 Incidentally, the directory sounds like a mandelbrot plotterer. 01:24:16 -!- neldoreth has quit (No route to host). 01:24:30 Have to sleepify now, though. 01:24:46 Brains.. 01:24:52 oh wait, that's zombify 01:25:28 lament: 01:25:30 it works 01:25:35 the only issue now is my suckitude at musak 01:25:41 * oerjan laments that it works 01:25:55 -!- BeholdMyGlory has quit (Read error: 104 (Connection reset by peer)). 01:25:55 woe us! 01:27:45 -!- Corun_ has joined. 01:31:50 -!- KingOfKarlsruhe has quit (Remote closed the connection). 01:32:25 ehird: now you just have to learn to play the accordion 01:32:39 lament: I see no resemblance on haccordion :P 01:32:40 oerjan, let's make an awful rhyming poem about fish and their use of intercal in an enterprise environment 01:32:58 i suppose we cod do that 01:32:59 ehird: same layout 01:33:19 lament: well, true 01:33:26 oerjan: these fish, see, they're very fat 01:33:54 are you trying to make a pun here? 01:34:12 oerjan: THAT WAS MY NEXT LINE ;_; 01:35:25 fishing lines need bait, you know 01:35:30 -!- Corun has quit (Connection timed out). 01:35:57 oerjan: and anyway, these fish used INTERCAL, so 01:37:45 i sense a lack of substance here. or perhaps the wrong substance, what are you smoking? 01:38:07 oerjan: are these part of the poem? they're not very rhymey. 01:38:26 or perhaps it's just because i'm not very good at english fish names 01:38:54 ghoti 01:39:32 i wish i shaw that coming 01:40:21 these fish were hummin 01:40:51 just for the halibut 01:41:11 for they had many butt. s. and used INTERCAL, 01:41:50 it was an eel-advised choice 01:42:01 and they turned to james joyce 01:42:18 but still they could not pronounce it 01:43:04 and thus, they used unary XOR to denounce it 01:43:26 and the eel was very XORry 01:43:50 for the damage it had caused; and they SELECTed some bits from its tears, 01:44:49 and STASHed them behind their ears 01:45:50 and fulfilled everybody's worst fears 01:45:54 and 01:45:56 ^U 01:45:56 ^U 01:45:57 I 01:45:58 ruined it 01:45:59 ^U 01:46:01 ^U 01:46:06 and said, "PLEASE DON'T GIVE UP", we're right behind you 01:47:18 it was all a red herring, mind you 01:47:30 and they rhymed you with you 01:48:57 quite insane, it seems, i find you 01:49:16 yeah, but, then, I climbed mount everest. 01:49:20 and then they destroyed the meter with glue 01:49:22 with the fishes, on dishes, and, 01:50:50 a seagull too 01:51:00 a 01:51:04 (named Jonathan) 01:51:10 a (named Jonathan) Jonathan 01:51:18 [ Ed: Please be less like Finnegan's Wake in future. ] 01:51:32 —uture–uture, Fish, INTERCAL, 01:51:41 and then they down the riverrun 01:51:53 alpyalpy 01:51:56 Alpy, what was that? 01:51:58 Oh, right, fish, 01:52:20 fishy fishy fishy fishy fishy fishy fish 01:52:35 And then they won the prize for the fishiest poetry in that decade 01:52:38 Then an explosion 01:53:08 Then an implosion 01:53:09 Wibby rollins 01:53:10 Wibby rollins 01:53:11 Wibby rollins 01:53:13 Wibby rollins 01:53:14 I hope you are writing this down 01:53:20 so we can burn it later 01:53:20 [oerjan: i have grep.] 01:53:29 Can we burn the entire channel? 01:53:38 the Fish sayd; "Byrn the wytch! Wemyst hafst only INTERCVL"; 01:54:33 Apparently we are smoking trout, all of us. 01:54:44 Trout? Well, I was on weed, but... 01:54:47 (^lie) 01:55:16 no, it's the unvarnished trout 01:56:03 oh, just go route 01:56:06 these IP addresses 01:56:18 I hope it will be a whale before we try something this stupid again 01:56:54 ehird: i hear VB is good for such stuff 01:57:09 gui vsual interface riverrun 01:57:50 The End. 01:58:12 except that was fake; 01:58:14 i the author lie 01:58:20 ~THE END~ 01:58:26 oh jesus 01:58:34 wut 01:58:35 whew 01:58:41 this code has been running for like 18 hours 01:58:59 i expected it to take like 1 hour 01:59:01 bsmntbombdood: oh, i thought you too were afraid that the poem would go on longer 01:59:21 ditto 01:59:24 :D 02:01:23 it was a bit short on rhyming, but i think we nailed the "awful" part. 02:01:52 fishherel 02:01:57 this puts us on the same level with the greats like e.e.cummings 02:02:22 i wish i saw that cummings 02:10:38 -!- [helloworld] has joined. 02:10:49 -!- [helloworld] has left (?). 02:30:29 -!- Corun_ has quit ("This computer has gone to sleep"). 02:48:21 -!- bsmntbombdood has quit (Connection timed out). 02:49:14 -!- bsmntbombdood has joined. 03:20:59 -!- neldoret1 has quit (Read error: 113 (No route to host)). 03:34:57 -!- GreaseMonkey has joined. 04:09:18 -!- judicaster has changed nick to comex. 05:02:56 -!- kerlo_ has joined. 05:03:21 -!- kerlo_ has quit (Client Quit). 05:23:09 -!- Sgeo has quit ("Leaving"). 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:19:06 -!- oerjan has quit ("Good night"). 08:56:43 [ Ed: Please be less like Finnegan's Wake in future. ] <-- :DDDD 08:57:59 ehird and oerjan: that was very entertaining :D 09:00:56 about counting CPU cores... 09:01:38 I think that there are 11 cores in this house atm. Counting computers and mobile phones. ;D 09:03:41 did you count the microwave? 09:03:53 lament, we don't have one 09:04:18 lament, and our TV is too old to have a computer in it. It doesn't even support Text TV 09:04:32 -!- neldoreth has joined. 09:04:41 I guess the VCR has some computer in it though. 09:04:45 yeah 09:05:01 lament, what about fridge/freezer? 09:05:09 hopefully not 09:05:17 it should just be a simple thermostat 09:05:22 mhm 09:05:24 dishwasher? 09:05:34 washing machine? 09:05:37 no clue, possibly 09:06:00 both the dishwasher and the washing machine have digital time remaining displays 09:06:08 and are quite new 09:06:56 oh I forgot the ADSL modem. It runs on a MIPS. 09:07:15 some broadcom chipset thingy iirc 09:09:34 -!- GreaseMonkey has quit ("Quit: Quit: Quit: Quit: Quit: Quit: Quit: Quit: Quit: Quit"). 09:09:37 lament, my radio is sufficiently complex and with a menu system on the display, so I guess that is another CPU there... 09:10:22 oh and digital cameras. That adds another two CPUs at least (two digital cameras in this house) 09:10:54 lament, when you think about it, it is scary how many things contain CPUs... 09:11:13 when you think about it, it's scary how many things contain gears 09:11:44 oh right, my keyboard (as in keyboard/synth, not keyboard/qwerty) 09:12:00 actually perhaps even keyboard/qwerty 09:12:04 depending on the keyboard 09:12:16 lament, I doubt an old PS/2 keyboard has a computer built in 09:12:25 yeah, maybe not 09:12:42 i've read somewhere some keyboards actually have forth stuff on them 09:13:29 I also have one of those horrible ultra-slim usb keyboard, I guess it contains some more stuff, but a full blown CPU? 09:13:51 lament, to that I say: [citation needed] 09:14:09 to that, I say: [lmgify] 09:14:44 what does that mean? Google says: Did you mean: magnify Top 2 results shown 09:14:46 -!- Slereah has quit (Read error: 60 (Operation timed out)). 09:15:09 lament, ? 09:15:36 sorry, it's lmgtfy 09:16:06 -!- Slereah has joined. 09:16:19 oh I see 09:17:13 anyway, I suspect my usb joystick has some CPU built in. Considering it has a programmable "multi function display" at the base of the throttle 09:18:08 (btw: http://www.saitek.com/uk/prod/x52pro.htm) 10:07:54 -!- kar8nga has joined. 10:21:04 -!- sebbu has quit ("@+"). 10:52:29 -!- Jophish_ has joined. 11:01:56 -!- MigoMipo has joined. 11:11:01 -!- Jophish has quit (Success). 11:35:18 -!- KingOfKarlsruhe has joined. 11:53:49 -!- Judofyr has joined. 11:55:20 -!- Judofyr_ has joined. 12:01:48 -!- Mony has joined. 12:03:15 -!- Dewio has quit (Remote closed the connection). 12:03:24 -!- Dewi has joined. 12:11:21 -!- Judofyr has quit (Read error: 110 (Connection timed out)). 12:16:13 -!- Jophish_ has quit (Read error: 104 (Connection reset by peer)). 12:21:37 -!- k has joined. 12:21:59 -!- kar8nga has quit (Nick collision from services.). 12:22:02 -!- k has changed nick to kar8nga. 12:26:08 -!- sebbu has joined. 12:47:47 -!- MigoMipo has quit (Nick collision from services.). 12:52:11 -!- KingOfKarlsruhe has quit (Remote closed the connection). 13:14:37 -!- Corun has joined. 13:16:01 -!- kar8nga has quit (Read error: 110 (Connection timed out)). 13:19:16 -!- Asztal^_^ has joined. 13:22:00 -!- Asztal^_^ has changed nick to Asztal_. 13:22:03 -!- Hiato has joined. 13:35:13 -!- oklofok has joined. 13:35:17 hello. 13:35:33 -!- Azstal has quit (Read error: 110 (Connection timed out)). 13:42:19 http://www.vjn.fi/oklopol/music/ancoolone2.mid see what the lack of a working computer is doing to me 13:54:02 Criminal. 14:30:07 -!- tombom has joined. 14:34:52 -!- BeholdMyGlory has joined. 15:07:33 -!- tombom has quit ("Peace and Protection 4.22.2"). 15:21:21 -!- Corun has quit ("This computer has gone to sleep"). 15:22:14 -!- Corun has joined. 16:04:58 -!- BeholdMyGlory has quit (Remote closed the connection). 16:15:30 -!- Hiato1 has joined. 16:33:10 -!- Hiato has quit (Read error: 110 (Connection timed out)). 16:40:51 -!- FireyFly has joined. 16:43:48 -!- Corun has quit ("This computer has gone to sleep"). 16:47:02 -!- Corun has joined. 16:49:43 -!- BeholdMyGlory has joined. 16:59:15 -!- tombom has joined. 17:04:47 -!- ais523 has joined. 17:06:11 -!- kar8nga has joined. 17:44:18 hi ais523 17:44:33 hi 17:45:19 it is quite likely cfunge will gain some inline asm soon (with C fallbacks of course). I can't find any other way to make GCC generate what I want. 17:46:01 haha 17:47:13 -!- kar8nga has quit (Read error: 60 (Operation timed out)). 17:47:38 ais523, well issue is I have a lot of L2 cache misses when filling the static area with spaces at startup. With SSE there is a way around it, with the same effect as write-combining would have. 17:48:09 AnMaster: you're insane. But I don't consider that a bad thing 17:49:09 ais523, when I tried with __builtin_ia32_movntps() GCC instead generates stupid "lets load the data into the xmm register with the slower unaligned read instruction even though the compiler put .align 16 in the code to make it aligned" 17:50:11 well, gcc isn't perfect 17:50:14 how well does icc do on the same code? 17:50:16 ais523, anyway with -ftree-vectorize you get instead a "lets pollute cache". 17:50:33 ais523, well, I'm on AMD. But it decides to pollute cache too 17:50:58 well, hand-crafted asm can normally beat even the best compiler-generated asm in some cases 17:51:57 ais523, well at least when it is being as stupid as in this case. Now to figure out how to hide this for other compilers. Since most seems to define __GNUC__ these days (to be able to parse system headers...) 17:52:20 #if defined(__x86_64__) && defined(__GNUC__) && defined(__SSE__) && defined(__SSE2__) && !defined(__INTEL_COMPILER) 17:52:28 well that fixes it for the x86_64 variant 17:52:33 haven't written a 32-bit one yet 17:52:48 also no idea how clang will handle it. Clang defines __GNUC__ too 17:52:52 are you going to write an inline asm version for gcc-bf? 17:52:58 I must get less busy in RL so I can finish it 17:53:02 ais523, hah 17:53:22 ais523, icc fails on labels in inline asm for some reason 17:53:24 wonder why... 17:54:24 * pikhq wishes that non-GNU C compilers would not define __GNUC__. 17:54:35 * pikhq also wishes that system headers wouldn't require __GNUC__. 17:54:38 pikhq, same 17:54:43 http://paste.lisp.org/display/77071 btw 17:54:46 that is what I have atm 17:54:52 ais523, what do you think of it? 17:55:07 indention is off yes 17:55:24 I think it looks insanely platform-specific 17:55:31 and you're doing this just to fill memory with spaces? 17:55:36 ais523, I have fallbacks as you see 17:55:42 what if you put a load of literal spaces in the initialised read-write data section instead? 17:55:49 would that be faster or slower? 17:55:55 eh 17:56:03 ais523, I would get a very large binary 17:56:16 well, yes, but would that slow the program down? 17:56:18 I suppose it would 17:56:22 (gdb) print sizeof(static_space) 17:56:22 $1 = 2097152 17:56:27 that is quite large 17:56:44 Jebus. 17:56:56 what? 17:57:03 That is rather large. 17:57:09 AnMaster: typical C++ program size... 17:57:16 ais523, well cfunge is in C 17:57:25 and it is likely faster to do it this way than read it from disk 17:57:25 yes 17:57:30 but I mean 2MB isn't insanely large 17:57:35 but yes, reading it from disk might be slow 17:57:50 unless it's in disk cache, how slow is blitting the initialisation from disk cache to processor cahce? 17:57:53 *cache? 17:58:00 of course for optimal performance you should use a ram disk for cfunge 17:58:01 :D 17:58:05 * AnMaster runs 17:58:18 also, insane alternative: instead of storing fungespace as-is in memory, store everything with 32 subtracted from it 17:58:31 and allow for that whenever you do reads or writes 17:58:35 ais523, also no idea, but why would it need to go to CPU then? RAM-RAM DMA? 17:58:52 ais523, that would mess up the range... 17:58:59 + a few other things 17:59:08 well, yes, but all those problems can be dealt with 17:59:16 I'm wondering how costy the code for dealing with them would be 17:59:21 probably more than this 17:59:27 this way is rather fast actually 17:59:40 And then, you could have the fungespace stored in the uninitialised read-write data section. ;) 17:59:42 oh well, then, let's stick to inline asm for filling memory with spaces 18:00:15 and well -ftree-vectorize can be used on any platform and work on the C fallback loop. Which is still better than non-vectorised. 18:00:27 pikhq: you need at least a 66-bit CPU to fit all of fungespace in memory, assuming an 8-bit word length 18:00:32 in fact I would generally recommend using -ftree-vectorize for cfunge 18:00:38 in practice, probably 67-bit, to fit other things in there as well 18:00:47 and that's assuming 32-bit int, which on a 67-bit processor is unlikely 18:00:52 66-bit CPU? 18:01:08 AnMaster: there's nothing mathematically impossible about that, it would just be unusual 18:01:28 ais523, well yeah. if x87 uses 80-bit floats... Why not. 18:02:07 80 bits, aligned to 96 bits (x86) or 128 bits (x86_64) in memory 18:02:19 iirc 18:02:49 ais523, btw I ran into a weird issue with inline asm 18:03:05 : [space] "=m"(static_space) that expands to: static_space(%rip) 18:03:16 so I couldn't use it, since I needed to offset it by %rax 18:03:31 still had to list it as out var 18:03:42 ais523: I suspect PAE on x86_64 would barely suffice. ;) 18:04:00 pikhq: heh 18:04:35 pikhq, err. A 32-bit funge implementation would use a funge space that consists of 2^32 * 2^32 cells. Each cell is 32 bits 18:04:42 on the other hand, assuming 16-bit ints, you could probably fit the whole thing into memory on some 64-bit computers available nowadays 18:04:46 well not exactly 18:04:50 since it is signed 18:05:12 AnMaster: signed/unsigned makes no difference to the number of bits 18:05:21 they're just different ways to interpret bit patterns 18:05:23 ais523, well it makes to number of cells 18:05:26 iirc? 18:05:28 no it doesn't 18:05:31 hm 18:05:32 ok 18:05:36 think of indexing the cells in binary 18:05:37 then I misremembered 18:05:38 -!- sebbu2 has joined. 18:05:45 ais523, well ok. 18:05:51 that should make it pretty obvious that the number of cells is the same, signed or unsigned 18:06:06 the number is slightly smaller if you use one's complement or sign-magnitude, and don't include negative zero 18:06:08 but who does that nowadays? 18:06:13 pikhq, this is why you use sparse storage. Like a hash map or whatever. 18:06:23 ais523, hm 18:06:45 AnMaster: what happens if cfunge runs out of memory trying to store things in fungespace? 18:06:46 pikhq, cfunge does that. But also uses a static array for the most often accessed area 18:06:53 g/p reflects? 18:06:53 That is quite sane. 18:07:31 pikhq, now cfunge also supports 64-bit cells as a compile time option. that means a 4 MB static array. 18:07:34 ais523, hm... 18:07:53 array[sizeof(int)][sizeof(int)] is much nicer. 18:08:11 pikhq: don't you mean array[1< pikhq, I think array[x+y*FUNGESPACE_STATIC_X] is easier to read 18:08:31 s/int/size_t/ 18:08:39 and before anyone mentions * vs bitshifts 18:08:44 ;) 18:08:46 AnMaster: multiplicative addressing? why? 18:08:47 any compiler optimise it 18:09:01 array[x][y] comes to exactly the same thing and is easier to read 18:09:23 ais523, in array[x][y] are each column stored together or each row? 18:09:43 AnMaster: you get an array of arrays 18:09:45 ais523, that makes a huge difference in locality of reference 18:09:48 which are stored contiguously in memory 18:09:51 for common funge code 18:09:57 as for which is stored together, it depends on which way round you put the subscripts 18:09:58 1) file loading is line by line 18:10:00 which is clearly up to you 18:10:12 ais523, yes indeed 18:10:23 ais523, anyway I find the way I did easier to read. 18:10:44 ais523, + makes the code that initialises it easier to write 18:12:57 ais523, anyway about OOM. I don't know exactly 18:13:20 do you check malloc return? 18:13:24 or do you not do that for speed reasons? 18:13:32 ais523, well yes I do, but that is deep in the hash code library 18:14:08 and you can tell GCC you don't expect it to fail with __builtin_expect(), The linux kernel uses it a lot. So does this local feature branch of cfunge 18:14:22 Yes I'm probably insane 18:14:26 :) 18:14:36 ah, makes sense, a branch-predicted malloc 18:14:41 -!- Judofyr_ has quit (Remote closed the connection). 18:14:43 why don't you inline malloc for extra speed gains? 18:15:22 ais523, that would be highly unportable. Despite what you may think cfunge is mostly portable across C99+POSIX.1-2001 18:15:52 there are a few issues with the build system on OpenBSD, but I got that working by manually writing the gcc command line 18:15:55 AnMaster: surely there must be some more portable way of doing it? 18:16:22 ais523, well. Calling malloc()? 18:17:35 ais523, most time isn't spent in there anyway. Most time remaining now is spent on pushing strings on stack. But I have started working on a solution that avoids the char<->funge_cell translation, and reversed order (stack grows up in cfunge). 18:17:56 how does it work? 18:18:03 It turned out using reversed extra wide strings worked better in some code. 18:18:09 I can't fix all that way 18:18:12 but some cases. 18:18:32 also for certain STRN instructions you can skip popping/pushing at all 18:18:55 like the one for string length. Just scan on stack. 18:19:17 hi 18:19:37 http://www.vjn.fi/oklopol/music/ancoolone2.mid <- i like this 18:19:58 hi ehird 18:20:01 ais523, really when it comes to system time malloc() isn't much of an issue. Most libc allocates in chunks. And even then fork() and waitpid() is what takes most time in mycology. (for the PERL fingerprint) 18:20:06 when it comes to *system time* 18:20:13 AnMaster: you should allocate your own heap with mmap 18:20:21 it's trivial, overcomitting is universal 18:20:29 AnMaster: you should write your own faster version of perl 18:20:31 just allocate a shitload and it'll just about always work 18:20:38 ehird, well anonymous mmap() isn't portable 18:20:43 AnMaster: mmap /dev/zero 18:20:45 ehird: overcommitting isn't portable either 18:20:52 ais523: well, yes, but it works on most things 18:20:53 ehird, hm ok. 18:20:55 it will be very very slow in gcc-bf, for isntance 18:21:01 ais523: he can fallback 18:21:07 compile time option, say 18:21:14 because gcc-bf will go through and organise memory so that it can jump about in that, it takes ages 18:21:16 linux/bsd do overcommitting, probably solaris too 18:21:27 does Windows? 18:21:32 and those are pretty much the only widely used unixes, the rest can set -DNO_MMAP_HEAP or w/e 18:21:36 ais523: cfunge doesn't work on windows 18:21:45 ais523: Still doing stuff with GCC-bf? 18:21:51 Spiffy. 18:21:53 pikhq: it's on hold while I finish my degree 18:21:55 Ah. 18:21:56 btw I did some testing with prefetching cache lines in file loading. It resulted in a speedup on my old Pentium 3, but a slowdown on my Sempron 18:21:58 Fair enough. 18:21:58 but I still intend to finish it sometime 18:22:12 but yeah, with mmap you never have to allocate, just access memory and bam 18:22:17 = cut malloc() time out entirely 18:22:26 also, with mmapping /dev/zero, you get all 0s 18:22:30 so you can offset fungespace by 32 18:22:35 I think that is because AMD64 auto prefetches when you access several cache lines after each other. So the instructions are nops then basically 18:22:35 = no initialization needs to be done 18:22:38 it's already zeroed out 18:22:39 ehird/AnMaster: you might want to look into using sbrk if you never free memory 18:22:42 great, right? 18:22:43 Glibc malloc does mmaps when efficient. 18:22:44 -!- oerjan has joined. 18:22:45 although it plays badly with malloc on some systems 18:22:52 pikhq: right, but a huge overcommitted mmap is better 18:22:55 rather than many small malloc 18:22:56 s 18:23:04 hmm... what about using calloc not malloc if you want zeroed-out memory? 18:23:10 ais523: that just does a memset or whatever 18:23:13 ais523, I do free sometimes. Stuff like stacks are freed when that thread quits 18:23:13 so it still loops through 18:23:16 is calloc optimised to do the zeroing and allocating together? 18:23:17 mmapping /dev/zero will be faster 18:23:28 AnMaster: anyway, that offset + mmap heap I imagine would give a quite good performance increase 18:23:33 ehird: surely a sensible library would implement calloc in terms of mmapping /dev/zero? 18:23:35 ais523, also I realloc() sometimes. But profiling shows that isn't really a major overhead currently 18:23:42 ais523: why not read glibc sourc 18:23:42 e 18:23:46 ehird, hm where was it? 18:23:48 the offset bit 18:23:53 ehird: I don't have it on me 18:23:53 AnMaster: basically 18:23:59 * AnMaster looks at scrollback 18:24:02 AnMaster: overcommit mmap /dev/zero, then you have it already initialized 18:24:03 so 18:24:07 ais523, it is on the web. 18:24:07 0 = 32 18:24:08 1 = 33 18:24:11 -1 = 31 18:24:12 etc 18:24:16 then you have spaces as default 18:24:19 without ANY initialization 18:24:25 * AnMaster considers 18:24:26 = no inline asm, no initialization overhead, perfect 18:24:42 (with a fallback -DNO_MMAP_HEAP for non-overcommitting systems or ones that do it slowly) 18:24:50 ehird: I mentioned that a while back to AnMaster 18:24:51 ehird, so this would change the range of all the vaules? 18:24:53 the offset-by-32 thing 18:24:58 AnMaster: err, pretty much 18:25:00 ais523: yes 18:25:01 I got the idea from you 18:25:06 but combined it with mmapping /dev/zero 18:26:30 ehird, well the kernel sets static uninitialised vars to be 0. So I could equally well do offset on that instead. 18:26:51 AnMaster: you can't have a huge static var 18:26:59 have you ever tried to overcommit mmap? 18:27:08 I've allocated 5GB on this 2.5GB system, with half the memory full 18:27:09 it worked fine 18:27:14 ehird, No. But I tried a 128 MB static var in cfunge. 18:27:16 that's basically what I'm suggesting 18:27:27 get rid of malloc (apart from as fallback) 18:27:31 mmap a huge /dev/zero 18:27:34 and offset by 32 18:27:40 ais523: I suspect most calloc's are only a malloc+memset anyway 18:27:43 I'd bet money you'd get a good speed improvement 18:27:55 hm... deranged values... 18:28:10 incidentally, there was a big argument on comp.lang.c about what happened if you used calloc to allocate more than a SIZE_MAX of memory 18:28:13 ehird, hm. Worth trying indeed. 18:28:24 AnMaster: if you don't, I'll try and figure out cfunge and do it :P 18:28:37 it seems most implementations treat that case as UB, but they weren't sure whether that was allowed or not 18:28:55 And this speed improvement, would it help in anything except cfunge start-up time? 18:29:02 ehird, well I can't do it today, I'm checking profiling to try to work at the most problematic area. 18:29:28 ehird, but I will try it indeed. 18:29:40 fizzie: well, yes 18:29:43 he'd never call malloc 18:29:47 just reference the memory 18:29:48 ehird, however I think it may break the specs if you don't compensate 18:29:53 so it should be a pervasive improvement 18:29:54 AnMaster: hm? 18:29:54 the range I man 18:29:56 mean* 18:29:59 why 18:30:03 just +32 on every read 18:30:09 which is, conveniently, a bitshift 18:30:12 er, no it's not 18:30:13 :D 18:30:16 don't listen to me 18:30:17 but yeah 18:30:19 +32 on each read 18:30:21 -32 on write 18:30:23 = no initialization time 18:30:30 so that saves startup time, and the no-mallocing saves time all the way through 18:30:33 i case my rest 18:30:34 ehird, what about stack? 18:30:35 ehird: but you only initialise once 18:30:42 indeed 18:30:42 ais523: yes, that saves at startup only 18:30:44 and you access memory lots of times 18:30:50 so you're saving at startup to hurt more later on 18:30:54 err, I disagree 18:30:57 and you end up with an interp that's slower on very long programs 18:31:00 +32 and -32 take one cycle 18:31:07 ais523, well you could change the instruction dispatcher to work on the offset values 18:31:09 the averaged performance increase would be a gain 18:31:12 I am almost certain 18:31:16 90% 18:31:23 I _will_ bet money on it, if anyone wants 18:31:27 -!- sebbu has quit (Connection timed out). 18:31:50 not having to manually check whether memory needs to be malloc'ed should be a gain in a lot of places 18:31:58 exactly 18:32:10 ehird: I bet it would run an infinite loop more slowly 18:32:19 as in, each iteration took longer 18:32:23 ehird, well I don't really malloc the funge space currently. I don't need to. all but one access of mycology is inside the static area 18:32:25 ais523: see olsner 18:32:30 if you did anything interesting in the infinite loop at all 18:32:35 and that is true for most other programs too 18:32:35 AnMaster: Just hardcode mycology's output ffs 18:32:42 AnMaster: how do you handle Lahey-lines with no commands at all on them? 18:32:47 if you're optimizing beyond what you have, you're not going to get huge gains 18:32:53 I'm just trying to say the biggest gains in my opinion 18:33:11 ais523, well how would you end up on that? with threads that remove the < or whatever? 18:33:24 AnMaster: empty source file 18:33:25 that or a j instruction 18:33:36 ehird, empty source file is an infinite loop 18:33:36 (or is it x) 18:33:38 yes 18:33:50 AnMaster: I've seen it done with a row of ps before 18:33:59 where the stack was set up in advance to hold all the right information 18:34:07 but there are other ways, as suggested 18:34:39 ais523, the main thing to remember is that such a loop is not breakable even with multiple threads. Reason is that spaces take no ticks 18:34:51 Didn't we already discuss this earlier, though? 18:35:40 ais523, so it will loop in the "we have a space, search for next instruction" code 18:36:10 AnMaster: ah, ok 18:36:13 mine optimises it into a real infinite loop :) 18:36:19 hah 18:36:21 old joke 18:36:35 heh, CLC-INTERCAL optimises obvious infinite loops into a select instruction with infinite timeout 18:36:41 so it doesn't even use up CPU 18:37:34 ais523: what's your opinion on qbasic vs quickbasic 18:37:40 quickbasic is fast and fancy, I think that ruins it 18:38:00 Oh, and you can get an "empty" lahey-line simply by entering a line with only ;>#; at the > character, since ;; doesn't take up any ticks either. 18:38:10 ehird: I've never seen quickbasic 18:38:25 fizzie: wow, that does work 18:38:26 ais523: it's qbasic without the restrictions 18:38:27 and it can compile 18:38:30 and it's a lot faster 18:38:34 and it has a bigger manual 18:38:34 ehird, anyway what I do malloc mostly is stacks and stack-stacks. And strings in certain fingerprints 18:38:35 and more functions 18:38:49 which I think spoils it 18:39:25 And the quickbasic manual isn't decompilable with the helpmake.exe tool; it spews out a rather corrupted file and hangs up. (At least that's what it did in dosbox.) 18:39:25 for instance, my 7-second qbasic graphical sierpinski runs in less than 1 second in quickbasic 18:39:49 do you have a legal copy of quickbasic? 18:40:11 Illegal, from fizzie. 18:40:15 Well. 18:40:17 Probably illegal. 18:40:33 and this channel is publicly logged? :P 18:40:39 ehird: You weren't supposed to reveal it's from me! It was all very hush-hush! (Although I may have behaved suspiciously enough.) 18:40:39 olsner: yes 18:40:41 * oerjan puts handcuffs on fizzie O====O 18:40:42 hi clog! hi cmeme! 18:40:54 cmeme isn't here 18:40:55 he died. 18:40:58 err... cmeme? 18:41:03 ais523: cmeme = ircbrowse.com 18:41:08 hasn't been here for many months 18:41:08 yes, I know 18:41:10 oh 18:41:20 I have to go now, anyway 18:41:21 Well, that's still one logger. 18:41:23 olsner: I would like to see one person enforcing QuickBasic's copyright 18:41:29 -!- ais523 has quit ("mibbit.com: this is a rubbish quit message"). 18:41:58 * oerjan enforces copyright on ehird with the saucepan ===\___/ 18:42:04 ehird, just did a test on mycology: malloc() was called 532 times, realloc() 288 times and free 529() times. And that mismatch between free and malloc is due to long lived arrays that in SOCK, FILE and REFC. You can't free them before exit anyway due to the way the fingerprints are defined. 18:42:14 so not a real leak 18:42:19 "Recently, a set of TCP/IP routines for QuickBASIC 4.x and 7.1 has revitalized some interest in the software." Heh. 18:42:21 right, that 532 could become 0 :-) 18:42:39 ehird, well none of those malloc() calls were for funge space 18:42:41 it's a matter of principle, I believe QB was the in-the-day equivalent of a Visual Studio license, so you should be paying millions in damages for violating the precious copyright 18:42:54 heh 18:43:02 ehird, and the other ones doesn't need to be initialised. 18:43:47 ehird, so trying with offset on static array should be quite interesting. Oh another thing. Too large static area is bad for performance. Locality of reference. 18:44:02 Yes I noticed this in profiling 18:44:46 Also seems that FreeBASIC has added OOP-style stuff to the TYPE command. 18:45:00 same would go for mmap() unless you encode the coordinate as some sort of space filling fractal that puts close areas in the same cacheline (as well as page) 18:45:18 hm that sounds interesting 18:45:18 ... 18:45:38 need very low overhead to calculate too 18:46:02 ehird, what do you think of that idea? 18:46:05 :D 18:46:24 er 18:46:26 I dun geddit 18:46:27 a cache line is typically 64 bytes on x86 18:46:46 ehird, Do you remember xkcd's map over ip addresses? 18:46:50 Yes. 18:47:22 That doesn't look like you can calculate the linear index from cartesian co-ordinates easily :( 18:47:24 ehird, do you remember how the mapping between ips and points on the map was done? 18:47:41 well now that was 1D -> 2D 18:47:42 no 18:47:52 http://en.wikipedia.org/wiki/Space-filling_curve 18:47:59 ehird, using a space filling fractal that put close ips close to each other 18:48:23 Asztal_, indeed. Don't remember what exact variant 18:48:32 Looks like a Hilbert curve. 18:48:33 anyway. What about a mapping the other way? 18:48:41 2D -> 1D 18:49:13 is it possible to do such a thing O(1)? 18:49:32 almost nothing is possible O(1) 18:49:50 oerjan, well true. :( 18:49:58 there are infinitely many digits both in and out 18:50:05 O(n), possibly 18:50:20 Alternatively, from a practical point of view, almost everything is just O(1) with a big constant if you're doing it on a real computator. 18:50:32 oerjan, where n is what? Number of positions? Number of bits in address? 18:50:50 the latter 18:50:54 hm 18:51:14 practicality is so impractical 18:51:26 well Maybe. 18:51:40 i expect with some grouping, the result at one position depends only on the previous ones 18:51:40 but that wasn't a very practical comment :P 18:51:58 (more high-level) 18:51:58 oerjan, well if you want to do random lookup, and not start from the start of the curve 18:52:05 brb phone :( 18:54:23 Wow, that's one trippy mandelbrot. 18:56:52 AnMaster: Actually, wikipedia seems to have more info on how http://en.wikipedia.org/wiki/Z-order_(curve) can be used like this. 18:59:26 in particular "The resulting ordering can equivalently be described as the order would get from a depth-first traversal of a quadtree;" 18:59:38 Notably, calculating the z-order coordinate from x, y is just a single application of the INTERCAL mingle operator. 18:59:54 Of course your silly C might lack the always-useful $ operator. 19:05:00 Curiously, that one bit-hacks page at http://www.cs.utk.edu/~vose/c-stuff/bithacks.html seems to have a couple of bit-interleaving tricks. 19:05:57 you can do $ really fast with two lookup tables and bitshifts, right? 19:06:59 There's one lookup table approach, yes. There's also yet another of those 64-bit multiplications, if you happen to have a fast 64-bit multiplier. 19:07:22 They always look so silly. 19:07:34 via the IWC forum: http://www.sciforums.com/vacuum-pockets-and-safety-nazis-t-41446.html 19:07:38 for a 32-bit int you can trivially generate two 65536-sized lookup tables 19:07:41 then just 19:07:54 tab[n&65535] 19:07:54 and 19:07:58 tab2[n< err 19:08:00 >>blah 19:08:01 or whatever 19:08:18 oerjan: nice linkjack. 19:08:19 not. 19:08:34 http://groups.google.com/group/rec.arts.sf.written/msg/073bea1aa44c9396 19:08:37 huh? 19:09:08 you linked to an ugly, ad-filled page, on a forum, where someone had minimally copied and pasted the original post from google groups 19:09:14 as opposed to linking ot the archived message directly 19:09:34 it was the link posted on the iwc forum 19:10:02 I also linked to the google-groups URL three days ago; someone hasn't been diligently logreading! 19:10:03 i was watching out only for safety nazis, not link nazis, sorry 19:10:30 * oerjan goes on a murderous swatting spree -----### 19:10:47 * ehird bites off oerjan's head 19:10:48 om nom 19:10:56 -!- Corun_ has joined. 19:11:10 would you like fries with that? 19:12:13 Loeb's Theorem as a Scheme description: "A function which, when given code evaluating to (a function which, when giving code evaluating to P, returns P), returns code evaluating to P." 19:12:15 * ehird implements 19:12:24 also, i didn't know that it was ad filled. my brain filters are reasonably resistant to anything not actually revolting. 19:13:17 (define (loeb box) 19:13:17 `((eval box) '(loeb ,box))) 19:13:21 ski__: I wrote loeb. 19:14:18 er wait 19:14:23 (define (loeb box) 19:14:23 `((eval box) '(loeb ',box))) 19:14:33 i don't get it 19:14:37 (define (loeb box) 19:14:37 `(,(eval box) '(loeb ',box))) 19:14:38 there 19:14:45 bsmntbombdood: "A function which, when given code evaluating to (a function which, when giving code evaluating to P, returns P), returns code evaluating to P." 19:14:47 in modal logic: 19:14:51 []([]P -> P) -> []P 19:14:55 in blah: 19:14:58 what's the point 19:15:06 "If it is provable that (if P is provable then P), then P is provable" 19:15:17 bsmntbombdood: A nice introduction: http://yudkowsky.net/rational/lobs-theorem 19:15:44 will not stand for that scribd shit 19:15:49 not my fault. 19:16:08 scribd? 19:16:37 click the damn link 19:16:58 oerjan: scribd invented that stupid embedded pdf web app bloat fail 19:17:49 -!- Judofyr has joined. 19:18:32 oh, wait 19:18:34 (define (loeb box) 19:18:34 `(,box '(loeb ',box))) 19:18:35 there 19:18:46 (loeb is basically the fixed point operator for boxed code, in a way) 19:19:18 -!- Corun has quit (Connection timed out). 19:19:21 #;3> (eval (loeb '(lambda (x) 2))) 19:19:21 2 19:19:25 It passes the Very Silly Test. 19:19:52 Cool, (eval (loeb '(lambda (x) x))) behaves like ```sii``sii 19:22:18 -!- calamari has joined. 19:23:18 http://julianstahnke.com/read/sound_picture/ 19:23:36 ... 19:37:32 AnMaster: you there? 19:39:10 back 19:39:12 ehird, now yes 19:39:17 heh 19:39:18 * AnMaster reads scrollback 19:40:32 There's one lookup table approach, yes. There's also yet another of those 64-bit multiplications, if you happen to have a fast 64-bit multiplier. <-- interesting 19:41:17 AnMaster: how much chance to you think I have to beat cfunge speed in haskell? :D 19:41:59 ehird, unknown. It depends on what you do. If fizzie finishes his jitfunge he will beat cfunge at single-threaded apps 19:42:12 I fail to see how his approach would work with threads though 19:42:12 interpreting 19:42:39 (The 64-bit multiplication interleaves only 16 bits at a time, though.) 19:42:42 ehird, then it depends on how you do it. cfunge isn't perfect. It is just the fastest one currently around. 19:42:55 fizzie, how do you plan to implement t in jitfunge? 19:43:02 AnMaster: cfunge is near c speed, isn't it? 19:43:20 ehird, hahahaha 19:43:26 very funny 19:43:31 well, it sure is fast... 19:43:44 ehird, c as speed of light? Yes very funny joke 19:43:51 ~ 19:44:09 I don't really have a plan there; I don't see any sensible way of doing synchronous threads with jitfunge without it being completely brainless. 19:44:14 AnMaster: >_< 19:44:17 C speed. 19:44:40 ehird, oh, I thought you planned to trap me there by claiming you meant c as in speed of light 19:44:46 if I read it as the language 19:45:17 ehird, anyway you could write a C program that did the same output but was faster. Like that compile to shell script in ick 19:45:30 yes, but 19:45:34 without stupid corner cases 19:46:15 ehird, and since I do implement funge threads I can't merge instructions either. So >:#,_ can't be translated to "output string from stack" 19:46:28 since some other thread could potentially change it while it was executing 19:46:32 At the very least it'd need some explicit synchronization just about everywhere. It sounds rather painful to implement. Of course I *could* run things-with-no-observable-side-effects somewhat concurrently. 19:46:34 yes but 19:46:35 and I have to keep them synched 19:46:37 answer my question 19:46:40 without bullshit corner cases 19:46:41 synced* 19:46:42 like you always do 19:46:51 doesn't cfunge compete with C on speed? 19:46:54 as in, 2-4x slower than C 19:47:40 ehird, hm. There are some issues that are hard to avoid with befunge interpretation. Like locality of reference. But my goal was never to get as fast as native C code 19:47:52 AAAAAAAAAAAGH 19:47:52 my goal was "beat all those other interpreters" 19:47:56 -!- Slereah_ has joined. 19:47:58 Why can't you just answer my freaking question 19:48:09 and later on: "how fast can I make this?" 19:48:15 ehird, well I wish I could. It isn't easy 19:48:18 ehird: it's classified information 19:48:27 ehird, and I don't know the answer exactly 19:48:33 AnMaster: just answer roughly 19:48:43 does cfunge compete (2-4x slower) than C in common cases? 19:48:44 I doubt there are very well-comparable benchmarks that would've been implemented both in C and in Befunge. 19:48:56 fizzie: i'm not asking for a formal comparison 19:49:08 ehird, I can't answer since I haven't measured compared to the equivalent program in pure C. 19:49:16 fizzie, indeed 19:49:20 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 19:49:25 But you need some code that does the same thing in both languages to give any sort of sensible answer. 19:49:34 anyway, with C you can optimise control flow 19:49:36 and so on 19:49:41 unoptimized C 19:50:07 ehird, as produced by GCC? with -O0? Ok that isn't fair. Bash could possibly beat that in some cases... 19:50:11 well almost 19:50:13 -O2 19:50:27 you always do this, nitpick nitpick corner case corner case one level lower of abstraction... 19:50:42 ehird, -O2 is rather well optimised. And befunge is hard top optimise. And as fizzie said: " I doubt there are very well-comparable benchmarks that would've been implemented both in C and in Befunge." 19:50:51 now I have an idea though 19:50:56 it is called threaded code 19:51:02 ehird: No, seriously, it's not a very simple question, since no-one does any "common cases" with Befunge. 19:51:03 this could be interesting for befunge 19:51:08 do some of the language shootout tests :) 19:51:21 you can probably beat Ruby :D 19:51:26 AnMaster: threaded code would not be a good improvement for befunge, afaik. 19:51:36 Asztal_: oh, it'd almost certainly beat all/most of the interpreted languages 19:51:47 ehird, well I never tried it. Just got the idea today. But why would it not be very good? 19:52:00 You could handle the updating pointer quite easily probably 19:52:02 Because threaded code works for... Forth. 19:52:25 ehird, and for erlang. The Erlang VM uses threaded bytecode iirc. 19:52:56 well unless you compile with HIPE to get native code. 19:54:04 Erlang's bytecode is UNCOMFORTABLY PARALLEL. 19:54:37 ehird, hm. Only because that is how it has been written 19:54:52 and the language is designed to make it easy 19:55:03 -!- oerjan has quit ("leaving"). 19:57:29 -!- Slereah has quit (Read error: 110 (Connection timed out)). 19:58:33 There's one lookup table approach, yes. There's also yet another of those 64-bit multiplications, if you happen to have a fast 64-bit multiplier. <-- any links to more info on this? 19:58:55 Well, it's on that page whose URL was just few lines earlier. 19:59:09 It does interleave just 16 bits with the 64-bit multiplication, though. 19:59:23 ah right 19:59:35 And I don't want to guess anything about execution speed vs. the lookup-table-based versions. 20:00:01 fizzie, of course. That is what profiling test cases is for 20:00:09 as well as profiling real program 20:00:38 and cache/branch simulation with cachegrind and callgrind. As well as real profiling those with oprofile 20:00:41 and so on ;P 20:02:10 -!- Corun_ has quit ("This computer has gone to sleep"). 20:05:27 fizzie, those bit hacks are for shorts it seems. I operate on larger numbers though 20:05:35 but maybe just for the static area 20:05:41 which is currently 1024*1024 20:06:03 And you can do your larger numbers in small pieces. I did say "just 16 bits". 20:06:27 the 64-bit one is for 8 bit numbers though 20:06:56 Oh, right; it was a 16-bit result. 20:07:02 yep 20:07:27 Yes, it's probably because there are 8 bytes you can fit in a 64-bit integer, and you need all 8 different bit positions there. 20:07:37 geez, QBasic is crazy slow. 20:07:40 probably 20:07:40 i mean how can you do anything 20:07:53 fizzie, if you could do this with SSE.. Hm! 20:08:27 however the overhead of SSE setup is rather large. It is only useful for a large number of similar operations after each other 20:08:46 ehird, implement a fast funge in qbasic? 20:08:51 no :| 20:09:20 ehird, still a simple befunge93 would be nice. I don't think anyone done that..? 20:09:34 I have a feeling I might have. 20:09:40 haha 20:09:40 Not sure. 20:10:02 sure I can do funge93 20:10:02 I tend to do a befunge 93 interpreter in most languages I come across, but I might not have revisited basic. 20:10:12 DIM fs(80, 24) 20:10:24 hey, what's hello world again? 20:10:31 befunge? 20:10:38 -93 20:10:47 025*"!dlrow ,olleH">:#,_@ 20:10:52 tankz 20:10:52 indeed 20:11:01 fizzie, err the 0 isn't needed 20:11:03 You can omit the initial 0 if you want to test stack underflow handling simultaneously. 20:11:05 fuck, I can't backspace. 20:11:11 er 20:11:12 i mean 20:11:13 i can't \ 20:11:23 ehird, can't what? 20:11:26 write a \ ? 20:11:34 how can that be hard 20:11:37 Yes, I did mention I always put the 0 there. It's more robust that way. :p 20:11:43 AnMaster: keyboard mappin'. 20:11:47 fizzie, more breaking 20:12:03 ehird, mycology has a befunge 93 section. It is fairly complete. Just remember to test mycorand.bf too 20:12:18 ehird, you wrote a \ just above there... 20:12:21 More robust; you don't run out of the string. I always tend to keep a lot of results on the stack that the print loop would cheerfully pop out. 20:12:30 AnMaster: It's dosbox's keyboard mappings. 20:12:30 -!- KingOfKarlsruhe has joined. 20:12:33 oh 20:12:33 Those can be pretty tricky. 20:12:33 IN DOSBOX 20:12:34 gr 20:12:37 that's silly then 20:12:48 why not read like normal programs 20:12:53 not 20:12:54 that 20:12:55 simple 20:12:58 oh? 20:13:36 if you read scancodes sure. But why do it? Why not just do input like any other program? that *works* with your keymap 20:13:45 ... 20:13:46 I don't see why it isn't simple 20:13:59 * ehird facepalm. 20:14:04 why? 20:14:27 something SDL could help you handle this properly. 20:14:31 or whatever you want 20:14:34 FWIW I also don't see why they do it in a strange way 20:14:50 I assume there is a reason other than their ignorance 20:15:00 Deewiant, leetness? 20:15:07 It's not leet if it doesn't work 20:15:11 well true 20:15:23 Deewiant, yes it is. That is what leet is all about. 20:15:42 Doing things the hard way is cool, but if you're not actually doing what you're supposed to be doing it's lame 20:16:00 leet == saying stuff like "haxxxx11011oneone!!!" and not knowing how to program 20:16:15 script kiddies, and such 20:16:17 mostly 20:16:30 Deewiant, yes. But if it works it isn't leet 20:16:34 Well yeah, nowadays 20:16:37 if it works it is just cool 20:16:49 19:16 AnMaster: leet == saying stuff like "haxxxx11011oneone!!!" and not knowing how to program 20:16:55 I don't think that has ever been considered leet, ever 20:17:02 Damn late 90s and 00s messing up the meaning of 'leet' and all that 20:17:09 But, y'know, talking out of your ass works fine for most people. 20:17:12 ehird, except by those doing it. 20:17:30 ehird, anyway my point is leet lost it's original meaning 20:17:32 have you even -seen- anyone who claimed to be leet sincerely? 20:17:37 like hacker lost it's meaning 20:17:39 if not, stfu, because you're wrong 20:17:45 ehird, yes and they all spoke like that... 20:18:00 I just claim the word lost it's original meaning 20:18:27 hacker today isn't the same thing as it originally was either 20:19:02 Deewiant: I am guessing it's some sort of "we want the low-level keyboard access DOS does to work as much as possible the way it would without a real operating system in-between", but that's a bit strange reason. I'd prefer that they'd read input on the X keysym level or something, and then just have a mapping from those into keyboard scancodes so you could make it look to DOS like your keyboard was US, fi, or whatever. 20:19:39 fizzie, good idea. 20:19:39 hrm, is befunge-93 stack limited to 0-255? 20:19:41 fizzie: That's not really a good reason, since they can do exactly what you said and it'd work much better. 20:19:53 Deewiant: and be less portable 20:19:55 ehird, um signed I think? 20:19:58 ehird: How's that 20:20:00 most dosbox users are on windows 20:20:09 They'd read Windows keyboard events there. 20:20:19 -!- Hiato1 has quit ("Leaving."). 20:20:21 It's not like they don't have to write platform-specific input-handling now, too. 20:20:24 AnMaster: So, LONG. 20:20:36 ehird, not sure about 93. Check the spec 20:20:44 Yeah, except, the spec is shit. 20:20:48 Disclaimer: I've never really figured out how dos keymapping works. I vaguely remember "KEYB SU" being needed somewhere to get Finnish layout. 20:20:52 http://catseye.tc/projects/befunge93/doc/befunge93.html 20:21:05 And the Befunge 93 stack tends to be whatever the most comfortable integer size is. 20:21:21 In a QBasic implementation, you could maybe use a 16-bit integer stack. 20:21:23 keyb su,,C:\WINDOWS\COMMAND\KEYBOARD.SYS 20:21:27 su? 20:21:35 "Suomi", which is fi:Finland. 20:21:37 ah 20:21:43 Er, I mean, fi:Suomi is en:Finland. 20:21:44 DIM fs(24) AS STRING * 80 20:21:59 fizzie: I propose the ; operator for such uses. 20:22:01 ehird: 25? 20:22:06 "Suomi", which is fi;Finland. 20:22:19 Syntax: lang;word-in-language-in-which-we-are-speaking 20:22:27 Needs the context of a quoted word in [lang] to make sense. 20:22:48 "X" is Y;Z "Y:X is en:Z" 20:22:57 Dewi: er, yes. 20:23:04 Deewiant: 20:23:05 wait, why 20:23:06 I think it makes more sense for the language annotation to annotate the language of the word it appears with 20:23:08 ehird, so you escape any ; in the string then? 20:23:21 ehird: 83 20:23:23 ehird, 25*80 not 24*80 20:23:24 abnthe same problem with is :; there are no words with ; and : in them in any language assigned an ISO code. 20:23:29 er 20:23:30 ehird: It's 80x25 so either your language has weird syntax or one of those numbers is wrong 20:23:32 AnMaster: the same problem with is :; there are no words with ; and : in them in any language assigned an ISO code. 20:23:41 olsner: this is convenient in some cases, like fizzie's 20:23:47 ehird, well C;true; 20:23:55 C is not an ISO language code. 20:23:59 well ok 20:24:05 and true is not a C-defined symbol 20:24:17 ehird, #include 20:24:21 yes it is 20:24:22 you didn't say that. 20:24:28 I think "fi;Suomi, which is Finland" makes more sense 20:24:34 en:I en:can en:add en:that en:prefix en:to en:all en:my en:words en:to en:make en:it en:unambiguous, en:if en:you en:want. 20:24:35 ehird, well ok 20:24:52 fizzie, was that an English : or a Finnish : ? 20:24:54 en:Really, en:it's en:no en:problem en:for en:me. 20:25:02 DIM stkbase AS long 20:25:02 stk$ = VARPTR$(stkbase) 20:25:04 Fun fun. 20:25:05 fizzie: en:"you could also annotate sentences" 20:25:28 Although, well, more useful: 20:25:32 stk = VARPTR(stkbase) 20:25:36 (Then use poke and peek, naturally.) 20:25:40 olsner, en:that en:means en:more en:decoding en:processing 20:25:46 Hey, you could use that to write to video memory from fungespace. Maybe. 20:25:47 and I'd say the current medium has an implicit en: annotation for all utterances 20:26:01 en:since en:you en:need en:to en:expand en:it en:then 20:26:06 ehird: You need to also use VARSEG() and DEF SEG if you want to do that; not all basic variables need to be in the same segment. 20:26:16 ah right 20:26:19 Since QBasic can handle that whopping 160 kilobytes of user data. 20:26:42 DIM stkbase AS long 20:26:42 DEF SEG = VARSEG(stkbase) 20:26:43 stk = VARPTR(stkbase) 20:26:45 ehird, wait what? Encoding different funge instructions as colours on the screen? 20:26:46 Wall ah. 20:26:48 wow 20:26:50 that would be cool 20:26:56 AnMaster: no, that isn't what I was doing, but that would be possible 20:27:00 fairly trivial even 20:27:03 fizzie: 160kb? that's not a very even number... 20:27:05 I was going to add P and G 20:27:09 ehird, except that is int 20:27:11 olsner: That's what the help file says. 20:27:11 which are POKE/PEEK 20:27:14 AnMaster: not in -93. 20:27:20 ehm, 2*64+(1/2)*64 or something? 20:27:30 ehird, oh right. Funge space is byte and stack is signed int? 20:27:32 right? 20:27:48 Yes. 20:28:04 "* 20:28:06 Befunge-93 defines signed 32-bit stack cells and unsigned 8-bit Funge-Space cells." 20:28:09 ehird: Incidentally, if you just "DEF SEG = &HB800" and use POKE/PEEK to do all funge-space access (just remember to do a *2 to all coordinates) you get a real-time view of the funge space, and don't need a separate array for it in the code. 20:28:17 Deewiant, I was just copying that... 20:28:19 HB800? 20:28:21 Huh? 20:28:26 &HA000, no? 20:28:32 ehird: The text mode display memory starts at 0xB8000. 20:28:38 Oh, right. 20:28:52 Well, thing is, i'd kind of like to have fungeprograms drawing circles, y'know? 20:28:59 I guess that's unrealistic what with the immense speed of QBasic. 20:29:29 ehird, for EOF on input I suggest reflect. it is undef in 93, but reflect in 98 20:29:41 There is no EOF in QBasic. 20:29:45 so that forward compatibility is useful. 20:29:51 AFAIK. 20:29:52 ehird, what happens at end of file then? 20:29:58 There is no way to trigger that. 20:30:04 ehird, DOS has pipes... 20:30:12 Yes. 20:30:15 There's an EOF() function. 20:30:18 Right 20:30:23 but that's not for text input 20:30:25 keyboard, I mean 20:30:42 ehird, pipe and keyboard are different? 20:30:51 You seem surprised. 20:30:56 dos has pipes? 20:31:02 if you press ctrl-z, don't you get an EOF sent to the program? 20:31:12 bsmntbombdood: Yes, they're not really though. 20:31:14 bsmntbombdood: Yes, but they're run in sequence 20:31:14 It's not a(b()) 20:31:20 it's x = force(a()); b(x) 20:31:25 It's exactly a(b()) in a strict language 20:31:29 lame 20:31:30 well yes. 20:31:34 Sorry, 'call-by-value' 20:31:37 Ctrl-Z is the common way of indicating EOF; I'm not really sure on what level it happens. 20:31:37 yes|foo? 20:31:42 or, it's foo > tmp; bar < tmp 20:31:44 bsmntbombdood: it actually does this 20:31:46 yes > tmp; foo < tmp 20:31:53 you didn't like all that free disk space anyway 20:32:00 ehird: yes doesn't finish 20:32:08 ehird: Does it actually write it to disk and not memory? 20:32:08 yes., 20:32:13 bsmntbombdood: so it hangs. 20:32:14 Deewiant: yes 20:32:17 Heh 20:32:19 Didn't know that 20:32:38 after all, who has much ram? certainly not I. To fit anything of importance we must utilize our Hard Disk Storage Device 20:32:49 Ctrl-Z is the common way of indicating EOF; I'm not really sure on what level it happens. <-- under dos you mean? 20:32:50 And besides, why implement an extra command when it can elegantly isomorph to onest another? 20:32:54 AnMaster: Yes. 20:33:01 AnMaster: no, QNX> 20:33:02 right. on *nix it is ctrl-d and ctrl-z is suspend 20:33:22 ehird, well I was just trying to make sure he wasn't talking about "in general" 20:33:33 AnMaster: "*nix it is ctrl-d and ctrl-z is suspend" thanks, we didn't know 20:33:56 i know that ^C sends a SIGINT 20:34:01 Anyway, you could have those P/G work on the A000 video memory segment, and p/g (plus code-fetch and everything else) on B800, and a single new opcode to toggle the display mode between the mode 13h video and the fancy dynamic 80x25 text-mode view of funge-space. 20:34:04 ehird, you know. Not everyone here use OS X or Linux 20:34:08 some use. you know. Windows 20:34:09 ... 20:34:38 Heh, QBasic's manual advocates DO...LOOP over WHILE...WEND. 20:34:52 oh, why? 20:34:57 ehird, why? Because WEND sounds silly? 20:35:01 olsner: It's more fleximatron! 20:35:08 Also, DO...LOOP doubles as a do/while and a while! 20:35:14 Some befunge programs look pretty interesting when you watch the funge-space when they're running. Mooz's floating-point division, for example, which does the manual "long division" teached-in-school done-on-pen-and-paper thing. 20:35:14 Possibilities end not! 20:35:15 err? 20:35:43 fizzie, and with qbasic it would be slow enough to read! 20:35:53 I always pronounced WEND as "vänd" (sv:turn) 20:36:23 Don't befunge-93 programs usually use more stack than fs? 20:37:01 Yes, the DO...LOOP syntax is: either DO [{WHILE | UNTIL} condition] ... LOOP or DO ... LOOP [{WHILE | UNTIL} condition]. It's pretty silly. 20:37:02 olsner, :D 20:37:26 fizzie: you should be able to do 20:37:32 DO WHILE FOO ... LOOP UNTIL FOO 20:37:35 er 20:37:36 I learnt basic before really understanding that english was a separate language 20:37:37 DO WHILE FOO ... LOOP UNTIL BAR 20:37:42 Yes, I agree. 20:37:50 ehird, what would the semantics for it be? 20:37:56 exit when either is true? 20:37:57 it won't enter unless FOO, but if you have FOO, you get to go one turn having BAR! Although be careful not to lose your FOO... 20:38:03 AnMaster: Well, it'd be: 20:38:09 ah 20:38:10 do { if (!foo) break; ... } while (bar); 20:38:12 You can do "DO ... LOOP" for an infinite loop without needing a conditional, though. 20:38:13 yes you said it the line after 20:38:29 er wait 20:38:31 do { if (!foo) break; ... } while (!bar); 20:38:31 ofc 20:39:14 ehird, or if (!foo) goto thedayafter; do { ... } while (!bar); thedayafter: 20:39:20 why are we talking about basic? 20:39:26 bsmntbombdood: fuck you that's a terrible question 20:39:31 a better one would be for every other situation 20:39:34 not why? 20:39:34 "why are we not talking about basic?" 20:39:37 why basic? 20:39:40 I wonder too 20:39:49 Also the funnyness: END [{DEF | FUNCTION | IF | SELECT | SUB | TYPE}] ends all those block-style syntactic elements; "If no argument is supplied, END ends the program and closes all files." 20:39:55 BASIC is hardly BASIC. BASIC is most advanced programming in universe. 20:39:57 fizzie: :D 20:40:10 I think QBasic warns you about unterminated blocks, though, so you can't do it too easily by accident. 20:40:28 but how does this interact with out of order execution 20:40:34 I mean poking video memory 20:40:38 what about memory barriers? 20:41:06 sure I realise DOS didn't have to deal with that originally 20:41:11 but when run on modern hardware 20:41:13 how does it work 20:41:25 considering you can still run DOS on a modern computer. 20:41:31 It runs in the VM86 mode, I would guess that handles it somehow. 20:41:32 with all those fancy features 20:41:48 fizzie, lets say I boot a bios flash floppy 20:41:53 on a modern x86_64 20:42:05 what about then 20:42:12 I captured a wonderful video of my "Slowerpinski" program running. 20:42:14 Now you can enjoy, too: 20:42:22 ehird, youtube? 20:42:26 AnMaster: it never goes into protected mode 20:42:36 also, no, screencast.com, I've been trying out this Jing software thingymabob. 20:42:41 ehird, is cache disabled then? 20:42:46 It's kind of bad, for one I didn't write it, I intend to replace it with something of my own design. 20:42:53 But you'll need Flash. Unfortunately. 20:42:58 forget it then 20:43:02 Still, what a small price to pay for the magic of slowerpinski. 20:43:04 http://screencast.com/t/REP0xECE 20:43:05 for youtube there is an easy workaround 20:43:32 Another nice statement is SYSTEM, which you might assume runs a DOS command; but no: "SYSTEM: Closes all open files and returns control to the operating system." 20:43:33 ehird, I'll wait until you provide it in an open accessible format 20:43:47 AnMaster: I don't actually give a damn whether you watch it or not, surprisingly. 20:43:48 Fhehe 20:43:49 hehe* 20:44:15 Maybe fizzie has Flash. :P 20:44:26 I did watch it, and it was faster than I thought. 20:44:39 I guess it's that cycles: max thing. 20:44:47 Actually, that doesn't speed it up much. 20:44:59 It's probably the fancy-shmancy AND algorithm. 20:45:12 Still, pretty effing slow. 20:46:01 AnMaster: If you know of a good screen capture program that will work on OS X, let me select a portion of the screen to capture, record audio from the microphone _and_ computer, and can upload to a siteamabob at a click, do let me know. 20:46:21 Wait, there was audio? 20:46:23 ehird, how did you capture that one you linked? 20:46:34 fizzie: Mostly my mouse clicking and me breathing, but yes 20:46:38 AnMaster: Using Jing. 20:46:50 ehird, and it can't record to anything else? 20:46:58 If you buy it you can encode to H.264 20:47:15 ehird, this is a lot easier on linux you know ;P 20:47:15 anyway, I clicked the Jing menubar, clicked Capture, selected the piece of screen, and clicked record. Then I clicked stop when I was done, and it automatically uploaded it and gave me the link. 20:47:16 Oh. Well, if it wasn't anything more spectacular than that, I'll not bother locating headphones. 20:47:17 for once 20:47:22 AnMaster: it's easy on OS X, too 20:47:26 oh? 20:47:28 but I want to automate the upload 20:47:34 because i'm a lazy fuck. 20:47:36 ehird, -_- 20:47:47 fizzie: I could make it play music depending on the sierpinskiness of the segment it's doing. 20:47:57 sierpinskiness 20:47:59 .. 20:48:02 Yes. 20:48:03 never heard that before 20:48:09 how is it defined? 20:48:13 How close to 0 the &ing of the pixels are. :P 20:49:33 Hmm, how do you make PLAY play in the background, I wonderous. 20:50:07 Also, AnMaster, the video is just FLV. 20:50:11 So is YouTube 20:50:15 If you can play youtube you can play this 20:50:27 ehird, I looked at the source but couldn't find the text "flv" anywhere in it 20:50:33 I'll take a look. 20:50:34 so I don't know what url to extract 20:50:53 ehird, but yes if I have an url I can play flv 20:51:25 Anyone happenstance to have a network sniffer? :P 20:51:44 ehird, well I have wireshark of course. But doesn't help much with no flash 20:51:55 How can you play FLV without flash? Standalone decoder? 20:52:01 ehird, mplayer works 20:52:30 Is wireshark available for OS X? 20:52:36 no idea. Google? 20:52:43 kay 20:52:49 there is tcpdump too. And again no idea if it is for OS X 20:53:21 tcpdump is pre-installed on OS X 20:53:24 at least in Leopard 20:53:29 http://content.screencast.com/users/ehird/folders/Jing/media/a0341831-4bb6-4769-a6e0-b8517e43e2d8/00000006.swf is the actual SWF (without their swfplayer.swf thingy), if that's any help. I'll wireshark it up. 20:53:58 ehird, the swf doesn't help unless it is actually flv with a different name 20:54:09 I was just linking for interestual purposes. 20:54:26 brb, need to clean glasses 20:54:43 wireshark is 100mb wtf. 20:55:03 oh fuuuck, wireshark uses x11 20:55:12 so it just boots up x11 and loads a gtk clusterfuck 20:55:13 wonderful 20:57:41 Yikesers, lots of shit here. 20:59:00 Okay, um, it's not going ove HTTP. 20:59:59 Aha. 21:00:39 AnMaster: 21:00:40 46 57 53 56:46 GM T....FWS 21:00:41 0160 08 f4 92 19 00 f8 00 00 00 00 00 07 8c 80 00 00 ........ ........ 21:00:43 0170 00 00 00 15 ea 00 00 0a 96 00 7f 0b 04 00 00 00 ........ ........ 21:00:45 0180 0a 1a 9d 08 3f 03 16 00 00 00 96 11 00 00 63 73 ....?... ......cs 21:00:47 0190 4d 6f 76 69 65 46 50 53 00 07 0a 00 00 00 1d 00 MovieFPS ........ 21:00:49 01a0 3f af 0f 00 00 00 54 65 63 68 53 6d 69 74 68 20 ?.....Te chSmith 21:00:51 01b0 4a 69 6e 67 00 3f 09 be a7 04 00 de 05 05 05 03 Jing.?.. ........ 21:00:53 01c0 31 02 78 da ac bd 57 73 24 c9 92 a5 f9 9f 2e 29 1.x...Ws $......) 21:00:54 MovieFPS? 21:00:57 Is that a FLV file? 21:00:59 *an 21:02:05 AnMaster: as far as I can tell, it's http://content.screencast.com/users/ehird/folders/Jing/media/a0341831-4bb6-4769-a6e0-b8517e43e2d8/00000006.swf 21:03:45 http://content.screencast.com/users/ehird/folders/Jing/media/a0341831-4bb6-4769-a6e0-b8517e43e2d8/00000006.swf is 1.6MB, so probably it is embedded inside that 21:03:58 Right then, he can maybe just launch an FLV decoder on that. 21:07:30 Probably not, my VLC won't play it (but Media Player Classic seems to know enough about SWF format to play it) 21:07:59 Asztal_: mplayer? 21:08:29 no, a windows thing (http://sourceforge.net/projects/guliverkli/) 21:08:34 I know 21:08:37 I mean, does it work with mplayer 21:08:40 back 21:08:46 AnMaster: try running over 21:08:48 http://content.screencast.com/users/ehird/folders/Jing/media/a0341831-4bb6-4769-a6e0-b8517e43e2d8/00000006.swf 21:08:52 with mplayer 21:08:54 a sec 21:08:56 right 21:09:11 idoes it work? 21:09:13 *does 21:09:18 downloading it 21:09:39 no 21:09:44 :( 21:11:09 so it just boots up x11 and loads a gtk clusterfuck <-- yes and? 21:11:12 get more ram 21:11:16 if you have issues with it 21:11:17 what has ram got to do with it 21:11:28 ehird, why would x11 be an issue otherwise 21:11:33 * ehird facepalm 21:11:38 it looks like crap? 21:11:40 stop this thread of conversation before I throw myself out of a window 21:11:46 please don't encourage him Judofyr 21:11:49 well not under OS X iirc 21:11:58 I mean I ran Gimp under X11 on OS X once 21:12:02 it looked semi-native 21:12:07 * Judofyr goes coding some shit 21:12:58 ehird, you aren't used to hard conditions simply. You have to learn not to break down just because some program uses Motif 21:13:07 ehird: stop being so emo over dependencies 21:13:17 it's not dependencies I have an issue with. 21:13:17 and GTK is nothing compared to Motif 21:13:27 ehird, would you prefer if it uses Motif? 21:13:42 do you remember when I said I'd throw myself out of a window if you didn't stop this thread of conversation? 21:13:52 ehird, yes. I'm waiting. 21:13:54 ;P 21:13:56 bye-bye 21:14:02 nah 21:14:19 AnMaster: fucking great, now you made him go kill himself 21:14:37 olsner, Oh I thought he said throw himself out of windows 21:15:06 -!- ehird has changed nick to ehirdghost. 21:15:11 wooooh 21:15:14 booooh 21:15:19 anmaster i curse uponst thou 21:15:23 you shalt only use windowths 21:15:25 ehirdghost, nice a ghost. Don't cross the streams! 21:15:26 till the end of your days! 21:15:41 -!- oklofok has quit (Read error: 110 (Connection timed out)). 21:15:43 ln -s startx windowths 21:15:46 issue solved 21:15:49 you are not compliant? I see 21:15:52 * ehirdghost rips out AnMaster's brain. 21:15:52 there is no such thing as "windowths" 21:15:58 I shall keepth it until thoust complieth. 21:15:59 ehirdghost, doesn't work. 21:16:02 tinfoil 21:16:11 I went under it. 21:16:17 ehirdghost, tin suite 21:16:20 in fact 21:16:31 Evidence plox. 21:16:46 ehirdghost, evidence of you being a ghost plox. 21:17:11 i jumped out a fucking window 21:17:15 what more do you want, dickhead 21:17:16 :| 21:17:21 shall I go and slit my throat too 21:17:23 ehirdghost, autopsy? 21:17:25 or maybe poison myself 21:17:31 death certificate? 21:17:32 AnMaster: ghosts have no body, dumbo. 21:17:40 and i just died a minute ago. 21:17:46 ehirdghost, well the dead body would have to have a body 21:17:48 I mean duh 21:17:55 no 21:18:03 when you're a ghost it evaporates into your spiritual telekine 21:18:20 ehirdghost, evidence please? 21:18:26 you're a doo doo head 21:19:00 shall I go and slit my throat too <-- how? 21:19:09 I mean you have no body you said 21:19:24 there is a logical flaw there 21:19:30 my ghostular throat. 21:19:40 I'd metadie. 21:19:51 ehirdghost, would you become a ghost of a ghost? 21:19:59 No. 21:20:03 oh? 21:20:10 what then? 21:20:23 Fool. 21:20:33 you would become a fool? 21:20:52 that's nothing new ;P 21:21:06 Mere mortals may not dabble in the artistrechnitionry of ghostular beings. 21:21:18 ehirdghost, well, In the name of science! 21:21:31 No match for ghostular sciencemafindatron. 21:21:53 indeed not. Because it isn't called that 21:22:05 try post mortal research 21:22:05 If you don't shut up I'll make sure you're reincarnated as a dungbeetle. 21:22:44 ehirdghost, belief in ghost is mutually exclusive with belief in reincarnation I think 21:22:48 ghosts* 21:22:58 God has a random number generator, AnMaster. 21:23:04 Sometimes it returns 2 and you get to decide yourself. 21:23:08 ehirdghost, I don't believe in god. 21:23:16 And I'm sure you didn't believe in ghosts either, but look at me. 21:23:50 Anyway, God does indeed not play dice. That's way old fashioned. 21:24:04 ehirdghost, I still don't. Just an optical illusion. Or a result of your subconscious when you are under a lot of stress. 21:24:04 He has infinite infinite-core infinity machines. 21:24:15 ghosts that is 21:24:15 AnMaster: Then you will look very silly in the logs. 21:24:25 You talking to some "ehirdghost" character that isn't there. 21:24:31 ehirdghost, well that is because I believe you are faking this. 21:24:41 Tut, tut. 21:24:44 You know. Like an actor playing Hamlet's father. 21:25:05 though not as well obviously 21:32:45 man 21:33:25 i smoked pot for the first time last night, and it reconfirmed my belief that i should be a linguist. 21:33:36 ... what? 21:33:51 pot tends to do that. 21:33:57 well 21:34:04 it did it in an unexpected way 21:34:09 pot makes you believe you should be a linguist? 21:34:27 all throughout i was essentially incapacitated. couldnt focus long enough to really do anything coherent 21:34:29 I finally beat the computer at cheese 21:34:49 lament, :D 21:34:54 typo for chess I hope? 21:34:56 had difficulty moving about without kind of being stumbly 21:34:57 etc 21:34:58 but but 21:35:18 psygnisfive, did it make you want to not do it again? 21:35:22 no 21:35:26 oh :( 21:35:31 a friend said something that was linguistically interesting and i couldn't stop myself from rushing over to my notebook and writing it down 21:35:51 actually the difficulty of standing the feeling was i think in part due to the setting 21:35:55 20:35 AnMaster: oh :( 21:35:56 psygnisfive: did you listen to music at all? 21:35:59 why do you hate people having fun, AnMaster 21:36:00 no 21:36:03 i WANTED to 21:36:11 listen to music, it might make you want to become a musician :) 21:36:13 i wanted to just curl up into a ball and listen to music and melt away 21:36:20 oh i already want to lament :P 21:36:42 but instead i had to lay there and listen to my two companions as they watched some silly movie 21:36:44 ehirdghost, I hate drugs. I _used_ to know someone who died due to an overdose of heroine... 21:36:57 heroin 21:37:03 AnMaster: umm, people are stupid 21:37:05 lament, typo 21:37:13 why is that the drugs's fault 21:37:16 you could die from an overdose of heroine too. 21:37:20 it's just like any addiction 21:37:23 if wonderwoman sat on your face until you suffocated 21:37:31 psygnisfive: an interesting mental image. 21:37:35 best way to die 21:37:37 ehirdghost, I do not wish to speak about it. And fucking read what I said. 21:37:42 * Judofyr wants to die from programming... 21:37:59 AnMaster: I read what you said, thank you very much. I also answered coherently and I believe rebutted your arguments. 21:38:20 I think you're letting emotions get in the way of rational reasoning. 21:38:21 ehirdghost, have any close friend to you died from an overdose of a drug? 21:38:41 No; but if they had, I wouldn't start hating drugs, because that's a stupid and irrational thing to do in response to that. 21:39:13 ehirdghost, Well then I can see why you don't understand. I have nothing more to discuss with you. 21:39:32 I don't understand many irrational things. 21:39:37 I'm addicted to weed a little 21:40:02 i don't see myself doing heroin though 21:40:03 AnMaster & ehirdghost: you two sounds like an old couple :-) 21:40:05 Funny, though, how you should get on a rational high horse ("I don't believe in god", "I don't believe in ghosts, just an illusion") right before claiming a wonderful non-sequitur 21:40:12 lament, as long as you can stay on top of it... 21:40:15 Judofyr: Tell me about it. 21:40:36 Judofyr, I'm not sure what that is supposed to mean... 21:40:47 my addiction to caffeine is more obvious 21:42:25 I'm going to do drugs and jump out a window now, simultaneously, I mean, er, brb -> 21:42:43 you do that. 21:46:33 -!- kar8nga has joined. 21:50:38 -!- Mony has quit ("Quit"). 21:52:33 fizzie, there? 21:52:42 I just found something useful for you in jitfunge 21:56:03 http://rafb.net/p/KOu0WM19.html <-- ehird: do not repaste, that is copyrighted material :/ For log readers: Please see "Software Optimization Guide for AMD64 Processors" revision 3.06, section 5.15 21:56:25 fizzie, ^ 22:02:39 The instructions they mention are SSE-only, though. And it'll be a while before I get to the optimizationary stage with jitfunge, you may need to remind me about that later. 22:03:03 fizzie, using conditional move should be another nice way to speed things up in certain cases. 22:03:12 fizzie, if I remember... 22:03:21 That I already do to some extent. 22:03:28 oh? nice 22:03:36 Well, I think I do. 22:04:34 Okay, there is one single place where I emit a CMOVcc instruction. But still. 22:05:07 -!- bsmntbombdood has quit (Read error: 113 (No route to host)). 22:05:22 The code generated by jitfunge is pretty sucky. 22:05:29 ok 22:05:32 -!- bsmntbombdood has joined. 22:05:56 And my register allocator is borderline sucky, it doesn't even handle spilling correctly IIRC. Which is quite a lose, given how register-starved x86-32 is. 22:06:02 fizzie, and yes I know they are SSE only. But you could fall back on non-SSE, either at runtime or compile time 22:06:38 fizzie, writing a good register allocator is hard iirc 22:06:43 and making it fast is even harder 22:06:56 Yes, but mine is so far from good it's a bit embarrassing. 22:07:07 go fix it then? 22:07:27 There's a lot more I have to fix; but I'll get to it, some day. 22:07:40 fizzie, or use llvm for backend 22:07:51 it has a good register allocator 22:08:51 It's not like I haven't been thinking about that. But I have a feeling I'd lose the otherwise pretty spiffy automagic stack-underflow check, since it requires pretty low-level control on what kind of instructions can be emitted to access the stack. 22:09:08 ah 22:09:09 ok 22:09:54 fizzie, which way does your stack grow? 22:10:37 -!- KingOfKarlsruhe has quit (Remote closed the connection). 22:10:53 Up, currently; didn't you ask this some time ago? And mostly it grows up for the "more likely to have free space for extending the stack that way" reason, even though it probably doesn't really matter, and anyway there's the attempt to place it into middle of the wilderness of virtual addresses so that there'd be room both ways. 22:11:11 maybe I did but forgot 22:11:29 fizzie, it does matter if you will implement fast STRN 22:11:32 I'll have to think about the llvm thing. Currently the jitfunge code is pretty convoluted; maybe if I cleaned it up a bit so that there'd be a clean-ish-er interface between code generation and the rest of the code, I could even experiment better. 22:11:32 or such 22:11:47 fizzie, because you will end up like me, with slow reversing string 22:11:53 and for y too, to push environment 22:11:57 more slow string reversion 22:12:00 reversing* 22:12:13 and yes I grow up for ease of growing too 22:12:15 realloc() 22:12:39 fizzie, or just steal the register allocator of llvm 22:12:50 it works with 1024 virtual registers iirc 22:13:40 I have a rather non-fast approach to all dynamic uppercase instructions, at the very least there's a full all-funge-values-from-registers-to-stack flush plus a couple of setup instructions to store the stack pointer in edi (or whatever I kept it in) to the global stack-top variable. 22:13:58 Since you never know what the instruction might end up doing. 22:14:45 well true 22:15:03 fizzie, you will likely need to do such flushes for the core too for some things 22:15:06 like i and o 22:15:29 fizzie, some fingerprint instructions could be implemented as "compile inline" 22:15:44 especially FPSP, FIXP and FPDP would be good targets for that 22:15:48 very short generally 22:15:57 Yes, I generate flush+function-call for all fingerprint instructions and core IO operations. Although that's partially because there's a C++ class you can implement to specify what kind of IO the interpreter does. 22:16:11 -!- Sgeo has joined. 22:16:18 fizzie, have you read the C++ FQA? 22:16:29 why not use a template to specialize it while you are at it! 22:16:35 Yes. 22:16:59 fizzie, why C++? Why not C? 22:17:17 Actually that part is reasonably FQA-compatible. FQA answer: "If you want to be able to work with many different implementations selected at run time, abstract base class is the way to go." 22:17:41 fizzie, I don't remember that one. But ok 22:18:13 I've ask myself the "why C++, why not C" question many times. 22:18:29 did you reach any answer? 22:18:37 But, you know, it was the C++ period; there is no rational answer. 22:18:50 fizzie, another thing: don't put a branch instruction across a 16 byte boundary. 22:18:55 if possible 22:19:17 Er, well, I'm sure I could align those; what's the reason? 22:19:33 fizzie, branch prediction works better on many CPUs that way 22:19:49 also aligning is not recommended, better reorder instructions if possible 22:20:32 Given my current code-generation strategy, that's not exactly trivial. But sure. 22:21:35 fizzie, well the overhead of the nops would be larger than the gain if you have too many nops. IIRC someone said that: 1 byte alignment > branch over boundary > huge alignment 22:21:42 or was it 2? Well anwyay 22:21:46 anyway* 22:22:14 fizzie, both the AMD and Intel optimizing guides are good and interesting reads. 22:22:18 Gah, where is asiekierka when I need him 22:22:25 some advice is general. Some is CPU specific 22:22:30 some even contradict. 22:22:34 but usually not 22:23:18 I do that full stack-flush for pretty much every 'p' instruction (except those with constant and small x/y arguments) too, since the 'p' might end up invalidating the currently-being-executed trace. Although I guess I could do some of the cleanup only in case the instruction actually did something like that; it was just simpler to flag 'p' as a flush-stack-before instruction. 22:23:19 fizzie, I just got a crazy idea... 22:23:59 fizzie, Concurrent JIT 22:24:12 Pretty much all "advanced" optimilization things boil down to the fact that I don't have any sensible intermediate representation for code; that's why the llvm assembly would make sense. 22:24:13 one core runs the code, another compiles and optimises 22:24:27 Deewiant: Do elaborate what you need him for, btw. 22:24:35 fizzie: DOBELA. 22:24:44 Deewiant, have you gone insane? 22:25:01 Not any more than previously, I don't think 22:25:16 Oh, the 99 % TC language. 22:25:43 I guess what's meant by that is "most likely, but not proven"? 22:25:53 Guess so, it was just amusingly expressed. 22:26:02 which one was it? 22:26:07 was it the bully automaton? 22:26:43 Deewiant, fizzie: http://paste.lisp.org/display/77084 <-- Have I gone insane? 22:26:51 well ais suggested so 22:26:56 don't remember if you saw it 22:27:08 also that syntax highlighting sucks 22:27:13 can't highlight C99 comments 22:27:18 AnMaster: GCC creates worse code? 22:27:27 I did take a peek. It is rather... verbose. 22:27:27 Deewiant, yes. 22:27:40 But whatever floats your funge-boat, I guess. 22:27:42 fizzie, I have two level of fallbacks 22:27:53 fizzie, that would be FPSP? 22:28:05 Groan. 22:28:05 -!- BeholdMyGlory has quit (Remote closed the connection). 22:32:43 tumtitum 22:35:50 fizzie, how do you spill registers? 22:36:45 AMD suggests adjusting stack pointer and using MOV rather than pushing. Or out of order execution won't work properly 22:38:01 -!- Corun has joined. 22:38:19 I don't. 22:38:33 http://pastie.org/417121 I am breaking the law no more than AnMaster 22:38:33 fizzie, you said you did for p? 22:38:34 "it doesn't even handle spilling correctly", like I said. 22:38:46 Oh, well, that. I don't count that. 22:38:53 I, uh, though that the microcode RISC compiler made PUSH do just that? 22:39:15 I do use MOV, because the funge-stack pointer is not in ESP. 22:39:59 pikhq, I just mentioned what AMD said in AMD64 Architecture Programmer’s Manual Volume 1: Application Programming 22:40:14 section 3.10.9 22:40:14 Incidentally... if I'm in a leaf function (or at least a part where there's no calls), can I pretty much do whatever I want with ebp/esp (assuming I don't care for things like gdb stack-trace in case of a crash) without having to worry about things breaking if, say, an interrupt occurs? 22:40:38 ehirdghost, that url times out 22:40:41 *shrug* 22:40:44 Not for me. 22:40:49 get a better isp 22:41:23 ehirdghost, fine, I will just refer to the section in the future, never paste it 22:41:25 :) 22:41:30 or paste in msg 22:41:35 a lot better for log readers 22:41:37 Yes, and I'm sure everyone else will ask for a link. 22:41:37 AnMaster: Hmm. Curious. 22:41:50 I should read that some time. 22:41:50 I think there are architectures/environments where you're contractually obliged to keep some amount of space free and accessible via a stack-pointery registers for emergency register-shadowing, for example. 22:41:59 pikhq, fun bed time reading ;) 22:42:03 * pikhq has been meaning to learn long mode assembly. 22:42:11 pikhq, there are 5 volumes btw. 22:42:15 I know a precious little about x86 low-level details for a JIT-writer. 22:42:39 Big deal? 22:42:57 I read voraciously. 22:43:33 1: Application programming 2: System programming 3: General purpose and System Instruction reference 4: 128-bit media instructions 5: 64-bit media instructions and x87 instructions 22:44:08 Should prove interesting. 22:44:29 Probably not the best thing for a n00b to assembly to read, but I already know assembly, so... 22:44:49 (real mode and 32-bit protected mode, x86. Whooo.) 22:44:50 pikhq, each is a pdf of around 300-500 pages 22:45:02 Glee. 22:45:21 pikhq, the AMD64 Optimization guide is a separate 384 pages pdf btw. 22:45:28 Double-glee. 22:45:38 pikhq, the index works well. 22:45:44 Then, I will know more about x86-64 than any one man has any right knowing. :p 22:45:51 I can usually find what I want quite quickly 22:46:04 (I am, of course, at this point mostly joking) 22:46:15 pikhq, the type is quite large 22:46:25 ;P 22:46:32 Probably good reference material, though. 22:47:11 pikhq, On a more serious note: the Intel docs tend to be much more densely written. And about as many pages. And harder to find what you want in. 22:47:17 Just a fair warning. 22:47:29 (if that is correct English) 22:47:30 % ghci -package dph-par uncomfortably-parallel.hs +RTS -N2 -g2 -RTS 22:47:42 ehirdghost, what does uncomfortably-parallel.hs do? 22:47:48 AnMaster: it has two functions 22:47:52 oh? 22:47:57 doubleP, which parallely doubles a paralelly array of ints 22:47:58 Yeah, I had heard that AMD made somewhat more useful docs. 22:48:05 and big, which is a parallely array of 1000000000 ints 22:48:20 heh 22:48:24 dph-par is the multicore data parallel haskell package 22:48:29 +RTS -N2 -g2 -RTS means 22:48:35 "make the runtime use 2 threads, and use 2 threads for GC" 22:48:41 hmm wait 22:48:45 it should be cores+1 right? 22:48:50 ehirdghost, Hm. I hope that compiles into some threads running SSE instructions over it. 22:48:54 +RTS -N3 -g3 -RTS 22:48:56 if yes it should be very fast 22:49:01 AnMaster: I didn't enable vectorization 22:49:07 because it fails on my code; need to look into that 22:49:19 ehirdghost, well you could gain a 4x speed up from vectorization 22:49:21 also wth 22:50:22 : memory allocation failed (requested 4000317440 bytes) 22:50:24 Bollocks. 22:50:28 * ehirdghost chops a zero 22:50:57 So, uh... do I need to have a sensible stack frame setup (ebp/esp) if I don't call anyone? I mean, I guess in a modern sort of operating system an interrupt actually does something context-switch-like to get a different stack? 22:51:16 Hmm, come on ghc, use that cpu up, you're meant to be using 2 threads. 22:51:41 Guess my code isn't uncomfortably vectorizable en- 22:51:41 Oh. 22:51:44 182% CPU usage. 22:51:49 Er, I think that's the garbage collector. 22:52:42 So anyway, here's the code. 22:52:47 {-# LANGUAGE PArr, ParallelListComp #-} 22:52:47 {-# OPTIONS -Odph #-} 22:52:48 import qualified Data.Array.Parallel.Prelude as P 22:52:50 import qualified Data.Array.Parallel.Prelude.Int as PI 22:52:52 doubleP :: [:PI.Int:] -> [:PI.Int:] 22:52:54 doubleP xs = [: x PI.* 2 | x <- xs :] 22:52:56 big :: [:PI.Int:] 22:52:58 big = P.replicateP 100000000 42 22:53:00 adding -fvectorise to OPTIONS will make the vectoriser die with an evil error message. 22:53:03 Have fun. 22:53:04 wow 22:53:06 just wow 22:53:09 What 22:53:15 P.S. "doubleP big `seq` ()"; you don't want to print _that_ out. 22:53:15 I ate a bit of garlic flavoured bread 22:53:20 Wow. 22:53:21 Amazing. 22:53:24 then a bit of choclate 22:53:25 err 22:53:33 Unbelievable. 22:53:33 chocolate* 22:53:37 and the mix 22:53:42 was very tastey 22:53:44 tasty* 22:53:47 just wow 22:53:47 and then you exploded 22:53:56 ehirdghost, no, I haven't yet 22:54:00 3...2...1... 22:54:02 I'm not sure whether I mentioned this already, but QBasic kind-of reminds me of MATLAB; the actual operations aren't necessarily slow (MATLAB's pretty fast at inverting a matrix, for example) but all code-flow including interpreted MATLAB script, like a for loop or something, is slow as anything. 22:54:05 Hey, now you're a ghost like me. 22:54:05 still here 22:54:10 wrongf 22:54:14 wrong* 22:54:30 http://www.richardsimoes.com/gravity.html A fun game. Bring a canvas-supporting fastish JSy browser. 22:54:33 And a mouse. 22:54:35 So, uh... do I need to have a sensible stack frame setup (ebp/esp) if I don't call anyone? I mean, I guess in a modern sort of operating system an interrupt actually does something context-switch-like to get a different stack? 22:54:39 well not on x86_64 22:54:48 And a nack for being a star. 22:54:50 you can use 128 bytes beyond the stack pointer there 22:54:57 fizzie, which is nice. 22:55:18 from man gcc: 22:55:19 -mno-red-zone 22:55:19 Do not use a so called red zone for x86-64 code. The red zone is mandated by the x86-64 ABI, it is a 128-byte area beyond the location of the stack pointer that 22:55:19 will not be modified by signal or interrupt handlers and therefore can be used for temporary data without adjusting the stack pointer. The flag -mno-red-zone dis‐ 22:55:19 ables this red zone. 22:55:42 iirc it doesn't/didn't work properly with the linux kernel 22:56:07 I seem to recall Linux caring about the ABI. 22:56:09 fizzie, and I think you could run into issues with *signal* handlers if you didn't do this properly 22:56:17 pikhq, hm? 22:56:29 Just saying "Yeah, probably not." 22:57:03 Right, there are signal handlers too. I just would like to have ESP point at the Funge stack. 22:57:08 pikhq, did you just disagree or agree with me? 22:57:20 Agree. 22:57:23 ok 22:57:33 In about as vague a way as possible. 22:58:06 pikhq, I think the gcc man page used to say that this option was for the linux kernel. But since it doesn't any more in the version I have here I guess the linux kernel now supports it. 22:58:34 Eh. 22:58:39 does anyone know why ld(1) is so slow? 22:58:47 i mean seriously it takes seconds to link a trivial program 22:58:55 ehirdghost, I know why. 22:58:57 bad design. 22:59:06 that's got to be some _really_ bad design 22:59:12 ehirdghost, I remember reading a blog post by the initial ld author 22:59:17 if this is binutils ld 22:59:24 bsd 22:59:35 well, er 22:59:36 binutils has ELF support more or less bolted in afterwards. 22:59:36 no 22:59:37 custom 22:59:39 had* 22:59:44 Darwin ld 22:59:44 -!- Corun has quit ("Leaving"). 22:59:45 for Mach-O 22:59:46 ehirdghost, then I don't know. 22:59:55 it's like this on every platform 22:59:56 Binutils ld... Wasn't that mostly designed for the sake of flexibility, and not being even remotely speedy? 23:00:23 pikhq, well that too. It interprets a linker script to find out how to link 23:00:31 there is a new linker under development 23:00:33 called "gold" 23:00:41 yes, by google 23:00:42 *sigh* 23:00:42 it is written in C++ 23:00:45 does it work for mach-o? 23:00:48 That's hackers for ya. 23:00:48 pikhq: why sigh/ 23:00:50 ehirdghost, not google iirc 23:00:53 er, no 23:00:55 gold is by google 23:01:06 Gold is a linker for ELF files. It was added to binutils March, 2008[1][2], and first released in binutils version 2.19. Gold was developed by Ian Lance Taylor of Google[3]. 23:01:11 it stands for GOogle LD 23:01:16 http://google-opensource.blogspot.com/2008/04/gold-google-releases-new-and-improved.html 23:01:23 ehirdghost, err I remember reading original binutils ld author worked on it 23:01:29 maybe he works at google. 23:01:29 maybe he works for google 23:01:32 yeah 23:02:07 "Ian Lance Taylor" 23:04:05 -!- kar8nga has quit (Read error: 104 (Connection reset by peer)). 23:10:30 * bsmntbombdood reads 23:12:12 -!- Sgeo has quit (Read error: 104 (Connection reset by peer)). 23:12:25 -!- tombom has quit ("Peace and Protection 4.22.2"). 23:15:10 bah, boring 23:15:20 it's simply a list of micro-optimizations 23:16:31 yow, new freshmeat.net 23:20:19 ehirdghost, which was/is best old or new look? 23:20:30 both are ugly 23:20:38 the newer is slightly easier to read, but has more cruft. 23:21:26 why a white box beside the logo? 23:21:42 what's freshmeat? 23:22:04 that's like asking "what is sourceforge" 23:22:20 http://freshmeat.net/about 23:23:03 borign 23:23:12 why did you ask then 23:23:32 it's simply a list of micro-optimizations <-- what is? 23:23:46 the amd64 optimization guide 23:24:02 AnMaster: white box beside the logo? 23:24:03 Excuse me what 23:24:11 bsmntbombdood, well yes. The reference docs are more interesting 23:24:14 "use 64 bit operations instead of 32 bit operation when 64 bits are needed" 23:24:16 no fucking shit? 23:24:34 AnMaster: link 23:24:37 bsmntbombdood, some are like that yes. Some are more interesting. Check the SSE stuff. 23:24:44 bsmntbombdood, a sec 23:24:47 ehirdghost, what? 23:25:01 22:21 AnMaster: why a white box beside the logo? 23:25:03 I see no white box 23:25:03 ehirdghost, see the logo at the top? 23:25:06 Yes 23:25:16 ehirdghost, see the huge box to the right of it? 23:25:19 for me it is white 23:25:26 Oh. 23:25:28 There are ads there, for me. 23:25:33 Since I don't block them. 23:25:37 ehirdghost, oh ok 23:25:42 how can you live with ads. 23:25:49 I don't notice them. 23:26:08 And some sites's layouts go a bit unbalanced-looking without them filling space, so. 23:26:58 bsmntbombdood, this is part 1 of 5 http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/24592.pdf 23:27:27 bsmntbombdood, for links to all: http://www.amd.com/us-en/Processors/DevelopWithAMD/0,,30_2252_875_7044,00.html 23:27:37 -!- GregorR has quit (Read error: 110 (Connection timed out)). 23:27:47 i requested all the intel x86 docs once 23:27:53 that was funny 23:27:55 bsmntbombdood, oh? 23:27:59 they are sitting in my closet somewhere 23:28:15 bsmntbombdood, I think they are available as pdfs nowdays 23:28:17 it's like 8 volumes 3" thick 23:28:25 bsmntbombdood, also what did it cost you? 23:28:30 nothing 23:28:39 huh 23:28:57 they send them out free 23:30:23 they can't sell any processors if no one develops for them 23:30:28 ok 23:30:45 bsmntbombdood, I prefer pdf. Comes with Ctrl-F to speed up searching 23:32:00 I prefer hypertext that's displayed how I want, with a plaintext open markup language behind it that I can copy and paste from; instead of a closed-world NowYourMonitorCanBeAnInflexiblePieceOfPaper propreitary format that doesn't let me view it how i want it. 23:32:01 > 23:32:31 ehirdghost, Um I can view it how I want it 23:32:53 ehirdghost, if your pdf viewer follows the copy protection stuff replace it 23:32:55 You can change a PDF's font? Get rid of the irritating two-column format? Run sed over it? 23:32:57 with an more open one 23:33:05 I'd like to know how. 23:33:05 ehirdghost, pdf2edit 23:33:25 well: pdf2ps | ps2edit 23:33:37 ps2ascii ps2eps ps2epsi ps2frag ps2pdf ps2pdf12 ps2pdf13 ps2pdf14 ps2pdfwr ps2pk ps2ps ps2ps2 23:33:39 have those 23:33:42 and pdf2dsc pdf2ps 23:33:46 Go on then, I'll give you a tex rendered PDF; you change the font to something more respectable, let me resize the window to resize the text (instead of just zooming), make it two columns and flush left, ... 23:33:57 If you can do it in <2mins I'll be impressed. 23:34:05 ... More respectable? 23:34:16 You mean it comes more respectable than Computer Modern? 23:34:16 ehirdghost, well ok you are right about that bit. But I prefer pdf over xps 23:34:18 pikhq: That was a joke. 23:34:28 Good, good. 23:34:33 pikhq, no it doesn't. CM > * 23:34:43 Computer Modern doesn't really work too well on a screen IME. 23:34:49 Too many curly parts. 23:34:55 Yeah, it's very much a print font. 23:35:10 I requested Zilog's Z80 databook once, in a physical format; and it was actually pretty useful when writing some TI-86 code. I gave it away as a gift, though. 23:35:12 it's much easier to read dead trees 23:35:27 Wonderful on dead trees, though. 23:35:37 Most of the book was just timing diagrams, though. 23:35:43 i love computer modern 23:35:59 I find screen reading as easy as book reading, but that's for a justified book with a good serif font with sufficiently bold text, and a sans-serif or lightweight serif screen font that's sufficiently light and ragged right 23:36:03 So, very different requirements. 23:36:26 I can't even find Intel documentation any moer 23:36:27 more* 23:36:29 where is it 23:37:12 http://www.intel.com/software/products/documentation/vlin/mergedprojects/analyzer_ec/mergedprojects/reference_olh/reference_hh/intel_s_software_developer_s_manuals.htm has links. 23:37:25 hard to find 23:37:40 ehirdghost: Yeah; different fonts for different purposes. 23:37:50 The developer.intel.com search should find 'em with the right keywords, like "architecture" and "manual". 23:38:02 I prefer adjusted margins on screen 23:38:11 fizzie, was trying on intel.com... 23:38:12 http://developer.intel.com/products/processor/manuals/index.htm 23:38:17 see "order a printed copy" 23:38:20 http://www.intel.com/products/processor/manuals/ also looks like a good list. 23:38:23 Yes. 23:38:43 I wish that web browsers would do justified text rendering, though... 23:38:54 I was thinking of their optimization guide thingy 23:39:02 tex's justification algorithm is so complicated 23:39:07 yes 23:39:10 Intel® 64 and IA-32 Architectures Optimization Reference Manual is on that page. 23:39:19 bsmntbombdood: and also awesome. 23:39:20 try the package microtype to get even better results 23:39:25 work best with pdftex 23:39:29 or luatex 23:39:34 works* 23:39:36 I love XeTeX 23:39:53 ehirdghost, no idea if it supports micro-typography 23:40:00 Yes 23:40:05 ehirdghost, like optically straight margins? 23:40:07 Yes 23:40:10 It's all about that kind of stuff 23:40:20 ehirdghost, how do you turn it on? 23:40:21 for it 23:40:28 Same way as normal 23:40:30 I believe 23:40:36 ehirdghost, which is? 23:40:47 for pdftex you use the package microtype. And docs says it only works for pdftex 23:40:48 I gather that microtype is basically a set of improvements on TeX's justification algorithm. 23:40:48 Erm, the microtype package thang? 23:40:49 -!- oerjan has joined. 23:41:03 pikhq, kerning too + a few other things 23:41:09 hmmm 23:41:09 http://www.tug.org/pipermail/xetex/2004-October/001206.html 23:41:11 that's from 2004 though 23:41:12 also 23:41:15 xetex has kerning and stuff 23:41:20 built in 23:41:21 Ah. Improvements on its kerning, also... 23:41:34 http://nitens.org/taraborelli/latex 23:41:38 that was made with xetex 23:41:44 so, very typographically sound 23:41:59 ehirdghost, http://www.ctan.org/get/macros/latex/contrib/microtype/microtype.pdf 23:42:04 that is what I'm talking about 23:42:09 I am aware. 23:42:31 ehirdghost, can it do those things? 23:42:42 I think so. 23:42:49 The whole point of XeTeX was to improve the fonty stuff. 23:42:55 And Unicode support 23:43:08 And Opentype instead of METAFONT. 23:43:11 http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=XeTeX 23:43:15 ehirdghost, well what about the optically straight margins bit 23:43:19 that in particular 23:43:37 I think so 23:43:40 I'm no expert, but I think so 23:44:49 ehirdghost, also how does xetex work on non-OSX? 23:44:59 How does it not? 23:45:01 the mail you linked talks about quartz 23:45:04 http://www.tug.org/pipermail/xetex/2004-October/001206.html 23:45:08 http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&item_id=xetex_linux 23:45:08 which iirc is OS X specific 23:45:20 XeTeX is part TeX Live. 23:45:30 Part of, rather. 23:45:32 pikhq, I know. I have it installed 23:45:44 I was just trying to make sense of how 23:45:50 Same damned way. 23:46:08 pikhq, not the quartz bit obviously 23:46:19 different code on different platforms WHAT 23:46:22 as the page ehirdghost linked mentioned 23:46:23 Impossible 23:46:54 ehirdghost, depends on how much needs to be ported 23:46:59 and what can be the same 23:47:19 FreeType, I suspect, is used instead of Quartz for font rendering. 23:47:20 -!- Slereah has joined. 23:47:33 No. OpenType. 23:47:43 ehirdghost: OpenType is a font *format*. 23:47:47 err right 23:47:49 sorr 23:47:49 misread 23:47:58 I like METAFONT 23:48:01 what is wrong with it? 23:48:02 FreeType is the Linux implementation of an OpenType renderer. 23:48:10 AnMaster, it doesn't do Unicode. 23:48:18 And OpenType is, iirc, more featureful. 23:48:20 And more widely supported. 23:48:24 And more fonts are available in it. 23:48:28 pikhq, I included some Swedish text encoded as UTF-8 with no issues 23:48:28 Yeah. 23:48:36 to pdftex yesterday 23:48:45 used Latin Modern I think 23:48:58 don't remember what font format that is 23:49:16 i never metaf *hit by falling anvil* 23:49:23 PDFTeX uses TrueType and Type 1 fonts. 23:49:44 "XeTeX on Linux depends on an extended version of the DVIPDFMx driver by Shunsaku Hirata and Jin-Hwan Cho to generate PDF output"; that's what it does on Linux, instead of Quartz. 23:50:03 Fair enough. 23:50:13 Of course, I don't know what that driver does. 23:50:15 fizzie: Stop reading! You're not allowed to. You have to ask questions of people who don't know the answer. 23:50:19 Probably part of TeXLive's dvi2pdf. 23:50:28 ehirdghost, I read it. 23:50:31 as the page ehirdghost linked mentioned 23:50:37 just pikhq didn't 23:50:45 Yes, you read it, that's why you asked me straight after. 23:50:55 ehirdghost, ? 23:51:20 ehirdghost, what are you talking about? 23:51:55 ehirdghost, I didn't ask you after. 23:51:56 ... 23:52:07 sure you did 23:52:08 ehirdghost, also how does xetex work on non-OSX? 23:52:09 How does it not? 23:52:09 the mail you linked talks about quartz 23:52:09 http://www.tug.org/pipermail/xetex/2004-October/001206.html 23:52:10 you kept asking what it used instead of quartz 23:52:11 which iirc is OS X specific 23:52:14 http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&item_id=xetex_linux 23:52:24 after that I didn't ask 23:52:37 ehirdghost, what line after that? 23:52:44 ff 23:53:01 ehirdghost, does that mean you admit you were wrong? 23:53:09 no, it means i can't be bothered to continue 23:56:08 Speaking of web browsers and text layout, there's the horrible thing called sIFR; http://www.mikeindustries.com/blog/sifr/ -- the "How it works" explains a very nice method of using up spare CPU cycles. 23:56:28 Oh yes; I hate those things. 23:56:59 "Actionscript inside of each Flash file then draws that text in your chosen typeface at a 6 point size and scales it up until it fits snugly inside the Flash movie. " 23:57:00 Hahaahaha 23:57:05 Best algorithm ever 23:57:28 * oerjan swats straight through ehirdghost -----### FOR SCIENCE! 23:57:34 -!- Slereah_ has quit (Read error: 110 (Connection timed out)). 23:57:37 I felt nothing. 23:57:51 The visual representation is just an astral equiprojection of my statis, you know. 23:58:00 * oerjan repeats the experiment for statistical significance -----### 23:58:09 La la la la. 23:58:32 Like the statistical saying goes: "With a large enough N, all bugs are shallow." Or something like that, anyway. 23:59:17 well, there is some probability that it says that 2009-03-16: 00:05:45 fizzie: Well, SIFR seems to do absolutely nothing here. 00:06:10 Ah well. Means that things won't find a way to fuck with my font setting. 00:06:41 "Actionscript inside of each Flash file then draws that text in your chosen typeface at a 6 point size and scales it up until it fits snugly inside the Flash movie. " <-- Why not do it in INTERCAL instead. Really it would make perfect sense for an esolang. But for this?... 00:07:00 (a nice serif font with thin lines; rather nice to read at a decent DPI) 00:07:00 sIFR does nothing with noscript, either, but still. 00:07:15 I don't have noscript. Just AdBlock... 00:07:26 I use both noscript and adblock plus 00:07:35 and have no flash or java plugins 00:07:39 Noscript doesn't work with Conkeror. 00:08:00 "sIFR runs fine under other extensions like AdBlock"; that shouldn't be related. 00:08:11 pikhq, mhm 00:08:16 and why do you use that? 00:08:29 Mouseless browsing. 00:08:33 ok 00:09:04 And it's XULrunner based, so just about everything works anyways. 00:09:07 Conkeror is emacs for Firefox. 00:09:17 Emacs for Gecko, rather. 00:09:20 I am not sure why that would elicit a "why" from AnMaster. 00:09:29 It's not been a Firefox extension for a couple of years. 00:09:30 pikhq: It's rather more Firefox than just Gecko 00:09:36 * SimonRC <3 the future. 00:09:40 Anyway; sIFR is not the stupidest thing I've seen (I mean, it's not like placing body text in an image, for example; and they strongly advise against using it for body text, anyway), just silley. 00:09:44 It's XULrunner. 00:09:54 fizzie, agreed 00:09:58 Which is Gecko with the ability to load arbitrary XUL... 00:10:06 We do things by pulling little computer programs across the world 00:10:32 Soon we'll have intelligent agents running around! 00:11:09 SimonRC: wut 00:11:10 firefox use xulrunner... 00:11:28 ehirdghost, duh. read what he said above 00:11:40 23:09 SimonRC <3 the future. 00:11:41 23:10 SimonRC: We do things by pulling little computer programs across the world 00:11:42 I repeat: wt. 00:11:44 wut 00:11:46 it is crystal clear... 00:11:47 duh 00:11:49 night btw 00:11:53 Er, it is? 00:12:13 yeah, we live in the future 00:12:23 I am fairly sure we live in the present, SimonRC. 00:12:30 Fairly sure indeed. 00:12:38 ehirdghost, no. You are a ghost. You don't live 00:12:43 you lived in the past. 00:12:47 s/the future/The Future/ 00:12:50 AnMaster: By the way, we've been pulling little computer programs across the world for stuff since at *least* the invention of Javascript. ;) 00:12:59 pikhq, indeed. 00:13:07 Probably longer, if you count, say, UUCP. 00:13:10 AnMaster: I metalive. 00:13:18 I am not certain, but I think I was thinking this before Munroe made a comic about it 00:13:25 I never metalive I didn't like. 00:13:34 ehirdghost, I chose to ignore that pun and instead point out that is not valid grammar. 00:13:56 I will now metakill you. 00:14:28 also why is "I never meta I " supposed to be funny? It is a rather lame pun IMO. 00:15:39 Incidentally, how do the licensing terms go; if I have a copy of OS X, can I use some of the bundled fonts on a different computar? (I'm not sure I want to, just hypothetically speaking.) 00:15:46 computer* 00:16:04 Oh, sorry, I meant CANTOR-UPPER. 00:16:05 fizzie: I'm not sure. There's no DRM or anything; I don't think anyone cares. 00:16:28 fizzie, that made no sense. 00:16:44 it is noway near "computer" when you pronounce it 00:16:44 fizzie: I don't think there is anything in the EULA or whatnot. 00:17:00 fizzie: So it'd just be standard copyright law; if you're using it on another computer you own, fair use, probably. 00:17:06 fizzie: Assuming the computer in question supports TrueType or OpenType, yeah. 00:17:20 pikhq: he means can as in legally 00:17:22 "is it allowed" 00:17:25 ehirdghost, what if you use it in a document and that cause it to be bundled... 00:17:35 Oh, all fonts let you bundle them in PDFs and whatnot, I think/ 00:17:41 ehirdghost, say a document with the entire UTF-8 chart :D 00:17:45 Most any sane one, at least. 00:17:53 so end user can extract it all 00:17:57 Yay; if that's the truedness, there's some form of common sense left. 00:18:01 would that be legal? 00:18:03 fizzie: I've done it 00:18:08 I just used a converter of .dfont -> .ttf, iirc 00:18:11 and it worked fine 00:18:13 Called "fondu" 00:18:22 No DRM or anything; one command line invocation and an upload 00:18:27 BTW, fun fact. Typefaces are not subject to copyright. 00:18:27 Yes, well, I have it from reputable sources that you also download QuickBASIC copies of dubious legality. 00:18:34 pikhq: Really? 00:18:41 ehirdghost: sounds a bit cheesy 00:18:43 pikhq, what are they subject to then? And is that US only? 00:18:46 pikhq: Then why was Arial ever created? 00:18:50 The *computer code* describing them can be. 00:18:51 oerjan, augh 00:19:07 ehirdghost: Novel and non-obvious designs can be patented. 00:19:16 Helvetica is pretty "obvious"... 00:19:22 Yeah. 00:20:34 As a side note, does anyone actually use Zapfino? 00:20:36 opentype contains parts under patent 00:20:37 It's utterly unreadabl 00:20:38 e 00:21:03 Other countries have typeface copyright. 00:21:10 Uh, I'm not sure "file" is correct here: "Monaco.dfont: MS Windows icon resource" 00:21:14 AnMaster: Yeah; mostly the hinting algorithms, IIRC. 00:21:16 pikhq: Does Europe? 00:21:19 fizzie: :-D 00:21:24 pikhq, others == non-US or? 00:21:24 Monaco is love. 00:21:32 Others == non-US. 00:21:44 "Unfortunately, just before the project was completed, Siegel wrote a letter to Zapf, saying that his girlfriend had left him, and that he had lost all interest in anything. Thus Siegel abandoned the project and started a new life, working on bringing color to Macintosh computers, and later becoming an Internet design expert. " 00:21:45 pikhq, who cares about US? 00:21:46 XDD 00:21:48 I don't 00:22:00 Sorry; hard to get out of US-centric phrasing sometimes. 00:22:00 AnMaster: Yes, I know you take pride in your rabid hate of the US (because IT'S POPULAR or something). 00:22:06 Most of us don't. 00:22:31 Also, Zapfino? Unreadable? 00:22:42 Ehm, yes. 00:23:04 No, it looks like calligraphic text. Rather readable, though probably not the best for long works. 00:23:17 well, it's hard for me to read… 00:23:35 OS X specific? 00:23:41 I can't find it here 00:23:47 AnMaster: OS X builtin font. 00:23:53 screenshot? 00:24:00 entirely separate from os x 00:24:04 but bundled with OS X 00:24:14 saying "OS X specific" is Wrong; I don't know of any OS X only fonts. 00:24:21 http://upload.wikimedia.org/wikipedia/commons/c/c7/Zapfino.svg 00:24:23 maybe Geneva 00:24:39 that's nice 00:24:48 readable for being a calligraphic one 00:24:49 AnMaster: Yes, but try reading text in it 00:25:03 ehirdghost, It would be good for logos or such 00:25:08 not for long works no 00:25:25 ehirdghost: Calligraphic fonts aren't meant for long works... 00:25:28 but why so many variants there 00:25:31 Of course. 00:25:35 But even for titles. 00:25:43 AnMaster: it has over 18,000 ligs 00:25:45 and how do you select which one? 00:25:48 ehirdghost, wow.... 00:25:50 and manually 00:25:52 afaik 00:25:56 XeTeX. ;) 00:26:04 er wait 00:26:06 1,400 ligs 00:26:09 still insane 00:26:12 ah ok 00:26:26 I'ma download MacTeX 00:26:34 Does it still use that ugly iInstaller crap, I wonder. 00:27:34 Oh lord, FTP. 00:27:39 Why, why FTP. 00:27:55 Ah, an HTTP mirror. 00:28:01 700KB/sec. Most excellent. 00:28:03 Thank you Germany. 00:28:16 ehirdghost, what is wrong with ftp.... 00:28:21 Everything 00:28:38 well, passive ftp works fine in my experience 00:28:57 Aside from it's connecting back to the initiator of the connection for the transfer link, it's a decent protocol. 00:29:03 Perhaps a bit overengineered, though. 00:29:05 pikhq, indeed 00:29:18 pikhq, parallel transfers are nice though 00:29:20 It's completely insecure in every way, and for passive basic file downloads it has 0 advantages compared to HTTP 00:29:22 True, true. 00:29:26 And several disadvantages 00:29:30 Such as? 00:29:40 ehirdghost, apart from connect back? 00:29:55 pikhq: have you ever _used_ FTP/ 00:29:57 ? 00:30:03 ehirdghost, I have 00:30:08 for both up and download 00:30:24 Yes, I have. 00:30:27 works well, apart from the insecure bit and separate data channel. 00:30:29 Also, the server software required for it is bit too large... 00:30:33 -!- Corun has joined. 00:30:45 Ilari, err. ISS is a bit insecure. Lets drop http 00:30:56 Ilari, there are small FTP servers. 00:30:57 ... 00:31:00 ftp(1) is a rather nice program. 00:31:24 pikhq, indeed. I prefer sftp though mostly. For security 00:31:28 Ilari: Uh, ftpd probably comes in under a megabyte. 00:31:32 AnMaster: Well, yeah. 00:32:08 AnMaster: Implementing HTTP server is probably smaller task than implementing FTP server... 00:32:13 At least with FTP you can, on host C, transfer data between servers A and B without things going through C. 00:32:29 Ilari, "probably"? 00:32:29 It is horribly complicated due to historical raisins, though. 00:32:29 -!- Corun has quit (Client Quit). 00:32:41 fizzie, I managed that with scp iirc 00:33:04 I find it very unlikely that scp can do it. 00:33:12 Sftp can, scp can't. 00:33:15 fizzie, maybe sftp then 00:33:16 ok 00:33:43 How do you do it with sftp, then? 00:34:15 sftp foo:bar baz: 00:34:32 * ehirdghost boo 00:34:36 Sorry, had to fill my ghost quota. 00:34:50 ehirdghost, so what was the issue you had with ftp? 00:34:56 AnMaster: Whooooo 00:35:00 WHOAOOAOOOOOO 00:35:02 you never answered what apart from separate control channel 00:35:12 s/sftp/scp/; sorry. sftp is a ftp-style program, and current scp programs are just sftp frontends. 00:35:13 pikhq: That writes to local file "baz:" here. 00:35:20 Really?!? 00:35:26 "and current scp programs are just sftp frontends." 00:35:28 Wait what? 00:35:31 no 00:35:38 Sorry. That was an epic thinko. 00:35:45 they are not 00:35:53 THAT WAS DUMB. 00:35:59 :| 00:36:19 ehirdghost, still. I'm waiting for an answer 00:36:19 I enjoy infuriating you by withholding it. :P 00:36:19 you seem to avoid answering the question 00:36:20 WHOAOAOAOA 00:36:39 ehirdghost, well I just think it means you can't think of any rational reasons 00:36:40 :P 00:36:44 so your loss 00:36:49 That's your prerogative 00:37:59 that comment made me even more sure about what I just said 00:38:12 I get "Permission denied, please try again. Permission denied, please try again. Permission denied (publickey,password,hostbased)." for a two-host scp thing. That is a bit strange. 00:38:13 If you haven't realised yet, I really don't care what you think about me. 00:38:28 Gawd, MacTex is 1GB… I don't even know how that's possible… still in awe 00:38:35 ehirdghost, I think you do actually. Just are afraid to admit it 00:38:46 AnMaster: hahahaaha; you wish, maybe 00:39:04 ehirdghost, you feel insecure in yourself 00:39:20 "you show all the signs of not caring what I think about you; therefore you are insecure and secretly desire my confirmation but are too scared to seek it" 00:39:29 Yes, I'm sure. Solid reasoning there. 00:39:53 ehirdghost, except you don't "show all signs of not caring". You rather try to show that but fail. 00:40:01 Which is very different 00:40:23 You're opening up my heart and showing me my deepest desires. It would be heartbreaking if it wasn't bullshit. 00:41:04 ehirdghost, Yes you are scared to admit it. The more you deny it, the more you prove it. ;P 00:41:23 I am not a ghost. I am not a ghost. I am not a ghost. I am not a ghost. I am not a ghost. I am not a ghost. I am not a ghost. I am not a ghost. 00:41:26 Now you have to believe I am. 00:41:50 ehirdghost, Um, how does that follow logically 00:42:06 -!- FireyFly has quit ("Later"). 00:42:09 "X is true. Evidence: You are denying X many times." 00:42:17 I didn't say everything was opposite of what you said. 00:42:51 ehirdghost, also just ask random $person with a tinfoil hat! The gov denies it so it must be tru! 00:42:53 true!* 00:42:56 ~ 00:43:04 9/11 was an inside loeb 00:43:10 loeb? 00:43:27 []([]P -> P) -> []P 00:43:39 ehirdghost, ...? 00:43:45 haskell I see 00:43:48 http://en.wikipedia.org/wiki/Löb's_theorem 00:43:55 hm no 00:43:59 hm yes. 00:44:01 Wikipedia does not have an article with this exact name. Please search for Löbs theorem in Wikipedia to check for alternative titles or spellings. 00:44:02 err 00:44:03 hm no 00:44:09 I didn't see what you asid 00:44:14 AnMaster: you forgot the apostrophe 00:44:35 ehirdghost, my irc client did 00:44:42 click fail 00:45:52 "There is a paraconsistent version in Carl Hewitt [2008]." <-- ? 00:45:59 wth does that mean 00:46:07 don't you have a dictionary? 00:46:24 not here, and parents are sleeping in the room with it 00:46:26 so no 00:46:43 Your computer blocks all dictionary sites? 00:46:44 How queer. 00:46:58 except the gay ones, obviously 00:47:01 ehirdghost, that was a result of your curse before 00:47:08 since you typoed it 00:47:32 T'was no typo; was the speak of thine ghosts. 00:47:52 ehirdghost, well that made it misfire 00:48:03 We have an extravolutionary version of the language communicasystem; for extra extrapossibilities with which to extrapolate. 00:48:06 so now it blocks me googling for anything you mentions 00:48:09 for life 00:48:10 fizzie appears to be fluent in it while alive; though. 00:48:16 Or maybe he is a ghost. 00:48:24 AnMaster: Wikipedia mentioned paraconsistent, not I. 00:48:35 ehirdghost, directly or indirectly 00:48:40 so it affects this 00:48:42 AnMaster: Everything. 00:48:47 Now you can never use Google. 00:48:59 ehirdghost, not for the word "everything" no 00:49:10 this is only literal phrases like that 00:49:14 AMD. Intel. x86. x86_64 00:49:17 and I already know that word 00:49:18 Befunge. 00:49:20 cfunge. 00:49:21 and those 00:49:24 so it won't affect 00:49:27 AnMaster: You can never look up info about them 00:49:28 only unknown ones 00:49:36 ehirdghost, wrong. Only unknown words 00:50:00 That is particularly arbitrary. 00:50:05 ehirdghost, plus due to the misfire it is time limited. Lasts about 1-1.5 weeks in average :/ 00:50:20 ehirdghost, well if you haven't typoed it, it wouldn't have misfired 00:50:34 If this sentence is true, then AnMaster is cursed. 00:50:38 Logical bomb in your face. 00:51:02 ehirdghost, fail to see the logical bomb there... 00:51:16 http://en.wikipedia.org/wiki/Curry's_paradox 00:52:42 ok. That is just a false statement due to the A then B not being a casual connection 00:53:00 I see you didn't read the article. 00:53:46 not the whole yet. But false was the wrong word. The right word would be: logical nonsense not connected with the real world. 00:54:09 Yeah, uh, keep reading. 00:55:18 "In formal languages, we sometimes interpret "If X then Y" as a material conditional. On this reading, it simply means "Y, or else not X". Here we would read the sentence as "Santa Claus exists, or this sentence is false". On this reading, Curry's paradox is simply a variant on the liar paradox. However, in natural language this is not usually what we mean by "If X then Y". For instance, "if 6*7=42, t 00:55:18 hen the moon exists" is true as a material implication, but is generally not considered true in natural language, because the moon's existence does not seem to be related to this fact of arithmetic." 00:55:20 ehirdghost, ^ 00:55:35 yes 00:56:10 in other words. the claim describes a non-existent causal connection. 00:56:18 or: logical nonsense 00:58:41 modusPonens :: (p -> q, p) -> q 00:59:19 ehirdghost, natural language isn't an exact science 00:59:24 languages* 00:59:35 Shush, I'm doing logics in mah type system. 00:59:47 ehirdghost, well not abov 00:59:50 above' 00:59:51 * 00:59:55 when you said it 01:00:00 Anyway, a proof of the above proposition: 01:00:03 blergh this kbedor 01:00:05 modusPonens (f, x) = f x 01:00:06 keyboard* 01:00:44 ehirdghost, as I said. Why would it be related 01:00:52 you have to prove to me there is such a connection first 01:01:02 I was making a cheap joke. 01:01:03 Chill. 01:01:37 ehirdghost, I mean I think this paradox is rather lame. It forgets about this think called "false claim" even "lie" 01:01:50 not much of a paradox 01:02:00 if you enter garbage you will get garbage back 01:02:05 Err, I don't think you understood it. 01:02:11 oerjan: care to explain it to him? 01:03:14 ehirdghost, 01:03:38 try telling someone on the street 01:04:01 "if this sentence is true, then you must give me all your money" 01:04:07 see what reaction you get 01:04:21 Bweheheh. 01:04:37 Yes, because going up to a random person on a street is an environment of complete logic and formal reasoning. 01:04:48 That happens to be the most retarded reasoning I've heard today, though. I'll give you that. 01:05:25 It is, of course, sanest to observe that there is nothing compelling anyone to give you money, therefore the sentence is quite false. 01:05:35 ehirdghost, Yes it is the same because natural languages allow this thing called lie. You have to prove your "if A then B" really is a connection that exists 01:05:51 did you actually look at the formal language section 01:06:03 oerjan: please relieve the strain from my being and explain it to him 01:06:04 ehirdghost, natural languages isn't a formal language 01:06:19 ehirdghost, and you said it in natural language first 01:07:18 Say it in Lojban. 01:07:23 ehirdghost, so tell me, why do you think the initial assertment: if true then P is valid? 01:07:23 ;) 01:07:45 oerjan; I'm tired of this idiot, plz take him 01:08:01 I'm just saying if you put in garbage you get garbage back 01:08:07 try being practical 01:08:29 pikhq, I don't know lojban 01:09:19 Practical or logically correct. 01:09:23 I take the latter. 01:09:36 I'd prefer to combine them 01:09:46 You let the former take precedence, evidently. 01:09:51 a down to earth approach 01:10:00 that actually gives useful results 01:10:17 I might think you less of an idiot if your only argument wasn't "that's wrong, ask a random person on the street" 01:10:33 ehirdghost, I have given a lot of other arguments 01:10:45 To the ether, maybe—certainly not here. 01:10:48 and that one was mostly a joke 01:11:06 ehirdghost, ........ read scrollback 01:11:14 I did; maybe you're hallucinating. 01:11:38 ehirdghost, I told you that you need to verify your claims are relevant before you use them 01:11:54 if pink then blue 01:12:16 Try making logical sense; or don't because I can't be arsed, you're clearly not interested in actual logic more than fuzzy human intuitive belief bullshit 01:12:17 now what does that mean? does it make a lot of sense? No 1) it is out of context. 01:12:45 2) even if it was in context, how could you know that this implication is really true 01:13:14 logic is a useful tool only when you put useful input into it 01:13:29 if you just feed it random data you will get garbage back 01:13:53 You know, that makes absolutely no sense whatsoever. 01:13:56 ehirdghost, clearly you fail to see you need to verify the initial assertions to be able to extrapolate from them 01:13:58 Do you actually understand what you'r esaying? 01:14:02 ehirdghost, yes 01:14:06 you don't I see 01:14:14 I think you should read the article very carefully again. 01:14:26 ehirdghost, I did. And you saw I quoted a bit ? 01:14:38 "For instance, "if 6*7=42, then the moon exists" is true as a material implication, but is generally not considered true in natural language, because the moon's existence does not seem to be related to this fact of arithmetic." 01:14:42 read that again please 01:14:57 Yes, you missed the bit that came next. Anyway, fuck off, this is boring and you clearly have no grasp of logic whatsoever. 01:15:08 ... 01:15:25 ehirdghost, lets say you are coding in prolog 01:15:36 Not. Interested. 01:15:36 and listing initial "facts" or whatever 01:16:00 then don't those facts also have to be true for the problem you are trying to solve 01:16:03 to be useful? 01:16:14 Did you miss where I said not interested? 01:16:14 You can only build your your axiojms 01:16:17 axioms* 01:16:26 You're an idiot; you completely misunderstand Curry's paradox, and I am tired of talking. 01:16:27 if your axioms are false... tough luck 01:16:38 ehirdghost, good thing you are writing then 01:16:44 Curry's paradox has nothing to do with defining axioms whatsoever. Go. Away 01:21:30 I suggest a system with three truth values: true, false, EPARADOX (fatal error) 01:21:34 ~ 01:21:55 ehirdghost, ;Å 01:21:57 ;P* 01:22:06 * oerjan is glad he was afk 01:23:06 oerjan, do you agree that if you enter false initial "facts/axioms" in a theorem prover you will get a useless result back? 01:23:13 yes or no 01:23:22 sure 01:23:24 that's nothing to do with curry's paradox 01:23:34 from the wikipedia page it seems to be that 01:23:51 if foo then bar. Well sure. If that connection actually holds. 01:23:56 oerjan: can you explain curry's paradox to him… 01:24:02 but if it doesn't. Tough luck 01:25:04 no tonight my dear, i've got a headache 01:25:08 *not 01:25:09 now a really interesting paradox is Russel's paradox for example. 01:25:22 curry's paradox is a generalization of russell's paradox. 01:25:59 ehirdghost, well I have been discussing this in the context of the natural language case. Which is what we begin with. 01:26:15 natural language doesn't excuse you from using logic 01:26:43 no, but natural language is well known for not being a formally well defined language 01:27:52 By your logic, all representations of logical formula in natural language suddenly lose their attachment to logic because you change '->' to 'implies'. 01:30:14 For instance, consider the following sentence: 01:30:14 If a man with flying reindeer has delivered presents to all the good children in the world in one night, then Santa Claus exists. 01:30:14 Imagine that a man with flying reindeer has, in fact, done this. Does Santa Claus exist, in that case? It would seem so. <-- sounds probable yes. But it *could* be someone else doing it. It would need further investigation. Such an event would be circumstantial evidence. Not proof 01:30:21 ehirdghost, ^ 01:30:42 Say, remember when I said I don't give a shit that you're logically illiterate? 01:30:46 Guess what hasn't changed? 01:31:12 -!- calamari has quit (Read error: 104 (Connection reset by peer)). 01:31:22 ehirdghost, the fact that this is not really a paradox in natural languages. Just a nonsense statement 01:31:33 that hasn't changed 01:33:04 * SimonRC goes to bed. 01:33:09 same 01:33:10 night 02:27:56 -!- Slereah_ has joined. 02:35:33 -!- CakeProphet has joined. 02:38:59 -!- Slereah has quit (Read error: 110 (Connection timed out)). 02:42:23 -!- ehirdghost has changed nick to ehird. 02:47:47 -!- cherez has joined. 02:47:52 -!- cherez has left (?). 02:48:05 it's alive! 02:48:16 (BWAHAHA) 02:49:56 -!- Sgeo has joined. 03:07:01 -!- Slereah has joined. 03:24:02 -!- Slereah_ has quit (Read error: 110 (Connection timed out)). 04:12:34 -!- neldoreth has quit (Read error: 113 (No route to host)). 05:00:46 -!- GreaseMonkey has joined. 05:10:41 -!- CakeProphet has quit ("lol"). 05:45:09 -!- oerjan has quit ("leaving"). 05:47:35 -!- Sgeo has quit ("Leaving"). 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:21:00 -!- Slereah_ has joined. 08:25:58 -!- Dewi has quit ("bbl - storm"). 08:31:33 -!- Slereah has quit (Read error: 110 (Connection timed out)). 08:43:03 -!- neldoreth has joined. 08:50:15 -!- psygnisfive has quit (Remote closed the connection). 09:26:17 -!- tombom has joined. 09:34:47 -!- psygnisfive has joined. 09:34:56 hm 09:35:07 natural language quantifiers are AWESOME. 09:35:12 i just feel you should know this. 10:05:13 -!- GreaseMonkey has quit ("Quit: Quit: Quit: Quit: Quit: Quit: Quit: Quit: Quit: Quit"). 10:34:44 -!- oklofok has joined. 10:43:31 -!- Slereah has joined. 10:53:41 -!- Slereah_ has quit (Read error: 110 (Connection timed out)). 10:56:00 -!- Slereah_ has joined. 11:01:59 -!- Slereah has quit (Read error: 145 (Connection timed out)). 12:19:16 -!- Dewi has joined. 13:34:03 -!- neldoret1 has joined. 13:43:35 -!- neldoreth has quit (Read error: 113 (No route to host)). 14:01:28 -!- bsmntbombdood has quit (Read error: 113 (No route to host)). 14:02:31 -!- bsmntbombdood has joined. 14:38:59 -!- KingOfKarlsruhe has joined. 15:09:34 -!- KingOfKarlsruhe has quit (Remote closed the connection). 15:13:56 -!- ehird has left (?). 15:14:45 -!- ehird has joined. 15:16:03 hi 15:20:40 -!- zzo38 has joined. 15:21:05 Nobody is ever actively on #anagol even though some names are listed 15:21:12 Why is that? 15:21:59 it's not too popular a channel 15:22:02 Sometimes people talk 15:22:20 A lot of people leave their IRC clients on to read what people said when they're not away, for channels that aren't logged 15:22:21 I do that 15:22:29 Maybe some of them will have away set in /whois 15:23:43 I tried whois shinh and stuff like that but I'm not sure if that means they are away or not 15:26:48 -!- KingOfKarlsruhe has joined. 15:27:41 I tried various names with whois command but I can't see anything about away, is there some code for being away that I forgot about? 15:27:50 It shows up if they are away 15:28:05 My IRC client says shinh hasn't talked for 59 hours 15:29:35 in my client I have to do /wii for that 15:29:52 I can only get idle time for whois on myself. And if it shows up when they are away, which line does it show up on, the 311 line or the 320 line or some other line? 15:30:12 What does "/wii" means 15:30:16 You need to ask the remote server if you want idle-time information. /wii is a common alias, "/whois nick nick" usually works too. 15:30:46 "/wii nick" => "/whois nick nick", which means "ask nick's whois-info from the server nick is on". 15:31:05 O, thanks I did "whois shinh shinh" and I got the idle time for shinh (214878 seconds) 15:31:16 That's a lot of seconds. 15:31:53 fizzie: you know TeX, right? How do you put a \ in the document? 15:31:56 Well yes, the IRC server returns it in seconds I did the calculation it is approx 59.7 hours 15:32:30 ehird: You can do $\backslash$ although it might look non-text-like since it's math-mode-fluff. 15:32:36 Ah. 15:32:43 Is there a \rawcodeystylething{} block thang? 15:32:48 That would work 15:33:37 There seems to be a \textbackslash command, according to some reference. 15:33:37 Thanks for telling me I need to indicate the name twice if I want the 317 line (although I'm not sure why the server shouldn't figure that out automatically?) 15:34:09 zzo38: IRC is weird 15:34:15 Probably it was done this way for backwards compatibility 15:34:48 And another place says "\char`\\", which is a piece of raw TeX, should also work. 15:34:59 ehird: OK. However I can get the 317 line for myself without needing to type my name twice. 15:35:03 If you want a large block of verbatim text, there's of course \begin{verbatim} ... \end{verbatim}. 15:35:12 You get the 317 line for everyone who happens to be on the same server as you. 15:35:16 At least you should. 15:35:57 * AnMaster wonders how to get GCC to generate an integer constant without $ in inline asm 15:35:57 O. So does it do that to save bandwidth from accessing other servers when it doesn't have to? 15:36:05 Could be that. 15:36:22 There's also a \verb=xyz= command which does xyz verbatim, but maybe \ is too extra-magical even for that. 15:36:37 Is there a superscript/subscript combiner in unicode? 15:36:52 (You can freely use any delimiter instead of = there as long as it's not in the verbatim-string.) 15:37:22 -!- zzo38 has left (?). 15:37:32 Well, I only want a superscript A and a subscript E. 15:38:08 -!- zzo38 has joined. 15:38:13 -!- zzo38 has left (?). 15:38:15 -!- zzo38 has joined. 15:38:17 -!- zzo38 has left (?). 15:38:42 There are super/subscript numbers, and a couple of other characters too. 15:39:05 Yes, I've looked. 15:39:28 zzo38: IRC is weird <-- I know the details about why name twice if you are interested 15:39:46 it isn't exactly what you suggested 15:41:31 What is there outside of the RFC's "If the parameter is specified, it sends the query to a specific server. It is useful if you want to know how long the user in question has been idle as only local server knows that information, while everything else is globally known" explanation? 15:41:45 http://filebin.ca/jrtvbo/first-test.pdf A most delightful X∃LaTₑX (see how hard I worked on that?) output. Bring Hoefler Text (or, wait, is it embedded in the PDF?). 15:42:16 fizzie, that is it yes. 15:42:21 Err, it's 16 March. 15:42:22 Not 17. 15:42:30 Please ignore that time-travelling document. 15:42:47 Yes, I think it embeds-by-default. 15:43:01 fizzie, using a non-server name means asking the server that first nick is on 15:43:03 Although I can't be sure, since I don't remember what Hoefler Text should look like. 15:43:06 so double name... 15:43:11 double nick* 15:43:33 Yes, I fail to see how that is different from my "nick nick means ask the server nick is on" explanation. 15:43:49 fizzie, well on freenode it is. Due to freenode's server hiding 15:43:53 fizzie: if you screenshot, I'll tell you if it's right :P 15:44:04 fizzie, you never get idle time with anything but repeating nick 15:44:15 security by obscurity 15:44:19 -_- 15:44:54 ehird: http://www.cis.hut.fi/htkallas/what_foolishness_is_this.png 15:45:10 LªTₑX! 15:45:17 fizzie: That's hideous, but I suppose that's Linux font rendering thar. 15:45:23 Asztal_: aha 15:45:28 X∃LªTₑX 15:45:31 Now we just need uppercase versions 15:45:49 fizzie: It has the right shapes, so, success. 15:46:08 By the way, that is a copyrighted image and I will sue you. 15:48:45 Asztal_: there should be a combining uppercase :P 15:49:04 There are COMBINING LATIN SMALL LETTER [AEIOUCDHMRTVX]; that's a very random-sounding set. 15:50:00 wth is up with http://www.cis.hut.fi/htkallas/what_foolishness_is_this.png 15:50:21 what do you mean what's up with it 15:50:26 it looks fine 15:50:32 well it is as you said hideous. 15:50:32 apart from the bad linux font rendering 15:50:39 AnMaster: try the pdf on your system 15:50:44 It will probably look nicer 15:50:44 ehird, pdftex generally renders better than that 15:50:49 It renders fine 15:50:51 on my system. 15:50:54 mhm 15:50:54 it's the font, Hoefler Text 15:50:59 It demands good rendering :P 15:51:08 ehird, well Apple has patents on the important rendering bits 15:51:09 ... 15:51:16 So you keep saying. 15:51:24 ehird, I even linked you some weeks or so ago 15:51:29 Yes. Yes you did. 15:51:55 That's viewed-with-xpdf, in case it matters. 15:52:08 -!- KingOfKarlsruhe has quit (Remote closed the connection). 15:52:48 * AnMaster wonders what Helvetica with serifs would look like 15:53:12 It does look rather different with, say, Evince. 15:53:20 fizzie, oh? 15:54:04 14:52 AnMaster wonders what Helvetica with serifs would look like <-- Unlike Helvetica. 15:54:14 http://www.cis.hut.fi/htkallas/evince_version.png 15:54:20 -!- sebbu2 has changed nick to sebbu. 15:54:24 fizzie: oh, that's significantly better 15:54:31 -!- BeholdMyGlory has joined. 15:54:35 as in I can actually read it and it looks similar to the rendering at my end 15:55:12 hm 15:55:29 fizzie, what about kpdf? 15:55:54 I don't have it on this thing. 15:56:00 hm ok 15:56:05 There's acroread, some version. 15:56:08 how comes pdf renders so differently? 15:56:35 I thought the point of pdf was to render the same 15:56:42 AnMaster: different font rendering 15:56:50 Here's how it looks on my end: http://imgur.com/74ZOM.png. It probably won't look very nice unless you have a high-DPI display with the right colour profile. 15:57:23 ehird, it looks hideous on this monitor 15:57:57 It looks reasonably nice on this. 15:58:28 Where "reasonably nice" means I like it more than Evince, I think. 15:59:39 -!- neldoret1 has changed nick to neldoreth. 15:59:47 Hoefler Text's serifs probably would fit better on print. 15:59:56 Heh, Firefox went and crashed when I opened gnome-control-center and twiddled with the font rendering settings. 16:00:06 Anyone here know GCC inline assembler? 16:00:15 AnMaster: gcc's manual does :P 16:00:21 Well, I've done it a little bit. 16:00:21 ehird, well not enough 16:00:27 I have read it and not found a solution 16:00:28 I think I missed the question. 16:00:29 It documents it all, afaik. 16:00:30 Ask #gcc. 16:00:32 I'm trying to something like this (but with more instructions to make it useful): 16:00:33 asm("leaq %[size]+%[var],%%rdx" : [var] "=m"(myvar) : [size] "i"(sizeof(myvar)) : "rdx"); 16:00:33 Where myvar is a static array of fixed size. Size is known at compile time, but may vary depending on compile time options. I would expect it to generate something like: 16:00:33 leaq 2097152+myvar(%rip),%rdx 16:00:33 But in fact it generates this invalid (at least gas thinks so) assembler: 16:00:34 leaq $2097152+myvar(%rip),%rdx 16:00:36 How can I get GCC to not include that first $ there? I have looked at the GCC documentation and found no way to work around it 16:00:44 Using the plain TEX notation $$ . . . $$ for displayed equations is not recom- 16:00:44 mended. Although it is not expressly forbidden in LATEX, it is not documented anywhere in the LATEX book 16:00:47 as being part of the LATEX command set, and it interferes with the proper operation of various features 16:00:50 such as the fleqn option. 16:00:52 Huh. 16:00:59 AnMaster: [size] instead of %[size]? 16:01:23 ehird, that doesn't substitute at all. I tried it. 16:01:34 leaq [size]+myvar(%rip),%rdx 16:01:40 Then you can't do it. 16:01:47 Or, maybe, 16:01:51 AnMaster: 16:01:53 I know! 16:01:54 ? 16:01:57 Well 16:01:59 something like 16:02:06 "leaq "#sizeof(foo)"..." 16:02:09 Or something 16:02:13 I was thinking like cpp stringification 16:02:15 and stuff 16:02:17 hm 16:02:31 anyone have a ttf of computer modern 16:02:35 ehird, I don't think there is a way to get the size of an object with CPP but hm... 16:02:58 Yes, you can't get sizeof() during the preprocessing; I was going to suggest stringizing too. 16:03:06 fizzie, really? how? 16:03:11 oh 16:03:14 "can't" 16:03:20 misread it as "can" 16:03:34 AnMaster: do you know the ranges of sizeof()? 16:03:40 Like, it's either 2 or 4 or 8 16:03:42 if so then 16:03:46 er, I dunno 16:03:47 just like 16:03:56 #if sizeof(foo)==1; #define foo "1" or whatever, 'cept, you can't do that in cpp 16:03:57 so I dunno 16:04:27 ehird, well it depends on compile time options. It could be 2097152 or 4194304 16:04:37 AnMaster: what options 16:04:43 Have you tried the 'n' constraint instead of 'i'? Although I really don't have a clue how they differ. 16:04:50 I have an idea 16:04:53 AnMaster: what option? 16:05:04 -DUSE32 -DUSE64 -DARRAY_SIZE_X -DARRAY_SIZE_Y 16:05:13 AnMaster: Then, just 16:05:23 #ifdef USE_32 16:05:24 the two latter toggle data type 16:05:27 err 16:05:29 two former 16:05:32 okay wait 16:05:33 AnMaster: 16:05:35 do this, for instance 16:05:36 the two latter toggle array size 16:05:49 #ifdef USE32; #define foo #ARRAY_SIZE_X; #endif 16:05:51 Or whatever 16:05:56 hm 16:05:59 Then just do "blah " foo " baz" 16:06:08 That sort of thing anyway 16:06:15 AnMaster: if that needs adding to 16:06:16 do 16:06:19 Then just do "blah " foo "+44 baz" 16:06:20 or whatever 16:06:34 size is sizeof(datatype) * ARRAY_SIZE_X * ARRAY_SIZE_Y 16:07:01 Right, you'll have to do that in parts then 16:07:03 #ifdef USE32 16:07:10 #define sizeofdatatype "4" 16:07:11 #endif 16:07:12 and 16:07:16 #define foo #ARRAY_SIZE_X 16:07:16 then 16:07:27 "sdfk " sizeofdatatype "*" foo 16:07:30 hm... 16:07:32 You get the idea 16:07:39 yeah 16:07:42 * AnMaster considers... 16:07:44 http://www.nopaste.com/p/aVqjYoeUbb <- the source to that LaTeX document; please excuse any noobishness 16:07:59 Also excuse the wrapping; TeXShop doesn't seem to do that automagically. 16:08:06 Er, lack of wrapping, rather. 16:09:22 ehird: Judging from some other latex, you can indeed escape \ with the verbatim mode, so you could write \verb=\chapter= instead of the bulkier \textbackslash{}chapter. 16:10:52 Say, does anyone have a HIGHLY ILLEGAL copy of the Univers font? Well, the copy doesn't have to be highly illegal. 16:13:22 huh wth 16:13:27 what 16:13:28 error: stray ‘#’ in program 16:13:36 * AnMaster goes read C99 spec 16:13:51 Ah. 16:13:53 Ah. 16:13:56 AnMaster: I think you must do 16:13:59 foo(x) #x 16:14:03 oh ok 16:14:06 and foo(ARRAY_SIZE_X) would give "ARRAY_SIZE_X". 16:14:09 So this is perhaps a slight dead end 16:14:13 Hmm hmmm. 16:14:27 AnMaster: are the X and Y bounded? 16:14:30 You need the double-macro thing. 16:14:34 fizzie: Oh? 16:14:34 ehird, hm? 16:14:35 Do tell 16:14:44 #define foo(x) #x -- #define bar(x) foo(x) -- bar(ARRAY_SIZE) 16:14:45 double macro? 16:14:51 That will evaluate ARRAY_SIZE before stringizing it. 16:14:52 fizzie: Aha. 16:14:55 Yes, AnMaster, do that. 16:14:56 AAAAAAAAAAAAAAA 16:14:57 ok 16:15:02 It's very tricky, and I always get it wrong. 16:15:03 I love^Whate cpp :-) 16:15:11 But the comp.lang.c faq has some examples, anyway. 16:15:13 mhm 16:15:37 Incidentally, on the topic of I'm Talking About How OS X Is Awesome To Annoy AnMaster (just kidding, AnMaster, kay?): I like how Ctrl-A and Ctrl-E from emacs are available in every text input field. 16:16:06 #define CPP_SILLY_STRINGIFY(x) # x 16:16:06 #define CPP_SILLY_EVAL(x) CPP_SILLY_STRINGIFY(x) 16:16:09 something like that? 16:16:15 Yep. 16:16:20 Although, well, I'd call it 16:16:37 #define CPP_STRINGIFY_ARGH(x) #x 16:16:44 #define CPP_STRINGIFY(x) CPP_STRINGIFY_ARGH(x) 16:16:53 To more accurately convey the correct emotion. 16:17:22 Sometimes people use the same name with a trailing _, but something like that anyway. 16:17:28 ehird, ok 16:17:32 makes sense 16:17:35 fizzie: That is evil. 16:17:42 It does not convey feminine emotion of human vitality. 16:17:44 Or something. 16:17:51 -!- MizardX has quit ("011000 100110 000101 110011 011001 010010 000000 110010"). 16:18:00 AnMaster: Anyway, this even more simplificates it: 16:18:17 http://c-faq.com/ansi/stringize.html 16:18:21 #if USE32 16:18:27 #define CPP_SIZE 4 16:18:31 #elsif USE64 16:18:33 #define CPP_SIZE 8 16:18:34 #endif 16:18:35 then 16:18:53 CPP_STRINGIFY(CPP_SIZE) "*" CPP_STRINGIFY(X) "+" CPP_STRINGIFY(Y) 16:18:54 or whatever 16:18:58 no need for extra definitions, I mean. 16:18:59 hm 16:18:59 -!- FireyFly has joined. 16:19:05 Just CPP_STRINGIFY* and CPP_SIZE (as an int). 16:19:25 ehird, that would make it pass 80 columns, which look silly 16:19:33 So wrap it. 16:19:40 CPP_STRINGIFY(CPP_SIZE) "*" 16:19:43 CPP_STRINGIFY(X) "+" 16:19:44 etc 16:19:56 ehird, looks silly to have multiline inline asm expand to single line asm -_- 16:20:02 No. It really doesn't. 16:20:07 These are the only times you use those stringifications, so assigning them a name is ridiculous. 16:21:39 hm 16:26:09 http://thanksants.com/ <- <3 16:27:47 :D 16:42:13 -!- MigoMipo has joined. 16:47:28 -!- FireyFly has changed nick to FireFly. 16:53:22 ehird, uh what? 16:53:30 AnMaster: Look Around You reference 16:53:43 oh 16:53:45 enable javascript 16:54:04 ehird, I did enable javascript 16:54:07 and I still don't get it 16:54:09 Ah. 16:54:13 Well, it's a Look Around You reference. 16:54:22 * AnMaster googles 16:54:37 Get some gary gum 16:54:52 It's garry 16:55:08 I hate you :( 17:00:01 -!- ais523 has joined. 17:01:11 hi ais523 17:01:19 hi ehird 17:01:36 can i have my note credits now? :P 17:01:52 ehird: wrong channel, and let me read email first to figure out what you're talking about 17:01:53 hello ais523. 17:01:56 hi AnMaster 17:02:08 1) there is no right channel that I am currently present in; I was just passing on a one-line note 17:02:13 2) your cron job fired 17:02:18 although murphy beat you to it 17:02:45 ais523: also, goethe was in _another_ scam secrecy contract with another group of players, plotting the same scam. 17:02:47 as far as I can tell 17:02:56 so if you entered an agreement with him, he tricked you. 17:03:00 I didn't 17:03:05 ah 17:03:08 i read wrong then 17:03:12 but again, wrong channel, your refusal to join the right channel does not make this the right channel 17:03:27 nobody else is talking, so. 17:03:33 it was just a little note 17:06:51 * AnMaster wonders why the hell gcc generated this code: 17:06:53 sub $0xffffffffffffff80,%rax 17:07:04 what is wrong with adding a bit instead? 17:07:15 less omg optimized 17:07:16 claerl 17:07:17 y 17:07:26 AnMaster: did the stringification work out? 17:07:30 ehird, yes it did 17:07:35 hoorah 17:11:06 ais523, any idea about that sub? 17:11:19 it was in a loop gcc generated: 17:11:24 sub $0xffffffffffffff80,%rax 17:11:25 cmp $0xa42620,%rax 17:11:29 AnMaster: it might change the processor flags differently 17:11:29 jne 0x41c1f0 17:11:31 to addition 17:11:37 ais523, hm... 17:11:40 there are lots of that sort of thing in asm 17:11:59 or it may be subtracting %rax /from/ that large number, rather than subtracting the large number from %rax 17:12:16 ais523, rax is a pointer to an array 17:12:38 -!- Hiato has joined. 17:12:40 also it only uses sub if it is unrolling the loop. It uses add otherwise 17:12:53 like: add $0x10,%rax 17:13:12 yes the sub jump is larger, but that is because it was unrolled 17:16:20 -!- MizardX has joined. 17:26:48 * ehird does some more logics in haskell typeth system 17:26:53 hmm, I forgot, I'm a ghost 17:26:56 -!- ehird has changed nick to ehirdghost. 17:26:58 whooooooo 17:27:14 Ahah, now I recommandeth my speakings of the ghostular enhanced communicatoungh. 17:29:10 you were supposed to wait until Easter to resurrect :( 17:29:32 yeah, yeah, sorry, wait, I'll remove that previous shit from the timestream 17:29:39 done, if you still see it you're hallucinamating 17:36:47 ehirdghost, did you finish your bef93 in qbasic? 17:37:12 no, it was too trivial that I fell asleep 17:37:24 that was before I died... 17:37:28 good times, good times 17:38:00 ehirdghost, why not write a befunge93 in SQL (probably with some procedural extensions) 17:38:14 I ask you s/not // 17:38:30 is ehirdghost writing befunge in SQL? 17:38:37 No. 17:38:41 if so, which extensions? SQL isn't actually Turing-complete without extensions 17:38:43 ais523, no it was a suggestion for something to do 17:38:44 AnMaster wants me to, I don't see why it's interesting. 17:38:46 but then, neither is befunge-93 17:39:01 ais523, I would suggest Pg/SQL 17:39:15 (or whatever it is called) 17:39:42 ehirdghost, no I didn't "want you to", just a suggestion for something to do 17:39:45 you seemed bored. 17:40:01 dodecahedron 17:40:06 dodecahedronasaurus 17:40:14 PL/pgSQL, if you mean the PostgreSQL thing. 17:40:22 fizzie, ah yes indeed 17:40:26 didn't remember the name 17:40:29 Or just PL/SQL for the Oracle thing. 17:41:54 Google Image Search doesn't find any dodecahedronasaurii. :/ 17:42:17 Try "dodecadicks" 17:42:41 http://www.google.com/search?q=dodecadicks&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:fr:official&client=firefox-a 17:42:48 What do you know, it actually exists! 17:42:58 hm 17:43:12 how many bits is needed to represent a 2 MB address space? 17:43:18 31 17:43:23 oh, MB? 17:43:24 21 17:43:28 ah 17:44:23 ais523, sure it isn't 20? 17:44:26 Since 2^10 is a kilobyte, 2^20 is a megabyte and 2^30 is a gigabyte. 17:44:32 hm 17:44:33 http://filebin.ca/jrtvbo/first-test.pdf <- Relinking this since everyone must see it. 17:44:34 AnMaster: 1 MiB is 20 17:44:37 because 1 KiB is 10 17:44:37 ah 17:44:42 2 MiB is therefore 21 17:44:48 and 2 MB is slightly smaller, therefore still 21 17:44:48 * AnMaster wonders what he is miscalculating then 17:45:22 wait, I see that I made an error, but why is it only off by half... 17:45:23 ehirdghost: but you never linked it before... we were just hallucinamating that, right? 17:45:40 Also there's the whole A20 line stuff in the legacy-x86 world. 17:45:40 I didn't calculated in 16 bit numbers... 17:45:43 Asztal_: Do not question me. 17:45:43 calculate* 17:46:03 Lets see. How many bits do you need to represent 1024*512 ? 17:46:24 10+9. 17:46:51 If you mean "represent all numbers in the range [0, 1024*512-1]". 17:47:34 Or "represent 1024*512 different entities", more generically. 17:47:55 well the latter 17:48:32 fizzie, I'm trying to work out how I would do bit interleaving for using a z-order space filling curve to index the static funge space 17:48:41 and I just can't get it straight 17:49:52 ais523, btw since you know gcc quite well. How do you make gcc expand asm("leaq %[size]+%[var],%%rdx" : [var] "=m"(myvar) : [size] "i"(sizeof(myvar)) : "rdx"); to "leaq 2097152+myvar(%rip),%rdx" rather than "leaq $2097152+myvar(%rip),%rdx" 17:50:01 AnMaster: wtf 17:50:03 we just told you how 17:50:06 for now I worked around the issue with some ugly macros 17:50:07 we spent ages explaining it with cpp 17:50:16 ehirdghost, yes but I was wondering "is there no better solution" 17:50:21 it's not a bad solution 17:50:26 it's just stringifying some expressions 17:50:29 ehirdghost, it is an ugly one 17:50:33 C is ugly 17:50:37 well yes 17:52:58 heh, it's funny how well suited haskell is to logic in the type system 17:53:45 Here's a funny bit of x86 trivia: the A20 gate (which controls whether the A20 line is enabled or not; if it's not enabled, the 21th bit in memory addresses is forced to be 0, wrapping the [1MB,2MB) range on top of [0,1MB) and same for 3-4, 5-6 etc.) used to be connected to the *keyboard controller*. 17:54:34 fizzie, heh... 17:54:48 fizzie, keyboard DMA? 17:55:31 It's just that their keyboard controller had a spare I/O pin they could use. The keyboard controller can also reset the CPU. 18:00:00 mhm 18:00:19 so I need to bit interleave a 9 bit and a 10 bit integers in the fastest way possible... 18:00:28 * AnMaster looks at the bithacks page fizzie linked 18:01:18 [0,1) should be valid haskell pintax 18:01:22 -!- Deewiant has quit (Read error: 60 (Operation timed out)). 18:01:39 ehirdghost, pintax? 18:02:00 Syntax but with safety pins and income tax. 18:02:15 heh 18:02:30 ehirdghost: still a ghost? 18:02:33 I always thought the [) notation looks silly 18:02:36 * ehirdghost walks right through Judofyr 18:02:40 Any questions? 18:03:16 AnMaster: The correct range semantics for (N..M) is including N and excluding M, anyway. See: Djikstra. They compose better. 18:03:33 ehirdghost, yes I know what it is for 18:03:33 And (0..N) gets you N items; fits in with array-type stuff 18:03:50 So [X,Y) is actually useless as there's only One True Solution :P 18:04:07 Unfortunately, haskell includes M. 18:04:09 in the range 18:04:09 I just thinks it looks silly with [X,Y) Typographically silly I mean 18:04:15 Mm. 18:04:31 s/thinks/think/ 18:04:43 -!- Deewiant has joined. 18:06:39 -!- ineiros has quit (Remote closed the connection). 18:08:36 Sq, Q prqpqsq thqt qll vqwqls qrq rqplqcqd by "q". (So, I propose that all vowels are replaced by q.) 18:08:53 (It actually works fine for everything but i, pretty much. So let's try it.) 18:11:47 -!- ineiros has joined. 18:12:52 Nq? 18:13:06 -!- Mony has joined. 18:13:33 plop 18:13:37 hi Mony 18:13:43 Yqq mqqn plqp. 18:14:05 yeah, true 18:14:29 Qxqctly. 18:16:09 qqs523: Wqll yqq jqqn my pqlgrqmqgq frqm vqwqls? 18:16:55 no 18:17:00 :( 18:18:09 Tqlkqng wqthqqt vqwqls qs sq pqssq́. 18:18:26 Sq's yqqr fqcq. 18:25:17 wow you can do fast bit interleaving with SSSE3. But not with SSE3 18:25:22 so useless to me 18:25:33 what, you mean the intercal operation? 18:25:53 ais523, almost. I'm talking about a space filling Morton curve here. 18:25:57 oh 18:26:05 ais523, which can be done with bit interleaving 18:26:09 so yes kind of 18:28:08 ais523, hm a hillbert curve would provide better locality of reference than. Wonder how you can calculate it. 18:28:12 Might be worth comparing 18:28:32 AnMaster: err... you're using space-filling curves for the memory of your Befunge interp to avoid cache misses? 18:28:36 Yes. 18:28:40 ais523, that is the plan yes 18:28:43 are you /sure/ that doesn't waste more time calculating than it does reading from cache? 18:28:51 Yes, and it's pretty much exactly the intercal mingle. 18:28:55 ais523, it is possible. That is why I want to profile 18:29:17 I can't be sure if I haven't looked at it at all 18:29:48 if I jump over a bridge, will I die? I can't be sure if I haven't tried it at all 18:29:50 ais523, so I can't say I'm sure until I even tested with space filling curves. 18:29:56 ais523: I'm repeating myself a bit here, but: 18:29:56 [2009-03-15 19:59:38] < fizzie> Notably, calculating the z-order coordinate from x, y is just a single application of the INTERCAL mingle operator. 18:29:58 [2009-03-15 19:59:54] < fizzie> Of course your silly C might lack the always-useful $ operator. 18:32:11 ais523, anyway it is quite possible this could differ a lot between different CPUs, if you have a very small cache you could possibly gain from it. 18:32:20 and the reverse 18:32:27 yes 18:32:28 anyway it is worth trying 18:32:45 ais523, and my sempron has a 128 kb L2 cache, and no L3 cache 18:33:02 128kb? o_O 18:33:10 ehirdghost, yes it is very small. 18:33:32 I have a Pentium 3 with twice as big L2 cache 18:33:34 Why dqn't yqq mqcrq-qptqmqsq qn q dqcqnt mqchqnq?! 18:33:49 what? 18:34:01 * ehirdghost rqllqyqs. 18:34:12 Asztal_: Yqq trqnslqtq, mmkqy? 18:34:14 tell me when you decide to make sense. 18:34:47 Why don't you micro-optimise on a decent machine‽ 18:34:50 Incidentally, are you doing "thqs q thqng" manually or automagically? 18:34:55 because I don't have one? 18:35:04 Asztal_: Thqnks. 18:35:25 maybe ehirdghost will provide the money? 18:35:27 you mean Qsztql_, or are nicknames excluded? 18:35:42 fizzie: Mqnqqlly, bqt nqw I'm nqt: tr qqqqq qqqqq 18:35:57 Asztal_: /nqck Qsztql_ qnd jqqn qqr qrdqr. 18:36:04 -!- ehirdghost has changed nick to qhqrdghqst. 18:36:16 -_- 18:36:32 The-artist-formerly-known-as-ehirdghost: your new name looks like a MMX opcode. 18:36:36 Hmm, tr qqqq q wqrks tqq. Nqcq. 18:36:40 fizzie: Qt qs. 18:36:44 fizzie, :DDD 18:36:52 Sq qnywqy. 18:37:49 I wandar haw at gaas wath a anstaad af q. I wender hew et gees weth e ensteed ef q. I wondor how ot goos woth o onstood of q. 18:37:57 fizzie, my favourite MMX opcode is CVTTPD2PI 18:38:13 wait that one is SSE I think 18:38:16 anyway I like it 18:38:36 I wndr hw t gs wth nstd f q. 18:38:38 it is SSE but operates on mmx registers, instead of xmm registers 18:39:39 qhqrdghqst, why not replace non-vowels instead of vowels? 18:39:49 Qn Q-spqqk, CQBQL = CQBQL. Cqqncqdqncq? 18:39:58 err 18:40:02 QnMqstqr: Tq mqrq qccqrqtqly glqqk mqqnqng frqm cqntqxt. 18:40:20 I suggest all consonants -> i 18:40:32 no idea if it will work out well 18:41:08 ieiiiii, ieiiiii oie iio iiiee 18:41:14 ah not very well 18:41:20 sounds ghostly though 18:41:27 CQBQL = CQBQL <-- was that COBOL = C.B.L? 18:41:56 I read it as COBOL = CABAL 18:42:00 Cqmmqn Qrqqntqd Bqsqnqss Lqngqqgq = Thqrq Qs Nq Cqbql 18:42:05 Asztal, oh that could work 18:42:10 ah 18:42:17 Qsztql gqts q cqqkqq. 18:42:19 CYBYL looked silly 18:42:32 Qsztql <-- looks like a monster in nethack? 18:42:40 some A iirc 18:42:44 forgot the name for it 18:42:50 something like that anyway 18:43:01 Hqy, fqrst pqrsqn thqt mqkqs q scrqpt thqt grqps /qsr/shqrq/dqct/wqrds tq qdd thq vqwqls bqck qn gqts q cqqkqq. 18:43:27 cqqkqq? 18:43:43 also I'm too lazy to make such a script 18:43:59 Why nqt grqp /qsr/shqrq/dqct/wqrds tq fqnd qqt whqt thqt wqrd cqqld bq? Jqst s/q/./ wqqld wqrk fqr qnq wqrd. 18:44:24 well true. But I think it was cookie now 18:44:49 Yqq gqt q cqqkqq. 18:45:20 AnMaster: I'm not quite sure what "Qsztql" could refer to. Quetzalcoatl is the lawful archeologist god, though. 18:45:59 fizzie, you tend to run into them when you are high level and near the top of the dungeon... Maybe it was Quetzalcoatl 18:46:14 But that's a god, not a monster. 18:46:34 There's an A called couatl, maybe that. 18:47:06 fizzie, in ASCII it is A, in QT mode it is some brown/pink blurry tile that looks vaguely like a brown snake with pink wings 18:47:10 iirc 18:47:45 Quetzalcoatl is the feathered snake. And couatl is a D&D monster that refers to that, and has the A symbol. So it's probably that. 18:48:04 fizzie, what about "couatl" a[4]: Monster: 'A' angelic beings: couatl, Aleax, Angel, ki-rin, Archon 18:48:17 "There's an A called couatl, maybe that." 18:48:20 interesting, changing vowels to q's isn't really even noticeable for short words, but i have no idea what ieiiiii, ieiiiii oie iio iiiee is 18:48:22 oh yes just saw that 18:48:23 That *is* what I'm talking about. 18:48:38 fizzie, I did /msg #esoteric from in the privmsg with Rodney 18:48:41 so I didn't see that 18:49:24 Hmm. My scrqpt fqqls qn yqq gqt q cqqkqq, fqr thqrq qrq mqny pqssqbqlqtqqs. 18:49:43 Oh. And incidentally, why does irssi prefix a + or - to all incoming messages now that I have an irssi-proxy thing going on? 18:49:51 fizzie, still I think CVTTPD2PI is the MMX/SSE instruction with the nicest name 18:49:55 don't you agree? 18:50:02 fizzie: Ah, right. 18:50:03 Is it miau? 18:50:07 qhqrdghqst: well why not use a markov chain, don't you just love those? 18:50:15 fizzie: http://miau.sourceforge.net/faq.html 18:50:16 oklofok: :D 18:50:42 fizzie, freenode adds +/- if you request it when you connect 18:50:48 Yes, and miau does. 18:50:50 Thus, see http://miau.sourceforge.net/faq.html. 18:50:52 it means identified to nickserv or not 18:50:53 I haven't seen anything else do i 18:50:54 t 18:51:10 qhqrdghqst, xchat enables it if available and uses it 18:51:26 Oh. Heh, yes, I did connect with xchat to the irssi-proxy. 18:51:32 Is it a toggleable setting somewhere? 18:51:54 what is the proxy 18:51:59 fizzie, yes, by reconnecting. You could also make the proxy filter this so the client never sees that the server supports it 18:52:05 I made another Enigma level, by the way, just for fun; it's pretty easy 18:52:09 ais523: oo 18:52:10 and again not the sort AnMaster likes 18:52:12 ais523, what type? 18:52:14 oh ok 18:52:17 AnMaster: it's a memory level, mostly 18:52:21 and a bit of forward planning 18:52:27 ais523, so what is your opinion on CVTTPD2PI? 18:52:40 AnMaster: I generally don't have opinions on particular asm opcodes I don't know much about 18:52:48 the name I mean! 18:52:54 ehird: irssi-proxy's a module of sorts for irssi which makes it act a bit like a bouncer. I wanted to try a non-monospaced font in IRC, but that's not very viable in a terminal. 18:52:59 looks typical for bloated x86 asm opcodes 18:53:01 "Convert Packed Single-Precision Floating-Point to Packed Doubleword Integers, Truncated" 18:53:04 is what it means 18:53:19 according to the AMD reference docs 18:53:25 fizzie: ah. 18:53:30 Why not just use miau if you want a bouncer? :P 18:53:46 CVTTPS2PI mmx, xmm/mem64 18:53:53 Because I already had irssi running, and didn't want to disconnect for this experiment. 18:54:14 Sounds like a very exciting experiment. 18:54:16 http://filebin.ca/ufepe/ais52304_1.xml 18:54:18 Welcome to 2000 :P 18:54:33 I'm not sure I like it here in 2000. 18:54:56 Wimp 18:55:25 ais523: enigma time 18:55:36 AnMaster: Anyway, did you say I can tell this X-Chat to not enable that identify-msg thing? I'm not sure I want to do any filtering in irssi-proxy. 18:56:07 fizzie, no 18:56:17 I suggested you would filter this in the bouncer 18:56:26 so xchat would never see that it was enabled 18:56:33 also filter any requests to enable it 18:56:34 About instructions, I think I like the name of PUNPCKHBW. It's got, you know, punch. 18:56:57 Unpack and Interleave High Bytes... 18:57:00 interesting 18:57:21 http://khjeron.de/index.php?ELEMENT=300 wat 18:57:23 Aw. I'm not quite sure how to do it. Irssi-proxy is not a very configurable bouncer, it's rather rudimentary. 18:57:27 PUNPCKHQDQ just sounds lame 18:57:51 fizzie: just greenify 18:57:54 also, xchat sux :| 18:58:01 fizzie, xchat is not a very configurable client, it is rather advanced but single minded. That is if you don't like the defaults you don't have a lot of options to change it 18:58:10 qhqrdghqst: how are you getting on with my level? 18:58:15 Awfully. 18:58:26 I'm wondering if I should make it harder, probably not if you're finding it hard 18:58:30 qhqrdghqst, that should be Qwfqllq 18:58:41 Yes, it seems that way. But this xchat is several magnitudes better than I remember it being back in, you know, 2000 or so. 18:58:46 ais523: I suck at enigma. 18:58:50 I'm almost convinced oklofok would do it first time and think "that was boring", but then he's oklofok 18:59:05 my back hurts, can't really concentrate 18:59:10 AnMaster: I will comply if and only if fizzie and you and ais523 start filtering all messages through (tr aeiou q | tr AEIOU Q). 18:59:11 Deal? 18:59:21 Just for a bit. :P 18:59:24 comply with what? 18:59:36 actually been working on this puzzle for ages now, even though i solved it pretty fast last night (my points weren't registered so i had to do it again) 18:59:38 = continue qing. 18:59:39 I'm not sure what would be a nice graphical IRC client. Colloquy sure seems nice-looking, but it's just OS X. 18:59:48 oklofok: which puzzle? 18:59:49 qhqrdghqst, nah, you are free to stop it 18:59:57 3d logic 2: stronghold of sage 18:59:57 fizzie: colloquy is pretty awful; LimeChat is nice. 19:00:08 Colloquy is buggy and crashy and underfeatured 19:00:27 but, err, graphical IRC, hm. 19:00:29 fizzie, there is an xchat fork called conspire. Haven't tried it. May be worth checking it out 19:00:30 Dunno. 19:00:56 you have a grid on three faces of a cube, and you need to connect dots of same color. 19:01:07 I'm going strictly based on screenshots-shown-on-the-software's-web-site here. LimeChat seems like an OS X thing too. Of course one would assume that anything nice-looking is. 19:01:27 LimeChat is OS X only, yes. 19:01:41 started playing kongregate since all the cool kids seem to be doing it 19:01:54 fizzie: Just use plan9. 19:01:59 Problem solved. 19:03:39 you can use plan9 userspace on Linux btw 19:03:46 ported tools 19:03:48 yes 19:03:50 not the same 19:03:56 that's true 19:03:58 you don't get any of the device magic that actually makes it worthwhile 19:03:59 or /proc 19:04:08 qhqrdghqst, but not everyone can switch to plan9 19:04:12 sure they can. :P 19:04:28 oklofok: I played the original version of that game 19:04:36 well iirc fizzie worked on some workstation owned by the university 19:04:38 so that could be hard 19:04:47 qhqrdghqst: I just got a time of 1:53 on that level, btw, that's faster than the record written in the file 19:04:52 ais523: cool 19:05:04 qhqrdghqst, also I don't remember how the /proc of plan9 was but Linux have a /proc. Maybe different. 19:05:15 yes 19:05:18 plan9's is far more extensiv e 19:05:20 Yes, well, I'm currently at home; I think I'll stick to rxvt-unicode and irssi for chatting at work. 19:05:22 anyway: http://swtch.com/plan9port/ 19:05:40 OS X too 19:05:46 qhqrdghqst: harder, easier, or you didn't pass it? 19:05:54 AnMaster: I already have it. 19:05:59 wait 19:06:00 qhqrdghqst, ok :) 19:06:01 oklofok: dunnos 19:06:04 it had no stupid grass shit 19:06:06 how could you know whether it's harder or easier 19:06:07 :D 19:06:17 (that was a question, answer) 19:06:20 what is kongregate? 19:06:26 I can guess it's a KDE program from the spelling 19:06:28 a site with flash games 19:06:31 but don't konw anything beyond that 19:06:31 basically you get points out of playing flash games. 19:06:35 yeah. 19:07:13 * ais523 wonders if Three Times Through is always possible 19:07:16 ais523, this one ends in 04? I saw 01 too. What about 02 and 03 19:07:17 I suspect it is, but haven't proved it 19:07:19 never saw them 19:07:24 AnMaster: well, no 19:07:27 they aren't finished yet 19:07:28 ah 19:07:33 are you having a go at it? 19:07:34 ais523, any in the style I like? 19:07:39 well, not yet 19:07:42 more incentive to actually finish games, and try all kinds of stuff out; which of course is good only if you consider flash games educational, which i do 19:07:59 ais523, I don't know if I mentioned it. But I rather like that level "robin's wood" 19:08:01 _02 and _03 are almost finished, they just need AIs 19:08:03 forgot what pack 19:08:10 AnMaster: I don't, it just looks big and tiresome 19:08:18 ok 19:08:51 oklofok: http://www.kongregate.com/games/AlexMatveev/3d-logic 19:08:52 3d logic wun 19:10:04 ais523, is there anything in your last level preventing the first two stones matching each other? 19:10:14 AnMaster: no, it's completely random the arrangement 19:10:18 normally you get a mix of luck 19:10:25 -!- Hiato1 has joined. 19:10:27 because there are so many oxyds to place 19:12:08 ugh that level is irritating 19:12:12 oklofok: i can't beat original level 7 <.< 19:13:36 wait I just did. 19:14:27 ais523, I liked "floppy floors" too 19:14:37 on easy, never tried it on hard 19:14:53 AnMaster: what, my level? 19:14:54 however it was another level I was looking for 19:14:58 ais523, ? 19:15:00 i did the first 12 levels in about 2 minutes, then made a mistake, and closed it 19:15:16 ais523, in engima 1.0 new 19:15:21 (i mean i don't actually want to play atm) 19:15:32 AnMaster: oh, I was referring to the one I just pasted 19:15:50 and nothing's forcing oklofok to play, especially as the level I just pasted is likely far too easy for em 19:15:53 I just mentioned some levels I liked 19:16:11 ais523: are you trying to force me to try it :P 19:16:17 no, there wouldn't be any point 19:16:20 ais523, there was some level that was a "who did it" iirc 19:16:24 that was rather interesting 19:16:42 AnMaster: I've done that one, it isn't really because it's just elimination and luck 19:16:57 cluenigma 19:16:59 hm 19:17:25 ais523, there was one with lots of hidden tools. Split up in four screens 19:17:32 I was doing that one recently 19:17:38 ais523, don't remember name 19:17:44 I remember first room was very white 19:17:45 I think I tried twice and failed 19:17:51 I like that one 19:17:57 just don't remember where or name 19:18:09 both times because coffee wasn't implemented, so getting the last pair of oxyds depends entirely on luck and fast mouse movement, you need both 19:18:16 and I was unlucky and not fast enough anyway both times 19:18:25 hmm, i should probably implement some coffee 19:18:40 ais523, indeed 19:18:52 ais523, do you remember what level pack? 19:19:19 * ais523 looks 19:19:26 it won't be one of the enigma ones because it had coffee in 19:19:42 ais523, also there are some levels in "enigma 0.92" called "Pentimino", any clue what they are about? 19:19:48 yep 19:19:51 what kind of coffee are we talking 19:19:51 oh? 19:19:54 they're about pentominos, pretty obviously 19:19:57 qhqrdghqst: the item in Enigma 19:20:03 that does nothing because they haven't programmed it yet 19:20:04 ais523, and what the *** is that? 19:20:17 AnMaster: look it up on Wikipedia or Google or somewhere 19:20:23 mhm 19:20:29 Tetris shapes are tetrominoes, pentominoes are like that but with one more square 19:20:32 ais523: what's it meant to do. 19:20:39 18:20 AnMaster: ais523, and what the *** is that? <-- what the ass? 19:20:42 found it. "tool time" in 0.92 new 19:20:55 qhqrdghqst: it's described vaguely as "pause the game" 19:20:58 qhqrdghqst, "hel" 19:20:59 in the docs 19:21:16 but from looking at the levels that use it, I suspect it multiplies durations by infinity 19:21:21 so your umbrellas last forever, etc 19:21:33 maybe it's limited-duration itself, or only when it's the first item on your list, or something, though 19:22:01 AnMaster: it's actually "heel" 19:22:08 wow, Slalom Skiing in 0.92-1 is hard (#17) 19:22:08 heh 19:22:58 -!- Hiato has quit (Connection timed out). 19:23:54 qhqrdghqst: yep, that one took me quite a while 19:23:58 there's a trick to it, though 19:24:23 even better, it's a trick you can work out entirely on visible information, it's not like there's a hidden thing you have to find or something like that 19:24:49 In Oxyd®, you could take a break with this item. During the break, you could analyse the whole level stresslessly. In Enigma, the cup does not have any special properties yet. 19:24:53 the definition of the coffee 19:25:14 I managed the slalom one 19:25:37 on both easy and hard 19:25:50 I did it on hard, and doing it on easy can be done the same way as doing it on hard 19:25:53 below par for easy 19:26:05 2 seconds above par for hard 19:26:33 #58 light barriers, how do you get that block?! 19:26:47 I solved it, above par 19:27:04 AnMaster: did you do salom, above par, on hard, you solved it? 19:27:06 qhqrdghqst, also the mirrors duh 19:27:12 qhqrdghqst: 58 in which pack? 19:27:15 if so, did you solve slalmon, on hard, above par? 19:27:18 ais523: 0.92-1 19:27:25 oh wait 19:27:27 qhqrdghqst, I solved it on both, on easy below par, on hard above par 19:27:28 you can move the lasers 19:27:31 as I said 19:27:38 AnMaster: I do not like them, Sam I am 19:27:46 qhqrdghqst, what? 19:27:51 YOU HAVE NO CULTURE> 19:28:02 qhqrdghqst, what the hell are you referring to 19:28:05 >__________< 19:28:25 AnMaster: a Dr. Seuss book 19:28:31 they're books of nonsense intended for children 19:28:31 ehird: Your culture is not universal, you know. Although I've heard enough by cultural osmosis to understand that much. 19:28:37 and are great fun to read out loud 19:28:39 * AnMaster googles 19:28:45 I'd say Green Eggs and Ham is fairly universal 19:28:54 i've heard that thing, don't know what it's about tho 19:28:56 I did google "sam" but that returned Seattle Art Museum 19:28:57 and such 19:28:58 that sam i am thing 19:29:01 anything in English is universal 19:29:05 AnMaster: google "green eggs and ham" 19:29:06 lament: :P 19:29:08 with the quotes 19:29:09 actually i think it was just the name of an episode of some series 19:29:10 ais523, ...? 19:29:13 Incidentally, we watched some sort of green-eggs-and-ham cartoonification just the-day-before-yesterday. 19:29:20 "I do not like green eggs and ham. I do not like them, Sam-I-Am." 19:29:40 what about "automaton magic" 19:29:48 err 19:29:49 what about it. 19:29:54 solved it below par here. and just two seconds above world record 19:30:11 so 29 seconds instead of 27 19:30:20 I like that level 19:30:25 http://www.youtube.com/watch?v=RdR0LXOiEB8 I think was the clip. 19:30:31 engima 0.92-1 #83 19:33:39 A dark house on them am do I or there and eat if rain they anywhere eggs in Sam train are fox let asy tree be goat like see try boat good may so will box green me thank with car ham mouse that would could here not the you. 19:33:45 s/asy/say/ 19:33:48 The most zen sentence ever. 19:34:30 qhqrdghqst, did you make that up now? 19:34:41 No, it's the complete set of words used in Green Eggs and Ham. 19:34:46 http://en.wikipedia.org/wiki/Green_Eggs_and_Ham#Lexicon 19:34:57 All 50 of them, of which 49 are monosyllabic. 19:35:11 ah 19:36:39 ok. 19:37:01 qhqrdghqst, I don't think they are intended to be written together like that 19:37:10 Oh really? 19:37:10 ;P 19:37:28 eggs in Sam train or fox... I think Dr Seuss is warning us from the grave 19:37:29 *are 19:37:34 qhqrdghqst, no, it is "for beginning readers" after all 19:37:37 The eggs in any train owned by Sam are inevitably foxes! 19:37:39 50 words in one sentence? 19:37:44 oh true. 19:38:05 qhqrdghqst, even an experienced reader have trouble keeping the context in such a long sentence 19:38:23 Someone make a huge sentence that ends with 10 proposition :-P 19:38:24 s 19:38:42 qhqrdghqst, and someone made a sentence out of a single word: buffalo 19:38:44 your point? 19:38:47 ais523: "I do not like green eggs and ham. I do not like them, Sam-I-Am." <<< wait green eggs? :D something started gnawing me about that sentence, but i could not quite put my finger on it until now 19:38:53 oh make not made 19:38:54 misread 19:38:57 Buffalo buffalo buffalo buffalo buffalo buffalo buffalo with. 19:39:07 (ofc green eggs might actually mean something other than rotten eggs, i just don't know what) 19:39:21 in the book, they're just like ordinary eggs, except they're green 19:39:33 oklofok, odd bird? spilled paint? 19:39:42 In the cartoon, the ham is also green, IIRC. 19:40:34 hmph, i've been trying to leave irc for like 20 minutes now, now seriously 19:40:35 -> 19:42:41 -!- MigoMipo has quit ("QuitIRCServerException: MigoMipo disconnected from IRC Server"). 19:43:54 hmmmm 19:45:23 http://swtch.com/plan9port/screenshots/opensolaris.png <-- is that window manager gnome? 19:45:36 I thought Solaris had some custom one 19:45:43 Not nowadays. 19:46:00 I see 19:46:09 qhqrdghqst, I still think OpenWindows was a nice one ;P 19:46:17 AnMaster: it's certainly possible to theme Gnome to look like that 19:46:24 err, that is gnome 19:46:25 but you could do that with other window managers too 19:46:26 very obviously 19:46:32 see: window decoration, the style of taskbar buttons 19:46:34 the show desktop button 19:46:38 and the desktop selector 19:46:40 and the icons next to it 19:46:45 and the icons on the desktop & their shadow 19:46:49 and the text rendering 19:46:51 ah, I don't use default Gnome icons anyway 19:46:52 and the terminal's menu bar and icon 19:47:03 you're right, the taskbar buttons look like unthemed Gnome 19:47:15 it's themed, just the default theme :P 19:48:24 Solaris' CDE wasn't what I'd call nice. Glrbh. 19:48:40 the default theme is bluer than that 19:49:00 err 19:49:02 is it? 19:49:04 no it's not 19:49:10 ais523, well of course you can theme it, But the icons looked gnome style. So did the applets. 19:49:14 I just wasn't sure 19:49:23 since I remembered solaris using something else 19:49:29 well it's debian's default theme at least 19:49:42 and I haven't used gnome for years 19:49:57 http://mail.gnome.org/archives/desktop-devel-list/2005-July/msg00269.html I think I understand why gnome is shit now 19:50:33 qhqrdghqst, the linked images are 404 19:50:43 Yes. Because it is from 2005 and linkrot. 19:50:49 Congratulations for noticing. 19:51:10 qhqrdghqst, did it get accepted? 19:51:15 what 19:51:20 that patch 19:51:22 or change 19:51:23 or whatecer 19:51:25 whatever* 19:51:27 /facepalm 19:51:33 I'm dropping this conversation thread 19:51:37 err 19:51:39 I read the mail 19:51:42 _exit(1); 19:51:43 just not the responses yet 19:51:50 so what the hell are you talking about 19:52:00 excuse me, what are we talking about? 19:52:05 http://mail.gnome.org/archives/desktop-devel-list/2005-July/msg00269.html 19:52:07 about that 19:52:09 _exit(1); 19:52:12 it seems to be a patch to change the theme 19:52:17 the default that is 19:52:18 what, they're making it-sensor visible in Enigma 1.01? 19:52:29 they can't do that, or at least they should give an option for invisible sensors 19:52:35 it-sensor? 19:52:35 ais523, ?? 19:52:48 qhqrdghqst: it's an invisible item which makes commands run when you go over it 19:52:58 ais523, also "making" implies engima 1.01 isn't released yet? I'm pretty sure it is 19:52:58 like an invisible trigger, but you can't hear it and it doesn't care about stones 19:53:02 *1.10 19:53:05 ah 19:53:32 ais523, can you place it below some other tile? 19:53:45 you can have one floor, one stone, one item, and any number of actors on a square 19:53:51 mhm 19:54:05 ais523, what about those levels where you go under something that looks like a floor? 19:54:07 how do they work 19:54:16 those are hollow stones which look the same as the floor beneath them 19:54:22 ah 19:54:27 so they can have an item under them 19:54:34 and a floor under that (you wouldn't want to fall, would you?) 20:03:18 Sq, Qs, qnyqnq? 20:03:33 ais523, mhm 20:04:07 -!- Judofyr has quit (Read error: 54 (Connection reset by peer)). 20:04:08 ais523, what about the things you gets with explosives. and remove with spades 20:04:14 don't know the name 20:04:18 hollows are items 20:04:21 ah 20:04:35 you know, because you can't drop an item on their square, but you can have different sorts of floor under them, and push stones over them 20:06:11 -!- Judofyr has joined. 20:07:06 -!- Judofyr_ has joined. 20:22:15 -!- Judofyr has quit (Read error: 110 (Connection timed out)). 20:25:09 -!- MigoMipo has joined. 20:25:33 ais523, heh 20:25:49 ais523, what are actors? 20:26:10 in engima I mean 20:26:23 AnMaster: marbles, tops, etc 20:26:28 ah 20:26:31 things that aren't restricted to integer coordinates 20:27:06 well I would assume they are, just integer coords == pixels instead of == tiles 20:27:15 or do they really use float? 20:28:00 arbitrary reals 20:33:58 not likely 20:33:59 AnMaster: it's floats 20:34:06 ais523, why on earth? 20:34:22 AnMaster: You were an X-Chatter, right? Do you happen to know how the "Colored nick names" thing picks colors for nicks? 20:34:23 so their physics simulations work better 20:34:33 oh ok 20:35:00 fizzie: it picks the most appropriate color for the personality 20:35:52 * FireFly is randomly happy 20:36:07 lament: Do you feel purple, then? 20:36:49 lament's a sort of mauve on my client, the same colour as fizzie 20:36:51 I do like purple prose. 20:36:54 and FireFly, for that matter 20:37:06 AnMaster's green, and qhqrdghqst's cyan 20:37:21 oklofok is a slightly redder purple than lament 20:37:34 I've succeded in displaying a pic at my DS 20:37:36 and Asztal_'s grey 20:37:37 I'm just wondering, because this has decided that ais523 and AnMaster have the same color, which is non-optimal as you people so often coincide temporally. 20:38:15 fizzie, I used to use xchat once upon a time 20:38:18 nowdays I use ERC 20:38:25 and I never used coloured nicks in xchat 20:38:31 I don't like that feature 20:38:34 Right, right. 20:38:44 it just hashes the nickname 20:38:49 I tend to use three colours: "normal, highlighted, own message" 20:39:26 ais523, and I'm more a dark blue person 20:39:30 than green 20:39:34 though green is ok 20:39:35 hey, I'm a dark blue person too 20:39:37 but also cyan 20:39:46 * qhqrdghqst transparent, like ninja. 20:40:08 ais523, http://en.wikipedia.org/wiki/Ultramarine is nice 20:40:31 * qhqrdghqst octarine 20:40:52 qhqrdghqst, doesn't go with transparent I'm afraid 20:41:09 Well, the text part already has the normal-highlighted-own split, so I don't mind nicks being rather colorful. 20:41:40 fizzie, I do that for all of the lines, and no nick column rainbow 20:42:12 -!- Hiato1 has quit (Read error: 60 (Operation timed out)). 20:42:55 qhqrdghqst, what do you think of the look of plan9 20:43:08 It's usable but very ... well, 1992s. 20:43:11 Seems that color_of(char *name) is just sum of all the bytes in name, modulo amount of colors in the fixed set used for nicknames. 20:43:12 well ok 20:43:13 s/s././ 20:43:23 qhqrdghqst, you think GTK is worse? 20:43:29 Absolutely. 20:43:39 qhqrdghqst, what about QT? 20:43:48 fizzie: that's so boring I could take a shit on it. 20:43:53 if you get my analogy. 20:43:59 AnMaster: Qt is acceptable. Sometimes. 20:44:06 qhqrdghqst, mhm. Motif? 20:44:20 AnMaster: Motif I can help it 20:44:26 (For guidance on the above sentence, see oerjan.) 20:44:31 Also the particular piece of code divides by sizeof (char), which is a rather silly way of saying 1. 20:44:53 qhqrdghqst, well it is a "meta" style pun I think 20:45:01 that is it is supposed to sound like something else 20:45:03 AnMaster: Yes. 20:45:04 but I don't know what 20:45:07 Pronounce it out aloud 20:45:10 "motif i can help it" 20:45:25 just did. But I'm not sure how to pronounce motif in English 20:45:27 It's "not if" when your nose is stuffed. 20:45:38 fizzie: You spoiled it :P 20:45:40 ah 20:45:57 Yes, I'm a spoiler. 20:46:01 if (! 20:46:08 it sound more like "note if" than "not if" 20:46:20 or am I mispronouncing motif? 20:46:28 qhqrdghqst, ? 20:46:38 Well yeah. 20:46:40 It's a bad pun 20:46:59 fizzie: Here's a nice colourerer: abs (foldl xor 255 nick). 20:47:00 * IPA: /məʊ'tif/; you do need a bit of imagination there. 20:47:07 qhqrdghqst, so is it a long or a short t in motif? 20:47:11 er 20:47:13 fizzie, I can't really read that 20:47:19 foldl xor 255 (map ord nick). 20:47:21 qhqrdghqst, err o not t 20:47:50 colourNick nick = foldl xor 255 (map ord nick) 20:47:54 "Moo-tif", the interface of choice for cows. 20:48:03 fizzie, hah 20:48:30 Prelude Data.Char Data.Bits Test.QuickCheck> colourNick "AnMaster" 20:48:30 236 20:48:31 Prelude Data.Char Data.Bits Test.QuickCheck> colourNick "ais523" 20:48:33 176 20:48:35 Perfect distinguishotron. 20:48:37 fizzie, err so what is the difference between "note" and "not" then. It isn't "long/short" o 20:48:51 qhqrdghqst: what is the number? selection between 256 possible colours? 20:48:56 ais523: yep 20:49:01 since motif ends up a bit like note if the way I say it 20:49:08 it may be hard to find 256 different-looking colours 20:49:12 yeah 20:49:17 Just use the standard palette 20:49:22 You don't get too many similar colours 20:49:37 let colourNick nick = foldl xor 16 (map ord nick) `mod` 16 20:49:40 also seems to work acceptably 20:50:47 AnMaster: "note" is /nəʊt/, "not" is just /nɒt/. So there's an "ou"-style diphthong in "note". 20:50:55 FireFly, ah 20:50:57 err 20:50:58 fizzie, ^ 20:51:15 AnMaster: But yes, "motif" is closer to "note if" than "not if". 20:51:28 indeed 20:51:32 -!- kar8nga has joined. 20:51:59 hm 20:52:05 I just got an idea for the perfect OS 20:52:22 probably quite different from ehird's/my 20:52:29 That is what I was thinking, ais523... 20:52:30 It would be a combination of Genera, Plan 9 and QNX 20:52:31 which are somewhat different from each other 20:52:49 what do you think? 20:52:49 AnMaster: well, first, those are so completely different that you couldn't combine them reasonably 20:52:57 qhqrdghqst, yeah probably 20:52:57 secondly, QNX isn't very interesting apart from being embedded 20:53:10 qhqrdghqst, it is very stable though 20:53:18 QNX didn't invent stability 20:53:19 what about just combining the first two? 20:53:23 qhqrdghqst, that is true 20:53:27 "AnMaster: well, first, those are so completely different that you couldn't combine them reasonably" 20:53:33 qhqrdghqst, hm 20:53:37 Adding random good stuff together isn't a recipe for success. 20:53:43 well true 20:54:04 QNX does have interesting aspects. The distributedness stuff is fancy. 20:54:24 and having almost everything in userspace 20:54:28 Plan 9 has a distributed CPU system 20:54:30 which is excellent 20:54:37 I mean, IPC and scheduling are in kernel, that's about it 20:54:48 iirc 20:54:51 my OS is so microkernel, it even has its userspace in userspace! 20:54:58 ais523, -_- 20:55:27 all your features are belong to userspace 20:55:45 There was also something funny related to the file systemics, but I've forgotten what it was. My only QNX experiments were several years ago. 20:55:54 fizzie, same 20:56:41 http://plan9.bell-labs.com/plan9/img/mirtchov/interpolate.gif <-- that's pretty 20:57:01 it's like every ELER comic ever! 20:57:23 Did you mean: ELLE comic 20:57:24 ?? 20:57:31 http://geekz.co.uk/lovesraymond/ 20:57:35 Everybody Loves Eric Raymond 20:58:17 "And GIMP now supports CMYK" <-- ? Really? *looks* 21:02:45 looks like a future version will have it 21:17:03 -!- fizzie has left (?). 21:17:21 -!- fizzie has joined. 21:17:25 -!- kar8nga has quit (Read error: 110 (Connection timed out)). 21:17:28 Whoopsie. 21:18:05 I am definitely not ready for this third-millennium gooey-IRC thing. 21:18:16 fizzie, what? 21:19:02 -!- MigoMipo_ has joined. 21:19:23 I think I should make a realtime javascript raytracer. (At this point qhqrdghqst dies of unbelievable stupidity.) 21:19:43 fizzie: did you press Ctrl-W? 21:19:45 qhqrdghqst: it'll take you something like 20 years for the hardware to catch up 21:19:46 I somehow accidentally closed this tab-or-whatever-it-is, maybe with ^w or something. I've never accidentally typed "/part #esoteric" or something. 21:20:09 accidental mouse clicks are what most commonly close tabs by mistake for me 21:20:10 ais523, ctrl-m in xchat is "move marker of last line read in channel" iirc 21:20:16 or was it clear window? 21:20:18 Hey, with TraceMonkey it'll be native-code-speed. 21:20:24 It's "mvoe marker line". 21:20:28 AnMaster: err... why are you nickpinging me with that details? 21:20:29 s/mvoe/move/ 21:20:37 ais523, what? 21:20:45 fizzie: unfortunately native speed isn't fast enough for realtime raytracing either 21:20:58 ais523, I must have misread 21:21:00 ais523: oh, it's been done... 21:21:02 two things 21:21:12 -!- BeholdMyGlory has quit (Excess Flood). 21:21:14 " fizzie: did you press Ctrl-W?" turned out as " fizzie: did you press Ctrl-M?" 21:21:16 no idea how 21:21:16 ... 21:21:32 -!- BeholdMyGlory has joined. 21:22:16 There's been things that you could consider real-time ray-tracing, if you want to be polite about it, in demoscene prods a long time. 21:22:52 On June 12, 2008 Intel demonstrated Enemy Territory: Quake Wars using ray tracing for rendering, running in basic HD (720p) resolution. ETQW operated at 14-29 frames per second. The demonstration ran on a 16-core (4 socket, 4 core) Tigerton system running at 2.93 GHz.[10] 21:22:59 I want a 16-core system, me. 21:23:06 That would be pleasurable. 21:23:19 AnMaster: http://slashdot.org/article.pl?sid=09/03/16/1839231 21:23:22 qhqrdghqst: Just get a couple of microwaves, then you can do another core-counting experiment. 21:23:31 it seems that Intel and AMD are rowing over x86 21:23:43 if they end up revoking each other's licences, all sorts of ridiculous things could happen 21:23:57 -!- MigoMipo has quit (Nick collision from services.). 21:24:01 ais523: probably they'll just find a loophole and change a minor bug to make it "not x86" 21:24:04 -!- MigoMipo_ has changed nick to MigoMipo. 21:24:22 AnMaster: http://slashdot.org/article.pl?sid=09/03/16/1839231 <-- huh 21:24:30 why is that a huh? 21:24:35 because only ehird links people to things randomly? 21:24:43 http://goatse.ca/ 21:24:50 ais523, yes 21:24:53 ... which is now squatted 21:25:10 qhqrdghqst, what about the cx original? 21:25:23 AnMaster: someone else owns it; it has a picture of a LEGO thing that looks like a goatse but it's SWF. 21:25:28 Safe for work that is. 21:25:29 Not flahs 21:25:31 *flash 21:25:31 heh 21:25:39 and they're trying to sell it 21:25:58 "Buy a piece of Internet history." 21:26:12 qhqrdghqst: what happened to the picture of Bill O'Reilly? 21:26:16 if it ever existed? 21:26:23 -!- kar8nga has joined. 21:26:24 it was replaced 21:30:10 Oh wow. 21:30:12 Horrible idea. 21:31:05 brb -> 21:31:05 what's the horrible idea? 21:31:15 Maybe he went to implement it immediately. 21:34:09 hah 21:45:39 -!- ais523 has quit (Remote closed the connection). 21:45:53 It seems to have been a really horrible one. 22:10:11 heh 22:10:26 qhqrdghqst, btw do you know any good breakout game for OS X that is free? 22:13:30 -!- Judofyr_ has quit (Read error: 110 (Connection timed out)). 22:17:52 -!- MigoMipo has quit ("QuitIRCServerException: MigoMipo disconnected from IRC Server"). 22:21:57 -!- Mony has quit ("Quit"). 22:22:43 -!- kar8nga has quit (Read error: 110 (Connection timed out)). 22:31:58 -!- qhqrdghqst has changed nick to ehird. 22:33:53 -!- Judofyr has joined. 22:35:16 * comex wonders how to implement motion blur in canvas 22:35:42 where by "motion blur" I just mean blend in some previous frames 22:35:50 I guess you could create invisible canvases 22:39:10 You could just always draw N frames, but that doesn't sound very fast. 22:40:17 by invisible canvases do you mean translucent canvases? 22:41:07 have 5 canvases, and draw to each one in turn, changing the Z-order so that the most-recently-drawn-to canvas is at the top 22:41:31 that would work :| 22:42:44 -!- BeholdMyGlory has quit (Read error: 104 (Connection reset by peer)). 22:42:54 I just crashed firefox 22:42:57 or hung 22:43:37 You can also use the toDataURL("image/png") or something to get the current frame as an image, then render those. But that would mean one extra PNG creation operation and N-1 extra PNG decoding operations per frame. The "pile of canvasii" approach sounds most sensible. 22:44:18 I was going to do a translucent draw under the assumption that it's probably faster than css 22:44:57 but since that means copying data and the other approach doesn't 22:44:58 :p 22:46:32 There seems to be some sort of getImageData functions you maybe could use; it still involves copying, but at least there's no PNG creation stuff. 22:46:39 the canvas3D canvas context would make this a lot faster :) 22:47:02 yeah, I'm using that 22:47:04 BUT 22:47:09 looks like I can't putimagedata between canvases 22:47:10 lame 22:47:37 OH THANK GOD 22:47:43 SOMEONE is finally havnig hardware-accelerated 3d 22:48:28 scratch that 22:48:31 I was just setting it up wrong 22:51:31 WELL HELLO THERE 22:51:38 firefox is leaking memory like crazy 22:51:54 it's not freeing the image datas 22:51:55 ew 22:52:16 well, I'll use the overlay-canvases approach 22:53:34 It does sound simpler, at the very least. 22:53:45 oi! 22:58:23 http://qoid.us/cv.html <-- don't run in a slow browser 23:00:51 ok.. 23:01:04 you should add friction. 23:01:55 * comex adds more balls 23:02:02 where by "ball" I mean "square" 23:02:17 add friction! 23:02:21 and drag! 23:03:51 I wonder how slow collision detection will be 23:03:52 probably not very 23:04:00 maybe slow if I have 100 balls 23:04:17 if you do quad tree searching it should be efficient 23:04:23 what the fuck is that 23:04:26 :p 23:05:12 well, for your thing it wouldnt be an issue since you're using squares 23:05:40 actually, screw collision detection 23:05:42 instead, 23:07:32 -!- neldoreth has quit ("leaving"). 23:07:44 -!- neldoreth has joined. 23:07:49 xor http://qoid.us/cv.html 23:11:37 :o 23:11:38 magic! 23:11:45 collision is better. 23:12:41 too lazy 23:12:46 because what if they're colliding by multiple pixels 23:14:06 then you better get a time resolution good enough for that to happen :) 23:14:10 or not happen 23:17:49 comex: quad trees are one of the data structures that split R^n into hypercubes so you can check whether containing hypercubes intersect before doing the actual collision check. 23:17:54 (glad i could help) 23:18:38 psygnisfive: it's not fast enough :p 23:18:42 err actually quad tree is not one of them. 23:18:46 I guess I can do physics faster than actually drawing 23:18:50 but, 23:18:51 * comex tries to get canvas 3d to work on beta 3.1 23:18:55 but guess it can be used as such 23:18:57 oklofok! 23:19:02 let me tell you about quantifiers :D 23:19:05 comex: that's shit 23:19:10 ehird: what 23:19:10 :) 23:19:24 proof: 23:19:28 http://www.blahbleh.com/whyiesucks.htm 23:19:36 a 3d cube, with motion blur, in canvas, getting ~50fps 23:19:41 ur doing it wrong, evidently :P 23:19:46 ehird: um, so? 23:19:49 I saw that 23:19:57 yeah, and... motion blur isn't that hard? 23:19:58 the boxes are going perfectly fast (not measuring fps) 23:20:06 oklofok, can i can i huh huh huh 23:20:10 AnMaster: lbreakout2 23:20:12 I believe that's drawing the cubes repeatedly for the motion blur 23:20:21 but they do collide by more than one pixel I think 23:20:23 anyway, my delay was me scraping most of the skin off the back of my foot ^_^ 23:20:33 By mistake, that is. 23:20:44 50 FPS *with an encoding run going*. 23:21:03 * comex stabs pikhq with rapier 23:21:05 psygnisfive: you can tell me seven sentences 23:21:16 anyway, awful idea time 23:21:22 all learnable natural language quantifiers are conservative. 23:21:31 HOWS SEVEN WORDS 23:21:49 And this on 4 year old hardware. 23:22:02 psygnisfive: interesting! what does that mean?` 23:22:04 Canvas is still shit :P 23:22:08 you can have another 7 words. 23:22:08 orly? 23:22:12 it's quite fast and a lot better than flash 23:22:15 *mean? 23:22:21 ehird: Less shit than everything else. 23:22:21 comex: compare that to SDL 23:22:31 Well, everything else on the web. 23:22:31 heck you could script SDL with spidermonkey 23:22:34 it'd be 39487539457345 times faster 23:22:48 Compared to a proper programming environment, well, yeah. Canvas sucks. 23:22:57 suppose Q is a quantifier, relating two sets, e.g. Q(X,Y) = |X intersect Y| > |X-Y| (== "most X are Y") 23:22:58 ehird: I doubt it 23:23:15 no, really. 23:23:18 then Q is conservative if and only if: Q(X,Y) iff Q(X, X intersect Y) 23:23:30 really 300 trillion times faster? 23:23:33 well, no. 23:23:57 Now. 23:23:58 Evil time 23:24:29 http://hg.mozilla.org/users/vladimir_mozilla.com/canvas3d/ 23:24:33 how the fuck am I supposed to compile that 23:24:37 with butts 23:24:42 * comex looks up 23:24:49 http://hg.mozilla.org/users/vladimir_mozilla.com/canvas3d/file/f050229f6011/Makefile.in 23:24:51 Makefile.in; happy? 23:24:59 not very 23:25:50 actually, my evil idea is kinda related to this 23:26:00 -!- FireFly has quit ("Later"). 23:27:10 autoreconf&&./configure&&make&&make install? 23:30:07 psygnisfive: awesome 23:31:00 its even cooler 23:31:01 because 23:31:14 all conservative quantifiers can be built up in very simple was 23:31:16 ways* 23:31:17 namely: 23:31:24 seeing psygnisfive get excited about linguistics amuses me 23:32:21 any boolean operation over conservative quantifiers gives a conservative quantifier 23:33:02 and: Q(X intersect C, Y) is conservative, for any set C 23:33:18 and these two together produce ALL and ONLY the conservative quantifiers 23:33:33 if you start with a single conservative quantifier all(X,Y) 23:33:34 :) 23:33:43 or some(X,Y). 23:34:46 cool 23:35:01 which is /very/ interesting indeed 23:35:52 -!- olsner has quit ("Leaving"). 23:35:57 well i think i don't actually know what you mean by quantifier when it comes to language 23:36:10 words like all, some, most, many, few 23:36:12 all the numbers 23:36:20 hmm 23:36:30 more-than 23:36:52 -!- tombom has quit ("Peace and Protection 4.22.2"). 23:36:59 what quantifier would 5 be? 23:37:14 5 cats are small 23:37:21 hmm righ 23:37:22 t 23:37:30 5(X,Y) = |X intersect Y| = 5 23:37:36 == 5* 23:37:38 yeawh 23:37:40 *yeah 23:37:45 well actually 23:37:46 technically 23:37:53 5(X,Y) = |X intersect Y| >= 5 23:38:02 ....yeah :) 23:38:43 so how would you construct most out of all? 23:40:00 no clue :D 23:40:06 most is 23:40:18 most(X,Y) = |X intersect Y| > |X - Y| 23:40:21 you already defined most 23:40:28 we can try to reword it 23:40:34 hmm. 23:40:39 what is legal in the transformation? 23:40:52 boolean combinations of other conservative quantifiers 23:40:57 just all(all(X),all(all(Y),all(Z))) kinda stuff? :| 23:41:08 so Q(X) -> !Q(X) 23:41:09 and 23:41:17 ohh. 23:41:33 Q(X,Y), R(X,Y) -> Q(X,Y) op R(X,Y) 23:41:38 for op some boolean operator 23:41:43 right right. 23:41:48 and Q(X,Y) -> Q(X intersect C, Y) 23:41:52 for any set C 23:42:41 all(X,Y) = X subset Y = X - Y == 0 23:43:30 yeas 23:43:31 ill look at my references and see if they mention how to construct most from all 23:43:46 do look, i'm not really in a thinking mood, kind of a math overdose 23:45:02 oh my god i want to learn chemistry 23:45:28 lol 23:45:53 well you know molecules and stuff they're very pretty. 23:46:56 "A semantic characterization of natural language determiners" is one of the papers that discusses this 23:47:21 well why don't you go look then :-) 23:47:38 i cant get it 23:48:16 i have another article i can give you a copy of 23:48:30 nooooo exam next monday and i forgot to begin my reading journey today. 23:52:18 i have two articles for you. 23:52:31 buttt... i need to start my readings! 23:54:07 wellnowwhat.net/linguistics/quant1.pdf 23:54:09 wellnowwhat.net/linguistics/quant2.pdf 23:54:28 Star Trek: Some hydrogen stars go trekking. It's a gas! 23:55:13 *rimshot* 2009-03-17: 00:01:46 -!- mib_p3zdz9st has joined. 00:04:18 «00:00:00» « Day changed to {Tuesday, March 17th 2009}. It's St. Patrick's day, time to get some booze! 00:04:34 what kind of shitty irc client does that 00:04:38 don't answer, I know: a shit one 00:05:16 esoteric programming? 00:05:33 Yes, even if it does not always look like it. 00:05:39 darn tootin 00:07:19 Ehm... 12th of july: "Beware of Santa Claus!" 00:07:32 wut 00:08:21 One of the day change messages 00:11:42 Any engine techs here? 00:12:15 Having an idle issue with my 3.1mpfi 00:22:33 23:22 ImInYourMonad: ehird: because i can understand things that are not formal systems? 00:22:39 In response to me asking why he thinks his brain is superturing. 00:22:43 lol lol lol 00:24:33 23:24 ImInYourMonad: well maybe consciousness is an illusion, but i can build a computer but a computer cant build me unless a human tells it how to 00:24:39 ^ lol 00:28:55 i'd love to know what things are not formal systems that he can understand. lol 00:30:31 psygnisfive: EMOTIONS & PURE LOVE 00:30:36 &&&& THE FEELING OF MUSIC 00:30:40 &&&& HUMANITY 00:30:44 * ehird vomits 00:30:46 i would point out that he undoubtedly doesnt understand any of those 00:30:50 -!- comexk has joined. 00:30:54 nor does he have proof that they're not formal systems. 00:30:56 :-D 00:31:15 It irritates me when channels go over primordial stupids about AI. 00:31:22 WE'VE THOUGHT OF IT ALL BEFORE, GODDAMMIT 00:31:26 You're almost certainly wrong :P 00:31:26 infact, the idea that anything can be non-formal 00:31:32 its basically a dualist view 00:31:43 material world + spiritual component 00:31:53 thats the only possible view that can even potentially admit such things 00:32:07 mm 00:32:12 Some people just think they're special. 00:32:25 but even then, you have to wonder how a spirit world would work if not by being based on the nature of the things involved 00:32:33 oh they ARE special ehird 00:32:35 very special 00:32:58 as in retarded? 00:33:01 yes. 00:33:45 psygnisfive: they're not that retarded though. some people believe in God. 00:34:01 that's even worse. 00:34:08 that was my implication 00:34:15 what? 00:34:33 butts 00:34:38 :d 00:34:43 :))))))))))) 00:34:51 psygnisfive is so easy to please 00:34:52 just say butts 00:34:55 :d 00:34:57 i believe in butts 00:35:04 -!- comex has quit (Read error: 104 (Connection reset by peer)). 00:35:07 butt butt butt butt 00:35:25 :d :d :d :d 00:35:30 :d 00:35:37 hey i think i see a pattern :DDDDDDDDDDDDDDDDDDDDDDDDDDD 00:35:42 pruit igoe 00:36:23 i think i see a butt 00:36:37 pruit 00:36:38 igoe 00:37:07 % grep no-link-chk **/* 00:37:07 zsh: argument list too long: grep 00:37:08 fuuuuuuuuuuuuuuuuuuuuuuuu 00:37:10 AnMaster: lbreakout2 <-- it exists for OS X too? ok 00:37:13 AnMaster: SDL 00:38:23 -!- GregorR has joined. 00:40:33 ehird, mgm 00:40:34 mhm* 01:28:38 ROOTS BLOODY ROOTS 01:57:00 -!- neldoreth has quit ("Lost terminal"). 02:12:15 Things I Never Want To Here Again, #475: 02:12:18 *Hear 02:12:19 01:11 comexk: also, ehird: what if I have a struct with 5000000 fields 02:13:23 you are talking to a database and are getting a row from a table 02:13:26 surely that's a reasonable use case 02:13:40 5000000. fields. 02:13:44 weren't you going to bed 02:13:47 yes 02:13:49 also 02:14:01 ehird: I was merely imitating your use of very large numbers 02:14:01 no 02:14:03 :P 02:14:04 k 02:14:08 I was referring to more like 10 fields 03:37:09 -!- Sgeo has joined. 03:42:14 http://esoteric.voxelperfect.net/wiki/CHIQRSX9_Plus 03:42:23 how does X make the language turing-complete? 03:43:48 58 days until Frank Sinatra Day 03:43:51 oops 03:47:40 lulz. 03:47:47 X doesnt, really. 03:50:29 -!- mib_p3zdz9st has left (?). 03:53:25 -!- MizardX- has joined. 03:58:15 -!- MizardX has quit (Read error: 60 (Operation timed out)). 03:58:18 -!- MizardX has joined. 03:59:43 -!- MizardX- has quit (Read error: 104 (Connection reset by peer)). 04:03:09 -!- GreaseMonkey has joined. 04:04:52 -!- bsmntbombdood has quit (Read error: 110 (Connection timed out)). 04:05:27 -!- bsmntbombdood has joined. 04:36:04 -!- ehird has quit (Remote closed the connection). 04:36:17 -!- ehird has joined. 04:37:49 -!- ineiros has quit (calvino.freenode.net irc.freenode.net). 04:37:49 -!- sebbu has quit (calvino.freenode.net irc.freenode.net). 04:37:49 -!- kerlo has quit (calvino.freenode.net irc.freenode.net). 04:37:49 -!- Ilari has quit (calvino.freenode.net irc.freenode.net). 04:37:49 -!- rodgort has quit (calvino.freenode.net irc.freenode.net). 04:38:38 -!- ineiros has joined. 04:38:38 -!- sebbu has joined. 04:38:38 -!- kerlo has joined. 04:38:38 -!- Ilari has joined. 04:38:38 -!- rodgort has joined. 04:50:51 -!- psygnisfive has quit (calvino.freenode.net irc.freenode.net). 04:50:53 -!- rodgort has quit (calvino.freenode.net irc.freenode.net). 04:50:56 -!- sebbu has quit (calvino.freenode.net irc.freenode.net). 04:50:56 -!- Ilari has quit (calvino.freenode.net irc.freenode.net). 04:50:56 -!- ineiros has quit (calvino.freenode.net irc.freenode.net). 04:50:56 -!- kerlo has quit (calvino.freenode.net irc.freenode.net). 04:50:56 -!- psygnisfive has joined. 04:51:22 -!- rodgort has joined. 04:51:22 -!- Ilari has joined. 04:51:22 -!- kerlo has joined. 04:51:22 -!- sebbu has joined. 04:51:22 -!- ineiros has joined. 04:55:09 -!- MizardX- has joined. 04:58:03 -!- MizardX has quit (Read error: 104 (Connection reset by peer)). 04:58:08 -!- MizardX- has changed nick to MizardX. 05:05:18 -!- MizardX has quit (Read error: 131 (Connection reset by peer)). 05:05:27 -!- MizardX has joined. 05:37:29 -!- MizardX has quit (Read error: 60 (Operation timed out)). 05:57:02 -!- Sgeo has quit ("Leaving"). 06:07:18 -!- oerjan has joined. 06:20:04 (For guidance on the above sentence, see oerjan.) 06:20:20 it's not nice to ping me from a completely unknown nick. 06:20:34 not that it was unexpected who it really was. 06:20:47 -!- MizardX has joined. 06:21:11 * oerjan swats ehird to make the point clear -----### 06:23:24 qhqrdghqst, so is it a long or a short t in motif? 06:23:35 i didn't think english had long consonants 06:23:56 and what they call long vowels aren't really either 06:24:00 iiuc 06:24:47 (being diphthongs) 06:25:45 how does X make the language turing-complete? 06:25:59 by turning it into a rotation of perl, iirc 06:26:12 (at least in my implementation) 06:27:48 i don't get it 06:28:47 well it's a joke, obviously 06:29:23 X makes the rest of the program being interpreted as a TC language. 06:29:36 but it is a _random_ TC language, so that it is still useless. 06:29:50 *be 06:36:49 -!- MizardX- has joined. 06:39:33 -!- MizardX- has quit (Read error: 131 (Connection reset by peer)). 06:40:11 -!- MizardX- has joined. 06:41:31 -!- MizardX has quit (Read error: 60 (Operation timed out)). 06:41:39 -!- MizardX- has changed nick to MizardX. 06:47:02 -!- Slereah_ has quit (calvino.freenode.net irc.freenode.net). 06:49:33 -!- Slereah_ has joined. 06:50:24 -!- Slereah has joined. 07:01:52 -!- Slereah_ has quit (calvino.freenode.net irc.freenode.net). 07:33:56 -!- oerjan has quit ("leaving"). 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:36:28 -!- neldoreth has joined. 08:50:09 -!- tombom has joined. 09:02:49 -!- Slereah_ has joined. 09:03:32 oerjan: isn't "beep" a long vowel? 09:11:12 Wiktionary's english pronunciation key has four cases of "x:" IPA markup, which would sound long-wovelish: the ɑː part in father, the iː part in ease, see (and presumably beep), the ɔː part in law, caught, saw and uː in lose, soon. Oh, and a ɜː(ɹ) construction in fur, bird. 09:12:24 I can't think of an example where the just different vowel lengths would have different meanings. We (Finnish) do that all the time. 09:12:33 s/the just/just the/ 09:13:58 -!- Slereah has quit (Read error: 110 (Connection timed out)). 09:15:47 they often have different meanings, it's just the vowel changes when it's lengthened 09:35:37 english has no vowel length contrast 09:35:47 no true contrast, anyway 09:37:40 you can analyze /i:/ and /I/ as contrasting length, but they differ greatly in quality 09:38:04 and often phonetically the length isnt different at all 09:53:39 -!- GreaseMonkey has quit ("Quit: Quit: Quit: Quit: Quit: Quit: Quit: Quit: Quit: Quit"). 10:18:29 * AnMaster ponders the Swedish "sil" and "sill". They mean very different things 10:18:46 and vowel length is the only difference 10:19:52 sil ~ sieve, sill is a type of fish, don't remember the English name for it. 10:24:51 Finnish "taka", "takka", "taakka" and "takaa" all have very different meanings. ("taka" ~ back, used in compound words, "takka" is a fireplace, "taakka" ~ burden, and "takaa" is the third-person-singular form of the verb assure, although it's also approximately "from behind" too.) 10:25:10 fizzie, assure from behind? 10:27:17 That would be "takaa takaa", although it doesn't really make sense. Usually the object being assured would be rather close to the "takaa"-used-as-verb. I can't really invent a non-artificial-sounding sentece which would have those two words consecutively like that. 10:27:52 fizzie, it sounds rather strange that a single word has two so different meanings... 10:28:08 and with the same spelling 10:28:36 One is an adverb, the other is a verb, so it's usually rather easy to interpret from context which one it is. 10:29:00 fizzie, but why have they ended up the same? 10:29:16 And it's only that particular third-person-singular case of the verb, anyway. The infinitive ("to assure") is "taata". 10:30:20 I assure ~ min takaan, you assure ~ sin takaat, he/she assures ~ hn takaa, we assure ~ me takaamme, you assure (plural) ~ te takaatte, they assure ~ he takaavat. 10:31:00 fizzie, so what is the etymology(sp?) 10:31:35 No clue, but I assume most of our multiple-meanings words are because of the metric assload of noun cases we have. 10:31:52 fizzie, "noun cases"? 10:32:17 http://en.wikipedia.org/wiki/Finnish_language_noun_cases 10:32:35 Goes with the "not a lot of prepositions" thing. 10:32:39 oh sorry, got to rush, I'm late... 10:32:40 afk 10:33:21 No worries, it's not like it makes any sense; it's a natural language, after all. 10:51:45 AnMaster: In most cases if you ask about the etymology of a Finnish word you'll get either 'nobody knows' or 'proto-Finno-Ugric' both of which mean essentially that it's been like that forever and nobody knows why. 10:53:58 Wiktionary's Etymology for "taata" is "From earlier *takata", which isn't very informative. 11:11:00 Why is the official support always so useless? I have this NAS box with two SATA slots, and two 750 GB disks full of stuff in a RAID-1 setup in a computer, and would like to migrate them to the NAS box so they can noisily hum in a different room. Official answer as to how to do it without backing up all those gigabytes to somewhere elsewhere: 11:11:39 "This cannot be done cause the filesystem in the NSA-220. This needs to be set up in the NSA and you cant import a disc with content on it. So you need to move the files to another HDD and then import the files that you want." 11:12:00 -!- BeholdMyGlory has joined. 11:13:32 Damn, I thought djinn and jean would be a long-wovel-distinction example but they're /dʒɪn/ and /dʒiːn/ 11:14:20 I asked if their web-configurator is flexible enough so that I could configure one of those disks as a degraded RAID-1 thing, but they ignored that completely. I also asked for details on how the box sets up disks and filesystems, so I could prepare the disk in advance (the box is linux-based and does not use any proprietary file systems or anything), but they also ignored that completely. 11:14:45 Just "this cannot be done cause the filesystem". Right. 11:17:26 I'm not sure I could reliably distinguish ɪ and i. 11:18:15 I think they're somewhat interchangeable in Finnish. 11:18:39 Anyhoo, the latter is 'sharper' if you can understand that 11:18:57 Where you open your mouth really wide 11:20:06 I think I can pronounce 'niin' either way, for instance, and neither really sounds wrong 11:22:04 It could be I'm just doing it wrong, alternatively. :-P 11:22:08 -!- BeholdMyGlory has quit (Excess Flood). 11:22:29 -!- BeholdMyGlory has joined. 11:22:31 -!- BeholdMyGlory has quit (Remote closed the connection). 11:23:22 There are some phonology-related thing our Swedish teacher gripes about constantly, and I think it's another case of pretty-much-equivalent-in-Finnish pair. 11:25:31 I think it was related to ø/ɵ-like sounds. 11:26:09 Even the symbols look pretty similar. :p 11:29:08 Oh, and the Russian ɨ, that was another difficult one. 12:10:14 -!- neldoreth has quit ("leaving"). 12:10:20 -!- neldoreth has joined. 12:19:36 -!- fizzie has left (?). 12:19:54 -!- fizzie has joined. 13:28:44 Deewiant, heh ok 13:30:25 Deewiant, to me djinn and jean sound quite different...? 13:31:20 <0lö.- 13:33:09 × AnMaster ponders the Swedish "sil" and "sill". They mean very different things ||| AnMaster: and vowel length is the only difference <<< a swedish guy once told me the long ones are different from the short ones 13:33:28 (ofc you probably wouldn't know that from just speaking it natively) 13:33:35 hm? 13:33:57 double consonant in Swedish means the vowel directly in front is shorter 13:34:00 that swedish has different vowels for short and long versions. 13:34:21 yes, and a different vowel, according to a swedish person on #random_channel 13:34:37 btw in English I find the difference between joke/yoke/yolk hard. I mean to me they sound almost the same 13:34:44 mean,* 13:35:07 oklofok, hm maybe, we usually call them long/short versions though 13:35:18 joke and yoke have nothing to do with each other 13:35:20 maybe IPA thinks it is a different one 13:35:59 the "y" there is like swedish "jag", the "j" is a french version of the usual "ch" sound 13:36:06 i'm not sure whether that exists in swedish 13:36:11 hm? 13:36:23 and i think yolk is equal to yoke 13:36:35 AnMaster: what was unclear? 13:36:54 oklofok, they yoke and joke sound the same to me 13:37:12 The word "tjock" has a vaguely joke-'j'-like sound, I think. Although my Swedish is very rusty. 13:37:20 s/they// 13:37:23 AnMaster: they can't sound the same to you, sorry. 13:37:32 oklofok, ? 13:38:02 fizzie, hm. That would depend on dialect. Like "tjoke"? 13:38:15 more like "djoke" someone said iirc 13:38:43 AnMaster: swedish has the consonant that starts "yoke", i'm not sure it has the one in "joke", but it's just a voiced "ch", which you should have. 13:39:11 * AnMaster wonders why the faviconfor wikitionary looks like random garbage in one tab... 13:39:18 favicon for* 13:39:44 hm reloading it fixed it 13:39:52 AnMaster: also i checked the yoke/yolk thing at one source, and they seem to be the same. 13:40:07 so you probably shouldn't be able to distinguish between them 13:40:10 oklofok, http://en.wiktionary.org/wiki/yolk lists too ways to pronounce it 13:40:38 UK/US 13:40:45 but you definitely should recognize joke/yolk 13:41:40 unless you pronounce "joke" like you would in swedish ofc 13:42:03 oklofok, and that I can't really hear the difference... 13:43:13 s/that// 13:44:10 well. confusing "ch" and "j" is a common mistake for finns, but we don't have either of those really. and i'm pretty sure you have all the consonants necessary to distinguish between joke and yoke. 13:45:31 i mean it's still not acceptable not to know the difference ofc, but at least i can believe it could happen. 13:45:53 oklofok, it is the difference in the j/y sound there that is hard + I'm pretty sure it isn't at all like "tjock" as fizzie suggested. At least not the way "tjock" is pronounced in these parts of the country... 13:46:16 I have to agree that the difference between /j/ and /dʒ/ (which is what "yoke" and "joke" start with, according to OED) should be rather noticeable, given that the first one isn't even a fricative ("shshsh"-like sound) at all. 13:46:43 fizzie, we don't have "fricative" sounds in Swedish though 13:46:49 Uh, you do. 13:46:49 ... 13:46:55 fizzie, not for j at least? 13:47:02 * oklofok suddenly symphatizes with ehird 13:47:06 For example ɕ, as in kjol "skirt". 13:47:39 * oklofok cannot accept someone knowing less phonetics than the little that he does 13:47:41 fizzie, hm, "fricative" is what we in Swedish call "tonande ljud" right? 13:48:18 I don't know Swedish, but that sounds like "voiced sound", which is a very different thing. 13:48:24 hm 13:48:43 and swedish has voiced sounds 13:48:57 fizzie, then what is "fricative" in Swedish? I don't have a dictionary around here atm... 13:50:05 fizzie: isn't the "y" kinda fricative? i mean you're basically narrowing the passage of air in the vowel "e", which is afaik the definition of fricative 13:50:17 i mean i know it isn't actually a fricative, but i don't think it's that far away 13:50:41 Well, your fricatives (according to wikipedia) are f (as in 'fot' - foot), s (as in 'sot' - soot), ɕ (as in 'kjol' - skirt) and ɧ (as in 'sjok' - chunk). 13:51:29 oklofok: I think you need to get some serious turbulence in your airflow before you can call it a fricative. 13:52:28 Any shushy-type sound probably qualifies. But Swedish doesn't seem to have any voiced fricatives. Maybe. I know so little about these things that any attempt at sensible discussion is pretty much doomed to failure. 13:52:35 * AnMaster tries to find the common pattern in those sounds 13:52:38 actually i can pronounce it as a fricative, getting an "h" type of sound 13:52:50 so i guess it's not very fricative 13:53:31 ah hm I think I see 13:53:32 fizzie: yeah but this is not about sensible discussion, it's about being annoyed about AnMaster not knowing english! or maybe it's just me. 13:54:03 anyway there was this game idea i had, any nice name ideas? 13:54:06 well Swedish doesn't have /dʒ/ afaik. If we do, where? 13:55:01 I don't think you do; but personally I find even the "fricative/not" difference between j in yoke and dʒ in joke very discernible. 13:55:26 fizzie, you have those sounds in fi? 13:55:42 no, but like you, we have the "y" 13:56:09 yes that isn't an issue. The issue is that /dʒ/ sound the same! 13:57:10 We have precious few sounds here. Especially as far as fricatives go, we just have f and s, unless you start counting non-native words. 13:57:12 actually just the fact there's a "d" before the voiced "sh" should be enough of a difference 13:57:27 also you could argue we don't really have f 13:58:01 Actually, officially speaking it should be *we* who should be complaining about the joke/yoke thing, since: 13:58:03 "[f] appears in native words only in the Southwestern dialects, but is reliably distinguished by Finnish speakers. The rest of the foreign fricatives are not. 'š' or 'sh' [ʃ] appears only in non-native words, often pronounced 's', although some educated speakers make a distinction between e.g. šakki 'chess' and sakki 'a gang (of people)'. The orthography also includes the letters 'z' [z] and 'ž' or 'zh' [ʒ], although their use is marginal, and they have 13:58:03 no true phonemic status. For example, azeri and džonkki may be pronounced aseri and tsonkki without fear of confusion." 13:58:59 According to that, we can barely distinguish s and f. 13:59:26 s/f is easy for me 13:59:37 then again the finnish recommendation is to pronounce all loan words as originally spoken, which i don't think all languages enforce 13:59:48 AnMaster: kind of a useless comment 13:59:54 oklofok, yes 14:00:01 maybe that was your point 14:00:17 well partly 14:00:21 well,* 14:03:18 Incidentally, I blame this fricative-poorness for the fact that learning Russian pronunciation was so difficult; they've got something like seven s-style characters: с, ц, ч, ш, щ, х and ж. 14:03:41 heh 14:04:41 Especially the ш, щ difference was something really silly. Wikipedia explains the first as "sh in shut (voiceless retroflex fricative)" and the second as "similar to the "sh" in sheer (but with a slightly more "y" sound) 14:04:41 (sometimes followed by 14:04:41 a sound similar to the "ch" in chip (closer to a "y" and "ch" sound at the same time) such as the phrase "Welsh cheese") (voiceless alveolo-palatal fricative)" 14:05:45 fizzie, isn't the sh in shut and sheer the same? 14:06:02 To me it is. But note that it's "with a slightly more 'y' sound". 14:06:24 err, sh with y? I can't even imagine a mix of them 14:07:37 It just sounded (in the samples we listened to) "sharper" in an unidentifiably vague way, to me. 14:11:00 Actually that щ, being the voiceless alveolo-palatal fricative, should be pronounced pretty much exactly like your word 'kjol'. So that's what it sounds like. Now you just need to imagine the same thing but "with a slightly less 'y' sound" to understand ш. 14:16:11 i don't know about the "more 'y' sound" thing, but the sh's sound different to me because of the following vowel 14:17:38 but dunno. 14:20:11 Oh, and then Russian has the ы character, pronounced /ɨ/, which we completely lack; that sounded pretty strange too. It's almost midway between very "normal" i and u. (Swedish example words: is 'ice', bot 'penance' -- apparently you only have our "u" vowel as a long one, the short variant is a bit different.) 14:20:46 eh? 14:20:55 where is u in bot? 14:21:11 or do you call the o sound "u" suddenly? 14:21:18 because he's talking to me 14:21:34 and explained what he meant by swedish examples so you'd understand too 14:22:24 (also the finnish vowels are better as universal vowels, since they are unambiguous, unlike yours) 14:22:28 hm so it is between a long "i" and a long "o"? 14:22:48 apparently. 14:23:02 can't say i see how that would go, but i suck at vowels 14:23:18 they are mostly just a big mess to me 14:23:59 AnMaster: Yes, and according to ickypedia it's also found in Swedish: in the word bi ('bee') "in dialects in Närke and Bohuslän and in sociolects in Stockholm and Gothenburg". 14:24:32 Sociolect is a funny term. 14:24:47 fizzie, ah that iiiii 14:25:11 fizzie, The i in Närke is different from the i in Bohuslän 14:25:23 hmm, i may know it too, but would have to hear it 14:25:26 but you need to be from either Närke or Bohuslän to hear the difference. Most Swedes don't 14:25:34 oklofok: I think someone compared it to a drunk man speaking. 14:25:39 * AnMaster speaks with a slight hint of närkinska 14:25:59 fizzie: then it's probably what i'm thinkin of 14:26:01 *g 14:26:24 maybe i should take those phonetics lessons from psygnisfive at some point 14:27:24 I'm sure he'd be more than happy to give you some "lessons", yes. 14:27:43 ;;;;) 14:27:54 yeah that wasn't very funny 14:28:38 with actual linguistics i wouldn't be as afraid, since he's probably more interested in that than sex 14:28:49 but i don't think he's that interested in phonetics 14:28:52 "grep -i 'psygnisfive' * | grep -i oklopol" was funny reading. 14:29:04 :D 14:29:05 paste 14:30:01 http://pastie.org/private/dbfuik4fr6bshmy0r4kf9a is a very short snippet. 14:30:10 He just sounds so excited in that, is all. 14:30:43 i love the beginning 14:30:59 "look at me oklopol!" 14:31:50 i'm actually doing esolang related stuff atm btw :o 14:32:10 finally my life is back on track 14:33:18 Ooh, that reminds me, I have a seminar course presentation tomorrow, I should be doing some slides for it. And there's a "design some homework for the other students" thing too. 14:33:32 (I'm not sure why it reminds me; the seminar is not esolang-related.) 14:34:47 "design some homework for the other students" <<< like on a course? 14:35:10 we once had "make a question to be put on the exam" in high school 14:35:37 Yes. It's this seminar course; every presentationer has to do a "does not take more than 30 minutes to answer" homework assignment, present it to the other students, and grade them. 14:36:04 Come to think of it, I should also actually *do* the last guy's homework thing. 14:36:06 so O(n) homework 14:36:23 hopefully it's not a big seminar 14:36:33 It's not; there's something like 14-16 of us. 14:37:03 12, actually. 14:37:29 seminar about what? can you somehow integrate a stack language for creating fractals in the exercise? 14:37:51 I don't think I can, as it's about noise-robust speech recognition. 14:39:24 I don't think I mentioned, but my conference paper (vaguely on the same topics) was accepted to this SPECOM conference (in St. Petersburg this summer), so now I'll get a published paper. I feel like a real science-man! (Or, as we in the business call it, a scientsist.) 14:39:43 cool, you're practically famous! 14:40:07 It does lead to a well-defined Erdös number, but that's about it as far as benefits go. 14:41:09 and what would that number be (in value)? 14:41:39 A six, through the co-author path: fizzie - Kurimo, Mikko - Oja, Erkki - Cooper, Leon N. - Zeitouni, Ofer - Diaconis, Persi W. - Erdös, Paul. 14:41:58 I have not verified that this is the shortest path, so 6 is more of an upper bound really. 14:42:23 :D 14:42:38 is there a good database of who's worked with whom? 14:43:25 There's the MathSciNet database of math-related papers. 14:43:51 http://www.ams.org/mathscinet/collaborationDistance.html if you happen to be in a network of a subscribing institution. 14:44:13 i am not 14:44:18 There's a "Use Erdös" button directly next to the "another author" text field, so it's pretty obvious what it is for. 14:44:40 :D 14:44:49 But it's only math stuff, so I had to do some creative guessing to find the beginning of that path. 14:45:43 * oklofok looked up oerjan 14:45:48 he beat you. 14:45:56 It's very likely. 14:46:09 6 is not an especially low number. 14:49:43 Should be an ő there in Erdős instead of ö, but I didn't bother figuring out how to get that character here. 14:53:34 and ended up both doing it wrong *and* figuring it out 14:55:09 I had it written correctly in earlier irclogs, so when I grepped for that value, I got a copy-pasteable ő for free. 15:50:10 -!- Judofyr has quit (Remote closed the connection). 15:53:07 AnMaster: djinn and jean sound almost the same, the difference is only in the vowel sound 15:54:04 -!- Hiato has joined. 15:54:41 i've heard you speak perfect english, Deewiant, is this true 15:55:00 Of course 15:55:20 mm that's nice 15:58:13 I've heard that you are also in all other senses the singular example of perfection in this world, Deewiant; is this true too? 15:58:24 Of course 15:58:45 hey! i really did hear that :P 15:59:29 and you will never know where 15:59:43 mwahahah 15:59:45 * oklofok leaves 16:05:12 the gu 16:06:53 Stupid enter key... the hungarians translate the english 'j' as dzs, so the djin/jean thing makes sense to me 16:07:20 Well, an alternative spelling for 'djinn' is 'jinn' :-P 16:07:26 who put return next to backspace, and are they alive so I can stab them? 16:07:26 The Gungans. 16:07:46 Just move backspace elsewhere if it bothers you 16:08:05 On certain laptop keyboards, it's easy to hit enter instead of ' when doing contractions. 16:10:05 Deewiant, well yes, but that is a rather large difference 16:10:41 AnMaster: Yes, I never claimed that they're supposed to sound the same, the whole point was that they'd differ in the length of the vowel only 16:10:47 bbl 16:10:54 And that was a failed example because they differ in the vowel itself, not only its length 17:12:46 Deewiant, ah yes 17:38:26 05:34:37 btw in English I find the difference between joke/yoke/yolk hard. I mean to me they sound almost the same 17:38:33 hrm, that's a pet peeve of mine… 17:38:41 ehird, eh? 17:38:41 yolk/yoke I can understand 17:38:46 -!- FireFly has joined. 17:38:47 but in english y and j are very separat 17:38:47 e 17:38:59 j is sorta like... dg 17:39:02 ehird, well it is hard if you don't have one of the sounds in your own language 17:39:06 yes 17:39:29 ehird, and Swedish doesn't have /dʒ/ 17:39:49 AnMaster: But you've got /tʃ/, no? 17:39:59 Hmm, maybe you don't actually 17:40:01 Deewiant, *looks up what that one is* 17:40:12 Swedish is such a soft language :-P 17:40:18 they do, and the "d" is audible too, and they have "d" 17:40:19 No, you don't have that 17:40:22 hmm 17:40:36 i don't actually see that character correctly 17:40:43 so may be wrong yes 17:41:08 AnMaster: http://www.youtube.com/watch?v=WxwrVw6Vsjw 17:41:30 Deewiant, as "ch" in "chip" according to wikipedia? We have it in non-native words. Such as "chips" (the food stuff) 17:41:33 AnMaster: My attempt to say yolk and joke as clearly as possible: http://filebin.ca/bxjget/yolkyjokey.ogg 17:41:38 AnMaster: Yep 17:41:41 May help :P. (May amuse others.) 17:41:47 Deewiant, though most people say it a bit differently in Swedish 17:41:58 something like "schips" 17:42:00 AnMaster: Yes, I'd expect so 17:42:01 if you see what I mean 17:42:08 Because it's not a Swedish sound. 17:42:11 indeed 17:42:28 what's the "tjock" sound? 17:43:20 ehird, well there is a very slight difference that i heard the second time I listened to it. However some of the times I'm not sure which you said. 17:43:23 Plain /tjok/ or something, I think 17:43:30 ohh. 17:43:36 AnMaster: Wow. Swedish ears are broken :P 17:43:43 Have a transcript: 17:43:43 Deewiant, depends a bit on dialect 17:44:18 (I think) 17:44:23 AnMaster: yolk, yolk, joke, joke, joke, joke, blah blah blah joke, joke, joke, JOKE, yolk, yolk, YOLK 17:44:39 or maybe sociolect (spelling?) 17:45:09 ehird: That JOKE sounded like CHOKE to me 17:45:17 Too aspirated 17:45:20 Deewiant: Yeah I was trying to emphasize the J 17:45:23 didn't work too well 17:47:56 ehird, I doubt you could hear the difference between the various dialectal "i" variations in Sweden. Especially between Närkinska and Bohuslänska, I even know a lot of Swedes that think they are the same (they are not). Alas I can't record it to help you compare since I can't speak Bohusländska. 17:48:09 I doubt so too 17:48:13 (though I can manage Närkinska like a native) 17:48:17 Fuck, I have troubles with ü. 17:48:29 ü? 17:48:30 ehird, as in "uber"? 17:48:38 Oh, /y/. 17:48:44 yes it is y-ish 17:48:47 AnMaster: Well, I can handle that. But a lot of occurances are hard to make out for me. 17:48:47 very easy for me 17:49:02 and I don't even know German. I took French classes instead! 17:49:19 shi shi shi shi, shi shi shi, shi shi shi shi shi 17:49:20 ehird, Swedish has that sound. Though we spell it using "y" 17:49:25 not a very common sound though 17:49:35 It's not quite the same actually 17:49:37 (For the person who lives under a rock: http://en.wikipedia.org/wiki/Lion-Eating_Poet_in_the_Stone_Den) 17:49:37 the "shi"'s shouldn't be too hard to distinguish 17:49:40 I thought they sounded a bit different 17:49:49 Deewiant, oh? They are very close though 17:50:02 (unless there are phonetic differences on top of the tones) 17:50:28 (and i don't think there are) 17:50:36 Or hmm, I'm not sure, http://en.wikipedia.org/wiki/German_phonology isn't explicit about which vowel maps to which letter 17:50:55 Anyhoo, Swedish y is /ʏ/ and Finnish y is /y/ 17:51:07 btw I know someone from Germany who lived in Sweden since the 1950s or so and still have troubles with the Swedish word "sju" (seven) 17:51:11 http://en.wikipedia.org/wiki/Finnish_phonology says German ü is /y/ but I'm not sure I agree 17:51:23 don't know what the IPA is for it 17:51:44 AnMaster: /ɧʏ/ I think 17:51:59 Deewiant, that looks like a blur in this font. 17:52:08 James while John had^N a better effect on the teacher. 17:52:12 http://en.wikipedia.org/wiki/Voiceless_palatal-velar_fricative - took me a few months to learn this one to an acceptable level when I first learned Swedish 17:52:15 s/N/n/ 17:52:28 Deewiant, oh that is easy 17:52:29 for me 17:52:30 ;P 17:52:45 :D 17:52:51 Well yeah, you've used it daily for 20 years :-P 17:53:40 Deewiant, what I remember was a problem is that it can be spelled in lots of way. That was a major problem when I was around 6 or 7 or so 17:54:02 Deewiant: is that the "sju" sound? 17:54:04 Sj? Can it? 17:54:10 oklofok: I'm fairly sure it is 17:54:14 right 17:54:25 i think i know it well enough to fool most finns, probably not swedes tho 17:54:27 And yes, it is, the other one I thought it was is the same one 17:54:36 i wanna learn 17:54:38 oklofok: Yeah, I guess I'm that way too 17:54:39 then again many finns don't know it exists. 17:54:39 ITHKUIL PRONOUNCIATION 17:54:47 and then KILL MYSELF out of HORROR 17:54:53 err 17:55:08 Deewiant, that page you linked said "sje-sound" 17:55:10 ehird: Start with Czech 17:55:17 sure that is the one in sju? 17:56:03 isn't it the one in "stjärna" or "tjära"? 17:56:06 AnMaster: e.g. sjok 17:56:26 Deewiant, what is the sound in stjärna and tjära called then? 17:56:44 AnMaster: I think that's two sounds 17:56:53 Deewiant, "stj"? 17:56:54 ...yeah 17:57:13 AnMaster: No, the "tj" part 17:57:24 AnMaster: I mean, the "s" is obviously separate :-P 17:57:25 That's two different sounds? 17:57:28 well yes 17:57:50 * AnMaster considers. 17:58:02 I want a language based on the lambda calculus and horn clauses or something. 17:58:03 AnMaster: ɕ is the sound at the start of "kjol" 17:58:10 But that's a bit different IMO? 17:58:20 ok they are slightly different yes, but rather close 17:58:29 Like, it's all anonymous horn clauses. 17:58:36 Natural laanguge. 17:58:37 That is. 17:58:38 Conlang. 17:58:44 That's the kind of tj in tjära 17:59:01 The kj in kjol 17:59:05 just don't mix up tjära with kära! 17:59:14 :D 17:59:33 That's easy, they're very different :-P 17:59:33 I mean it could be awfully embarrassing 17:59:51 "Jag har min kära i burken där" 18:00:04 :-D 18:00:04 Deewiant, actually no. Or it depends on dialect. There is a difference yes. But not that large. 18:00:12 FireFly, hehe 18:00:27 AnMaster: Well, to me it's an obvious difference. 18:00:47 AnMaster: It's like the difference between 'j' and 'ch'. (Or 'j' and 'y'? :-P) 18:01:13 Deewiant, tch and k? 18:01:14 how's "tjära" pronounced? 18:01:46 also it is rather easy to say something in the middle that could be interpreted as either 18:02:19 Deewiant, from what I heard of "finlandssvenska" the difference is way larger in that 18:02:42 Well yeah, because Finns can't pronounce stuff correctly. :-P 18:02:43 finlandssvenska is an unlanguage 18:02:56 Like unlambda 18:03:00 It could be that I'm still thinking of 'tjära' incorrectly. 18:03:02 yes, exactly 18:03:42 Deewiant, I remember some animated movies based on Tove Janson's books that I watched when I was small. They spoke "finlandssvenska" there. And there the difference was much larger yes 18:04:35 FireFly, btw can you hear a difference between the "i" sound in Närkinska and the "i" sound in Bohusländska? 18:04:40 i don't see why any finnish person would want to learn finlandssvenska, maybe we should have finlandsenglish too and just accept the fact people don't like to learn languages well 18:05:00 * FireFly is no good at dialects : 18:05:05 * FireFly is no good at dialects :/ 18:05:09 Eh 18:05:13 mhm 18:05:13 Bleh 18:05:18 [18:05:03] [KVS] Warning: Stray backslash at the end of the script 18:05:29 FireFly, "KVS"? 18:05:40 KVIrc 18:05:48 never heard of it before 18:05:55 it's a shit kde client 18:06:08 * FireFly likes it 18:06:32 05:47:02 * oklofok suddenly symphatizes with ehird 18:06:34 <3 18:06:36 let's get married. 18:07:03 probably what ehird said... since the package description includes the word "advanced". It is like you should be careful of any country known as the "Democratic republic of " 18:07:18 those are probably not democracies 18:07:29 doesn't emacs claim to be advanced 18:07:35 :) 18:07:58 Linux is more 'advanced' than Windows 18:08:02 Beware 18:08:06 ehird, that is different. I was talking about the one line descriptions in the package manager. And for emacs that is: Description: The extensible, customizable, self-documenting real-time display editor 18:08:13 AnMaster: democratic republic of the united states of america 18:08:14 which sound just as bad 18:08:28 REAL-TIME DISPLAY EDITOR, AnMaster 18:08:29 that's amazing 18:08:40 you can edit and see changes as soon as your screen repaints! 18:08:46 ehird, yeah package maintainer must be an idiot 18:08:47 you can see lines you're not even editing for context! 18:08:50 this emacs is *wild* 18:08:54 AnMaster: gnu.org describes it as that 18:08:59 oh my 18:09:03 blame rms being a 70s hobo 18:09:10 boho 18:09:21 i'm going to watch stephen fry's hilarious gnu video now 18:09:21 ehird, isn't the full name "United States of America"? 18:09:27 and cringe 18:09:30 AnMaster: it was a joke 18:09:33 ah 18:09:49 :D 18:10:01 ehird, I would have guessed that if it had been before Obama became president. Now it was a bit more confusing 18:10:27 yeah obama shits rainbows and magic. 18:10:40 no. But do you prefer Obama or Bush? 18:11:02 family guy said bush is pretty stupid 18:11:05 do you want a bath of dung or a bath of vomit or a bath of urine CHOOSE QUICKLY 18:11:22 then again south park said obama is a jewel thief. 18:11:32 i don't know what to believe. 18:11:42 bushama bin laden 18:11:52 ^ITHE TRUTH IS OUT^I 18:11:55 ehird, if I were a pig: the first. But since I'm a human the last one + whatever they use to clean water on ISS. 18:12:02 i'd probably go for urine 18:12:25 then number one, vomit probably last 18:13:48 http://www.kvirc.net/ <-- wth at the web site design. The thing at the top look like from some fantasy game... 18:13:58 what on earth does it has to do with irc? 18:14:12 AnMaster: a bunch of irc clients are like that 18:14:14 dunno why 18:14:20 probably because of irc's LEET HAXOR sort of rep. 18:14:28 heh 18:14:32 ehird, what other ones? 18:14:38 crap ones 18:15:17 17:15 CTCP-reply VERSION from Robdgreat : Microsoft Internet Explorer v3.0 18:15:19 AIEEEEEEEEEEE 18:15:24 http://www.irssi.org/ <-- "irssi - the client of the future" hahaha. 18:15:25 :D 18:15:31 ehird, you would like that! 18:15:46 it has a graphical installer on windows it seems! 18:15:49 oh the irony 18:16:10 17:15 CTCP-reply ERRMSG from clog : unknown CTCP: VERSION 18:16:15 irssi the best 18:16:32 <3 18:16:35 limechat<3 18:16:36 -!- ais523 has joined. 18:16:40 lament, well it is a good client, but I don't like it personally 18:16:49 hi ais523 18:16:52 lament, for example mixing all server messages in one tab 18:16:53 hi ais523 18:16:56 hi 18:17:08 too many irssis here 18:17:10 AnMaster: yeah, but it's the best 18:17:22 lament, or not handling more than +vho properly (many networks use +a and +q too, including some that I need) 18:17:35 oh, you're the fruit that's in 4000 channels 18:17:41 i guess you have special needs then 18:17:52 lament, ... 561 atm... 18:17:55 far from 4000 18:18:01 IS A LOT 18:18:05 and i guess irssi would kinda suck for switching between them 18:18:10 yes, I use IE 3 for irc 18:18:14 lament: 'special needs' 18:18:16 I use ERC in fact 18:18:43 but if you really don't like something in irssi, you should be able to just fix it 18:18:46 http://www.emacswiki.org/emacs/ERC 18:18:48 :) 18:18:54 as far as i understand it has very good code 18:19:51 lament, there are some major design issues that you hit on a lot of other servers. It works fine on freenode and classical networks, But it has trouble dealing with networks using ircds like unrealircd, inspircd and so on 18:20:32 -!- Hiato has quit (Connection timed out). 18:20:49 lament, it can't support more prefixes than +%@ and one additional one 18:20:55 I'm on a network with two additional ones 18:21:10 all listed in the 005 numeric 18:21:12 of course 18:21:29 PREFIX=(qaohv)~&@%+ 18:22:39 i'm sure the network has perfectly valid reasons to need all of those 18:23:17 lament, ? Is that your defense for why irssi should be hard coded to only support one extra? 18:23:34 lament's right you know. 18:24:06 ehird, well not my problem, for an end user it should just work whatever network I connect to. Also a lot of networks have that set of prefixes 18:24:45 sadly unrealircd is the most common ircd (source: http://searchirc.com/ircd-versions), and it has those prefixes 18:25:24 i guess irssi does suck then :( 18:25:25 personally I prefer InspIRCd. For which this is configurable 18:25:56 lament, the irssi devs refuses to fix the issue. 18:26:02 makes sense 18:26:18 lament, I even know someone (a good programmer) who wrote a patch to do it, and it got rejected. 18:26:20 is their argument similar to mine? 18:26:45 "The network has good reasons to need prefixes, so irssi shoudln't implement them"? 18:27:15 pikhq, I think lament was being ironic there. Anyway fact is most networks out there use them. Not all but a clear majority 18:27:33 AnMaster: s/ironic/sarcastic/ 18:27:39 Deewiant, ok. 18:27:54 I wasn't sarcastic. I was ironic. 18:28:17 lament: oh the sarcasm 18:28:37 oh the irony! 18:42:21 -!- Hiato has joined. 18:44:59 Deewiant, I just read about Finlandssvenska on wikipedia. Would you say "anden" (en:~the spirit) and "anden" (en:the duck) is pronounced the same way or differently? 18:45:45 err not duck exactly. http://sv.wikipedia.org/wiki/%C3%84nder 18:45:47 that 18:46:51 I don't know, I've never heard those pronounced :-P 18:47:42 I invented a new fractal. 18:47:44 http://sv.wikipedia.org/wiki/Finlandssvenska says they are the same in Finlandssvenska. They are almost the same in Swedish but not exactly. 18:47:51 Well 18:47:53 sort of fractal 18:48:18 Deewiant, wp says the difference is http://sv.wikipedia.org/wiki/Tonaccent . There is however no English interwiki link from it. No idea what it is called in English 18:49:44 Specifically, I think it's a 1d fractal after infinity iterations 18:49:50 This bip-bouncer is a bit funny with version replies; if I CTCP myself I get one reply from it, and one reply from each connected client. 18:50:05 (I noticed someone had been versionifying around.) 18:50:11 me 18:50:41 fizzie, do you know about that thing? 18:50:44 AnMaster: Either I can't tell the difference or I've just never heard a case where I could compare. The only examples being from Swedish, Norwegian, and Chinish doesn't help much. :-P 18:52:07 Deewiant, Tomten (en-lit:the father xmas) vs. tomten (en:the area around a free standing house that belongs to the house owner (and includes the area the actual house is built on), forgot the word for it) 18:52:19 they are pronounced differently 18:52:32 AnMaster: I wouldn't know such details. About "tonaccent", http://en.wikipedia.org/wiki/Tone_(linguistics) is probably what you mean. 18:52:39 The latter is fi:tontti btw 18:52:45 Chinese is a typical example of a language that heavily uses that stuff. 18:53:03 AnMaster: And yes, I saw the examples on the page, and my above statement still applies. 18:53:07 fizzie, ah yes that was mentioned on the Swedish page too 18:53:27 AnMaster: http://en.wikipedia.org/wiki/Swedish_phonology#Stress_and_pitch 18:53:42 Ah, formel/formell. Now that's an obvious difference. 18:53:52 Deewiant, that isn't the same as that 18:54:15 I was just about to say that. 18:54:22 Deewiant you know chinese? 18:54:28 oklofok: No, not at all. 18:54:36 oh 18:54:38 i see. 18:54:41 nor do I 18:55:05 oh actually psygnisfive studied at least some of it iirc 18:55:13 AnMaster: Find me a short video or sound bite where they have such a word pair so I can compare 18:55:23 psygnisfive: the shi shi poem, are there phonetic differences in the shi's or just tonal? 18:55:28 Me neither, but a study-mate-sort-of-person has been in China for a year or two now, he talks about the language every now and then. 18:55:39 Deewiant, I could record it, though since I just ate some very sticky nougat it wouldn't be very clear.... 18:55:50 >_< 18:56:09 :P 18:56:09 Deewiant, if you can wait a few minutes I should be able to do it 18:56:27 Deewiant, also what is a "sound bite"? 18:56:51 well you know like taking a really sound bite from a bread, one that definitely gets a piece off 18:56:53 AnMaster: http://www.google.com/search?q=define%3Asound%20bite 18:57:20 yeah that's another definition, but it's much less useful 18:57:45 And much more correct. :-P 18:58:44 yeah right 19:02:15 -!- oerjan has joined. 19:05:50 GOTO CONSIDERED PARMFUL 19:06:08 sil ~ sieve, sill is a type of fish, don't remember the English name for it. 19:06:16 herring, red or otherwise 19:06:20 ah 19:06:33 oerjan: ITYM julesfish 19:06:35 er gules 19:06:44 what is that 19:07:01 never herd of it either 19:07:08 no bell rings on either of them 19:07:27 unless it's a horrible misspelling of lutefisk 19:07:35 even I have no idea what ehird's talking about 19:07:42 ………… 19:07:44 Dude. 19:07:48 Rodger's puzzles? 19:07:50 Remember? 19:07:52 2007? 19:07:54 no. 19:07:55 GulesFish, Basil.tif? 19:08:03 Duuudes whattt 19:08:07 that was eons ago 19:08:18 RodgerTheGreat had a rather diabolical series of puzzles up on his website; GulesFish was one of them. 19:08:19 yes. 19:08:20 yes it was 19:08:24 what? 19:08:27 pikhq: what was basils' solution btw 19:08:29 AnMaster: before your time 19:08:30 move along 19:08:50 ehird: Take an image editor and play around with everything. I'm sure you'll find it eventually. 19:08:55 i remember gulesfish 19:08:59 pikhq: the site is dead. 19:09:07 oerjan, love iwc today 19:09:07 And you didn't keep Basil.tif? 19:09:32 That was on the other machine; which died a peaceful death a few days ago. 19:09:42 how did it die? 19:09:45 hm google actually found some of the logs for that 19:09:48 Alright, fine. 19:10:05 computers can die pieceful deaths? 19:10:09 ... 19:10:11 pieceful :D 19:10:12 ais523: the motherboard is a shitty cheap one (I mean really cheap); it just stopped booting. It'd whirr, but no beep from the BIOS. 19:10:21 AnMaster: ah, but do you have a control sample? maybe your love was a measure error. 19:10:29 Basil.tif had some text in the picture that was colored something like #FFFFFE against an #FFFFFF background. 19:10:32 Parental overlords gave it to the local computer shop; they said the cost of replacing all the components would be the cost of a new PC. 19:10:33 that's what you get for starting to write a sentence, taking a sip of coke, and emptying the phonetic buffer 19:10:42 pikhq: hahah 19:10:43 oerjan, hehe 19:10:58 oklofok: i say they can, very easily 19:11:00 It also had a lot of weird stuff hidden in the .tif that was meant to throw you off. 19:11:23 *measuring 19:11:23 ehird: does the hard drive still work? 19:11:30 you should copy the data off it 19:11:30 ais523: probably 19:11:36 there's nothing there of value 19:11:39 hmm, actually i guess even in humans a "peaceful death" doesn't mean a slow fade into inexistance. 19:11:43 Consider that I've rarely touched that machine since 2006 19:11:53 argh accelerating channel 19:12:02 you may find that there's something there of value later 19:12:05 and nostalgia's always fun 19:12:15 Eventually it will rival #wikipedia or #gentoo in chat volume. 19:12:17 Yes, well, I was rather an idiot in 2006; the nostalgia is mostly cringes. 19:12:28 err 19:12:34 >:D 19:12:34 * AnMaster tries to remember how to record 19:12:42 things haven't changed much in 3 years eh 19:12:43 a peaceful death of a computer is where it slowly but surely gets less and less working (it was freezing up and messing up the display a lot a few days before) and then just stops :P 19:12:44 arecord --obscure-commandline 19:12:49 sigh 19:12:50 lament: Fuck you :) 19:12:51 AnMaster: ttyrec file.rec -e command 19:12:57 ais523, sound... 19:12:59 oh 19:13:05 recording a terminal session's more fun 19:13:08 ais523: nostalgia isn't what it used to be 19:13:19 oerjan: that joke's made far too often 19:13:22 it's a cliche here in the UK 19:13:29 ais523, useless for helping Deewiant understand how tomten and tomten are different in Swedish 19:13:37 ais523: don't complain about being the straight man 19:13:39 My nostalgia is mostly for things that never happened; or will happen; or are happening presently—but never that happen to me. 19:13:42 I'm rather bizarre. 19:14:09 Sox's "rec" tool is usually easier. Just "rec test.wav"; around here the defaults seem sensible enough (48 kHz, stereo, 16-bit; rather overkill but works). 19:14:20 ais523: but, you mean that joke was better before? *ducks* 19:14:21 fizzie, don't have "sox" 19:14:34 install it 19:14:39 sox is a nice tool 19:14:47 mhm 19:16:09 well, I use timidity to generate sound files, although admittedly that's doing something completely different 19:16:19 wth, *goes to kmix* 19:16:46 Audacity also has a record-it button, if you happen to have it and don't want to fiddle with a command line. 19:17:12 ais523: what's up with your trend of "use this instead; it's in the same category as what you want to do but doesn't actually do it" 19:17:51 ehird: I don't want to answer that question, is it OK if I answer an unrelated but completely different question instead? 19:17:57 *related 19:17:59 ehird: ais523 may be becoming a true software engineer 19:18:00 Deewiant, what formats can you handle? 19:18:02 flac? ogg? 19:18:05 AnMaster: Anything. 19:18:07 ais523: Why don't you ask a question instead? It's the same type of thing, but different. 19:18:12 Deewiant, flac in ogg container then 19:18:12 :D 19:18:14 Deewiant: Some might take that as a challenge. 19:18:26 fizzie, yes me! 19:18:30 or even *shiver* a politician 19:18:34 Deewiant: Do you have the 3gpp AMR-WB/NB codecs both? 19:18:34 FLAC in OGG is simple. 19:18:37 Hardly a challenge. 19:18:38 I challenge you to encode it in a 1-bit .wav 19:18:41 ehird, oh 19:18:45 it's not even uncommon 19:18:50 in theory, even with a 1-bit encoding you can get the music to sound fine if the frequency's high enough 19:18:55 Deewiant: Do you have the 3gpp AMR-WB/NB codecs both? <-- I don't have them 19:18:57 fizzie: Beats me. 19:19:01 afaik 19:19:03 due to the slew rate of the speakerse 19:19:05 *speakers 19:19:07 i can play all files that start playing when i double-click them 19:19:14 what about raw? 19:19:23 $ file tone.raw 19:19:23 tone.raw: RIFF (little-endian) data, WAVE audio, Microsoft PCM, 16 bit, stereo 48000 Hz 19:19:25 is that ok? 19:19:37 just arecord -f dat 19:19:39 Also in practice, many A/D converters are technically speaking 1-bit, it's just that they have a high enough frequency. And then some stuff to get multi-bit values. 19:19:46 Those weird speech-encoding codecs I probably don't have, actually. 19:20:47 AnMaster: Isn't that a pain, since knowing the kind of data within is impossible, it can only be guessed? 19:20:54 AnMaster: You'd make me write the WAV headers myself :-P 19:20:58 Deewiant, heh 19:21:15 Deewiant: You could write some pretty reliable heuristics, though. 19:21:19 Deewiant, I just did flac --best tone.raw and it guessed it perfectly 19:21:27 so I doubt you would have any issues. 19:21:34 Oh, tools guess that. 19:21:48 anyway: http://omploader.org/vMWU3Nw 19:21:55 I assumed that they'd fail since it's just random bytes as far as they know 19:22:19 I assumed (given a .raw extension) that they'd just use some default values. 19:22:24 Deewiant, translation: "Do you believe in father xmas? The house is on the " 19:22:27 It's nice if they actually intelligently guess. 19:22:31 AnMaster, if it's in a RIFF file, it's not raw. It has a header specifying the audio coding, the bits per sample, the channels, and the sampling frequency... 19:22:41 pikhq, ah interesting 19:22:49 well I don't really know this stuff 19:22:50 It is, in fact, a WAV file. 19:22:51 ;) 19:22:54 interesting 19:23:30 Safari plays it; so it's probably something common 19:23:33 Yes, if 'file' can dig up the information, it definitely isn't raw data. But a more audio-oriented tool could actually guess. 19:23:40 pikhq, ah I should have used -t raw 19:23:45 -t, --file-type TYPE file type (voc, wav, raw or au) 19:23:53 AnMaster: The main difference I can detect is the length of the pause before 'ten' 19:24:06 Or it's not really a pause but I forget what it's properly called 19:24:23 Deewiant, yes thats it. And I'm trying to make it extra large in that example 19:24:29 usually the difference is way smaller 19:25:06 Deewiant: It's a stop. 19:25:15 AnMaster: Can you make one where you don't exaggerate it? I want to see if I can still notice it 19:25:27 sure. And true raw this time? 19:26:02 Preferably not, since Firefox was able to play that without me having to download it 19:26:06 Deewiant: It's also a 'plosive', if you want to sound like a more classier guy. 19:26:08 what? 19:26:18 I never had firefox play in the browser 19:26:23 since when did it do that? 19:26:25 fizzie: Plosive was actually what I was thinking of, cheers. 19:26:50 oh even mplayer fails on raw 19:26:52 AnMaster: Either it's because I have a different version or it's forwarding it to the mplayer plugin or whatever 19:26:53 so I guess not raw 19:26:57 AnMaster: cat it to /dev/audio 19:27:05 IIRC, it uses raw 19:27:23 ais523, that is noice 19:27:24 noise* 19:27:46 well, clearly you have the wrong bitwidth or rate or something 19:27:53 probably 19:28:03 ais523: /dev/audio also uses mu-Law encoding of samples, not simple linear PCM. 19:28:17 ais523: /dev/dsp defaults to 8 bits per sample and some absurdly low frequency, and /dev/audio uses mu-Law. 19:28:18 ah, I didn't know that 19:28:31 and /dev/dsp? I didn't know of that one 19:28:48 /dev/dsp does 8 kHz, 8-bit single-channel by default, I think. 19:28:58 Yeah, that sounds right. 19:29:24 lets see 19:29:44 http://omploader.org/vMWU3YQ 19:29:48 flac this time 19:29:57 That goes to mplayer 19:30:18 Deewiant, for me both show download dialogs 19:30:43 The other one shows nothing but plays on every refresh 19:30:48 /dev/audio does µ-law encoding because that's what Sun used, and I guess that's where it's from, or at least part of the line of descent. 19:30:56 heh 19:31:06 Firefox itself won't play anything, so the behaviour depends on the plugins. 19:31:14 ah 19:31:36 At work there's some sort of Gnome totem (media player) plugin installed, and it almost never does anything useful. 19:31:38 fizzie: Are you sure 3.1 (since 3.5) won't? 19:31:42 But it often tries. 19:31:49 They have