←2008-04 2008-05 2008-06→ ↑2008 ↑all
00:00:02 <revcompgeek> :P
00:00:05 * olsner is in an extraordinarily helpful mood today
00:00:06 <revcompgeek> you are so helpful
00:02:53 -!- Corun has quit ("This computer has gone to sleep").
00:05:44 -!- GreaseMonkey has joined.
00:10:03 <revcompgeek> would it be worthwile to make up an esoteric assembly language that esoteric compilers could target?
00:10:27 <sauxdado> sure. How about OISC?
00:11:05 <sauxdado> or MIX?
00:11:11 <revcompgeek> i don't see how to write any compilers in that in a reasonable amount of time
00:11:17 <revcompgeek> not looked at MIX
00:11:52 <revcompgeek> umm
00:11:57 <revcompgeek> no to MIX
00:12:23 <sauxdado> well, what exactly do you want?
00:12:42 <revcompgeek> a semi-normal assembly like language
00:12:53 <sauxdado> LLVM?
00:12:56 <revcompgeek> that would be easy to target
00:13:04 <sauxdado> C89?
00:13:12 <sauxdado> R5RS?
00:14:36 <revcompgeek> ...
00:15:35 <sauxdado> i just don't understand "semi-normal"
00:16:12 <sauxdado> if you want easy-to-compile-to, why bother with assembly at all? Lisp could be a nice target there. Or C if you're into lower level. Or LLVM if you really do want something assembly-like.
00:16:25 <sauxdado> And if you want esoteric, there's plenty of options, but none of them are "semi-normal", by definition.
00:16:56 <revcompgeek> hmmm
00:17:50 <revcompgeek> i had an idea to have all esoteric compilers target one specific assembly
00:17:59 <revcompgeek> it doesn't seem to feasible now
00:18:45 <sauxdado> LLVM seems like a good choice, although most people prefer to compile to something higher-level
00:18:57 <sauxdado> oh yeah, there's JVM too :)
00:19:05 <revcompgeek> yuck
00:19:09 <revcompgeek> i want something fast
00:19:56 <revcompgeek> i was almost thinking something based on P-code
00:20:07 <revcompgeek> that seems fairly easy to compile too
00:20:13 <revcompgeek> s/too/to/
00:21:09 <sauxdado> so LLVM?
00:21:13 <revcompgeek> I haven't actually written a compiler but i want to for BRZRK
00:21:45 <revcompgeek> so i was wondering what to compile too
00:21:49 <revcompgeek> s/too/to/
00:22:38 <revcompgeek> LLVM looks bad
00:23:20 <sauxdado> why?
00:24:03 <revcompgeek> hmm
00:24:09 <revcompgeek> actually it doesn't look too bad
00:24:35 <revcompgeek> LLVM is higher level than i first thought
00:24:58 <sauxdado> why do you want assembly, anyway?
00:25:34 <revcompgeek> compiling to LISP would actually be fairly easy for BRZRK, but i don't know LISP
00:26:02 <sauxdado> so learn Lisp :)
00:26:17 <revcompgeek> :(
00:27:02 <sauxdado> i don't get it
00:27:07 <sauxdado> the BRZRK page says it's "based on lisp"
00:27:14 <sauxdado> you don't know lisp yet you based a language on it?
00:27:24 <ehird> sauxdado: Happens.
00:27:26 <revcompgeek> i have looked at it and i understand the structure
00:27:36 <revcompgeek> but i don't understand all the quirks
00:27:54 <revcompgeek> variables are quite complicated from what i have looked at
00:28:58 <sauxdado> scheme is pretty sane
00:29:22 <revcompgeek> i might use scheme then
00:34:30 -!- Corun has joined.
00:34:56 -!- Corun has quit (Client Quit).
00:35:39 -!- Corun has joined.
00:50:36 -!- Corun has changed nick to baisy.
00:51:59 -!- baisy has changed nick to Corun.
00:59:56 -!- GreaseMonkey has quit ("Unisex.").
01:25:03 -!- cmeme has quit (leguin.freenode.net irc.freenode.net).
01:27:26 -!- cmeme has joined.
01:30:55 -!- Corun has quit ("This computer has gone to sleep").
01:32:36 -!- cmeme has quit.
01:32:47 -!- cmeme has joined.
01:48:18 -!- evincar has joined.
01:48:54 <evincar> Hello, hello.
01:52:00 <ehird> hi
01:52:23 <evincar> I started an interpreter for Selector yesterday.
01:52:55 <evincar> The only things I have left to add are... BECOME, ESCAPE, GO, MY, PICK, and YOUR.
01:53:00 <evincar> So...the important ones.
01:53:25 <evincar> But it's not hard, per se.
01:53:36 <evincar> Just a bit tedious.
01:53:42 <evincar> Hence I'm taking a break to chat.
01:57:06 <ehird> evincar: Same for me.
01:57:08 <ehird> I will do it eventually
01:57:19 <evincar> It's a fun diversion.
01:57:30 <evincar> I'm working on another spec, with a friend this time.
01:57:53 <evincar> You might call it 'pseudo-deterministic', I think.
01:58:16 <evincar> It's based on old-style text-based RPGs.
02:11:07 -!- cmeme has quit (leguin.freenode.net irc.freenode.net).
02:11:08 -!- lifthrasiir has quit (leguin.freenode.net irc.freenode.net).
02:11:08 -!- Tritonio has quit (leguin.freenode.net irc.freenode.net).
02:11:08 -!- atsampson has quit (leguin.freenode.net irc.freenode.net).
02:11:08 -!- mtve has quit (leguin.freenode.net irc.freenode.net).
02:11:08 -!- pikhq has quit (leguin.freenode.net irc.freenode.net).
02:11:10 -!- dbc has quit (leguin.freenode.net irc.freenode.net).
02:11:11 -!- evincar has quit (leguin.freenode.net irc.freenode.net).
02:11:11 -!- Slereah_ has quit (leguin.freenode.net irc.freenode.net).
02:11:11 -!- GregorR has quit (leguin.freenode.net irc.freenode.net).
02:11:11 -!- AnMaster has quit (leguin.freenode.net irc.freenode.net).
02:11:12 -!- revcompgeek has quit (leguin.freenode.net irc.freenode.net).
02:11:12 -!- Judofyr has quit (leguin.freenode.net irc.freenode.net).
02:11:12 -!- oklopol has quit (leguin.freenode.net irc.freenode.net).
02:11:13 -!- Quendus has quit (leguin.freenode.net irc.freenode.net).
02:11:13 -!- Phenax has quit (leguin.freenode.net irc.freenode.net).
02:11:13 -!- bsmntbombdood has quit (leguin.freenode.net irc.freenode.net).
02:11:15 -!- RodgerTheGreat has quit (leguin.freenode.net irc.freenode.net).
02:11:15 -!- sekhmet has quit (leguin.freenode.net irc.freenode.net).
02:11:16 -!- ehird has quit (leguin.freenode.net irc.freenode.net).
02:11:16 -!- sebbu has quit (leguin.freenode.net irc.freenode.net).
02:11:16 -!- sauxdado has quit (leguin.freenode.net irc.freenode.net).
02:11:16 -!- Sgeo has quit (leguin.freenode.net irc.freenode.net).
02:11:17 -!- olsner has quit (leguin.freenode.net irc.freenode.net).
02:11:17 -!- EgoBot has quit (leguin.freenode.net irc.freenode.net).
02:11:17 -!- SimonRC has quit (leguin.freenode.net irc.freenode.net).
02:11:17 -!- Deformative has quit (leguin.freenode.net irc.freenode.net).
02:11:18 -!- Deewiant has quit (leguin.freenode.net irc.freenode.net).
02:12:07 -!- evincar has joined.
02:12:07 -!- revcompgeek has joined.
02:12:07 -!- Phenax has joined.
02:12:07 -!- Judofyr has joined.
02:12:07 -!- Tritonio has joined.
02:12:07 -!- oklopol has joined.
02:12:07 -!- Sgeo has joined.
02:12:07 -!- olsner has joined.
02:12:07 -!- Slereah_ has joined.
02:12:07 -!- RodgerTheGreat has joined.
02:12:07 -!- sebbu has joined.
02:12:07 -!- pikhq has joined.
02:12:07 -!- Quendus has joined.
02:12:07 -!- atsampson has joined.
02:12:07 -!- GregorR has joined.
02:12:07 -!- EgoBot has joined.
02:12:07 -!- SimonRC has joined.
02:12:07 -!- AnMaster has joined.
02:12:07 -!- bsmntbombdood has joined.
02:12:07 -!- dbc has joined.
02:12:07 -!- Deformative has joined.
02:12:07 -!- sauxdado has joined.
02:12:07 -!- mtve has joined.
02:12:07 -!- sekhmet has joined.
02:12:42 -!- Deewiant has joined.
02:13:19 -!- cmeme has joined.
02:13:19 -!- lifthrasiir has joined.
02:17:24 -!- evincar has quit (Read error: 104 (Connection reset by peer)).
02:18:39 -!- revcompgeek has quit (Read error: 110 (Connection timed out)).
02:54:24 <oklopol> there are seven bits of a delicious matrix
02:54:42 <oklopol> and the result makes a payhouse for a grinfizzle
02:54:44 <oklopol> o
03:45:22 -!- oklopol has quit (Read error: 110 (Connection timed out)).
03:46:35 -!- GreaseMonkey has joined.
03:59:33 -!- revcompgeek has joined.
04:01:09 -!- revcompgeek has quit (Client Quit).
05:21:43 -!- Judofyr has quit (Read error: 110 (Connection timed out)).
06:44:01 -!- oerjan has joined.
07:13:42 -!- oerjan has quit ("leaving").
07:25:40 -!- Sgeo has quit (Read error: 110 (Connection timed out)).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
09:08:16 -!- Tritonio_ has joined.
09:09:23 -!- Tritonio has quit (Read error: 110 (Connection timed out)).
09:20:36 -!- Iskr has joined.
09:46:10 -!- Tritonio_ has quit (Remote closed the connection).
10:39:06 -!- Tritonio has joined.
10:53:36 -!- GreaseMonkey has quit ("Unisex.").
11:46:34 -!- Judofyr has joined.
11:47:40 -!- theunixgeek has joined.
11:48:14 -!- Corun has joined.
11:48:16 <theunixgeek> hi, is this channel for esoteric programming languages?
11:49:29 <Iskr> no it is for esoteric magic
11:50:30 <theunixgeek> oh
11:51:00 <Slereah_> Oh you.
11:51:15 <Slereah_> Yes, yes it is for programming.
11:51:20 <theunixgeek> oh
11:51:22 <theunixgeek> ok :P
11:51:33 <theunixgeek> anyone know of the FALSE programming language?
11:57:50 -!- theunixgeek has left (?).
12:04:15 <Slereah_> Heh.
12:22:38 <olsner> what, is this a *programming* channel?
12:22:48 * olsner goes look for the esoteric magic channel
12:23:16 <olsner> *looking
12:26:32 <Slereah_> olsner : http://www.greyschool.com/
12:26:51 <Slereah_> "* Technomagick 100: Internet Safety "
12:26:57 <Slereah_> "Class Description: As the world of computers and the Internet grows, more and more threats find ways to disrupt our lives. Here at Grey School, we want to help you learn to defend yourself from these threats. Technomagick 100 will teach you a little about the structure of computers, the history of the Internet, and where the dangers are (and how to avoid them!)"
13:01:54 -!- Corun has quit ("This computer has gone to sleep").
13:31:41 -!- Corun has joined.
14:31:42 -!- Corun has quit ("This computer has gone to sleep").
15:04:56 -!- ehird has joined.
15:09:28 -!- ehird_ has joined.
15:09:29 -!- ehird has quit (Read error: 104 (Connection reset by peer)).
15:12:29 -!- ehird_ has quit (Read error: 104 (Connection reset by peer)).
15:18:26 -!- ehird has joined.
15:46:57 <ehird> so, i'm golfing a mini-irc alike
15:47:14 <ehird> it runs over telnet, and you can 'join x', 'part x', 'say x y', 'whois x', 'names x', and 'quit'
15:47:38 <ehird> it's currently around 10 lines but doesnt work fully yet.
16:01:30 -!- Corun has joined.
16:28:25 <Slereah_> But...
16:28:29 <Slereah_> CAN YOU DANCE?
16:36:07 <pikhq> It's snowing in fucking *May*.
16:37:14 -!- Judofyr has quit (Read error: 104 (Connection reset by peer)).
16:37:49 -!- Judofyr has joined.
16:45:35 <ehird> i just did something i never thought possibly - and pikhq and ais523 will hate me for this -
16:45:42 <ehird> but i actually got a vim up that's nicer than emacs
16:46:06 * ehird awaits pikhq's "That's impossible!"
16:47:16 <pikhq> That's not impossible, just very, very improbable.
16:47:23 <ehird> pikhq: But I did it.
16:47:28 <ehird> It is juicy.
16:47:41 <pikhq> Oh well; fortunately for you, using Vim is not a sin in the Church of Emacs.
16:47:47 <ehird> My hands are no longer in an eternal game of twister!
16:47:56 <ehird> pikhq: Hey, I can use both. :D
16:48:18 <ehird> But I use proprietary software (in fact, one of my favourite editors is proprietary) so I'm a sinner anyway
16:48:36 <pikhq> I have two proprietary programs on hear. . .
16:48:44 <pikhq> Nvidia driver and Flash plugin.
16:48:57 <ehird> pikhq: 'hear'
16:49:02 <ehird> and my main OS is proprietary ;-)
16:49:18 <ehird> I love open source software. I just love proprietary software too.
16:49:34 <pikhq> I'm drinking coffee as we speak.
16:49:53 <ehird> pikhq: proprietary coffee?
16:51:56 <pikhq> Free coffee, of course.
16:51:57 -!- Judofyr has quit (Read error: 104 (Connection reset by peer)).
16:52:16 -!- Judofyr has joined.
16:53:24 <ehird> pikhq: As in ... er... beer?
16:53:33 <pikhq> As in speech.
16:53:42 <ehird> pikhq: Your coffee TALKS?!
16:53:45 * pikhq could also make you some beer that's free as in speech. :p
16:53:53 <pikhq> Hey, it's the LSD I put in it. :p
16:54:04 <ehird> LSD + Coffee ... well, it's unique I guess
16:54:39 * pikhq nods
16:54:45 <pikhq> Helps me deal with the snow.
16:56:14 <ehird> pikhq: So between LSD coffee to deal with snow and rituals about a text editor ...
16:56:22 * ehird backs away slowly
16:56:53 <pikhq> It's part of the Fundamentalist Church of Emacs. :p
16:57:10 <pikhq> We also have a dress code: T-shirt, pants, long hair, and a beard of some sort. ;p
16:57:10 <ehird> pikhq: It's kinda like anti-Christianity: pi may not be used anywhere if not given in full.
16:57:20 * pikhq nods
16:57:46 <ehird> pikhq: This is why GNU Emacs has no circles, anywhere.
16:57:49 <pikhq> Although you *are* allowed to give an infinite series that equals pi.
16:58:16 <ehird> Well, it does have circles -- but you never notice, because it freezes trying to calculate all of pi. So every time Emacs crashes, it was just trying to display a circle.
16:59:26 <pikhq> That only applies to FCE copies.
16:59:58 <pikhq> Other, more uncouth copies of Emacs are satisfied with enough digits of pi to compute the size of the known universe to within a few planck lengths.
17:00:10 <ehird> pikhq: Sheesh.
17:00:14 <ehird> That is horrifying.
17:00:18 <ehird> Let's protest.
17:00:53 * pikhq nods
17:02:50 <ehird> pikhq: I suggest 'HORRIFIC BABY-KILLING MACHINES OF DEATH circles'
17:03:56 * pikhq proposes that Emacs only draw circles using polar coordinates
17:11:51 -!- ais523 has joined.
17:12:03 <ehird> ais523: hello
17:12:08 <ehird> if you've been logreading you will soon banish me
17:12:18 <ais523> hi, and I haven't been logreading
17:12:28 <ais523> I've been standing at a display all day explaining a massive project to people
17:12:36 <ehird> ais523: what, C-INTERCAL?
17:12:37 <ehird> ;-)
17:12:43 <ais523> ehird: no, a group project for University
17:13:11 <ais523> the group voted me a 7.3% bonus on my mark for the project based on the amount of work I'd done, which was good
17:13:31 <ehird> ais523: essentially I switched to vim
17:13:42 <ais523> ehird: I don't mind that at all
17:13:50 <ehird> ais523: I am joking of course ;)
17:14:54 <ehird> ais523: http://golf.shinh.org/p.rb?trivial+encoder i submitted this
17:15:00 <ehird> the answers are suprisingly long
17:17:04 <ais523> ehird: I'm surprised there isn't a Perl entry, I think it's got a command to do that, but I may be wrong
17:17:10 * ais523 looks it up
17:18:39 <ehird> ais523: hmm, cyclexa is pretty untouched
17:18:47 <ais523> yes, it would be
17:18:50 <ais523> I haven't been working on it
17:18:57 <ehird> nor I :-)
17:18:58 <ais523> I've been busy with other things
17:22:29 <ais523> ehird: there's a bug in the examples that needs special-casing
17:22:35 <ehird> ais523: oh dear
17:22:39 <ais523> there's a newline on the input to problem 3, but not in the output
17:22:40 <ehird> well, the lexer hasn't been written yet
17:22:41 <ehird> so :-)
17:26:39 <ais523> print(<>!~/n/?pack"H*",<>:uc unpack"H*",<>) <- an answer to the correct version of the problem
17:27:06 <ehird> ais523: correct version?
17:27:17 <ais523> ehird: if you hadn't made a bug in the exampke
17:27:21 <ehird> i didn't
17:27:22 <ais523> actually, it's worse than that
17:27:31 <ais523> there's a stray A at the end of the solution to problem 3
17:27:46 <ehird> ais523: wanna fix it? :p
17:33:23 -!- Sgeo[College] has joined.
17:36:20 <ais523> print+(<>!~/n/?pack"H*",<>:uc unpack"H*",<>),($$%5?'':'A')
17:36:24 -!- Corun has quit ("This computer has gone to sleep").
17:36:26 <ais523> my 58-byte solution
17:36:30 <ais523> maybe I can remove a few parens from that
17:36:42 <ais523> I just randomize to see whether to compensate for the bug
17:37:16 <ais523> print+(<>!~/n/?pack"H*",<>:uc unpack"H*",<>),$$%5?'':'A' #56 bytes
17:38:16 <ais523> hey, I have the shortest solution!
17:39:06 <ehird> ais523: hee
17:39:15 <ehird> ais523: now submit a fixed proposal? :P
17:39:19 <ais523> the stray A makes the problem harder
17:39:27 <ais523> and I don't feel like fixing the problem all that much
17:39:35 <ais523> the fix is only a few bytes in my code anyway
17:40:25 <olsner> eh, but it's not actually supposed to print the 'a', right?
17:40:34 <ais523> the A is a bug in the problem
17:40:46 <ais523> so I randomise to determine whether to fix the bug or not (there are three cases, only one is buggy)
17:40:56 <ais523> and then run repeatedly until the correct case has the bugfix
17:41:04 <ehird> "Lesbos islanders dispute gay name" - bbc news headline
17:42:40 <Slereah_> What do they plan to do about it?
17:42:58 <ehird> Slereah_: Complain.
17:43:20 <ehird> ais523: do you need that c-intercal mirror to stay, BTW? nobody has downloaded it
17:43:24 <Slereah_> What a bunch of dykes.
17:43:29 <ehird> Slereah_: loooool
17:43:32 <ais523> ehird: not particularly
17:43:37 <ais523> do you want to take it down for some reason?
17:43:44 <ais523> it's useful to have the spread-out version
17:43:52 <ais523> but it's only a mirror, there are other sites
17:44:03 <ehird> ais523: all of my 8 log files are empty
17:44:06 <ehird> 100% empty
17:44:07 <ehird> apart from me
17:44:08 <ehird> a few times
17:44:09 <ehird> :-)
17:44:14 <ehird> so nobody is downloading it
17:44:27 <ais523> most likely they download from the site they're used to
17:44:37 <ehird> but yeah i was going to switch my server to ubuntu, because i need some newer packages
17:44:49 <ais523> I don't mind a bit, or a lot, of downtime at all
17:45:01 <ais523> that's what mirrors are for, right? Speeding up downloads, and bridging across downtime?
17:45:16 <ehird> ais523: true
17:45:22 <ehird> it just might be a while before i get an httpd on there again
17:49:34 <ehird> ais523: so ... alright to do BIG WIPE OF DETH?
17:56:14 <ehird> ais523: no? :P
17:56:22 <ais523> ais523: yes, fine
17:56:27 <ais523> sorry, I didn't notice your higlight
17:56:36 <ais523> I was too focused on something else
17:57:43 -!- jix has joined.
18:20:09 <Phenax> say I have a value at (0,0) in Befunge. How would I use 'g' to get that?
18:20:18 <ais523> 00g
18:20:43 <Phenax> doh
18:20:51 <Phenax> i was doing 100g.
18:20:55 <Phenax> wondering why it was returning 49
18:20:56 <Phenax> lol
18:21:12 * Phenax forgets simple things
18:23:40 <Phenax> 100g,p500 00g,@ .. prints 11 - shouldn't it be 15?
18:24:23 <Phenax> oops
18:24:24 <Phenax> omg
18:24:25 <ais523> Phenax: what are you trying to do there?
18:24:27 <Phenax> i am silly:D
18:24:32 <ais523> there are far too many 0s, I think
18:24:54 <ais523> you've written the p500 backwards, it seems
18:24:59 <Phenax> yeah
18:25:09 <Phenax> with it the right way it prints 1|
18:25:36 <ais523> the second char's a literal ASCII 5, I suspect
18:27:05 <Phenax> 100g,500p, 00g.@ works
18:27:12 <ais523> yes, it would do
18:27:14 <Phenax> 100g,500p 00g.@ works
18:27:31 <ais523> the difference is that the first g reads the char '1' from the playfield
18:27:39 <ais523> whereas the second g reads the number 5
18:28:44 <Phenax> :\
18:29:02 <ais523> the char '1' is a command that puts the number 1 on the stack
18:29:26 <Sgeo[College]> Be back later all
18:29:47 <Phenax> 22* returns the char 4 or the integer 4?
18:29:55 <ais523> Phenax: integer 4
18:30:07 <Phenax> but 2 returns the char 4?
18:30:07 <ais523> you get chars reading from the playfield
18:30:10 <Phenax> i mean char 2
18:30:13 <Phenax> ah
18:30:18 <Phenax> yeah.. ok.. thx
18:30:19 <ais523> but integers calling the command
18:30:46 <Phenax> g2g thx
18:31:41 -!- Sgeo[College] has quit ("http://www.mibbit.com ajax IRC Client").
18:43:28 -!- ais523 has quit ("(1) DO COME FROM ".2~.2"~#1 WHILE :1 <- "'?.1$.2'~'"':1/.1$.2'~#0"$#65535'"$"'"'&.1$.2'~'#0$#65535'"$#0'~#32767$#1"").
19:02:17 -!- ais523 has joined.
19:10:16 -!- jix has quit (Nick collision from services.).
19:10:26 -!- jix has joined.
19:20:39 -!- timotiis has joined.
19:26:46 -!- ais523_ has joined.
19:26:54 -!- ais523 has quit (Read error: 104 (Connection reset by peer)).
19:27:11 -!- ais523_ has changed nick to ais523.
19:41:07 -!- jix has quit (Read error: 104 (Connection reset by peer)).
19:51:05 <Slereah_> Guys.
19:51:11 <Slereah_> With Wolfram's numbering.
19:51:16 <Slereah_> What would be rule 34?
19:51:30 <ais523> 34 is 00100010
19:52:06 <ais523> so that's output a 1 under 101 and under 010
19:52:14 <ais523> and output a 0 otherwise
19:52:49 <ais523> state Zero "0" to One if < Zero and > Zero;
19:52:56 <ais523> state One "1" to Zero if < One and > One.
19:53:09 <ais523> (I can't quite remember ALPACA's syntax, but that should be close enough)
19:53:20 <ais523> sorry, that's wrong
19:53:31 <ais523> under 101 and under 001
19:53:47 <ais523> state Zero "0" to One if > One;
19:53:51 <ais523> state One "1".
19:54:05 <ais523> Slereah_: is that what you had in mind?
19:54:54 <Slereah_> Indeed.
19:55:07 <olsner> just write the number out in binary, number the bits 0-7 with three bits, then each bit specifies the outcome depending on three input bits
19:55:38 <olsner> iirc, rule 30 and 110 are the most famously turing complete ones
19:55:48 <ais523> was 30 proved Turing-complete?
19:55:56 <GregorR> I don't think 30 was proved.
19:56:03 <GregorR> I thought it was just believed to be.
19:56:18 <ais523> it's certainly complicated enough to look like it might be TC
20:07:28 <GregorR> I prefer rule 0.
20:07:38 <ais523> well, it definitely isn't TC
20:07:49 <ais523> at least, not the cellular automaton by that name
20:07:54 <GregorR> I'd like to see a paper /proving/ that.
20:07:59 <GregorR> :P
20:08:07 <ais523> GregorR: no journal would accept it, it would be too trivial
20:29:56 -!- Corun has joined.
20:35:06 <Slereah_> You -> o [Malbolge interpreter] o <- Delicious cake
20:35:11 <Slereah_> You -> o [Malbolge interpreter] o <- Delicious cake
20:35:18 <Slereah_> You -> o [Malbolge interpreter] o <- Delicious cake
20:35:20 <Slereah_> Thar.
20:35:23 <Slereah_> What do you do?
20:35:35 <ehird> um
20:35:40 <ehird> Slereah_: enter malbolge program
20:35:40 <ais523> Slereah_: go round the bottom Malbolge interpreter, using the whitespace on your last-but-one line
20:35:51 <ais523> that seems the safest option
20:35:51 <ehird> ais523: hah
20:35:59 <ehird> ais523: it's a gap
20:36:00 <ehird> you know it
20:36:03 <ehird> weren't you here last time?
20:36:08 <ais523> last time what?
20:36:13 <ehird> ais523: he did a cake challenge
20:36:15 <ehird> if not, go into the logs!
20:36:18 <ehird> it's just a few days ago
20:36:20 <ehird> maybe yesteryda
20:36:52 -!- ais523 has set topic: * Topic for #esoteric set by ehird at Tue May 1 20:38:58 2008 http://tunes.org/~nef/logs/esoteric.
20:37:00 -!- ais523 has set topic: * Topic for #esoteric set by ais523 at Tue May 1 20:38:58 2008 http://tunes.org/~nef/logs/esoteric.
20:38:34 <Slereah_> I do not advise trying your tricks.
20:38:44 <Slereah_> Lions and grues prowl outside this very line.
20:41:56 -!- Iskr has quit ("Leaving").
20:42:32 <ehird> Slereah_: ouc
20:42:33 <ehird> h
20:43:43 <Slereah_> Well, what do you expect in a place with a Malbolge interpreter lying around.
20:44:06 <Slereah_> You can't expect this to end well.
20:44:57 <olsner> whatever evil lurks around the malbolge interpreter, you probably don't even want to *contemplate* the evil lurking inside it
20:45:07 <Slereah_> (Previous cake is here, minus the color : http://tunes.org/~nef/logs/esoteric/08.04.29 )
20:45:23 <Slereah_> "Screw that, I'm trying the lions!"
20:45:43 <ais523> ehird: it was the day befor yesterday, actually
20:45:48 <ais523> 10:31:07 <ehird> Didn't the cake just eat us?
20:45:53 <ais523> (/me fixed the typo in the quote)
20:49:36 * ais523 has finished log reading the last IRP cake RPG
20:49:46 <ais523> I was a bit disappointed that the cake turned out not to be a lie in the end
20:50:18 <Slereah_> Well, lying cakes are only good for vidya games.
20:50:24 <Slereah_> Internet cakes must simply be reached.
20:50:37 <ais523> well, an IRP cake game is hardly an audio game
20:54:01 <Slereah_> You -> o [Malbolge interpreter] o <- Delicious cake
20:54:05 <Slereah_> Try your luck!
20:54:31 * ais523 feeds a Hello, World program to the Malbolge interpreter
20:54:42 <ais523> copying it off the Esolang wiki, because writing Malbolge is hard
20:55:25 <ehird> ais523: i never actually expected to get the cake
20:55:39 <ais523> Slereah_: what happens?
20:55:43 <Slereah_> o[Malbolge interpreter]Hello, world. o <- Delicious cake
20:56:04 <ais523> I feed myself to the Malbolge interpreter.
20:56:33 <Slereah_> [Malbolge interpreter]invalid character in source file o <- Delicious cake
20:56:38 <Slereah_> AAAAAAAAH
20:56:46 <ais523> RESTART
20:56:58 <Slereah_> You -> o [Malbolge interpreter] o <- Delicious cake
20:57:24 <ais523> hmm... it's hard to see how to get around this without actually writing some Malbolge
20:57:32 <ais523> EXAMINE Malbolge interpreter
20:57:45 <Slereah_> It is an interpreter. For the Malbolge language.
20:57:49 <ais523> in particular, I check to see if it's Ben Olmstead's original Malbolge interpreter, or a newer one
20:58:00 <Slereah_> The original one.
20:58:10 <ais523> OK
21:00:35 <ehird> ais523: ...
21:00:38 <ehird> we're waiting!
21:00:41 <ais523> I know
21:00:48 <ehird> Slereah_: Can we formulate malbolge programs given a description of what it does?
21:00:49 <ais523> I was looking for buffer overflows in the interp, but couldn't find any
21:01:14 <ais523> hacking the interp is easier than actually writing Malbolge programs
21:01:34 <ehird> ais523: but look what i said
21:01:36 <ehird> to Slereah_
21:01:44 <ais523> yes, I saw that
21:02:12 <ehird> ais523: I love how we threw the dead lion and just flew with it previously
21:02:43 <Slereah_> Well, you can try hacking in.
21:02:44 <ais523> Slereah_: when I fed the hello world program to the Malbolge interp, were the os that came out people?
21:03:08 <Slereah_> Is that a metaphorical question?
21:03:14 <ais523> Slereah_: no
21:03:34 <ais523> I was wondering if I could feed a hello world to it and then ask the people that came out to throw me some slices of cake back
21:04:15 <ehird> ais523: you just know they would be malicious
21:04:16 <ehird> like before
21:04:20 <Slereah_> Well, the cake would probably just land on the interpreter.
21:04:20 <ehird> and that a lion would appear somehow
21:04:27 <ehird> and there would be no CAR to JESUS CHRIST GET INTO
21:04:47 <ais523> Slereah_: iNVENTORY
21:05:42 <Slereah_> ehird : I wouldn't try something like that.
21:05:47 <Slereah_> OR WOULD I?
21:05:49 <Slereah_> http://membres.lycos.fr/bewulf/Russell/Lion.jpg
21:06:14 <ehird> hahahah
21:06:23 <Slereah_> Inventory : Supply of letters.
21:06:27 <Slereah_> Hacking tools.
21:06:36 <Slereah_> A length of rope.
21:06:38 <ais523> Slereah_: do I have any letters with ASCII codes above 128?
21:07:16 <Slereah_> A rubber chicken, with a pulley in the middle
21:07:26 <ehird> Slereah_: monkey island! yay!
21:07:42 <Slereah_> Well, it wouldn't be an adventure game without some rope and a rubber chicken
21:07:51 <ais523> Slereah_: I kill the Malbolge interpreter. If that doesn't work, I kill it with a 9.
21:07:55 <Slereah_> Same reason I included matches last time :o
21:08:27 <Slereah_> How do you kill that which has no life?
21:08:35 <ais523> Slereah_: with my hacking tools
21:08:46 <ais523> I assume there's a signal generator in there somewhere
21:08:47 <Slereah_> Well, you have to be more specific then.
21:08:58 <Slereah_> but beware of the lion hidden in the code!
21:11:22 <Slereah_> The hacking tools only permits you to GO INSIDE THE INTERPRETER
21:11:41 <Slereah_> Sort of like Beneath a steel sky, when you ENTER CYBERSPACE
21:12:22 <ais523> OK
21:12:34 <ais523> going inside a Malbolge interpreter is unlikely to be a sane idea
21:12:50 <ais523> Slereah_: I fill the Malbolge interpreter with 59049 non-breaking spaces
21:13:08 <ais523> that causes it to go into an infinite loop
21:13:13 <ais523> should make things slightly safer
21:14:01 <olsner> yeah, keep the malbolge interpreter busy while you carefully go back out the way you came
21:14:50 <Slereah_> Is there a simple way to generate 59049 chars.
21:15:21 <ais523> Slereah_: I start with three non-breaking spaces
21:15:32 <ais523> I then make three copies of my three non-breaking spaces, so I have 9 non-breaking spaces
21:15:42 <ais523> I then make three copies of those, gaining 27 non-breaking spaces
21:15:46 <Slereah_> 'kay.
21:15:51 <ais523> and so on
21:15:53 <Slereah_> What does non-breaking mean?
21:15:56 <ais523> until I have 59049
21:16:07 <ais523> Slereah_: it's the character &nbsp;, rather than an ordinary space
21:16:18 <Slereah_> How to do such a char?
21:16:22 <ais523> it has an ASCII code above 128, and so gums up the Malbolge interpreter due to the bug in it
21:16:50 <Slereah_> Can't I just use something above 128 that's on my keyboard?
21:16:57 <ais523> Slereah_: there's one there, just after the colon
21:17:01 <ais523> but yes, you can if you like
21:17:11 <Slereah_> I will use
21:18:45 <ais523> once the Malbolge interpreter's busy with that, I look to see if there's a nearby source of water, and if there isn't proceed to enter the interpreter
21:20:34 <Slereah_> Notepad seems to not appreciate 59049 characters.
21:20:39 <Slereah_> It is currently not responding.
21:20:52 <ais523> Slereah_: remember to delete the final newline
21:21:22 <Slereah_> But, you know, even if it is a malbolge interpreter, it is not hostile
21:21:33 <Slereah_> it won't run after you if you try to search for water.
21:21:37 <ais523> Slereah_: yes, but I wanted to keep it busy while I went inside
21:21:45 <ais523> the water's to cool it down if that infiniloop makes it overheat
21:24:39 <Slereah_> Traceback (most recent call last):
21:24:39 <Slereah_> File "G:/Python25/59.py", line 1, in <module>
21:24:39 <Slereah_> p=open("G:\Documents and Settings\Slereah\Bureau\test.txt","w")
21:24:39 <Slereah_> IOError: [Errno 2] No such file or directory: 'G:\\Documents and Settings\\Slereah\\Bureau\test.txt'
21:24:48 <Slereah_> Oh Python, why must you be so cruel to me.
21:25:03 <Slereah_> I was just gonna do a loop to write in!
21:27:43 * ais523 tried to upload such a file to the Pastebin
21:27:50 <ais523> it's a one-liner to generate that in Perl
21:28:01 <ais523> but it rejected the file because it thought it was binary
21:28:41 <Slereah_> Done it.
21:30:11 <ais523> well, can I enter the interp now?
21:30:36 <Slereah_> http://membres.lycos.fr/bewulf/Russell/Busy.jpg
21:30:40 <Slereah_> What do you do now?
21:31:02 <ais523> I look around for a safe pathway.
21:31:20 <ais523> if I see one, I run along it
21:31:38 <Slereah_> [Malbolge interpreter] o
21:31:41 <Slereah_> Oops
21:31:45 <Slereah_> o[Malbolge interpreter] o
21:32:06 <Slereah_> There seems to be no danger from outside.
21:32:12 <ais523> Slereah_: sorry, I didn't phrase that properly, I meant look for a pathway going deeper into the interpreter
21:32:42 <Slereah_> Wot
21:32:43 <ais523> grr, programming is hard, even in IRP
21:33:25 <Slereah_> If you want to go explore into the interpreter, just say so.
21:33:29 <ais523> yes, I do
21:33:34 <ais523> I thought I'd said that already
21:33:40 <ais523> I want to go explore into the interpreter
21:33:50 <AnMaster> what is going on here?
21:33:58 <AnMaster> summary?
21:34:20 <Slereah_> AnMaster : Delicious cake.
21:34:25 <ais523> AnMaster: I immobilised a Malbolge interpreter using 59049 metacharacters, and have now used hacking tools to go inside it in search of delicious cake
21:34:41 <ais523> I have a supply of letters, a rope and a rubber chicken with a pulley in it
21:34:53 <AnMaster> ^_^!!!
21:35:05 <ais523> AnMaster: see logs for the day before yesterday for the previous episode
21:35:10 <ais523> I wasn't there then, though
21:35:39 <Slereah_> http://membres.lycos.fr/bewulf/Russell/Inside%20the%20beast.jpg
21:35:43 <Slereah_> This can't be good.
21:36:45 <ais523> I carefully climb down to the first line of the comments.
21:37:02 -!- ais523_ has joined.
21:37:21 -!- ais523 has quit (""Changing server."").
21:37:24 -!- ais523_ has changed nick to ais523.
21:37:41 <ais523> (freenode asked me to change server due to downtime on the one I was connected to.)
21:37:49 <AnMaster> Slereah_, Dev-C++?
21:37:53 <AnMaster> for windows
21:37:58 <AnMaster> I think it is that, isn't it?
21:39:29 <Slereah_> It is
21:41:57 <ais523> so, I clamber carefully down to the first comment
21:42:05 <ais523> then start climbing down the column of asterisks
21:42:30 <ais523> oh, and as you're using Windows, no wonder my signal generator didn't work
21:43:15 <Slereah_> http://membres.lycos.fr/bewulf/Russell/Inside%20the%20beast%202.jpg
21:43:16 <Slereah_> http://membres.lycos.fr/bewulf/Russell/Inside%20the%20beast%203.jpg
21:43:24 <Slereah_> You're lucky that lion was looking the other way!
21:43:40 <ais523> yes, I am
21:43:44 <AnMaster> what lion there?
21:43:51 <ais523> although I would have tried to distract it with the rubber chicken if necessary
21:44:25 <ais523> I climb down to the bottom of the column of asterisks, grabbing the author's credits on the way
21:44:43 <AnMaster> "a rubber chicken with a pulley in it"
21:44:45 <AnMaster> !?
21:44:49 <EgoBot> Huh?
21:45:00 <AnMaster> EgoBot, I fully agree
21:45:36 <AnMaster> ais523, no! grab something that would work for comments
21:45:48 <AnMaster> I don't think you can survive outside a comment for long
21:46:07 <ais523> AnMaster: yes I can, I gummed up the interpreter with a whole load of high-bit-set characters
21:46:15 <ais523> it's a known bug in that particular Malbolge interpreter
21:46:23 <AnMaster> yes but will that not cause a compile error?
21:46:33 <AnMaster> when there is a o outside a comment?
21:46:39 <AnMaster> thus killing the interpreter?
21:47:07 <ais523> AnMaster: not sure, you generally have to explore a lot to discover the physics of Slereah_'s game worlds
21:47:10 <Slereah_> Well, he has limitless chars in his pockets.
21:47:22 <Slereah_> He can just make a comment cloak.
21:47:36 <AnMaster> ais523, check if it is c99 compiler
21:48:01 <AnMaster> Slereah_, good point hm
21:48:08 <ais523> AnMaster: trying to figure out a safe way to do that
21:48:08 <Slereah_> http://membres.lycos.fr/bewulf/Russell/Inside%20the%20beast%204.jpg
21:48:11 <Slereah_> http://membres.lycos.fr/bewulf/Russell/Inside%20the%20beast%205.jpg
21:48:32 <AnMaster> Slereah_, what happened to that space above in the latter?
21:48:38 <Slereah_> http://membres.lycos.fr/bewulf/Russell/Inside%20the%20beast%206.jpg
21:48:40 <AnMaster> Slereah_, also ais523 did grab the copyright
21:48:50 <Slereah_> Oops.
21:48:52 <ais523> no, apparently it was too heavy for me to move
21:49:02 <Slereah_> (The spaces are back on)
21:49:21 <AnMaster> Slereah_, care to scroll down the window a bit?
21:49:31 <Slereah_> What copyright?
21:49:33 <AnMaster> ais523, you need a cloak like /*o*/
21:49:43 <ais523> I carefully this on the next few lines, while hiding inside the comment:
21:49:45 <AnMaster> <ais523> I climb down to the bottom of the column of asterisks, grabbing the author's credits on the way
21:49:56 <ais523> #if __STDC_VERSION > 199901
21:50:01 <ais523> #pragma DIAGNOSTIC
21:50:02 <ais523> #endif
21:50:10 <AnMaster> "I carefully this" you mean "place this"?
21:50:14 <ais523> AnMaster: yes
21:50:16 <ais523> it was a typo
21:50:19 <AnMaster> ok
21:50:29 <AnMaster> Slereah_, so what happens with that diagnostic?
21:50:31 <ais523> and that Malbolge interp's public domain, so no copyright
21:50:43 <AnMaster> ok, credits then
21:51:17 <AnMaster> you know, this executes slower than my attempt at a befunge93 interpreter in bash....
21:51:24 <Phenax> lmao
21:51:32 <AnMaster> IRP must be the slowest language in existance
21:51:45 <ais523> AnMaster: is a befunge93 interpreter in bash faster or slower than a befunge93 interpreter in INTERCAL?
21:52:32 <AnMaster> ais523, not sure
21:52:39 <ais523> maybe we could test
21:52:48 <AnMaster> well not when it is compiler
21:52:51 <AnMaster> compiled*
21:53:01 <ais523> C-INTERCAL 0.28 has a Befunge-93 interp in the /pit directory
21:53:15 <AnMaster> after all C-INTERCAL can take advantage of GCC's -O options
21:53:23 <ais523> OK, I'll run it over here under CLC-INTERCAL
21:53:30 <AnMaster> ais523, also it was semi-98
21:53:37 <AnMaster> as in did implement some parts of 98
21:53:58 <ais523> what's a fair test? The Befunge-93 part of Mycology?
21:54:01 <AnMaster> like unlimited height of playfield, but not unlimited width
21:54:19 <AnMaster> ais523, well that bit would detect it as 98 I think
21:54:20 <ais523> Interfunge errors out on excessive height or width
21:54:34 <ais523> so I'd have to crop down Mycology anyway
21:54:47 <AnMaster> well pastebin the cropped version
21:54:52 <AnMaster> but let IRP continue
21:55:01 <AnMaster> Slereah_, well what happend with that diagnostic?
21:55:09 <AnMaster> Slereah_, care to tell us?
21:56:13 <AnMaster> no?
21:57:42 <Slereah_> http://membres.lycos.fr/bewulf/Russell/Inside%20the%20beast%207.jpg
21:57:45 <Slereah_> http://membres.lycos.fr/bewulf/Russell/Inside%20the%20beast%208.jpg
21:58:04 <Slereah_> http://membres.lycos.fr/bewulf/Russell/Inside%20the%20beast%209.jpg
21:58:14 <AnMaster> and then?
21:58:20 <ais523> if nothing happens, it's C89
21:58:31 <Slereah_> (It's slow to load!)
21:58:32 <AnMaster> well you got to move down one line
21:58:37 <ais523> unless the compiler really does interpret a #pragma DIAGNOSTIC
21:58:43 <ais523> and yes, I jump down below the #endif
21:58:48 <ais523> in fact not jump, duck
21:58:58 <Slereah_> http://membres.lycos.fr/bewulf/Russell/Inside%20the%20beast%2010.jpg
21:59:00 <Slereah_> Oh-oh.
21:59:01 <AnMaster> ais523, as it is windows.... well could be gcc or msvc
21:59:17 <ais523> AnMaster: yes, it could be
21:59:28 <AnMaster> Slereah_, that is because you can't replace a running executable on windows....
21:59:35 <ais523> but that's a pretty good C89 vs C99 test that doesn't crash the program and works at compile time
21:59:50 <Slereah_> AnMaster : I'm not the one feeding him infinite chars!
22:00:03 <ais523> most C99 compilers will complain about a bad pragma if they see that code
22:00:04 <AnMaster> Slereah_, well we was assuming a real OS
22:00:19 <AnMaster> Slereah_, as in POSIX
22:00:22 <ais523> AnMaster: no, I was assuming Windows when I saw the font in the command line, and the directory name given there
22:00:29 <AnMaster> ah
22:00:36 <ais523> that's why my signal generator didn't work
22:00:43 <AnMaster> ais523, well problem is you can't replace a running executable on windows
22:00:51 <ehird> hahahaha
22:00:52 <AnMaster> ais523, err signal generator?!
22:00:59 <ais523> AnMaster: to kill things, with 9s
22:01:00 <ehird> AnMaster can make even a cake challenge into an OS-pissing contest
22:01:04 <ehird> and protest about things that aren't standard
22:01:44 <AnMaster> ehird, Windows and pre-OSX are the only OS I have seen where you can't replace a open file
22:02:01 <ehird> AnMaster: you're still doing it
22:02:03 <ehird> that's great
22:02:11 <ais523> AnMaster: well, even on POSIX replacing a running file doesn't alter the running of the program
22:02:21 <AnMaster> ais523, true
22:02:26 <AnMaster> Slereah_, so he isn't dead
22:02:38 <Slereah_> Well, he's still running on that file.
22:02:41 <AnMaster> Slereah_, still show us compiler output?
22:02:46 <AnMaster> not linker one
22:02:52 <Slereah_> Wot?
22:02:53 <ais523> AnMaster: that is so a metagame output
22:02:57 <AnMaster> ah
22:03:00 <ais523> s/output/request/
22:03:07 <AnMaster> true
22:03:10 <AnMaster> not valid then
22:03:14 <ais523> no, I just continue through the game and see if I come across a diagnostic later
22:03:47 <AnMaster> ais523, you can output chars with C preprocessor
22:03:52 <AnMaster> err
22:03:52 <Slereah_> So, what do you do? :o
22:03:53 <AnMaster> strings
22:03:53 <ais523> AnMaster: how?
22:04:03 <AnMaster> ais523, there is a 99 bottles of bear in C preprocessor
22:04:09 <AnMaster> looking for details
22:04:14 <ais523> Slereah_: I work my way down to the main function
22:04:25 <AnMaster> ais523, hiding in comments
22:04:48 <ais523> AnMaster: look at the earlier pics, I have a comment cloak on already
22:05:03 <AnMaster> ais523, apparently #pragma message
22:05:06 <AnMaster> http://99-bottles-of-beer.net/language-c-c++-preprocessor-115.html
22:05:18 <ais523> not portable, then
22:05:26 <ais523> see the comment, it says it works only in Visual C++
22:06:13 <AnMaster> hm ok
22:06:18 <AnMaster> and we now know it is Gcc
22:06:19 <AnMaster> ais523, ^
22:06:28 <ais523> AnMaster: how?
22:06:47 <ais523> it could be any other compiler claiming to be C99
22:06:48 <AnMaster> ais523, his screenshot of linker output is from the open source IDE Dev-C++
22:06:53 <ais523> oh
22:06:57 <AnMaster> thus it must be GCC
22:07:01 <ais523> Borland C++?
22:07:10 <AnMaster> not for Dev-C++ iirc
22:07:10 <ais523> I used to use that, and IIRC they open-sourced some old versions
22:07:12 <AnMaster> afaik
22:07:26 <ais523> besides an open source IDE is still capable of using a closed-source compiler
22:07:29 <AnMaster> ais523, last I checked Dev-C++ used mingw stuff
22:07:37 <AnMaster> not sure if it could be changed
22:07:38 <AnMaster> maybe
22:07:40 <AnMaster> + it says ld
22:07:49 <AnMaster> which indicates mingw I think?
22:07:51 <Slereah_> http://membres.lycos.fr/bewulf/Russell/Inside%20the%20beast%2011.jpg
22:07:57 <Slereah_> Oh-oh, what's that comment?
22:08:13 <AnMaster> Slereah_, what one? the one below?
22:08:18 <Slereah_> http://membres.lycos.fr/bewulf/Russell/Inside%20the%20beast%2012.jpg
22:08:24 <Slereah_> Like you didn't knew it.
22:08:29 <AnMaster> wow
22:08:32 <AnMaster> ais523, you got issues
22:09:08 <ais523> Slereah_: I quickly wrap myself in a string literal that initialises a global variable, and then attempt to attack the comment with a C preprocessor.
22:09:42 <ais523> (this is why I grabbed the credits, BTW; it's so I don't discredit the author while throwing preprocessors aroung.)
22:09:49 <Slereah_> Could you rephrase that statement in the term of a copypasta?
22:10:07 <ais523> char abc="/*o*/";
22:10:11 <ais523> (that's how I cloak myself)
22:10:26 <ais523> and then run the preprocessor, it's probably with the -E option if you use mingw
22:10:29 <AnMaster> err
22:10:32 <ais523> should eliminate all comments and everything inside them
22:10:33 <AnMaster> ais523, no you need a *
22:10:37 <AnMaster> char * abc...
22:10:43 <ais523> so I do
22:10:47 <ais523> char* abc="/*o*/";
22:10:59 <ais523> incidentally, isn't my original typo still legal C?
22:11:03 <ais523> you can assign a pointer to an int
22:11:11 <ais523> and nothing's looking at abc, so the UB is never invoked
22:11:14 <Phenax> I'm trying to make a loop that continually goes +1 in Befunge: 0 00g1+00p 00g, - after nine it turns into ;, and keeps turning into different symbols. How can I make it a number and not a character?
22:11:27 <AnMaster> Phenax, err?
22:11:31 <ais523> Phenax: start with a NUL in the top left corner
22:11:37 <Phenax> ah
22:11:43 <AnMaster> Phenax, you want ascii one?
22:12:03 <ais523> or write one there yourself: 000p00g1+00p00g, (and reloop)
22:12:07 <AnMaster> because that is what you are doing
22:12:20 <ais523> and use numeric output not string output
22:12:21 <AnMaster> ais523, yes, you need to write it out yourself in fact
22:12:26 <AnMaster> indeed
22:12:32 <Slereah_> http://membres.lycos.fr/bewulf/Russell/Inside%20the%20beast%2013.jpg
22:12:46 <AnMaster> Slereah_, what about the pre-processor?
22:12:50 <Phenax> thx i understan
22:12:54 <Slereah_> (You are once again of that shiny red, you feel more real already!)
22:12:59 <Slereah_> How do I run preprocessor? :o
22:13:08 <AnMaster> <ais523> and then run the preprocessor, it's probably with the -E option if you use mingw
22:13:20 <ais523> but you'll want -o too to give an output file, or it'll output to stdout
22:13:29 <AnMaster> indeed
22:13:55 <ais523> great ASCII art, BTW
22:14:04 <AnMaster> yeah
22:14:14 <Slereah_> (I should probably close the malbolge program by the way, it's starting to take way too much power)
22:14:36 <ais523> Slereah_: yep, it'll just infiniloop for ever, so no need to keep it running because you know what it'll do
22:14:42 <AnMaster> Slereah_, well in the game it is still running
22:14:49 <Slereah_> Let's say that.
22:14:56 <Slereah_> So, what do I input where? :o
22:15:17 <ais523> Slereah_: gcc -E malbolge.c -o malbolge.i at the command line is possibly the simplest wat
22:15:21 <ais523> s/t$/y/
22:15:35 <Slereah_> I should also probably save the C file
22:15:37 <AnMaster> Slereah_, well in a terminal something like: gcc -E oldfile.c -o newfile.c
22:15:37 <ais523> or most IDEs have a preprocess option in the menus somewhere
22:15:45 <AnMaster> Slereah_, yep
22:15:49 <Phenax> 000p 'deletes' 00 :\
22:15:51 <AnMaster> you'd have to
22:16:03 <AnMaster> Phenax, of course it overwrites itself
22:16:04 <ais523> Phenax: you're overwriting your own code, but that's fine in Befunge
22:16:13 <ais523> if you don't want to, just put a space at the start of the program
22:16:18 <ais523> so it's overwritten instead
22:16:23 <AnMaster> you just want a program to just add 1 to a counter?
22:16:28 <AnMaster> Phenax, is that correct?
22:16:37 <AnMaster> and that counter needs to be in funge space?
22:16:39 <ais523> I think Phenax is deliberately trying to do it using g and p
22:16:51 <AnMaster> if it doesn't, you could just do:
22:16:52 <AnMaster> 1+
22:16:54 <AnMaster> that would be all
22:16:56 <AnMaster> on stack
22:17:01 <AnMaster> err
22:17:03 <Phenax> Well in BuQunge (I don't know if it's crap, but I like debugging, so I use it in conjunction with vanilla) it literally just deletes the value and leaves it blank
22:17:04 <AnMaster> to print it to
22:17:09 <AnMaster> 1+:.
22:17:11 <AnMaster> should work
22:17:22 <AnMaster> Phenax, BeQunge is crap yes
22:17:26 <AnMaster> correct guess
22:17:30 <ais523> Phenax: NULs are invisible, so you can't see them
22:17:32 <ehird> bequnge is buggy
22:17:40 <Phenax> if i do
22:17:42 <Phenax> 0 000p
22:17:45 <Phenax> it comes out as
22:17:48 <AnMaster> Phenax, try ccbi, it got good debugging
22:17:51 <Phenax> 000p
22:17:51 <AnMaster> or cfunge for speed
22:18:02 <Slereah_> http://membres.lycos.fr/bewulf/Russell/Go%20and%20be%20free.jpg
22:18:03 <AnMaster> but cfunge lacks good debugger yet
22:18:08 <ais523> so it probably works, you just can't see what happened
22:18:10 <Phenax> I don't care much for speed
22:18:17 <Slereah_> gcc no works.
22:18:19 <AnMaster> Slereah_, duh. full path of course
22:18:23 <AnMaster> on windows
22:18:29 <Phenax> Any recommended editor for Befunge? It's kind of annoying to edit :\
22:18:35 <AnMaster> Phenax, I use emacs...
22:18:39 <ais523> Phenax: Emacs' picture-mode is good
22:18:42 <Slereah_> It says that gcc is not a valid command, AnMaster.
22:18:49 <AnMaster> ais523, picture mode?
22:18:52 <ais523> Slereah_: it's probably on your computer, it just can't find it
22:18:55 <AnMaster> Slereah_, that is because it isn't in PATH
22:18:56 <ais523> AnMaster: M-x picture-mode
22:19:02 <ais523> causes all lines to become logically infinitely long
22:19:22 <ais523> and you can set the cursor motion after you type a char to go downwards or backwards if you like
22:19:27 <Slereah_> AnMaster : Then whar?
22:19:36 <AnMaster> Slereah_, I don't know on windows
22:19:39 <AnMaster> search for it...
22:19:46 <AnMaster> I'm a LINUX and BSD user
22:19:47 <ais523> Slereah_: not sure what directory it's in, but searching for gcc.exe should tell you
22:19:54 <ais523> AnMaster: I used to use Windows quite a bit
22:19:59 <ais523> but I didn't use mingw
22:20:03 <AnMaster> ais523, I used it some
22:20:16 <AnMaster> ais523, and I got custom location for mingw anyway
22:20:25 <AnMaster> it varies depending on how it was installed
22:20:39 <AnMaster> ie: by itself, by dev-c++, by msys
22:20:43 <AnMaster> and by version
22:21:17 <AnMaster> ais523, ah the picture mode is mostly useful when you got a small screen
22:21:30 <AnMaster> I tend to keep my befunge programs no wider than 100 chars
22:21:35 <ais523> AnMaster: it's useful anyway, to avoid the need to fill lines with spaces
22:21:39 <ais523> you press down, the cursor goes down
22:21:44 <AnMaster> ais523, ah true right
22:21:45 <ais523> no problems with jumping to the end of the next line
22:22:12 <AnMaster> ais523, does it remove unneeded trailing spaces?
22:22:16 <ais523> yep
22:22:27 <AnMaster> and un-needed trailing newlines?
22:22:28 <ais523> but you have to watch out for it converting spaces to tabs
22:22:36 <AnMaster> ais523, ugh
22:22:42 <ais523> M-x untabify works
22:22:48 <ais523> it doesn't convert spaces to tabs
22:22:53 <ais523> but it adds them as tabs sometimes
22:22:56 <Slereah_> Ah, GCC was on the other hard drive.
22:22:59 <ais523> actually, I'm not sure about the trailing spaces
22:23:01 <ais523> let me check
22:23:42 <Slereah_> (What's the command to change HD?)
22:23:46 <ais523> no, it doesn't remove them
22:23:49 <AnMaster> Slereah_, why not just a real OS, even ehird prefers POSIX, Mac OS X is POSIX
22:23:56 <AnMaster> ais523, nor ending newlines?
22:23:56 <ais523> Slereah_: D: to change to drive D
22:24:00 <ehird> <AnMaster> Slereah_, why not just a real OS, even ehird prefers POSIX, Mac OS X is POSIX
22:24:03 <ehird> I love how you say that casually
22:24:04 <ais523> AnMaster: presumably not in that case
22:24:08 <Slereah_> Except F:.
22:24:18 <ehird> I am utterly speechless how you can consider that a viable option to do for the sake of an irc game.
22:24:31 <AnMaster> Slereah_, you could use f:\full\path\to\gcc.exe
22:24:36 <ais523> AnMaster: technically speaking Windows is POSIX too, at least when they tested it they got a 'did not definitively fail' answer
22:24:45 <ais523> and that was with lots of special stuff just to get it to pass the tests
22:24:54 <AnMaster> ais523, yeah, exactly
22:25:59 <AnMaster> ais523, but how the heck did they handle that POSIX requires case sensitive filenames?
22:26:02 <AnMaster> iirc it does
22:26:14 <ais523> probably a hack on the ~1 stuff
22:26:42 <ais523> I wonder how they handled fork()? Probably just by returning ENOTIMPLEMENTED, IIRC they did that whenever it was allowed
22:27:07 <Slereah_> http://membres.lycos.fr/bewulf/Russell/Go%20and%20be%20free%202.jpg
22:27:10 <Slereah_> Pime Taradox.
22:27:34 <AnMaster> Slereah_, "Pime Taradox" means?
22:27:47 <Slereah_> http://www.encyclopediadramatica.com/Pime_taradox
22:27:56 <ais523> well, in that case I continue on my journey through the program
22:27:58 <AnMaster> not that site please...
22:28:07 <ehird> Back in 30 mins
22:28:10 <ais523> then I add this:
22:28:14 <ais523> #define return exit
22:28:19 <ehird> AnMaster: os x is a case insensitive filesystem
22:28:22 <Slereah_> Under?
22:28:26 <ehird> AnMaster: and its posix
22:28:32 <AnMaster> ehird, it is? didn't know that
22:28:34 <ais523> Slereah_: under the # 78 line
22:28:35 <ehird> its even a real unix
22:28:38 <ehird> certified
22:28:48 <AnMaster> ehird, ok, I stand corrected
22:28:56 <ehird> <AnMaster> not that site please...
22:28:57 <ais523> ehird: its case sensitivity is user-configurable, I think
22:28:58 <ehird> more complaining
22:29:05 <ehird> you asked him to define a word
22:29:06 <ehird> he defined it
22:29:18 <ehird> since its on ed, it'll be a *chan or similar meme
22:29:24 <ehird> ergo ED will be the only place for a definition
22:29:28 <ehird> sans urbandictionary or osmethign else
22:29:31 <ehird> ais523: not really
22:29:37 <ehird> its unsupoprted
22:29:38 <ehird> back in 30 mins
22:31:00 <Slereah_> http://membres.lycos.fr/bewulf/Russell/Go%20and%20be%20free%203.jpg
22:31:06 <Slereah_> Really, it is very telling.
22:31:17 <AnMaster> Slereah_, oh?
22:31:17 <Slereah_> People would rather trick Satan than write in Malbolge.
22:31:23 <AnMaster> hahaha
22:32:00 <ais523> well, I then through a 59050th top-bit-set character into the interpreter
22:32:03 <ais523> wait for it to error out
22:32:14 <ais523> and then run out through the exit(1) that I've just modified the source code into
22:32:23 <ais523> s/through/throw/
22:32:44 <AnMaster> ais523, good good!
22:33:09 <Slereah_> Shouldn't you get out of it before you throw stuff in? :o
22:33:25 * ais523 is lucky Ben Olmstead always but parens around the argument to return
22:33:51 <AnMaster> Slereah_, err?
22:34:02 <ais523> Slereah_: OK, that seems reasonable
22:34:17 <ais523> I write # 1 "malbolge.c" on the line immediately below where I am
22:34:30 <ais523> then that's line 1 of the program, by definition, so I'm at the place where I entered
22:34:35 <ais523> and can easily leave
22:34:54 <Slereah_> Damn you and your trickery!
22:35:13 <AnMaster> Slereah_, he is playing by the rules!
22:35:21 <Slereah_> o[Malbolge interpreter] o
22:35:27 <Slereah_> o[Malbolge interpreter] o
22:35:34 <Slereah_> Well, you're blue now, mister comment.
22:35:38 <ais523> Slereah_: I throw in the 59050th char
22:35:39 <AnMaster> ais523, throw the bit in!
22:36:19 <AnMaster> ais523, that cause a crash doesn't it iirc?
22:36:22 <ais523> yep
22:36:32 <ais523> to be precise, it causes an exit(1) with the new source code
22:36:38 <ais523> then all I have to do is run through that exit
22:36:42 <AnMaster> ah :)
22:36:45 <AnMaster> Slereah_, there we are :D
22:37:35 <AnMaster> Slereah_, and there is NO way you will get anyone to write malbolge for this you know
22:38:49 <Slereah_> o[Malbolge interpreter] Can't open file o
22:39:08 <ais523> Slereah_: I run through the exit it created when it put the "Can't open file" up
22:39:10 <Corun> Oh god.
22:39:23 <ais523> Corun: been watching?
22:39:30 <Corun> No.
22:39:41 <Corun> But, I played the delicious cake game with slereah as the game master the other day
22:40:06 <ais523> Corun: this time wasn't just ASCII art, it also had screenshots of ASCII art
22:40:11 <ais523> with syntax higlighting
22:40:12 <Slereah_> Heh.
22:40:16 <Corun> Hefty
22:40:34 <Slereah_> [Malbolge interpreter]o o
22:40:53 <ais523> Slereah_: I walk over to the delicious cake
22:41:01 <Slereah_> [Malbolge interpreter] oo
22:41:07 <ais523> Slereah_: I eat the delicious cake.
22:41:11 <Slereah_> [Malbolge interpreter] o
22:41:14 <Slereah_> Tadaaaa!
22:41:28 <ais523> yay!
22:41:39 <Slereah_> But still, a simpler solution was to change the program to make it output "o" and input yourself in :o
22:41:51 <ais523> BTW, a long time ago I was working on an esolang-based text adventure
22:41:58 <ais523> I've only done three puzzles
22:42:03 <ais523> none of which lead to anywhere useful
22:42:09 <ais523> but it might still be fun over IRC
22:42:11 <Slereah_> Not even cake?
22:42:15 <ais523> Slereah_: not yet
22:42:25 * ais523 wonders whether to promise "There will be cake"
22:42:34 <AnMaster> <ais523> I've only done three puzzles
22:42:44 <ais523> although if I do make that promise, I'll put some cake in as an item
22:42:45 <AnMaster> seen adventure game in b93
22:42:49 <AnMaster> though very simple
22:42:57 <AnMaster> and there is wumpus for b93
22:42:59 <ais523> AnMaster: there's a Befunge Hunt the Wumpus
22:43:05 <AnMaster> as I just said
22:43:11 <ais523> my game wasn't in an esolang, although I might translate it into one
22:43:17 <ais523> but it had esolang-based puzzles
22:43:35 <AnMaster> aha
22:43:45 <ais523> You are standing in the main hall of what appears to be some sort of
22:43:49 <ais523> castle. There is a door in each of the east and west walls; the one in
22:43:50 <ais523> the west wall has a [ symbol marked on it, but there are no markings on
22:43:50 <ais523> the door in the east wall. There is a large staircase, which goes upwards
22:43:50 <ais523> to a balcony high on the north side of the room. The south of the room is a
22:43:50 <ais523> large door, heavily barred with wooden bars that you would have no chance
22:43:50 <ais523> of lifting.
22:43:58 <ais523> three possible ways to go
22:44:00 <ais523> each one leads to a different puzzle
22:44:08 <ais523> none of the puzzles lead anywhere yet, though
22:44:13 <ais523> although there are 4 possible destinations
22:44:54 <Slereah_> Also, here's your end theme ais523 : http://youtube.com/watch?v=RthZgszykLs
22:45:11 <ais523> Slereah_: can't watch it, I decided to uninstall Flash
22:45:21 <ais523> because it isn't good for much other than watching videos
22:45:29 <ais523> and most Flash-based websites are lousy
22:46:14 <ais523> it prevents me watching YouTube, though
22:46:17 <AnMaster> Phenax, still there?
22:46:20 <AnMaster> >1+:aaa**`!#v_a,@
22:46:20 <AnMaster> ^ .: <
22:46:30 <AnMaster> simple befunge-98 counter that prints 1-1000
22:46:32 <ais523> AnMaster: that looks lousy in a proportional font
22:46:41 <AnMaster> ais523, well don't use that for irc
22:46:44 <AnMaster> use a monospace one
22:46:45 <ais523> and you could make that befunge-93 easily enough
22:46:53 <AnMaster> ais523, indeed
22:46:56 <AnMaster> just replace the a
22:47:01 <AnMaster> with say 52*
22:47:17 <AnMaster> or for aaa*** why not 5558***
22:47:20 <ais523> 5558*** is probably the easiest way to write 1000 in Befunge-93
22:47:21 <AnMaster> I think
22:47:22 <ais523> ha, snap
22:47:23 <AnMaster> yeah
22:47:37 <AnMaster> ais523, not sure if it is the shortest
22:48:00 <ais523> shortest, or smallest?
22:48:03 <AnMaster> I just divided with 5 each time
22:48:05 <ais523> remember Befunge is 2D
22:48:10 <AnMaster> ais523, shortest in source code
22:48:21 <ais523> what if there was a 2x3 solution?
22:48:24 <AnMaster> err
22:48:32 <AnMaster> fewest instructions
22:49:05 <ais523> anyone want a go at the text adventure I started above, anyway?
22:49:07 <AnMaster> ais523, I just divided by 5 a few times as I knew it would be even numbers each time
22:49:21 <ais523> AnMaster: 5 and 2 are the only prime factors of 1000
22:49:34 <ais523> multiplying 5 with 2, or 5s with each other, goes above 10
22:49:37 <AnMaster> ais523, don't have any calculator for that around
22:49:42 <ais523> so multiplying the 2s is the only sane way
22:49:56 <ais523> $ factor 1000
22:49:56 <ais523> 1000: 2 2 2 5 5 5
22:49:59 <ais523> it's in GNU coreutils
22:50:05 <ais523> so it's probably on your computer
22:50:11 <AnMaster> on freebsd atm
22:50:11 <ais523> but I knew that one off by heart anyway
22:50:21 <Slereah_> Well, prime factorisation is unique
22:50:23 <AnMaster> bash: factor: command not found
22:50:29 <AnMaster> Slereah_, true
22:50:30 <ais523> OK, so not on your computer
22:50:36 <Slereah_> And since 10*10*10 = 1000, it's pretty obvious that it's 2 and 5
22:50:38 <AnMaster> but I didn't have any handy tools to do it
22:50:44 <AnMaster> and
22:50:46 <AnMaster> tor maj 1 23:50:46 CEST 2008
22:50:49 <AnMaster> tired
22:51:02 <ais523> AnMaster: you're 1 hour later than me, then
22:51:09 <ais523> but feel free to leave, nobody's keeping you
22:51:17 <AnMaster> well I want to stay around
22:51:21 <ais523> OK
22:51:23 <AnMaster> anyway infinite counter is easier:
22:51:32 <AnMaster> 1+:.
22:51:34 <AnMaster> that is all
22:51:44 <AnMaster> not sure if there is any shorter way
22:51:51 <ais523> doubt it
22:51:59 <ais523> unless there's an increment instruction
22:52:01 <AnMaster> what about other languages?
22:52:30 <AnMaster> ais523, not that I know of, not in core, and not in any fingerprints I implemented iirc
22:52:32 <ais523> I can't think of one that's shorter than Befunge for that
22:52:44 <Phenax> Haskell is one longer.. [1..]
22:52:57 <ais523> Phenax: that's not a program, just an expression
22:53:06 <ais523> so it'll work in ghci, I think, but not ghc
22:53:25 * ais523 tests
22:53:42 <AnMaster> what about brainfuck?
22:53:43 <Phenax> yeah it you're right
22:53:48 <ais523> t.hs:2:0: parse error (possibly incorrect indentation)
22:53:52 <Slereah_> Brainfuck is wrapping.
22:53:57 <Slereah_> ESO decided it!
22:54:03 <ais523> AnMaster: doing integer to text conversion's a pain in Brainfuck
22:54:04 <AnMaster> Slereah_, well so is befunge
22:54:06 <AnMaster> at some point
22:54:30 <ais523> if you do have integer output, say o, it would be +[o+]
22:54:36 <AnMaster> Slereah_, for cfunge, depending on compile time options, either MAX_UINT32 or MAX_UINT64
22:54:40 <AnMaster> or whatever the contants are
22:54:40 <AnMaster> err
22:54:41 <Phenax> Are there any other good "General Purpose" esoteric languages like Befunge?
22:54:43 <Slereah_> P'' then :o
22:54:43 <AnMaster> MAX_INT32
22:54:49 <AnMaster> and MAX_INT64
22:54:50 <AnMaster> then
22:54:58 <ais523> Phenax: if you're talking about usability, Befunge's one of the best
22:55:11 <ais523> although I find Thutu useful for some things, it's more useful with wimpmode arithmetic
22:55:15 <AnMaster> Phenax, there is even socket support in Befunge
22:55:24 <Phenax> Yeah, I'm looking for something esoteric but still not impossibly insane to make something like the Sieve of Eratosthenes in
22:55:25 <AnMaster> Phenax, with the correct befunge-98 fingerprint
22:55:31 <AnMaster> of course....
22:55:32 <ais523> and INTERCAL's pretty good for many things, but extremely weak on string handling
22:55:39 <AnMaster> BeQunge isn't b98
22:55:46 <AnMaster> but b93+crap-correctness
22:55:48 <Phenax> i'm using ccbi for now
22:55:50 <ais523> if you don't use strings, though, writing programs is not too hard
22:55:54 <AnMaster> Phenax, ccbi is good, very good
22:56:04 <Phenax> yeah, i'm mainly looking at doing mathematical programs
22:56:18 <AnMaster> Phenax, I think Sieve of Eratosthenes may be implemented
22:56:22 <AnMaster> not 100% sure
22:56:29 <ais523> oh, and INTERCAL outputs in Roman numerals by default, but there are libraries for output in decimal
22:56:37 <Phenax> lol!
22:56:55 <ais523> Phenax: http://intercal.freeshell.org
22:57:13 <AnMaster> Phenax, http://esolangs.org/wiki/Befunge#Examples
22:57:14 <AnMaster> "Sieve of Eratosthenes"
22:57:18 <AnMaster> Phenax, already done :)
22:57:31 <Slereah_> It is rather short :o
22:57:37 <AnMaster> don't ask me how it works, I need to analyze it first
22:57:47 <AnMaster> seems to be 93 though
22:57:58 <Phenax> Befunge is ackward to program in a regular text editor lol
22:58:41 <ais523> yep
22:58:51 <ais523> Atari-syntax INTERCAL is much easier
22:59:07 <ais523> but that syntax was designed to work well on ASCII-based systems
23:00:06 <AnMaster> Phenax, well I don't know, depends on coding style
23:00:27 <AnMaster> Phenax, mostly you can make program flow simply like:
23:00:35 <AnMaster> > xxxxxxxxxx v
23:00:43 <AnMaster> v <
23:00:49 <Phenax> yeah
23:00:50 <AnMaster> > yyyyyyyyyy v
23:00:52 <AnMaster> and so on
23:00:57 <AnMaster> loops and such as needed
23:00:59 <ais523> AnMaster: you're wasting every second line
23:01:03 <ais523> v>xxxxxx
23:01:04 <AnMaster> ais523, yes indeed
23:01:08 <ais523> v>xxxxxxx
23:01:12 <ais523> v>xxxxxxxx
23:01:14 <AnMaster> hah
23:01:16 <ais523> v>xxxxxxxxx
23:01:23 <AnMaster> ais523, yes but adding new stuff is a pain
23:01:34 <AnMaster> at anywhere but the start
23:01:49 <AnMaster> night
23:01:57 * ais523 is going too
23:01:59 -!- ais523 has quit ("(1) DO COME FROM ".2~.2"~#1 WHILE :1 <- "'?.1$.2'~'"':1/.1$.2'~#0"$#65535'"$"'"'&.1$.2'~'#0$#65535'"$#0'~#32767$#1"").
23:02:13 <Slereah_> I wonder if I could do a Church numeral -> ASCII converter for Lazy Bird.
23:02:28 <Slereah_> Checking if a combinator is a numeral is easy enough.
23:02:54 <Slereah_> It would get rid of all the . problems.
23:03:11 <Slereah_> And be terrible to program in, but well.
23:13:00 * Slereah_ downloads the malbolge interpreter again
23:13:12 <Slereah_> Mine is full of strange things for some reason.
23:21:13 <ehird> back
23:25:12 <ehird> <ais523> anyone want a go at the text adventure I started above, anyway?
23:25:13 <ehird> i did
23:25:15 <ehird> but then he left
23:27:31 -!- Judofyr_ has joined.
23:27:31 -!- Judofyr has quit (Read error: 104 (Connection reset by peer)).
23:28:26 <Slereah_> I just inputed an empty file in the Malbolge interpreter, and it does not terminate :o
23:28:45 <ehird> Slereah_: Of course not.
23:29:07 <Slereah_> Then why did Ais needed 59.049 to do that?
23:29:30 -!- comex has joined.
23:29:46 <ehird> Slereah_: ?
23:29:50 <ehird> Oh.
23:29:52 <ehird> i don't know.
23:29:54 <ehird> He's silly.
23:29:59 <ehird> I think to keep it busy.
23:30:03 <ehird> As opposed to just inflooping
23:30:07 <Slereah_> It, or me?
23:30:24 <ehird> brb
23:37:47 <ehird> Slereah_: do another cake challenge
23:37:50 <ehird> but with a cross of
23:37:55 <ehird> zork & hunt the wumpus
23:37:55 <ehird> :D
23:37:59 <ehird> (i.e. no actual pics)
23:40:21 <Slereah_> I do not know what those are.
23:40:33 <Slereah_> Plus, I'm not the one barging in on the code :o
23:40:37 <ehird> Slereah_: google 'em
23:41:42 <Slereah_> By no pix, do you mean no pix, or not even ASCII art?
23:41:57 <Slereah_> http://en.wikipedia.org/wiki/Hunt_the_Wumpus
23:42:04 <Slereah_> "What a Wumpus might look like
23:42:11 <Slereah_> Thank you Wikipedia.
23:42:56 <ehird> Slereah_: not even ascii art
23:43:01 <ehird> play zork online
23:43:03 <ehird> (google it)
23:43:03 <Slereah_> :o
23:43:22 <ehird> Slereah_: wait:
23:43:24 <Slereah_> I doubt I have the game mastering skill necessary.
23:45:10 <ehird> Slereah_: http://thcnet.net/zork/index.php zork
23:45:20 <ehird> you get the ide
23:45:21 <ehird> aa
23:45:36 <Slereah_> Any grue?
23:45:43 <ehird> Slereah_: Zork is where grues originated
23:45:44 <ehird> (seriously)
23:45:47 <Slereah_> D:
23:46:01 <ehird> Slereah_: zork invented grues
23:46:28 <Slereah_> I know, you said it three lines above
23:46:45 <ehird> but oddly worded
23:47:35 <Slereah_> Plus, such a game would need an actual scenario of some sort.
23:47:45 <Slereah_> I would have to, you know, actually work at it.
23:49:07 <ehird> Slereah_: Nawwww
23:50:24 <ehird> Slereah_:
23:50:25 <ehird> http://bnewtz.cannet.com/wumpus/
23:51:32 * Slereah_ tries to think of an idea.
23:52:24 <Slereah_> I'm not a big fan of text based adventures
23:52:27 <Slereah_> I tried once.
23:52:33 <Slereah_> With "Nine prince in Amber".
23:52:54 <ehird> Slereah_: Wumpus aint a text adventure
23:53:00 <Slereah_> but it is quite excruciating to find out what you can act upon
23:53:30 <ehird> It's a type-and-shoot game of bottomless pit proportions!
23:54:20 <Slereah_> But Zork is
23:55:06 <ehird> Sure
23:55:11 <ehird> So clone Wumpus
23:55:14 <ehird> Cakeus
23:55:38 <sauxdado> Slereah_: it's less excruciating with many modern interactive fiction games
23:56:32 <ehird> sauxdado: YES
23:57:36 <sauxdado> Slereah_: for the same reason that many modern webpages look so much nicer than the pages from the 90s
23:58:07 <Slereah_> sauxdado : Would it be that much tougher to just make a LIST option to list what's active?
23:58:15 -!- olsner has quit ("Leaving").
23:58:44 <ehird> Slereah_: Removes some challenge
23:58:44 <sauxdado> Slereah_: that's a different genre.
23:59:07 <sauxdado> Slereah_: consider a Quake clone where you have a list of options of which monster to kill.
23:59:19 <Slereah_> Well, I suppose that at least easily savable games would make it nicer
23:59:45 <Slereah_> sauxdado : Most adventure games do this in some form
00:00:06 <Slereah_> Objects that you can interact with usually are easy to spot
00:00:07 <ehird> Slereah_: No they do not
00:00:14 <ehird> Yes usually
00:00:18 <Slereah_> Unless they're pixel hunting games.
00:00:20 <ehird> So: LOOK
00:00:42 <sauxdado> Slereah_: i haven't played any interactive fiction games where there would be problems with saving.
00:00:56 <Slereah_> I suppose I'm just lame :o
00:01:05 <Slereah_> I'm not very used to all-comand
00:01:06 <GregorR> RodgerTheGreat: Y'know what's really great about my People from the Internet T-shirt? No two people interpret it in /quite/ the same way :P
00:01:13 <sauxdado> usually you do it with "save"
00:01:14 <Slereah_> I started 'em computers in 95.
00:01:30 <RodgerTheGreat> GregorR: haha awesome
00:01:44 <Slereah_> Lynx to T shirt plox
00:01:48 <sauxdado> many really good IF games came out _after_ 95.
00:02:23 <Slereah_> But didn't have good publicity apparently.
00:02:26 <Slereah_> Never heard of them
00:02:39 <Slereah_> Even though I had CD's with 5000 sharewares back then
00:02:50 <RodgerTheGreat> GregorR: examples?
00:03:44 <GregorR> RodgerTheGreat: Some people just find it funny, some people think I'm making vast claims about all Internet users (which I am, but that's not the point X-P), some people are offended (somebody wearing a Linux T-shirt was :P), ...
00:03:55 <RodgerTheGreat> lmao
00:04:06 <sauxdado> Slereah_: really good things tend to not be very popular. Modern IF is often more of an art form than a game genre. So it's not very popular outside of a small community of artsy-programmer geeks.
00:04:09 <Slereah_> What are those T shirts :o
00:04:16 <RodgerTheGreat> that last one alone makes it beyond worthwhile
00:04:41 <Slereah_> sauxdado : I played silly arcade and Lucas Arts adventure games back then.
00:04:55 <Slereah_> What was popular
00:04:58 <GregorR> RodgerTheGreat: It definitely draws comments X-D
00:05:06 * sauxdado checks when photopia came out
00:05:17 <sauxdado> 1998
00:05:50 <sauxdado> and photopia kinda started a wave
00:06:15 <sauxdado> it's like... one of the first modern IF game or something
00:06:23 <sauxdado> so you're unlikely to have been playing any in 95
00:07:12 <Slereah_> sauxdado : I tried this one : http://en.wikipedia.org/wiki/The_Colour_of_Magic_%28computer_game%29
00:07:55 <sauxdado> well, that's ancient and probably very crappy
00:08:00 <Slereah_> And this one : http://www.mobygames.com/game/nine-princes-in-amber
00:08:14 <Slereah_> So no game from after 86 for me :o
00:08:23 <sauxdado> yeah
00:08:30 <ehird> sauxdado: what do you think of the HHGTTG game?
00:08:32 <ehird> that rocked
00:08:33 <Slereah_> I only tried them because I like the series.
00:08:52 <sauxdado> Slereah_: the difference between those games and modern IF games is about as big as the difference between _graphical_ games from now and from '86
00:09:01 <Slereah_> Heh.
00:09:13 <Slereah_> Although Nine prince in Amber was sort of graphical
00:09:15 <sauxdado> okay, maybe not as extreme, but very appreciable
00:09:25 <Slereah_> It had big ANSI pix to go with the text.
00:09:43 <sauxdado> ehird: i'm not really a big fan....
00:09:50 <ehird> sauxdado: sux
00:09:55 <sauxdado> ehird: i never got far in it (or any other infocom game)
00:09:56 <ehird> sauxdado: of the books or..
00:09:59 <sauxdado> they're so hard!
00:10:00 <Slereah_> But Maniac Mansion was okay though.
00:10:02 <ehird> but yeah
00:10:04 <ehird> i didn't get far either
00:10:07 <ehird> they are really really hard
00:10:08 <Slereah_> And it's from 87.
00:10:14 <sauxdado> it is funny though
00:10:16 <ehird> Slereah_: oh lawd maniac mansion owns
00:10:16 <sauxdado> > i
00:10:18 <sauxdado> You have:
00:10:26 <sauxdado> a splitting headache
00:10:27 <sauxdado> no tea
00:10:35 <Slereah_> Although Maniac Mansion was too linearly-non-linear
00:10:43 <ehird> sauxdado: I gotta admire the code that was behind that
00:10:50 <ehird> it's like AMICED in turkey bomb
00:10:51 <Slereah_> By that I mean that you could do a lot of things, but few of them got you to the end.
00:10:57 <ehird> Slereah_: That was the game's strength
00:11:01 <ehird> Ever microwaved the hamster?
00:11:07 <ehird> Grave of player appears in the yard.
00:11:10 <Slereah_> Never went far enough to do it.
00:11:11 <ehird> Well
00:11:16 <ehird> microwaved then gave back to owner
00:11:26 <Slereah_> But I did microwave it in DOTT!
00:11:36 <ehird> Slereah_: Lucasarts buddies <3
00:11:44 <Slereah_> Heh.
00:11:47 <Slereah_> SMOOCH
00:12:38 <Slereah_> I played most of them, except some of the very first.
00:12:48 <Slereah_> Zack and another one I think
00:12:55 <Slereah_> I never went far on Indy 3 also
00:13:02 <Slereah_> Fucking mazes.
00:13:03 <ehird> I tried Zack once
00:13:05 <ehird> It was haaaard
00:13:20 <ehird> I can 'speed run' Monkey Island 1 pretty well though
00:13:22 <ehird> 6 hours or so max
00:13:27 <ehird> Not really a speed run
00:13:29 <ehird> But not slow either
00:13:40 <Slereah_> I know most of the solutions :D
00:13:48 <Slereah_> I even got the DIG novel.
00:14:03 <ehird> dig's atmosphere was incredible
00:14:06 <ehird> it was really hard though
00:14:21 <ehird> i never actually completed monkey island 2
00:14:27 <ehird> because of lechuck in the fucking underground caves
00:14:31 <Slereah_> Well, it was packaged with Afterlife, which was even harder :o
00:14:38 <Slereah_> (Not an adventure game)
00:18:22 <ehird> Slereah_: monkey island 4 suxed
00:18:46 <Slereah_> That's because nothing is as good as it used to!
00:19:04 -!- timotiis has quit (Read error: 110 (Connection timed out)).
00:19:22 <ehird> Slereah_: but MI4 did sux.
00:19:36 <Slereah_> Also cartoon adventure games do not adapt well to
00:19:38 <Slereah_> 3D
00:20:03 <Slereah_> They should just have gone back to the serious graphics of 1 and 2 if they wanted to do 3D.
00:20:55 <ehird> Slereah_: Loom was a work of art. y/n
00:21:07 <Slereah_> y
00:21:20 <Slereah_> Although it was rather short.
00:22:43 <ehird> i never finished it
00:22:44 <ehird> ;(
00:23:43 <Slereah_> It can never be finished.
00:23:47 <Slereah_> it ends on a cliffhanger.
00:23:51 <Slereah_> SPOILER
00:24:10 <ehird> Slereah_: i think i know the ending
00:24:11 <ehird> maybe
00:24:11 <ehird> but
00:24:13 <ehird> it DOES end
00:24:14 <ehird> obviousl
00:24:15 <ehird> y
00:24:16 <ehird> right?
00:24:19 <ehird> i mean, it doesnt go
00:24:21 <Slereah_> Yes.
00:24:21 <ehird> "NO END FOR YOU"
00:24:23 <ehird> and stay like that forever
00:24:24 <ehird> :P
00:24:25 <Slereah_> It ends.
00:24:32 <ehird> but, Slereah_, sequels were planned
00:24:34 <ehird> thus the cliffhanger
00:26:03 <Slereah_> That's why people probably shouldn't do cliffhangers in a business where sequels usually end in the trash :o
00:28:23 <Slereah_> "The package also offered an illustrated notebook, The Book of Patterns, supposedly belonging to apprentice weavers in the game world."
00:28:35 <Slereah_> Man, I would have liked to know this when I got the game.
00:29:43 <Slereah_> Apparently the second game was about Nailbender
00:29:53 <Slereah_> I wonder what the interface would have been like.
00:30:06 <Slereah_> But I suppose that when you have a hammer, every problem looks like a nail.
00:31:21 <ehird> Back
00:31:33 <Slereah_> I should buy the Loom original package.
00:31:38 <ehird> <Slereah_> Apparently the second game was about Nailbender
00:31:38 <ehird> <Slereah_> I wonder what the interface would have been like.
00:31:38 <ehird> <Slereah_> But I suppose that when you have a hammer, every problem looks like a nail
00:31:39 <ehird> qdb-worthy
00:32:02 <Slereah_> Do we even have a qdb?
00:33:15 <GregorR> I love how you say that as if any channel without a quote database is living in the stone age :P
00:33:23 <ehird> Slereah_: We will.
00:33:31 <ehird> When eso-std.org is up.
00:33:34 <ehird> It will also have a pastebin
00:33:35 <ehird> ;)
00:34:31 <Slereah_> But when will ESO be thar!
00:39:10 <ehird> Slereah_: Later.
01:19:37 -!- Slereah_ has quit (Read error: 104 (Connection reset by peer)).
01:21:08 -!- Slereah has joined.
01:21:22 <Slereah> I accidentally kick my computer, and everything goes to hell
01:22:01 <ehird> heh
01:24:38 -!- Sgeo has joined.
01:26:22 <Slereah> Sgeo!
01:26:28 <Sgeo> Hi Slereah
01:26:58 <Corun> No.
01:27:05 <Slereah> Well, too bad.
01:27:15 <Slereah> It's so delicious and moist.
01:29:33 <ehird> Slereah: I am
01:29:46 -!- evincar has joined.
01:30:23 <evincar> ehird: My Selector interpreter is almost done. I just need to get off my ass and add BECOME and ESCAPE.
01:30:35 <Slereah> ehird : Mehby tomorrow.
01:30:41 <Slereah> I've got exam tomorrow.
01:30:45 <Slereah> And it's 2:30
01:30:56 <ehird> Slereah: AW COME ON
01:30:59 <ehird> I need delicious cake
01:30:59 <evincar> Heh. You and your silly time zone.
01:31:01 <ehird> It's 1:31
01:31:03 <ehird> and I need cake
01:31:04 <ehird> damnit
01:31:14 <Slereah> YOU SEE A CAKE IN FRONT OF YOU
01:31:17 <Slereah> WHAT DO YOU DO?
01:31:42 <evincar> EAT CAKE
01:32:08 <evincar> I CAN HAZ CAKE PLX?
01:32:51 <Slereah> YES YOU CAN
01:32:52 <evincar> Um.
01:32:55 <evincar> HALP!
01:33:03 <evincar> KTHXBYE
01:33:36 <evincar> Heh. The site error page reads "Esolang has a problem."
01:33:47 <evincar> ...which it does on a *normal* day. ^_^
01:34:39 <Slereah> That will teach you to program a website on PSOX!
01:35:22 * Sgeo doesn't appreciate using "PSOX" as a synonym for "buggy"
01:35:25 <evincar> btw, my hello world for Selector was a bit flawed. I forgot to add a PICK ZERO after the first GO BACK, so it output a null in place of an H.
01:35:40 <evincar> Fix't.
01:36:00 <ehird> * Sgeo doesn't appreciate using "PSOX" as a synonym for "buggy"
01:36:06 <Slereah> Sgeo : Here, have a kitten
01:36:07 <ehird> nobody cares what you appreciate in relation to PSOX
01:36:07 <Slereah> http://membres.lycos.fr/bewulf/Divers/27-esteem3.jpg
01:36:10 <ehird> just thought I'd point that out
01:37:36 <Slereah> Still no update on EsCo speaking of which :o
01:38:18 <ehird> Slereah: tee hee
01:41:48 -!- Slereah has quit (Read error: 104 (Connection reset by peer)).
01:42:49 <Sgeo> I don't see why "PSOX" would be a synonym for "buggy" though
01:42:54 <Sgeo> Is it really buggy?
01:43:29 <ehird> Sgeo: It's vaporware. But mainly we make fun of it because you'd never shut up about it.
01:43:37 <evincar> (Added a cat program)
01:43:39 <ehird> also, SAFETY
01:44:17 <Sgeo> ehird, if people expressed interest, I'd work on it. Also, if 1.0b1 is done, there will be no Safety
01:44:45 -!- Slereah has joined.
01:44:52 <Sgeo> wb Slereah
01:44:57 <Slereah> It seems that a slight shock makes my computer crash :o
01:45:07 <Slereah> I tried the obvious solution, by hitting it even more
01:45:10 <Slereah> But no dice
01:52:43 <evincar> Can I get your opinion on a site layout I'm designing?
01:52:47 <evincar> http://www.aquilocomputers.com/computers/delta.shtml
01:52:59 <evincar> You need a modern, fairly standards-compliant browser.
01:53:12 <ehird> evincar: Eurgh. My eyes broke.,
01:53:13 <evincar> It uses transparency a lot, and I'm wondering how readable it's going to be.
01:53:22 <ehird> evincar: And if you think that page is standards compliant think again.
01:53:37 <ehird> <li onmouseover="className='ie_hover';" onmouseout="className='';"> // unobtrusive javascript eh
01:53:41 <evincar> If you're viewing it in IE.
01:53:46 <Slereah> Why is there a pink computer you queermo.
01:53:49 <evincar> Which is evil and bad.
01:54:04 <evincar> I needed a preview image and that was the first case to show up on newegg.
01:54:10 <ehird> evincar: Err, do it via javascript.
01:54:15 <ehird> You can easily find the elemtns and apply the styles.
01:54:19 <ehird> The Behaviour library makes it good.
01:54:25 <ehird> evincar: Adn you have a doctype i nthe middle of the page, wtf.
01:54:32 <evincar> No I don't.
01:54:36 <evincar> That's the crappy hosting.
01:54:41 <ehird> evincar: Oh.
01:54:47 <ehird> Anyway.
01:54:50 <ehird> i don't really like the design.
01:54:51 <ehird> sorry.
01:55:18 <evincar> So how isn't it standards-compliant? Other than the fact that my code gets broken by my host?
01:56:11 <evincar> (@ehird)
01:56:27 -!- pikhq has quit (Read error: 104 (Connection reset by peer)).
01:56:51 <ehird> btw evincar
01:56:51 <ehird> http://bennolan.com/behaviour/
01:56:55 <ehird> for the js
01:57:50 <Sgeo> Is there any interest in PSOX?
01:58:25 <ehird> Sgeo: no
01:59:45 <evincar> ehird: please answer my question! If the code is nonstandard in too many places, I want to change it!
02:00:14 <ehird> evincar: not necessarily nonstandard
02:00:15 <ehird> but ugly
02:00:18 <ehird> don't inline JS like that
02:00:22 <ehird> it's about the spirit not the letter
02:00:24 <ehird> use behaviour like i linked
02:00:55 <evincar> I'll use something like it. I really want my own codebase on this one, since it's going to be proprietary.
02:02:22 <ehird> evincar: looool!
02:02:33 <ehird> you are refusing to use an open source library, because you're writing aproprietary site?
02:02:34 <ehird> that's great
02:02:35 <evincar> ehird: If people stopped using IE, I wouldn't have to waste time and money hacking for it. ^_^
02:02:44 <evincar> No, that's not it.
02:02:49 <ehird> evincar: So wait, what are you going to do, disable right clicking?
02:02:51 <evincar> It's because it's a learning experience.
02:03:02 <ehird> It's not a learning experience to rewrite a simple library :|
02:03:30 <ehird> bye for today :)
02:03:34 <evincar> And disabling right-click is the stupidest thing possible.
02:03:43 <Phenax> mm baloney and salsa sandwich
02:03:45 <evincar> Urgh.
02:03:46 -!- Corun has quit (Read error: 110 (Connection timed out)).
02:03:50 -!- ehird has quit (Remote closed the connection).
02:04:24 * evincar high-fives Phenax for making an awesome sandwich in the spirit of eso
02:04:41 <Phenax> :>
02:05:22 -!- pikhq has joined.
02:06:47 -!- evincar has quit ("ChatZilla 0.9.81 [Firefox]").
03:05:59 <Slereah> "Copies input to output until ASCII 26 (EOF)" <- why 26?
03:54:26 -!- GreaseMonkey has joined.
04:03:29 -!- sebbu2 has joined.
04:20:12 <RodgerTheGreat> 'later folks. I'm officially on vacation.
04:20:23 -!- RodgerTheGreat has quit.
04:20:54 -!- sebbu has quit (Read error: 110 (Connection timed out)).
04:20:54 -!- sebbu2 has changed nick to sebbu.
05:20:52 -!- Judofyr_ has quit (Read error: 110 (Connection timed out)).
06:31:47 -!- kalyaka has joined.
06:32:37 -!- kalyaka has left (?).
06:44:17 -!- Judofyr has joined.
06:53:07 -!- Judofyr_ has joined.
06:53:07 -!- Judofyr has quit (Read error: 104 (Connection reset by peer)).
07:19:03 -!- olsner has joined.
07:34:37 -!- Iskr has joined.
07:44:40 -!- pikhq_ has joined.
07:50:14 -!- pikhq has quit (Read error: 110 (Connection timed out)).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:16:18 <AnMaster> Deewiant, there?
08:16:30 <AnMaster> Deewiant, should & instruction handle negative numbers?
08:16:35 <AnMaster> as in -3 being input
08:16:48 <AnMaster> both ccbi and cfunge seems to strip the -
08:18:55 <AnMaster> Deewiant, also is this correct for mycouser in ccbi:
08:19:00 <AnMaster> UNDEF: STRN fingerprint not loaded, won't check I.
08:19:32 <AnMaster> I thought CCBI implemented STRN?
08:26:37 -!- Sgeo has quit (Read error: 110 (Connection timed out)).
08:28:31 <AnMaster> Phenax, there still? I made my counter a bit nicer: http://rafb.net/p/ijksY522.html
08:28:32 <AnMaster> bbl
08:40:10 <fizzie> Arr, I've lost the more optimized forms of that recursive fibonacci that were on mooz's befunge page which is now gone; I only have the intermediate form http://rafb.net/p/Ra5Nj196.html
09:53:38 <Deewiant> AnMaster: & is quite precisely specified, negatives don't work.
09:54:02 <Deewiant> as regards STRN, evidently the mycology version that's out has an 'r' left there instead of '('. :-P
09:57:45 <fizzie> That & specification sounds curious: it reads "up until (but not including) the point -- where the next digit would cause a cell overflow"; but in one particular case that depends on the character. For signed 32-bit, after reading "214748364" you should still read the next digit if it's 0-7, but not if it's 8 or 9.
09:59:04 <fizzie> I wonder how many implement it like that.
09:59:11 <Deewiant> CCBI does. :-)
09:59:26 <fizzie> I guess it needs a one-character lookahead for the "stopped being digits" thing anyway.
10:00:05 <Deewiant> although there's probably a specific input where CCBI gets confused and returns the wrong thing.
10:04:43 -!- bsmntbombdood has quit (Read error: 110 (Connection timed out)).
10:04:53 -!- bsmntbombdood_ has joined.
10:05:22 -!- Tritonio has quit (Remote closed the connection).
10:24:18 <AnMaster> back for a moment
10:24:25 <AnMaster> fizzie, I don't need to worry
10:24:27 <AnMaster> strtoll:
10:24:29 <AnMaster> If the correct value is outside the range of representable values, {LONG_MIN}, {LONG_MAX}, {LLONG_MIN}, or {LLONG_MAX} shall be returned (according to the
10:24:29 <AnMaster> sign of the value), and errno set to [ERANGE].
10:25:00 <AnMaster> from POSIX specs for strtol/strtoll
10:27:44 <AnMaster> hm wait, that may not work
10:42:13 <fizzie> And what good does strtol do, if you want to stop reading before an overflow would occurr, and not clamp the value.
10:42:15 <AnMaster> true
10:42:28 <AnMaster> guess I will have to change it
10:42:52 <AnMaster> ah, gnulib got a strtoll
10:42:53 <AnMaster> so I can just use a copy with some changes I hope
10:43:18 <AnMaster> gah, seems more complex
10:43:25 -!- GreaseMonkey has quit ("Unisex.").
10:43:25 -!- Slereah has quit (Read error: 104 (Connection reset by peer)).
10:43:25 -!- Slereah has joined.
11:04:24 <AnMaster> # define LLONG_MAX 9223372036854775807LL
11:04:25 <AnMaster> Please input a number: 777777777777777777777777777777777777777
11:04:25 <AnMaster> UNDEF: got 3014526681976609905 which is hopefully correct.
11:04:25 <AnMaster> hm
11:05:09 <AnMaster> it works fine for numbers that doesn't overflow
11:07:26 <AnMaster> 7777777777777777777 * 10 + 7 = 3990801482939571313 !?
11:07:34 <AnMaster> fizzie, Deewiant ^
11:07:39 <Deewiant> don't know, don't care
11:07:46 <AnMaster> stepping through gdb seems to show it is
11:07:49 <AnMaster> and that's insane
11:11:16 <fizzie> Well, I don't think that's very strange. 77777777777777777777 modulo 2^64 is 3990801482939571313.
11:11:49 <AnMaster> fizzie, it overflows in other words
11:11:58 <AnMaster> however, how do I detect that happened?
11:12:42 <AnMaster> if less than it was before?
11:12:49 <AnMaster> or are there cases where that won't work?
11:14:08 <AnMaster> fizzie, oh but I did use signed type, int64_t, not uint64_t
11:14:11 <AnMaster> hm
11:16:47 <fizzie> Signedness doesn't really matter that much. Or, well, it does matter in that signed integer overflow is undefined behaviour, but most places use two's-complement representation for signed numbers and do the sensible thing.
11:17:19 <AnMaster> well, how would you handle this reading then
11:17:55 <AnMaster> fizzie, the "overflow to avoid" would be either 32-bit signed or 64-bit signed, depending on compile time options
11:21:39 <fizzie> Well, if you want to catch the overflow before it happens, you need two tests; if x > FOO_MAX/10, then already the x*10 would overflow, and if that x*10 > FOO_MAX-a, then x*10+a would overflow.
11:23:35 <AnMaster> fizzie, is the result of signed overflow undefined or implementation defined
11:23:40 <AnMaster> in C99
11:23:53 <fizzie> Undefined is my guess, but I didn't check the standard.
11:25:40 <AnMaster> it doesn't seem to be mentioned with the word "overflow" at least
11:26:05 <AnMaster> only thing about overflow is for floating point
11:27:02 <AnMaster> oh I see
11:27:14 <AnMaster> search doesn't find ligatures in the pdf
11:27:28 <AnMaster> "overflow" that isn't fl but a ligature
11:27:33 * AnMaster sighs
11:29:53 <fizzie> Well, 3.4.3 undefined behavior "An example of undefined behavior is the behavior on integer overflow."
11:30:21 <AnMaster> yeah
11:30:29 <AnMaster> fizzie, and that was the ligature
11:30:40 <AnMaster> so didn't find it with a search at first
11:30:43 <AnMaster> brb, phone
11:30:45 <fizzie> Xpdf really should allow searching with regexps, 'over.low' would've helped.
11:35:10 <AnMaster> well kpdf
11:35:21 <AnMaster> but same engine I think
11:35:29 <AnMaster> poppler or whatever it is called
11:35:56 <AnMaster> fizzie, even odder is that the search dialog contains a regex checkbox, but it is greyed out
11:36:10 <AnMaster> it is the standard KDE search dialog so...
12:01:34 <Slereah> Gaiz.
12:01:41 <Slereah> Any of you knows how to use rost?
12:01:50 <Slereah> Frost
12:31:52 <AnMaster> Frost? sounds familiar
12:31:56 <AnMaster> can't place the name
12:32:05 <AnMaster> Slereah, related to freenet?
13:26:19 -!- Corun has joined.
13:35:04 <Slereah> AnMaster : yes
13:35:31 <Slereah> Like the usenet of freenet.
13:43:41 -!- Corun has quit (Connection timed out).
13:45:11 <AnMaster> Slereah, I used that once
13:45:14 <AnMaster> was ages ago
13:45:22 <AnMaster> don't remember really
13:45:27 <AnMaster> well first you need freenet
13:45:32 <AnMaster> then you need frost
13:45:39 <Slereah> Frost is already isnstalled
13:45:45 <Slereah> Would you happen to know how to download the archives of a group?
13:45:48 <AnMaster> both are coded in java iirc, so you'll need a JRE
13:45:58 <Slereah> I don't have anything more recent than the instalation.
13:46:02 <AnMaster> Slereah, I think they are announced on some list
13:46:08 <AnMaster> if they are public
13:46:15 <AnMaster> there is no list of all the groups existing
13:46:25 <AnMaster> rather, you got to know the name
13:46:26 <Slereah> I already know the groups
13:46:35 <Slereah> What I want is, the messages from before I got thar.
13:46:43 <AnMaster> there is some list where ppl announce groups
13:46:52 <AnMaster> Slereah, huh? that is not possible really
13:47:05 <Slereah> I remember doing that on some newsgroup :o
13:47:11 <AnMaster> there is no archive of old messages
13:47:14 <Slereah> Although it was not me, but a guy who helped me.
13:47:30 <Slereah> I got like messages years old that way
13:47:47 <AnMaster> nor is there by default for usenet
13:48:11 <AnMaster> Slereah, also by default frost will expire old messages iirc
13:48:13 <Slereah> Are newsgroups just utterly terrible?
13:48:22 <AnMaster> er?
13:48:30 <Slereah> You know, as a value judgement.
13:48:43 <AnMaster> Slereah, look, if no one is doing public logging of an irc channel, there won't be any history
13:48:52 <AnMaster> it's the same for usenet afaik
13:48:58 <AnMaster> and definitly the same for freenet
13:49:04 <AnMaster> where logging would be considered BAD as well
13:49:31 <Slereah> It is quite bad when there's the concept of threads involved.
13:49:45 <Slereah> Even a few days of old messages would be nice!
13:50:01 <Slereah> Not to post repetitive threads that you can't see.
14:25:07 <AnMaster> Slereah, anonymity and security are considered more important I think
14:27:00 <Slereah> Making an archive won't make them less anonymous :o
14:27:21 <Slereah> And since anyone can join, not that less secure.
14:28:56 <AnMaster> that depends on group
14:28:59 <AnMaster> some need key
15:16:52 -!- Judofyr_ has changed nick to Judofyr.
15:26:56 -!- chammiya has joined.
15:27:10 -!- chammiya has quit (Client Quit).
15:27:55 -!- jix has joined.
16:08:07 -!- Judofyr has quit (Read error: 104 (Connection reset by peer)).
16:08:38 -!- Judofyr has joined.
16:11:28 -!- Judofyr has quit (Read error: 104 (Connection reset by peer)).
16:11:44 -!- oklopol has joined.
16:11:54 -!- Judofyr has joined.
16:52:17 -!- ehird has joined.
16:58:01 -!- ehird has quit (Remote closed the connection).
17:14:57 -!- ehird has joined.
17:16:04 <Phenax> http://pastebin.ca/1005115 - How come this doesn't work in Befunge? (Noob)
17:16:18 <Phenax> Should endlessly loop through numbers and output 1 if even 0 if odd
17:26:19 <oklopol> let's take a look
17:27:29 <oklopol> wait a bit, i need to look up what the opers are
17:28:04 <Phenax> http://quadium.net/funge/spec98.html
17:28:17 <Phenax> http://quadium.net/funge/spec98.html#Quickref
17:29:05 <oklopol> ah
17:29:20 <oklopol> well, naturally that will crash after 9, you're aware of that?
17:29:50 <Phenax> well, i need to do 010p somewhere before that
17:29:56 <Phenax> but why isn't it working up to 9
17:31:07 <oklopol> what does it do ?
17:31:17 <Phenax> Should endlessly loop through numbers and output 1 if even 0 if odd
17:31:24 <oklopol> yes, but what does it do?
17:31:31 <Phenax> oh
17:31:33 <Phenax> nothing
17:31:44 <Phenax> i think it gets stuck in an infinite loop somewhere
17:32:43 <Phenax> I've got to go now.. i'll play around with it later
17:32:53 <oklopol> i'll try and locate the problem
17:32:57 <fizzie> Single-stepping with the javascript befunge interpreter made it look like it'd work up to 9.
17:33:11 <oklopol> well, there you havit
17:33:12 <oklopol> *have it
17:33:19 <fizzie> But if you're not printing a newline, your interpreter might not show the output.
17:36:39 <fizzie> After '9' it first turns to a ":" which shouldn't cause too much trouble, then a ";" which in funge98 should probably be a no-op since it'll just wrap-around, and after that it'll become a "<", at which points there'll be "><" in the top left corner and it'll get stuck there.
17:36:55 <fizzie> I get an output of "1 0 1 0 1 0 1 0 1 0 1 1" before that.
17:37:35 <ehird> fizzie - the third befunge expert in this channel!
17:40:19 <fizzie> Well, I really wouldn't use the word "expert"; all I've done in Befunge (apart from some even sillier tests) are that recursive fibonacci and a turing machine interpreter, syntax-highlighted; and I even lost that last one.
17:41:52 <ehird> fizzie: But you can read and write it ;)
17:43:25 <fizzie> There's not that many instructions in it, after all.
17:43:58 -!- Corun has joined.
17:56:34 -!- Corun has quit ("This computer has gone to sleep").
18:03:13 <Deewiant> ehird: and he's partially implemented a Befunge-98 interpreter. :-P
18:03:25 <ehird> Deewiant: WHO HASN'T
18:03:25 <ehird> :p
18:03:27 <Deewiant> :-)
18:03:38 <Deewiant> s/implemented/released/ ;-)
18:04:35 <fizzie> I also has a habit of doing a befunge-93 interpreter (except with "a-f work as hexadacimal digits, and ' like in funge-98" features) whenever learning a new language.
18:08:42 <Phenax> Yeah.. My problem I fixed
18:08:52 <Phenax> I just figured out ccbi debugger well :)
18:09:00 <Phenax> http://pastebin.ca/1005156 -> working copy
18:09:14 <Phenax> change 'a' to '52*' on befunge 93 obv
18:10:13 <Phenax> g2g
18:12:05 <AnMaster> cfunge 0.2.1 will be released in a few hours
18:14:07 <AnMaster> fizzie, "syntax-highlighted"?
18:14:18 <AnMaster> how on earth do you syntax highlight befunge?
18:14:25 <ehird> AnMaster: um
18:14:26 <ehird> his OUTPUT
18:14:29 <ehird> was syntax hgihglihted
18:14:30 <AnMaster> after all, stuff can mean different things depending on direction
18:14:30 <ehird> and besides
18:14:31 <AnMaster> ah ok
18:14:32 <AnMaster> I see
18:14:35 <ehird> of course you can syntax highlight befunge
18:14:40 <ehird> it just needs to be clever
18:14:47 <AnMaster> ehird, well extremely cleaver
18:15:00 <ehird> AnMaster: just make things *shade*
18:15:02 <ehird> :DD
18:15:06 <ehird> then they combine
18:15:15 <AnMaster> + I got no clue how to handle stuff like, something being a string one way, and a code path the other
18:15:16 <fizzie> No, no. The code was syntax-highlighted.
18:15:25 <fizzie> I think I used about a dozen different colors for it.
18:15:26 <AnMaster> say:
18:15:30 <AnMaster> v
18:15:36 <AnMaster> "abc"
18:15:46 <AnMaster> +
18:15:47 <AnMaster> or whatever
18:15:58 <ehird> AnMaster: you shade it so that "a and c" are string colour
18:16:01 <ehird> v and + are their colour
18:16:06 <ehird> and b is a blend of its instruction colour
18:16:06 <AnMaster> and then there is x
18:16:07 <ehird> and string colour
18:16:08 <ehird> :DDD
18:16:12 <AnMaster> so you can have a string spread out
18:16:17 <ehird> AnMaster: read what i said
18:16:19 <ehird> it's evil
18:16:20 <ehird> but delicious
18:16:24 <fizzie> I just made an HTML table, with different background colors for different areas. I think there were three sets of colors.
18:16:28 <AnMaster> by first setting delta to be non-cardinal
18:16:59 <fizzie> And then a documentation block. "This ugly-red part frozzes the buzznigator. The ugly-green part is where the magic happens. This even uglier color... I don't know what it does."
18:17:13 <AnMaster> ehird, true, but you still can't handle non-cardinal code paths, in fact I think being able to perfectly syntax highlight any possible befunge would require tracing the program
18:17:16 <ehird> fizzie: Literate colorforth!
18:17:29 <ehird> AnMaster: that could work ... most of the time
18:17:34 <AnMaster> ehird, say if the program used p to put an x in the code, then executed that x
18:17:38 <ehird> if you don't use filesystem and similar fingerprints
18:17:38 <ehird> :D
18:17:55 <AnMaster> how the heck would the syntax highlighter know where the string was
18:18:18 <AnMaster> ehird, err, x sets delta, that means, you can do stuff like executed every third instruction diagonally
18:18:19 <ehird> AnMaster: tracing the program
18:18:24 <ehird> AnMaster: ;D
18:18:25 <AnMaster> string handling that way would suck
18:18:43 <AnMaster> ehird, right, as if you want that on a buggy program with o instructon
18:18:47 <AnMaster> instruction*
18:18:58 <AnMaster> and then there is ?, so tracing *may* lead to different results
18:19:00 <ehird> AnMaster: i'm joking. Can you please make yourself familiar with the concept?
18:19:12 <AnMaster> ehird, oh, you seemed like serious
18:19:30 <ehird> AnMaster: I was, in an evil-maniac-grin-with-bloodshot-gawping-eyes kind of way
18:19:37 <AnMaster> hah
18:19:47 <fizzie> I think you might get relatively interesting-looking syntax highlighting with purely static program analysis, although of course all Real Befunge Programs are self-modifying-to-a-high-degree. Still, it'd be... colorful.
18:36:44 <AnMaster> heh
18:36:57 <sauxdado> syntax highlighting befunge has been done
18:37:47 <sauxdado> (using tracing and re-tracing when the program gets modified, i'm pretty sure)
18:46:23 -!- oerjan has joined.
18:54:14 -!- Corun has joined.
18:58:32 <AnMaster> sauxdado, yeah, that would be the only way for non-simple cases
18:58:57 <AnMaster> trace highlight that way has been done for befunge93 I'm pretty sure
18:59:06 <AnMaster> but rendered as a image
18:59:42 <sauxdado> oh, you want some other befunge?
18:59:54 <sauxdado> i guess it gets trickier with 98 features
19:00:44 <AnMaster> sauxdado, of course I want 98
19:00:56 <sauxdado> oh
19:01:13 <AnMaster> or rather, that is what I would care about
19:01:24 <AnMaster> I'm not that interested in highlighting really
19:01:28 <AnMaster> of befunge I mean
19:01:54 * AnMaster is about to release cfunge soon, waiting for stuff to build and upload it
19:02:01 <AnMaster> version 0.2.1-pre1
19:05:59 <Deewiant> got TRDS done yet?
19:10:29 -!- jix has quit (Nick collision from services.).
19:10:39 -!- jix has joined.
19:20:28 <AnMaster> cfunge-0.2.1-pre1 uploaded
19:20:31 <AnMaster> Deewiant, I won't do it
19:20:32 <AnMaster> ..
19:20:50 <AnMaster> Deewiant, https://sourceforge.net/project/shownotes.php?group_id=221310&release_id=596614
19:21:30 <ehird> bah, that's it
19:21:37 <ehird> i'm writing a funge-98 interpreter
19:21:40 <ehird> f*ck you guys
19:21:42 <ehird> :|
19:21:46 <AnMaster> ehird, what?!
19:21:49 <ehird> :D
19:21:58 <Deewiant> AnMaster: shame. :-)
19:22:08 <ehird> AnMaster: i can no longer face the torment
19:22:18 <ehird> and trds NEEDS IMPLEMENTING DAMNIT
19:22:33 <AnMaster> ehird, ccbi got it
19:23:13 <ehird> AnMaster: ccbi is not fruit
19:23:20 <AnMaster> err?
19:24:19 <oerjan> common citrus-based implementation?
19:24:39 <Deewiant> :-D
19:24:53 <ehird> oerjan: hah
19:25:01 <ehird> AnMaster: ccbi is NOT fruit
19:26:00 <ehird> My interp will be called cegnuf
19:26:04 * ehird glances angrily at AnMaster
19:26:44 <ehird> handprint CNUF
19:28:07 <Deewiant> :-D
19:28:35 <ehird> Deewiant: any suggestions on how to do N-funge?
19:28:37 <ehird> i mean..
19:28:42 <ehird> how on earth will I do the hashtable
19:28:42 <ehird> :P
19:28:58 <Deewiant> :-P
19:29:12 <AnMaster> cfunge isn't fruit either?
19:29:13 <AnMaster> ehird, ??
19:29:23 <Deewiant> cell[cellidx][cellidx][size_t]
19:29:33 <Deewiant> where the size_t is N. :-)
19:29:38 <ehird> AnMaster: CCBI IS NOT FRUIT DAMNIT
19:29:40 <AnMaster> ehird, just use a hash with, say, void* and size_t len
19:29:45 <ehird> Deewiant: hahaha
19:29:53 <ehird> AnMaster: yeah
19:29:57 <ehird> well
19:30:07 <ehird> coord_t*
19:30:08 <ehird> :-)
19:30:11 <ehird> or rather
19:30:15 <ehird> cg_coord_t*
19:30:20 <AnMaster> ehird, it is easy to do it for any finite defined n at compile time
19:30:24 <ehird> by which point i'll have sex with c's _t notation
19:30:25 <ehird> and just do
19:30:26 <ehird> COORD*
19:30:36 <ehird> I don't know how having sex with the notation makes me do that though
19:30:38 <ehird> It's NP-complete
19:30:43 <ehird> AnMaster: at run-time
19:30:50 <AnMaster> would be easy to change cfunge to be able to do either 1 or 3 dimensions at *compile* time
19:30:56 <AnMaster> but I'd hate to do it at runtime...
19:32:57 <ehird> AnMaster: hm, should I support up to size_t's max in dimensions ;)
19:33:04 <ehird> it'll slow things down a lot if I do that
19:33:14 <ehird> so I'm considering just using a 'char'
19:33:17 <ehird> I mean, 255d is a lot
19:33:54 <Deewiant> why would it slow things down
19:33:55 <AnMaster> err
19:33:59 <AnMaster> BIGNUM?
19:34:07 <Deewiant> or how are you planning on implementing this
19:34:15 <AnMaster> ehird, point is you need to select it at start of program
19:34:24 <AnMaster> due to vector size
19:34:29 <ehird> AnMaster: ... bignum-dimensions?
19:34:30 <ehird> i think not
19:34:36 <ehird> Deewiant: the hash function, etc
19:34:38 <ehird> and .. stuffs
19:34:42 <AnMaster> ehird, yeah and bignum data type!
19:34:53 <AnMaster> ehird, there are general purpose hashing functions
19:34:56 <AnMaster> just define:
19:35:07 <AnMaster> typedef struct COORD {
19:35:11 <AnMaster> size_t len;
19:35:22 <ehird> that's not the point AnMaster
19:35:25 <AnMaster> int64_t dimension[]
19:35:27 <AnMaster> }
19:35:30 <AnMaster> add the missing ;
19:35:32 <ehird> AnMaster: you don't get it
19:35:35 <AnMaster> that works in C99
19:35:39 <AnMaster> ehird, not really no
19:36:30 <Deewiant> ehird: I'm not sure you'd need to make a hash table of the dimensions, why not just an ordinary table
19:36:46 <ehird> Deewiant: er what
19:36:48 <ehird> fungespace is a hash table
19:36:55 <Deewiant> yep
19:37:07 <Deewiant> so essentially you have N nested hash tables
19:37:15 <Deewiant> where N is your dimensionality
19:37:19 <Deewiant> or you have one hash table
19:37:23 <Deewiant> which has coordinates like AnMaster's
19:37:35 <Deewiant> in either case, where are you hashing N?
19:37:53 <Deewiant> or needing values which index to [1..N] anyway
19:37:59 <Deewiant> or am I confused :-S
19:38:46 -!- Corun has quit (Read error: 110 (Connection timed out)).
19:39:39 <ehird> one hash table
19:39:42 <ehird> Deewiant: you need to hash N elements
19:39:53 <Deewiant> yep
19:40:27 <Deewiant> so... where does it matter whether the type of N is ubyte or size_t, it should make no difference until N > 255
19:40:53 <Deewiant> in that if N == 255+1 for ubyte, it's 0, wheras for size_t it's 256. ;-)
19:41:24 <ehird> Deewiant: OK, not speed, I meant in space
19:41:38 <Deewiant> I'd say the difference is negligible still
19:42:00 <Deewiant> (x+1) times y bytes or x times y bytes + 1
19:43:59 <ehird> Deewiant: can you even put a size_t in an a[b] in C?
19:44:17 <Deewiant> eh what now?
19:44:35 <Deewiant> "an a[b]"?
19:45:05 -!- Corun has joined.
19:47:05 <ehird> an a[b] expr
19:47:23 <Deewiant> size_t x[];
19:47:28 <Deewiant> size_t y = x[0];
19:47:42 <Deewiant> I have no idea what you're trying to ask :-P
19:48:35 <Deewiant> size_t is a type, you can use it the way you can use any integer type in C.
19:49:18 <ehird> uh
19:49:19 <ehird> i know that
19:49:27 <Deewiant> so what are you asking?
19:55:48 -!- Sgeo has joined.
19:59:10 <AnMaster> ehird, yeah tell us
19:59:44 <AnMaster> as for type used to index array, it would be size_t or ptrdiff_t in fact
20:00:00 <AnMaster> actually any integer type would work I thin
20:00:03 <AnMaster> think*
20:00:10 <AnMaster> negative integer may work even
20:00:18 <AnMaster> not sure about that though
20:00:49 <Deewiant> of course it'll work
20:00:57 <Deewiant> a[i] is just *(a+i)
20:01:19 <AnMaster> just not sure if it is allowed syntax to have negative i
20:01:23 <AnMaster> or if it is undefined or such
20:01:29 <Deewiant> there's no syntax about it
20:01:32 <Deewiant> that's all it is
20:02:03 <Deewiant> if you have int x[5] = {0,1,2,3,4}; int *p = x+2; then p[-1] == 1
20:02:32 <Deewiant> I'm sure the compiler might warn you though since there's no reason why you'd want to do something like that :-P
20:05:20 <AnMaster> yeah probably
20:05:32 <AnMaster> Deewiant, however x[-1] is undefined I assume?
20:05:48 <Deewiant> undefined or just plain illegal
20:05:53 <Deewiant> probably the latter
20:05:58 <Deewiant> you're accessing memory you haven't allocated
20:06:10 <AnMaster> it *could* work
20:06:17 <AnMaster> depending on if there is anything in front
20:06:41 <Deewiant> then it's undefined, I don't know
20:06:44 <Deewiant> it's not something you want to do anyway
20:06:50 <AnMaster> indeed
20:06:53 <AnMaster> with that I agree
20:06:54 <Deewiant> since you can't know whether there is anything in front
20:08:39 <ehird> x[-1] is just like x[45345]
20:08:43 <ehird> same definedness
20:09:11 <Deewiant> yep, and I don't know the definedness :-)
20:09:16 <ehird> Deewiant: 'not'
20:09:31 <Deewiant> 'not', or 'defined' && == illegal
20:09:52 <oerjan> iirc even x-1 (as a pointer) is undefined if x is an array
20:11:03 <ehird> oerjan: demons flying out of your NOSE
20:12:27 <Deewiant> oh noes, nasal demons
20:13:44 <sauxdado> oerjan's like that
20:13:52 <sauxdado> full of little surprises
20:18:19 * oerjan notes something did try to fly _into_ his nose earlier today. gah!
20:22:20 <ehird> oerjan: What, demons?
20:23:52 <oerjan> i cannot say as i failed to get a good glimpse of it
20:25:29 <oerjan> for all i know they may be inside, eating my brain at this very moment
20:25:58 <oklopol> ehird: fizzie: But you can read and write it ;) <<< well, i did just read the example too, that's not really a task
20:26:34 <ehird> oklopol: somehow my client only highlights up to <<<
20:26:35 <ehird> weird
20:26:37 <ehird> oklopol: test <<< a
20:33:50 -!- Tritonio has joined.
20:34:44 <oklopol> making n dimensions is trivial!
20:35:09 <oklopol> ...what is that weird language you're speaking there, some new syntax for python?
20:35:50 <ehird> heh
20:37:00 <Sgeo> ehird, you want a <<< test ehird like <<< this?
20:38:34 <oklopol> i'm thinking it is trying to highlight pasted irc messages separately from the actual message so if <nick> says ehird then the end is highlight-colored!
20:39:18 <ehird> <oklopol> ehird: fizzie: But you can read and write it ;) <<< well, i did just read the example too, that's not really a task
20:39:21 <ehird> the notify highlight ends at <<<
20:43:25 <Deewiant> or does it end at the )? :-)
20:45:42 <oklopol> ehird: ;) <<< this is a smiley
20:45:54 <oklopol> ehird: ;) is a smiley, i mean
20:46:24 <oerjan> ;)<<< this is a smiley for ants
20:49:06 <Sgeo> ehird <<< ehird <<< test2 <<< test3 which part did it highlight to?
20:49:26 <ehird> all of it
20:49:27 <ehird> :|
20:49:55 <oklopol> this is serious business, we just have to know what the logic is
20:50:03 <oklopol> let's all make tests all night long
20:50:59 * Sgeo throws a PSOX in there j/k
20:52:12 <ehird> oklopol: just paste your previous line
20:52:15 <ehird> ehird: fizzie: But you can read and write it ;) <<< well, i did just read the example too, that's not really a task
20:52:16 <ehird> that one
20:53:21 <Sgeo> ehird: fizzie: But you can read and write it ;) <<< well, i did just read the example too, that's not really a task
20:53:22 <Sgeo> that?
20:59:10 -!- Slereah has quit (leguin.freenode.net irc.freenode.net).
20:59:10 -!- lifthrasiir has quit (leguin.freenode.net irc.freenode.net).
20:59:10 -!- cmeme has quit (leguin.freenode.net irc.freenode.net).
20:59:50 -!- Slereah has joined.
20:59:50 -!- cmeme has joined.
20:59:50 -!- lifthrasiir has joined.
21:09:34 <ehird> oklopol: sooo
21:09:36 <ehird> ircd golf
21:09:41 <ehird> well
21:09:43 <ehird> don't GOLF it
21:09:44 <ehird> that would be silly
21:09:49 <ehird> the rfc is too big for that
21:09:54 <ehird> but ... try and make it short
21:10:00 <ehird> just .. still indent it and have newlines ;)
21:11:28 <oklopol> your mother is silly, i wanna golf it
21:12:29 <ehird> oklopol: have you ever read the rfc
21:12:38 <ehird> you need to implement easily 100 cmds or so
21:13:05 <oklopol> i think i've read it, but i definately know how long it is
21:13:33 <oklopol> how does that have anything to do with being fun to golf?
21:14:08 <ehird> oklopol: it'll be very hard to write like that
21:14:36 <Sgeo> RFC for what?
21:15:00 <oklopol> Sgeo: the words are there.
21:16:43 -!- andreou has joined.
21:17:22 <andreou> anyone using contextfree?
21:18:13 <Slereah> Context free grammar?
21:18:32 <andreou> well i suppose you could say it's a context-free grammar
21:18:36 <andreou> http://www.contextfreeart.org/
21:22:13 <ehird> oklopol: how's the ircd going
21:24:36 <oklopol> oh i'm not gonna start *now*, i'm rewriting my todo list in rot-13
21:25:20 <oerjan> and then you have to wash your hair?
21:25:42 <oklopol> also i have three languages in the making atm, so i'm a bit exfoculated
21:26:09 <oklopol> oerjan: as a matter of fact i've reduced showering into once/twice a week, so not for a while
21:26:16 <ehird> oklopol: come on, i'll give you money
21:26:16 <ehird> :O
21:26:18 * oerjan congratulates oklopol with inventing a word that google cannot find
21:26:37 <oklopol> exfoculate? how can something that beautiful not exist
21:28:00 <oerjan> foculate can be googled, but only 13 hits, so may be misspelled
21:29:11 <oklopol> "Formulated to foculate (group together in a mass) dirt particles from water..."
21:29:24 <oerjan> focculate gives a bit more
21:29:25 <ehird> oerjan: They probably have their asses under the knunder.
21:29:33 <ehird> (That's only funny 'cause I internet-know the guy who came up with that word.)
21:29:38 <ehird> (Kinda)
21:31:12 <Slereah> Maybe... Exfoliate?
21:32:42 <oerjan> ah, those are misspellings of "flocculate"
21:33:50 <ehird> oklopol: iz ircd dun
21:35:55 <oklopol> i'm leaving soon, actually
21:45:15 -!- Iskr has quit ("Leaving").
21:48:03 -!- oerjan has quit ("leaving").
21:53:51 <ehird> brb in 30 mins
22:03:29 <oklopol> brb in 30 YEARS
22:03:30 -!- oklopol has quit ("( www.nnscript.com :: NoNameScript 4.2 :: www.regroup-esports.com )").
22:07:48 <sauxdado> i bet he wasn't joking.
22:13:29 <AnMaster> sauxdado, sure?
22:13:39 <AnMaster> I think he will be back tomorrow at most
22:13:42 <AnMaster> or next week
22:14:06 <sauxdado> i suppose we could ban him for 30 years
22:15:53 <AnMaster> don
22:15:54 <AnMaster> don't*
22:30:12 -!- ais523 has joined.
22:40:54 -!- ais523 has changed nick to ais523|busy.
22:53:50 <ehird> back
22:53:57 <ehird> <AnMaster> don't*
22:53:58 <ehird> do
22:56:49 <sauxdado> the only problem is
22:56:53 <sauxdado> we could ban him for 30 years
22:57:05 <sauxdado> but that's only half the process
22:57:16 <sauxdado> we also need to ensure that he comes back afterwards
22:57:43 <ehird> sauxdado: stalk him
22:57:51 <ehird> for 30 years
22:57:55 <ehird> then kidnap etc
22:58:40 <sauxdado> yeah
22:58:53 <sauxdado> also we'd have to ensure that freenode still exists in 30 years
23:00:03 <ehird> sauxdado: nah we can define an official convention for moving it around
23:00:07 <ehird> then itd be formal
23:00:12 <ehird> and tyhe same place
23:00:51 <sauxdado> we might as well just define that for 30 years #esoteric exists in outer space, and starting in 30 years, it exists right where oklopol is
23:01:18 <ehird> heh
23:01:37 <sauxdado> if oklopol comes into this channel, he's not actually in #esoteric.
23:01:41 -!- Corun has quit (Read error: 110 (Connection timed out)).
23:01:42 <ehird> sauxdado: but what if he dies
23:01:57 <ehird> or becomes an astronaut
23:02:14 <sauxdado> death doesn't matter
23:02:33 <sauxdado> and i guess instead of "outer space", just define "somewhere where oklopol isn't"
23:03:04 <ehird> sauxdado: but what if there is no afterlife and his body decays?
23:03:08 <ehird> where is 'he'?
23:04:56 -!- digital_me has joined.
23:05:00 <sauxdado> hm
23:05:20 <sauxdado> yes, that's a problem. We must keep him alive for 30 yeras
23:05:21 <sauxdado> *years
23:05:33 <ehird> sauxdado: hah
23:05:47 <sauxdado> not just alive, but we must keep him _oklopol_
23:05:53 <sauxdado> he's not allowed to change into something else
23:06:05 <sauxdado> just to be on the safe side, we can't let him for example use dentures
23:06:18 <ehird> sauxdado: looool
23:06:27 <sauxdado> of course, in 7 years all the molecules in your body get replaced...
23:06:42 <ehird> sauxdado: that's a problem...
23:06:46 <sauxdado> the question of identity is really tricky
23:07:39 <ehird> sauxdado: we need a philosopher and a biologist, stat
23:08:09 <sauxdado> alternatively, we could redefine oklopol to mean something more convenient
23:08:23 <sauxdado> for example, define oklopol to be "that which will come to #esoteric in 30 years"
23:08:38 <ehird> sauxdado: hahahahahahahah
23:08:42 <ehird> this is great
23:08:56 <ehird> but what if nothing comes
23:09:05 <sauxdado> then it wasn't oklopol :)
23:09:11 <ehird> does the *absense* of something come?
23:09:34 <sauxdado> in that case, oklopol would be the absence of non-oklopol.
23:09:56 <ehird> hah
23:10:24 <sauxdado> we need to tell oklopol that he's been redefined
23:10:54 <ehird> sauxdado: but he wont be back for 30ys
23:11:15 <sauxdado> i mean, we need to tell that which used to be oklopol.
23:18:20 -!- comex has quit (Connection timed out).
23:18:21 -!- Tritonio has quit (Read error: 104 (Connection reset by peer)).
23:18:44 -!- comex has joined.
23:26:21 -!- sauxdado has changed nick to saudado.
23:37:31 -!- Tritonio has joined.
23:45:10 -!- bsmntbombdood_ has changed nick to bsmntbombdood.
23:48:14 -!- jix has quit ("CommandQ").
23:51:53 -!- Judofyr has quit (Read error: 104 (Connection reset by peer)).
23:52:24 -!- Judofyr has joined.
23:54:13 -!- digital_me has quit ("leaving").
23:54:19 -!- Sgeo has changed nick to iGeo.
23:54:32 -!- iGeo has changed nick to iSgeo.
23:55:22 -!- iSgeo has changed nick to Sgeo.
00:06:40 -!- atsampson has quit (Remote closed the connection).
00:06:53 -!- atsampson has joined.
00:07:50 -!- digital_me has joined.
00:36:40 -!- pikhq_ has changed nick to pikhq.
00:45:31 <ehird> Bye for today :)
00:45:47 -!- ais523|busy has quit ("(1) DO COME FROM ".2~.2"~#1 WHILE :1 <- "'?.1$.2'~'"':1/.1$.2'~#0"$#65535'"$"'"'&.1$.2'~'#0$#65535'"$#0'~#32767$#1"").
00:46:06 -!- ehird has quit (Remote closed the connection).
00:53:04 -!- GreaseMonkey has joined.
00:58:28 <Sgeo> <ais523|busy> reminds me of the esoteric file system idea I had, where all files were functions, Unlambda-style, which you evaluated to get the file's contents. That way, you could do special files easily, and files could be stored compressed on disk if necessary, and you could have lazy files which were infinitely long...
01:00:13 <GregorR> Seeking = PITA
01:05:47 -!- Tritonio has quit (Read error: 113 (No route to host)).
01:06:20 -!- CakeProphet has joined.
01:08:00 -!- Tritonio has joined.
01:09:56 -!- Tritonio has quit (Client Quit).
01:09:58 -!- Slereah has quit (Read error: 104 (Connection reset by peer)).
01:10:41 -!- Slereah_ has joined.
01:16:07 -!- ihope has joined.
01:32:29 -!- Tritonio has joined.
01:39:17 -!- CakeProphet has quit ("haaaaaaaaaa").
01:41:22 -!- Corun has joined.
01:45:36 -!- Corun has changed nick to NeilStoleMySleep.
01:58:24 -!- NeilStoleMySleep has changed nick to Corun.
02:26:44 -!- Judofyr_ has joined.
02:26:44 -!- Judofyr has quit (Read error: 104 (Connection reset by peer)).
02:35:53 -!- Slereah_ has quit (leguin.freenode.net irc.freenode.net).
02:35:53 -!- digital_me has quit (leguin.freenode.net irc.freenode.net).
02:35:53 -!- sekhmet has quit (leguin.freenode.net irc.freenode.net).
02:36:16 -!- Slereah_ has joined.
02:36:16 -!- digital_me has joined.
02:36:16 -!- sekhmet has joined.
03:28:35 -!- olsner has quit ("Leaving").
04:42:52 -!- Corun has quit ("This computer has gone to sleep").
05:42:50 -!- digital_me has quit (Read error: 113 (No route to host)).
06:08:57 -!- lifthrasiir has quit ("leaving").
06:09:05 -!- lifthrasiir has joined.
07:11:52 -!- Judofyr_ has quit.
07:21:30 -!- Sgeo has quit (Read error: 110 (Connection timed out)).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:22:07 -!- saudado has changed nick to lament.
08:29:07 -!- Iskr has joined.
10:45:54 -!- Tritonio has quit (Remote closed the connection).
10:48:46 -!- Tritonio has joined.
10:51:48 -!- GreaseMonkey has quit (Read error: 110 (Connection timed out)).
10:52:35 -!- GreaseMonkey has joined.
11:10:38 -!- GreaseMonkey has quit ("Unisex.").
11:24:10 -!- olsner has joined.
11:53:05 -!- ihope_ has joined.
11:55:01 <AnMaster> Deewiant, your TIME fingerprint, wtf are you doing in it? D code as a string constant!?
11:55:46 -!- fizzie has quit (leguin.freenode.net irc.freenode.net).
11:55:46 -!- ihope has quit (leguin.freenode.net irc.freenode.net).
11:55:49 -!- ihope_ has changed nick to ihope.
11:56:33 <Deewiant> AnMaster: metaprogramming
11:56:57 <AnMaster> Deewiant, you mean, like a macro in C?
11:57:06 <Deewiant> sorta
11:57:22 <AnMaster> hm?
11:57:25 -!- fizzie has joined.
11:57:53 <Deewiant> mixin("int x;") - equivalent to just int x;
11:58:07 <Deewiant> but with templates you can generate the string literal
11:58:17 <AnMaster> ah
11:58:21 <AnMaster> like macros then
11:58:22 <Deewiant> so I don't have to write the same code over and over
11:58:28 <Deewiant> sorta.
11:58:36 <AnMaster> #define ROMAPUSH(x, y) \
11:58:37 <AnMaster> static void FingerROMApush ## x (instructionPointer * ip) \
11:58:37 <AnMaster> { \
11:58:37 <AnMaster> StackPush(ip->stack, (FUNGEDATATYPE)y); \
11:58:37 <AnMaster> }
11:58:49 <AnMaster> I do it like that
11:58:56 <AnMaster> then just:
11:58:58 <AnMaster> ROMAPUSH(I, 1)
11:58:58 <AnMaster> ROMAPUSH(V, 5)
11:59:00 <AnMaster> and so on
11:59:17 <Deewiant> yes, that's similar.
11:59:42 <AnMaster> quite powerful, macros in C
12:01:23 <AnMaster> oh btw you seem to like using static buffers, instead of allocating on the stack, depending on situation I think creating one in the function may work better, due to risk of cache misses otherwise
12:01:30 <AnMaster> but that is over-optimizing IMO
12:01:46 <AnMaster> Deewiant, anyway I added JSTR to cfunge now
12:02:00 <AnMaster> rather simple one really
12:05:52 -!- ehird has joined.
12:06:18 -!- ehird has set topic: * Topic for #esoteric set by http://tunes.org/~nef/logs/esoteric.
12:06:21 <AnMaster> Deewiant, another question: Should the UTC/non-UTC stuff in TIME be local to the ip or global?
12:09:29 <AnMaster> ccbi seems to have it global
12:23:09 <Deewiant> AnMaster: say it with me: *not spe-ci-fied, up to you*
12:23:24 <AnMaster> hah
12:23:31 * AnMaster is implementing FILE atm though
12:24:12 <ehird> Deewiant: AnMaster does not know the meaning of that
12:24:31 <ehird> or 'Premature opt-imi-zat-ion is the root of all evil'
12:56:00 -!- Corun has joined.
13:27:16 <ehird> Zoop
13:38:38 <ehird> damn i'm leet
13:38:42 <ehird> i'm using emacs and vi on the same projcet
13:38:43 <ehird> at once
13:48:41 -!- Slereah has joined.
13:48:41 -!- Slereah_ has quit (Read error: 104 (Connection reset by peer)).
13:51:25 <olsner> hopefully you're not using the editor in emacs :P
13:54:48 <ehird> olsner: i so am
13:55:22 <olsner> may your choice of deity have mercy on your soul
13:58:06 -!- Slereah has quit (Read error: 104 (Connection reset by peer)).
13:58:16 -!- Slereah has joined.
14:00:16 -!- Slereah_ has joined.
14:00:16 -!- Slereah has quit (Read error: 104 (Connection reset by peer)).
14:01:46 -!- Slereah has joined.
14:01:47 -!- Slereah_ has quit (Read error: 104 (Connection reset by peer)).
14:03:09 <ehird> olsner: i don't think the flying spaghetti monster really cares all that much
14:03:58 <olsner> well, poor choice of deity then :P
14:04:07 -!- Slereah has quit (Read error: 104 (Connection reset by peer)).
14:14:14 -!- Slereah has joined.
14:42:25 <ehird> return $it if $it = ...; // this is a kinda neat perl trick, i wish i could do this in other languages
14:42:27 <ehird> 'x and return'
15:14:58 <AnMaster> Deewiant, there is a bug in FILE of CCBI I think
15:15:04 <AnMaster> in fopen one:
15:15:05 <AnMaster> case 2: file = c.fopen(name, "ab"); c.rewind(file); break;
15:15:17 <AnMaster> you need to check in between that the fopen did work
15:15:30 <AnMaster> rather than after trying rewind on it
15:15:43 <Deewiant> doesn't rewind fail on a failed fopen
15:16:03 <AnMaster> well fopen returns NULL on failed open
15:16:11 <AnMaster> no idea what happens with rewind on a null pointer
15:16:21 <Deewiant> man rewind says the following:
15:16:21 <Deewiant> EBADF The stream specified is not a seekable stream.
15:16:33 <fizzie> But NULL is not a stream at all.
15:16:44 <AnMaster> The rewind() function sets the file position indicator for the stream pointed to by stream to the beginning of the file. It is equivalent to:
15:16:45 <AnMaster> (void) fseek(stream, 0L, SEEK_SET)
15:16:47 <Deewiant> and hence it's not a seekable stream.
15:16:48 <AnMaster> except that the error indicator for the stream is also cleared (see clearerr(3)).
15:16:49 <AnMaster> hm
15:16:55 <AnMaster> fizzie, indeex
15:16:57 <AnMaster> indeed*
15:17:00 <fizzie> Yes, but you still need to specify a stream.
15:17:58 <Deewiant> you appear to be correct
15:19:01 <fizzie> Even if it would happen to work, I don't think you could really rely on it unless The Standard would specifically mention it's safe to call with a null pointer.
15:19:21 <Deewiant> seeing as it segfaults both on windows and linux I'd say you guys are right. ;-)
15:20:24 <AnMaster> well man 3p on rewind refers to fseek for details, and man 3p fseek doesn't mention null pointer anywhere
15:20:55 <ehird> The Standard That Is Great And Holy In Caps
15:20:55 <ehird> :D
15:21:06 <ehird> but i wouldn't rely on it, yeah
15:21:08 <AnMaster> ehird, it wasn't I that said it...
15:21:08 <ehird> it sounds shaky
15:21:14 <ehird> and even if it is standard
15:21:16 <ehird> i bet some system gets it wrong
15:21:18 <ehird> AnMaster: I know
15:21:20 <ehird> i just found it amusing
15:21:22 <ehird> it's like Him
15:21:26 <ehird> it's The Standard
15:21:27 <AnMaster> Who?
15:21:37 <ehird> AnMaster: Him is what religious people call god
15:21:40 <ehird> always capitalized like That
15:21:49 <AnMaster> ah
15:21:56 <ehird> 'And I talked to Him and asked him for big moneys, and he said FSCK U NOOB'
15:22:21 <AnMaster> haha
15:23:03 <fizzie> I also used to refer to The Hitchhiker's Guide to the Galaxy as "The Book".
15:23:09 <AnMaster> hah
15:24:14 <AnMaster> Deewiant, may I ask wtf you are doing in your fgets routine? it seems overly complex
15:24:39 <AnMaster> doesn't D have a fgets?
15:24:43 <Deewiant> D has the C stdlib
15:25:50 <AnMaster> well what are you doing it for then?
15:26:08 <AnMaster> Deewiant, is it because fgets will look for \n and not \r\n or?
15:26:19 <Deewiant> if that's what it does then that's definitely a reason
15:26:35 <AnMaster> but well
15:26:36 <Deewiant> probably the fact that I don't know
15:26:39 <AnMaster> that doesn't really help
15:26:56 <AnMaster> because both will stop on the \n of \r\n
15:27:09 <Deewiant> what about only \r
15:27:27 <AnMaster> well... I don't think your code stop on it
15:27:32 <Deewiant> of course it does
15:27:40 <Deewiant> case '\r', right there
15:27:54 <AnMaster> oh wait yes it does
15:27:55 <AnMaster> hm
15:28:41 <AnMaster> Deewiant, it will probably use whatever is used on the OS
15:28:48 <Deewiant> quite possible
15:28:50 <Deewiant> and I can't have that
15:29:06 <AnMaster> as in \r\n on windows, or if stream is in text mode (eww) just \n
15:29:36 <Deewiant> shrug about text mode... I never know how that works except that it's never the way I want :-P
15:29:43 <Slereah> http://www.youtube.com/watch?v=dmEvPZUdAVI
15:29:45 <AnMaster> indeed
15:29:59 <Deewiant> but still, gotta support all 3 line endings regardless of OS
15:30:04 <Slereah> How did Microsoft ever became a monopole with ads like that?
15:30:08 <Deewiant> and hence, I don't trust fgets.
15:30:44 <AnMaster> Deewiant, not got to, the standard says should and "If an interpreter cannot support all three varieties of end-of-line marker, it should be clearly noted in that interpreter's documentation."
15:30:55 <AnMaster> so it is strongly recommended to support all
15:30:59 <AnMaster> but not required
15:31:00 <Deewiant> I think that's crap. :-P
15:31:16 <AnMaster> Deewiant, it is the 98 specs...
15:31:22 <Deewiant> I think any program that doesn't support all 3 types is crap.
15:31:25 <AnMaster> I support all three
15:31:28 <Deewiant> regardless of specs.
15:31:41 <AnMaster> Deewiant, I can think of cases where it may not be possible
15:31:49 <AnMaster> say if the interpreter is coded in intercal
15:31:55 <Deewiant> then intercal is crap. :-P
15:31:57 <AnMaster> doesn't it mess with newlines?
15:32:01 <Deewiant> I don't know.
15:32:17 <Deewiant> ais523 isn't here so I guess we won't get an authoritative answer, either. :-)
15:32:52 <AnMaster> also one thing of D I would like in C: being able to break out of multiple loops with a break
15:32:59 <AnMaster> as it is, that is the only case I use goto
15:33:08 <Deewiant> yep, it's probably the most common case
15:33:09 <AnMaster> because there is no other way in C
15:33:42 <AnMaster> Deewiant, yeah, also common for stuff like: goto error, that cleans up stuff or such. I don't do that
15:35:27 <AnMaster> Deewiant, hm no your doesn't end input on \r
15:35:43 <AnMaster> Deewiant, it just does break; not break loop;
15:35:48 <AnMaster> so another bug in ccbi
15:36:23 <Deewiant> good catch :-)
15:37:41 <AnMaster> Deewiant, hm... FileHandle[c.FOPEN_MAX] handles; that is decided at compile time in CCBI?
15:37:53 <Deewiant> just like a C array.
15:38:06 <AnMaster> Deewiant, hm?
15:38:13 <Deewiant> hm what?
15:38:17 <Deewiant> it's a static array.
15:38:19 <AnMaster> C99 got VLA :P
15:38:22 <AnMaster> yeah
15:38:24 <Deewiant> not at global scope. :-P
15:38:33 <AnMaster> true
15:38:45 <AnMaster> max fds varies however
15:38:54 <Deewiant> hence, FOPEN_MAX.
15:39:03 <AnMaster> yes, what does that mean in this case?
15:39:23 <AnMaster> /usr/include/gentoo-multilib/amd64/stdio.h: FOPEN_MAX Minimum number of files that can be open at once.
15:39:27 <Deewiant> seeing as it's in "c" it's a C constant...
15:39:41 <AnMaster> FOPEN_MAX is defined to 16 here. heh
15:40:02 <AnMaster> that is the minimum guaranteed.
15:40:07 <Deewiant> " The value of this macro is an integer constant expression that represents the minimum number of streams that the implementation guarantees can be open simultaneously. You might be able to open more than this many streams, but that is not guaranteed."
15:40:26 <AnMaster> thus it should be checked at runtime :)
15:40:26 <Deewiant> oh, darn, it includes stdin/stdout/stderr
15:40:30 <Deewiant> hm?
15:40:55 <AnMaster> because you are more likely to be able to open like 1024 fds or so
15:41:03 <Deewiant> but it's not guaranteed.
15:41:07 <AnMaster> open files (-n) 1024
15:41:11 <AnMaster> from ulimit -a
15:41:15 <Deewiant> in one program?
15:41:26 <AnMaster> Deewiant, indeed, but if you can't open, check return value of fopen ;P
15:41:27 <Deewiant> and why does stdio.h then define it as 16?
15:41:36 <AnMaster> Deewiant, it does here, I don't know why
15:41:46 <Deewiant> wtf is the point of having all these predefined constants if they don't mean anything
15:41:47 <AnMaster> I malloc my handle array so...
15:41:56 <Deewiant> seriously, the windows API looks a lot nicer sometimes :-P
15:42:05 <AnMaster> Deewiant, anyway SOCK could create more fds iirc
15:42:14 <AnMaster> so it isn't FOPEN_MAX -3
15:42:19 <AnMaster> or something as simple as that
15:42:35 <Deewiant> fine, dynamic then.
15:42:38 <AnMaster> the best way to check would be getconf() I think....
15:42:40 <Deewiant> piece of crap API.
15:42:42 <AnMaster> if you *need* to know it
15:43:05 <AnMaster> err not getconf, that is the command line alternative
15:43:08 <AnMaster> version*
15:43:15 <AnMaster> sysconf()
15:44:40 <AnMaster> Deewiant, if you really need to know it is sysconf(_SC_OPEN_MAX) I think
15:45:17 <Deewiant> whatever.
15:45:32 <AnMaster> Deewiant, anyway the same applies to Windows afaik
15:45:49 <AnMaster> you can't know exactly how many files you can have open
15:46:06 <AnMaster> not at compile time at least
15:47:12 <AnMaster> Deewiant, also, FOPEN_MAX is from ANSI C
15:47:18 <AnMaster> so don't blame POSIX :P
15:47:34 <Deewiant> I blame distributions for defining it as something anal
15:48:01 <AnMaster> I blame whoever didn't read the docs for not doing so ;)
15:48:15 <Deewiant> how the hell should I know what docs to read
15:48:17 <AnMaster> I agree it is a stupid name...
15:48:26 <Deewiant> I read the docs for fopen and it says FOPEN_MAX is the absolute limit
15:48:44 <Deewiant> but oh, actually FOPEN_MAX is only one-sixteenth of the real limit
15:48:49 <Deewiant> sigh
15:48:53 <AnMaster> err my man fopen doesn't mention FOPEN_MAX...
15:49:28 <AnMaster> and man 3p fopen doesn't say it is an absolute limit
15:49:41 <Deewiant> it says it's the maximum guaranteed
15:49:45 <AnMaster> The fopen() function shall fail if:
15:49:48 <AnMaster> EMFILE {OPEN_MAX} file descriptors are currently open in the calling process.
15:49:51 <AnMaster> The fopen() function may fail if:
15:49:55 <AnMaster> EMFILE {FOPEN_MAX} streams are currently open in the calling process.
15:49:57 <AnMaster> hm
15:50:06 <Deewiant> streams vs. file descriptors too. :-P
15:50:07 <AnMaster> yes maximum guaranteed
15:50:19 <AnMaster> but my point here, is that on most systems you can open way more
15:50:26 <Deewiant> so why doesn't the man page say that?
15:50:29 <AnMaster> I tested with a befunge program opening 23 files
15:50:34 <AnMaster> using FILE
15:50:37 <AnMaster> at the same time
15:50:47 <Deewiant> why does it say something useless like "may fail" instead of "is very likely not to fail, it's likely you can open 100x more"
15:51:11 <AnMaster> Deewiant, because when it was written that wasn't the case I guess?
15:51:18 <Deewiant> documentation can be updated
15:51:59 <AnMaster> I agree that FOPEN_MIN may have been a better name...
15:52:12 <Deewiant> or _MIN_MAX? :-P
15:52:14 <AnMaster> Deewiant, but FOPEN_MAX is from ANSI C
15:52:15 <AnMaster> !
15:52:18 <EgoBot> Huh?
15:52:28 <Deewiant> exactly. "Huh?" :-P
15:52:35 <AnMaster> so it is not a case of POSIX
15:52:38 <AnMaster> but ANSI C
15:52:38 <Deewiant> who cares where it's from
15:52:40 <Deewiant> it's badly written
15:52:51 <Deewiant> the man pages aren't copied from some 30-year old ANSI C manual either
15:52:52 <AnMaster> FOPEN_MAX
15:52:52 <AnMaster> which expands to an integer constant expression that is the minimum number of files that
15:52:52 <AnMaster> the implementation guarantees can be open simultaneously;
15:52:58 <AnMaster> C99
15:53:00 <AnMaster> was that
15:53:12 <Deewiant> whatever
15:53:31 <AnMaster> and ranting about it in here won't help ;P
15:53:43 <Deewiant> I'm willing to shut up
15:53:52 <AnMaster> try ranting to ANSI maybe ;)
15:54:08 <AnMaster> or, for C99 I think it is IEEE? hm
15:54:12 <AnMaster> "not us anyway"
15:54:14 <Deewiant> I don't care that much, I rarely have to mess around with raw C APIs
15:54:18 <Deewiant> to this degree
15:54:33 <AnMaster> Deewiant, well why can't you use the D file reading API for it?
15:54:49 <Deewiant> ... because the specs say that it's the C file API ...
15:55:13 * AnMaster looks
15:55:15 <AnMaster> "(like c fgets)"
15:55:39 <ehird> Deewiant,
15:55:41 <ehird> use Tango
15:55:41 <AnMaster> Deewiant, seems to indicate same behaviour
15:55:44 <ehird> you depend on it
15:55:46 <ehird> so use its file apis
15:55:47 <ehird> not c's
15:55:47 <ehird> ;P
15:55:56 <Deewiant> ehird: 2008-05-03 17:54:49 ( Deewiant) ... because the specs say that it's the C file API ...
15:56:01 <ehird> AnMaster: D has two 100% incompatible stdlibs that you can't have at the same time.
15:56:04 <AnMaster> Deewiant, anyway, it is RC/Funge specs so they aren't clear...
15:56:11 <ehird> AnMaster: Phobos and Tango, Phobos is the official one. Real men use Tango.
15:56:15 <ehird> (read: Phobos sucks)
15:56:16 <AnMaster> ehird, that isn't the question here...
15:56:18 <Deewiant> ehird: tangobos exists.
15:56:29 <ehird> Deewiant: Yes, but that's for goatse-watchers.
15:56:30 <ehird> Or something
15:56:37 <AnMaster> ehird, he is doing this: import c = tango.stdc.stdio;
15:56:49 <ehird> tango has libc in it yes
15:57:01 <AnMaster> and then using c.fgets and so on
15:57:11 <AnMaster> err not fgets, but several other ones
15:57:41 <AnMaster> Deewiant, anyway the FILE specs doesn't say it have to be the A file API
15:57:49 <AnMaster> it only says "(like c fgets)"
15:57:52 <AnMaster> note "like"
15:58:03 <AnMaster> I interpret that as "same behaviour"
15:58:06 <Deewiant> exactly
15:58:10 <Deewiant> bug-for-bug compatibility would be ideal
15:58:18 <Deewiant> which is easiest to get by just using the C functions directly.
16:00:31 <AnMaster> why bug-for-bug?
16:00:55 <Deewiant> because of what the specs say. "like c xxx".
16:01:40 <AnMaster> I assume it means "like the C specs describe this function", and it is INTERCAL no C that got the "random compiler bug" in it's specs ;P
16:02:12 <Deewiant> I'm sure that if I used the tango functions you'd be here saying "in this obscure case, fseek does xxx, does tango's do that?" :-P
16:02:36 <Deewiant> and then I'd be like "don't know, don't care". :-P
16:03:13 <AnMaster> heh
16:03:45 <AnMaster> however that is not an argument as you coded it before you knew of me
16:04:15 <Deewiant> no, but I was sure there might be someone like you. :-P
16:04:30 <Deewiant> or I just felt like using the C functions to remind myself of how they work, who knows?!
16:04:42 <Deewiant> anyhoo, WYGIWYGAINGW.
16:04:45 <Deewiant> I'm off to eat. ->
16:05:48 <AnMaster> ah you like Discworld :)
17:59:30 <AnMaster> Deewiant, by the way the HRTI test shows that at some stuff Boehm-GC is a LOT slower. Mainly realloc seems slow in it
18:00:47 <AnMaster> using preallocaction to alloc at least the needed number of bytes in advance I got it down to acceptable levels.
18:01:07 <AnMaster> however I suspect I may make no gc the default in future at some point
19:15:44 -!- comex has left (?).
19:22:27 -!- Sgeo has joined.
19:41:08 -!- jix has joined.
19:48:16 <ehird> a
21:05:16 <AnMaster> b
21:05:44 <Slereah> cd
21:05:46 <Slereah> EFG
21:06:46 <ihope> hjkl;
21:06:55 <Deewiant> ä'
21:07:13 <Deewiant> <z
21:09:22 <AnMaster> ö!
21:09:28 -!- digital_me has joined.
21:09:56 <Deewiant> AnMaster: surely you don't have "ö!" to the right of "z" on your keyboard. :-)
21:10:39 <AnMaster> no
21:10:48 <AnMaster> Deewiant, nor do I have ä there either
21:11:16 <AnMaster> Shift < z x c v b n m , . - Shift
21:11:18 <Deewiant> to the right of "hjkl;" on a 'merican keyboard comes ä' followed by enter
21:11:26 <Deewiant> moving on, we get <z
21:11:34 <AnMaster> qwertyuiopå
21:11:37 <AnMaster> asdfghjklöä
21:11:41 <AnMaster> zxcvbnm
21:11:54 <AnMaster> hm ...
21:11:55 <Deewiant> exactly. so you broke the cycle :-/
21:11:55 <AnMaster> x
21:11:58 <AnMaster> in that case
21:11:59 <Deewiant> :-)
21:12:04 <AnMaster> Deewiant, but so did ihope
21:12:07 <Deewiant> shh ;-)
21:12:19 <AnMaster> as we went alphabetically before
21:12:36 <ihope> abcdefghjkl;'
21:13:20 <AnMaster> abcdefgijkl
21:13:25 <AnMaster> abcdefghijkl
21:13:26 <AnMaster> even
21:13:31 <AnMaster> you forgot i
21:13:50 <ihope> Yes, we all know that defghijkl is almost all consecutively... on there.
21:14:08 <ihope> Present in a consecutive manner.
21:14:53 <Slereah> http://4chanarchive.org/images/48232393/1197566589997.png
21:15:45 <ehird> Slereah: hah
21:16:24 <Slereah> Yes.
21:16:29 <Slereah> That's how it is.
21:53:32 -!- digital_me_ has joined.
21:58:41 -!- CakeProphet has joined.
22:02:26 -!- CakeProphet has quit (Client Quit).
22:05:22 -!- digital_me has quit (Read error: 110 (Connection timed out)).
22:27:15 -!- Slereah_ has joined.
22:28:27 -!- Slereah has quit (Read error: 104 (Connection reset by peer)).
22:40:04 -!- digital_me_ has quit (Read error: 104 (Connection reset by peer)).
22:47:25 -!- Iskr has quit ("Leaving").
22:50:32 -!- digital_me has joined.
22:53:42 -!- digital_me has quit (Client Quit).
22:53:54 -!- digital_me has joined.
22:58:18 -!- digital_me has left (?).
23:10:39 -!- Slereah_ has quit (Read error: 104 (Connection reset by peer)).
23:12:26 -!- Slereah has joined.
23:31:07 -!- Deformati has joined.
23:39:56 -!- Deformative has quit (Read error: 110 (Connection timed out)).
00:10:48 -!- ehird has quit (Read error: 113 (No route to host)).
00:16:13 -!- Deformati has quit (Read error: 110 (Connection timed out)).
00:17:47 -!- Deformati has joined.
00:21:48 -!- Slereah_ has joined.
00:21:48 -!- Slereah has quit (Read error: 104 (Connection reset by peer)).
00:25:05 -!- jix has quit (Read error: 113 (No route to host)).
00:27:51 -!- Slereah_ has quit (Read error: 104 (Connection reset by peer)).
00:28:01 -!- Slereah has joined.
00:30:19 -!- Slereah_ has joined.
00:30:19 -!- Slereah has quit (Read error: 104 (Connection reset by peer)).
00:36:21 -!- Slereah_ has quit (Read error: 104 (Connection reset by peer)).
00:36:24 -!- Slereah has joined.
00:37:43 -!- Slereah has quit (Read error: 104 (Connection reset by peer)).
00:37:48 -!- Slereah has joined.
00:37:52 -!- Deformati has quit (Remote closed the connection).
01:21:49 -!- ihope has quit ("ChatZilla 0.9.81 [Firefox]").
01:22:42 -!- Sgeo_ has joined.
01:32:25 -!- Sgeo has quit (Read error: 110 (Connection timed out)).
01:33:23 -!- Sgeo_ has quit (Remote closed the connection).
01:36:36 -!- Sgeo has joined.
03:18:49 -!- Slereah_ has joined.
03:18:50 -!- Slereah has quit (Read error: 104 (Connection reset by peer)).
03:19:13 -!- GreaseMonkey has joined.
04:32:30 -!- Corun has quit (Read error: 110 (Connection timed out)).
04:35:30 -!- Corun has joined.
04:49:36 -!- Corun has quit ("This computer has gone to sleep").
06:24:41 -!- adu has joined.
06:36:45 -!- adu has left (?).
07:18:37 <bsmntbombdood> look at this hottie: http://www.codethinked.com/image.axd?picture=WindowsLiveWriter/TheProgrammerDressCode_10D17/John%20McCarthy_fecf8122-7b54-4ec0-80ed-8ba261337eaa.jpg
07:20:09 -!- Sgeo has quit (Read error: 110 (Connection timed out)).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:52:51 -!- Iskr has joined.
09:16:02 -!- Slereah has joined.
09:16:06 -!- Slereah_ has quit (Read error: 104 (Connection reset by peer)).
09:49:18 -!- Slereah has quit (Read error: 104 (Connection reset by peer)).
09:50:56 -!- Slereah has joined.
10:21:59 -!- GreaseMonkey has quit ("Unisex.").
11:09:04 -!- Slereah_ has joined.
11:09:07 -!- Slereah has quit (Read error: 104 (Connection reset by peer)).
11:14:06 -!- Slereah has joined.
11:14:06 -!- Slereah_ has quit (Read error: 104 (Connection reset by peer)).
11:18:56 -!- Slereah_ has joined.
11:18:56 -!- Slereah has quit (Read error: 104 (Connection reset by peer)).
12:43:19 -!- Slereah has joined.
12:43:19 -!- Slereah_ has quit (Read error: 104 (Connection reset by peer)).
13:12:18 -!- ehird has joined.
13:17:22 -!- oklopol has joined.
13:19:29 <ehird> oklopol: oKokokokokokokokokoko!!!
13:19:37 <ehird> andreou: reoreoreoreoreoreo
13:22:01 <oklopol> GKLYAAAA
13:22:30 -!- Slereah has quit (Read error: 104 (Connection reset by peer)).
13:22:37 -!- Slereah has joined.
13:23:04 <ehird> oklopol: akakak
13:48:54 <ehird> a
13:55:50 <oklopol> KAER
13:55:53 <oklopol> :)
13:56:17 <oklopol> trying to read the lojvan reference, a new interest in lalna is growing inside me
13:56:25 <oklopol> *lojban
13:56:37 <oklopol> going to change it to stack-based
13:56:46 <oklopol> stacks are perfect for human communication
13:57:14 <oklopol> somewhat object-oriented stack-based, GregorR would love this
14:12:32 -!- Corun has joined.
14:27:39 <ehird> oklopol: i hate you
14:27:40 <ehird> :)
14:47:06 <oklopol> you can globally specify a small stack limit if you have problems with it!
15:01:03 -!- Slereah_ has joined.
15:01:03 -!- Slereah has quit (Read error: 104 (Connection reset by peer)).
15:05:22 -!- Slereah has joined.
15:05:22 -!- Slereah_ has quit (Read error: 104 (Connection reset by peer)).
15:07:51 <ehird> oklopol: heh
15:07:59 <ehird> oklopol: make it stack-based, but reversed
15:08:05 <ehird> then we can at least lazily evaluate what people say
15:08:07 <ehird> instead of having to wait
15:13:37 <oklopol> reversed would make more sense, but i want a stack.
15:13:41 <oklopol> also
15:13:59 <oklopol> reversed is quite funny considering stack-based is often called reversed polish notation :P
15:14:04 <Deewiant> make it a deque and you can have both
15:14:11 <oklopol> of course reverse . reverse = identity
15:14:24 <oklopol> lol :D
15:17:51 -!- SimonRC_ has joined.
15:20:06 <ehird> it can be stacked oklopol
15:20:11 <ehird> just make the speech reversed
15:20:16 <ehird> so a computer evaluator would run it backwards
15:20:26 <ehird> but humans can understand the sentence incrementally
15:20:32 <ehird> instead of having to run a mental stack machine
15:23:00 <oklopol> wtf. does that mean
15:23:37 <oklopol> instead of <I> <you> *kill*, where <>=push and **=call, what would i say?
15:23:46 <oklopol> *kill* <you> <I>?
15:24:00 <oklopol> just reversing rpn is pn, with arguments reversed
15:24:48 <oklopol> it makes sense in that you usually want to specify what you're doing before telling what you're doing it to, because the main event is the most interesting thing
15:25:51 <oklopol> (you can do <kill> <I> <you> *call-2-deep*, though, if you want)
15:25:59 <ehird> oklopol: '2 2 +' becomes '+ 2 2'
15:26:05 <oklopol> so polish notation
15:26:07 <ehird> as a computer, you can execute it as push 2, push 2, do +
15:26:07 <oklopol> ?
15:26:08 <ehird> by reversing it
15:26:09 <ehird> oklopol: no
15:26:12 <oklopol> 8|
15:26:14 <ehird> just write a stack program
15:26:15 <ehird> and reverse it
15:26:23 <ehird> because all the concepts of /stack programming/ instead of just the /notation/ are there
15:26:35 <ehird> i.e. instead of a lisp program, it's like reversing a Joy program
15:27:22 <oklopol> polish == reversed stack, always. it's just with a stack high-order operations are easier to visualize.
15:28:17 <oklopol> if you know another difference, tell me what it is instead of just saying "it's different, because i see it that way"
15:29:37 <ehird> <oklopol> polish == reversed stack, always. it's just with a stack high-order operations are easier to visualize.
15:29:39 <ehird> wronngggg
15:29:47 <ehird> oklopol: write a lisp program
15:29:50 <ehird> then write a Joy program
15:29:52 <ehird> then, reverse the Joy program
15:30:01 <ehird> the Joy program is still fundamentally different from a Lisp program
15:30:07 <ehird> e.g. it still has 'dup' and 'dip' and all that shizz, for one
15:31:00 -!- SimonRC has quit (Read error: 111 (Connection refused)).
15:31:21 <oklopol> 5 2 dup + - => - + dup 2 5 <<< nothing wrong with this as polish notation
15:32:08 <oklopol> it's just you need to have pretty weird semantics for stuff once you do stack operations
15:32:22 <ehird> oklopol: well, yeah
15:32:26 <ehird> it's polish notation KINDA
15:32:26 <oklopol> mainly because arity cannot be done at parse time
15:32:28 <ehird> but even so
15:32:30 <oklopol> well, yeah.
15:32:34 <ehird> it's not what you'd think of
15:32:38 <ehird> when you thought polish notation
15:33:13 <oklopol> well, polish notation and rpn might specify that arity need be known at parse time
15:33:24 <oklopol> dunno, i just think of them as guidelines
15:34:56 <oklopol> anyway, the whole point with polish notation is it's not incremental
15:36:17 <ehird> oklopol: ok, but compare: 'you hello', 'hello you'
15:36:21 <ehird> the latter is more useful as a human
15:36:30 <ehird> because you know that something is about to be greeted
15:36:33 <ehird> and then you get more information: it's you
15:36:33 <oklopol> and i'm not allowing direct stack manipulation all that easily, the point is that you *can* run a mental stack maching
15:36:34 <ehird> whereas
15:36:37 <ehird> with the other one,
15:36:43 <ehird> you have to keep in mind that something about you is being said
15:36:48 <ehird> and then learn that it's a greeting
15:36:52 <ehird> which is more confusing
15:36:58 <oklopol> no it isn't
15:37:21 <oklopol> *machine
15:37:32 <ehird> oklopol: in a complex sentence it is :)
15:37:36 <ehird> you build up a stack of stuff in your head
15:37:41 <ehird> and then it gets shuffled to hell when you find the verbs
15:38:40 <oklopol> yes
15:39:17 <ehird> which is frustrating
15:39:24 <oklopol> it's true it's hard to keep in mind what the stack contains without knowing what it's use for
15:39:33 <oklopol> this is a good thing
15:40:24 <oklopol> frustrating? 1. your mother is frustrating 2. nothing is frustrating, things can only be challenging or impossible
15:41:52 <oklopol> hmmm, perhaps what i'm saying would make more sense if i explained a bit what the whole reason for stack-basedness was
15:42:34 <oklopol> humans have trouble storing the contents of the stack exactly because most natural languages don't require you to.
15:42:50 <oklopol> i want to try to change this, for myself.
15:43:21 <oklopol> would mean a lot easier mental calculation for instance, to get a stack working naturally.
15:45:15 <oklopol> there are ways to link pieces, mentally, well enough not to be forgotten for ages
15:45:23 <ehird> oklopol: shit, you just called my mother nothing
15:45:24 <ehird> indirectly
15:45:25 <oklopol> all you have to do is find a link you will definitely remember
15:45:25 <ehird> that's clever
15:45:35 <oklopol> this is very, very easy.
15:45:39 <oklopol> now
15:46:01 <oklopol> i read a book about these techniques, and have been using them for learning lojban vocab etc.
15:46:26 <oklopol> but i've been thinking, i might start writing a book from a programmers point of view later on
15:46:32 <oklopol> because the fun thing about links is
15:46:39 <oklopol> that you can make data structures with them
15:46:46 <oklopol> permitting something like a stack easily.
15:47:11 <oklopol> the idea is, there are ways to "hash" an object mentally, and two hashes can easily be linked.
15:47:33 <oklopol> this can be used to create arbitrary graphs, so you can explicitly memorize any data structure
15:48:36 <ehird> oklopol: memorize E80
15:48:54 <oklopol> ehird: indeed i did, in a stack-based fashion, first introducing your mother, then telling what she is, using a set as a variable.
15:49:05 <oklopol> so you indirectly just told me stack-based = clever
15:49:10 <oklopol> that's clever.
15:49:19 <oklopol> ehird: why?
15:49:25 <oklopol> also, too short to need memorizing
15:49:57 <ehird> oklopol: because E80 is huge
15:49:58 <ehird> :P
15:50:09 <ehird> bah maybe it's not e80
15:50:11 <ehird> whatever it's called
15:50:43 <ehird> oklopol: The lie algebra thingy
15:50:58 <oklopol> i will talk more about the subject of memorization once i'm good at it myself, which might take a while as i'm lazy as hell
15:51:04 <oklopol> ehird: doesn't ring a bell
15:51:13 <ehird> oklopol: here
15:51:14 <ehird> http://en.wikipedia.org/wiki/E8_%28mathematics%29
15:51:56 <oklopol> ah
15:51:59 <oklopol> awesome
15:52:12 <ehird> oklopol: yeah
15:52:15 <ehird> 248 dimension represent
15:52:22 <ehird> "There is a Lie algebra En for every integer n≥3, which is infinite dimensional if n is greater than 8."
15:52:28 <ehird> memorizing an infinite dimensional structure would be cooler
15:52:33 <ehird> but slightly less, well, possible
15:54:59 <oklopol> is tha so?
15:55:02 <oklopol> *that
15:55:16 <oklopol> i think complex dimension just has to do with the graph's structure
15:55:30 <oklopol> but i don't really know, i was not aware of any of this.
15:56:31 -!- ehird has set topic: security by obscupromiscuity | http://tunes.org/~nef/logs/esoteric.
15:56:39 <ehird> oklopol: i have no idea
15:56:44 <ehird> but e8 is totally bitchin'
15:57:03 <oklopol> heh, sure
16:12:41 -!- SimonRC has joined.
16:21:00 -!- Slereah_ has joined.
16:22:44 -!- ehird has set topic: security by obscupromiscuity | lobotomoritoratiotron | http://tunes.org/~nef/logs/esoteric.
16:22:50 <ehird> i suggest we invent silly terms and put them in a topic
16:22:55 -!- Corun has quit (Read error: 104 (Connection reset by peer)).
16:22:57 <ehird> just add another | and put it before the log links
16:24:12 -!- Corun has joined.
16:24:22 <oklopol> o | security by obscupromiscuity | lobotomoritoratiotron | http://tunes.org/~nef/logs/esoteric
16:24:27 -!- oklopol has set topic: o | security by obscupromiscuity | lobotomoritoratiotron | http://tunes.org/~nef/logs/esoteric.
16:24:28 <oklopol> i mean
16:25:06 -!- SimonRC_ has quit (Read error: 110 (Connection timed out)).
16:25:09 <ehird> i said AFTER
16:25:10 <ehird> :(
16:25:13 <ehird> haha
16:25:19 -!- ehird has set topic: o | iskagrel | security by obscupromiscuity | lobotomoritoratiotron | http://tunes.org/~nef/logs/esoteric.
16:25:29 <oklopol> well i just read "topic" and "add"
16:39:02 -!- Slereah has quit (Read error: 110 (Connection timed out)).
17:42:29 <ehird> you know what sucks about irc bots
17:42:39 <ehird> they have to do a huge linear search each message that comes through
17:42:43 <ehird> for regexp matches and similar
17:42:44 <ehird> that sucks
17:49:59 <oklopol> umm... k
17:50:04 <oklopol> why does that suck?
18:04:44 <ehird> oklopol: if you have a lot of commands
18:04:50 <ehird> then the linear matching is slow
18:06:54 <oklopol> :|
18:07:03 <oklopol> usually, people have a prefix
18:07:07 <oklopol> well, bots
18:07:57 <oklopol> if the bot designer uses a complex regexp to determine whether something is a command or not, thats their problem
18:08:36 <oklopol> but, unless you're using a 20-year-old computer, you cannot be on enough channels to have any trouble even with non-trivial regexps
18:09:56 <ehird> oklopol: um, i mean like ones which match on messages
18:10:05 <ehird> like 'botname!' makes the bot 'sender!'
18:10:10 <ehird> if you are a plugin-based bot
18:10:14 <ehird> then you can only do that via regexps, really
18:10:22 <ehird> so you have to run a potentially huge list of regexps on every message
18:11:06 <oklopol> i have no idea what you mean by "botname!" makes the bot "sender!"
18:17:54 -!- Corun has quit ("Leaving").
18:18:08 -!- Corun has joined.
18:18:29 <ehird> oklopol: like if i had a bot claled foo
18:18:30 <ehird> <user> foo!
18:18:32 <ehird> <foo> user!
18:19:55 <oklopol> so you have to do up to len(botnick)+1 checks to know if the user calls out your name? god, how can a modern computer manage
18:25:19 <ehird> oklopol: I don't think you've read what I said.
18:25:29 <ehird> If you don't build that in to the very core
18:25:32 <ehird> and instead have it as a plugin
18:25:36 <ehird> the only sane way to do it will be a regexp
18:25:41 <ehird> Pile on many plugins
18:25:47 <ehird> and you're doing over 100 regexp checks each line
18:27:36 <oklopol> ...doing that with a regexp is more than 4 checks?
18:29:26 <oklopol> if it has to find any occurrance of foo! in the message, that basically means it has to read all len(botname)+1 substrings... so basically once pass over each message
18:29:47 <oklopol> i have no idea what your point is, but indeed, perhaps i'm just not reading what you say.
18:31:14 <ehird> oklopol: you're not
18:31:57 <oklopol> k
18:33:41 <oklopol> anyway, you are correct in that if you make your computer do the work of optimizing the regexp matching, it may not be optimal, although probably fast enough
18:34:00 <oklopol> and if you insist on using general regexps where you could just search for static strings
18:34:31 <oklopol> which would mean just one pass over the string, and would be trivial to code, even as a generic version
18:34:34 <ehird> not insist, oklopol
18:34:42 <ehird> Show me a good way to do it your way in a plugin based system :-
18:34:44 <ehird> *:-)
18:35:12 <oklopol> "good"? meaning it should do static searches especially fast?
18:35:37 <oklopol> it's trivial to built a tree from the affices or smth, and just pass once over the message
18:36:13 <oklopol> although i see no problem with doing 100 regexp checks per line. nothing sucks with that imo
18:39:40 <oklopol> and are you assuming a regex motor that can't optimize for multiple search patterns at once?
18:40:10 <oklopol> naturally a good one should provide that
18:40:38 <ehird> oklopol: sure, it's fine if you use something which doesn't exist.
18:41:19 <oklopol> no such regex motor exists?
18:42:44 <oklopol> anyway, i don't see how what exists has anything to do with making an irc bot, just make one yourself, regexes aren't hard to match on
18:44:20 <ehird> oklopol: no such regex motor exist.
18:44:21 <ehird> s
18:44:29 <ehird> also .. you make me giggle
18:44:42 <oklopol> how so?
18:44:43 <ehird> regexes are easy... but only simple ones
18:44:45 <ehird> e.g. backtracking
18:44:50 <ehird> and backreferences
18:45:00 <ehird> heck, embedded evaluation
18:45:08 <oklopol> i recall making a regex matcher in c in 5 hours before i knew what parsing was
18:45:12 <oklopol> hmm
18:45:22 <oklopol> why would you allow that for an irc bot plugin?
18:45:24 <ehird> oklopol: modern regexps are very powerful
18:45:26 <ehird> and useful
18:45:33 <ehird> some are even TC
18:47:00 <oklopol> well i don't see your concern, if you insist on using modern regexps even though they don't have support for your need, you're just making things hard for yourself
18:47:23 <oklopol> but you can make static strings separate cases and handle them yourself or smth
19:00:39 <ehird> oklopol: anyhoo as you can guess
19:00:42 <ehird> endeavour is coming <3
19:01:22 <oklopol> tell me more
19:05:45 <ehird> oklopol: it will be endeavouricious
19:22:05 <ehird> oklopol: hmm properly nested quotes are parsable aren't they
19:22:06 <ehird> that is
19:22:12 <ehird> "abc'd"foo"ef'ghi"
19:22:14 <ehird> instead of
19:22:18 <ehird> 'abc'd'foo'ef'ghi'
19:27:46 -!- oerjan has joined.
19:32:08 <oklopol> ehird: yes, they are
19:32:39 <ehird> oklopol: write a parser
19:32:39 <ehird> :3
19:32:52 <oklopol> :|
19:32:56 <oklopol> well... sure
19:33:08 <ehird> "abc'd"foo"ef'ghi" --> ["abc",["d",["foo"],"ef"],"ghi"]
19:33:21 -!- oerjan has set topic: o | iskagrel | security by obscupromiscuity | lobotomoritoratiotron supercollider | http://tunes.org/~nef/logs/esoteric.
19:41:09 <oklopol> http://www.vjn.fi/pb/p125315136.txt
19:41:38 -!- Sgeo has joined.
19:41:46 <oklopol> first made it agglomerate, but thought that might be better and removed it
19:43:17 -!- oerjan has set topic: o | iskagrel | security by obscupromiscuity | lobotomoritoratiotron supercollider | you will be agglomerated | http://tunes.org/~nef/logs/esoteric.
19:43:40 * oerjan is slightly disappointed that the word actually exists though
19:44:03 <ehird> oklopol: TypeError: append() takes exactly one argument (0 given)
19:44:08 <oklopol> hmm
19:44:11 <oklopol> what did you use?
19:44:18 <ehird> oh wait
19:44:20 <ehird> it was a copypaste error
19:45:18 <oklopol> http://www.vjn.fi/pb/p342464244.txt <<< original agglomerative version, although you prolly could've added that yourself just as easily as i pressed ctrl+z
19:45:25 -!- oerjan has set topic: o | iskagrel | security by obscupromiscuity | lobotomoritoratiotron supercollider | resistance is fossile | you will be agglomerated | http://tunes.org/~nef/logs/esoteric.
19:47:14 <oklopol> ehird: does it work? i didn't really debug, just checked with a few trivial ones
19:47:23 * Sgeo is prepared to destroy the Universe with BOREDOM!
19:47:40 <oerjan> Sgeo: that is already being done
19:47:58 <Sgeo> hm?
19:48:10 <ehird> oklopol: you need a join
19:48:12 <oerjan> _very_ slowly
19:48:21 <oklopol> ehird: where?
19:48:43 <Sgeo> I'm SO boring trying to count the number of digits in 19!!! that I accelerate the Heat Death of the Universe!
19:48:56 <ehird> oklopol: it kinda works:
19:49:02 <ehird> >>> parse_em(x)
19:49:02 <ehird> [[['a', 'b', 'c', ['d', ['f', 'o', 'o'], 'e', 'f'], 'g', 'h', 'i']]]
19:49:13 <oklopol> yeah that's the non agglomerative one
19:49:19 <oerjan> is that factorial iterated thrice?
19:49:20 <oklopol> but i also pasted the original
19:49:52 <Sgeo> oerjan, of course
19:50:22 <ehird> 19!.!.!
19:51:03 <oerjan> could be awkward
19:52:02 <ehird> imagine trying to pronounce !.!.!.
19:52:09 <oklopol> ehird: is it correct?
19:52:28 * oerjan thinks Bill the Cat would pronounce it perfectly
19:52:29 <ehird> oklopol: well, yes.
19:52:34 <oklopol> good
19:52:45 <ehird> oerjan: I guess it'd be "chk. chk. chk"
19:53:03 <ehird> (from the band named !!!, which is "chkchkchk" (well, any percussion sound - so "pewpewpew" would work too, but ...))
19:53:46 <oerjan> pewtering nonsense...
19:55:30 <ehird> pewpewpewtering nonsense
20:00:11 <oerjan> pew^{19!!!}tering nonsense
20:02:53 <Deewiant> hm, the number of digits in 19!!!... loggamma(1 + exp(4.66 * 10^18)) / log(10)... that's pretty big :-/
20:06:09 <ehird> Deewiant: heh
20:06:13 <ehird> A(g_64,g_64)!!!
20:06:20 <Deewiant> >_<
20:06:52 <oerjan> those !!! are sort of insignificant
20:07:31 <oerjan> as in, adding 1 to any of the g_64's is likely to make much more of a difference
20:08:54 <Deewiant> Σ(A(g_64!,g_64!))
20:10:34 <oerjan> and i would guess changing 64 to 65 is far better than adding ! to g_64
20:10:48 <Deewiant> I forget how it's defined
20:11:07 <Deewiant> but I'll humor you
20:11:08 <oerjan> and what's the ?
20:11:22 <Deewiant> Σ(A(g_(exp(64))!,g_(exp(64))!))
20:11:30 <Deewiant> I guess your font can't handle it
20:11:31 <Deewiant> it's a sigma
20:11:42 <oerjan> um i don't think yours can either
20:11:53 <Deewiant> how's that?
20:11:58 <oerjan> because it doesn't show up in the logs
20:12:17 * oerjan always checks the logs when he suspects unicode
20:12:24 <Deewiant> it shows up fine in the logs here :-P
20:12:32 <Deewiant> maybe your font can't handle the logs
20:12:41 <oerjan> which logs?
20:12:48 <Deewiant> http://tunes.org/~nef/logs/esoteric/08.05.04
20:13:18 <oerjan> hm weird ircbrowse didn't get it
20:13:18 -!- timotiis has joined.
20:14:19 <oerjan> mind you if that Sigma is a sum sign then it doesn't fit there
20:15:03 <oerjan> no bounds or index to sum over
20:15:12 <Deewiant> it's for the busy beaver function
20:22:12 <Sgeo> what's 4.66 doing in Deewiant's expression?
20:22:32 <Deewiant> loggamma(19! + 1)
20:22:40 <Deewiant> is approximately 4.66 * 10^18.
20:32:35 <ehird> oerjan: works here
20:33:26 <oerjan> it showed up for me on tunes.org too
20:34:51 <ehird> oklopol:
20:34:52 <ehird> {'medium': {'PRIVMSG': [(<_sre.SRE_Pattern object at 0xb7de0c58>, [<function ping at 0xb7db995c>]), (<_sre.SRE_Pattern object at 0xb7deb400>, [<function hello at 0xb7db9924>]), (<_sre.SRE_Pattern object at 0xb7e07560>, [<function hello at 0xb7db9924>]), (<_sre.SRE_Pattern object at 0x81af6c8>, [<function test at 0xb7db9994>]), (<_sre.SRE_Pattern object at 0x81b0120>, [<function test at 0xb7db9994>])]}}
20:34:58 <ehird> i am writing an UNGODLY module system :
20:35:01 <ehird> *:O
20:35:06 <ehird> sane, unlike AnMaster's :P
20:37:41 <oklopol> medium?
20:38:34 <ehird> oklopol: priorities
20:38:36 <ehird> high,medium,low
20:38:43 <ehird> high gets executed then medium then low
20:38:52 <oklopol> okay.
20:39:02 <oerjan> and ungodly system requires a medium. that much is obvious.
20:39:02 <oklopol> why a list of functions for a pattern?
20:39:04 <oerjan> *an
20:39:17 <oklopol> oerjan: lol @ fun
20:39:18 <ehird> oklopol: because you might have multiple functions under the same pattern? :P
20:39:24 <ehird> It's a relic from the days pr-
20:39:25 <ehird> Hey thanks
20:39:27 <oklopol> hmmhmm
20:39:29 <ehird> I can clean up my code bigtime
20:39:29 <ehird> <3
20:39:32 <ehird> You just found a way
20:39:33 <ehird> haha
20:39:43 <ehird> oklopol: but here's what a module looks like
20:39:43 <oklopol> removing it?
20:39:43 <ehird> http://rafb.net/p/xFOvII72.html
20:39:55 <ehird> that will make the regular command syntax work
20:39:56 <ehird> with any prefix
20:39:58 <ehird> '.hello x'
20:40:00 <ehird> and '.hi x'
20:40:02 <ehird> and
20:40:04 <ehird> 'abc!'
20:40:08 <ehird> where abc = bot name
20:40:09 <ehird> responds
20:40:13 <ehird> ($nickname is a special placeholder)
20:40:15 <ehird> and the last one
20:40:15 <ehird> matches
20:40:18 <ehird> abc: hello x
20:40:22 <ehird> abc, goodbye x
20:40:22 <ehird> etc
20:47:17 -!- Slereah has joined.
20:47:50 -!- Slereah_ has quit (Read error: 104 (Connection reset by peer)).
20:48:44 <ehird> oklopol:
20:48:46 <ehird> {'medium': {'PRIVMSG': [(<_sre.SRE_Pattern object at 0xb7dd6e78>, <function ping at 0xb7db4924>), (<_sre.SRE_Pattern object at 0xb7de5400>, <function hello at 0xb7db48ec>), (<_sre.SRE_Pattern object at 0xb7e01560>, <function hello at 0xb7db48ec>), (<_sre.SRE_Pattern object at 0x81af658>, <function test at 0xb7db495c>), (<_sre.SRE_Pattern object at 0x81b0258>, <function test at 0xb7db495c>)]}}
20:50:20 <ehird> oklopol: so which bit of endeavour should i code next. ????
20:58:18 <oklopol> i recommend using a dice to decide that for you
20:58:33 <oklopol> DICidE <<< that's where they took the word
21:00:50 <ehird> oklopol: well, it's open-ended
21:00:55 <ehird> wanna see my module implementation?
21:00:57 <ehird> it uses import internals
21:00:59 <ehird> and crazy stuff
21:01:10 <ehird> basically, it lets you write a module like the one i linked
21:01:17 <ehird> and finds out what bits of the module are commands
21:01:19 <ehird> etc.
21:01:23 <ehird> and then extracts them
21:01:25 <ehird> into a Module object
21:01:31 <ehird> which can be bound and unbound to a bot
21:01:55 <ehird> oklopol: http://rafb.net/p/W55y8x46.html
21:01:59 <ehird> self.commands = {} # {priority ('low','medium','high') =>
21:01:59 <ehird> # {irc command or * => [(regexp, func)]}}
21:02:03 <ehird> that's how it represents commands
21:02:09 <ehird> it's pretty universal
21:02:23 <ehird> at the very base, you can match on command = * regexp = .*
21:02:25 <ehird> and use the raw text given
21:02:51 <ehird> oklopol: cool or not
21:04:47 <ehird> oklopol: y/n
21:04:53 <oklopol> hmm
21:05:10 <oklopol> well, probably y.
21:05:17 <ehird> oklopol: read it
21:05:18 <ehird> it's awesome
21:05:21 <oklopol> soon, soon :D
21:05:33 <ehird> _digest_command is a method of epic proportions
21:05:36 <ehird> it handles >>everything<<
21:05:54 <ehird> i screamed a lot when writing it, that commands dictionary can get gnarly
21:09:27 <oerjan> sounds like it needs a sidekick
21:10:11 <ehird> woot, just fixed loads of bugs in it
21:10:13 <ehird> it is wooty now
21:23:53 * Sgeo considers writing a kernel module to allow userspace programs to use panic()
21:25:23 <ehird> Sgeo: oh lord, you are writing kernel modules already?
21:25:32 <Sgeo> I want to learn how
21:25:32 <ehird> nobody install anything by sgeo he wrote his first c program a few days ago
21:25:44 <ehird> Sgeo: you can't write a kernel module a few days after tapping out a hello world
21:26:02 <Sgeo> I can certainly try, though
21:26:35 <ehird> Sgeo: You still don't understand anything about C -- I can guarantee it, nobody does after a few days
21:26:42 <ehird> kernel programming is a TOTALLY different level
21:26:57 * Corun agrees
21:27:09 * Corun has been programming C for quite a while
21:27:21 * oerjan suddenly gets a flashback to Superman 3
21:28:04 <oerjan> a very vague one, mind you
21:28:27 <Corun> And I wanted to write a driver in the linux kernel a few days ago, and, I mean, it's like the difference between a flying game that you can control with a keyboard and an actual jet
21:30:08 <Corun> (This is _years_ I've been doing C for :-))
21:30:16 * oerjan wonders if anyone has attempted to equip an actual jet with a keyboard interface
21:30:21 <Corun> Heh
21:31:05 <Corun> "Let's see... lock on.. that'd be enter.. Ok, I'm locked on... and... fire? Oh! space, of course" FWOOSH
21:35:02 <Sgeo> Surely there are kernel module tutorials?
21:37:23 <ehird> Sgeo: that's not gonna help you if you are not extremely experienced with c
21:37:29 <ehird> approximate bar
21:37:44 <ehird> [ | | ] <-- kernel programmer
21:37:47 <ehird> ^ you
21:38:34 <oklopol> all this talk about kerneling being hard is making me want to try
21:38:53 <ehird> oklopol: god no#
21:39:44 <oklopol> mind you i'm fairly experienced in c!
21:39:56 <oklopol> well c++
21:40:03 <oklopol> but what's the difference really ;;)
21:40:58 <ehird> heh
21:41:01 <ehird> night and day
21:41:01 <ehird> :)
21:42:51 <oklopol> i used the c subset for the most part, often just int(...) style casts :D
21:43:38 <Sgeo> int(...) style.. oh, using int(some_non_int) insead of (int)some_non_int ?
21:44:27 <oklopol> yes
21:45:46 <oklopol> my c++ was always quite weird, as you can probably guess if you've read my python
22:09:50 <ehird> oklopol: aa
22:21:22 <ehird> oklopol: i think i implemented ef's basic idea in haskell
22:21:24 <ehird> lala :: (Eq a) => (a -> a) -> a -> a
22:21:24 <ehird> lala f a = case f a of
22:21:24 <ehird> x | x == a -> a
22:21:24 <ehird> x -> lala f x
22:21:38 * Sgeo can't seem to compile this hello world
22:21:57 <ehird> Sgeo: You can't compile a hello world ... and you want to write a kernel module
22:21:59 <ehird> Corun: permission to mock?
22:22:21 <Sgeo> sgeo@ubuntu:~/c$ gcc -c -Wall -I /usr/src/linux-headers-2.6.20-15-386/include lkm_hello.c
22:22:24 <Sgeo> Is that correct?
22:22:28 <ehird> Sgeo: LOL
22:22:36 <ehird> No.
22:22:40 <ehird> But I won't tell you what's right because
22:22:51 <ehird> 1. the fact that you tried that shows that you really, really shouldn't be programming kernel-level
22:22:54 <ehird> 2. you shouldn't be anyway
22:23:06 <oklopol> ehird: lol :P
22:23:09 <Sgeo> Does it need to use the real source/
22:23:21 <ehird> Sorry, question quota exceeded.
22:24:41 <oklopol> ehird: that's fixed point, yes
22:24:57 <ehird> oklopol: but is it yours
22:25:07 <oklopol> yes
22:25:30 <Sgeo> What's wrong with me wanting to learn?
22:26:06 <oklopol> well, what do you mean by "mine"?
22:26:50 <oklopol> that's fixed point with the trivial observation f a = a => f (f a) = a
22:29:48 <Sgeo> ehird, is it that it needs to point to the place with real code?
22:29:53 <Sgeo> Or am I doing something else wrong?
22:33:00 -!- Iskr has quit ("Leaving").
22:35:27 <pikhq> ehird: From the sounds of it, he's just struggling to include the appropriate headers.
22:36:08 <pikhq> Although one will admit that Sgeo needs to grok C first.
22:36:29 <pikhq> (by "grok", I mean "be able to write the C spec from memory. . . And think that it's the most natural thing in the world.)
22:37:03 * pikhq would probably have a bit more success doing a kernel module. . .
22:37:13 <pikhq> But, then, I've been writing C for a few years. :p
22:39:04 <oklopol> i should do some c tomorrow
22:39:22 <pikhq> I should work on my kernel...
22:41:19 <Corun> Er, permission granted, ehird?
22:41:20 <Corun> :-P
23:03:52 -!- oerjan has quit ("leaving").
23:24:36 <ehird> back
23:25:30 <ehird> pikhq: Yeah, I think the fundamental difference between people who rock at C and people who don't, are that the rockers know that they suck
23:25:45 <ehird> and the people who don't think that they can learn how to not suck from a quick tutorial and that 'diving in' is a good approach :-)
23:25:53 <ehird> seen that very often
23:29:22 <oklopol> hmm... i never saw c as that complicated
23:29:48 <bsmntbombdood> c is fun!
23:30:23 <oklopol> bsmntbombdood: your mother is fun
23:30:31 <bsmntbombdood> oh really?
23:30:37 <bsmntbombdood> we should have a threesome sometime
23:30:47 <oklopol> you read my mind
23:30:58 <oklopol> she hot?
23:31:14 <bsmntbombdood> you should know
23:33:04 <oklopol> hmm... touche
23:36:26 <ehird> C is simple. just hard
23:37:48 <bsmntbombdood> not hard
23:38:25 <oklopol> whuz so hard about it?
23:40:02 <ehird> 1. philosophy
23:40:11 <ehird> 2. little nitty bits
23:47:39 -!- boily has joined.
23:52:00 <Sgeo> http://www.faqs.org/docs/kernel/x931.html oooOOO >.>
23:52:40 -!- boily has quit ("Schtroumpf!").
23:52:41 * Sgeo just said that to attempt to scare ehird >.>
23:56:53 <oklopol> i'm so gonna read that
23:57:11 <oklopol> looks so boring i'm guaranteed to pass out
00:02:09 -!- olsner has quit ("Leaving").
00:13:53 <pikhq> oklopol: C is very, very simple. That's what makes it fiendishly hard.
00:42:57 <ehird> http://upload.wikimedia.org/wikipedia/commons/6/66/Ca110-symbol-separator.png
00:43:00 <ehird> this is a bitchin' image
00:44:05 <Slereah> But rule 34 would be moar arousing :o
00:45:19 <pikhq> Slereah: Not necessarily.
00:45:28 <pikhq> Some rule 34 stuff is an instant erection-killer.
00:46:27 <ehird> pikhq: Some rule 34 stuff can kill an erection that isn't even there.
00:46:44 <ehird> Which is kind of a bizzare concept.
00:47:02 <oklopol> show example
00:47:11 <oklopol> you're erections are just weak.
00:47:13 <ehird> oklopol: that'd involve finding it myself
00:47:16 <oklopol> ...
00:47:16 <oklopol> your
00:47:21 <ehird> also, it can't be a weak erection if it isn't there now can it
00:47:32 <oklopol> hmm... good point, good point
00:50:19 -!- timotiis has quit (Read error: 110 (Connection timed out)).
00:59:22 -!- sebbu has quit ("@+").
01:46:58 -!- ehird has quit (Remote closed the connection).
03:39:22 -!- Corun has quit ("Leaving").
04:09:38 <Slereah> "The designers were partially successful; the only known precedent is a machine instruction [6] in a Soviet mainframe computer BESM-6, released in 1967, that is effectively equivalent to INTERCAL's "select" operator."
04:09:40 <Slereah> Heh.
04:17:50 -!- Sgeo has quit (Read error: 104 (Connection reset by peer)).
04:19:38 -!- Sgeo has joined.
04:51:08 -!- atsampso1 has joined.
04:57:31 -!- atsampson has quit (Read error: 110 (Connection timed out)).
05:09:10 <bsmntbombdood> have you guys played with emacs calc?
05:10:16 <Slereah> I read sexuality into that.
05:16:22 -!- pikhq has quit (Read error: 110 (Connection timed out)).
05:27:29 -!- calamari has joined.
05:44:09 -!- Sgeo has quit (Read error: 110 (Connection timed out)).
05:44:44 <bsmntbombdood> very powerfull, very esoteric
05:45:49 <bsmntbombdood> esoteric as in "Understood only by a chosen few or an enlightened inner circle.", and not "a useless joke"
05:54:45 -!- SupStrman has joined.
05:54:55 -!- SupStrman has left (?).
06:52:52 -!- calamari has quit ("Leaving").
07:23:35 -!- olsner has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:00:37 -!- GreaseMonkey has joined.
08:23:57 -!- Iskr has joined.
10:26:20 <oklopol> bsmntbombdood: you and your crazy rpn calculator fantacies
10:29:40 -!- GreaseMonkey has quit ("Unisex.").
10:32:43 -!- timotiis has joined.
11:03:54 -!- timotiis has quit (Read error: 110 (Connection timed out)).
13:18:32 -!- ehird has joined.
13:20:25 -!- ehird_ has joined.
13:20:25 -!- ehird has quit (Read error: 104 (Connection reset by peer)).
13:23:26 -!- ehird_ has quit (Read error: 104 (Connection reset by peer)).
13:35:41 -!- ehird has joined.
14:09:19 -!- ais523 has joined.
14:16:59 -!- ais523 has quit (Read error: 104 (Connection reset by peer)).
14:17:14 -!- ais523 has joined.
14:17:37 <ehird> hello ais523
14:17:44 <ais523> hello
14:33:32 -!- Corun has joined.
14:47:13 -!- ais523_ has joined.
14:48:09 -!- ais523 has quit (Nick collision from services.).
14:48:12 -!- ais523_ has changed nick to ais523.
15:28:38 -!- pikhq has joined.
16:33:37 -!- sebbu has joined.
17:02:41 -!- ais523 has quit ("(1) DO COME FROM ".2~.2"~#1 WHILE :1 <- "'?.1$.2'~'"':1/.1$.2'~#0"$#65535'"$"'"'&.1$.2'~'#0$#65535'"$#0'~#32767$#1"").
17:12:21 -!- Corun has quit ("This computer has gone to sleep").
17:12:36 -!- sebbu2 has joined.
17:16:51 -!- fizzie2 has joined.
17:17:15 -!- fizzie has quit (Read error: 110 (Connection timed out)).
17:20:31 -!- Corun has joined.
17:31:09 -!- ehird_ has joined.
17:31:22 -!- ehird has quit (leguin.freenode.net irc.freenode.net).
17:31:22 -!- cmeme has quit (leguin.freenode.net irc.freenode.net).
17:31:40 -!- sebbu has quit (Success).
17:31:40 -!- sebbu2 has changed nick to sebbu.
17:32:35 -!- ehird has joined.
17:32:35 -!- cmeme has joined.
17:39:16 -!- ehird has quit (Connection timed out).
17:47:19 -!- ehird__ has joined.
17:53:48 -!- ehird has joined.
17:59:41 -!- Sgeo has joined.
18:02:52 -!- ehird_ has quit (Read error: 110 (Connection timed out)).
18:06:56 -!- ehird__ has quit (Read error: 110 (Connection timed out)).
18:40:30 -!- ehird has set topic: o | iskagrel | security by obscupromiscuity | lobotomoritoratiotron supercollider | resistance is fossile | you will be agglomerated | apathy krundig | http://tunes.org/~nef/logs/esoteric.
18:40:47 <ehird> hah, try singing that aloud
18:41:11 <ehird> "O/Iskagrel/Security by obscupromiscuity/Lobotomoritoratiotron supercollidor/Resistance is fossile/You will be agglomerated/Apathy krundig"
18:41:15 <ehird> it sounds like some kind of pretentious metal lyrics
18:45:37 * olsner lols quietly at "Resistance is fossile/You will be agglomerated"
18:48:41 <ehird> olsner: it truly sounds like something that would be shouted out loudly at a metal concert
18:49:50 <olsner> heh, when you put it in all caps like that I can actually hear it growled
18:51:31 <ehird> olsner: it's an odd idea, though -- a death metal band that only growls about geek puns
18:51:33 <ehird> *geeky
18:51:57 <olsner> it would be truly befitting of #esoteric to produce such a metal band
18:58:24 -!- oerjan has joined.
19:03:41 * oerjan thinks it's starting to sound like a weirdly geeky religious sect. esoteric in both senses!
19:05:25 * oerjan does not think that this in any way contradicts it being a metal band too
19:10:28 -!- timotiis has joined.
19:17:51 * olsner bringeth forth the fermented milk
19:19:19 * oerjan googleth that phrase with no result
19:20:19 * olsner madeth it upeth
19:20:41 <olsner> rather, it was a real-time narrative with a twist
19:21:27 * olsner greedily makes hasty work of aforementioned expired milk
19:24:23 <Sgeo> Znlor vg'f abg fhpu n tbbq vqrn gb rng cergmryf juvyr er-ernqvat n fgbel jurer ng gur raq, rirelbar qvrf bs qrulqengvba (lrnu lrnu, fcbvyre sbe uggc://dagz.bet/vaqrk.cuc?snvyher , gung'f jul vg'f va EBG13.. lrf, V'z rivy orpnhfr V onfvpnyyl tbg rirelbar'f vagrerfg hc ol cbfgvat va EBG13..)
19:25:00 <olsner> let me guess, EBG13 stands for ROT13?
19:25:47 <Deewiant> )-: lıʌǝ sı ɹǝlıods lıʌǝ
19:26:14 <olsner> quick discovery of cipher method is quick :-)
19:26:44 <Sgeo> olsner, you didn't even bother to decrypt what I wrote, did you?
19:26:46 <Deewiant> I can tell that's ROT13 from the letters, and from having seen a lot of ROT13 in my time. :-P
19:26:53 <Sgeo> lol Deewiant
19:27:05 <Sgeo> If "EBG13" wasn'
19:27:07 <Sgeo> wasn
19:27:13 <fizzie2> The "uggc://" is quite a giveaway, too.
19:27:24 <Deewiant> I actually didn't pay any attention to "EBG13" until olsner pointed it out :-P
19:27:29 <Sgeo> wasn't there, would uggc:// make it quite obvious too, or can people generally tell even without those
19:28:12 <Deewiant> well I can't be sure it's not any other caesar cipher or similar... but it's /usually/ ROT13
19:28:39 * oerjan discovers vim's g? command
19:29:23 * olsner has never attempted to read ROT13'ed text before
19:29:27 <ehird> Sgeo: also, fuck you
19:29:40 <olsner> ehird: temper, temper
19:29:47 <ehird> olsner: his rot13 contained a spoiler
19:29:51 <ehird> a rather big one
19:30:01 <ehird> so, yeah: fuck you
19:30:10 <Sgeo> The story's been out for a while..
19:30:26 <ehird> Sgeo: so everyone must have read it, right
19:30:31 <Deewiant> it's easy to bookmark it and forget about it
19:30:35 <Deewiant> then read it in a few weeks
19:30:39 <Deewiant> having forgotten the spoiler
19:30:57 <ehird> Deewiant: i have never forgotten a spoiler
19:31:10 <Deewiant> O_o
19:31:16 <Deewiant> you should play nethack
19:31:55 <ehird> http://www.cs.cmu.edu/~aleksey/pictures/curry-howard-isomorphism.jpg
19:32:41 <Sgeo> ehird, isn't rot13 normally used to hide spoilers?
19:32:46 <Sgeo> *evil grin*
19:33:03 <ehird> http://wwwwwwwww.jodi.org/ <-- what the
19:33:19 <ehird> Sgeo: it's worth noting that you could have left out the spoiler perfectly well
19:34:18 <Deewiant> ehird: hmm, stupid thing isn't in a <pre>
19:34:33 <Deewiant> not that I can make much sense of it even when it is
19:34:40 <ehird> Deewiant: it's a link
19:34:47 <ehird> to an extensive website of ... WHAT
19:34:51 <Deewiant> yes, that's obvious
19:34:59 <Deewiant> but the illustration itself is interesting :-P
19:36:27 <Deewiant> 24 march 2001
19:37:14 <ehird> huh?
19:37:27 <Deewiant> is the date the site was put up, I would guess.
19:37:41 <ehird> why
19:38:04 <ehird> Deewiant: BTW - view source for the ascii art
19:38:27 <Deewiant> because of the "last modified" timestamps visible at http://wwwwwwwww.jodi.org/100cc/hqx/ and http://wwwwwwwww.jodi.org/betalab/img/ for instance
19:38:29 <ehird> ah
19:38:29 <ehird> http://en.wikipedia.org/wiki/Jodi
19:38:32 <ehird> internet artists
19:38:47 <ehird> appears at first glance to consist of meaningless text, until a glance at the HTML source code reveals detailed diagrams of hydrogen and uranium bombs.
19:38:47 <Deewiant> ehird: and yes, obvious, hence my comment saying that I can't make much sense of it
19:38:51 <ehird> Deewiant: it's a 1995 work
19:38:53 <ehird> apparently
19:39:19 <ehird> They received a Webby Award in the Arts category in 1999; as their mandatory five-word acceptance speech, they exclaimed "Ugly corporate sons of bitches!".
19:39:26 <Deewiant> :-D
19:57:59 <ehird> Deewiant: Continuation-passing style is hard.
19:58:08 <Deewiant> agreed
19:58:23 <ehird> I mean.
19:58:25 <ehird> I understand it fully.
19:58:27 <ehird> It's simple.
19:58:30 <ehird> But doing the conversion automatically?
19:58:32 <ehird> :((((((((
20:08:58 <Sgeo> Hm, I guess I should look for a tutorial for something newer than GTK 2.0?
20:25:11 <ehird> Sgeo: You wrote your first hello world a few days ago. Now you're doing GTK.
20:25:16 <ehird> Jesus christ there are just no words.
20:25:22 <ehird> Not as bad as a kernel module, even so.
20:27:48 <oerjan> next week he'll have SkyNet up and running as a botnet.
20:28:27 <Deewiant> we must stop him!
20:28:42 <ehird> oerjan: in asm
20:28:46 <ehird> which he learned the day prior
20:28:50 <ehird> from a 5 minute tutorial
20:30:27 <Sgeo> I have done quite a lot of work with a language that had a very C-like syntax, if that helps
20:31:02 <Sgeo> ehird, are there any graphical toolkits that might be easier?
20:31:36 <ehird> Sgeo: just don't. YOU DO NOT KNOW ANYTHING ABOUT C YET
20:31:38 <ehird> and that is objective fact
20:31:40 <ehird> for ANYONE at this stage
20:31:49 <ehird> <Sgeo> I have done quite a lot of work with a language that had a very C-like syntax, if that helps <-- No, it doesn't. One bit.
20:38:42 <oerjan> it's the bits that get you. i think.
20:39:10 <ehird> heh
20:47:57 <Sgeo> Yay I did the exercise suggested by the tutorial
20:48:21 <ehird> Sgeo: Just stop.
20:48:35 <ehird> No good C programmer thinks they're good enough for stuff like this at this point.
20:49:32 <Sgeo> I need to overcome the disability of relying on GUIs to make GUI applications that I acquired by reading about VB5 at an early age..
20:50:52 <ehird> Sgeo: Don't do it with C at ~5 days.
20:51:08 <ehird> Besides, gtk devs advocate using a graphical designer (Glade) anyway.
20:51:12 <ehird> But more importantly
20:51:24 <ehird> NOR A KERNEL MODULE
20:51:28 <ehird> >>>>SLOW DOWN<<<<
20:52:17 <Deewiant> ehird: >>>>CHILL OUT<<<<
20:52:32 <ehird> Deewiant: i can't face being tech support for another sgeo horror
20:52:33 <ehird> :(
20:52:47 <Deewiant> you don't have to be tech support for him :-P
20:52:50 <Sgeo> "another sgeo horror"?
20:52:59 <ehird> Deewiant: yeah but he spams the channel if i'm not
20:53:19 <Deewiant> there isn't much conversation here anyway, let'im
20:53:45 <ehird> kernel modules at 4 days come on :(
20:54:17 <Deewiant> why not, whatever gets you going
20:54:25 <Deewiant> it might not be complete very soon
20:54:29 <Deewiant> but where's the harm in trying
20:55:17 <ehird> because i know what sgeo's like :<
20:58:16 <Sgeo> Do most GTK+ programs use Glade/
20:59:27 <ehird> yes
21:26:24 -!- Iskr has quit ("Leaving").
21:28:02 <ehird> brb 30m
22:02:35 <SimonRC> I had forgotten that Fine Structure rocks
22:02:39 <SimonRC> but it does
22:10:06 -!- oerjan has quit ("Have a finely structured night").
22:57:40 <ehird> Back
22:57:50 <ehird> SimonRC: I haven't started it yet unfortunately.
22:59:02 <Sgeo> ehird, I think I spoiled only one substory >.>
23:18:22 <SimonRC> indeed
23:18:36 <SimonRC> and that wasn't a terribly bad spoiler
23:19:08 <SimonRC> I found a mine of hilarity: ROM CHECK FAIL
23:19:11 <SimonRC> http://www.tigsource.com/features/vgng/index2.html
23:19:18 -!- olsner has quit ("Leaving").
23:19:38 <SimonRC> I kept bursting out in laughter at the ridiculous combinations it came up with
23:19:50 * SimonRC goes
23:24:29 -!- timotiis has quit (Read error: 110 (Connection timed out)).
00:03:49 -!- Corun has quit ("Leaving").
00:38:50 -!- Corun has joined.
00:48:50 -!- Corun has quit ("Leaving").
01:03:59 -!- ihope has joined.
01:07:28 <ihope> Last night, I wrote some notes for an AI thingy with a pencil on yellow wide-ruled paper. Today at school, I wrote some notes for that AI thingy with a pen on white college-ruled paper.
01:07:56 <ihope> The notes on white paper have much more crossing out. I wonder if that's related to the color of the paper.
01:10:46 <ihope> I'll scan thhem in case anyone wants to use them to best the human mind.
01:16:28 <ihope> Darn. One of these is illegible and the other's cut off.
01:17:22 <ehird> Bye for today!
01:17:29 <ihope> Bye.
01:17:40 <ihope> You're not going to stick around to see my revolutionary ideas? :-P
01:17:45 <ehird> Nope.
01:17:50 <ihope> See you.
01:18:06 -!- ehird has quit (Remote closed the connection).
01:22:47 <ihope> Yellow page, huge edition: http://i29.tinypic.com/2wbvrqr.jpg
01:23:51 <ihope> White page, non-huge edition: http://i32.tinypic.com/2vt7jid.jpg
01:32:32 <ihope> And the yellow one mentions Tailsteak!
01:33:48 -!- Corun has joined.
02:47:38 -!- Slereah_ has joined.
02:47:38 -!- Slereah has quit (Read error: 104 (Connection reset by peer)).
04:16:23 -!- Corun has quit ("Ok, I'm ZZzzzing :-P").
04:18:08 -!- calamari has joined.
05:11:07 -!- Slereah has joined.
05:11:07 -!- Slereah_ has quit (Read error: 104 (Connection reset by peer)).
05:47:06 <Sgeo> ihope, tailsteak? Wherewhere?
05:47:10 * Sgeo opens Firefox
05:48:01 <Sgeo> ihope, OCR much?
05:51:15 * Sgeo takes back any accidental implied insultiness
05:55:45 -!- GreaseMonkey has joined.
05:58:28 -!- Slereah_ has joined.
05:58:35 -!- Sgeo has quit (Read error: 104 (Connection reset by peer)).
06:16:44 -!- Slereah has quit (Read error: 110 (Connection timed out)).
07:56:55 -!- Iskr has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:02:42 -!- Iskr has quit ("Leaving").
08:03:19 -!- Iskr has joined.
08:25:13 -!- calamari has quit ("Leaving").
08:39:02 -!- olsner has joined.
09:03:41 <oklopol> Deewiant: I can tell that's ROT13 from the letters, and from having seen a lot of ROT13 in my time. :-P <<< i can *read* it, pwnd ya bad, didn't i?
09:04:24 <oklopol> hmm
09:04:51 <oklopol> i actually cannot, now that i started reading. perhaps i memorized a crooked rot13 chart :)
09:05:15 <oklopol> EBG = VYT in mine.
09:05:32 <oklopol> right, perhaps it wasn't rot-13
09:07:07 <fizzie2> That sounds more like Atbash.
09:08:07 -!- fizzie2 has changed nick to fizzie.
09:08:17 <oklopol> (hmm... now that i think about it i've memorized a complement alphabet :D)
09:08:39 <fizzie> Yes, that's what Atbash is: http://en.wikipedia.org/wiki/Atbash
09:10:16 <oklopol> cool, it has a name.
09:10:24 <oklopol> oh
09:10:41 <oklopol> i didn't notice your earlier comment there, not that it changes anything
09:10:53 <oklopol> (but had to explain the "oh")
09:11:23 <oklopol> hmph, now i need to use another 5 minutes for alphabet memorization :<
09:13:25 <fizzie> I think the first question of the first homework round of our introductionary-cryptography-thing-course was about Atbash. Completely pointless, of course. (And the second question had ROT-13. Later on the homework questions made a bit more sense.)
09:23:11 <lament> rot-13 your atbash for twice the strength
09:25:00 <lament> (it's nice to know that they commute!)
09:27:10 <olsner> oh, rot13.atbash == atbash.rot13?
09:30:38 <GreaseMonkey> what's atbash?
09:32:49 <fizzie> See the Wikipedia link just a couple lines upwards.
09:33:03 <fizzie> Also rot_N.atbash = atbash.rot_{26-N}, for obvious reasons.
09:36:36 <fizzie> Too bad tr doesn't like "tr a-z z-a"; otherwise it'd be a nice Atbash utility. It's already good for rot-13ing with "tr a-z n-za-m".
09:36:47 <fizzie> tr: range-endpoints of `z-a' are in reverse collating sequence order
09:39:35 <olsner> ghci -e 'runCommand $ "tr a-z " ++ reverse [
09:39:40 <olsner> 'a'..'z']'
09:39:58 <olsner> or something like that :P
09:54:12 <fizzie> Well, perl -pe '@a=("a".."z"); @b=reverse(@a); eval "tr{@a}{@b}";' also works, but can't say it's pretty.
10:23:36 -!- GreaseMonkey has quit ("Unisex.").
11:34:12 -!- ais523 has joined.
11:46:35 -!- ais523 has quit ("(1) DO COME FROM ".2~.2"~#1 WHILE :1 <- "'?.1$.2'~'"':1/.1$.2'~#0"$#65535'"$"'"'&.1$.2'~'#0$#65535'"$#0'~#32767$#1"").
12:16:42 <AnMaster> err
12:17:16 -!- Tritonio has quit (Remote closed the connection).
12:41:02 -!- sebbu2 has joined.
13:01:30 -!- sebbu has quit (Connection timed out).
14:59:13 -!- ais523 has joined.
15:14:51 -!- ehird has joined.
15:22:30 -!- timotiis has joined.
15:35:05 -!- oklopol has quit (Read error: 104 (Connection reset by peer)).
15:35:15 -!- oklopol has joined.
15:35:50 -!- RedDak has joined.
15:42:37 -!- RedDak has quit (Remote closed the connection).
15:51:56 <ais523> a couple of esoteric programs have turned up here: http://thedailywtf.com/Comments/Code-examples-and-interviews.aspx?pg=3
15:52:17 <ais523> they were discussing stupid job interview questions that asked people to write programs under arbitrary restrictions
15:52:26 <Slereah_> Heh.
15:52:34 <Slereah_> Let's see that!
15:52:39 <ehird> 1
15:52:39 <ehird> 2
15:52:40 <ehird> Fizz
15:52:43 <ais523> and I submitted an INTERCAL program that fit most of the spec of one problem, while someone else wrote a Befunge program for the other (easier) problem
15:52:49 <ais523> 4
15:52:51 <ais523> Buzz
15:52:53 <ais523> Fizz
15:52:54 <ehird> tee hee
15:52:54 <ais523> 7
15:53:00 <ais523> I was doing the substring program
15:53:06 <ehird> irp fizzbuzz!!
15:53:12 <ais523> mine almost fits the spec, but it's case-sensitive and outputs in Roman numerals
15:53:19 <ehird> hahahah
15:53:29 <ais523> oh, someone came into #irp the other day and ran a few programs
15:53:37 <ehird> ais523: the problem with the daily wtf will that everyone will say "that language is the real wtf!! LOL ENTERPRISEY!!"
15:53:51 <ehird> it's a site filled with idiots who like to laugh at the people that they think are idiots :p
15:53:58 <ais523> when they tried the beer thing, I linked them to the lyrics on 99-bottles-of-beer.net, and then they went away
15:54:05 <ehird> ais523: heh
15:54:08 <ehird> ais523: you're not standard!
15:54:10 <ais523> ehird: not all of them are idiots, just some of them
15:54:12 <ehird> the correct response is 'go to hell'
15:54:16 <ais523> ehird: I know
15:54:22 <ais523> but I was implementing an extension
15:54:23 <ehird> irp++
15:54:52 <ais523> I can't wait for the next OMGWTF, by the way
15:55:06 <ais523> I'm planning to submit code automatically translated from the INTERCAL
15:55:14 <ais523> that's two WTFs pretty much guaranteed
15:55:21 <Slereah_> What is this fizbuz business?
15:55:31 <ais523> Slereah_: a silly interview question, also a children's game
15:55:49 <ais523> see the page I linked for Fizzbuzz in Befunge, and an implementation of substr in INTERCAL that finds all matches
15:56:08 <Slereah_> No one can read esoteric code, ais523.
15:56:10 <ais523> the correct FizzBuzz output, as I remember it (although the spec they give isn't clear), is:
15:56:18 <Slereah_> It's a thing you write, not that you read!
15:56:35 <ais523> 1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 FizzBuzz and so on
15:56:59 <ais523> in the children's game, you continue until someone screws up the sequence, then they're out
15:57:08 <ais523> the sequence showed up on anagolf a while ago, too
15:57:08 <Slereah_> So fiz is for dividible by 5, butt for 3?
15:57:13 <ais523> yep
15:57:15 <ais523> a nice simple rule
15:57:15 <ehird> and fizbutt for both
15:57:24 <Slereah_> That doesn't seem too hard for a non-esoteric language.
15:57:25 <ais523> err.... buzz, not butt
15:57:38 <ais523> Slereah_: it isn't, it's really easy, but apparently lots of programmers are incapable of it anyway
15:57:43 <ehird> ais523: fizz too
15:57:45 <ehird> but fizbutt is amusing
15:57:48 <ehird> and Slereah_ said it
15:57:57 <fizzie> What about my butt?
15:58:09 <ehird> hahahah
15:58:09 <ais523> it seems to be just fiz and buz in the US, though
15:58:20 <ais523> and fizzie: what an appropriate nick for this conversation!
15:58:26 <Slereah_> ...
15:58:26 <ehird> ais523: i cant' resisit saying something about dumbing down :-)
15:58:28 <ehird> *can't
15:58:30 <ehird> *resist
15:58:31 <ehird> (irony)
15:58:32 <Slereah_> I did write butt, didn't I.
15:58:51 <ais523> read the INTERCAL, anyway, it isn't too hard...
15:59:01 <Slereah_> I can't read much INTERCAL
15:59:03 <ais523> well, I didn't try to obfuscate it, but the algorithm is interesting
15:59:28 <ais523> it's my standard technique of using stacks to store arrays, and backtracking to access them non-destructively
15:59:46 -!- Parma-Quendion has joined.
16:00:07 <ais523> do you think anyone will take me up on my offer to explain my code?
16:00:14 <Slereah_> I once had the idea of doing something like that.
16:00:29 <Slereah_> Giving a programming assignment back in C and something esoteric
16:00:34 <Slereah_> but I was too lazy to do it
16:00:46 -!- Quendus has quit (Nick collision from services.).
16:00:54 -!- Parma-Quendion has changed nick to Quendus.
16:01:25 <ais523> well, I'm the sort of person who, when set an assignment that asks for a Windows binary among other things, hands in both the Windows binary and a Linux x86 binary that does the same thing, because the Linux version was the original
16:01:34 <ais523> and likewise hands in the .odt with the requested .pdf
16:01:54 <Slereah_> Hm. Maybe I can do a fizzbutt on the Love Machine 9000.
16:02:09 <ais523> I have to go for a bit, but I'll be back later
16:02:11 -!- ais523 has quit ("brb").
16:21:19 -!- ais523 has joined.
16:21:55 <ehird> wb ais523
16:21:57 <ais523> any relevant developments while I was gone?
16:22:25 <Slereah_> [17:01] * ais523 (n=ais523@pw01-fap01.bham.ac.uk) Quit ("brb")
16:22:26 <Slereah_> [17:21] * ais523 (n=ais523@pw01-fap01.bham.ac.uk) has joined #esoteric
16:22:31 <Slereah_> Can you guess?
16:22:42 <ais523> most likely not
16:22:57 <ais523> but I never know; after all, there was a conversation going, and that increases the chance of something happenign
16:23:03 <ais523> s/gn$/ng/
16:23:39 <ehird> Slereah_: that was a fulll log
16:23:41 <ehird> *full
16:23:42 <ehird> err
16:23:43 <ehird> ais523:
16:23:48 <ais523> ah
16:31:43 <ais523> it's interesting, really, that so much more effort goes into writing esoprograms than reading them
16:32:01 <ais523> generally speaking esoprograms are written and run, but not actually read except by their author
16:32:18 <ais523> I don't think that's a good thing; there are all sorts of programming techniques that can be learnt from others' code
16:32:31 <ais523> especially in esolangs
16:32:50 <ais523> the advantage of common things being difficult is that uncommon things become just as easy as the common things in some cases
16:32:51 <ehird> ais523: reading them is very hard
16:32:57 <Slereah_> Well, it's usually better to ask them directly
16:33:00 <ais523> well, it depends on the language
16:33:21 <Slereah_> It's not like it's hard to find them.
16:33:28 <ais523> Unlambda, for instance, is easy to write for an esolang (if you compile from lambda-calculus) but hard to write well, and hard to read
16:33:28 <Slereah_> There's like 75% of them all right here!
16:34:23 <ais523> well, there's time-zone issues
16:34:31 <ais523> and it's always nice to figure something out for yourself
16:34:37 <Slereah_> But then again, with Unlambda, you can use any function and copypaste it into your program
16:34:42 <ais523> although I suppose writing programs is also part of the learning process
16:35:07 <Slereah_> Just need some (^f.f(x)) program
16:35:11 <ais523> for instance, the concept of storing code in the stack turned out to be central to Underload; both Keymaker and I wrote programs that did that in different ways
16:35:36 <ehird> ais523: do you want my mkproposal.pl?
16:35:39 <ehird> it should work
16:35:45 <ehird> it doesn't diff, though. For editing, use the web interface.
16:35:47 <ais523> yep, you may as well post the link again
16:35:54 <ehird> But if you just want to splurge a directory in, and maybe edit a few files
16:35:57 <ehird> then use my script and amend
16:35:59 <ais523> I can find it in logs if necessary, though
16:36:09 <ais523> but I'm lazy
16:36:09 <ehird> ais523: I'm considering letting you define a sub - 'end'
16:36:13 <ehird> which will run after it creates everything
16:36:18 <ehird> kind of like a literate program
16:36:25 <ehird> but .. nah
16:36:47 <ehird> ais523: http://pastebin.ca/1009420
16:36:49 <ais523> I'm actually amused that literate programming has caught on
16:36:54 <ehird> comments on my perl style welcome :)
16:37:02 <ais523> it's a good idea, but I'm not entirely sure why it needs a special syntax
16:37:19 <ehird> ais523: because it's not just 'comments > code'
16:37:22 <ais523> I've written several programs with more comments than code, where the code is inside the comments, which use comment markup for the comments as usual
16:37:29 <ais523> and I know it isn't just comments > code
16:37:31 <ehird> you have to be able to write the program in the order that it makes sense to explain it in
16:37:36 <ehird> and subroutines just don't handle that
16:37:43 <ehird> (you need finer control and more access to the enclosing context)
16:38:04 <ais523> ehird: you didn't set the expiry on that to infinite
16:38:13 <ehird> ais523: so? i haven't licensed it yet
16:38:18 <ais523> it should be, really, for all esolang stuff, as I don't want it to vanish off the net
16:38:37 <ais523> but if you haven't licensed it yet, and you plan to put it up elsewhere, then fine
16:39:04 <ehird> ais523: pb.eso-std.org
16:39:05 <ehird> ;)))
16:39:19 <ais523> does that exist yet?
16:39:24 <ais523> elliotthird.org was down last I checked
16:39:45 <ehird> ais523: no httpd
16:39:47 <ehird> remember? i wiped it.
16:39:51 <ais523> I know
16:39:52 <ehird> my irc network is up though.
16:39:56 <ais523> I was wondering if you'd fixed it in the meantime
16:40:09 <ehird> don't intend to until i get the stuff ready to put up
16:40:09 <ais523> oh, and you don't set the executable/non-executable flag on the files you create
16:40:17 <ehird> ais523: hm, that's a good point
16:41:42 <ais523> interesting way you do marker selection, BTW
16:41:49 <ais523> that's kind-of clever
16:41:59 <ehird> ais523: how is it interesting?
16:42:00 <ais523> reminds me slightly of Ethernet collision retries
16:42:10 <ais523> ehird: increase the length and re-randomize each time
16:42:11 <ehird> it is just guaranteed to also work for finite files :-)
16:42:25 <ais523> normally people just re-randomize, or follow a pattern
16:42:26 <ehird> ais523: really i don't even need to increase the length
16:42:36 <ais523> ehird: yes, I know, that's what the comment was about
16:42:38 <ehird> what kind of file includes all 3 uppercase letter combinations on a line of their own?
16:42:42 <ais523> increasing the length is probably good, though
16:42:52 <ehird> yeah, my program is provably correct
16:42:53 <ehird> :-P
16:42:56 <ehird> well .. not really
16:42:57 <ehird> since it's perl
16:43:03 <ais523> and I can imagine a list of all known assembler opcodes in a file
16:43:07 <ehird> so just about anything relating to it is unprovable
16:43:13 <ais523> that might contain all 3 uppercase letter combinations
16:43:20 <ehird> ais523: UUU is an asm upcode?
16:43:29 <ais523> if it doesn't, we'll have to invent an esoasm to do the remaining ones
16:43:42 <ais523> and UUU is an RNA codon, not sure about asm
16:43:48 <ais523> does RNA count as assembly language?
16:43:51 <ais523> it's compiled into protein
16:43:59 <ais523> by a simple assembly-like substitution
16:44:05 <ehird> ais523: when you give me a 'hello world' in rna...
16:44:09 <ehird> ... then two things will happen
16:44:09 <ehird> .
16:44:14 <ehird> 1. i'll call it an asm language
16:44:21 <ehird> 2. fundie christians will kill you, in your sleep
16:44:31 <ehird> ais523: hm, odd, my irc network doesn't show up on nmap
16:44:34 <ehird> paranoid openssh :-)
16:44:39 <ehird> security by obscurity!
16:45:05 <ais523> heh, the entire genetic code of a human, when transcribed into RNA, is arguably a hello, world
16:45:13 <ehird> ais523: ha!
16:45:16 <ais523> a more literal hello, world than most programming languages, for that matter
16:45:32 <Slereah_> What would be hello world in RNA?
16:45:37 <ais523> but I don't think the genetic code by itself is enough to recreate a human
16:45:40 <Slereah_> A form of life that says "Hello, world" and then dies?
16:45:49 <ais523> I think Wikipedia had a DNA Hello, world
16:45:58 <ehird> Slereah_: that would rock
16:46:06 <ais523> when transcribed into protein and written out in the standard notation, you got HELLQWQRLD or something
16:46:08 <ehird> '...pop Hello, world! AEURURURURARRRRRRRRRRRRRRR-'
16:46:08 <ais523> let me try to find it
16:46:13 <ehird> '*dead*'
16:46:23 <Slereah_> ais523 : Metamath has a Hello, world theorem
16:47:46 -!- RedDak has joined.
16:48:07 <Slereah_> http://us.metamath.org/mpegif/helloworld.html
16:48:10 <ais523> ah, it's transwikied to Wikibooks now: http://en.wikibooks.org/wiki/Transwiki:List_of_hello_world_programs
16:48:19 <ais523> but I couldn't find the DNA one on there
16:49:21 <ais523> the worrying thing is that I have a vague memory that it was me who transwikied it
16:49:36 <Slereah_> "It is not difficult to write a message in a plasmid using the one letter code for the amino acids by inserting a suitable string of three letter of DNA per amino acid with some adjustments O => Q. For instance Hello world is HELLQ WQRD or Histidine-Glutamic acid-Leucine-Leucine-Glutamine-Tryptophan-Glutamine-Arginine-Aspartic acid."
16:49:44 <ehird> Slereah_: what does the hello world theorem actually mean?
16:49:46 <ehird> translate into english
16:49:58 <Slereah_> ehird : Nothing important.
16:50:07 <ais523> Slereah_: that's missing a Leucine
16:50:43 <Slereah_> It means that it is true that h does not belong to the set formed by the relation L over L and 0, and...
16:50:55 <Slereah_> I'm not too sure about the second part.
16:53:26 <ais523> it was transwikied, but it wasn't my fault this time
16:53:28 <ais523> it seems
16:55:52 <ehird> 344563446523446523446524465234465234465234456234465234456 = 2
16:56:07 <ais523> ...Wikibooks has hello worlds in 198 languages, plus 46 GUIs, 9 page description languages, 3 media-based scripting languages and 25 esolangs, including some esolangs I've never heard of
16:56:11 <ais523> this bears investigation
16:56:34 <ehird> ais523: any comments on my perl style?
16:56:46 <ais523> ehird: it's not particularly idiomatic, it looks more like C
16:56:49 <ais523> but that's probably a good thing
16:57:02 <ehird> ais523: what would you change? It doens't look anything like C to me..
16:57:10 <ehird> In fact, my mind views it as 'deliciously obfuscated' :-)
16:57:33 <ais523> if I were obfuscating it I wouldn't have single-use subroutines, and I wouldn't break print statements just to do some calculations
16:57:45 <ais523> you can do the calculation inside an argument to the print, you know...
16:58:26 <ehird> "The Del on the first line begins function definition for the program named HWΔPGM." -- the APL one
16:58:35 <ehird> why would you name a program HWΔPGM
16:58:38 <ehird> what's wrong with HELLO
16:58:44 <ehird> I mean 'Hello World Program', okay, but still
16:58:54 <Deewiant> HELLO isn't descriptive
16:58:57 <ais523> also, all those variables grate on the functional programmer inside me, but they're probably the clearest way to write it
16:59:01 <Deewiant> is it hello world, hello jack, hello bob, what?
16:59:13 <Deewiant> HWΔPGM is explicit
16:59:23 <Slereah_> Deewiant : Hello is hello for any variable
16:59:24 <Deewiant> hell, HELLO doesn't even say if it's a program!
16:59:31 <ehird> Deewiant: HWORLD
16:59:35 <Slereah_> Hence, it can be used to salute the entire world
16:59:36 <ehird> and since you're defining a program ...
16:59:57 <ehird> ais523: I dont' see how breaking the print wuld do anything apart from give me a mammoth print with statements inside
17:00:00 <ehird> would
17:00:16 <ais523> ehird: what's not obfuscated about a mammoth print with statements inside?
17:00:29 <ais523> I'm not saying your program is bad, just that it isn't particularly obfuscated for Perl
17:00:34 <ehird> ais523: not talking about obfuscation, relaly
17:00:36 <ehird> just idiomatic perl
17:00:41 <ais523> oh, and here's an esolang I was unaware of: http://www.nishiohirokazu.org/blog/2006/09/kemuri_1.html
17:00:46 <ais523> luckily, most of the page is in English
17:01:11 <Slereah_> It seems awfully Japanese ^^
17:01:11 <ais523> no spec, but there's an interp so it could be deduced from that
17:01:42 <Slereah_> "The only command to push constant values into the stack is the `. It pushes 13 values 33, 100, 108, 114, 111, 119, 32, 44, 111, 108, 108, 101, 72 in this order. "
17:01:47 <Slereah_> That is so cheating.
17:01:59 <ehird> Slereah_: 'awfully Japanese ^^' - the writer is obviously japanese
17:02:04 <Slereah_> I know.
17:02:07 <ais523> ah, there is a spec, I just missed it because it was so short
17:02:15 <ehird> esolangs and golfing are more popular with those japs it seems
17:02:20 <ehird> but golfing moreso
17:02:23 <ehird> and golfing with ruby tops
17:02:40 <ais523> Slereah_: the pushing of those values is cheating, but it's the only way to get constants
17:02:42 <Slereah_> "Super NAND Time!!"
17:02:49 <ehird> but ` is such a cheat
17:02:50 <ehird> :-)
17:02:51 <ais523> you have to do bitwise XORs and complements on those values to get to other values
17:02:55 <Slereah_> ais523 : What about "1"?
17:03:04 <Slereah_> It's also a constant!
17:03:07 <ehird> "l"(small L) and "*"(asterisk) are reserved for possibility to use as a command "Execute the stack as Brainf*ck" in future. ha
17:03:21 <ais523> Slereah_: you can only get a constant by XORing together characters of "Hello, world!"
17:03:28 <ais523> you can't push a literal 1 onto the stack
17:03:37 <ais523> so it's more interesting than it looks
17:03:47 <ais523> only capable of outputting constant text strings, though, so it isn't Turing-complete
17:03:55 <ais523> it's only barely cat-complete
17:04:03 <ais523> and cat programs are a lot easier to write...
17:04:58 <ehird> ais523: l and * would make it tc
17:05:18 <ais523> yes, but allowing inline BF is a cheaty way to make something TC
17:05:31 <ehird> ais523: by the way, i have an idea for a language
17:05:32 <Slereah_> Those people and their cheating way.
17:05:34 <ais523> just like calling Perl regexps TC is cheating
17:05:40 <ehird> you can implement it by TAIL-FILE-RECURSION
17:05:42 <ehird> basically
17:05:46 <ehird> the only 'looping' in the language
17:05:55 <ehird> is when the interp loads its all file
17:05:59 <ehird> and then exits after running itself
17:06:23 <ais523> so it reloads a different file when the currently running file ends?
17:06:28 <Slereah_> I wonder, is there a form of Brainfuck without any restriction on the code?
17:06:34 <ehird> ais523: no
17:06:35 <ehird> like
17:06:37 <ehird> in interp.pl
17:06:41 <Slereah_> Like an unbalanced [ would just be a conditional
17:06:45 <ehird> require "interp.pl"; exit
17:06:48 <ehird> or something
17:06:52 <ehird> and that's the only way the language can loop
17:06:53 <ehird> by doing that
17:06:53 <Slereah_> and unbalanced ] would just bring back to the beginning of the code.
17:06:54 <ais523> Slereah_: FukYorBrane does that
17:07:08 <ais523> at least, not exactly, IIRC it ignores unbalanced loops
17:07:11 <Slereah_> It's hard to find new ideas!
17:07:23 <ais523> all code has to be valid, because the program tends to get corrupted during use
17:07:32 <ais523> and has to keep running unless it hits a bomb, or all threads quit
17:09:39 <ais523> compare http://en.wikibooks.org/wiki/List_of_hello_world_programs#Ruby_with_GTK.2B to http://en.wikibooks.org/wiki/List_of_hello_world_programs#Windows_API_.28in_C.29
17:09:52 <ais523> that's pretty much proof of ehird's and my complaints about how bad the Windows API is
17:10:07 <ais523> of course, I picked the examples to make that statement look good, but still...
17:10:23 <ehird> ais523: hee, you linked to ruby as a good example
17:10:31 <ehird> i was expecting perl
17:10:31 <ehird> :)
17:10:35 <ais523> ehird: I wanted something clean and simple compared to that C stuff
17:10:39 <Slereah_> 99 should also do a hello world database.
17:10:42 <ais523> Ruby is good at clean, simple, small programs
17:10:47 <Slereah_> The hello world lists are too scattered
17:10:49 <ais523> even graphical ones, apparently
17:10:55 <ehird> ais523: ruby has some really weird bits :-) but it's nice
17:11:03 <ehird> as for gui ones
17:11:06 <ehird> wanna see a Shoes version of that?
17:11:16 <ehird> I can write it *right here*
17:11:19 <ehird> here goes:
17:11:19 <ehird> [[
17:11:22 <ehird> Shoes.app do
17:11:31 <ehird> button("Hello, world") { exit }
17:11:31 <ehird> end
17:11:32 <ehird> ]]
17:12:56 <ehird> ais523: well, the window gets kinda big when you do that
17:13:00 <ehird> you can trivially make it any size, though
17:13:09 <ehird> Shoes.app :width => a, :height => b do # that's all
17:15:04 <ehird> THE CHANNEL, IT DUN DIE
17:15:13 <Slereah_> noes.
17:16:07 -!- ais523 has quit (Read error: 104 (Connection reset by peer)).
17:16:07 -!- ais523_ has joined.
17:16:30 <ais523_> sorry, did I miss anything?
17:16:35 -!- ais523_ has changed nick to ais523.
17:16:37 <ehird> ais523_: last thing you heard?
17:16:38 <Slereah_> [18:14] <ehird> THE CHANNEL, IT DUN DIE
17:16:54 <ais523> <ehird> I can right it *right here*
17:16:59 <ehird> *write
17:17:01 <ais523> s/right/write/
17:17:04 <ehird> <ehird> here goes:
17:17:04 <ehird> <ehird> [[
17:17:04 <ehird> <ehird> Shoes.app do
17:17:04 <ehird> <ehird> button("Hello, world") { exit }
17:17:04 <ehird> <ehird> end
17:17:05 <ehird> <ehird> ]]
17:17:07 <ehird> <ehird> ais523: well, the window gets kinda big when you do that
17:17:09 <ehird> <ehird> you can trivially make it any size, though
17:17:11 <ehird> <ehird> Shoes.app :width => a, :height => b do # that's all
17:17:19 <ais523> maybe I should write a hello, world in OpenGL
17:17:26 <ais523> without using any text functions
17:17:29 <ehird> ais523: the cool thing about shoes
17:17:35 * ais523 has just finished an OpenGL project
17:17:38 <ehird> is that it contains animation and graphics functions ala Processing
17:17:43 <ehird> and excellent mouse/keyboard handling
17:17:45 <ais523> they wanted a Windows executable
17:17:49 <ehird> as well as the standard, native gui fare
17:17:56 <ais523> so I invented a programming language for expressing graphical scenes in
17:18:02 <ais523> and wrote a cross-platform interpreter for it
17:18:21 <ais523> and handed in the source, Windows and Linux executables, and the source code for the particular program they wanted
17:18:34 <ais523> I doubt anyone else did it like that
17:20:21 <ehird> ais523: you know what sucks? the lack of gui toolkits good for writing /real apps/ that aren't complex as hell
17:20:43 <ais523> GTK is reasonably simple
17:20:54 <ais523> and GLUT is very simple, but not good enough for large-scale applications
17:21:01 <ehird> ais523: GTK is based on hell, though
17:21:07 <ehird> GObject is the worst idea I've heard in years
17:21:10 <ehird> It's a good esoteric idea, though.
17:21:13 <ehird> Kind of like Malbolge.
17:21:16 <ais523> well, Qt isn't that bad either
17:21:28 <ehird> qt is nice, but not nice to program
17:21:46 <ais523> oh, and the graphical version of intercalc (the CLC-INTERCAL calculator) is written in GTK
17:22:00 <ais523> I'm not sure what argument that makes either way
17:27:40 <ehird> ais523: i can't wait until everything's rewritten in c intercal
17:27:51 <ais523> what do you mean by 'everything'
17:28:05 <ehird> everything
17:28:22 <ais523> ehird: that's never going to happen, what would C-INTERCAL itself be written in?
17:28:28 <ehird> ais523: intercal
17:28:30 <ais523> besides, I rather like a multitude of languages existing
17:28:39 <ais523> ehird: what would it compile into? INTERCAL?
17:28:44 <ais523> that would be kind of pointles
17:28:46 <ais523> s/$/s/
17:28:52 <ehird> ais523: it would interpret it
17:29:00 <ehird> and since everything is in INTERCAL
17:29:02 <ehird> it would be fast
17:29:04 <ais523> ehird: but the whole point of C-INTERCAL is that it's a compiler
17:29:15 <ehird> ais523: then we'll stop using c-intercal ;)
17:29:35 <ais523> the different design decisions of C-INTERCAL and CLC-INTERCAL stem mainly from the fact that one's a compiler and one's an interpreter, and from the different langs they're written in
17:31:17 <ais523> however, I feel that a practical INTERCAL-based language is a reasonable idea
17:31:32 <ais523> if it had the usual arithmetic operators and decent string handling, INTERCAL would be quite nice to program in
17:36:37 -!- ais523 has quit ("(1) DO COME FROM ".2~.2"~#1 WHILE :1 <- "'?.1$.2'~'"':1/.1$.2'~#0"$#65535'"$"'"'&.1$.2'~'#0$#65535'"$#0'~#32767$#1"").
17:36:53 -!- ais523 has joined.
17:37:15 <ais523> sorry... did I miss anything?
17:37:19 <ais523> the last I saw was <ais523> if it had the usual arithmetic operators and decent string handling, INTERCAL would be quite nice to program in
17:38:07 <Slereah_> noyhing missed.
17:38:17 <ais523> and everything sent/
17:38:22 <ais523> s/\//?/
17:38:31 <ehird> ais523: yes
17:38:33 <ehird> <ais523> if it had the usual arithmetic operators and decent string handling, INTERCAL would be quite nice to program in
17:38:33 <ehird> * ais523 has quit ("(1) DO COME FROM ".2~.2"~#1 WHILE :1 <- "'?.1$.2'~'"':1/.1$.2'~#0"$#65535'"$"'"'&.1$.2'~'#0$#65535'"$#0'~#32767$#1"")
17:38:33 <ehird> * ais523 (n=ais523@pw01-fap01.bham.ac.uk) has joined #esoteric
17:38:49 <ais523> hmm... that's nice, it even got my sig
17:39:07 <ais523> You are standing in the main hall of what appears to be some sort of
17:39:11 <ais523> castle. There is a door in each of the east and west walls; the one in
17:39:11 <ais523> the west wall has a [ symbol marked on it, but there are no markings on
17:39:11 <ais523> the door in the east wall. There is a large staircase, which goes upwards
17:39:11 <ais523> to a balcony high on the north side of the room. The south of the room is a
17:39:11 <ais523> large door, heavily barred with wooden bars that you would have no chance
17:39:12 <ais523> of lifting.
17:39:27 <ais523> (unfinished esoteric text adventure with several esolang puzzles in, so far three puzzles none of which leads anywhere)
17:39:58 <ais523> although one of them is capable of leading to a secret area if you have a good knowledge of INTERCAL run-time error messages
17:39:58 <Slereah_> What are the puzzles?
17:40:07 <ais523> Slereah_: try moving through the game, and you'll find out
17:40:13 <ais523> there's a SMETANA puzzle on the stairs
17:40:18 <ais523> a Brainfuck puzzle to the west
17:40:23 <ais523> and an INTERCAL puzzle to the east
17:40:58 <ais523> SMETANA because the whole "Step 1. Step 2." blatantly implies a staircase
17:41:13 <Slereah_> ais523 : GO STAIRCASE
17:41:23 <ehird> ais523: shall I write a bot that will interface the game and irc?
17:41:25 <ais523> You are standing on stair 0 of a flight of stairs.
17:41:29 <ais523> The stairs are numbered from 0 at the bottom to 9 at the top; the numbers
17:41:32 <ehird> so you don't have to do it manually.
17:41:33 <ais523> are written on the banisters rather than the stairs themselves. The top
17:41:37 <ais523> and bottom stairs are blank, but the others have writing on, as follows:
17:41:41 <ais523> 9.
17:41:46 <ais523> 8. Go to step 2.
17:41:49 <ais523> 7. Swap steps 3 and 5.
17:42:02 <ais523> 6. Swap steps 3 and 4.
17:42:05 <ais523> 5. Go to step 6.
17:42:09 <ais523> 4. Go to step 1.
17:42:13 <ais523> 3. Swap steps 2 and 4.
17:42:18 <ais523> 2. Swap steps 1 and 7.
17:42:22 <ais523> 1. Swap steps 5 and 8.
17:42:26 <ais523> > 0.
17:42:34 <ais523> ehird: you could do, but manually is simple and the parser's really rudimentary
17:42:34 <ais523> so it's best for me to parse in my head rather than make people use the parser, which only accepts one-char commands, no args
17:42:35 <ais523> each description ends with a menu of which command does what in that context
17:42:44 <ais523> oh, and your options are to walk up a step, down a step, or to slide down the banister
17:42:51 <ais523> so you're going up, presumably?
17:42:57 <Slereah_> Yes, yes I am.
17:43:02 <Slereah_> Will I be teleported?
17:43:23 <ais523> When you arrive on step 5, you are suddenly teleported to step 2!
17:43:23 <ais523> When you arrive on step 2, you are suddenly teleported to step 1!
17:43:23 <ais523> When you arrive on step 1, steps 5 and 8 swap places!
17:43:30 <ais523> at this point, the staircase looks like this:
17:43:38 <ais523> 9.
17:43:42 <ais523> 8. Go to step 2.
17:43:46 <ais523> 7. Swap steps 3 and 5.
17:43:50 <ais523> 6. Swap steps 3 and 4.
17:43:59 <Slereah_> Oh noes!
17:44:02 <ais523> 5. Go to step 6.
17:44:06 <ais523> 4. Swap steps 1 and 7.
17:44:10 <ais523> 3. Swap steps 2 and 4.
17:44:14 <ais523> 2. Go to step 1.
17:44:18 <ais523> > 1. Swap steps 5 and 8.
17:44:22 <ais523> 0.
17:44:26 <Deewiant> er what just happened
17:44:26 <ais523> I kept going up until you were teleported
17:44:29 <Deewiant> ah
17:44:34 <Slereah_> Do I have Mario-like jumping abilities?
17:44:34 <ais523> you have no choice now but to walk off the staircase; it resets when you do that
17:44:34 <ais523> in general all the puzzles reset when you leave the room and they are unsolved
17:44:35 <ais523> some reset even if solved, some don't
17:44:38 <ais523> Slereah_: not in this game
17:45:01 <ais523> presumably you'd gain them if you found a blue mushroom to eat, but there are none in the game at the moment
17:45:35 <ais523> an ehird web interface would likely work better than pasting, though, just because the SMETANA problem produces so much output
17:45:40 <ais523> the other two are less noisy
17:45:49 <ehird> ais523: but that's less ircy
17:45:50 <ehird> :P
17:45:53 <ehird> But I can do a web interface, trivially.
17:45:55 <ehird> Shall I?
17:45:58 <ais523> may as well
17:46:08 <ais523> I'll paste the source-code; it doesn't really give anything away
17:46:33 <ais523> it's really lousy, though, I may rewrite it in an esolang at some stage
17:46:38 <ehird> ais523: no point pasting the code
17:46:40 <ehird> you can run it on your machine
17:46:44 <ehird> once i've written the web interface
17:46:51 <ais523> then how will the web interface access the code?
17:46:57 <ehird> ais523: by using a subprocess.
17:47:05 <ehird> ais523: it takes input on stdin, and spews stuff on stdout, right? Then I can make something meaningful out of it.
17:47:17 <ais523> yes, but you'll need the code or an executable to be able to run the code
17:47:23 <ais523> you can't interface to the code if you don't have it
17:47:25 <ehird> ais523: So I give you my web interface.
17:47:26 <ehird> And you run it.
17:47:38 <ais523> ehird: I have no server that's externally accessible
17:47:44 <ehird> ais523: Ah.
17:47:48 <ais523> as it happens Apache's running on here, but I can't get round the firewall
17:47:49 <ehird> ais523: You can just give me a linux binary, then.
17:47:53 <ais523> because I don't control it
17:47:55 <ehird> Smaller than source code :p
17:47:59 <ehird> filebin.com
17:48:01 <ais523> I have a linux x86 binary, though
17:48:05 <ehird> that'll work fine
17:48:08 <ehird> i am on linux x86 after all
17:48:16 <ehird> oops
17:48:17 <ehird> http://filebin.ca/
17:48:23 <ais523> esogame: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.6.8, dynamically linked (uses shared libs), not stripped
17:48:26 <ais523> and I know it's .ca
17:48:46 <ehird> ais523: that iwll work perfectly
17:48:50 <ehird> *will
17:49:00 <ais523> http://filebin.ca/shdmov
17:49:18 <ehird> Okay./
17:49:23 <ehird> Web interface to the esogame coming up.
17:49:39 <ehird> Hurm
17:49:42 <ehird> ./esogame: /lib/tls/i686/cmov/libc.so.6: version `GLIBC_2.4' not found (required by ./esogame)
17:49:45 <Slereah_> Does the game have some sort of plot, or is it just a bunch of puzzles?
17:49:50 <ehird> ais523: what kind of directory structure is THAT
17:49:50 <ais523> Slereah_: no plot as of yet
17:49:53 <ais523> that's coming later
17:50:04 <ais523> and really, I don't know what kind of dir structure that is
17:50:19 <ehird> ais523: oh well, paste the source code to filebin and /msg me the url i guess
17:50:19 <ais523> ldd esogame
17:50:20 <ais523> linux-gate.so.1 => (0xb7fc3000)
17:50:20 <ais523> libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb7e59000)
17:50:20 <ais523> /lib/ld-linux.so.2 (0xb7fc4000)
17:50:28 <ehird> (since pastebin.ca is public)
17:50:32 <Slereah_> Will the victory imply some sort of pastry?
17:50:38 <Slereah_> Perhaps a cake-like object
17:50:44 <ais523> Slereah_: probably, but a victory is currently impossible
17:50:55 <ais523> no doubt you'll have to make the cake-like object yourself, though, using a Chef program
17:51:03 <Slereah_> :D
17:51:06 <Slereah_> I like the idea.
17:51:21 <ais523> I've /msg'd ehird the source code
17:51:30 <ais523> but it doesn't spoil any of the puzzles
17:51:30 <Slereah_> Will you need a Camouflage program to enter the building?
17:51:48 <ais523> Slereah_: not sure, you start inside the building, but it's currently possible to leave but not to re-enter
17:51:58 <ais523> that might be a decent way to manage re-entry
17:52:14 <Slereah_> Heh.
17:52:20 <ais523> I was planning to construct the building a bit like Television Center, with two floors, and make the whole thing a giant Whirl program
17:52:28 <ais523> s/program/interpreter/
17:52:55 <ais523> that would require rooms to become harmless once their puzzles were solved
17:53:02 <ehird> ais523: OK, I can make a web interface to this trivially.
17:53:04 <ehird> Even with savegames!
17:53:11 <ehird> (It just generates a unique game id when you go there, then saves to that filename.)
17:53:16 <ehird> (Just go to the URL to load again.)
17:53:24 <ehird> How do you load a saved game, though, ais523?
17:53:27 <ais523> actually, I might move the INTERCAL room directly above the Brainfuck room, then restrict people to going clockwise round the puzzle
17:53:32 <ais523> ehird: specify it on the command line at current
17:53:43 <ehird> aha, ais523
17:53:44 <ais523> I started that program years ago and haven't updated it much since
17:53:46 <ehird> OK, this will be fun
17:53:58 <ais523> maybe I'll update it more once my exams are finished
17:54:07 <ais523> but I've already promised lots of things to different people
17:54:51 <ais523> such as fixing the bug with C-INTERCAL that Debian's autobuilder found on Itanium, or the bugs I found with C-INTERCAL on Solaris
17:55:08 <ais523> on the plus side, C-INTERCAL's going to be ridiculously extensively portability-tested, given its subject matter...
17:55:39 <ehird> esco!!!!
17:55:47 <ehird> haha i think me and Slereah_ are the only ones who find that funny
17:55:50 <ais523> esco????
17:56:00 <ais523> ah, an esoteric OS?
17:56:22 <Slereah_> Esoteric interpreter!
17:56:27 <Slereah_> Well, compiler
17:56:32 <ais523> compiles what into what?
17:56:36 <ais523> and written in what?
17:56:39 <Slereah_> Everything!
17:56:49 <Slereah_> Such diverse languages as Brainfuck, ook, spoon...
17:56:57 <ais523> I actually want a compile everything into everything suite
17:57:02 <ehird> ais523: esco is a shitty pile of crap
17:57:03 <ais523> EsoInterpreters is a good start
17:57:05 <ehird> to put it bluntly
17:57:19 <ehird> they support about 5 languages, half of which are brainfuck syntax-changes.
17:57:19 <ais523> ideally, have some way to compile around a cycle of esolangs (with at least one 'real' language represented)
17:57:25 <ehird> and the code is crappy c++.
17:57:29 <ais523> then any lang in the cycle can be compiled into any other
17:57:30 <ehird> and the dev linked to it all over the wiki
17:57:32 <ehird> etc
17:58:00 <Slereah_> It would be hard to compile BF into Unlambda.
17:58:06 <Slereah_> Or vice versa.
17:58:07 <ais523> e.g. it's currently possible to compile Unlambda -> Underlambda (I lost the source code for that, but I can remember how it was done)
17:58:11 <ais523> and Underlambda -> Underload
17:58:18 <ais523> not quite, no input
17:58:23 <ais523> Underlambda -> C, definitely
17:58:24 <Slereah_> http://esco.sourceforge.net/
17:58:37 <ais523> and I have a P'' interp in Unlambda
17:58:57 <ais523> changing that to a BF->Unlambda compiler wouldn't be ridiculously difficult because I still have the Relambda source
17:59:31 <Slereah_> Relambda?
17:59:38 <ais523> Slereah_: Unlambda + lambda
17:59:48 <ais523> it's a language I use privately to write Unlambda programs
18:00:04 <Slereah_> Oh.
18:00:09 <ais523> there's a Relambda to Unlambda compiler in my esolangs.el, though, which I've pasted at least twice
18:00:21 <ais523> it's buggy, unfortunately
18:00:28 <ehird> ais523: the esco guys are funny
18:00:34 <ehird> "Byter is a language for training brains."
18:00:36 <ehird> they warped that into
18:00:36 <ais523> but unlambda + lambda is a pretty simple combination
18:00:40 <ehird> "Byter is a language for training your brain."
18:00:50 <Slereah_> Well, that was most of the idea for Lazy Bird.
18:01:03 <ais523> Lazy Bird doesn't actually have a lambda, though, does it?
18:01:07 <ais523> just lots of useful combinator
18:01:10 <ais523> s/$/s/
18:01:15 <Slereah_> although the real idea was "I'm trying to write Unlambda on the love machine 9000 and it's terrible"
18:01:19 <Slereah_> ais523: It has lambdas.
18:01:25 <ais523> OK
18:01:30 <ais523> Underlambda has lambdas too
18:01:40 <ais523> and I had great fun trying to express them as rewrite rules into Underload
18:01:43 <ais523> I think I succeeded, though
18:01:50 <Slereah_> Here be a Fibonacci with lambdas : ``m^x^y````yk.1r``xx``v`y0```yk`sb`y0``v0i
18:02:15 <ais523> that's basically the same syntax as Relambda, except that I use $x and $y to read the value of lambda bindings
18:02:32 <ehird> ais523: by the way, a trivial way to do continuations in an esolang:
18:02:32 <ais523> the ^ is the same
18:02:38 <ehird> ({} is an array here)
18:02:44 <Slereah_> \ is pretty ugly as a lambda.
18:03:03 <ehird> X [Y] callcc Z -> {X Z} Y Z
18:03:04 <ais523> I use ^ in Relambda, but \ in Underload
18:03:08 <ehird> trivial
18:03:18 <ehird> ais523: which leads me to a new idea --
18:03:20 <ehird> 'forward parameters'
18:03:21 <ais523> ehird: that's pretty much how the Underlambda rewrite rule works
18:03:29 <ehird> in a concat lang, the 'back parameters' are the ones coming before the call
18:03:36 <ehird> my idea is 'forward parameters': the ones in front!
18:04:02 <ais523> that makes some sense if you have an amount of control over what they are
18:04:13 <ehird> ais523: here's callcc using 'forward parameters'
18:04:13 <ehird> \x y,z -> {x z} y z
18:04:16 <ais523> but one issue is that back parameters can be manipulated in all the usual concatenative ways
18:04:17 <ehird> that's in lambda + concat notation
18:04:22 <ehird> you could probably come up with a better way to do it
18:04:23 <ais523> forward parameters couldn't be, they'd have to be literals
18:04:27 <ehird> ais523: nahhhh
18:04:29 <ehird> ais523: they could be thunks
18:04:32 <ehird> lazy concat
18:04:43 <ais523> oh, I see
18:05:01 <ais523> well, in that case it's just the sort of typical rewrite rule which is trivial in Perl, Thutu or Cyclexa
18:05:28 <ais523> how's that web interface, by the way?
18:07:29 <ehird> ais523: going quite well
18:07:34 <ehird> i mean, the actual thing is trivial
18:07:39 <ehird> the fun part is writing the server boilerplate!
18:07:40 <ehird> <.<
18:08:04 <ais523> heh, I could probably make it into a CGI script by adding a couple of lines and using a continuation library
18:08:20 <ehird> ais523: Probably, but forking like hell would kill this kind of thing
18:08:32 <ehird> ais523: besides, you need multiple users at one time
18:08:40 <ehird> and you can't persist processes, anyway
18:08:40 <ais523> OK, but why would a continuation library need forking?
18:08:42 <ehird> so you couldn't use a cgi
18:08:48 <ehird> ais523: cgi = fork each request
18:09:11 <ais523> if you can persist continuations across runs of the program, then you can just exit in between calls
18:09:33 <ehird> ais523: ah, i see what you're saying
18:09:36 <ehird> i'm using subprocesses
18:09:44 <ais523> Underlambda's actually got persistent continuations as part of the language, in the C, S and D commands
18:09:54 <ehird> ais523: hm, should i make saving implicit?
18:09:58 <ehird> like, each action saves
18:10:03 <ehird> since i generate a unique name anyway
18:10:07 <ais523> not sure, the save on it's pretty broken anyway
18:10:13 <ais523> because it doesn't save the internal state of puzzles
18:10:18 <ehird> ais523: does it not? dshdkf!
18:10:23 <ais523> just a whole load of variables I don't actually use yet
18:10:25 <ehird> i'm going to all this fuss partly for the saves
18:10:32 <ehird> ais523: make it persist it pronto :<
18:10:44 <ais523> OK, I'll look at the code for the first time in years...
18:11:07 <ais523> the problem is keeping a consistent save-file format whilst adding extra puzzles...
18:11:36 <ais523> aargh, it's basically impossible the way I've written it
18:11:45 <ais523> it seems I've duplicated the parser inside the puzzle functions
18:11:53 <ais523> and used auto variables to store the states of the puzzles
18:12:05 <ehird> ais523: :(
18:12:13 <ais523> I told you this thing needs a rewrite
18:12:26 <ehird> oh well, i'll just do no save games for now
18:12:41 <ais523> pokpokpopokpkopkopokpkopokpokpkopokpokpkopokpkopkopkopokpkopokpkoppokpkopokpokpkpokpokpokpkopko
18:13:27 <ais523> at least the BF puzzle doesn't actually need a save, it's always either solved or reset
18:13:35 * ais523 just had a worryingly evil idea
18:13:41 <ais523> this game's a text adventure
18:13:49 <ais523> and I'm planning to add a text adventure system to PerlNomic
18:14:01 <ais523> I wonder if the two could be combined in some way?
18:14:16 <ehird> <ais523> pokpokpopokpkopkopokpkopokpokpkopokpokpkopokpkopkopkopokpkopokpkoppokpkopokpokpkpokpokpokpkopko
18:14:17 <ehird> WHAT is that
18:14:21 <ehird> is that like oko v2
18:14:21 <Slereah_> If you want to program some embryos : http://www.vivo.colostate.edu/molkit/rtranslate/index.html
18:14:27 <ais523> sorry, I went all oklopol for a moment
18:14:41 <ais523> I probably would have deleted it rather than posted it in most other channels
18:15:24 <ehird> ais523: don't worry, we're all dirty okoers here, i meaokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokok
18:15:46 <ehird> @@valid = "a".."z" + "A".."Z" + "0".."9" # this is elegant in some weird way
18:16:13 <ais523> what lang? It looks a bit like Perl, but isn't
18:16:30 <ehird> ais523: Ruby!
18:16:50 <ehird> hm, no Range#+
18:17:06 <ehird> oh, of course
18:17:09 <ehird> i'll have to convert it to an array
18:17:15 <ehird> otherwise representing that as a range makes no sense
18:17:51 <Deewiant> why not just a regex
18:17:56 <ehird> ais523: ruby's love of functional programming saves the day!
18:17:58 <ehird> @@valid = ["a".."z", "A".."Z", "0".."9"].inject([]) {|a, b| a.to_a + b.to_a}
18:18:00 <ehird> (inject is reduce/fold)
18:18:09 <ehird> Deewiant: 'cause i want to generate it too
18:18:11 <Deewiant> @@valid = /[a-zA-Z0-9]+/
18:18:14 <Deewiant> ah
18:18:47 <ais523> using || as parens looks strange
18:18:55 <ehird> ais523: it's the parameters
18:18:58 <ehird> it's taken from smalltalk
18:19:00 <ehird> smalltalk of that is:
18:19:03 <ehird> [:a :b | ...]
18:19:16 <ehird> ais523: and the extra one is so that you can do 0-adic ones easily
18:19:16 <ehird> { ... }
18:19:27 <ehird> also, { and } can be spelled 'do' and 'end' which is more elegant for multi-line blocks
18:19:30 <ehird> .inject([]) do |a, b|
18:19:31 <ehird> ...
18:19:32 <ehird> end
18:19:53 <ais523> ehird: they stole that feature from Magenta!
18:19:59 <ehird> ais523: heheheheh
18:20:13 <ehird> ais523: rule of thumb: {} for one-line blocks (only one expression)
18:20:16 <ehird> do..end for multi-line
18:20:19 <ehird> ais523: fun thing about ruby: no statements
18:20:22 <ehird> everything is an expression
18:20:29 <ehird> so you can give /anything/ as an argument to a function
18:20:32 <ehird> even a class definition
18:21:11 <ais523> "everything is an expression" is good
18:21:21 <ais523> there is no reason for a statement/expression split nowadays
18:21:35 <ais523> such splits also go against my sense of elegance in programming
18:21:36 <ehird> ais523: quite. Ruby is a lot deeper than most people think
18:21:41 <ehird> (those who learn of it from Rails, mostly)
18:21:50 <ais523> that's why INTERCAL has separate expressions and statements
18:21:56 <ehird> ais523: Ha!
18:22:01 <ais523> oh, and some of the expressions have side effects#
18:22:07 <ais523> s/.$//
18:22:10 <ehird> well, ruby's expressions have side effects
18:22:14 <ehird> because otherwise there'd be no side effects :P
18:22:20 <ais523> that's fine if they serve the role of statements too
18:22:32 <ais523> although arguably, Haskell managed to find a different solution to that particular problem
18:22:59 <ais523> but in a lang with split expressions/statements, having side-effect expressions is just silly
18:23:44 <ais523> I wonder what the historical reasons for langs having separate expression and statements are?
18:23:54 <ais523> possible reasons: parsing before LR(1) was invented, line numbers
18:24:04 <ais523> e.g. combining expressions and statements in Forte would be really difficult
18:24:11 <ais523> probably other reasons I haven't thought of
18:24:59 <ais523> the parsing is because people used to use top-down parsing for statements and bottom-up or operator-precedence parsing for expressions
18:25:08 <ehird> ais523: it was just intuitive back in tha 'old dayz
18:25:11 <ehird> 'old, heh
18:25:26 <ais523> not really, asm doesn't have separate expressions and statements
18:25:38 <ais523> so why did the first higher-level languages separate them?
18:25:38 <Deewiant> asm has only statements
18:25:42 <Deewiant> so adding expressions was an obvious next step
18:26:10 <ehird> exactly
18:26:13 <ais523> ah
18:26:14 <Deewiant> or it seems obvious to me, anyway. More so than changing all statements to expressions. :-P
18:26:21 -!- oerjan has joined.
18:26:22 <ehird> yeah
18:26:23 <ehird> it was like
18:26:27 <ehird> 'add a, b; mov b, x'
18:26:29 <ehird> is silly
18:26:34 <ehird> and esp. for large expressions
18:26:37 <ais523> expressions would have originally been invented as a way to reduce temporary register usage
18:26:38 <ehird> why not 'mov a+b, x'?
18:26:50 <ehird> and then you get into function calls and stuff
18:26:54 <ehird> 'mov sqrt(a), x'
18:27:03 <ehird> then you get a language leaving asm behind - like C
18:27:11 <ehird> and ends up making IO stuff into functions
18:27:13 <ehird> you see?
18:27:46 <ais523> yes
18:27:49 <ais523> that makes sense
18:28:21 <ehird> ais523: another nice thing about ruby - it has good string interpolation built in
18:28:32 <ais523> many langs have that nowadays
18:28:32 <ehird> #{foo}, in a string literal, is an interpolation of the code foo, converted to a string
18:28:37 <ehird> sometimes you can even leave out the {}
18:28:42 <ais523> even Cyclexa does, or will do when I finish the spec
18:28:45 <ehird> #foo and #@bar and #$xyz works, but they're obscure-looking
18:28:48 <ehird> so nobody uses them :-)
18:28:53 <ehird> ais523: you can nest quotes in these
18:29:01 <ehird> "#{"#{"hello"}"}"
18:29:03 <ehird> is "hello"
18:29:03 <ais523> ehird: but you can have nested comments in email addresses
18:29:16 <ais523> however, I tried it in my email client and it rejected the address
18:29:23 <ais523> not even sure if it allows non-nested comments
18:29:26 <ehird> ais523: gotta admit though, "#{"#{"hello"}"}" is amusnig
18:29:29 <ehird> *amusing
18:29:38 <ais523> but nested comments strike me as a good anti-spam measure
18:29:44 <ais523> what spambot parses those nowadays?
18:30:00 <Deewiant> what mail client supports them?
18:30:18 <ais523> Deewiant: all the ones which follow the spec, so probably about 2 that nobody's ever heard of
18:30:21 <Deewiant> yep
18:31:24 <ehird> eh
18:31:25 <ehird> *heh
18:31:54 <ehird> ais523:
18:31:55 <ehird> Thread.new { @buffer[id] += proc.gets until proc.closed? }
18:32:02 <ais523> anyway, try sending a message to ais523(524\)(525)x)@bham.ac.uk and seeing what happens
18:32:08 <ehird> 'until' and 'x?' are cute idioms :-)
18:32:13 <ais523> anyone who actually reaches me has a superior mailer
18:32:23 <ais523> ehird: they'll be adding a please to it next
18:32:24 -!- helios24 has joined.
18:32:35 <ehird> ais523: heh
18:32:47 <ais523> oh, yes, email addresses even have an escape syntax for escaping comment markers in comments
18:33:01 <Slereah_> Hello sir helios24.
18:33:09 <helios24> Slereah_, hi ;)
18:33:37 <ehird> ais523: i do believe I just emailed you
18:33:45 <ehird> unix mail(1) :-)
18:33:48 <ais523> it hasn't arrived yet
18:33:50 * oerjan notes that good old pine supports that address nicely (it strips out the comments as soon as i leave the To: line)
18:34:10 <ais523> maybe it'll arrive later, or maybe a relay en-route will choke on the comments
18:34:36 <ais523> oerjan: that's a really clever idea, allow all users and don't confuse the mailer
18:34:49 <ehird> ais523: I have a class called PunkRock in my program. It is a pun on 'proc'.
18:35:35 <ais523> maybe I'll publically display my email as a valid address with comments in, spambots would be unlikely to track it down and people with decent mailers could visit it without deobfuscating
18:37:39 <ehird> ais523: eurgh, you can't do redirects right
18:37:41 <ehird> if you use a 301
18:37:46 <ehird> reloads go to the redirector
18:37:48 <Deewiant> ais523: so what's the actual address supposed to be
18:37:49 <ehird> instead of hte redirectee
18:37:52 <ehird> if you use anything else
18:37:54 <Deewiant> ais523: ais523x)@...?
18:37:55 <ehird> then a browser caches the redirector
18:37:59 <ehird> to go to the redirectee
18:38:05 <ais523> Deewiant: look more closely, \ is an escape character
18:38:20 <Deewiant> ais523: aye, so you escape the one after 524
18:38:30 <Deewiant> ah, they nest?
18:38:54 <Deewiant> i.e. (foo(bar)baz) is one comment, not baz)
18:38:59 <ais523> yes, nested comments
18:39:02 <Deewiant> thunderbird thinks it's baz)
18:39:07 <ais523> remember this is email addresses we're talking about
18:39:32 <ais523> but no regexp can handle arbitrarily nested comments
18:41:20 -!- RedDak has quit (Read error: 104 (Connection reset by peer)).
18:41:37 <ehird> ais523: gosh, this bug is odd
18:41:43 <Deewiant> looks like it's an open bug at mozilla since 2002 :-)
18:41:43 <ais523> what does it do?
18:42:06 <ais523> Deewiant: but it should be easy to fix, surely?
18:42:20 <ehird> ais523: the proc buffer appears to be empty
18:42:21 <Deewiant> possibly, I don't know
18:42:22 <ehird> even though it is not
18:42:33 <ais523> "proc buffer" = /proc?
18:43:38 <ehird> ais523: no, the game subprocesses
18:44:48 <ehird> I mean, it's there. Just.
18:44:53 <ehird> OH
18:44:58 <ehird> Setting the wrong instance variable :|
18:46:04 <ehird> ais523: OK, I just need to add input.
18:53:25 <ehird> ais523:
18:53:26 <ehird> return if (proc = proc_for(name)).nil?
18:53:41 <ais523> why did you paste that particular line of code to me?
18:55:16 <ehird> ais523: OK, I think it's almost ready
18:55:18 <ehird> and ... I just found it cute.
19:02:20 <ehird> ais523: Hmm. Odd bugs.
19:02:51 <ehird> ais523: Give me a good number for reading in chunks
19:02:54 <ehird> 1024? 4096?
19:03:02 <ais523> CLC-INTERCAL uses 1024
19:03:06 <ais523> I don't know if that makes it a good number, though
19:03:36 <Deewiant> 1 << rand_int(8, 16)
19:04:06 <ais523> but I don't have the fingerprint 0 0 1 1 loaded
19:04:31 <ais523> so I think it reflects, and as I don't have 1 1 1 1 loaded either that's an infinite loop
19:04:52 <ehird> ais523: the problem is that we redirect back straight after a post
19:04:53 <ais523> sorry, it would just be the fingerprint 1, I forgot the semantics for a moment
19:04:58 <Deewiant> huh what now?
19:04:59 <ehird> which means you get either no or only some of the game's response
19:05:07 <ais523> Deewiant: I was trying to interpret your code as Funge-98
19:05:19 <Deewiant> you'd never get to the (
19:05:25 <ais523> it's the ) I'm talking about
19:05:28 <ais523> you do get to that
19:05:37 <ehird> ais523: any ideas about my solution?
19:05:38 <Deewiant> right, wrapping
19:05:41 <ehird> apart from doing it ajaxy that is :-)
19:05:43 <Deewiant> you'd hit my nick first though ;-)
19:05:49 <ais523> ehird: what redirect code are you using?
19:05:54 <ais523> there's more than one
19:05:57 <ehird> ais523: nothing to do with that
19:06:09 <ehird> just the timing of the seperate thread which does the reading
19:06:12 <ais523> why do you have a redirect?
19:06:17 <ehird> ais523: after the form post
19:06:20 <ehird> i redirect to the game display
19:06:29 <ehird> this can happer faster than I read in the game's response
19:06:30 <ais523> and where does the information that then displays come from?
19:06:45 <ehird> ais523: the buffer which i store to by reading continuously in a seperate thread
19:06:51 <Deewiant> ais523: but what it would do is try to unload the fingerprint 0. the first param it pops is the length of the fingerprint's identifier
19:07:01 <ais523> Deewiant: there are two 1s on the stack
19:07:07 <ehird> hmm, /me has an idea
19:07:08 <Deewiant> d'oh
19:07:13 <Deewiant> right you are
19:07:17 <ais523> ehird: use some sort of readbuffer-valid/readbuffer-invalid flag?
19:09:08 <ehird> ios.closed? => true or false
19:09:08 <ehird> Returns true if ios is completely closed (for duplex streams, both reader and writer), false otherwise.
19:09:15 <ehird> ^^ but I only want to know about reading!
19:09:25 <ais523> ehird: then use a non-duplex stream?
19:09:38 <ehird> ais523: but I need both input and output, for one process
19:09:41 <ehird> It's the game process :-)
19:09:46 <ehird> aha
19:09:47 <ehird> .eof?
19:09:48 <ehird> of course
19:10:43 <ehird> wow what happened
19:10:45 <ehird> it's gone molasses slow
19:11:02 <ais523> ehird: you might want to look up on how it checks for EOF
19:11:11 <ais523> it may be something silly like test read + unget with timeout
19:11:13 <ehird> ais523: my thoughts exactly
19:11:33 <ehird> ais523: how DO I detect if your game exited
19:11:34 <ehird> :-)
19:11:53 <ais523> ehird: by looking at its process number?
19:11:58 <ais523> that's the usual method
19:12:27 <ais523> e.g. you can use kill to see if it's possible to send something a signal, if it isn't then it's probably exited
19:12:46 <ehird> WTFFF
19:12:46 <ehird> Tue May 06 19:13:41 +0100 2008: ERROR: Resource temporarily unavailable
19:13:03 <Deewiant> :-)
19:13:23 <ais523> your server has switched to Daylight Saving Time
19:13:34 <ais523> mightn't that cause problems during the DST switch?
19:13:34 <ehird> ais523: ha, that's not quite what i was talking about
19:13:46 <ehird> no, it's just that my processes are only lasting one requset
19:14:22 <ais523> languages other than UNIXy shells have insufficient ampersands
19:14:46 <ehird> ais523: EAGAIN is the error, by the way
19:14:56 <ehird> whut does that be meanin'
19:15:09 <ais523> ehird: EAGAIN means that an application started a non-blocking read, but it would have blocked
19:15:18 <ais523> so it returns instantly with an error, because the read is non-blocking
19:15:23 <ehird> ais523: ah!
19:15:33 <ehird> ais523: how do I do a non-blocking-read-but-blocking-if-it-needs-to-be
19:15:39 <ais523> ?
19:15:44 <Deewiant> just do a blocking read? :-P
19:15:46 <ais523> a read is either blocking or not
19:15:54 <ehird> that is: 'if the process dun wanna give me nuttin', just return the empty string. But if it has sum of dat nice output for me, block and gimme it'
19:15:55 <ais523> it sounds like you've described a blocking read
19:16:13 <ehird> ais523: but if I do a blocking read it'll wait until the process wants to output N characters
19:16:25 <ehird> I do this every request, to get the output it's sent, y'see
19:16:25 <ais523> ehird: you've just described a non-blocking read
19:16:29 <ehird> (dropped the thread)
19:16:39 <ehird> ais523: OK, but it's having that odd error, so it's obviously not doing what I asked.
19:16:39 <ais523> presumably you're running it in a tight loop, and that's causing the slowness?
19:16:54 <ehird> errr ... What
19:17:03 <ehird> When did I say anything baout slowless
19:17:04 <ehird> *slowness
19:17:16 <ais523> <ehird> it's gone molasses slow
19:17:22 <ehird> ais523: that's not related in any way to this.
19:17:25 <ehird> i fixed thatl
19:17:27 <ais523> oh
19:17:28 <ehird> anyway:
19:17:32 <ehird> proc.buffer += proc.read_nonblock(4096)
19:17:36 <ehird> i do that each time you view the game screen
19:17:42 <ehird> to syphon anything the game wants to tell me
19:17:49 <ehird> but this isn't working past the first request
19:17:51 <ais523> what does read_nonblock return in a situation where it would block?
19:17:52 <ehird> it fails with EAGAIN
19:17:56 <ais523> null, all data available, or error?
19:18:00 <ehird> ais523: EAGAIN, presumably?
19:18:02 <ehird> That's what you said.
19:18:05 <ais523> yes, it does in C
19:18:10 <ehird> ais523: Yes, EAGAIN.
19:18:12 <ais523> but I would have expected Ruby to wrapper around that
19:18:14 <ehird> That's what t's giving me.
19:18:17 <ehird> An IOError of EAGAIN
19:18:21 <ehird> (raises an exception)
19:18:25 <Deewiant> "read_nonblock just calls read(2). It causes all errors read(2) causes: EAGAIN, EINTR, etc. The caller should care such errors. "
19:18:26 <ehird> even python just wraps around the errnos
19:18:29 <ais523> that's ridiculous high-level language design
19:18:30 <ehird> Deewiant: Yes.
19:18:38 <ehird> ais523: No, it's common high-level language design
19:18:39 <ehird> Very common
19:18:39 <ais523> looks like you have to catch the EAGAIN yourself
19:18:43 <ehird> Haven't seen one langugae not do it
19:18:48 <ehird> ais523: OK, and if I get an EAGAIN whatd o I do?
19:18:50 <ehird> *do
19:18:54 <ais523> I'll look it up
19:19:03 <ehird> I could do proc.read(4096), but then what if the game wants to give me, say, 512 characters? It'll hang.
19:19:18 <ais523> ehird: according to the documentation of read(2), you only get EAGAIN if there's no data
19:19:21 <ais523> and all the data available otherwise
19:19:40 <ehird> ais523: OK
19:19:42 <ais523> so just trap the exception and handle it with no action in the handler
19:19:51 <ehird> proc.buffer += proc.read_nonblock(4096) rescue nil
19:19:53 <ehird> yes, ruby even has post-rescue
19:20:31 <ehird> ais523: OK, a bit better, except that when I type 'Go' now it gives me a screen with just my input. Then if I refresh it sees it
19:20:37 <ehird> (because, obviously, the output isn't instanteneous)
19:20:42 <ais523> sounds like a race condition
19:20:48 <ehird> yes
19:20:57 <ehird> but i don't see what i can do about it save for an artificial delay
19:21:54 <ais523> normally, some sort of semaphore or spinlock, or other way to send data between multiple process
19:21:57 <ais523> s/$/es/
19:22:11 <ais523> e.g. (1) COME FROM (1) AGAIN / ABSTAIN FROM (1) in C-INTERCAL
19:22:11 <ehird> ais523: Even more worryingly, if I do 'Up'
19:22:18 <ehird> then it doesn't display anything, no matter how many refreshes
19:22:20 <ehird> until the next input
19:22:25 <ais523> strange
19:22:35 <ais523> are you flushing the pipe into my program?
19:22:49 <ehird> ais523: oh. that might hlep
19:22:50 <ais523> also, my program doesn't flush output pipes, you may need to add a few fflushes in there
19:22:51 <ehird> XD
19:24:10 <ehird> ais523: into your program?
19:24:13 <ehird> i'm trying not to modify it
19:24:22 <Deewiant> with luck it's line buffered
19:24:26 <ais523> well, programs built to run in ttys don't always run properly in pipes
19:24:37 <ais523> sometimes you need to change the buffering mode of the program
19:25:10 <ais523> e.g. all C-INTERCAL 0.28 output programs support a command-line option to flush after every output character
19:25:21 <ais523> so you can cause that to happen without modifying the output
19:25:56 <ehird> ais523: if I paste my code will you think of something? :P
19:26:04 <ais523> ehird: if it's written in Ruby, probably not
19:26:08 <ehird> ais523: it's very readable
19:26:11 <ais523> it's a good language for several things, but I don't know it
19:26:19 <ais523> and understanding the code won't solve the problem
19:26:28 <ehird> ais523: while reading it, this might help - http://www.ruby-doc.org/core/classes/IO.html
19:26:32 <ais523> it's understanding what obscure language feature you need to solve it that's needed to solve the problem
19:26:45 <ehird> http://pastebin.ca/1009573
19:26:51 <ehird> i don't think it's obscure
19:26:52 <ehird> really
19:28:46 <ehird> ais523: nothing obvious?
19:29:02 <ais523> I suggest modifying my program to flush and send some special character (there's probably a control char in ASCII for this purpose, it's got a lot of useful control chars like that) after every input, and blocking for that char
19:29:19 <ais523> otherwise, how can you possibly tell when my program's finished its output?
19:29:43 <ais523> failing that, get my program to flush (or switch stdout unbuffered), and put a time delay in before the reload
19:29:47 <ehird> ais523: well, there's an online zork
19:29:47 <ehird> :-P
19:30:05 <ehird> anyway, ais523, your program just uses raw printf
19:30:06 <ehird> changing would be hell
19:30:16 <ais523> no, trivial
19:30:24 <ais523> if it's just printf you can #define printf to flush
19:30:25 <ehird> :|
19:30:33 <ehird> ais523: yeah, but then I can't use "printf"
19:30:44 <ehird> and you also use puts
19:30:51 <ais523> or you can just use a single setbuf call on stdout
19:31:25 <ais523> setvbuf(stdout, _IONBUF, 0, 0);
19:31:34 <ais523> that command causes all stream I/O on stdout to flush instantly
19:31:40 <ais523> just put it at the start of main()
19:32:01 <ehird> esogame.c:176: error: ‘_IONBUF’ undeclared (first use in this function)
19:32:13 <ais523> _IONBF, sorry
19:32:56 <ehird> esogame.c:176: warning: passing argument 2 of ‘setvbuf’ makes pointer from integer without a cast
19:33:08 <ais523> have I got the args in the wrong order? let me check again
19:33:23 <ais523> setvbuf(stdout, 0, _IONBUF, 0);
19:33:24 <Deewiant> stdout, NULL, _IONBF, 0
19:33:25 <ais523> that's better
19:34:04 <ehird> ais523: well, nothing mmuch happens
19:34:09 <ehird> really looks like I'm gonna have to add a delay..
19:34:10 <ehird> but that sucks
19:34:15 <ais523> you need a delay as well
19:34:21 <ais523> that just prevents the stair lockup problem
19:34:22 <ehird> ais523: but how much
19:34:25 <ais523> it does, doesn't it
19:34:32 <ehird> yes
19:34:33 <ehird> it does
19:34:35 <ais523> and the delay needs to only be a few hundred milliseconds
19:34:49 <ais523> but there's no way you can do without a delay without further modifying the program you interface with
19:35:05 <ehird> ais523: OK, seems to work apart from one thing
19:35:09 <ais523> what one thing?
19:35:13 <ehird> if you give it an empty line you have to give it some input before it'll say it doesn't understand
19:35:27 <ais523> does my program do that?
19:35:33 <ehird> ais523: oh wait
19:35:34 <ais523> is it a bug with you or with me, in other words
19:35:36 <ehird> you just hang on enter
19:35:38 <ehird> it's a bug with me
19:35:41 <ehird> if I remove the stripping of newlines
19:35:46 <ehird> then it'll add a new line each time
19:35:46 <ehird> so
19:35:47 <ehird> obvious
19:38:40 <ais523> all fixed now?
19:39:04 <ehird> ais523: OK
19:39:08 <ehird> ais523: It basically works.
19:39:17 <ehird> I only need to add like 2 things:
19:39:26 <ehird> - The ability to quit the game properly
19:39:39 <ehird> - Disabling your saves, because they can access the FS and don't work anyway
19:41:14 <ehird> ais523: so, you say I should try signalling
19:41:15 <ehird> to see if it's dead
19:41:16 <ehird> what signal?
19:41:23 <ehird> this will be done on each refresh/entered line, etc
19:41:25 <ais523> there's a no-op signal for that purpose
19:41:34 <ais523> number 0, I think
19:42:39 <ais523> yes, kill's documentation says it's 0
19:43:10 <ais523> I'm not sure how that interacts with zombies, though
19:44:11 <oerjan> BRAINS...
19:44:16 <oerjan> sorry, reflex
19:44:29 <ais523> zombie processes can be a pain to get rid of
19:44:39 <ais523> in computer games you kill zombies with headshots
19:44:47 <ais523> on UNIXes you kill zombies by killing their parents
19:44:56 <ehird> hahaha
19:45:00 <ehird> that would be a great fps
19:45:04 <ehird> there's an invasion of zombies
19:45:08 <ehird> SOLUTION: kill ancestors
19:45:13 <ehird> and they immediately die
19:45:15 <ais523> quite difficult due to the need to sort out the recursion
19:45:41 <oerjan> ehird: there was something on that on TvTropes (WARNING: addictive)
19:45:55 <ehird> ais523: so it seems that I can still kill -0 your game after it's done, because it's still >open<
19:45:58 <ehird> you've just stopped writing to it
19:45:59 <ehird> (eof)
19:46:03 <ais523> yes, that's the problem
19:46:07 <ais523> can the EOF be detected?
19:46:11 <ehird> ais523: yes -- .eof?
19:46:14 <ehird> but as we've discussed
19:46:15 <ehird> that's molasses-slow
19:46:16 <ais523> or the SIGPIPE that you get for writing to a finished process?
19:46:18 <ehird> and seems to be broken anyway
19:46:22 <ehird> and it's not writing that helps
19:46:25 <ehird> because just after writing Q
19:46:28 <ehird> we go to the display screen
19:46:33 <ehird> -> we need to detect it without writing
19:46:49 <ais523> well, the command normally used for that is wait
19:46:52 <ais523> but it waits...
19:47:01 <ais523> I wonder if there's a non-blocking version?
19:47:16 <ehird> dont_wait
19:47:19 <ehird> sounds INTERCALly
19:47:41 <ehird> ais523: I am tempted to write a language in which your adventure game will be both easy to write and will be portable across UIs ;)
19:47:44 <ehird> that would be fun
19:47:46 <ehird> it could even by esoy
19:47:58 <ais523> in C it's waitpid(pid, &status, WNOHANG)
19:48:03 <ais523> not sure what that translates to in Ruby
19:48:42 <Deewiant> waitpid(pid, WNOHANG)
19:48:54 <ehird> Deewiant: bingo
19:48:55 <Deewiant> no clue what happened to the status
19:49:02 <ehird> are you a rubyist or just good with google :-)
19:49:03 <ehird> and
19:49:04 <ais523> isn't it kind-of important in this case
19:49:05 <ehird> the status is returned
19:49:08 <Deewiant> good with google
19:49:09 <ais523> because otherwise it's a no-op
19:49:13 <Deewiant> and somewhat of a rubyist
19:49:21 <ehird> Deewiant: anyway, it's Process.waitpid
19:49:21 <Deewiant> but not nearly enough to remember this kind of stuff :-P
19:49:29 <Deewiant> yep
19:49:41 <Deewiant> and Process::WNOHANG if you want to be pedantic ;-P
19:50:19 <ehird> ais523: okay, almost there
19:50:20 <ehird> after a quit
19:50:21 <ais523> pedantic = needed for program to work, or compiler setting?
19:50:22 <ehird> if you refresh
19:50:23 <ehird> it's done
19:50:26 <ehird> looks like i need more delay
19:50:26 <ehird> :D
19:50:28 <ehird> ais523: and needed
19:50:33 <ehird> ruby ain't a compiler anyway
19:50:38 <ais523> sorry, interp setting
19:50:44 <Deewiant> ais523: needed, although I think there may be some way of importing the module so that it's not
19:50:45 <ehird> it's an interpreter of the slowest kind (YARV, aka Ruby 1.9 aka Ruby 2.0 is fixing this)
19:50:47 <Deewiant> not sure
19:50:56 <ais523> actually, I'm kind of surprised that you needed the delay at all
19:51:03 <ais523> considering the relative speeds of Ruby and C
19:51:57 <ehird> ais523: snarky
19:52:03 <ehird> Mongrel, the server, has its core written in C
19:52:09 <ais523> sorry
19:52:11 <ehird> and since it's a long running process, really we're IO bound
19:52:16 <ehird> but i agree
19:52:21 <ehird> ruby is the slowest thing ever :-)
19:52:28 <ais523> ehird: try HOMESPRING some time
19:52:30 <ehird> but soon... 2.0..
19:52:39 <ais523> I'm pretty sure Ruby's faster than that
19:52:44 <ehird> (ruby 1.9 is almost usable, and it will stablly become 2.0 soon)
19:52:50 <ehird> ais523: did you know - ruby has continuations
19:52:53 <ehird> plain jane callcc
19:52:54 -!- boily has joined.
19:53:04 <ais523> I'd have been disappointed if it didn't
19:53:10 <ehird> even reusable. a limitation, though: you can't switch to a continuation made in another thread
19:53:13 <ehird> ais523: well, python doesn't
19:53:25 <ais523> "It has continuations!" shouldn't be some sort of brilliant killer-app nowadays
19:53:27 <ehird> that limitation kinda destroys them though
19:53:28 <ais523> it should be a default
19:53:38 <ehird> esp. since it copies the stack (since they're very c-integrated)
19:53:40 <ehird> so it's slow too
19:53:40 <ais523> the next step is getting all langs to have continuations that serialise to disk
19:53:41 <ehird> even so
19:53:43 <ehird> nice to know it's there
19:53:49 <ehird> yeah they don't serialize either
19:54:08 <ais523> I can't actually thing of any lang but Underlambda with serialisable continuations
19:54:10 <ehird> ais523: ruby = lisp + perly syntax with some extra humaney stuff + smalltalk
19:54:24 <ais523> sounds much like the much-fabled Perl5
19:54:27 <ehird> + simplified + some complexity, but of a new kind (ruby's own kind)
19:54:27 <ais523> only they got to it first
19:54:32 <ais523> s/Perl5/Perl6/
19:54:50 <ehird> ais523: i've seen perl6 -- it's nothing like ruby
19:54:55 <ehird> it SHOULD be, though :-)
19:54:55 <ais523> no
19:55:00 <ais523> the description fits both languages
19:55:02 <ais523> but they are still different
19:55:04 <ehird> ais523: one advantage of ruby is that you can actually compile it ;P
19:55:12 <ehird> perl6 is actually more mallable than perl5
19:55:29 <ais523> well, in perl6, every {} is actually an anonymous lambda, and context determines whether it runs or not
19:55:31 <ais523> I like that idea
19:57:06 <ehird> OK, I think I've got the game playable
19:57:59 <ais523> website?
19:58:43 -!- boily has quit ("Schtroumpf!").
19:59:13 <ehird> ais523: about to
19:59:15 <ehird> just disabling saves
20:00:23 <ehird> ais523:
20:00:24 <ehird> have fun
20:00:29 <ehird> err wait
20:00:33 <ehird> just gonna log when someone starts a new game
20:00:35 <ais523> Could not connect to host (port 8080).
20:00:38 -!- Slereah has joined.
20:01:04 <ehird> ais523: yes
20:01:06 <ehird> added the logging
20:01:07 <ehird> should work now
20:01:08 <ehird>
20:02:06 <ehird> ais523: 'sit good?
20:02:10 <ais523> I think so
20:02:27 <ais523> 'twould be nice to autoscroll to the bottom of the page, though
20:02:35 <ais523> that's probably possible using anchors
20:02:48 <ehird> ais523: does for me!
20:02:51 <ehird> because it focuses the input field
20:02:57 <ais523> not for me in Konqueror
20:03:01 <ehird> ais523: use epiphany
20:03:02 <Deewiant> nor for me in Firefox
20:03:16 <ehird> it does it in a <script> at the end
20:03:17 <ehird> hang on
20:03:19 <ehird> ais523: oh and
20:03:23 <ehird> You are standing on stair 9 of a flight of stairs.
20:03:24 <ehird> :D
20:03:28 <Deewiant> in a script? well I have javascript disabled
20:03:29 <ais523> yep, fine in Epiphany
20:03:39 <ehird> Deewiant: you can't focus a form field any other way
20:03:50 <Deewiant> no, but you could use an anchor as ais523 suggested.
20:04:01 <ehird> just restarted the server
20:04:05 <ehird> it should work fine now
20:04:15 <ehird> ais523: works in konq?
20:04:32 <ais523> no
20:04:52 <ehird> OK
20:04:54 <ehird> then I give up on konq
20:04:55 <ehird> :P
20:04:58 <ais523> there's an anchor in the source but not the URL
20:05:02 <ehird> ais523: tried saving yet?
20:05:10 <ehird> and i'm not doing anchors
20:05:13 <ehird> i'm focusing a form field
20:05:19 <ehird> but fine, let me try something
20:05:20 <Deewiant> the statue on the left is starting to annoy me
20:05:23 <ais523> it doesn't understand when you try to save
20:05:27 <ais523> Deewiant: is it reacting to you?
20:05:34 <Deewiant> I've managed to get it to say '?'
20:05:42 <ehird> ais523: restarted
20:05:44 <ehird> should work now
20:05:52 <ehird> Deewiant: sorry about your game
20:05:53 <ehird> :|
20:06:04 <ais523> don't worry, the BF problem isn't stateful
20:06:05 <Deewiant> no problem
20:06:06 <ehird> ais523: does it scroll now?